[Goodies-commits] r3340 - xfce4-notes-plugin/trunk/panel-plugin
Mike Massonnet
mmassonnet at xfce.org
Thu Oct 11 00:00:04 CEST 2007
Author: mmassonnet
Date: 2007-10-10 22:00:04 +0000 (Wed, 10 Oct 2007)
New Revision: 3340
Modified:
xfce4-notes-plugin/trunk/panel-plugin/notes.c
xfce4-notes-plugin/trunk/panel-plugin/notes.h
xfce4-notes-plugin/trunk/panel-plugin/panel-plugin.c
Log:
* panel-plugin/notes.c(notes_window_new_with_label):
Switched the "event" signal with a simple "clicked" signal.
* panel-plugin/notes.c(notes_window_new_with_label,notes_window_menu_new):
Add accelerators and tooltips to the window.
* panel-plugin/notes.c(notes_window_rename): Update window title.
* panel-plugin/panel-plugin.c(notes_plugin_menu_new): Add new window item.
Modified: xfce4-notes-plugin/trunk/panel-plugin/notes.c
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/notes.c 2007-10-10 21:59:50 UTC (rev 3339)
+++ xfce4-notes-plugin/trunk/panel-plugin/notes.c 2007-10-10 22:00:04 UTC (rev 3340)
@@ -34,8 +34,8 @@
static void notes_window_menu_new (NotesWindow *notes_window);
-static gboolean notes_window_menu_popup (NotesWindow *notes_window,
- GdkEvent *event);
+static void notes_window_menu_popup (NotesWindow *notes_window);
+
static void notes_window_menu_position (GtkMenu *menu,
gint *x,
gint *y,
@@ -124,9 +124,9 @@
DBG ("New window: %s", window_name);
NotesWindow *notes_window;
- GtkAccelGroup *accel_group;
GtkWidget *img_add, *img_del, *img_close, *arrow_menu;
gchar *window_name_tmp;
+ gchar *accel_name;
notes_window = g_slice_new0 (NotesWindow);
notes_window->notes_plugin = notes_plugin;
@@ -258,21 +258,60 @@
0);
/* Accel group */
- accel_group = gtk_accel_group_new ();
- gtk_window_add_accel_group (GTK_WINDOW (notes_window->window), accel_group);
+ notes_window->accel_group = gtk_accel_group_new ();
+ gtk_window_add_accel_group (GTK_WINDOW (notes_window->window),
+ notes_window->accel_group);
gtk_widget_add_accelerator (notes_window->btn_add,
"clicked",
- accel_group,
+ notes_window->accel_group,
'N',
GDK_CONTROL_MASK,
GTK_ACCEL_MASK);
gtk_widget_add_accelerator (notes_window->btn_del,
"clicked",
- accel_group,
+ notes_window->accel_group,
'W',
GDK_CONTROL_MASK,
GTK_ACCEL_MASK);
+ gtk_widget_add_accelerator (notes_window->btn_menu,
+ "clicked",
+ notes_window->accel_group,
+ 'W',
+ GDK_MOD1_MASK,
+ GTK_ACCEL_MASK);
+ gtk_widget_add_accelerator (notes_window->btn_close,
+ "clicked",
+ notes_window->accel_group,
+ 'Q',
+ GDK_CONTROL_MASK,
+ GTK_ACCEL_MASK);
+ /* Tooltips */
+ accel_name = gtk_accelerator_get_label ('N', GDK_CONTROL_MASK);
+ gtk_tooltips_set_tip (GTK_TOOLTIPS (notes_window->notes_plugin->tooltips),
+ notes_window->btn_add,
+ accel_name,
+ NULL);
+ g_free (accel_name);
+ accel_name = gtk_accelerator_get_label ('W', GDK_CONTROL_MASK);
+ gtk_tooltips_set_tip (GTK_TOOLTIPS (notes_window->notes_plugin->tooltips),
+ notes_window->btn_del,
+ accel_name,
+ NULL);
+ g_free (accel_name);
+ accel_name = gtk_accelerator_get_label ('W', GDK_MOD1_MASK);
+ gtk_tooltips_set_tip (GTK_TOOLTIPS (notes_window->notes_plugin->tooltips),
+ notes_window->btn_menu,
+ accel_name,
+ NULL);
+ g_free (accel_name);
+ accel_name = gtk_accelerator_get_label ('Q', GDK_CONTROL_MASK);
+ gtk_tooltips_set_tip (GTK_TOOLTIPS (notes_window->notes_plugin->tooltips),
+ notes_window->btn_close,
+ accel_name,
+ NULL);
+ g_free (accel_name);
+
/* Signals FIXME */
g_signal_connect_swapped (notes_window->window,
"window-state-event",
@@ -295,7 +334,7 @@
G_CALLBACK (notes_window_scroll_event),
notes_window);
g_signal_connect_swapped (notes_window->btn_menu,
- "event",
+ "clicked",
G_CALLBACK (notes_window_menu_popup),
notes_window);
g_signal_connect_swapped (notes_window->window,
@@ -512,13 +551,9 @@
{
/* Menu */
notes_window->menu = gtk_menu_new ();
- GtkWidget *mi_new_window = gtk_image_menu_item_new_with_label (_("New window"));
- GtkWidget *img_new_window = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi_new_window), img_new_window);
- GtkWidget *mi_destroy_window = gtk_image_menu_item_new_with_label (_("Destroy window"));
- GtkWidget *img_destroy_window = gtk_image_new_from_stock (GTK_STOCK_DELETE, GTK_ICON_SIZE_MENU);
- gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi_destroy_window), img_destroy_window);
- GtkWidget *mi_rename_window = gtk_menu_item_new_with_label (_("Rename window..."));
+ GtkWidget *mi_new_window = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL);
+ GtkWidget *mi_destroy_window = gtk_image_menu_item_new_from_stock (GTK_STOCK_DELETE, NULL);
+ GtkWidget *mi_rename_window = gtk_menu_item_new_with_mnemonic (_("_Rename..."));
GtkWidget *mi_separator1 = gtk_separator_menu_item_new ();
GtkWidget *mi_show_on_startup = gtk_menu_item_new_with_label (_("Show on startup"));
GtkWidget *mi_show_statusbar = gtk_check_menu_item_new_with_label (_("Show statusbar"));
@@ -564,6 +599,20 @@
gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi_sticky),
notes_window->sticky);
+ /* Accel group */
+ gtk_widget_add_accelerator (mi_new_window,
+ "activate",
+ notes_window->accel_group,
+ 'N',
+ GDK_SHIFT_MASK|GDK_CONTROL_MASK,
+ GTK_ACCEL_MASK);
+ gtk_widget_add_accelerator (mi_destroy_window,
+ "activate",
+ notes_window->accel_group,
+ 'W',
+ GDK_SHIFT_MASK|GDK_CONTROL_MASK,
+ GTK_ACCEL_MASK);
+
/* Signals */
g_signal_connect_swapped (notes_window->menu,
"deactivate",
@@ -610,23 +659,20 @@
gtk_widget_show_all (notes_window->menu);
}
-static gboolean
-notes_window_menu_popup (NotesWindow *notes_window,
- GdkEvent *event)
+static void
+notes_window_menu_popup (NotesWindow *notes_window)
{
- if (event->type == GDK_BUTTON_PRESS && event->button.button == 1)
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (notes_window->btn_menu)))
{
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (notes_window->btn_menu), TRUE);
notes_window_menu_new (notes_window);
gtk_menu_popup (GTK_MENU (notes_window->menu),
NULL,
NULL,
(GtkMenuPositionFunc) notes_window_menu_position,
NULL,
- event->button.button,
- event->button.time);
+ 0,
+ gdk_event_get_time (NULL));
}
- return FALSE;
}
static void
@@ -943,6 +989,7 @@
g_free (notes_window->name);
notes_window->name = g_strdup (name);
+ gtk_window_set_title (GTK_WINDOW (notes_window->window), name);
gchar *name_tmp = g_strdup_printf ("<b>%s</b>", name);
gtk_label_set_text (GTK_LABEL (notes_window->title), name_tmp);
gtk_label_set_use_markup (GTK_LABEL (notes_window->title), TRUE);
Modified: xfce4-notes-plugin/trunk/panel-plugin/notes.h
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/notes.h 2007-10-10 21:59:50 UTC (rev 3339)
+++ xfce4-notes-plugin/trunk/panel-plugin/notes.h 2007-10-10 22:00:04 UTC (rev 3340)
@@ -75,6 +75,8 @@
GtkWidget *title;
GtkWidget *notebook;
GtkWidget *statusbar;
+
+ GtkAccelGroup *accel_group;
};
typedef struct _NotesNote NotesNote;
Modified: xfce4-notes-plugin/trunk/panel-plugin/panel-plugin.c
===================================================================
--- xfce4-notes-plugin/trunk/panel-plugin/panel-plugin.c 2007-10-10 21:59:50 UTC (rev 3339)
+++ xfce4-notes-plugin/trunk/panel-plugin/panel-plugin.c 2007-10-10 22:00:04 UTC (rev 3340)
@@ -198,6 +198,15 @@
notes_plugin->menu = gtk_menu_new ();
+ GtkWidget *mi_foo = gtk_image_menu_item_new_from_stock (GTK_STOCK_NEW, NULL);
+ g_signal_connect_swapped (mi_foo,
+ "activate",
+ G_CALLBACK (notes_window_new),
+ notes_plugin);
+ GtkWidget *mi_sep = gtk_separator_menu_item_new ();
+ gtk_menu_shell_append (GTK_MENU_SHELL (notes_plugin->menu), mi_foo);
+ gtk_menu_shell_append (GTK_MENU_SHELL (notes_plugin->menu), mi_sep);
+
while ((notes_window = (NotesWindow *)g_slist_nth_data (notes_plugin->windows, i++)) != NULL)
{
TRACE ("notes_window (%d): %p", (i-1), notes_window);
More information about the Goodies-commits
mailing list