This is gtk.info, produced by makeinfo version 4.0 from gtk.texi. This file documents GTK, the GIMP Toolkit Copyright (C) 1996 Peter Mattis Copyright (C) 1997 Peter Mattis Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be stated in a translation approved by Peter Mattis. INFO-DIR-SECTION User Interface Toolkit START-INFO-DIR-ENTRY * GTK: (gtk). The GIMP Toolkit END-INFO-DIR-ENTRY  File: gtk.info, Node: GtkScrolledWindow, Next: GtkSeparator, Prev: GtkScrollbar, Up: Widgets The scrolled window widget ========================== Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_scrolled_window_get_type (void) Returns the `GtkScrolledWindow' type identifier. - Function: GtkWidget* gtk_scrolled_window_new (GtkAdjustment *HADJUSTMENT, GtkAdjustment *VADJUSTMENT) Create a new `GtkScrolledWindow' object initializing it with the values in ADJUSTMENT and ADJUSTMENT. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkAdjustment* gtk_scrolled_window_get_hadjustment (GtkScrolledWindow *SCROLLED_WINDOW) - Function: GtkAdjustment* gtk_scrolled_window_get_vadjustment (GtkScrolledWindow *SCROLLED_WINDOW) - Function: void gtk_scrolled_window_set_policy (GtkScrolledWindow *SCROLLED_WINDOW, GtkPolicyType HSCROLLBAR_POLICY, GtkPolicyType VSCROLLBAR_POLICY) - Function: GtkScrolledWindow* GTK_SCROLLED_WINDOW (gpointer OBJ) Cast a generic pointer to `GtkScrolledWindow*'. *Note Standard Macros::, for more info. - Function: GtkScrolledWindowClass* GTK_SCROLLED_WINDOW_CLASS (gpointer CLASS) Cast a generic pointer to `GtkScrolledWindowClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_SCROLLED_WINDOW (gpointer OBJ) Determine if a generic pointer refers to a `GtkScrolledWindow' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkSeparator, Next: GtkStatusbar, Prev: GtkScrolledWindow, Up: Widgets The separator widget ==================== Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_separator_get_type (void) Returns the `GtkSeparator' type identifier. - Function: GtkSeparator* GTK_SEPARATOR (gpointer OBJ) Cast a generic pointer to `GtkSeparator*'. *Note Standard Macros::, for more info. - Function: GtkSeparatorClass* GTK_SEPARATOR_CLASS (gpointer CLASS) Cast a generic pointer to `GtkSeparatorClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_SEPARATOR (gpointer OBJ) Determine if a generic pointer refers to a `GtkSeparator' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkStatusbar, Next: GtkTable, Prev: GtkSeparator, Up: Widgets The statusbar widget ==================== Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_statusbar_get_type (void) Returns the `GtkStatusbar' type identifier. - Function: GtkWidget* gtk_statusbar_new (void) Create a new `GtkStatusbar' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: gint gtk_statusbar_push (GtkStatusbar *STATUSBAR, gchar *TEXT) - Function: void gtk_statusbar_pop (GtkStatusbar *STATUSBAR, gint CONTEXT_ID) - Function: GtkStatusbar* GTK_STATUSBAR (gpointer OBJ) Cast a generic pointer to `GtkStatusbar*'. *Note Standard Macros::, for more info. - Function: GtkStatusbarClass* GTK_STATUSBAR_CLASS (gpointer CLASS) Cast a generic pointer to `GtkStatusbarClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_STATUSBAR (gpointer OBJ) Determine if a generic pointer refers to a `GtkStatusbar' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkTable, Next: GtkText, Prev: GtkStatusbar, Up: Widgets The table widget ================ Description ----------- Options ------- - User Option: rows - User Option: columns - User Option: homogeneous This option controls whether all child widgets in the `GtkTable' will be of the same size. The child widgets will be the size of the largest child. Signals ------- Functions --------- - Function: guint gtk_table_get_type (void) Returns the `GtkTable' type identifier. - Function: GtkWidget* gtk_table_new (gint ROWS, gint COLUMNS, gint HOMOGENEOUS) Create a new `GtkTable' object initializing it with the values in ROWS, COLUMNS and HOMOGENEOUS. The new widget is returned as a pointer to a `GtkWidget'. `NULL' is returned on failure. - Function: void gtk_table_attach (GtkTable *TABLE, GtkWidget *CHILD, gint LEFT_ATTACH, gint RIGHT_ATTACH, gint TOP_ATTACH, gint BOTTOM_ATTACH, gint XOPTIONS, gint YOPTIONS, gint XPADDING, gint YPADDING) - Function: void gtk_table_attach_defaults (GtkTable *TABLE, GtkWidget *WIDGET, gint LEFT_ATTACH, gint RIGHT_ATTACH, gint TOP_ATTACH, gint BOTTOM_ATTACH) - Function: void gtk_table_set_row_spacing (GtkTable *TABLE, gint ROW, gint SPACING) - Function: void gtk_table_set_col_spacing (GtkTable *TABLE, gint COL, gint SPACING) - Function: void gtk_table_set_row_spacings (GtkTable *TABLE, gint SPACING) - Function: void gtk_table_set_col_spacings (GtkTable *TABLE, gint SPACING) - Function: GtkTable* GTK_TABLE (gpointer OBJ) Cast a generic pointer to `GtkTable*'. *Note Standard Macros::, for more info. - Function: GtkTableClass* GTK_TABLE_CLASS (gpointer CLASS) Cast a generic pointer to `GtkTableClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TABLE (gpointer OBJ) Determine if a generic pointer refers to a `GtkTable' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkText, Next: GtkToggleButton, Prev: GtkTable, Up: Widgets The text widget =============== Description ----------- Signals ------- Functions --------- - Function: guint gtk_text_get_type (void) Returns the `GtkText' type identifier. - Function: GtkWidget* gtk_text_new (GtkAdjustment *HADJ, GtkAdjustment *VADJ); Create a new `GtkText' object initializing it with the values in HADJ and VADJ. The new widget is returned as a pointer to a `GtkWidget'. `NULL' is returned on failure. - Function: void gtk_text_set_editable (GtkText *TEXT, gint EDITABLE) - Function: void gtk_text_set_adjustments (GtkText *TEXT, GtkAdjustment *HADJ, GtkAdjustment *VADJ) - Function: void gtk_text_set_point (GtkText *TEXT, guint INDEX) - Function: guint gtk_text_get_point (GtkText *TEXT) - Function: guint gtk_text_get_length (GtkText *TEXT) - Function: void gtk_text_freeze (GtkText *TEXT) - Function: void gtk_text_thaw (GtkText *TEXT) - Function: void gtk_text_insert (GtkText *TEXT, GdkFont *FONT, GdkColor *FORE, GdkColor *BACK, char *CHARS, gint LENGTH) - Function: gint gtk_text_forward_delete (GtkText *TEXT, guint NCHARS) - Function: gint gtk_text_backward_delete (GtkText *TEXT, guint NCHARS) - Function: GtkText* GTK_TEXT (gpointer OBJ) Cast a generic pointer to `GtkText*'. *Note Standard Macros::, for more info. - Function: GtkTextClass* GTK_TEXT_CLASS (gpointer CLASS) Cast a generic pointer to `GtkTextClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TEXT (gpointer OBJ) Determine if a generic pointer refers to a `GtkText' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkToggleButton, Next: GtkToolbar, Prev: GtkText, Up: Widgets The toggle button widget ======================== Description ----------- Another form of button (*note GtkButton::) with two states: on and off. The appearance is that of a button which stays pressed on the first click, and is released on the second click. Options ------- - User Option: state Signals ------- - Signal: void GtkToggleButton::toggled (GtkToggleButton *TOGGLE_BUTTON) Functions --------- - Function: guint gtk_toggle_button_get_type (void) Returns the `GtkToggleButton' type identifier. - Function: GtkWidget* gtk_toggle_button_new (void) Create a new `GtkToggleButton' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkWidget* gtk_toggle_button_new_with_label (gchar *LABEL) Create a new `GtkToggleButton' object initializing it with the values in LABEL. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: void gtk_toggle_button_set_mode (GtkToggleButton *TOGGLE_BUTTON, gint DRAW_INDICATOR) - Function: void gtk_toggle_button_set_state (GtkToggleButton *TOGGLE_BUTTON, gint STATE) - Function: void gtk_toggle_button_toggled (GtkToggleButton *TOGGLE_BUTTON) - Function: GtkToggleButton* GTK_TOGGLE_BUTTON (gpointer OBJ) Cast a generic pointer to `GtkToggleButton*'. *Note Standard Macros::, for more info. - Function: GtkToggleButtonClass* GTK_TOGGLE_BUTTON_CLASS (gpointer CLASS) Cast a generic pointer to `GtkToggleButtonClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TOGGLE_BUTTON (gpointer OBJ) Determine if a generic pointer refers to a `GtkToggleButton' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkToolbar, Next: GtkTooltips, Prev: GtkToggleButton, Up: Widgets The tool bar widget =================== Description ----------- Options ------- - User Option: orientation * GTK_ORIENTATION_HORIZONTAL * GTK_ORIENTATION_VERTICAL - User Option: style * GTK_TOOLBAR_ICONS * GTK_TOOLBAR_TEXT * GTK_TOOLBAR_BOTH - User Option: space_size Signals ------- Functions --------- - Function: guint gtk_toolbar_get_type (void) Returns the `GtkToolbar' type identifier. - Function: GtkWidget* gtk_toolbar_new (GtkOrientation ORIENTATION, GtkToolbarStyle STYLE) Create a new `GtkToolbar' object initializing it with the values ORIENTATION and STYLE. `NULL' is returned on failure. - Function: void gtk_toolbar_append_item (GtkToolbar *TOOLBAR, char *TEXT, char *TOOLTIP_TEXT, GtkPixmap *ICON, GtkSignalFunc CALLBACK, gpointer USER_DATA) - Function: void gtk_toolbar_prepend_item (GtkToolbar *TOOLBAR, char *TEXT, char *TOOLTIP_TEXT, GtkPixmap *ICON, GtkSignalFunc CALLBACK, gpointer USER_DATA) - Function: void gtk_toolbar_insert_item (GtkToolbar *TOOLBAR, char *TEXT, char *TOOLTIP_TEXT, GtkPixmap *ICON, GtkSignalFunc CALLBACK, gpointer USER_DATA, gint POSITION) - Function: void gtk_toolbar_append_space (GtkToolbar *TOOLBAR) - Function: void gtk_toolbar_prepend_space (GtkToolbar *TOOLBAR) - Function: void gtk_toolbar_insert_space (GtkToolbar *TOOLBAR, gint POSITION) - Function: void gtk_toolbar_set_orientation (GtkToolbar *TOOLBAR, GtkOrientation ORIENTATION) - Function: void gtk_toolbar_set_style (GtkToolbar *TOOLBAR, GtkToolbarStyle STYLE) Set the STYLE of the TOOLBAR to STYLE. - Function: void gtk_toolbar_set_space_size (GtkToolbar *TOOLBAR, gint SPACE_SIZE) - Function: void gtk_toolbar_set_tooltips (GtkToolbar *TOOLBAR, gint ENABLE) - Function: GtkToolbar* GTK_TOOLBAR (gpointer OBJ) Cast a generic pointer to `GtkToolbar*'. *Note Standard Macros::, for more info. - Function: GtkToolbarClass* GTK_TOOLBAR_CLASS (gpointer CLASS) Cast a generic pointer to `GtkToolbarClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TOOLBAR (gpointer OBJ) Determine if a generic pointer refers to a `GtkToolbar' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkTooltips, Next: GtkTree, Prev: GtkToolbar, Up: Widgets The tool tips widget ==================== Description ----------- Options ------- Signals ------- Functions --------- - Function: GtkTooltips* gtk_tooltips_new (void) Create a new `GtkTooltips' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkTooltips* gtk_tooltips_ref (GtkTooltips *TOOLTIPS) - Function: void gtk_tooltips_unref (GtkTooltips *TOOLTIPS) - Function: void gtk_tooltips_free_string (gpointer DATA, gpointer USER_DATA) - Function: void gtk_tooltips_enable (GtkTooltips *TOOLTIPS) - Function: void gtk_tooltips_disable (GtkTooltips *TOOLTIPS) - Function: void gtk_tooltips_set_delay (GtkTooltips *TOOLTIPS, GtkWidget *WIDGET, gchar *TIPS_TEXT) - Function: void gtk_tooltips_set_colors (GtkTooltips *TOOLTIPS, GdkColor *BACKGROUND, GdkColor *FOREGROUND) - Function: GtkTooltips* GTK_TOOLTIPS (gpointer OBJ) Cast a generic pointer to `GtkTooltips*'. *Note Standard Macros::, for more info. - Function: GtkTooltipsClass* GTK_TOOLTIPS_CLASS (gpointer CLASS) Cast a generic pointer to `GtkTooltipsClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TOOLTIPS (gpointer OBJ) Determine if a generic pointer refers to a `GtkTooltips' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkTree, Next: GtkTreeItem, Prev: GtkTooltips, Up: Widgets The tree widget =============== Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_tree_get_type (void) Returns the `GtkTree' type identifier. - Function: GtkWidget* gtk_tree_new (void) Create a new `GtkTree' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: void gtk_tree_append (GtkTree *TREE, GtkWidget *CHILD) - Function: void gtk_tree_prepend (GtkTree *TREE, GtkWidget *CHILD) - Function: void gtk_tree_insert (GtkTree *TREE, GtkWidget *CHILD, gint POSITION) - Function: gint gtk_tree_child_position (GtkTree *TREE, GtkWidget *CHILD) - Function: void gtk_tree_clear_items (GtkTree *TREE, gint START, gint END) - Function: void gtk_tree_remove_items (GtkTree *TREE, GList *ITEMS) - Function: void gtk_tree_select_child (GtkTree *TREE, GtkWidget *CHILD) - Function: void gtk_tree_select_item (GtkTree *TREE, gint ITEM) - Function: void gtk_tree_unselect_child (GtkTree *TREE, GtkWidget *CHILD) - Function: void gtk_tree_unselect_item (GtkTree *TREE, gint ITEM) - Function: void gtk_tree_set_selection_mode (GtkTree *TREE, GtkSelectionMode MODE) - Function: void gtk_tree_set_view_mode (GtkTree *TREE, GtkTreeViewMode MODE) - Function: void gtk_tree_set_view_lines (GtkTree *TREE, guint FLAG) - Function: GtkTree* GTK_TREE (gpointer OBJ) Cast a generic pointer to `GtkTree*'. *Note Standard Macros::, for more info. - Function: GtkTreeClass* GTK_TREE_CLASS (gpointer CLASS) Cast a generic pointer to `GtkTreeClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TREE (gpointer OBJ) Determine if a generic pointer refers to a `GtkTree' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkTreeItem, Next: GtkVBox, Prev: GtkTree, Up: Widgets The tree item widget ==================== Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_tree_item_get_type (void) Returns the `GtkTreeItem' type identifier. - Function: GtkWidget* gtk_tree_item_new (void) Create a new `GtkTreeItem' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkWidget* gtk_tree_item_new_with_label (gchar *LABEL) Create a new `GtkTreeItem' object initializing it with the values in LABEL. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: void gtk_tree_item_set_subtree (GtkTreeItem *TREE_ITEM, GtkWidget *SUBTREE) - Function: void gtk_tree_item_select (GtkTreeItem *TREE_ITEM) - Function: void gtk_tree_item_deselect (GtkTreeItem *TREE_ITEM) - Function: void gtk_tree_item_expand (GtkTreeItem *TREE_ITEM) - Function: void gtk_tree_item_collapse (GtkTreeItem *TREE_ITEM) - Function: void gtk_tree_item_remove_subtree (GtkTreeItem *ITEM) - Function: GtkTreeItem* GTK_TREE_ITEM (gpointer OBJ) Cast a generic pointer to `GtkTreeItem*'. *Note Standard Macros::, for more info. - Function: GtkTreeItemClass* GTK_TREE_ITEM_CLASS (gpointer CLASS) Cast a generic pointer to `GtkTreeItemClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_TREE_ITEM (gpointer OBJ) Determine if a generic pointer refers to a `GtkTreeItem' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVBox, Next: GtkVButtonBox, Prev: GtkTreeItem, Up: Widgets The vertical box widget ======================= Description ----------- Options ------- - User Option: homogeneous This option controls whether each object in the box has the same size. In the case of the `GtkVBox', this refers to the height. If this option is set then the EXPAND option to the `gtk_box_pack' (*note GtkBox::) routines is always turned on. - User Option: spacing This option sets the amount of space that is added between the objects packed into this `GtkVBox' object. Signals ------- This widget does not define any new signals. Functions --------- - Function: guint gtk_vbox_get_type (void) Returns the `GtkVBox' type identifier. - Function: GtkWidget* gtk_vbox_new (gint HOMOGENEOUS, gint SPACING) Create a new `GtkVBox' object initializing it with the values in HOMOGENEOUS and SPACING. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVBox* GTK_VBOX (gpointer OBJ) Cast a generic pointer to `GtkVBox*'. *Note Standard Macros::, for more info. - Function: GtkVBoxClass* GTK_VBOX_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVBoxClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VBOX (gpointer OBJ) Determine if a generic pointer refers to a `GtkVBox' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVButtonBox, Next: GtkViewport, Prev: GtkVBox, Up: Widgets The vertical button box widget ============================== Description ----------- Options ------- - User Option: spacing - User Option: layout Signals ------- Functions --------- - Function: guint gtk_vbutton_box_get_type (void) Returns the `GtkVButtonBox' type identifier. - Function: GtkWidget* gtk_vbutton_box_new (void) Create a new `GtkVButtonBox' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: void gtk_vbutton_box_set_spacing_default (gint SPACING) - Function: void gtk_vbutton_box_set_layout_default (gint LAYOUT) - Function: gint gtk_vbutton_box_get_spacing_default (void) - Function: gint gtk_vbutton_box_get_layout_default (void) - Function: GtkVButtonBox* GTK_VBUTTON_BOX (gpointer OBJ) Cast a generic pointer to `GtkVButtonBox*'. *Note Standard Macros::, for more info. - Function: GtkVButtonBoxClass* GTK_VBUTTON_BOX_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVButtonBoxClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VBUTTON_BOX (gpointer OBJ) Determine if a generic pointer refers to a `GtkVButtonBox' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkViewport, Next: GtkVPaned, Prev: GtkVButtonBox, Up: Widgets The viewport widget =================== Description ----------- Signals ------- Functions --------- - Function: guint gtk_viewport_get_type (void) Returns the `GtkViewport' type identifier. - Function: GtkWidget* gtk_viewport_new (GtkAdjustment *HADJUSTMENT, GtkAdjustment *VADJUSTMENT) - Function: GtkAdjustment* gtk_viewport_get_hadjustment (GtkViewport *VIEWPORT) - Function: GtkAdjustment* gtk_viewport_get_vadjustment (GtkViewport *VIEWPORT) - Function: void gtk_viewport_set_hadjustment (GtkViewport *VIEWPORT, GtkAdjustment *ADJUSTMENT) - Function: void gtk_viewport_set_vadjustment (GtkViewport *VIEWPORT, GtkAdjustment *ADJUSTMENT) - Function: void gtk_viewport_set_shadow_type (GtkViewport *VIEWPORT, GtkShadowType TYPE) - Function: GtkViewport* GTK_VIEWPORT (gpointer OBJ) Cast a generic pointer to `GtkViewport*'. *Note Standard Macros::, for more info. - Function: GtkViewportClass* GTK_VIEWPORT_CLASS (gpointer CLASS) Cast a generic pointer to `GtkViewportClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VIEWPORT (gpointer OBJ) Determine if a generic pointer refers to a `GtkViewport' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVPaned, Next: GtkVRuler, Prev: GtkViewport, Up: Widgets The vertical paned widget ========================= Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_vpaned_get_type (void) Returns the `GtkVPaned' type identifier. - Function: GtkWidget* gtk_vpaned_new (void) Create a new `GtkVPaned' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVPaned* GTK_VPANED (gpointer OBJ) Cast a generic pointer to `GtkVPaned*'. *Note Standard Macros::, for more info. - Function: GtkVPanedClass* GTK_VPANED_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVPanedClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VPANED (gpointer OBJ) Determine if a generic pointer refers to a `GtkVPaned' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVRuler, Next: GtkVScale, Prev: GtkVPaned, Up: Widgets The vertical ruler widget ========================= Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_vruler_get_type (void) Returns the `GtkVRuler' type identifier. - Function: GtkWidget* gtk_vruler_new (void) Create a new `GtkVRuler' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVRuler* GTK_VRULER (gpointer OBJ) Cast a generic pointer to `GtkVRuler*'. *Note Standard Macros::, for more info. - Function: GtkVRulerClass* GTK_VRULER_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVRulerClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VRULER (gpointer OBJ) Determine if a generic pointer refers to a `GtkVRuler' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVScale, Next: GtkVScrollbar, Prev: GtkVRuler, Up: Widgets The vertical ruler widget ========================= Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_vscale_get_type (void) Returns the `GtkVScale' type identifier. - Function: GtkWidget* gtk_vscale_new (GtkAdjustment *ADJUSTMENT) Create a new `GtkVScale' object returning the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVScale* GTK_VSCALE (gpointer OBJ) Cast a generic pointer to `GtkVScale*'. *Note Standard Macros::, for more info. - Function: GtkVScaleClass* GTK_VSCALE_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVScaleClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VSCALE (gpointer OBJ) Determine if a generic pointer refers to a `GtkVScale' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVScrollbar, Next: GtkVSeparator, Prev: GtkVScale, Up: Widgets The vertical scrollbar widget ============================= Description ----------- Options ------- Signals ------- Functions --------- - Function: guint gtk_vscrollbar_get_type (void) Returns the `GtkVScrollbar' type identifier. - Function: GtkWidget* gtk_vscrollbar_new (GtkAdjustment *ADJUSTMENT) Create a new `GtkVScrollbar' object initializing it with the values in ADJUSTMENT. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVScrollbar* GTK_VSCROLLBAR (gpointer OBJ) Cast a generic pointer to `GtkVScrollbar*'. *Note Standard Macros::, for more info. - Function: GtkVScrollbarClass* GTK_VSCROLLBAR_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVScrollbarClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VSCROLLBAR (gpointer OBJ) Determine if a generic pointer refers to a `GtkVScrollbar' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkVSeparator, Next: GtkWidget, Prev: GtkVScrollbar, Up: Widgets The vertical separator widget ============================= Description ----------- Signals ------- Functions --------- - Function: guint gtk_vseparator_get_type (void) Returns the `GtkVSeparator' type identifier. - Function: GtkWidget* gtk_vseparator_new (void) Create a new `GtkVSeparator' object and return the new widget as a pointer to a `GtkWidget' object. `NULL' is returned on failure. - Function: GtkVSeparator* GTK_VSEPARATOR (gpointer OBJ) Cast a generic pointer to `GtkVSeparator*'. *Note Standard Macros::, for more info. - Function: GtkVSeparatorClass* GTK_VSEPARATOR_CLASS (gpointer CLASS) Cast a generic pointer to `GtkVSeparatorClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_VSEPARATOR (gpointer OBJ) Determine if a generic pointer refers to a `GtkVSeparator' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkWidget, Next: GtkWindow, Prev: GtkVSeparator, Up: Widgets The base widget =============== Description ----------- Signals ------- - Signal: void GtkWidget::show (GtkWidget *WIDGET) - Signal: void GtkWidget::hide (GtkWidget *WIDGET) - Signal: void GtkWidget::map (GtkWidget *WIDGET) - Signal: void GtkWidget::unmap (GtkWidget *WIDGET) - Signal: void GtkWidget::realize (GtkWidget *WIDGET) - Signal: void GtkWidget::unrealize (GtkWidget *WIDGET) - Signal: void GtkWidget::draw (GtkWidget *WIDGET, GdkRectangle *AREA) - Signal: void GtkWidget::draw_focus (GtkWidget *WIDGET) - Signal: void GtkWidget::draw_default (GtkWidget *WIDGET) - Signal: void GtkWidget::size_request (GtkWidget *WIDGET, GtkRequisition *REQUISITION) - Signal: void GtkWidget::size_allocate (GtkWidget *WIDGET, GtkAllocation *ALLOCATION) - Signal: void GtkWidget::state_changed (GtkWidget *WIDGET) - Signal: gint GtkWidget::install_accelerator (GtkWidget *WIDGET, gchar *SIGNAL_NAME, gchar KEY, guint8 MODIFIERS) - Signal: void GtkWidget::remove_accelerator (GtkWidget *WIDGET, gchar *SIGNAL_NAME) - Signal: gint GtkWidget::event (GtkWidget *WIDGET, GdkEvent *EVENT) - Signal: gint GtkWidget::button_press_event (GtkWidget *WIDGET, GdkEventButton *EVENT) - Signal: gint GtkWidget::button_release_event (GtkWidget *WIDGET, GdkEventButton *EVENT) - Signal: gint GtkWidget::motion_notify_event (GtkWidget *WIDGET, GdkEventMotion *EVENT) - Signal: gint GtkWidget::delete_event (GtkWidget *WIDGET, GdkEventAny *EVENT) - Signal: gint GtkWidget::destroy_event (GtkWidget *WIDGET, GdkEventAny *EVENT) - Signal: gint GtkWidget::expose_event (GtkWidget *WIDGET, GdkEventExpose *EVENT) - Signal: gint GtkWidget::key_press_event (GtkWidget *WIDGET, GdkEventKey *EVENT) - Signal: gint GtkWidget::key_release_event (GtkWidget *WIDGET, GdkEventKey *EVENT) - Signal: gint GtkWidget::enter_notify_event (GtkWidget *WIDGET, GdkEventCrossing *EVENT) - Signal: gint GtkWidget::leave_notify_event (GtkWidget *WIDGET, GdkEventCrossing *EVENT) - Signal: gint GtkWidget::configure_event (GtkWidget *WIDGET, GdkEventConfigure *EVENT) - Signal: gint GtkWidget::focus_in_event (GtkWidget *WIDGET, GdkEventFocus *EVENT) - Signal: gint GtkWidget::focus_out_event (GtkWidget *WIDGET, GdkEventFocus *EVENT) - Signal: gint GtkWidget::map_event (GtkWidget *WIDGET, GdkEventAny *EVENT) - Signal: gint GtkWidget::unmap_event (GtkWidget *WIDGET, GdkEventAny *EVENT) - Signal: gint GtkWidget::property_notify_event (GtkWidget *WIDGET, GdkEventProperty *EVENT) - Signal: gint GtkWidget::selection_clear_event (GtkWidget *WIDGET, GdkEventSelection *EVENT) - Signal: gint GtkWidget::selection_request_event (GtkWidget *WIDGET, GdkEventSelection *EVENT) - Signal: gint GtkWidget::selection_notify_event (GtkWidget *WIDGET, GdkEventSelection *EVENT) - Signal: gint GtkWidget::drop_event (GtkWidget *WIDGET, GdkEventDrop *EVENT) - Signal: gint GtkWidget::drag_begin_event (GtkWidget *WIDGET, GdkEventDragBegin *EVENT) - Signal: gint GtkWidget::other_event (GtkWidget *WIDGET, GdkEventOther *EVENT) Functions --------- - Function: guint gtk_widget_get_type (void) Returns the `GtkWidget' type identifier. - Function: void gtk_widget_class_init (GtkWidgetClass *CLASS) - Function: void gtk_widget_init (GtkWidget *WIDGET) - Function: void gtk_widget_destroy (GtkWidget *WIDGET) - Function: void gtk_widget_show (GtkWidget *WIDGET) - Function: void gtk_widget_hide (GtkWidget *WIDGET) - Function: void gtk_widget_map (GtkWidget *WIDGET) - Function: void gtk_widget_unmap (GtkWidget *WIDGET) - Function: void gtk_widget_realize (GtkWidget *WIDGET) - Function: void gtk_widget_unrealize (GtkWidget *WIDGET) - Function: void gtk_widget_draw (GtkWidget *WIDGET, GdkRectangle *AREA) - Function: void gtk_widget_draw_focus (GtkWidget *WIDGET) - Function: void gtk_widget_draw_children (GtkWidget *WIDGET) - Function: void gtk_widget_size_request (GtkWidget *WIDGET, GtkRequisition *REQUISITION) - Function: void gtk_widget_size_allocate (GtkWidget *WIDGET, GtkAllocation *ALLOCATION) - Function: void gtk_widget_install_accelerator (GtkWidget *WIDGET, GtkAcceleratorTable *TABLE, gchar *SIGNAL_NAME, gchar KEY, guint8 MODIFIERS) - Function: void gtk_widget_remove_accelerator (GtkWidget *WIDGET, GtkAcceleratorTable *TABLE, gchar *SIGNAL_NAME) - Function: gint gtk_widget_event (GtkWidget *WIDGET, GdkEvent *EVENT) - Function: void gtk_widget_reparent (GtkWidget *WIDGET, GtkWidget *NEW_PARENT) - Function: void gtk_widget_popup (GtkWidget *WIDGET, gint X, gint Y) - Function: gint gtk_widget_intersect (GtkWidget *WIDGET, GdkRectangle *AREA, GdkRectangle *INTERSECTION) - Function: void gtk_widget_grab_focus (GtkWidget *WIDGET) - Function: void gtk_widget_grab_default (GtkWidget *WIDGET) - Function: void gtk_widget_restore_state (GtkWidget *WIDGET) - Function: void gtk_widget_set_name (GtkWidget *WIDGET, gchar *NAME) - Function: void gtk_widget_set_state (GtkWidget *WIDGET, GtkStateType STATE) - Function: void gtk_widget_set_sensitive (GtkWidget *WIDGET, gint sensitive) - Function: void gtk_widget_set_parent (GtkWidget *WIDGET, GtkWidget *PARENT) - Function: void gtk_widget_set_style (GtkWidget *WIDGET, GtkStyle *STYLE) - Function: void gtk_widget_set_uposition (GtkWidget *WIDGET, gint X, gint Y) - Function: void gtk_widget_set_usize (GtkWidget *WIDGET, gint WIDTH, gint HEIGHT) - Function: GtkWidget* gtk_widget_get_toplevel (GtkWidget *WIDGET) - Function: GtkWidget* gtk_widget_get_ancestor (GtkWidget *WIDGET, gint TYPE) - Function: GdkColormap* gtk_widget_get_colormap (GtkWidget *WIDGET) - Function: GdkVisual* gtk_widget_get_visual (GtkWidget *VISUAL) - Function: GtkStyle* gtk_widget_get_style (GtkWidget *STYLE) - Function: GtkWidget* GTK_WIDGET (gpointer OBJ) Cast a generic pointer to `GtkWidget*'. *Note Standard Macros::, for more info. - Function: GtkWidgetClass* GTK_WIDGET_CLASS (gpointer CLASS) Cast a generic pointer to `GtkWidgetClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_WIDGET (gpointer OBJ) Determine if a generic pointer refers to a `GtkWidget' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkWindow, Prev: GtkWidget, Up: Widgets The window widget ================= Description ----------- Options ------- - User Option: type The TYPE options specify how this widget will interact with the window manager. Currently the following types and the effect they have on the window to window manager interaction is as follows. * `GTK_WINDOW_TOPLEVEL' * The option `GTK_WINDOW_TOPLEVEL' is usually used for the main application window that will remain for the entire application run. * `GTK_WINDOW_DIALOG' * The option `GTK_WINDOW_DIALOG' is usually used for transient windows. These windows will open up, gather some input or provide some application specific updates, then close. The window manager is free not to provide all the 'normal' window functions to this window. * `GTK_WINDOW_POPUP' * The option `GTK_WINDOW_POPUP' is usually used for transient windows. These windows are typically used for when no user interaction is required, to notify the user of some condition. Other uses for these types of windows are for 'about windows', startup windows and the like. Typically the window manager will *not* provide the usual widgets that surround the window. At the most all that will be provided is a border. Also note that windows that set this TYPE will not be in any window list of the window manager. Though this window will *not* get the kill and close widgets of the window manager they still can receive said events and should be taken into account. - User Option: title The TITLE option will set the title of the window in the window manager. *Note:* On windows that have the TYPE option set to `GTK_WINDOW_POPUP' there is a strong possibility that this will text will not be seen. - User Option: position The POSITION option will determine where the window will be displayed when it is finally drawn to the screen. Currently the following positions and the effect they have on window placement can be specified. * `GTK_WIN_POS_NONE' * This POSITION type will allow the window manager full freedom, depending on the current settings in the window manager. As to where the window will be placed. * `GTK_WIN_POS_CENTER' * This POSITION option will cause the window to center itself on the the screen. This option setting will take into account the VIRTUAL SCREEN size when calculating the center. This is *not* the same as the VIRTUAL DESKTOP setting of many window managers. It will center itself on the current VIRTUAL DESKTOP. * `GTK_WIN_POS_MOUSE' This POSITION option will cause the window to center itself under the mouse pointers' current location. Typical uses for this setting is in warning/error/informational dialogs where user interaction is desired. Signals ------- - Signal: void GtkWindow::move_resize (GtkWindow *WINDOW, gint *X, gint *Y, gint WIDTH, gint HEIGHT) - Signal: void GtkWindow::set_focus (GtkWindow *WINDOW, GtkWidget *FOCUS) Functions --------- - Function: guint gtk_window_get_type (void) Returns the `GtkWindow' type identifier. - Function: GtkWidget* gtk_window_new (GtkWindowType TYPE) Create a new `GtkWindow' object. The new widget is returned as a pointer to a `GtkWidget' object. `NULL' is returned on failure. The TYPE can be one of `GTK_WINDOW_TOPLEVEL', `GTK_WINDOW_DIALOG' or, `GTK_WINDOW_POPUP'. The TYPE value determines how this widget will interact with the window manager. - Function: void gtk_window_set_title (GtkWindow *WINDOW, gchar *TITLE) Set the title of this window to the text in the TITLE argument. It is important to not set the fields of the `GtkWindow' structure directly. - Function: void gtk_window_set_focus (GtkWindow *WINDOW, GtkWidget *FOCUS) - Function: void gtk_window_set_default (GtkWindow *WINDOW, GtkWidget *DEFAULTW) - Function: void gtk_window_set_policy (GtkWindow *WINDOW, gint ALLOW_SHRINK, gint ALLOW_GROW, gint AUTO_SHRINK) - Function: void gtk_window_add_accelerator_table (GtkWindow *WINDOW, GtkAcceleratorTable *TABLE) - Function: void gtk_window_remove_accelerator_table (GtkWindow *WINDOW, GtkAcceleratorTable *TABLE) - Function: void gtk_window_position (GtkWindow *WINDOW, GtkWindowPosition POSITION) Set the position that the window will be at when it is finally drawn to the screen. The POSITION argument effects the the position as described above. - Function: GtkWindow* GTK_WINDOW (gpointer OBJ) Cast a generic pointer to `GtkWindow*'. *Note Standard Macros::, for more info. - Function: GtkWindowClass* GTK_WINDOW_CLASS (gpointer CLASS) Cast a generic pointer to `GtkWindowClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_WINDOW (gpointer OBJ) Determine if a generic pointer refers to a `GtkWindow' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: Other Objects, Next: Miscellaneous, Prev: Widgets, Up: Top Utility objects *************** * Menu: * GtkAcceleratorTable:: The accelerator table object. * GtkAdjustment:: The adjustment object. * GtkGC:: The GC object. * GtkData:: The data object. * GtkStyle:: The style object.  File: gtk.info, Node: GtkAcceleratorTable, Next: GtkAdjustment, Prev: Other Objects, Up: Other Objects The accelerator table object ============================ Description ----------- Functions --------- - Function: GtkAcceleratorTable* gtk_accelerator_table_new (void) - Function: GtkAcceleratorTable* gtk_accelerator_table_find (GtkObject *OBJECT, gchar *SIGNAL_NAME, guchar ACCELERATOR_KEY, guint8 ACCELERATOR_MODS) - Function: GtkAccelerator *gtk_accelerator_table_ref (GtkAcceleratorTable *TABLE) - Function: void gtk_accelerator_table_unref (GtkAcceleratorTable *TABLE) - Function: void gtk_accelerator_table_install (GtkAcceleratorTable *TABLE, GtkObject *OBJECT, gchar *SIGNAL_NAME, guchar ACCELERATOR_KEY, guint8 ACCELERATOR_MODS) - Function: void gtk_accelerator_table_remove (GtkAcceleratorTable *TABLE, GtkObject *OBJECT, gchar *SIGNAL_NAME) - Function: void gtk_accelerator_table_check (GtkAcceleratorTable *TABLE, guchar ACCELERATOR_KEY, guint8 ACCELERATOR_MODS) - Function: void gtk_accelerator_table_set_mod_mask (GtkAcceleratorTable *TABLE, guint8 MODIFIER_MASK)  File: gtk.info, Node: GtkAdjustment, Next: GtkGC, Prev: GtkAcceleratorTable, Up: Other Objects The adjustment object ===================== Description ----------- Functions --------- - Function: guint gtk_adjustment_get_type (void) Returns the `GtkAdjustment' type identifier. - Function: GtkObject* gtk_adjustment_new (gfloat VALUE, gfloat LOWER, gfloat UPPER, gfloat STEP_INCREMENT, gfloat PAGE_INCREMENT, gfloat PAGE_SIZE) - Function: GtkGtkAdjustment* GTK_ADJUSTMENT (gpointer OBJ) Cast a generic pointer to `GtkGtkAdjustment*'. *Note Standard Macros::, for more info. - Function: GtkGtkAdjustmentClass* GTK_ADJUSTMENT_CLASS (gpointer CLASS) Cast a generic pointer to `GtkGtkAdjustmentClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_ADJUSTMENT (gpointer OBJ) Determine if a generic pointer refers to a `GtkGtkAdjustment' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkGC, Next: GtkData, Prev: GtkAdjustment, Up: Other Objects The GC object ============= Description ----------- Functions --------- - Function: GdkGC* gtk_gc_get (gint DEPTH, GdkColormap *COLORMAP, GdkGCValues *VALUES, GdkGCValuesMask VALUES_MASK) - Function: void gtk_gc_release (GdkGC *GC)  File: gtk.info, Node: GtkData, Next: GtkStyle, Prev: GtkGC, Up: Other Objects The data object =============== Description ----------- Functions --------- - Function: guint gtk_data_get_type (void) Returns the `GtkData' type identifier. - Function: GtkData* GTK_DATA (gpointer OBJ) Cast a generic pointer to `GtkData*'. *Note Standard Macros::, for more info. - Function: GtkDataClass* GTK_DATA_CLASS (gpointer CLASS) Cast a generic pointer to `GtkDataClass*'. *Note Standard Macros::, for more info. - Function: gint GTK_IS_DATA (gpointer OBJ) Determine if a generic pointer refers to a `GtkData' object. *Note Standard Macros::, for more info.  File: gtk.info, Node: GtkStyle, Prev: GtkData, Up: Other Objects The style object ================ Description ----------- Functions ---------  File: gtk.info, Node: Miscellaneous, Next: Examples, Prev: Other Objects, Up: Top Initialization, exit and other features *************************************** * Menu: * Initialization and exit:: Initializing and exiting GTK. * Customization:: Customizing the library. * Menu Factories:: Simplified menu creation. * Tree Factories:: Simplified tree creation. * Tool Tips:: Pop up help mechanism. * Resource Files:: Resource files. * Standard Macros:: Macros defined by all objects.  File: gtk.info, Node: Initialization and exit, Next: Customization, Prev: Miscellaneous, Up: Miscellaneous Initializing and exiting GTK ============================ Initializing ------------ Before any GTK functions can be utilized the library must be initialized. This can be accomplished by calling the `gtk_init' function. The arguments you pass to this function should be the same arguments that were passed to your application. This function will parse the arguments that it understands and handle initializing the GDK library for you. Exiting ------- Functions --------- - Function: void gtk_init (int *ARGC, char **ARGV) Function to initialize GTK and GDK for you. This function will remove any command line arguments from ARGC and ARGV that it understands. int main (int argc, char *argv[]) { ...Any local variables or non GTK/GDK initialization /* Initialize GTK. */ gtk_init(&argc, &argc); } - Function: void gtk_exit (int ERROR_CODE) Exit GTK and perform any necessary cleanup. `gtk_exit' will call the systems `exit' function passing ERROR_CODE as the parameter. - Function: gint gtk_events_pending (void) Returns the number of events pending on the event queue. - Function: void gtk_main (void) - Function: guint gtk_main_level (void) - Function: void gtk_main_quit (void) A call to this function will cause the `gtk_main' function to exit, thereby allowing your application to exit.  File: gtk.info, Node: Customization, Next: Menu Factories, Prev: Initialization and exit, Up: Miscellaneous Customization of the library ============================ Description ----------- Like other X-windows applications the GTK library provides a way for the user and application programmer to change the colors of just about any widget. You can also specify what pixmap should be tiled onto the background of some widgets. All this is handled through a similar method as in the standard X-windows environment, through the use of 'rc' files. The format and functions available in these files is discussed below. Functions --------- The following functions are available to handle the rc files. - Function: void gtk_rc_parse (char *FILENAME) This function will parse the FILENAME that is passed to it as its argument. It will use the style settings for the widget types defined there. - Function: void gtk_rc_init (void) This function will initialize the rc file parser, normally this need not be called directly as the `gtk_rc_parse' function will handle this for you.  File: gtk.info, Node: Menu Factories, Next: Tree Factories, Prev: Customization, Up: Miscellaneous Simplified menu creation ========================  File: gtk.info, Node: Tree Factories, Next: Tool Tips, Prev: Menu Factories, Up: Miscellaneous Simplified tree creation ========================  File: gtk.info, Node: Tool Tips, Next: Resource Files, Prev: Tree Factories, Up: Miscellaneous Pop up help mechanism ===================== Description -----------  File: gtk.info, Node: Resource Files, Next: Standard Macros, Prev: Tool Tips, Up: Miscellaneous Resource Files ==============  File: gtk.info, Node: Standard Macros, Prev: Resource Files, Up: Miscellaneous Macros defined by all objects ============================= There are three macros that are defined by all object types. The first two are used for performing casts and the last is for querying whether an object is of a particular type. These macros are both conveniences and debugging tools. If the GTK library was compiled with `NDEBUG' defined as a preprocessor symbol (via the -DNDEBUG to cc), then the macros check the object type and emit a warning if the cast is invalid. Doing such checking is fairly expensive since the cast macros are used everywhere in GTK and would normally be turned off in a public release of a product. Note: The functions below are indeed macros, but they may be considered functions for most purposes. - Function: Gtk* GTK_ (gpointer OBJ) Cast a generic pointer to `Gtk*'. This function is provided in order to be able to provide checking during development stages of code development since it is possible to examine the actual type of object (using `gtk_type_is_a') before performing the cast. - Function: GtkClass* GTK__CLASS (gpointer CLASS) Cast a generic pointer to `GtkClass*'. Like `GTK_', this function is, in reality, a macro. - Function: gint GTK_IS_ (gpointer OBJ) Determine if a generic pointer refers to a `Gtk' object. This function is, in reality, a macro wrapper around the `gtk_type_is_a' function (*note Types::).  File: gtk.info, Node: Examples, Next: Object Implementation, Prev: Miscellaneous, Up: Top Using GTK ********* * Menu: * Simple:: The simplest GTK program. * Hello World:: Hello world in GTK. * Hello World II:: An enhanced hello world. * Hello World III:: Making Hello World II robust.  File: gtk.info, Node: Simple, Next: Hello World, Prev: Examples, Up: Examples The simplest GTK program ======================== The 16 line GTK program shown below is just about the simplest possible program which uses GTK. (Well, technically, you don't have to create the window and it would still be a program which uses GTK). The program, when compiled and run, will create a single window 200x200 pixels in size. The program does not exit until its is explicitly killed using the shell or a window manager function. #include int main (int argc, char *argv[]) { GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); gtk_main (); return 0; } The first point of interest in this program is the standard initialization line. gtk_init (&argc, &argv); Almost every GTK program will contain such a line. GTK will initialize itself and GDK and remove any command line arguments it recognizes from ARGC and ARGV. The next two lines of code create and display a window. window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_widget_show (window); The `GTK_WINDOW_TOPLEVEL' argument specifies that we want the window to undergo window manager decoration and placement. One might be lead to think that the window, since it has no children, would be 0x0 pixels in size. But, this is not the case because a window that has no children defaults to 200x200 pixels in size. Mainly because 0x0 windows are annoying to manipulate or even see in some cases. The last line enters the GTK main processing loop. gtk_main (); Normally, `gtk_main' is called once and the program should exit when it returns. *Note Initialization and exit::.