Author: peter
Date: 2006-11-22 14:49:08 +0000 (Wed, 22 Nov 2006)
New Revision: 23933
Modified:
xarchiver/branches/xarchiver-psybsd/TODO
xarchiver/branches/xarchiver-psybsd/src/archive_store.c
xarchiver/branches/xarchiver-psybsd/src/main_window.c
xarchiver/branches/xarchiver-psybsd/src/main_window.h
xarchiver/branches/xarchiver-psybsd/src/notebook.c
xarchiver/branches/xarchiver-psybsd/src/widget_factory.c
Log:
Toggle navigation bar using property
Remember trailing folders for path bar
Modified: xarchiver/branches/xarchiver-psybsd/TODO
===================================================================
--- xarchiver/branches/xarchiver-psybsd/TODO 2006-11-22 13:38:24 UTC (rev
23932)
+++ xarchiver/branches/xarchiver-psybsd/TODO 2006-11-22 14:49:08 UTC (rev
23933)
@@ -14,6 +14,10 @@
Fix Command-line options - DONE
+ Toggle navigationbar at runtime - DONE
+
+ Save trailing folders for path_bar - DONE
+
Add Accelerators to Notebook
Add Dialog
@@ -42,8 +46,6 @@
In archive store, on delete in parent dir of current entry, check if
map still exists, if not move to the ancestor that still exists
- Save trailing folders for path_bar
-
In treeview, when going to up dir, select the dir you came from
When retrieving selected items from the treeview, forget the updir item
@@ -55,9 +57,7 @@
Add progressbar to statusbar.
- Toggle navigationbar at runtime
-
- Support CustomActionProperties (custom-actions which require additional
arguments and configuration)
+ Support CustomActionProperties (custom-actions which require additional
arguments and configuration) Make them class actions insteadof instance actions
structs
An Archive can only be opened once
Modified: xarchiver/branches/xarchiver-psybsd/src/archive_store.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/archive_store.c 2006-11-22
13:38:24 UTC (rev 23932)
+++ xarchiver/branches/xarchiver-psybsd/src/archive_store.c 2006-11-22
14:49:08 UTC (rev 23933)
@@ -1580,27 +1580,45 @@
{
GSList *piter = (GSList*)store->navigation.present->data;
GSList *titer = store->navigation.trailing;
+ GSList *miter = NULL;
+ gboolean match = FALSE;
GValue p, t;
memset(&p, 0, sizeof(GValue));
memset(&t, 0, sizeof(GValue));
- while(titer && piter)
+ if(titer)
{
- lxa_archive_iter_get_prop_value(store->archive,
(LXAArchiveIter*)piter->data, LXA_ARCHIVE_PROP_FILENAME, &p);
- lxa_archive_iter_get_prop_value(store->archive,
(LXAArchiveIter*)titer->data, LXA_ARCHIVE_PROP_FILENAME, &t);
- if(strcmp(g_value_get_string(&p), g_value_get_string(&t)))
+ while(titer->next && piter->next)
{
- g_slist_free(store->navigation.trailing);
- store->navigation.trailing =
g_slist_copy((GSList*)store->navigation.present->data);
+ lxa_archive_iter_get_prop_value(store->archive,
(LXAArchiveIter*)piter->data, LXA_ARCHIVE_PROP_FILENAME, &p);
+ lxa_archive_iter_get_prop_value(store->archive,
(LXAArchiveIter*)titer->data, LXA_ARCHIVE_PROP_FILENAME, &t);
+ if(strcmp(g_value_get_string(&p),
g_value_get_string(&t)) == 0)
+ {
+ titer = titer->next;
+ piter = piter->next;
+ if(!match)
+ miter = piter;
+ match = TRUE;
+ }
+ else if(match)
+ {
+ match = FALSE;
+ piter = miter;
+ titer = store->navigation.trailing;
+ }
+ else
+ {
+ titer = titer->next;
+ }
g_value_unset(&p);
g_value_unset(&t);
- break;
}
- g_value_unset(&p);
- g_value_unset(&t);
+ }
- piter = piter->next;
- titer = titer->next;
+ if(!match)
+ {
+ g_slist_free(store->navigation.trailing);
+ store->navigation.trailing =
g_slist_copy((GSList*)store->navigation.present->data);
}
}
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-11-22
13:38:24 UTC (rev 23932)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.c 2006-11-22
14:49:08 UTC (rev 23933)
@@ -17,6 +17,17 @@
*/
#include <config.h>
+
+#undef XA_MAIN_ANY_BAR
+
+#ifdef ENABLE_PATHBAR
+#define XA_MAIN_ANY_BAR 1
+#else
+#ifdef ENABLE_TOOLBAR
+#define XA_MAIN_ANY_BAR 1
+#endif
+#endif
+
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
@@ -49,15 +60,6 @@
#include "main.h"
-typedef enum
-{
- XA_MAIN_WINDOW_NAVIGATION_INTERNAL,
- XA_MAIN_WINDOW_NAVIGATION_TOOL_BAR,
- XA_MAIN_WINDOW_NAVIGATION_PATH_BAR
-} XAMainWindowNavigationStyle;
-
-#define XA_TYPE_MAIN_WINDOW_NAVIGATION_STYLE
(xa_main_window_navigation_style_get_type())
-
enum
{
XA_MAIN_WINDOW_NAVIGATION_STYLE = 1
@@ -93,11 +95,9 @@
cb_xa_main_window_notebook_file_activated(XANotebook *, gchar *, gpointer);
static void
-cb_xa_main_window_set_tool_bar(GtkWidget *widget, gpointer userdata);
-static void
-cb_xa_main_window_set_path_bar(GtkWidget *widget, gpointer userdata);
+xa_main_window_set_navigation(XAMainWindow *window);
-static GType
+GType
xa_main_window_navigation_style_get_type()
{
static GType nav_style_type = 0;
@@ -106,8 +106,12 @@
{
static GEnumValue style_types[] = {
{XA_MAIN_WINDOW_NAVIGATION_INTERNAL, "internal",
"Internal Style"},
+#ifdef ENABLE_TOOLBAR
{XA_MAIN_WINDOW_NAVIGATION_TOOL_BAR, "tool_bar", "Tool
Bar Style"},
+#endif
+#ifdef ENABLE_PATHBAR
{XA_MAIN_WINDOW_NAVIGATION_PATH_BAR, "path_bar", "Path
Bar Style"},
+#endif
{0, NULL, NULL}
};
@@ -214,6 +218,7 @@
GtkWidget *menu_separator;
GtkWidget *tmp_image;
const gchar *nav_bar;
+ GSList *list, *iter;
gboolean up_dir = TRUE;
gboolean show_icons = TRUE;
gboolean sort_case = TRUE;
@@ -299,26 +304,16 @@
window->menubar.menu_view = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->menubar.menu_item_view),
window->menubar.menu_view);
- window->menubar.menu_item_nav_bar =
gtk_menu_item_new_with_mnemonic(_("_Location Selector"));
- window->menubar.menu_nav_bar = gtk_menu_new();
-
gtk_menu_item_set_submenu(GTK_MENU_ITEM(window->menubar.menu_item_nav_bar),
window->menubar.menu_nav_bar);
- gtk_container_add(GTK_CONTAINER(window->menubar.menu_view),
window->menubar.menu_item_nav_bar);
+#ifdef XA_MAIN_ANY_BAR
+ list =
xa_widget_factory_create_property_menu(window->widget_factory,
G_OBJECT(window), "navigation-style");
+ for(iter = list; iter; iter = iter->next)
+ {
+
gtk_container_add(GTK_CONTAINER(window->menubar.menu_view), iter->data);
+ gtk_widget_show(iter->data);
+ }
+#endif
+ gtk_widget_show_all(window->menubar.menu_view);
- window->menubar.menu_item_no_bar =
gtk_radio_menu_item_new_with_mnemonic(NULL, _("Internal style"));
- gtk_container_add(GTK_CONTAINER(window->menubar.menu_nav_bar),
window->menubar.menu_item_no_bar);
- gtk_check_menu_item_set_active((GtkCheckMenuItem
*)window->menubar.menu_item_no_bar, TRUE);
-#ifdef ENABLE_TOOLBAR
- window->menubar.menu_item_tool_bar =
gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(window->menubar.menu_item_no_bar),
_("Toolbar style"));
- gtk_container_add(GTK_CONTAINER(window->menubar.menu_nav_bar),
window->menubar.menu_item_tool_bar);
- g_signal_connect(G_OBJECT(window->menubar.menu_item_tool_bar),
"toggled", G_CALLBACK(cb_xa_main_window_set_tool_bar), window);
-#endif /* ENABLE_TOOLBAR */
-#ifdef ENABLE_PATHBAR
- window->menubar.menu_item_path_bar =
gtk_radio_menu_item_new_with_mnemonic_from_widget(GTK_RADIO_MENU_ITEM(window->menubar.menu_item_no_bar),
_("Pathbar style"));
- gtk_container_add(GTK_CONTAINER(window->menubar.menu_nav_bar),
window->menubar.menu_item_path_bar);
- g_signal_connect(G_OBJECT(window->menubar.menu_item_path_bar),
"toggled", G_CALLBACK(cb_xa_main_window_set_path_bar), window);
-#endif /* ENABLE_PATHBAR */
-
-
gtk_menu_bar_append(GTK_MENU_BAR(window->menu_bar),
window->menubar.menu_item_file);
gtk_menu_bar_append(GTK_MENU_BAR(window->menu_bar),
window->menubar.menu_item_action);
gtk_menu_bar_append(GTK_MENU_BAR(window->menu_bar),
window->menubar.menu_item_view);
@@ -371,11 +366,14 @@
g_signal_connect(G_OBJECT(window->toolbar.tool_item_stop), "clicked",
G_CALLBACK(cb_xa_main_stop_archive), window);
nav_bar = xa_settings_read_entry(window->settings, "NavigationBar",
"None");
+ window->nav_style = XA_MAIN_WINDOW_NAVIGATION_INTERNAL;
window->navigationbar = NULL;
+ up_dir = TRUE;
#ifdef ENABLE_TOOLBAR
if(!strcmp(nav_bar, "ToolBar"))
{
+ window->nav_style = XA_MAIN_WINDOW_NAVIGATION_TOOL_BAR;
window->navigationbar = xa_tool_bar_new(NULL);
up_dir = FALSE;
}
@@ -383,16 +381,14 @@
#ifdef ENABLE_PATHBAR
if(!strcmp(nav_bar, "PathBar"))
{
+ window->nav_style = XA_MAIN_WINDOW_NAVIGATION_PATH_BAR;
window->navigationbar = xa_path_bar_new(NULL);
gtk_container_set_border_width(GTK_CONTAINER(window->navigationbar), 3);
up_dir = FALSE;
}
#endif
- if(!window->navigationbar)
- up_dir = TRUE;
- else
- up_dir = FALSE;
+ g_object_notify(G_OBJECT(window), "navigation-style");
show_icons = xa_settings_read_bool_entry(window->settings, "ShowIcons",
TRUE);
sort_case = xa_settings_read_bool_entry(window->settings,
"SortCaseSensitive", TRUE);
@@ -458,23 +454,26 @@
static void
xa_main_window_get_property(GObject *object, guint prop_id, GValue *value,
GParamSpec *pspec)
{
-/*
+ XAMainWindow *window = XA_MAIN_WINDOW(object);
switch(prop_id)
{
-
+ case XA_MAIN_WINDOW_NAVIGATION_STYLE:
+ g_value_set_enum(value, window->nav_style);
+ break;
}
-*/
}
static void
xa_main_window_set_property(GObject *object, guint prop_id, const GValue
*value, GParamSpec *pspec)
{
-/*
+ XAMainWindow *window = XA_MAIN_WINDOW(object);
switch(prop_id)
{
-
+ case XA_MAIN_WINDOW_NAVIGATION_STYLE:
+ window->nav_style = g_value_get_enum(value);
+ xa_main_window_set_navigation(window);
+ break;
}
-*/
}
GtkWidget *
@@ -849,47 +848,41 @@
}
static void
-cb_xa_main_window_set_tool_bar(GtkWidget *widget, gpointer userdata)
+xa_main_window_set_navigation(XAMainWindow *window)
{
- XAMainWindow *window = XA_MAIN_WINDOW(userdata);
- XANavigationBar *tool_bar = NULL;
+ XANavigationBar *nav_bar = NULL;
+ gboolean up_dir = TRUE;
- if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+ switch(window->nav_style)
{
- tool_bar = xa_tool_bar_new(NULL);
-
- xa_notebook_set_navigation_bar(XA_NOTEBOOK(window->notebook),
tool_bar);
-
- if(window->navigationbar)
- gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
-
- window->navigationbar = tool_bar;
- gtk_box_pack_start(GTK_BOX(window->main_vbox), (GtkWidget
*)tool_bar, FALSE, FALSE, 0);
- gtk_box_reorder_child(GTK_BOX(window->main_vbox), (GtkWidget
*)tool_bar, 2);
- gtk_widget_show_all((GtkWidget *)tool_bar);
+ case XA_MAIN_WINDOW_NAVIGATION_INTERNAL:
+ break;
+#ifdef ENABLE_TOOLBAR
+ case XA_MAIN_WINDOW_NAVIGATION_TOOL_BAR:
+ nav_bar = xa_tool_bar_new(NULL);
+ up_dir = FALSE;
+ break;
+#endif
+#ifdef ENABLE_PATHBAR
+ case XA_MAIN_WINDOW_NAVIGATION_PATH_BAR:
+ nav_bar = xa_path_bar_new(NULL);
+ up_dir = FALSE;
+ break;
+#endif
+ default:
+ return;
}
-}
-static void
-cb_xa_main_window_set_path_bar(GtkWidget *widget, gpointer userdata)
-{
- XAMainWindow *window = XA_MAIN_WINDOW(userdata);
- XANavigationBar *path_bar = NULL;
+ xa_notebook_set_navigation_bar(XA_NOTEBOOK(window->notebook), nav_bar);
- if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
- {
- path_bar = xa_path_bar_new(NULL);
+ if(window->navigationbar)
+ gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
- xa_notebook_set_navigation_bar(XA_NOTEBOOK(window->notebook),
path_bar);
-
- if(window->navigationbar)
- gtk_widget_destroy(GTK_WIDGET(window->navigationbar));
-
- window->navigationbar = path_bar;
-
-
gtk_container_set_border_width(GTK_CONTAINER(window->navigationbar), 3);
- gtk_box_pack_start(GTK_BOX(window->main_vbox), (GtkWidget
*)path_bar, FALSE, FALSE, 0);
- gtk_box_reorder_child(GTK_BOX(window->main_vbox), (GtkWidget
*)path_bar, 2);
- gtk_widget_show_all((GtkWidget *)path_bar);
- }
+ window->navigationbar = nav_bar;
+ if(nav_bar)
+ {
+ gtk_box_pack_start(GTK_BOX(window->main_vbox), (GtkWidget
*)nav_bar, FALSE, FALSE, 0);
+ gtk_box_reorder_child(GTK_BOX(window->main_vbox), (GtkWidget
*)nav_bar, 2);
+ gtk_widget_show_all((GtkWidget *)nav_bar);
+ }
}
Modified: xarchiver/branches/xarchiver-psybsd/src/main_window.h
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-11-22
13:38:24 UTC (rev 23932)
+++ xarchiver/branches/xarchiver-psybsd/src/main_window.h 2006-11-22
14:49:08 UTC (rev 23933)
@@ -26,6 +26,20 @@
XA_MAIN_WINDOW_STATUS_BUSY
}XAMainWindowStatus;
+typedef enum
+{
+ XA_MAIN_WINDOW_NAVIGATION_INTERNAL,
+#ifdef ENABLE_TOOLBAR
+ XA_MAIN_WINDOW_NAVIGATION_TOOL_BAR,
+#endif
+#ifdef ENABLE_PATHBAR
+ XA_MAIN_WINDOW_NAVIGATION_PATH_BAR
+#endif
+} XAMainWindowNavigationStyle;
+
+#define XA_TYPE_MAIN_WINDOW_NAVIGATION_STYLE
(xa_main_window_navigation_style_get_type())
+
+
#define XA_TYPE_MAIN_WINDOW xa_main_window_get_type()
#define XA_MAIN_WINDOW(obj) ( \
@@ -83,13 +97,6 @@
GtkWidget *menu_item_view;
GtkWidget *menu_view;
/* contents of 'view' menu */
- GtkWidget *menu_item_nav_bar;
- GtkWidget *menu_nav_bar;
- /* contents of 'nav_bar' submenu */
- GtkWidget *menu_item_tool_bar;
- GtkWidget *menu_item_path_bar;
- GtkWidget *menu_item_no_bar;
- /*********************************/
GtkWidget *menu_item_settings;
/***************************/
@@ -111,6 +118,7 @@
GtkToolItem *tool_item_remove;
GtkToolItem *tool_item_stop;
} toolbar;
+ XAMainWindowNavigationStyle nav_style;
XANavigationBar *navigationbar;
GtkAccelGroup *accel_group;
GtkWidget *notebook;
@@ -125,6 +133,8 @@
GtkWindowClass parent;
};
+GType xa_main_window_navigation_style_get_type();
+
GtkWidget *xa_main_window_new(XAApplication *, GtkIconTheme *icon_theme);
GtkWidget *xa_main_window_find_image(gchar *, GtkIconSize);
GType xa_main_window_get_type ();
Modified: xarchiver/branches/xarchiver-psybsd/src/notebook.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-22 13:38:24 UTC
(rev 23932)
+++ xarchiver/branches/xarchiver-psybsd/src/notebook.c 2006-11-22 14:49:08 UTC
(rev 23933)
@@ -169,19 +169,7 @@
notebook = g_object_new(XA_TYPE_NOTEBOOK, NULL);
- notebook->props._up_dir = TRUE;
- if(bar)
- {
- xa_notebook_set_navigation_bar(notebook, bar);
-#ifdef ENABLE_TOOLBAR
- if(XA_IS_TOOL_BAR(bar))
- notebook->props._up_dir = FALSE;
-#endif
-#ifdef ENABLE_PATHBAR
- if(XA_IS_PATH_BAR(bar))
- notebook->props._up_dir = FALSE;
-#endif
- }
+ xa_notebook_set_navigation_bar(notebook, bar);
notebook->props._show_icons = TRUE;
notebook->multi_tab = use_tabs;
@@ -227,6 +215,20 @@
if(notebook->navigation_bar)
xa_navigation_bar_set_store(notebook->navigation_bar, NULL);
+ notebook->props._up_dir = TRUE;
+
+ if(bar)
+ {
+#ifdef ENABLE_TOOLBAR
+ if(XA_IS_TOOL_BAR(bar))
+ notebook->props._up_dir = FALSE;
+#endif
+#ifdef ENABLE_PATHBAR
+ if(XA_IS_PATH_BAR(bar))
+ notebook->props._up_dir = FALSE;
+#endif
+ }
+
if(gtk_notebook_get_n_pages(GTK_NOTEBOOK(notebook)))
{
gint page_nr =
gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook));
@@ -234,7 +236,10 @@
GtkWidget *treeview =
gtk_bin_get_child(GTK_BIN(scrolledwindow));
GtkTreeModel *archive_store =
gtk_tree_view_get_model(GTK_TREE_VIEW(treeview));
notebook->navigation_bar = bar;
- xa_navigation_bar_set_store(notebook->navigation_bar,
XA_ARCHIVE_STORE(archive_store));
+ if(bar)
+ xa_navigation_bar_set_store(notebook->navigation_bar,
XA_ARCHIVE_STORE(archive_store));
+ if(archive_store)
+ g_object_set(G_OBJECT(archive_store), "show_up_dir",
notebook->props._up_dir, NULL);
}
else
notebook->navigation_bar = bar;
Modified: xarchiver/branches/xarchiver-psybsd/src/widget_factory.c
===================================================================
--- xarchiver/branches/xarchiver-psybsd/src/widget_factory.c 2006-11-22
13:38:24 UTC (rev 23932)
+++ xarchiver/branches/xarchiver-psybsd/src/widget_factory.c 2006-11-22
14:49:08 UTC (rev 23933)
@@ -451,17 +451,21 @@
case G_TYPE_DOUBLE:
widget =
xa_widget_factory_create_numeric_widget(factory, obj, pspec, &value);
break;
- case G_TYPE_ENUM:
- widget =
xa_widget_factory_create_enum_widget_group(factory, obj, pspec, &value);
- if(0)
-
xa_widget_factory_create_enum_widget_list(factory, obj, pspec, &value);
- break;
- case G_TYPE_FLAGS:
- widget = xa_widget_factory_create_flags_widget(factory,
obj, pspec, &value);
- break;
case G_TYPE_STRING:
widget =
xa_widget_factory_create_string_widget(factory, obj, pspec, &value);
break;
+ default:
+ if(G_IS_PARAM_SPEC_ENUM(pspec))
+ {
+ widget =
xa_widget_factory_create_enum_widget_group(factory, obj, pspec, &value);
+ if(0)
+
xa_widget_factory_create_enum_widget_list(factory, obj, pspec, &value);
+ }
+ if(G_IS_PARAM_SPEC_FLAGS(pspec))
+ {
+ widget =
xa_widget_factory_create_flags_widget(factory, obj, pspec, &value);
+ }
+ break;
}
g_value_unset(&value);
@@ -483,6 +487,8 @@
menu = g_slist_append(menu, check);
+ gtk_widget_show(check);
+
return menu;
}
@@ -507,6 +513,8 @@
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(radio), TRUE);
menu = g_slist_append(menu, radio);
+
+ gtk_widget_show(radio);
}
return menu;
@@ -524,7 +532,10 @@
for(i = 0; i < n; ++i)
{
- radio =
gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(radio),
values[i].value_nick);
+ if(radio)
+ radio =
gtk_radio_menu_item_new_with_label_from_widget(GTK_RADIO_MENU_ITEM(radio),
values[i].value_nick);
+ else
+ radio = gtk_radio_menu_item_new_with_label(NULL,
values[i].value_nick);
g_object_set_data(G_OBJECT(radio), XA_PROPERTY_SPEC_DATA,
pspec);
g_object_set_data(G_OBJECT(radio), XA_PROPERTY_VALUE_DATA,
GINT_TO_POINTER(values[i].value));
@@ -541,6 +552,9 @@
menu = g_slist_append(menu, list);
+ gtk_widget_show_all(sub);
+ gtk_widget_show(list);
+
return menu;
}
@@ -564,6 +578,8 @@
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(check),
g_value_get_enum(value) & values[i].value);
menu = g_slist_append(menu, check);
+
+ gtk_widget_show(check);
}
return menu;
@@ -597,6 +613,9 @@
menu = g_slist_append(menu, list);
+ gtk_widget_show_all(sub);
+ gtk_widget_show(list);
+
return menu;
}
@@ -633,20 +652,23 @@
case G_TYPE_UINT64:
case G_TYPE_FLOAT:
case G_TYPE_DOUBLE:
- break;*/
- case G_TYPE_ENUM:
- menu = xa_widget_factory_create_enum_menu_list(factory,
obj, pspec, &value);
- if(0)
-
xa_widget_factory_create_enum_menu_group(factory, obj, pspec, &value);
break;
- case G_TYPE_FLAGS:
- menu =
xa_widget_factory_create_flags_menu_list(factory, obj, pspec, &value);
- if(0)
-
xa_widget_factory_create_flags_menu_group(factory, obj, pspec, &value);
- break;
- /*
case G_TYPE_STRING:
break;*/
+ default:
+ if(G_IS_PARAM_SPEC_ENUM(pspec))
+ {
+ menu =
xa_widget_factory_create_enum_menu_list(factory, obj, pspec, &value);
+ if(0)
+
xa_widget_factory_create_enum_menu_group(factory, obj, pspec, &value);
+ }
+ if(G_IS_PARAM_SPEC_FLAGS(pspec))
+ {
+ menu =
xa_widget_factory_create_flags_menu_list(factory, obj, pspec, &value);
+ if(0)
+
xa_widget_factory_create_flags_menu_group(factory, obj, pspec, &value);
+ }
+ break;
}
g_value_unset(&value);
@@ -699,47 +721,51 @@
g_object_set_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
}
break;
- case G_TYPE_ENUM:
- if(GTK_IS_RADIO_BUTTON(widget))
+ case G_TYPE_STRING:
+ if(GTK_IS_ENTRY(widget))
{
-
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ g_value_set_string(&value,
gtk_entry_get_text(GTK_ENTRY(widget)));
+ g_object_set_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
+ }
+ break;
+ default:
+ if(G_IS_PARAM_SPEC_ENUM(pspec))
+ {
+ if(GTK_IS_RADIO_BUTTON(widget))
{
- g_value_set_enum(&value,
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), XA_PROPERTY_VALUE_DATA)));
-
g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ {
+ g_value_set_enum(&value,
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), XA_PROPERTY_VALUE_DATA)));
+
g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+ }
}
+ if(GTK_IS_RADIO_MENU_ITEM(widget))
+ {
+
if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+ {
+ g_value_set_enum(&value,
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), XA_PROPERTY_VALUE_DATA)));
+
g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+ }
+ }
}
- if(GTK_IS_RADIO_MENU_ITEM(widget))
+ if(G_IS_PARAM_SPEC_FLAGS(pspec))
{
-
if(gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget)))
+ if(GTK_IS_CHECK_BUTTON(widget))
{
- g_value_set_enum(&value,
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget), XA_PROPERTY_VALUE_DATA)));
+
g_object_get_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+ // TODO: sync?
+ g_value_set_flags(&value,
g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
XA_PROPERTY_VALUE_DATA)));
g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
}
+ if(GTK_IS_CHECK_MENU_ITEM(widget))
+ {
+
g_object_get_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+ // TODO: sync?
+ g_value_set_flags(&value,
g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
XA_PROPERTY_VALUE_DATA)));
+
g_object_set_property(G_OBJECT(user_data), g_param_spec_get_name(pspec),
&value);
+ }
}
break;
- case G_TYPE_FLAGS:
- if(GTK_IS_CHECK_BUTTON(widget))
- {
- g_object_get_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
- // TODO: sync?
- g_value_set_flags(&value,
g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
XA_PROPERTY_VALUE_DATA)));
- g_object_set_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
- }
- if(GTK_IS_CHECK_MENU_ITEM(widget))
- {
- g_object_get_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
- // TODO: sync?
- g_value_set_flags(&value,
g_value_get_flags(&value) ^ GPOINTER_TO_INT(g_object_get_data(G_OBJECT(widget),
XA_PROPERTY_VALUE_DATA)));
- g_object_set_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
- }
- break;
- case G_TYPE_STRING:
- if(GTK_IS_ENTRY(widget))
- {
- g_value_set_string(&value,
gtk_entry_get_text(GTK_ENTRY(widget)));
- g_object_set_property(G_OBJECT(user_data),
g_param_spec_get_name(pspec), &value);
- }
- break;
}
g_value_unset(&value);
@@ -793,37 +819,41 @@
g_value_unset(&other_value);
}
break;
- case G_TYPE_ENUM:
- if(GTK_IS_RADIO_BUTTON(user_data))
+ case G_TYPE_STRING:
+ if(GTK_IS_ENTRY(user_data))
{
g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
-
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data),
XA_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
+ gtk_entry_set_text(GTK_ENTRY(user_data),
g_value_get_string(&value));
}
- if(GTK_IS_RADIO_MENU_ITEM(user_data))
- {
- g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
-
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data),
XA_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
- }
break;
- case G_TYPE_FLAGS:
- if(GTK_IS_CHECK_BUTTON(user_data))
+ default:
+ if(G_IS_PARAM_SPEC_ENUM(pspec))
{
- g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
-
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), XA_PROPERTY_VALUE_DATA))
& g_value_get_enum(&value));
+ if(GTK_IS_RADIO_BUTTON(user_data))
+ {
+ g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data),
XA_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
+ }
+ if(GTK_IS_RADIO_MENU_ITEM(user_data))
+ {
+ g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
+
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data),
XA_PROPERTY_VALUE_DATA))==g_value_get_enum(&value));
+ }
}
- if(GTK_IS_CHECK_MENU_ITEM(user_data))
+ if(G_IS_PARAM_SPEC_FLAGS(pspec))
{
- g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
-
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), XA_PROPERTY_VALUE_DATA))
& g_value_get_enum(&value));
+ if(GTK_IS_CHECK_BUTTON(user_data))
+ {
+ g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), XA_PROPERTY_VALUE_DATA))
& g_value_get_enum(&value));
+ }
+ if(GTK_IS_CHECK_MENU_ITEM(user_data))
+ {
+ g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
+
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(user_data),
GPOINTER_TO_INT(g_object_get_data(G_OBJECT(user_data), XA_PROPERTY_VALUE_DATA))
& g_value_get_enum(&value));
+ }
}
break;
- case G_TYPE_STRING:
- if(GTK_IS_ENTRY(user_data))
- {
- g_object_get_property(obj,
g_param_spec_get_name(pspec), &value);
- gtk_entry_set_text(GTK_ENTRY(user_data),
g_value_get_string(&value));
- }
- break;
}
g_value_unset(&value);
@@ -862,7 +892,7 @@
GtkWidget*
xa_widget_factory_create_action_menu_item(XAWidgetFactory *factory,
LXAArchiveSupport *support, LXAArchive *archive, const gchar *act)
{
- GtkWidget *menu = NULL;
+ GtkWidget *menu;
LXACustomAction *action = lxa_archive_support_find_action(support, act);
if(!action)
@@ -871,6 +901,7 @@
menu = gtk_menu_item_new_with_label(lxa_custom_action_get_nick(action));
g_object_set_data(G_OBJECT(menu), XA_ACTION_CUSTOM_DATA, action);
g_signal_connect(G_OBJECT(menu), "activate",
G_CALLBACK(cb_xa_widget_factory_action_triggered), archive);
+ gtk_widget_show(menu);
return menu;
}
@@ -878,7 +909,7 @@
GtkToolItem*
xa_widget_factory_create_action_bar(XAWidgetFactory *factory,
LXAArchiveSupport *support, LXAArchive *archive, const gchar *act)
{
- GtkToolItem *widget = NULL;
+ GtkToolItem *widget;
LXACustomAction *action = lxa_archive_support_find_action(support, act);
if(!action)
@@ -921,6 +952,7 @@
g_object_set_data(G_OBJECT(item),
XA_ACTION_CUSTOM_DATA, action[i]);
g_signal_connect(G_OBJECT(item), "activate",
G_CALLBACK(cb_xa_widget_factory_action_triggered), archive);
menu = g_slist_append(menu, item);
+ gtk_widget_show(item);
}
}
_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits