static void nemo_location_bar_class_init (NemoLocationBarClass *klass) { GObjectClass *gobject_class; GtkBindingSet *binding_set; gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = finalize; klass->cancel = nemo_location_bar_cancel; signals[CANCEL] = g_signal_new ("cancel", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (NemoLocationBarClass, cancel), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); signals[LOCATION_CHANGED] = g_signal_new ("location-changed", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 1, G_TYPE_OBJECT); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "cancel", 0); g_type_class_add_private (klass, sizeof (NemoLocationBarDetails)); }
static gboolean plugin_load(PurplePlugin *plugin) { GtkTextViewClass *parent_class = g_type_class_ref(GTK_TYPE_TEXT_VIEW); GtkBindingSet *binding_set = gtk_binding_set_by_class (parent_class); gtk_binding_entry_add_signal (binding_set, GDK_s, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_STRIKE); return TRUE; }
/** * Create a conversation window and merge it with the given Buddy List window * * This is the real core of the plugin right here. It initializes the Buddy * List with a conversation window just like the project advertises. See the * function pwm_split_conversation() to reverse this effect. * * @param[in] gtkblist The Buddy List that will be able to show conversations **/ void pwm_merge_conversation(PidginBuddyList *gtkblist) { PidginWindow * gtkconvwin; /*< The mutilated conversations for gtkblist */ GtkBindingSet *binding_set; /*< The binding set of GtkIMHtml widgets */ /* Sanity check: If the Buddy List is already merged, don't mess with * it. */ if (pwm_blist_get_convs(gtkblist) != NULL) return; binding_set = gtk_binding_set_by_class(g_type_class_ref(GTK_TYPE_IMHTML)); gtkconvwin = pidgin_conv_window_new(); /* Tie the Buddy List and conversation window instances together. */ g_object_set_data(G_OBJECT(gtkblist->notebook), "pwm_convs", gtkconvwin); g_object_set_data(G_OBJECT(gtkconvwin->notebook), "pwm_blist", gtkblist); /* Backup the Buddy List window title for restoring it later. */ pwm_store(gtkblist, "title", g_strdup(gtk_window_get_title(GTK_WINDOW(gtkblist->window)))); /* Move the conversation notebook into the Buddy List window. */ pwm_create_paned_layout(gtkblist, purple_prefs_get_string(PREF_SIDE)); /* Display the instructions tab for new users. */ pwm_init_dummy_conversation(gtkblist); pwm_show_dummy_conversation(gtkblist); /* Pass focus events from Buddy List to conversation window. */ g_object_connect(G_OBJECT(gtkblist->window), "signal::focus-in-event", G_CALLBACK(focus_in_event_cb), gtkconvwin->window, NULL); /* Point the conversation window structure at the Buddy List's window. */ pwm_store(gtkblist, "conv_window", gtkconvwin->window); gtkconvwin->window = gtkblist->window; /* Block these "move-cursor" bindings for conversation event handlers. */ /* XXX: These are skipped in any GtkIMHtml, not just the conversations. */ /* XXX: Furthermore, there is no event to undo this effect. */ gtk_binding_entry_skip(binding_set, GDK_Up, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_Down, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_Page_Up, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_Page_Down, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_KP_Page_Up, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_KP_Page_Down, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_Tab, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_KP_Tab, GDK_CONTROL_MASK); gtk_binding_entry_skip(binding_set, GDK_ISO_Left_Tab, GDK_CONTROL_MASK); }
/* * Keep code in panel-applet-bindings.c in sync! */ static void panel_util_key_event_is_binding (GdkEventKey *event, GType type, const char *signal_name, gboolean *is_popup, gboolean *is_popup_modifier) { GtkBindingSet *binding_set; GtkBindingEntry *binding_entry; gboolean popup = FALSE; gboolean popup_modifier = FALSE; guint modifiers; char *signal_dash; char *signal_underscore; modifiers = event->state & gtk_accelerator_get_default_mod_mask (); signal_dash = g_strdup (signal_name); g_strdelimit (signal_dash, "_", '-'); signal_underscore = g_strdup (signal_name); g_strdelimit (signal_underscore, "-", '_'); binding_set = gtk_binding_set_by_class (g_type_class_peek (type)); for (binding_entry = binding_set->entries; binding_entry != NULL; binding_entry = binding_entry->set_next) { GtkBindingSignal *binding_signal; for (binding_signal = binding_entry->signals; binding_signal != NULL; binding_signal = binding_signal->next) { if (g_strcmp0 (binding_signal->signal_name, signal_dash) == 0 || g_strcmp0 (binding_signal->signal_name, signal_underscore) == 0) { if (binding_entry->keyval != event->keyval) break; popup = modifiers == binding_entry->modifiers; popup_modifier = modifiers == (panel_bindings_get_mouse_button_modifier_keymask ()|binding_entry->modifiers); break; } } if (popup || popup_modifier) break; } if (is_popup) *is_popup = popup; if (is_popup_modifier) *is_popup_modifier = popup_modifier; g_free (signal_dash); g_free (signal_underscore); }
static void gtk_panda_text_class_init ( GtkPandaTextClass * klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class; GtkBindingSet *binding_set; widget_class = (GtkWidgetClass *) klass; widget_class->focus_in_event = gtk_panda_text_focus_in; parent_class = g_type_class_ref(GTK_TYPE_TEXT_VIEW); klass->activate = gtk_panda_text_activate; gobject_class->set_property = gtk_panda_text_set_property; gobject_class->get_property = gtk_panda_text_get_property; g_object_class_install_property (gobject_class, PROP_TEXT, g_param_spec_string ("text", _("Text"), _("Text"), "", G_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ENABLE_XIM, g_param_spec_boolean ("xim_enabled", _("Enable Input Method"), _("Whether enable input method controll"), FALSE, G_PARAM_READWRITE)); signals[ACTIVATE] = g_signal_new ("activate", G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkPandaTextClass, activate), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); signals[CHANGED] = g_signal_new ("changed", G_OBJECT_CLASS_TYPE (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkPandaTextClass, changed), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Return, GDK_CONTROL_MASK, "activate", 0); }
static void rb_podcast_add_dialog_class_init (RBPodcastAddDialogClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->constructed = impl_constructed; object_class->dispose = impl_dispose; object_class->set_property = impl_set_property; object_class->get_property = impl_get_property; klass->close = impl_close; g_object_class_install_property (object_class, PROP_PODCAST_MANAGER, g_param_spec_object ("podcast-manager", "podcast-manager", "RBPodcastManager instance", RB_TYPE_PODCAST_MANAGER, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); g_object_class_install_property (object_class, PROP_SHELL, g_param_spec_object ("shell", "shell", "RBShell instance", RB_TYPE_SHELL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); signals[CLOSE] = g_signal_new ("close", RB_TYPE_PODCAST_ADD_DIALOG, G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (RBPodcastAddDialogClass, close), NULL, NULL, NULL, G_TYPE_NONE, 0); signals[CLOSED] = g_signal_new ("closed", RB_TYPE_PODCAST_ADD_DIALOG, G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (RBPodcastAddDialogClass, closed), NULL, NULL, NULL, G_TYPE_NONE, 0); g_type_class_add_private (object_class, sizeof (RBPodcastAddDialogPrivate)); gtk_binding_entry_add_signal (gtk_binding_set_by_class (klass), GDK_KEY_Escape, 0, "close", 0); }
static void thunar_abstract_dialog_class_init (ThunarAbstractDialogClass *klass) { GtkDialogClass *gtkdialog_class; GtkBindingSet *binding_set; gtkdialog_class = GTK_DIALOG_CLASS (klass); gtkdialog_class->close = thunar_abstract_dialog_close; /* connect additional key bindings to the GtkDialog::close action signal */ binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_w, GDK_CONTROL_MASK, "close", 0); gtk_binding_entry_add_signal (binding_set, GDK_W, GDK_CONTROL_MASK, "close", 0); }
static void gimp_container_popup_class_init (GimpContainerPopupClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkBindingSet *binding_set; popup_signals[CANCEL] = g_signal_new ("cancel", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpContainerPopupClass, cancel), NULL, NULL, gimp_marshal_VOID__VOID, G_TYPE_NONE, 0); popup_signals[CONFIRM] = g_signal_new ("confirm", G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpContainerPopupClass, confirm), NULL, NULL, gimp_marshal_VOID__VOID, G_TYPE_NONE, 0); object_class->finalize = gimp_container_popup_finalize; widget_class->map = gimp_container_popup_map; widget_class->button_press_event = gimp_container_popup_button_press; widget_class->key_press_event = gimp_container_popup_key_press; klass->cancel = gimp_container_popup_real_cancel; klass->confirm = gimp_container_popup_real_confirm; binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "cancel", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Return, 0, "confirm", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Enter, 0, "confirm", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_ISO_Enter, 0, "confirm", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_space, 0, "confirm", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Space, 0, "confirm", 0); }
static void nautilus_navigation_bar_class_init (NautilusNavigationBarClass *klass) { GtkObjectClass *object_class; GtkBindingSet *binding_set; object_class = GTK_OBJECT_CLASS (klass); signals[ACTIVATE] = g_signal_new ("activate", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusNavigationBarClass, activate), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); signals[CANCEL] = g_signal_new ("cancel", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (NautilusNavigationBarClass, cancel), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); signals[LOCATION_CHANGED] = g_signal_new ("location_changed", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (NautilusNavigationBarClass, location_changed), NULL, NULL, g_cclosure_marshal_VOID__STRING, G_TYPE_NONE, 1, G_TYPE_STRING); klass->activate = NULL; klass->cancel = NULL; binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "cancel", 0); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, nautilus_navigation_bar, get_location); EEL_ASSIGN_MUST_OVERRIDE_SIGNAL (klass, nautilus_navigation_bar, set_location); }
static inline GtkBindingSet * get_binding_set (GtkBindingSet *binding_set) { if (!binding_set) { PanelToplevelClass *toplevel_class; toplevel_class = g_type_class_peek (PANEL_TYPE_TOPLEVEL); if (!toplevel_class) return NULL; g_assert (PANEL_IS_TOPLEVEL_CLASS (toplevel_class)); binding_set = gtk_binding_set_by_class (toplevel_class); } return binding_set; }
static void gimp_container_grid_view_class_init (GimpContainerGridViewClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkBindingSet *binding_set; binding_set = gtk_binding_set_by_class (klass); widget_class->focus = gimp_container_grid_view_focus; widget_class->popup_menu = gimp_container_grid_view_popup_menu; klass->move_cursor = gimp_container_grid_view_move_cursor; grid_view_signals[MOVE_CURSOR] = g_signal_new ("move-cursor", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpContainerGridViewClass, move_cursor), NULL, NULL, gimp_marshal_BOOLEAN__ENUM_INT, G_TYPE_BOOLEAN, 2, GTK_TYPE_MOVEMENT_STEP, G_TYPE_INT); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Home, 0, "move-cursor", 2, G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, G_TYPE_INT, -1); gtk_binding_entry_add_signal (binding_set, GDK_KEY_End, 0, "move-cursor", 2, G_TYPE_ENUM, GTK_MOVEMENT_BUFFER_ENDS, G_TYPE_INT, 1); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Up, 0, "move-cursor", 2, G_TYPE_ENUM, GTK_MOVEMENT_PAGES, G_TYPE_INT, -1); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Down, 0, "move-cursor", 2, G_TYPE_ENUM, GTK_MOVEMENT_PAGES, G_TYPE_INT, 1); gimp_rgba_set (&white_color, 1.0, 1.0, 1.0, 1.0); gimp_rgba_set (&black_color, 0.0, 0.0, 0.0, 1.0); }
static void thunar_location_entry_class_init (ThunarLocationEntryClass *klass) { GtkBindingSet *binding_set; GObjectClass *gobject_class; /* determine the parent type class */ thunar_location_entry_parent_class = g_type_class_peek_parent (klass); gobject_class = G_OBJECT_CLASS (klass); gobject_class->finalize = thunar_location_entry_finalize; gobject_class->get_property = thunar_location_entry_get_property; gobject_class->set_property = thunar_location_entry_set_property; klass->reset = thunar_location_entry_reset; /* override ThunarNavigator's properties */ g_object_class_override_property (gobject_class, PROP_CURRENT_DIRECTORY, "current-directory"); /* override ThunarComponent's properties */ g_object_class_override_property (gobject_class, PROP_SELECTED_FILES, "selected-files"); g_object_class_override_property (gobject_class, PROP_UI_MANAGER, "ui-manager"); /** * ThunarLocationEntry::reset: * @location_entry : a #ThunarLocationEntry. * * Emitted by @location_entry whenever the user requests to * reset the @location_entry contents to the current directory. * This is an internal signal used to bind the action to keys. **/ g_signal_new (I_("reset"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (ThunarLocationEntryClass, reset), g_signal_accumulator_true_handled, NULL, _thunar_marshal_BOOLEAN__VOID, G_TYPE_BOOLEAN, 0); /* setup the key bindings for the location entry */ binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "reset", 0); }
static void nemo_blank_desktop_window_class_init (NemoBlankDesktopWindowClass *klass) { GtkWidgetClass *wclass = GTK_WIDGET_CLASS (klass); GObjectClass *oclass = G_OBJECT_CLASS (klass); GtkBindingSet *binding_set; oclass->constructed = nemo_blank_desktop_window_constructed; oclass->dispose = nemo_blank_desktop_window_dispose; oclass->finalize = nemo_blank_desktop_window_finalize; oclass->set_property = nemo_blank_desktop_window_set_property; oclass->get_property = nemo_blank_desktop_window_get_property; wclass->realize = realize; wclass->unrealize = unrealize; wclass->map = map; properties[PROP_MONITOR] = g_param_spec_int ("monitor", "Monitor number", "The monitor number this window is assigned to", G_MININT, G_MAXINT, 0, G_PARAM_CONSTRUCT_ONLY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); signals[PLUGIN_MANAGER] = g_signal_new ("plugin-manager", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (NemoBlankDesktopWindowClass, plugin_manager), NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 0); g_type_class_add_private (klass, sizeof (NemoBlankDesktopWindowDetails)); g_object_class_install_properties (oclass, NUM_PROPERTIES, properties); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_p, GDK_MOD1_MASK, "plugin-manager", 0); klass->plugin_manager = nemo_blank_desktop_window_open_plugin_manager; }
/** * gimp_help_connect: * @widget: The widget you want to connect the help accelerator for. Will * be a #GtkWindow in most cases. * @help_func: The function which will be called if the user presses "F1". * @help_id: The @help_id which will be passed to @help_func. * @help_data: The @help_data pointer which will be passed to @help_func. * * Note that this function is automatically called by all libgimp dialog * constructors. You only have to call it for windows/dialogs you created * "manually". **/ void gimp_help_connect (GtkWidget *widget, GimpHelpFunc help_func, const gchar *help_id, gpointer help_data) { static gboolean initialized = FALSE; g_return_if_fail (GTK_IS_WIDGET (widget)); g_return_if_fail (help_func != NULL); /* set up the help signals */ if (! initialized) { GtkBindingSet *binding_set; binding_set = gtk_binding_set_by_class (g_type_class_peek (GTK_TYPE_WIDGET)); gtk_binding_entry_add_signal (binding_set, GDK_KEY_F1, 0, "show-help", 1, GTK_TYPE_WIDGET_HELP_TYPE, GIMP_WIDGET_HELP_TYPE_HELP); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_F1, 0, "show-help", 1, GTK_TYPE_WIDGET_HELP_TYPE, GIMP_WIDGET_HELP_TYPE_HELP); initialized = TRUE; } gimp_help_set_help_data (widget, NULL, help_id); g_object_set_data (G_OBJECT (widget), "gimp-help-data", help_data); g_signal_connect (widget, "show-help", G_CALLBACK (gimp_help_callback), help_func); gtk_widget_add_events (widget, GDK_BUTTON_PRESS_MASK); }
static gboolean gimp_popup_key_press (GtkWidget *widget, GdkEventKey *kevent) { GtkBindingSet *binding_set; binding_set = gtk_binding_set_by_class (g_type_class_peek (GIMP_TYPE_POPUP)); /* invoke the popup's binding entries manually, because otherwise * the focus widget (GtkTreeView e.g.) would consume it */ if (gtk_binding_set_activate (binding_set, kevent->keyval, kevent->state, GTK_OBJECT (widget))) { return TRUE; } return GTK_WIDGET_CLASS (parent_class)->key_press_event (widget, kevent); }
static void gb_shortcuts_dialog_class_init (GbShortcutsDialogClass *klass) { GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); GObjectClass *object_class = G_OBJECT_CLASS (klass); object_class->constructed = gb_shortcuts_dialog_constructed; object_class->finalize = gb_shortcuts_dialog_finalize; object_class->get_property = gb_shortcuts_dialog_get_property; object_class->set_property = gb_shortcuts_dialog_set_property; container_class->add = gb_shortcuts_dialog_add; klass->close = gb_shortcuts_dialog_real_close; properties [PROP_VIEW_NAME] = g_param_spec_string ("view-name", "ViewName", "ViewName", NULL, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_properties (object_class, LAST_PROP, properties); signals [CLOSE] = g_signal_new ("close", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GbShortcutsDialogClass, close), NULL, NULL, NULL, G_TYPE_NONE, 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0); g_type_ensure (GB_TYPE_SHORTCUTS_PAGE); g_type_ensure (GB_TYPE_SHORTCUTS_COLUMN); g_type_ensure (GB_TYPE_SHORTCUTS_GROUP); g_type_ensure (GB_TYPE_SHORTCUTS_GESTURE); g_type_ensure (GB_TYPE_SHORTCUTS_SHORTCUT); }
static void ygtk_help_dialog_class_init (YGtkHelpDialogClass *klass) { klass->find_next = ygtk_help_dialog_find_next; klass->close = ygtk_help_dialog_close; GtkWidgetClass* widget_class = GTK_WIDGET_CLASS (klass); widget_class->realize = ygtk_help_dialog_realize; // key bindings (F3 for next word, Esc to close the window) g_signal_new ("find_next", G_TYPE_FROM_CLASS (G_OBJECT_CLASS (klass)), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (YGtkHelpDialogClass, find_next), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); g_signal_new ("close", G_TYPE_FROM_CLASS (G_OBJECT_CLASS (klass)), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (YGtkHelpDialogClass, close), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_F3, 0, "find_next", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0); }
static void gtk_scale_button_class_init (GtkScaleButtonClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkBindingSet *binding_set; g_type_class_add_private (klass, sizeof (GtkScaleButtonPrivate)); gobject_class->constructor = gtk_scale_button_constructor; gobject_class->finalize = gtk_scale_button_finalize; gobject_class->dispose = gtk_scale_button_dispose; gobject_class->set_property = gtk_scale_button_set_property; gobject_class->get_property = gtk_scale_button_get_property; widget_class->button_press_event = gtk_scale_button_press; widget_class->key_release_event = gtk_scale_button_key_release; widget_class->scroll_event = gtk_scale_button_scroll; widget_class->screen_changed = gtk_scale_button_screen_changed; /** * GtkScaleButton:orientation: * * The orientation of the #GtkScaleButton's popup window. * * Since: 2.14 **/ g_object_class_install_property (gobject_class, PROP_ORIENTATION, g_param_spec_enum ("orientation", P_("Orientation"), P_("The orientation of the scale"), GTK_TYPE_ORIENTATION, GTK_ORIENTATION_VERTICAL, GTK_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_VALUE, g_param_spec_double ("value", P_("Value"), P_("The value of the scale"), -G_MAXDOUBLE, G_MAXDOUBLE, 0, GTK_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_SIZE, g_param_spec_enum ("size", P_("Icon size"), P_("The icon size"), GTK_TYPE_ICON_SIZE, GTK_ICON_SIZE_SMALL_TOOLBAR, GTK_PARAM_READWRITE)); g_object_class_install_property (gobject_class, PROP_ADJUSTMENT, g_param_spec_object ("adjustment", P_("Adjustment"), P_("The GtkAdjustment that contains the current value of this scale button object"), GTK_TYPE_ADJUSTMENT, GTK_PARAM_READWRITE)); /** * GtkScaleButton:icons: * * The names of the icons to be used by the scale button. * The first item in the array will be used in the button * when the current value is the lowest value, the second * item for the highest value. All the subsequent icons will * be used for all the other values, spread evenly over the * range of values. * * If there's only one icon name in the @icons array, it will * be used for all the values. If only two icon names are in * the @icons array, the first one will be used for the bottom * 50% of the scale, and the second one for the top 50%. * * It is recommended to use at least 3 icons so that the * #GtkScaleButton reflects the current value of the scale * better for the users. * * Since: 2.12 */ g_object_class_install_property (gobject_class, PROP_ICONS, g_param_spec_boxed ("icons", P_("Icons"), P_("List of icon names"), G_TYPE_STRV, GTK_PARAM_READWRITE)); /** * GtkScaleButton::value-changed: * @button: the object which received the signal * @value: the new value * * The ::value-changed signal is emitted when the value field has * changed. * * Since: 2.12 */ signals[VALUE_CHANGED] = g_signal_new (I_("value-changed"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GtkScaleButtonClass, value_changed), NULL, NULL, _gtk_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); /** * GtkScaleButton::popup: * @button: the object which received the signal * * The ::popup signal is a * <link linkend="keybinding-signals">keybinding signal</link> * which gets emitted to popup the scale widget. * * The default bindings for this signal are Space, Enter and Return. * * Since: 2.12 */ signals[POPUP] = g_signal_new_class_handler (I_("popup"), G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_CALLBACK (gtk_scale_button_popup), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /** * GtkScaleButton::popdown: * @button: the object which received the signal * * The ::popdown signal is a * <link linkend="keybinding-signals">keybinding signal</link> * which gets emitted to popdown the scale widget. * * The default binding for this signal is Escape. * * Since: 2.12 */ signals[POPDOWN] = g_signal_new_class_handler (I_("popdown"), G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_CALLBACK (gtk_scale_button_popdown), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); /* Key bindings */ binding_set = gtk_binding_set_by_class (widget_class); gtk_binding_entry_add_signal (binding_set, GDK_space, 0, "popup", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Space, 0, "popup", 0); gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "popup", 0); gtk_binding_entry_add_signal (binding_set, GDK_ISO_Enter, 0, "popup", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "popup", 0); gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "popdown", 0); }
/* * A program runner. */ int main(int argc, char *argv[]) { int ch; GtkWidget *box, *label, *apps_tree, *scrollable; GValue g_9 = G_VALUE_INIT; GtkBindingSet *binding_set; struct state *st; st = init_state(); while ((ch = getopt(argc, argv, "")) != -1) usage(); argc -= optind; argv += optind; gtk_init(&argc, &argv); if (argc > 1) usage(); if (argc == 1) { st->name = strdup(argv[0]); run_app(st); return 0; } g_value_init(&g_9, G_TYPE_INT); g_value_set_int(&g_9, 9); window = gtk_dialog_new_with_buttons( "bytestream", NULL, 0, "_Close", GTK_RESPONSE_CLOSE, "_Run", GTK_RESPONSE_OK, NULL); box = gtk_dialog_get_content_area(GTK_DIALOG(window)); label = gtk_label_new("Select program."); scrollable = gtk_scrolled_window_new(NULL, NULL); if ((apps_tree = apps_tree_new()) == NULL) return 1; gtk_widget_set_size_request(window, 400, 300); g_object_set_property(G_OBJECT(box), "margin", &g_9); gtk_container_add(GTK_CONTAINER(scrollable), apps_tree); gtk_box_pack_start(GTK_BOX(box), label, /* expand */ 0, /* fill */ 1, /* padding */ 3); gtk_box_pack_start(GTK_BOX(box), scrollable, /* expand */ 1, /* fill */ 1, /* padding */ 3); g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); g_signal_connect(window, "response", G_CALLBACK(handle_response), apps_tree); g_signal_connect(window, "key-press-event", G_CALLBACK(key_pressed), st); g_signal_connect(apps_tree, "row-activated", G_CALLBACK(app_selected), st); binding_set = gtk_binding_set_by_class(G_OBJECT_GET_CLASS(apps_tree)); gtk_binding_entry_add_signal( binding_set, GDK_KEY_Return, GDK_SHIFT_MASK, "select-cursor-row", 1, G_TYPE_BOOLEAN, TRUE); gtk_binding_entry_add_signal( binding_set, GDK_KEY_ISO_Enter, GDK_SHIFT_MASK, "select-cursor-row", 1, G_TYPE_BOOLEAN, TRUE); gtk_binding_entry_add_signal( binding_set, GDK_KEY_KP_Enter, GDK_SHIFT_MASK, "select-cursor-row", 1, G_TYPE_BOOLEAN, TRUE); gtk_widget_show_all(window); gtk_main(); free_state(st); return 0; }
static void gwy_scroller_class_init(GwyScrollerClass *klass) { GObjectClass *gobject_class = G_OBJECT_CLASS(klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS(klass); g_type_class_add_private(klass, sizeof(Scroller)); gobject_class->dispose = gwy_scroller_dispose; gobject_class->finalize = gwy_scroller_finalize; gobject_class->get_property = gwy_scroller_get_property; gobject_class->set_property = gwy_scroller_set_property; widget_class->get_preferred_width = gwy_scroller_get_preferred_width; widget_class->get_preferred_height = gwy_scroller_get_preferred_height; widget_class->size_allocate = gwy_scroller_size_allocate; widget_class->scroll_event = gwy_scroller_scroll_event; container_class->add = gwy_scroller_add; container_class->remove = gwy_scroller_remove; container_class->child_type = gwy_scroller_child_type; gtk_container_class_handle_border_width(container_class); properties[PROP_HADJUSTMENT] = g_param_spec_object("hadjustment", "Horizontal adjustment", "Adjustment for the horizontal position", GTK_TYPE_ADJUSTMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); properties[PROP_VADJUSTMENT] = g_param_spec_object("vadjustment", "Vertical adjustment", "Adjustment for the vertical position", GTK_TYPE_ADJUSTMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS); for (guint i = 1; i < N_PROPS; i++) g_object_class_install_property(gobject_class, i, properties[i]); /** * GwyScroller::scroll-child: * @gwyscroller: The #GwyScroller which received the signal. * @arg1: #GtkScrollType describing how much to scroll. * @arg2: %TRUE to scroll horizontally, %FALSE to scroll vertically. * * The ::scroll-child signal is a * <link linkend="keybinding-signals">keybinding signal</link> * which gets emitted when a keybinding that scrolls is pressed. * The horizontal or vertical adjustment is updated which triggers a * signal that the scroller child may listen to and scroll itself. */ signals[SGNL_SCROLL_CHILD] = g_signal_new_class_handler("scroll-child", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_CALLBACK(gwy_scroller_scroll_child), NULL, NULL, _gwy_cclosure_marshal_BOOLEAN__ENUM_BOOLEAN, G_TYPE_BOOLEAN, 2, GTK_TYPE_SCROLL_TYPE, G_TYPE_BOOLEAN); GtkBindingSet *binding_set = gtk_binding_set_by_class(klass); add_scroll_binding(binding_set, GDK_KEY_Left, GDK_CONTROL_MASK, GTK_SCROLL_STEP_BACKWARD, TRUE); add_scroll_binding(binding_set, GDK_KEY_Right, GDK_CONTROL_MASK, GTK_SCROLL_STEP_FORWARD, TRUE); add_scroll_binding(binding_set, GDK_KEY_Up, GDK_CONTROL_MASK, GTK_SCROLL_STEP_BACKWARD, FALSE); add_scroll_binding(binding_set, GDK_KEY_Down, GDK_CONTROL_MASK, GTK_SCROLL_STEP_FORWARD, FALSE); add_scroll_binding(binding_set, GDK_KEY_Page_Up, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_BACKWARD, TRUE); add_scroll_binding(binding_set, GDK_KEY_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_PAGE_FORWARD, TRUE); add_scroll_binding(binding_set, GDK_KEY_Page_Up, 0, GTK_SCROLL_PAGE_BACKWARD, FALSE); add_scroll_binding(binding_set, GDK_KEY_Page_Down, 0, GTK_SCROLL_PAGE_FORWARD, FALSE); add_scroll_binding(binding_set, GDK_KEY_Home, GDK_CONTROL_MASK, GTK_SCROLL_START, TRUE); add_scroll_binding(binding_set, GDK_KEY_End, GDK_CONTROL_MASK, GTK_SCROLL_END, TRUE); add_scroll_binding(binding_set, GDK_KEY_Home, 0, GTK_SCROLL_START, FALSE); add_scroll_binding(binding_set, GDK_KEY_End, 0, GTK_SCROLL_END, FALSE); }
static void gtk_shortcuts_window_class_init (GtkShortcutsWindowClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); object_class->constructed = gtk_shortcuts_window_constructed; object_class->finalize = gtk_shortcuts_window_finalize; object_class->get_property = gtk_shortcuts_window_get_property; object_class->set_property = gtk_shortcuts_window_set_property; object_class->dispose = gtk_shortcuts_window_dispose; widget_class->unmap = gtk_shortcuts_window_unmap; container_class->add = gtk_shortcuts_window_add; container_class->remove = gtk_shortcuts_window_remove; container_class->child_type = gtk_shortcuts_window_child_type; container_class->forall = gtk_shortcuts_window_forall; klass->close = gtk_shortcuts_window_close; klass->search = gtk_shortcuts_window_search; /** * GtkShortcutsWindow:section-name: * * The name of the section to show. * * This should be the section-name of one of the #GtkShortcutsSection * objects that are in this shortcuts window. */ properties[PROP_SECTION_NAME] = g_param_spec_string ("section-name", P_("Section Name"), P_("Section Name"), "internal-search", (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GtkShortcutsWindow:view-name: * * The view name by which to filter the contents. * * This should correspond to the #GtkShortcutsGroup:view property of some of * the #GtkShortcutsGroup objects that are inside this shortcuts window. * * Set this to %NULL to show all groups. */ properties[PROP_VIEW_NAME] = g_param_spec_string ("view-name", P_("View Name"), P_("View Name"), NULL, (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_object_class_install_properties (object_class, LAST_PROP, properties); /** * GtkShortcutsWindow::close: * * The ::close signal is a * [keybinding signal][GtkBindingSignal] * which gets emitted when the user uses a keybinding to close * the window. * * The default binding for this signal is the Escape key. */ signals[CLOSE] = g_signal_new (I_("close"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkShortcutsWindowClass, close), NULL, NULL, NULL, G_TYPE_NONE, 0); /** * GtkShortcutsWindow::search: * * The ::search signal is a * [keybinding signal][GtkBindingSignal] * which gets emitted when the user uses a keybinding to start a search. * * The default binding for this signal is Control-F. */ signals[SEARCH] = g_signal_new (I_("search"), G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkShortcutsWindowClass, search), NULL, NULL, NULL, G_TYPE_NONE, 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_f, GDK_CONTROL_MASK, "search", 0); g_type_ensure (GTK_TYPE_SHORTCUTS_GROUP); g_type_ensure (GTK_TYPE_SHORTCUTS_SHORTCUT); }
static void gimp_text_proxy_class_init (GimpTextProxyClass *klass) { GtkTextViewClass *tv_class = GTK_TEXT_VIEW_CLASS (klass); GtkBindingSet *binding_set; tv_class->move_cursor = gimp_text_proxy_move_cursor; tv_class->insert_at_cursor = gimp_text_proxy_insert_at_cursor; tv_class->delete_from_cursor = gimp_text_proxy_delete_from_cursor; tv_class->backspace = gimp_text_proxy_backspace; tv_class->cut_clipboard = gimp_text_proxy_cut_clipboard; tv_class->copy_clipboard = gimp_text_proxy_copy_clipboard; tv_class->paste_clipboard = gimp_text_proxy_paste_clipboard; tv_class->toggle_overwrite = gimp_text_proxy_toggle_overwrite; proxy_signals[CHANGE_SIZE] = g_signal_new ("change-size", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_size), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); proxy_signals[CHANGE_BASELINE] = g_signal_new ("change-baseline", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_baseline), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); proxy_signals[CHANGE_KERNING] = g_signal_new ("change-kerning", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GimpTextProxyClass, change_kerning), NULL, NULL, gimp_marshal_VOID__DOUBLE, G_TYPE_NONE, 1, G_TYPE_DOUBLE); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_plus, GDK_MOD1_MASK, "change-size", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_minus, GDK_MOD1_MASK, "change-size", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, GDK_MOD1_MASK, "change-baseline", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, GDK_MOD1_MASK, "change-baseline", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Left, GDK_MOD1_MASK, "change-kerning", 1, G_TYPE_DOUBLE, -1.0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Right, GDK_MOD1_MASK, "change-kerning", 1, G_TYPE_DOUBLE, 1.0); }
static void gedit_notebook_class_init (GeditNotebookClass *klass) { GObjectClass *object_class = G_OBJECT_CLASS (klass); GtkWidgetClass *gtkwidget_class = GTK_WIDGET_CLASS (klass); GtkNotebookClass *notebook_class = GTK_NOTEBOOK_CLASS (klass); GtkContainerClass *container_class = GTK_CONTAINER_CLASS (klass); GtkBindingSet *binding_set; gint i; object_class->finalize = gedit_notebook_finalize; gtkwidget_class->grab_focus = gedit_notebook_grab_focus; gtkwidget_class->button_press_event = gedit_notebook_button_press; notebook_class->change_current_page = gedit_notebook_change_current_page; notebook_class->switch_page = gedit_notebook_switch_page; notebook_class->page_removed = gedit_notebook_page_removed; notebook_class->page_added = gedit_notebook_page_added; container_class->remove = gedit_notebook_remove; klass->change_to_page = gedit_notebook_change_to_page; signals[TAB_CLOSE_REQUEST] = g_signal_new ("tab-close-request", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GeditNotebookClass, tab_close_request), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GEDIT_TYPE_TAB); signals[SHOW_POPUP_MENU] = g_signal_new ("show-popup-menu", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GeditNotebookClass, show_popup_menu), NULL, NULL, gedit_marshal_VOID__BOXED_OBJECT, G_TYPE_NONE, 2, GDK_TYPE_EVENT | G_SIGNAL_TYPE_STATIC_SCOPE, GEDIT_TYPE_TAB); signals[CHANGE_TO_PAGE] = g_signal_new ("change-to-page", G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GeditNotebookClass, change_to_page), NULL, NULL, gedit_marshal_BOOLEAN__INT, G_TYPE_BOOLEAN, 1, G_TYPE_INT); binding_set = gtk_binding_set_by_class (klass); for (i = 1; i < 10; i++) { gtk_binding_entry_add_signal (binding_set, GDK_KEY_0 + i, GDK_MOD1_MASK, "change-to-page", 1, G_TYPE_INT, i - 1); } }
static void egg_find_bar_class_init (EggFindBarClass *klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; GtkBindingSet *binding_set; egg_find_bar_parent_class = g_type_class_peek_parent (klass); object_class = (GObjectClass *)klass; widget_class = (GtkWidgetClass *)klass; object_class->set_property = egg_find_bar_set_property; object_class->get_property = egg_find_bar_get_property; object_class->finalize = egg_find_bar_finalize; widget_class->show = egg_find_bar_show; widget_class->hide = egg_find_bar_hide; widget_class->grab_focus = egg_find_bar_grab_focus; find_bar_signals[NEXT] = g_signal_new ("next", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EggFindBarClass, next), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[PREVIOUS] = g_signal_new ("previous", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (EggFindBarClass, previous), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[CLOSE] = g_signal_new ("close", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, close), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[SCROLL] = g_signal_new ("scroll", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, scroll), NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, GTK_TYPE_SCROLL_TYPE); /** * EggFindBar:search_string: * * The current string to search for. NULL or empty string * both mean no current string. * */ g_object_class_install_property (object_class, PROP_SEARCH_STRING, g_param_spec_string ("search_string", "Search string", "The name of the string to be found", NULL, G_PARAM_READWRITE)); /** * EggFindBar:case_sensitive: * * TRUE for a case sensitive search. * */ g_object_class_install_property (object_class, PROP_CASE_SENSITIVE, g_param_spec_boolean ("case_sensitive", "Case sensitive", "TRUE for a case sensitive search", FALSE, G_PARAM_READWRITE)); /* Style properties */ gtk_widget_class_install_style_property (widget_class, g_param_spec_boxed ("all_matches_color", "Highlight color", "Color of highlight for all matches", GDK_TYPE_COLOR, G_PARAM_READABLE)); gtk_widget_class_install_style_property (widget_class, g_param_spec_boxed ("current_match_color", "Current color", "Color of highlight for the current match", GDK_TYPE_COLOR, G_PARAM_READABLE)); g_type_class_add_private (object_class, sizeof (EggFindBarPrivate)); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "close", 0); gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_BACKWARD); gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_FORWARD); }
static void gtk_menu_shell_class_init (GtkMenuShellClass *klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; GtkContainerClass *container_class; GtkBindingSet *binding_set; object_class = (GObjectClass*) klass; widget_class = (GtkWidgetClass*) klass; container_class = (GtkContainerClass*) klass; parent_class = g_type_class_peek_parent (klass); widget_class->realize = gtk_menu_shell_realize; widget_class->button_press_event = gtk_menu_shell_button_press; widget_class->button_release_event = gtk_menu_shell_button_release; widget_class->key_press_event = gtk_menu_shell_key_press; widget_class->enter_notify_event = gtk_menu_shell_enter_notify; widget_class->leave_notify_event = gtk_menu_shell_leave_notify; container_class->add = gtk_menu_shell_add; container_class->remove = gtk_menu_shell_remove; container_class->forall = gtk_menu_shell_forall; container_class->child_type = gtk_menu_shell_child_type; klass->submenu_placement = GTK_TOP_BOTTOM; klass->deactivate = gtk_real_menu_shell_deactivate; klass->selection_done = NULL; klass->move_current = gtk_real_menu_shell_move_current; klass->activate_current = gtk_real_menu_shell_activate_current; klass->cancel = gtk_real_menu_shell_cancel; klass->select_item = gtk_menu_shell_real_select_item; klass->insert = gtk_menu_shell_real_insert; menu_shell_signals[DEACTIVATE] = g_signal_new ("deactivate", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkMenuShellClass, deactivate), NULL, NULL, _gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); menu_shell_signals[SELECTION_DONE] = g_signal_new ("selection_done", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST, G_STRUCT_OFFSET (GtkMenuShellClass, selection_done), NULL, NULL, _gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); menu_shell_signals[MOVE_CURRENT] = g_signal_new ("move_current", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkMenuShellClass, move_current), NULL, NULL, _gtk_marshal_VOID__ENUM, G_TYPE_NONE, 1, GTK_TYPE_MENU_DIRECTION_TYPE); menu_shell_signals[ACTIVATE_CURRENT] = g_signal_new ("activate_current", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkMenuShellClass, activate_current), NULL, NULL, _gtk_marshal_VOID__BOOLEAN, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); menu_shell_signals[CANCEL] = g_signal_new ("cancel", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (GtkMenuShellClass, cancel), NULL, NULL, _gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); menu_shell_signals[CYCLE_FOCUS] = _gtk_binding_signal_new ("cycle_focus", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_CALLBACK (gtk_real_menu_shell_cycle_focus), NULL, NULL, _gtk_marshal_VOID__ENUM, G_TYPE_NONE, 1, GTK_TYPE_DIRECTION_TYPE); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_Escape, 0, "cancel", 0); gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "activate_current", 1, G_TYPE_BOOLEAN, TRUE); gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "activate_current", 1, G_TYPE_BOOLEAN, TRUE); gtk_binding_entry_add_signal (binding_set, GDK_space, 0, "activate_current", 1, G_TYPE_BOOLEAN, FALSE); gtk_binding_entry_add_signal (binding_set, GDK_KP_Space, 0, "activate_current", 1, G_TYPE_BOOLEAN, FALSE); gtk_binding_entry_add_signal (binding_set, GDK_F10, 0, "cycle_focus", 1, GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_FORWARD); gtk_binding_entry_add_signal (binding_set, GDK_F10, GDK_SHIFT_MASK, "cycle_focus", 1, GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_BACKWARD); }
static void uni_image_view_class_init (UniImageViewClass * klass) { uni_image_view_init_signals (klass); GObjectClass *object_class = (GObjectClass *) klass; object_class->finalize = uni_image_view_finalize; GtkWidgetClass *widget_class = (GtkWidgetClass *) klass; widget_class->button_press_event = uni_image_view_button_press; widget_class->button_release_event = uni_image_view_button_release; widget_class->expose_event = uni_image_view_expose; widget_class->motion_notify_event = uni_image_view_motion_notify; widget_class->realize = uni_image_view_realize; widget_class->scroll_event = uni_image_view_scroll_event; widget_class->size_allocate = uni_image_view_size_allocate; widget_class->unrealize = uni_image_view_unrealize; klass->set_zoom = uni_image_view_set_zoom; klass->zoom_in = uni_image_view_zoom_in; klass->zoom_out = uni_image_view_zoom_out; klass->set_fitting = uni_image_view_set_fitting; klass->scroll = uni_image_view_scroll; klass->pixbuf_changed = NULL; /** * UniImageView::set-scroll-adjustments * * Do we really need this signal? It should be intrinsic to the * GtkWidget class, shouldn't it? **/ widget_class->set_scroll_adjustments_signal = g_signal_new ("set_scroll_adjustments", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (UniImageViewClass, set_scroll_adjustments), NULL, NULL, uni_marshal_VOID__POINTER_POINTER, G_TYPE_NONE, 2, GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT); klass->set_scroll_adjustments = uni_image_view_set_scroll_adjustments; /* Add keybindings. */ GtkBindingSet *binding_set = gtk_binding_set_by_class (klass); /* Set zoom. */ gtk_binding_entry_add_signal (binding_set, GDK_1, 0, "set_zoom", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_2, 0, "set_zoom", 1, G_TYPE_DOUBLE, 2.0); gtk_binding_entry_add_signal (binding_set, GDK_3, 0, "set_zoom", 1, G_TYPE_DOUBLE, 3.0); gtk_binding_entry_add_signal (binding_set, GDK_KP_1, 0, "set_zoom", 1, G_TYPE_DOUBLE, 1.0); gtk_binding_entry_add_signal (binding_set, GDK_KP_2, 0, "set_zoom", 1, G_TYPE_DOUBLE, 2.0); gtk_binding_entry_add_signal (binding_set, GDK_KP_3, 0, "set_zoom", 1, G_TYPE_DOUBLE, 3.0); /* Zoom in */ gtk_binding_entry_add_signal (binding_set, GDK_plus, 0, "zoom_in", 0); gtk_binding_entry_add_signal (binding_set, GDK_equal, 0, "zoom_in", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Add, 0, "zoom_in", 0); /* Zoom out */ gtk_binding_entry_add_signal (binding_set, GDK_minus, 0, "zoom_out", 0); gtk_binding_entry_add_signal (binding_set, GDK_KP_Subtract, 0, "zoom_out", 0); /* Set fitting */ gtk_binding_entry_add_signal (binding_set, GDK_f, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); gtk_binding_entry_add_signal (binding_set, GDK_0, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); gtk_binding_entry_add_signal (binding_set, GDK_KP_0, 0, "set_fitting", 1, G_TYPE_ENUM, UNI_FITTING_FULL); /* Unmodified scrolling */ gtk_binding_entry_add_signal (binding_set, GDK_Right, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_RIGHT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_Left, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_LEFT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_Down, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_DOWN); gtk_binding_entry_add_signal (binding_set, GDK_Up, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_UP); /* Shifted scrolling */ gtk_binding_entry_add_signal (binding_set, GDK_Right, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_RIGHT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_Left, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_LEFT, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE); gtk_binding_entry_add_signal (binding_set, GDK_Up, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_UP); gtk_binding_entry_add_signal (binding_set, GDK_Down, GDK_SHIFT_MASK, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_DOWN); /* Page Up & Down */ gtk_binding_entry_add_signal (binding_set, GDK_Page_Up, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_UP); gtk_binding_entry_add_signal (binding_set, GDK_Page_Down, 0, "scroll", 2, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_NONE, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_DOWN); }
static void ide_terminal_class_init (IdeTerminalClass *klass) { GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); GtkBindingSet *binding_set; widget_class->destroy = ide_terminal_destroy; widget_class->button_press_event = ide_terminal_button_press_event; widget_class->popup_menu = ide_terminal_popup_menu; widget_class->size_allocate = ide_terminal_size_allocate; klass->copy_link_address = ide_terminal_copy_link_address; klass->open_link = ide_terminal_open_link; klass->select_all = ide_terminal_real_select_all; klass->search_reveal = ide_terminal_real_search_reveal; signals [COPY_LINK_ADDRESS] = g_signal_new ("copy-link-address", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (IdeTerminalClass, copy_link_address), NULL, NULL, NULL, G_TYPE_BOOLEAN, 0); signals [SEARCH_REVEAL] = g_signal_new ("search-reveal", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (IdeTerminalClass, search_reveal), NULL, NULL, NULL, G_TYPE_NONE, 0); signals [OPEN_LINK] = g_signal_new ("open-link", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (IdeTerminalClass, open_link), NULL, NULL, NULL, G_TYPE_BOOLEAN, 0); signals [POPULATE_POPUP] = g_signal_new ("populate-popup", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (IdeTerminalClass, populate_popup), NULL, NULL, NULL, G_TYPE_NONE, 1, GTK_TYPE_WIDGET); signals [SELECT_ALL] = g_signal_new ("select-all", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (IdeTerminalClass, select_all), NULL, NULL, NULL, G_TYPE_NONE, 1, G_TYPE_BOOLEAN); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_c, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "copy-clipboard", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_v, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "paste-clipboard", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_f, GDK_SHIFT_MASK | GDK_CONTROL_MASK, "search-reveal", 0); }
static void egg_find_bar_class_init (EggFindBarClass *klass) { GObjectClass *object_class; GtkWidgetClass *widget_class; GtkBindingSet *binding_set; egg_find_bar_parent_class = g_type_class_peek_parent (klass); object_class = (GObjectClass *)klass; widget_class = (GtkWidgetClass *)klass; object_class->set_property = egg_find_bar_set_property; object_class->get_property = egg_find_bar_get_property; object_class->finalize = egg_find_bar_finalize; widget_class->show = egg_find_bar_show; widget_class->hide = egg_find_bar_hide; widget_class->grab_focus = egg_find_bar_grab_focus; find_bar_signals[NEXT] = g_signal_new ("next", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, next), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[PREVIOUS] = g_signal_new ("previous", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, previous), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[CLOSE] = g_signal_new ("close", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, close), NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); find_bar_signals[SCROLL] = g_signal_new ("scroll", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (EggFindBarClass, scroll), NULL, NULL, g_cclosure_marshal_VOID__ENUM, G_TYPE_NONE, 1, GTK_TYPE_SCROLL_TYPE); /** * EggFindBar:search_string: * * The current string to search for. NULL or empty string * both mean no current string. * */ g_object_class_install_property (object_class, PROP_SEARCH_STRING, g_param_spec_string ("search-string", "Search string", "The name of the string to be found", NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * EggFindBar:case_sensitive: * * TRUE for a case sensitive search. * */ g_object_class_install_property (object_class, PROP_CASE_SENSITIVE, g_param_spec_boolean ("case-sensitive", "Case sensitive", "TRUE for a case sensitive search", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * EggFindBar:whole-words-only: * * Whether search whole words only */ g_object_class_install_property (object_class, PROP_WHOLE_WORDS_ONLY, g_param_spec_boolean ("whole-words-only", "Whole words only", "Whether search whole words only", FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); g_type_class_add_private (object_class, sizeof (EggFindBarPrivate)); binding_set = gtk_binding_set_by_class (klass); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0, "close", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_BACKWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_STEP_FORWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Up, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Page_Up, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_BACKWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Page_Down, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Page_Down, 0, "scroll", 1, GTK_TYPE_SCROLL_TYPE, GTK_SCROLL_PAGE_FORWARD); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Up, GDK_CONTROL_MASK, "previous", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_Down, GDK_CONTROL_MASK, "next", 0); }