gnome-commander r2346 - in trunk: . src
- From: epiotr svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-commander r2346 - in trunk: . src
- Date: Thu, 11 Dec 2008 17:57:03 +0000 (UTC)
Author: epiotr
Date: Thu Dec 11 17:57:03 2008
New Revision: 2346
URL: http://svn.gnome.org/viewvc/gnome-commander?rev=2346&view=rev
Log:
move code for menu buttons to gnome-cmd-menu-button.{cc,h} files
Added:
trunk/src/gnome-cmd-menu-button.cc
trunk/src/gnome-cmd-menu-button.h
Modified:
trunk/ChangeLog
trunk/src/Makefile.am
trunk/src/gnome-cmd-advrename-dialog.cc
Modified: trunk/src/Makefile.am
==============================================================================
--- trunk/src/Makefile.am (original)
+++ trunk/src/Makefile.am Thu Dec 11 17:57:03 2008
@@ -56,6 +56,7 @@
gnome-cmd-main-menu.h gnome-cmd-main-menu.cc \
gnome-cmd-main-win.h gnome-cmd-main-win.cc \
gnome-cmd-make-copy-dialog.h gnome-cmd-make-copy-dialog.cc \
+ gnome-cmd-menu-button.h gnome-cmd-menu-button.cc \
gnome-cmd-mkdir-dialog.h gnome-cmd-mkdir-dialog.cc \
gnome-cmd-notebook.h gnome-cmd-notebook.cc \
gnome-cmd-options-dialog.h gnome-cmd-options-dialog.cc \
Modified: trunk/src/gnome-cmd-advrename-dialog.cc
==============================================================================
--- trunk/src/gnome-cmd-advrename-dialog.cc (original)
+++ trunk/src/gnome-cmd-advrename-dialog.cc Thu Dec 11 17:57:03 2008
@@ -33,6 +33,7 @@
#include "gnome-cmd-advrename-lexer.h"
#include "gnome-cmd-file.h"
#include "gnome-cmd-treeview.h"
+#include "gnome-cmd-menu-button.h"
#include "gnome-cmd-data.h"
#include "tags/gnome-cmd-tags.h"
#include "utils.h"
@@ -101,7 +102,6 @@
void files_view_popup_menu (GtkWidget *treeview, GnomeCmdAdvrenameDialog *dialog, GdkEventButton *event=NULL);
static void on_template_entry_changed(GtkEntry *entry, GnomeCmdAdvrenameDialog *dialog);
- static void on_menu_button_clicked(GtkButton *widget, GtkWidget *menu);
static void on_counter_start_spin_value_changed (GtkWidget *spin, GnomeCmdAdvrenameDialog *dialog);
static void on_counter_step_spin_value_changed (GtkWidget *spin, GnomeCmdAdvrenameDialog *dialog);
@@ -508,20 +508,9 @@
inline GtkWidget *GnomeCmdAdvrenameDialog::Private::create_button_with_menu(gchar *label_text, int menu_type, GnomeCmdData::AdvrenameConfig *cfg)
{
- GtkWidget *button = gtk_button_new ();
- GtkWidget *hbox = gtk_hbox_new (FALSE, 3);
+ menu_button[menu_type] = gnome_cmd_button_menu_new (label_text, create_placeholder_menu(menu_type, cfg));
- gtk_container_add (GTK_CONTAINER (button), hbox);
-
- gtk_box_pack_start (GTK_BOX (hbox), gtk_label_new (label_text), TRUE, TRUE, 0);
- gtk_box_pack_start (GTK_BOX (hbox), gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE), FALSE, FALSE, 0);
-
- gtk_widget_set_events (button, GDK_BUTTON_PRESS_MASK);
- g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_menu_button_clicked), create_placeholder_menu(menu_type, cfg));
-
- menu_button[menu_type] = button;
-
- return button;
+ return menu_button[menu_type];
}
@@ -596,9 +585,9 @@
{
GtkWidget *menu = widget->parent;
- g_signal_handlers_disconnect_by_func (G_OBJECT (priv->menu_button[PROFILE_MENU]), gpointer (on_menu_button_clicked), menu);
+ gnome_cmd_button_menu_disconnect_handler (priv->menu_button[PROFILE_MENU], menu);
g_object_unref (gtk_item_factory_from_widget (menu));
- g_signal_connect (G_OBJECT (priv->menu_button[PROFILE_MENU]), "clicked", G_CALLBACK (on_menu_button_clicked), priv->create_placeholder_menu(PROFILE_MENU, &cfg));
+ gnome_cmd_button_menu_connect_handler (priv->menu_button[PROFILE_MENU], priv->create_placeholder_menu(PROFILE_MENU, &cfg));
}
}
@@ -634,18 +623,6 @@
}
-void GnomeCmdAdvrenameDialog::Private::on_menu_button_clicked(GtkButton *widget, GtkWidget *menu)
-{
- GdkEventButton *event = (GdkEventButton *) gtk_get_current_event();
-
- if (event == NULL)
- gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time());
- else
- if (event->button == 1)
- gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time);
-}
-
-
inline GtkWidget *create_regex_view ();
inline GtkTreeModel *create_files_model ();
Added: trunk/src/gnome-cmd-menu-button.cc
==============================================================================
--- (empty file)
+++ trunk/src/gnome-cmd-menu-button.cc Thu Dec 11 17:57:03 2008
@@ -0,0 +1,88 @@
+/*
+ GNOME Commander - A GNOME based file manager
+ Copyright (C) 2001-2006 Marcus Bjurman
+ Copyright (C) 2007-2008 Piotr Eljasiak
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#include <gtk/gtk.h>
+#include <config.h>
+
+#include "gnome-cmd-menu-button.h"
+
+using namespace std;
+
+
+static void on_menu_button_clicked (GtkButton *widget, GtkWidget *menu)
+{
+ GdkEventButton *event = (GdkEventButton *) gtk_get_current_event();
+
+ if (event == NULL)
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 1, gtk_get_current_event_time());
+ else
+ if (event->button == 1)
+ gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, event->button, event->time);
+}
+
+
+inline GtkWidget *create_menu_button (const gchar *stock_id, const gchar *label_text, GtkWidget *menu)
+{
+ GtkWidget *button = gtk_button_new ();
+ GtkWidget *hbox = gtk_hbox_new (FALSE, 3);
+ GtkWidget *label = gtk_label_new_with_mnemonic (label_text ? label_text : stock_id);
+
+ gtk_container_add (GTK_CONTAINER (button), hbox);
+
+ if (stock_id)
+ gtk_box_pack_start (GTK_BOX (hbox), gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON), FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox), gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE), FALSE, FALSE, 0);
+
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), button);
+ gtk_widget_set_events (button, GDK_BUTTON_PRESS_MASK);
+ g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_menu_button_clicked), menu);
+
+ return button;
+}
+
+
+GtkWidget *gnome_cmd_button_menu_new (const gchar *label, GtkWidget *menu)
+{
+ return create_menu_button (NULL, label, menu);
+}
+
+
+GtkWidget *gnome_cmd_button_menu_new_from_stock (const gchar *stock_id, GtkWidget *menu)
+{
+ return create_menu_button (stock_id, NULL, menu);
+}
+
+
+GtkWidget *gnome_cmd_button_menu_new_from_stock (const gchar *stock_id, const gchar *label, GtkWidget *menu)
+{
+ return create_menu_button (stock_id, label, menu);
+}
+
+
+gulong gnome_cmd_button_menu_connect_handler (GtkWidget *button, GtkWidget *menu)
+{
+ return g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (on_menu_button_clicked), menu);
+}
+
+void gnome_cmd_button_menu_disconnect_handler (GtkWidget *button, GtkWidget *menu)
+{
+ g_signal_handlers_disconnect_by_func (G_OBJECT (button), gpointer (on_menu_button_clicked), menu);
+}
Added: trunk/src/gnome-cmd-menu-button.h
==============================================================================
--- (empty file)
+++ trunk/src/gnome-cmd-menu-button.h Thu Dec 11 17:57:03 2008
@@ -0,0 +1,30 @@
+/*
+ GNOME Commander - A GNOME based file manager
+ Copyright (C) 2001-2006 Marcus Bjurman
+ Copyright (C) 2007-2008 Piotr Eljasiak
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+*/
+
+#ifndef __GNOME_CMD_MENU_BUTTON_H__
+#define __GNOME_CMD_MENU_BUTTON_H__
+
+GtkWidget *gnome_cmd_button_menu_new (const gchar *label, GtkWidget *menu);
+GtkWidget *gnome_cmd_button_menu_new_from_stock (const gchar *stock_id, GtkWidget *menu);
+GtkWidget *gnome_cmd_button_menu_new_from_stock (const gchar *stock_id, const gchar *label, GtkWidget *menu);
+gulong gnome_cmd_button_menu_connect_handler (GtkWidget *button, GtkWidget *menu);
+void gnome_cmd_button_menu_disconnect_handler (GtkWidget *button, GtkWidget *menu);
+
+#endif // __GNOME_CMD_MENU_BUTTON_H__
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]