Mercurial > audlegacy
diff src/audacious/ui_skinned_button.c @ 2964:7926d46872c8 trunk
right click on mainwin_about brings menu
| author | Tomasz Mon <desowin@gmail.com> |
|---|---|
| date | Mon, 02 Jul 2007 10:28:05 +0200 |
| parents | 74a2471f8eb7 |
| children | f84d09bada0f |
line wrap: on
line diff
--- a/src/audacious/ui_skinned_button.c Mon Jul 02 10:11:37 2007 +0200 +++ b/src/audacious/ui_skinned_button.c Mon Jul 02 10:28:05 2007 +0200 @@ -27,6 +27,16 @@ #define UI_SKINNED_BUTTON_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UI_TYPE_SKINNED_BUTTON, UiSkinnedButtonPrivate)) typedef struct _UiSkinnedButtonPrivate UiSkinnedButtonPrivate; +enum { + PRESSED, + RELEASED, + CLICKED, + RIGHT_CLICKED, + DOUBLED, + REDRAW, + LAST_SIGNAL +}; + struct _UiSkinnedButtonPrivate { //Skinned part GtkWidget *image; @@ -124,6 +134,7 @@ klass->pressed = button_pressed; klass->released = button_released; klass->clicked = NULL; + klass->right_clicked = NULL; klass->doubled = ui_skinned_button_toggle_doublesize; klass->redraw = ui_skinned_button_redraw; @@ -142,6 +153,11 @@ G_STRUCT_OFFSET (UiSkinnedButtonClass, clicked), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); + button_signals[RIGHT_CLICKED] = + g_signal_new ("right-clicked", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (UiSkinnedButtonClass, right_clicked), NULL, NULL, + gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); + button_signals[DOUBLED] = g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, G_STRUCT_OFFSET (UiSkinnedButtonClass, doubled), NULL, NULL, @@ -375,6 +391,8 @@ button = UI_SKINNED_BUTTON(widget); button->redraw = TRUE; ui_skinned_button_released(button); + } else if (event->button == 3) { + g_signal_emit(widget, button_signals[RIGHT_CLICKED], 0); } return TRUE;
