commit 334445cd0c0617b78be23a0b16748badda5f8ad2 Author: Omari Stephens Date: Sat Nov 21 05:16:14 2009 +0000 add keyboard shortcut support for rating stuff diff --git a/trunk/src/bar_rating.c b/trunk/src/bar_rating.c index 7a7bae5..e6ac672 100644 --- a/trunk/src/bar_rating.c +++ b/trunk/src/bar_rating.c @@ -188,7 +188,12 @@ static void bar_pane_rating_changed(GtkSpinButton *button, gpointer data) file_data_register_notify_func(bar_pane_rating_notify_cb, prd, NOTIFY_PRIORITY_LOW); } -static void bar_pane_rating_inc_value(GtkButton *button, gpointer data) +static void bar_pane_rating_inc_value_cb(GtkButton *button, gpointer data) +{ + bar_pane_rating_inc_value(data); +} + +void bar_pane_rating_inc_value(gpointer data) { PaneRatingData *prd = data; @@ -200,7 +205,12 @@ static void bar_pane_rating_inc_value(GtkButton *button, gpointer data) } } -static void bar_pane_rating_dec_value(GtkButton *button, gpointer data) +static void bar_pane_rating_dec_value_cb(GtkButton *button, gpointer data) +{ + bar_pane_rating_dec_value(data); +} + +void bar_pane_rating_dec_value(gpointer data) { PaneRatingData *prd = data; @@ -291,14 +301,14 @@ static GtkWidget *bar_pane_rating_new(const gchar *id, const gchar *title, const prd->auto_adv = (GtkToggleButton*) tmp; // INCREMENT/DECREMENT BUTTONS - tmp = gtk_button_new_with_label(_("↓ Decrement")); + tmp = gtk_button_new_with_label(_("↓ Dec.")); gtk_box_pack_start((GtkBox*) hbox, tmp, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(bar_pane_rating_dec_value), prd); + g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(bar_pane_rating_dec_value_cb), prd); gtk_widget_show(tmp); - tmp = gtk_button_new_with_label(_("↑ Increment")); + tmp = gtk_button_new_with_label(_("↑ Inc.")); gtk_box_pack_end((GtkBox*) hbox, tmp, TRUE, TRUE, 0); - g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(bar_pane_rating_inc_value), prd); + g_signal_connect(G_OBJECT(tmp), "clicked", G_CALLBACK(bar_pane_rating_inc_value_cb), prd); gtk_widget_show(tmp); diff --git a/trunk/src/bar_rating.h b/trunk/src/bar_rating.h index 45302c5..03ac1e4 100644 --- a/trunk/src/bar_rating.h +++ b/trunk/src/bar_rating.h @@ -18,6 +18,9 @@ GtkWidget *bar_pane_rating_new_from_config(const gchar **attribute_names, const gchar **attribute_values); void bar_pane_rating_update_from_config(GtkWidget *pane, const gchar **attribute_names, const gchar **attribute_values); +void bar_pane_rating_inc_value(gpointer data); +void bar_pane_rating_dec_value(gpointer data); + #endif /* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */ diff --git a/trunk/src/layout_util.c b/trunk/src/layout_util.c index b853852..752ec67 100644 --- a/trunk/src/layout_util.c +++ b/trunk/src/layout_util.c @@ -17,6 +17,7 @@ #include "advanced_exif.h" #include "bar_sort.h" #include "bar.h" +#include "bar_rating.h" #include "cache_maint.h" #include "collect.h" #include "collect-dlg.h" @@ -750,6 +751,27 @@ static void layout_menu_bar_exif_cb(GtkAction *action, gpointer data) layout_exif_window_new(lw); } +static void layout_menu_bar_rating_cb(GtkAction *action, gpointer data) +{ + LayoutWindow *lw = data; + GtkWidget *pane; + void *prd; + const gchar *action_name; + + if(!lw->bar) return; + + pane = bar_find_pane_by_id(lw->bar, PANE_RATING, "rating"); + if(!pane) return; + + prd = g_object_get_data(G_OBJECT(pane), "pane_data"); + if(!prd) return; + + // Got a pane; now poke at it + action_name = gtk_action_get_name(action); + if(!g_strcmp0(action_name, "IncRating")) bar_pane_rating_inc_value(prd); + else if(!g_strcmp0(action_name, "DecRating")) bar_pane_rating_dec_value(prd); +} + static void layout_menu_float_cb(GtkToggleAction *action, gpointer data) { LayoutWindow *lw = data; @@ -1236,6 +1258,7 @@ static GtkActionEntry menu_entries[] = { { "EditMenu", NULL, N_("_Edit"), NULL, NULL, NULL }, { "SelectMenu", NULL, N_("_Select"), NULL, NULL, NULL }, { "OrientationMenu", NULL, N_("_Orientation"), NULL, NULL, NULL }, + { "MetadataMenu", NULL, N_("_Metadata"), NULL, NULL, NULL }, { "ExternalMenu", NULL, N_("E_xternal Editors"), NULL, NULL, NULL }, { "PreferencesMenu", NULL, N_("P_references"), NULL, NULL, NULL }, { "ViewMenu", NULL, N_("_View"), NULL, NULL, NULL }, @@ -1293,6 +1316,8 @@ static GtkActionEntry menu_entries[] = { { "Maintenance", NULL, N_("_Thumbnail maintenance..."), NULL, N_("Thumbnail maintenance..."), CB(layout_menu_remove_thumb_cb) }, { "Wallpaper", NULL, N_("Set as _wallpaper"), NULL, N_("Set as wallpaper"), CB(layout_menu_wallpaper_cb) }, { "SaveMetadata", GTK_STOCK_SAVE, N_("_Save metadata"), "S", N_("Save metadata"), CB(layout_menu_metadata_write_cb) }, + { "IncRating", NULL, N_("Increment Rating"), NULL, N_("Increment image rating"), CB(layout_menu_bar_rating_cb) }, + { "DecRating", NULL, N_("Decrement Rating"), NULL, N_("Decrement image rating"), CB(layout_menu_bar_rating_cb) }, { "ZoomIn", GTK_STOCK_ZOOM_IN, N_("Zoom _in"), "equal", N_("Zoom in"), CB(layout_menu_zoom_in_cb) }, { "ZoomInAlt1", GTK_STOCK_ZOOM_IN, N_("Zoom _in"), "KP_Add", N_("Zoom in"), CB(layout_menu_zoom_in_cb) }, { "ZoomOut", GTK_STOCK_ZOOM_OUT, N_("Zoom _out"), "minus", N_("Zoom out"), CB(layout_menu_zoom_out_cb) }, @@ -1343,7 +1368,6 @@ static GtkActionEntry menu_entries[] = { { "About", GTK_STOCK_ABOUT, N_("_About"), NULL, N_("About"), CB(layout_menu_about_cb) }, { "LogWindow", NULL, N_("_Log Window"), NULL, N_("Log Window"), CB(layout_menu_log_window_cb) }, { "ExifWin", NULL, N_("_Exif window"), "E", N_("Exif window"), CB(layout_menu_bar_exif_cb) }, - }; static GtkToggleActionEntry menu_toggle_entries[] = { @@ -1469,7 +1493,12 @@ static const gchar *menu_ui_description = " " " " " " -" " +" " +" " +" " +" " +" " +" " " " " " " "