1 | /* |
2 | * GTK - The GIMP Toolkit |
3 | * Copyright (C) 1999 Red Hat, Inc. |
4 | * Copyright (C) 2002 Anders Carlsson <[email protected]> |
5 | * Copyright (C) 2003 Matthias Clasen <[email protected]> |
6 | * Copyright (C) 2005 Carlos Garnacho Parro <[email protected]> |
7 | * |
8 | * All rights reserved. |
9 | * |
10 | * This library is free software; you can redistribute it and/or |
11 | * modify it under the terms of the GNU Lesser General Public |
12 | * License as published by the Free Software Foundation; either |
13 | * version 2 of the License, or (at your option) any later version. |
14 | * |
15 | * This library is distributed in the hope that it will be useful, |
16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
18 | * Lesser General Public License for more details. |
19 | * |
20 | * You should have received a copy of the GNU Lesser General Public |
21 | * License along with this library; if not, write to the |
22 | * Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
23 | * Boston, MA 02111-1307, USA. |
24 | */ |
25 | |
26 | #ifndef __GTK_ASSISTANT_H__ |
27 | #define __GTK_ASSISTANT_H__ |
28 | |
29 | #if defined(GTK_DISABLE_SINGLE_INCLUDES) && !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) |
30 | #error "Only <gtk/gtk.h> can be included directly." |
31 | #endif |
32 | |
33 | #include <gtk/gtkwindow.h> |
34 | |
35 | G_BEGIN_DECLS |
36 | |
37 | #define GTK_TYPE_ASSISTANT (gtk_assistant_get_type ()) |
38 | #define GTK_ASSISTANT(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_ASSISTANT, GtkAssistant)) |
39 | #define GTK_ASSISTANT_CLASS(c) (G_TYPE_CHECK_CLASS_CAST ((c), GTK_TYPE_ASSISTANT, GtkAssistantClass)) |
40 | #define GTK_IS_ASSISTANT(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_ASSISTANT)) |
41 | #define GTK_IS_ASSISTANT_CLASS(c) (G_TYPE_CHECK_CLASS_TYPE ((c), GTK_TYPE_ASSISTANT)) |
42 | #define GTK_ASSISTANT_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GTK_TYPE_ASSISTANT, GtkAssistantClass)) |
43 | |
44 | /** |
45 | * GtkAssistantPageType: |
46 | * @GTK_ASSISTANT_PAGE_CONTENT: The page has regular contents. |
47 | * @GTK_ASSISTANT_PAGE_INTRO: The page contains an introduction to the |
48 | * assistant task. |
49 | * @GTK_ASSISTANT_PAGE_CONFIRM: The page lets the user confirm or deny the |
50 | * changes. |
51 | * @GTK_ASSISTANT_PAGE_SUMMARY: The page informs the user of the changes |
52 | * done. |
53 | * @GTK_ASSISTANT_PAGE_PROGRESS: Used for tasks that take a long time to |
54 | * complete, blocks the assistant until the page is marked as complete. |
55 | * |
56 | * An enum for determining the page role inside the #GtkAssistant. It's |
57 | * used to handle buttons sensitivity and visibility. |
58 | * |
59 | * Note that an assistant needs to end its page flow with a page of type |
60 | * %GTK_ASSISTANT_PAGE_CONFIRM, %GTK_ASSISTANT_PAGE_SUMMARY or |
61 | * %GTK_ASSISTANT_PAGE_PROGRESS to be correct. |
62 | */ |
63 | typedef enum |
64 | { |
65 | GTK_ASSISTANT_PAGE_CONTENT, |
66 | GTK_ASSISTANT_PAGE_INTRO, |
67 | GTK_ASSISTANT_PAGE_CONFIRM, |
68 | GTK_ASSISTANT_PAGE_SUMMARY, |
69 | GTK_ASSISTANT_PAGE_PROGRESS |
70 | } GtkAssistantPageType; |
71 | |
72 | typedef struct _GtkAssistant GtkAssistant; |
73 | typedef struct _GtkAssistantPrivate GtkAssistantPrivate; |
74 | typedef struct _GtkAssistantClass GtkAssistantClass; |
75 | |
76 | struct _GtkAssistant |
77 | { |
78 | GtkWindow parent; |
79 | |
80 | GtkWidget *GSEAL (cancel); |
81 | GtkWidget *GSEAL (forward); |
82 | GtkWidget *GSEAL (back); |
83 | GtkWidget *GSEAL (apply); |
84 | GtkWidget *GSEAL (close); |
85 | GtkWidget *GSEAL (last); |
86 | |
87 | /*< private >*/ |
88 | GtkAssistantPrivate *GSEAL (priv); |
89 | }; |
90 | |
91 | struct _GtkAssistantClass |
92 | { |
93 | GtkWindowClass parent_class; |
94 | |
95 | void (* prepare) (GtkAssistant *assistant, GtkWidget *page); |
96 | void (* apply) (GtkAssistant *assistant); |
97 | void (* close) (GtkAssistant *assistant); |
98 | void (* cancel) (GtkAssistant *assistant); |
99 | |
100 | /* Padding for future expansion */ |
101 | void (*_gtk_reserved1) (void); |
102 | void (*_gtk_reserved2) (void); |
103 | void (*_gtk_reserved3) (void); |
104 | void (*_gtk_reserved4) (void); |
105 | void (*_gtk_reserved5) (void); |
106 | }; |
107 | |
108 | /** |
109 | * GtkAssistantPageFunc: |
110 | * @current_page: The page number used to calculate the next page. |
111 | * @data: user data. |
112 | * |
113 | * A function used by gtk_assistant_set_forward_page_func() to know which |
114 | * is the next page given a current one. It's called both for computing the |
115 | * next page when the user presses the "forward" button and for handling |
116 | * the behavior of the "last" button. |
117 | * |
118 | * Returns: The next page number. |
119 | */ |
120 | typedef gint (*GtkAssistantPageFunc) (gint current_page, gpointer data); |
121 | |
122 | GType gtk_assistant_get_type (void) G_GNUC_CONST; |
123 | GtkWidget *gtk_assistant_new (void); |
124 | gint gtk_assistant_get_current_page (GtkAssistant *assistant); |
125 | void gtk_assistant_set_current_page (GtkAssistant *assistant, |
126 | gint page_num); |
127 | gint gtk_assistant_get_n_pages (GtkAssistant *assistant); |
128 | GtkWidget *gtk_assistant_get_nth_page (GtkAssistant *assistant, |
129 | gint page_num); |
130 | gint gtk_assistant_prepend_page (GtkAssistant *assistant, |
131 | GtkWidget *page); |
132 | gint gtk_assistant_append_page (GtkAssistant *assistant, |
133 | GtkWidget *page); |
134 | gint gtk_assistant_insert_page (GtkAssistant *assistant, |
135 | GtkWidget *page, |
136 | gint position); |
137 | void gtk_assistant_set_forward_page_func (GtkAssistant *assistant, |
138 | GtkAssistantPageFunc page_func, |
139 | gpointer data, |
140 | GDestroyNotify destroy); |
141 | void gtk_assistant_set_page_type (GtkAssistant *assistant, |
142 | GtkWidget *page, |
143 | GtkAssistantPageType type); |
144 | GtkAssistantPageType gtk_assistant_get_page_type (GtkAssistant *assistant, |
145 | GtkWidget *page); |
146 | void gtk_assistant_set_page_title (GtkAssistant *assistant, |
147 | GtkWidget *page, |
148 | const gchar *title); |
149 | const gchar * gtk_assistant_get_page_title (GtkAssistant *assistant, |
150 | GtkWidget *page); |
151 | void (GtkAssistant *assistant, |
152 | GtkWidget *page, |
153 | GdkPixbuf *pixbuf); |
154 | GdkPixbuf * (GtkAssistant *assistant, |
155 | GtkWidget *page); |
156 | void gtk_assistant_set_page_side_image (GtkAssistant *assistant, |
157 | GtkWidget *page, |
158 | GdkPixbuf *pixbuf); |
159 | GdkPixbuf *gtk_assistant_get_page_side_image (GtkAssistant *assistant, |
160 | GtkWidget *page); |
161 | void gtk_assistant_set_page_complete (GtkAssistant *assistant, |
162 | GtkWidget *page, |
163 | gboolean complete); |
164 | gboolean gtk_assistant_get_page_complete (GtkAssistant *assistant, |
165 | GtkWidget *page); |
166 | void gtk_assistant_add_action_widget (GtkAssistant *assistant, |
167 | GtkWidget *child); |
168 | void gtk_assistant_remove_action_widget (GtkAssistant *assistant, |
169 | GtkWidget *child); |
170 | |
171 | void gtk_assistant_update_buttons_state (GtkAssistant *assistant); |
172 | void gtk_assistant_commit (GtkAssistant *assistant); |
173 | |
174 | G_END_DECLS |
175 | |
176 | #endif /* __GTK_ASSISTANT_H__ */ |
177 | |