SF.net SVN: geany-plugins:[1067] trunk/geany-plugins/addons
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Nov 29 13:08:04 UTC 2009
Revision: 1067
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=1067&view=rev
Author: eht16
Date: 2009-11-29 13:08:03 +0000 (Sun, 29 Nov 2009)
Log Message:
-----------
Add a simple popup menu to update the Tasks list and hide the Messages window.
Modified Paths:
--------------
trunk/geany-plugins/addons/ChangeLog
trunk/geany-plugins/addons/src/ao_tasks.c
Modified: trunk/geany-plugins/addons/ChangeLog
===================================================================
--- trunk/geany-plugins/addons/ChangeLog 2009-11-28 17:01:43 UTC (rev 1066)
+++ trunk/geany-plugins/addons/ChangeLog 2009-11-29 13:08:03 UTC (rev 1067)
@@ -1,3 +1,10 @@
+2009-11-29 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
+
+ * src/ao_tasks.c:
+ Add a simple popup menu to update the Tasks list and hide
+ the Messages window.
+
+
2009-11-28 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
* src/Makefile.am, src/tasks.c, src/tasks.h, src/ao_tasks.h,
Modified: trunk/geany-plugins/addons/src/ao_tasks.c
===================================================================
--- trunk/geany-plugins/addons/src/ao_tasks.c 2009-11-28 17:01:43 UTC (rev 1066)
+++ trunk/geany-plugins/addons/src/ao_tasks.c 2009-11-29 13:08:03 UTC (rev 1067)
@@ -32,7 +32,7 @@
#include <gdk/gdkkeysyms.h>
-/* Make tokens configurable */
+/* TODO make tokens configurable */
const gchar *tokens[] = { "TODO", "FIXME", NULL };
@@ -59,6 +59,7 @@
GtkWidget *tree;
GtkWidget *page;
+ GtkWidget *popup_menu;
};
enum
@@ -173,6 +174,13 @@
{ /* allow reclicking of a treeview item */
g_idle_add(ao_tasks_selection_changed_cb, widget);
}
+ else if (event->button == 3)
+ {
+ AoTasksPrivate *priv = AO_TASKS_GET_PRIVATE(data);
+ gtk_menu_popup(GTK_MENU(priv->popup_menu), NULL, NULL, NULL, NULL,
+ event->button, event->time);
+ /* don't return TRUE here, otherwise the selection won't be changed */
+ }
return FALSE;
}
@@ -186,6 +194,16 @@
{
g_idle_add(ao_tasks_selection_changed_cb, widget);
}
+ if ((event->keyval == GDK_F10 && event->state & GDK_SHIFT_MASK) || event->keyval == GDK_Menu)
+ {
+ GdkEventButton button_event;
+
+ button_event.time = event->time;
+ button_event.button = 3;
+
+ ao_tasks_button_press_cb(widget, &button_event, data);
+ return TRUE;
+ }
return FALSE;
}
@@ -199,9 +217,50 @@
gtk_widget_destroy(priv->page);
priv->page = NULL;
}
+ if (priv->popup_menu)
+ {
+ gtk_widget_destroy(priv->popup_menu);
+ priv->popup_menu = NULL;
+ }
}
+static void popup_update_item_click_cb(GtkWidget *button, AoTasks *t)
+{
+ ao_tasks_update(t, NULL);
+}
+
+
+static void popup_hide_item_click_cb(GtkWidget *button, AoTasks *t)
+{
+ keybindings_send_command(GEANY_KEY_GROUP_VIEW, GEANY_KEYS_VIEW_MESSAGEWINDOW);
+}
+
+
+static GtkWidget *create_popup_menu(AoTasks *t)
+{
+ GtkWidget *item, *menu;
+
+ menu = gtk_menu_new();
+
+ item = ui_image_menu_item_new(GTK_STOCK_REFRESH, _("_Update"));
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(popup_update_item_click_cb), t);
+
+ item = gtk_separator_menu_item_new();
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
+ item = gtk_menu_item_new_with_mnemonic(_("_Hide Message Window"));
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+ g_signal_connect(item, "activate", G_CALLBACK(popup_hide_item_click_cb), t);
+
+ return menu;
+}
+
+
static void ao_tasks_show(AoTasks *t)
{
GtkCellRenderer *text_renderer;
@@ -272,6 +331,8 @@
priv->page,
gtk_label_new(_("Tasks")));
+ priv->popup_menu = create_popup_menu(t);
+
/* initial update */
ao_tasks_update(t, NULL);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list