📄 gtktoolbar.c
字号:
toolbar->num_children);}voidgtk_toolbar_prepend_space (GtkToolbar *toolbar){ gtk_toolbar_insert_element (toolbar, GTK_TOOLBAR_CHILD_SPACE, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 0);}voidgtk_toolbar_insert_space (GtkToolbar *toolbar, gint position){ gtk_toolbar_insert_element (toolbar, GTK_TOOLBAR_CHILD_SPACE, NULL, NULL, NULL, NULL, NULL, NULL, NULL, position);}voidgtk_toolbar_append_widget (GtkToolbar *toolbar, GtkWidget *widget, const gchar *tooltip_text, const gchar *tooltip_private_text){ gtk_toolbar_insert_element (toolbar, GTK_TOOLBAR_CHILD_WIDGET, widget, NULL, tooltip_text, tooltip_private_text, NULL, NULL, NULL, toolbar->num_children);}voidgtk_toolbar_prepend_widget (GtkToolbar *toolbar, GtkWidget *widget, const gchar *tooltip_text, const gchar *tooltip_private_text){ gtk_toolbar_insert_element (toolbar, GTK_TOOLBAR_CHILD_WIDGET, widget, NULL, tooltip_text, tooltip_private_text, NULL, NULL, NULL, toolbar->num_children);}voidgtk_toolbar_insert_widget (GtkToolbar *toolbar, GtkWidget *widget, const char *tooltip_text, const char *tooltip_private_text, gint position){ gtk_toolbar_insert_element (toolbar, GTK_TOOLBAR_CHILD_WIDGET, widget, NULL, tooltip_text, tooltip_private_text, NULL, NULL, NULL, position);}GtkWidget *gtk_toolbar_append_element (GtkToolbar *toolbar, GtkToolbarChildType type, GtkWidget *widget, const char *text, const char *tooltip_text, const char *tooltip_private_text, GtkWidget *icon, GtkSignalFunc callback, gpointer user_data){ return gtk_toolbar_insert_element (toolbar, type, widget, text, tooltip_text, tooltip_private_text, icon, callback, user_data, toolbar->num_children);}GtkWidget *gtk_toolbar_prepend_element (GtkToolbar *toolbar, GtkToolbarChildType type, GtkWidget *widget, const char *text, const char *tooltip_text, const char *tooltip_private_text, GtkWidget *icon, GtkSignalFunc callback, gpointer user_data){ return gtk_toolbar_insert_element (toolbar, type, widget, text, tooltip_text, tooltip_private_text, icon, callback, user_data, 0);}GtkWidget *gtk_toolbar_insert_element (GtkToolbar *toolbar, GtkToolbarChildType type, GtkWidget *widget, const char *text, const char *tooltip_text, const char *tooltip_private_text, GtkWidget *icon, GtkSignalFunc callback, gpointer user_data, gint position){ GtkToolbarChild *child; GtkWidget *vbox; g_return_val_if_fail (toolbar != NULL, NULL); g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), NULL); if (type == GTK_TOOLBAR_CHILD_WIDGET) { g_return_val_if_fail (widget != NULL, NULL); g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL); } else if (type != GTK_TOOLBAR_CHILD_RADIOBUTTON) g_return_val_if_fail (widget == NULL, NULL); if (type == GTK_TOOLBAR_CHILD_SPACE) child = (GtkToolbarChild *) g_new (GtkToolbarChildSpace, 1); else child = g_new (GtkToolbarChild, 1); child->type = type; child->icon = NULL; child->label = NULL; switch (type) { case GTK_TOOLBAR_CHILD_SPACE: child->widget = NULL; ((GtkToolbarChildSpace *) child)->alloc_x = ((GtkToolbarChildSpace *) child)->alloc_y = 0; break; case GTK_TOOLBAR_CHILD_WIDGET: child->widget = widget; break; case GTK_TOOLBAR_CHILD_BUTTON: case GTK_TOOLBAR_CHILD_TOGGLEBUTTON: case GTK_TOOLBAR_CHILD_RADIOBUTTON: if (type == GTK_TOOLBAR_CHILD_BUTTON) { child->widget = gtk_button_new (); gtk_button_set_relief (GTK_BUTTON (child->widget), toolbar->relief); } else if (type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON) { child->widget = gtk_toggle_button_new (); gtk_button_set_relief (GTK_BUTTON (child->widget), toolbar->relief); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (child->widget), FALSE); } else { child->widget = gtk_radio_button_new (widget ? gtk_radio_button_group (GTK_RADIO_BUTTON (widget)) : NULL); gtk_button_set_relief (GTK_BUTTON (child->widget), toolbar->relief); gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (child->widget), FALSE); } GTK_WIDGET_UNSET_FLAGS (child->widget, GTK_CAN_FOCUS); if (callback) gtk_signal_connect (GTK_OBJECT (child->widget), "clicked", callback, user_data); vbox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (child->widget), vbox); gtk_widget_show (vbox); if (text) { child->label = gtk_label_new (text); gtk_box_pack_end (GTK_BOX (vbox), child->label, FALSE, FALSE, 0); if (toolbar->style != GTK_TOOLBAR_ICONS) gtk_widget_show (child->label); } if (icon) { child->icon = GTK_WIDGET (icon); gtk_box_pack_end (GTK_BOX (vbox), child->icon, FALSE, FALSE, 0); if (toolbar->style != GTK_TOOLBAR_TEXT) gtk_widget_show (child->icon); } gtk_widget_show (child->widget); break; default: g_assert_not_reached (); } if ((type != GTK_TOOLBAR_CHILD_SPACE) && tooltip_text) gtk_tooltips_set_tip (toolbar->tooltips, child->widget, tooltip_text, tooltip_private_text); toolbar->children = g_list_insert (toolbar->children, child, position); toolbar->num_children++; if (type != GTK_TOOLBAR_CHILD_SPACE) { gtk_widget_set_parent (child->widget, GTK_WIDGET (toolbar)); if (GTK_WIDGET_REALIZED (child->widget->parent)) gtk_widget_realize (child->widget); if (GTK_WIDGET_VISIBLE (child->widget->parent) && GTK_WIDGET_VISIBLE (child->widget)) { if (GTK_WIDGET_MAPPED (child->widget->parent)) gtk_widget_map (child->widget); gtk_widget_queue_resize (child->widget); } } else gtk_widget_queue_resize (GTK_WIDGET (toolbar)); return child->widget;}voidgtk_toolbar_set_orientation (GtkToolbar *toolbar, GtkOrientation orientation){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); gtk_signal_emit (GTK_OBJECT (toolbar), toolbar_signals[ORIENTATION_CHANGED], orientation);}voidgtk_toolbar_set_style (GtkToolbar *toolbar, GtkToolbarStyle style){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); gtk_signal_emit (GTK_OBJECT (toolbar), toolbar_signals[STYLE_CHANGED], style);}voidgtk_toolbar_set_space_size (GtkToolbar *toolbar, gint space_size){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (toolbar->space_size != space_size) { toolbar->space_size = space_size; gtk_widget_queue_resize (GTK_WIDGET (toolbar)); }}voidgtk_toolbar_set_space_style (GtkToolbar *toolbar, GtkToolbarSpaceStyle space_style){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (toolbar->space_style != space_style) { toolbar->space_style = space_style; gtk_widget_queue_resize (GTK_WIDGET (toolbar)); }}voidgtk_toolbar_set_tooltips (GtkToolbar *toolbar, gint enable){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (enable) gtk_tooltips_enable (toolbar->tooltips); else gtk_tooltips_disable (toolbar->tooltips);}voidgtk_toolbar_set_button_relief (GtkToolbar *toolbar, GtkReliefStyle relief){ GList *children; GtkToolbarChild *child; g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (toolbar->relief != relief) { toolbar->relief = relief; for (children = toolbar->children; children; children = children->next) { child = children->data; if (child->type == GTK_TOOLBAR_CHILD_BUTTON || child->type == GTK_TOOLBAR_CHILD_RADIOBUTTON || child->type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON) gtk_button_set_relief (GTK_BUTTON (child->widget), relief); } gtk_widget_queue_resize (GTK_WIDGET (toolbar)); }}GtkReliefStylegtk_toolbar_get_button_relief (GtkToolbar *toolbar){ g_return_val_if_fail (toolbar != NULL, GTK_RELIEF_NORMAL); g_return_val_if_fail (GTK_IS_TOOLBAR (toolbar), GTK_RELIEF_NORMAL); return toolbar->relief;}static voidgtk_real_toolbar_orientation_changed (GtkToolbar *toolbar, GtkOrientation orientation){ g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (toolbar->orientation != orientation) { toolbar->orientation = orientation; gtk_widget_queue_resize (GTK_WIDGET (toolbar)); }}static voidgtk_real_toolbar_style_changed (GtkToolbar *toolbar, GtkToolbarStyle style){ GList *children; GtkToolbarChild *child; g_return_if_fail (toolbar != NULL); g_return_if_fail (GTK_IS_TOOLBAR (toolbar)); if (toolbar->style != style) { toolbar->style = style; for (children = toolbar->children; children; children = children->next) { child = children->data; if (child->type == GTK_TOOLBAR_CHILD_BUTTON || child->type == GTK_TOOLBAR_CHILD_RADIOBUTTON || child->type == GTK_TOOLBAR_CHILD_TOGGLEBUTTON) switch (style) { case GTK_TOOLBAR_ICONS: if (child->icon && !GTK_WIDGET_VISIBLE (child->icon)) gtk_widget_show (child->icon); if (child->label && GTK_WIDGET_VISIBLE (child->label)) gtk_widget_hide (child->label); break; case GTK_TOOLBAR_TEXT: if (child->icon && GTK_WIDGET_VISIBLE (child->icon)) gtk_widget_hide (child->icon); if (child->label && !GTK_WIDGET_VISIBLE (child->label)) gtk_widget_show (child->label); break; case GTK_TOOLBAR_BOTH: if (child->icon && !GTK_WIDGET_VISIBLE (child->icon)) gtk_widget_show (child->icon); if (child->label && !GTK_WIDGET_VISIBLE (child->label)) gtk_widget_show (child->label); break; default: g_assert_not_reached (); } } gtk_widget_queue_resize (GTK_WIDGET (toolbar)); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -