1/* -*- Mode: C; c-file-style: "gnu"; tab-width: 8 -*- */
2/* GTK - The GIMP Toolkit
3 * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19/*
20 * Modified by the GTK+ Team and others 1997-2000. See the AUTHORS
21 * file for a list of people on the GTK+ Team. See the ChangeLog
22 * files for a list of changes. These files are distributed with
23 * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
24 */
25
26#ifndef __GTK_NOTEBOOK_H__
27#define __GTK_NOTEBOOK_H__
28
29
30#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
31#error "Only <gtk/gtk.h> can be included directly."
32#endif
33
34#include <gtk/gtkwidget.h>
35
36
37G_BEGIN_DECLS
38
39#define GTK_TYPE_NOTEBOOK (gtk_notebook_get_type ())
40#define GTK_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_NOTEBOOK, GtkNotebook))
41#define GTK_IS_NOTEBOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK))
42
43#define GTK_TYPE_NOTEBOOK_PAGE (gtk_notebook_page_get_type ())
44#define GTK_NOTEBOOK_PAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_NOTEBOOK_PAGE, GtkNotebookPage))
45#define GTK_IS_NOTEBOOK_PAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK_PAGE))
46
47typedef struct _GtkNotebookPage GtkNotebookPage;
48
49/**
50 * GtkNotebookTab:
51 * @GTK_NOTEBOOK_TAB_FIRST: the first tab in the notebook
52 * @GTK_NOTEBOOK_TAB_LAST: the last tab in the notebook
53 *
54 * The parameter used in the action signals of `GtkNotebook`.
55 */
56typedef enum
57{
58 GTK_NOTEBOOK_TAB_FIRST,
59 GTK_NOTEBOOK_TAB_LAST
60} GtkNotebookTab;
61
62typedef struct _GtkNotebook GtkNotebook;
63
64/***********************************************************
65 * Creation, insertion, deletion *
66 ***********************************************************/
67
68GDK_AVAILABLE_IN_ALL
69GType gtk_notebook_get_type (void) G_GNUC_CONST;
70GDK_AVAILABLE_IN_ALL
71GtkWidget * gtk_notebook_new (void);
72GDK_AVAILABLE_IN_ALL
73int gtk_notebook_append_page (GtkNotebook *notebook,
74 GtkWidget *child,
75 GtkWidget *tab_label);
76GDK_AVAILABLE_IN_ALL
77int gtk_notebook_append_page_menu (GtkNotebook *notebook,
78 GtkWidget *child,
79 GtkWidget *tab_label,
80 GtkWidget *menu_label);
81GDK_AVAILABLE_IN_ALL
82int gtk_notebook_prepend_page (GtkNotebook *notebook,
83 GtkWidget *child,
84 GtkWidget *tab_label);
85GDK_AVAILABLE_IN_ALL
86int gtk_notebook_prepend_page_menu (GtkNotebook *notebook,
87 GtkWidget *child,
88 GtkWidget *tab_label,
89 GtkWidget *menu_label);
90GDK_AVAILABLE_IN_ALL
91int gtk_notebook_insert_page (GtkNotebook *notebook,
92 GtkWidget *child,
93 GtkWidget *tab_label,
94 int position);
95GDK_AVAILABLE_IN_ALL
96int gtk_notebook_insert_page_menu (GtkNotebook *notebook,
97 GtkWidget *child,
98 GtkWidget *tab_label,
99 GtkWidget *menu_label,
100 int position);
101GDK_AVAILABLE_IN_ALL
102void gtk_notebook_remove_page (GtkNotebook *notebook,
103 int page_num);
104
105/***********************************************************
106 * Tabs drag and drop *
107 ***********************************************************/
108
109GDK_AVAILABLE_IN_ALL
110void gtk_notebook_set_group_name (GtkNotebook *notebook,
111 const char *group_name);
112GDK_AVAILABLE_IN_ALL
113const char *gtk_notebook_get_group_name (GtkNotebook *notebook);
114
115
116
117/***********************************************************
118 * query, set current NotebookPage *
119 ***********************************************************/
120
121GDK_AVAILABLE_IN_ALL
122int gtk_notebook_get_current_page (GtkNotebook *notebook);
123GDK_AVAILABLE_IN_ALL
124GtkWidget* gtk_notebook_get_nth_page (GtkNotebook *notebook,
125 int page_num);
126GDK_AVAILABLE_IN_ALL
127int gtk_notebook_get_n_pages (GtkNotebook *notebook);
128GDK_AVAILABLE_IN_ALL
129int gtk_notebook_page_num (GtkNotebook *notebook,
130 GtkWidget *child);
131GDK_AVAILABLE_IN_ALL
132void gtk_notebook_set_current_page (GtkNotebook *notebook,
133 int page_num);
134GDK_AVAILABLE_IN_ALL
135void gtk_notebook_next_page (GtkNotebook *notebook);
136GDK_AVAILABLE_IN_ALL
137void gtk_notebook_prev_page (GtkNotebook *notebook);
138
139/***********************************************************
140 * set Notebook, NotebookTab style *
141 ***********************************************************/
142
143GDK_AVAILABLE_IN_ALL
144void gtk_notebook_set_show_border (GtkNotebook *notebook,
145 gboolean show_border);
146GDK_AVAILABLE_IN_ALL
147gboolean gtk_notebook_get_show_border (GtkNotebook *notebook);
148GDK_AVAILABLE_IN_ALL
149void gtk_notebook_set_show_tabs (GtkNotebook *notebook,
150 gboolean show_tabs);
151GDK_AVAILABLE_IN_ALL
152gboolean gtk_notebook_get_show_tabs (GtkNotebook *notebook);
153GDK_AVAILABLE_IN_ALL
154void gtk_notebook_set_tab_pos (GtkNotebook *notebook,
155 GtkPositionType pos);
156GDK_AVAILABLE_IN_ALL
157GtkPositionType gtk_notebook_get_tab_pos (GtkNotebook *notebook);
158GDK_AVAILABLE_IN_ALL
159void gtk_notebook_set_scrollable (GtkNotebook *notebook,
160 gboolean scrollable);
161GDK_AVAILABLE_IN_ALL
162gboolean gtk_notebook_get_scrollable (GtkNotebook *notebook);
163
164/***********************************************************
165 * enable/disable PopupMenu *
166 ***********************************************************/
167
168GDK_AVAILABLE_IN_ALL
169void gtk_notebook_popup_enable (GtkNotebook *notebook);
170GDK_AVAILABLE_IN_ALL
171void gtk_notebook_popup_disable (GtkNotebook *notebook);
172
173/***********************************************************
174 * query/set NotebookPage Properties *
175 ***********************************************************/
176
177GDK_AVAILABLE_IN_ALL
178GtkWidget * gtk_notebook_get_tab_label (GtkNotebook *notebook,
179 GtkWidget *child);
180GDK_AVAILABLE_IN_ALL
181void gtk_notebook_set_tab_label (GtkNotebook *notebook,
182 GtkWidget *child,
183 GtkWidget *tab_label);
184GDK_AVAILABLE_IN_ALL
185void gtk_notebook_set_tab_label_text (GtkNotebook *notebook,
186 GtkWidget *child,
187 const char *tab_text);
188GDK_AVAILABLE_IN_ALL
189const char * gtk_notebook_get_tab_label_text (GtkNotebook *notebook,
190 GtkWidget *child);
191GDK_AVAILABLE_IN_ALL
192GtkWidget * gtk_notebook_get_menu_label (GtkNotebook *notebook,
193 GtkWidget *child);
194GDK_AVAILABLE_IN_ALL
195void gtk_notebook_set_menu_label (GtkNotebook *notebook,
196 GtkWidget *child,
197 GtkWidget *menu_label);
198GDK_AVAILABLE_IN_ALL
199void gtk_notebook_set_menu_label_text (GtkNotebook *notebook,
200 GtkWidget *child,
201 const char *menu_text);
202GDK_AVAILABLE_IN_ALL
203const char * gtk_notebook_get_menu_label_text (GtkNotebook *notebook,
204 GtkWidget *child);
205GDK_AVAILABLE_IN_ALL
206void gtk_notebook_reorder_child (GtkNotebook *notebook,
207 GtkWidget *child,
208 int position);
209GDK_AVAILABLE_IN_ALL
210gboolean gtk_notebook_get_tab_reorderable (GtkNotebook *notebook,
211 GtkWidget *child);
212GDK_AVAILABLE_IN_ALL
213void gtk_notebook_set_tab_reorderable (GtkNotebook *notebook,
214 GtkWidget *child,
215 gboolean reorderable);
216GDK_AVAILABLE_IN_ALL
217gboolean gtk_notebook_get_tab_detachable (GtkNotebook *notebook,
218 GtkWidget *child);
219GDK_AVAILABLE_IN_ALL
220void gtk_notebook_set_tab_detachable (GtkNotebook *notebook,
221 GtkWidget *child,
222 gboolean detachable);
223GDK_AVAILABLE_IN_ALL
224void gtk_notebook_detach_tab (GtkNotebook *notebook,
225 GtkWidget *child);
226
227GDK_AVAILABLE_IN_ALL
228GtkWidget* gtk_notebook_get_action_widget (GtkNotebook *notebook,
229 GtkPackType pack_type);
230GDK_AVAILABLE_IN_ALL
231void gtk_notebook_set_action_widget (GtkNotebook *notebook,
232 GtkWidget *widget,
233 GtkPackType pack_type);
234
235GDK_AVAILABLE_IN_ALL
236GType gtk_notebook_page_get_type (void) G_GNUC_CONST;
237
238GDK_AVAILABLE_IN_ALL
239GtkNotebookPage *gtk_notebook_get_page (GtkNotebook *notebook,
240 GtkWidget *child);
241GDK_AVAILABLE_IN_ALL
242GtkWidget *gtk_notebook_page_get_child (GtkNotebookPage *page);
243GDK_AVAILABLE_IN_ALL
244GListModel *gtk_notebook_get_pages (GtkNotebook *notebook);
245
246G_END_DECLS
247
248#endif /* __GTK_NOTEBOOK_H__ */
249

source code of gtk/gtk/gtknotebook.h