[libgda] GdaBrowser: improved UI
- From: Vivien Malerba <vivien src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libgda] GdaBrowser: improved UI
- Date: Wed, 20 Jul 2011 20:37:49 +0000 (UTC)
commit d83c45c3251570dc08f7a0bcd5e111fb7855927e
Author: Vivien Malerba <malerba gnome-db org>
Date: Wed Jul 20 22:36:02 2011 +0200
GdaBrowser: improved UI
tools/browser/Makefile.am | 2 -
tools/browser/browser-stock-icons.c | 2 +
tools/browser/browser-stock-icons.h | 2 +
tools/browser/common/ui-formgrid.c | 58 +++++++++++++-------
tools/browser/data/Makefile.am | 2 +
.../hicolor_actions_22x22_form.png} | Bin 286 -> 286 bytes
.../hicolor_actions_22x22_grid.png} | Bin 258 -> 258 bytes
tools/browser/support.c | 2 -
tools/browser/support.h | 3 -
9 files changed, 45 insertions(+), 26 deletions(-)
---
diff --git a/tools/browser/Makefile.am b/tools/browser/Makefile.am
index 22f0741..afa4413 100644
--- a/tools/browser/Makefile.am
+++ b/tools/browser/Makefile.am
@@ -177,8 +177,6 @@ icons_DATA= \
gda-browser-diagram.png \
gda-browser-query.png \
gda-browser-action.png \
- gda-browser-form.png \
- gda-browser-grid.png \
gda-browser-menu-ind.png \
gda-browser-ldap-entry.png \
gda-browser-ldap-group.png \
diff --git a/tools/browser/browser-stock-icons.c b/tools/browser/browser-stock-icons.c
index 7a0d1ea..ac09c4d 100644
--- a/tools/browser/browser-stock-icons.c
+++ b/tools/browser/browser-stock-icons.c
@@ -49,6 +49,8 @@ browser_stock_icons_init (void)
{ BROWSER_STOCK_BUILDER, N_("Builder"), 0, 0, NULL },
{ BROWSER_STOCK_LDAP_ENTRIES, N_("Ldap entries"), 0, 0, NULL },
{ BROWSER_STOCK_TABLE_ADD, N_("Add table"), 0, 0, NULL},
+ { BROWSER_STOCK_GRID, N_("Grid"), 0, 0, NULL},
+ { BROWSER_STOCK_FORM, N_("Form"), 0, 0, NULL},
};
factory = gtk_icon_factory_new ();
diff --git a/tools/browser/browser-stock-icons.h b/tools/browser/browser-stock-icons.h
index 3d0dd13..17d60e1 100644
--- a/tools/browser/browser-stock-icons.h
+++ b/tools/browser/browser-stock-icons.h
@@ -29,6 +29,8 @@ G_BEGIN_DECLS
#define BROWSER_STOCK_BUILDER "glade"
#define BROWSER_STOCK_LDAP_ENTRIES "ldap-entries"
#define BROWSER_STOCK_TABLE_ADD "table-add"
+#define BROWSER_STOCK_GRID "grid"
+#define BROWSER_STOCK_FORM "form"
/* Named icons defined in fd.o Icon Naming Spec */
diff --git a/tools/browser/common/ui-formgrid.c b/tools/browser/common/ui-formgrid.c
index 8a4784a..e690c6f 100644
--- a/tools/browser/common/ui-formgrid.c
+++ b/tools/browser/common/ui-formgrid.c
@@ -26,6 +26,7 @@
#include <libgda-ui/gdaui-data-selector.h>
#include "../support.h"
#include "../browser-window.h"
+#include "../browser-stock-icons.h"
#include "widget-overlay.h"
#include <libgda/gda-data-model-extra.h>
#ifdef HAVE_LDAP
@@ -220,7 +221,7 @@ ui_formgrid_show (GtkWidget *widget)
}
static void form_grid_autoupdate_cb (GtkToggleButton *button, UiFormGrid *formgrid);
-static void form_grid_toggled_cb (GtkToggleButton *button, UiFormGrid *formgrid);
+static void form_grid_toggled_cb (GtkToggleAction *action, UiFormGrid *formgrid);
static void form_grid_populate_popup_cb (GtkWidget *wid, GtkMenu *menu, UiFormGrid *formgrid);
static void selection_changed_cb (GdauiDataSelector *sel, UiFormGrid *formgrid);
@@ -273,18 +274,6 @@ ui_formgrid_init (UiFormGrid *formgrid)
gtk_box_pack_start (GTK_BOX (formgrid), hbox, FALSE, TRUE, 0);
gtk_widget_show (hbox);
- /* button to toggle between grid and form mode */
- button = gtk_toggle_button_new ();
- GdkPixbuf *pixbuf = browser_get_pixbuf_icon (BROWSER_ICON_GRID);
- gtk_button_set_image (GTK_BUTTON (button), gtk_image_new_from_pixbuf (pixbuf));
-
- gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE);
- gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
- gtk_widget_show (button);
- g_signal_connect (G_OBJECT (button), "toggled",
- G_CALLBACK (form_grid_toggled_cb), formgrid);
- gtk_widget_set_tooltip_text (button, _("Toggle between grid and form presentations"));
-
/* button to toggle between auto update and not */
button = gtk_toggle_button_new ();
GtkWidget *img = gtk_image_new_from_stock (GTK_STOCK_EXECUTE, GTK_ICON_SIZE_MENU);
@@ -297,13 +286,46 @@ ui_formgrid_init (UiFormGrid *formgrid)
G_CALLBACK (form_grid_autoupdate_cb), formgrid);
gtk_widget_set_tooltip_text (button, _("Enable or disable auto update of data"));
+ /* Proxy info */
formgrid->priv->info = gdaui_data_proxy_info_new (GDAUI_DATA_PROXY (formgrid->priv->raw_grid),
formgrid->priv->flags |
GDAUI_DATA_PROXY_INFO_CURRENT_ROW |
GDAUI_DATA_PROXY_INFO_CHUNCK_CHANGE_BUTTONS);
+
+ GtkUIManager *uimanager;
+ GtkActionGroup *agroup;
+ GtkAction *action;
+ guint mid;
+
+ g_object_get (G_OBJECT (formgrid->priv->info), "ui-manager", &uimanager, NULL);
+ agroup = gtk_action_group_new ("FormGrid");
+ gtk_action_group_set_translation_domain (agroup, GETTEXT_PACKAGE);
+
+ action = GTK_ACTION (gtk_toggle_action_new ("FGToggle", "FGToggle",
+ _("Toggle between grid and form presentations"),
+ BROWSER_STOCK_GRID));
+ gtk_toggle_action_set_active (GTK_TOGGLE_ACTION (action), TRUE);
+ gtk_action_group_add_action (agroup, action);
+ g_signal_connect (G_OBJECT (action), "toggled",
+ G_CALLBACK (form_grid_toggled_cb), formgrid);
+ g_object_unref (action);
+ gtk_ui_manager_insert_action_group (uimanager, agroup, 0);
+ g_object_unref (agroup);
+
+ mid = gtk_ui_manager_new_merge_id (uimanager);
+ gtk_ui_manager_add_ui (uimanager, mid, "/ToolBar", "FGToggle", "FGToggle",
+ GTK_UI_MANAGER_AUTO, TRUE);
+ gtk_ui_manager_ensure_update (uimanager);
gtk_box_pack_start (GTK_BOX (hbox), formgrid->priv->info, TRUE, TRUE, 0);
gtk_widget_show (formgrid->priv->info);
+
+ /*gchar *tmp;
+ g_object_get (uimanager, "ui", &tmp, NULL);
+ g_print ("==>[%s]\n", tmp);
+ g_free (tmp);
+ */
+
/* keep data in sync */
g_signal_connect (formgrid->priv->raw_grid, "selection-changed",
G_CALLBACK (selection_changed_cb), formgrid);
@@ -341,9 +363,9 @@ form_grid_autoupdate_cb (GtkToggleButton *button, UiFormGrid *formgrid)
}
static void
-form_grid_toggled_cb (GtkToggleButton *button, UiFormGrid *formgrid)
+form_grid_toggled_cb (GtkToggleAction *action, UiFormGrid *formgrid)
{
- if (!gtk_toggle_button_get_active (button)) {
+ if (!gtk_toggle_action_get_active (action)) {
/* switch to form view */
gtk_notebook_set_current_page (GTK_NOTEBOOK (formgrid->priv->nb), 1);
g_object_set (G_OBJECT (formgrid->priv->info),
@@ -354,8 +376,7 @@ form_grid_toggled_cb (GtkToggleButton *button, UiFormGrid *formgrid)
GDAUI_DATA_PROXY_INFO_ROW_MODIFY_BUTTONS |
GDAUI_DATA_PROXY_INFO_ROW_MOVE_BUTTONS*/, NULL);
- GdkPixbuf *pixbuf = browser_get_pixbuf_icon (BROWSER_ICON_FORM);
- gtk_button_set_image (GTK_BUTTON (button), gtk_image_new_from_pixbuf (pixbuf));
+ g_object_set (G_OBJECT (action), "stock-id", BROWSER_STOCK_FORM, NULL);
}
else {
/* switch to grid view */
@@ -368,8 +389,7 @@ form_grid_toggled_cb (GtkToggleButton *button, UiFormGrid *formgrid)
GDAUI_DATA_PROXY_INFO_ROW_MODIFY_BUTTONS |
GDAUI_DATA_PROXY_INFO_CHUNCK_CHANGE_BUTTONS*/, NULL);
- GdkPixbuf *pixbuf = browser_get_pixbuf_icon (BROWSER_ICON_GRID);
- gtk_button_set_image (GTK_BUTTON (button), gtk_image_new_from_pixbuf (pixbuf));
+ g_object_set (G_OBJECT (action), "stock-id", BROWSER_STOCK_GRID, NULL);
}
}
diff --git a/tools/browser/data/Makefile.am b/tools/browser/data/Makefile.am
index 85da07a..452e3d2 100644
--- a/tools/browser/data/Makefile.am
+++ b/tools/browser/data/Makefile.am
@@ -14,6 +14,8 @@ private_icons = \
hicolor_actions_22x22_bookmark-view.png \
hicolor_actions_22x22_history-view.png \
hicolor_actions_22x22_glade.png \
+ hicolor_actions_22x22_grid.png \
+ hicolor_actions_22x22_form.png \
hicolor_actions_24x24_bookmark-view.png \
hicolor_actions_24x24_history-view.png \
hicolor_actions_24x24_transaction-begin.png \
diff --git a/tools/browser/gda-browser-form.png b/tools/browser/data/hicolor_actions_22x22_form.png
similarity index 100%
rename from tools/browser/gda-browser-form.png
rename to tools/browser/data/hicolor_actions_22x22_form.png
diff --git a/tools/browser/gda-browser-grid.png b/tools/browser/data/hicolor_actions_22x22_grid.png
similarity index 100%
rename from tools/browser/gda-browser-grid.png
rename to tools/browser/data/hicolor_actions_22x22_grid.png
diff --git a/tools/browser/support.c b/tools/browser/support.c
index f9479e1..b750bc5 100644
--- a/tools/browser/support.c
+++ b/tools/browser/support.c
@@ -382,8 +382,6 @@ browser_get_pixbuf_icon (BrowserIconType type)
"gda-browser-diagram.png",
"gda-browser-query.png",
"gda-browser-action.png",
- "gda-browser-grid.png",
- "gda-browser-form.png",
"gda-browser-menu-ind.png",
"gda-browser-ldap-entry.png",
"gda-browser-ldap-group.png",
diff --git a/tools/browser/support.h b/tools/browser/support.h
index 4436027..ebb5a6f 100644
--- a/tools/browser/support.h
+++ b/tools/browser/support.h
@@ -83,9 +83,6 @@ typedef enum {
BROWSER_ICON_QUERY,
BROWSER_ICON_ACTION,
- BROWSER_ICON_GRID,
- BROWSER_ICON_FORM,
-
BROWSER_ICON_MENU_INDICATOR,
BROWSER_ICON_LDAP_ENTRY,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]