static VALUE rg_m_current_event_state(G_GNUC_UNUSED VALUE self) { GdkModifierType state; gboolean ret = gtk_get_current_event_state(&state); return ret ? GFLAGS2RVAL(state, GDK_TYPE_MODIFIER_TYPE) : Qnil; }
static VALUE rg_s_current_event_state(G_GNUC_UNUSED VALUE self) { GdkModifierType state; gboolean ret = gtk_get_current_event_state(&state); return ret ? GDKMODIFIERTYPE2RVAL(state) : Qnil; }
static void hippo_status_icon_popup_menu(GtkStatusIcon *gtk_icon, guint button, guint32 activate_time) { HippoStatusIcon *icon = HIPPO_STATUS_ICON(gtk_icon); GtkWidget *menu_item; GtkWidget *label; /* We used to only show the Quit item in "leet_mode" */ GdkModifierType state; gboolean leet_mode; leet_mode = FALSE; if (gtk_get_current_event_state(&state)) { if (state & GDK_CONTROL_MASK) leet_mode = TRUE; } destroy_menu(icon); icon->popup_menu = gtk_menu_new(); menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_HOME, NULL); label = gtk_bin_get_child(GTK_BIN(menu_item)); gtk_label_set_text(GTK_LABEL(label), _("My Mugshot home page")); g_signal_connect_swapped(menu_item, "activate", G_CALLBACK(hippo_app_show_home), hippo_get_app()); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(icon->popup_menu), menu_item); menu_item = gtk_image_menu_item_new_from_stock(GTK_STOCK_ABOUT, NULL); g_signal_connect_swapped(menu_item, "activate", G_CALLBACK(hippo_app_show_about), hippo_get_app()); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(icon->popup_menu), menu_item); menu_item = gtk_separator_menu_item_new(); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(icon->popup_menu), menu_item); if (leet_mode) { menu_item = gtk_menu_item_new_with_label ("Toggle Connected"); g_signal_connect_swapped(menu_item, "activate", G_CALLBACK(on_toggle_connected_activated), NULL); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(icon->popup_menu), menu_item); } menu_item = gtk_image_menu_item_new_from_stock (GTK_STOCK_QUIT, NULL); g_signal_connect_swapped(menu_item, "activate", G_CALLBACK(on_quit_activated), NULL); gtk_widget_show(menu_item); gtk_menu_shell_append(GTK_MENU_SHELL(icon->popup_menu), menu_item); gtk_menu_popup (GTK_MENU(icon->popup_menu), NULL, NULL, gtk_status_icon_position_menu, icon, button, activate_time); gtk_menu_shell_select_first(GTK_MENU_SHELL(icon->popup_menu), FALSE); }
void PlatformKeyboardEvent::getCurrentModifierState(bool& shiftKey, bool& ctrlKey, bool& altKey, bool& metaKey) { GdkModifierType state; gtk_get_current_event_state(&state); shiftKey = state & GDK_SHIFT_MASK; ctrlKey = state & GDK_CONTROL_MASK; altKey = state & GDK_MOD1_MASK; metaKey = state & GDK_META_MASK; }
/* (checks type of click and calls correct function) */ static void status_icon_clicked(GtkStatusIcon *status_icon, GdkEventButton *event ) { /* Check what type of click was recieved */ GdkModifierType state; gtk_get_current_event_state(&state); /* Control click */ if (state == GDK_MOD2_MASK+GDK_CONTROL_MASK || state == GDK_CONTROL_MASK) { if (actions_lock == FALSE) { g_timeout_add(POPUP_DELAY, show_actions_menu, NULL); } } /* Left click */ else if (event->button == 1) { show_clipit_menu(1); } else if (event->button == 3) { if (prefs.use_rmb_menu) show_clipit_menu(3); } }