[nautilus-actions] Move MenubarIndicatorsStruct structure to private NactMenubar instance data



commit f663dc4ed37d8c175b31c59e9133ea452f242b63
Author: Pierre Wieser <pwieser trychlos org>
Date:   Tue Feb 1 01:49:26 2011 +0100

    Move MenubarIndicatorsStruct structure to private NactMenubar instance data

 ChangeLog                               |   22 +++++
 src/nact/Makefile.am                    |    1 +
 src/nact/nact-main-menubar-edit.c       |   95 +++++++++++-----------
 src/nact/nact-main-menubar-edit.h       |    2 +-
 src/nact/nact-main-menubar-file.c       |   37 ++++-----
 src/nact/nact-main-menubar-file.h       |    2 +-
 src/nact/nact-main-menubar-help.c       |    5 +-
 src/nact/nact-main-menubar-help.h       |    2 +-
 src/nact/nact-main-menubar-maintainer.c |    2 +-
 src/nact/nact-main-menubar-maintainer.h |    2 +-
 src/nact/nact-main-menubar-tools.c      |    7 +-
 src/nact/nact-main-menubar-tools.h      |    2 +-
 src/nact/nact-main-menubar-view.c       |   11 ++-
 src/nact/nact-main-menubar-view.h       |    2 +-
 src/nact/nact-menubar-priv.h            |   93 +++++++++++++++++++++
 src/nact/nact-menubar.c                 |  134 ++++++++++--------------------
 src/nact/nact-menubar.h                 |   47 +----------
 17 files changed, 248 insertions(+), 218 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 1949ac4..83fefa6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,27 @@
 2011-01-31 Pierre Wieser <pwieser trychlos org>
 
+	Move MenubarIndicatorsStruct structure to private instance data
+
+	* src/nact/nact-menubar-priv.h: New file.
+
+	* src/nact/Makefile.am:
+	* src/nact/nact-main-menubar-edit.c:
+	* src/nact/nact-main-menubar-edit.h:
+	* src/nact/nact-main-menubar-file.c:
+	* src/nact/nact-main-menubar-file.h:
+	* src/nact/nact-main-menubar-help.c:
+	* src/nact/nact-main-menubar-help.h:
+	* src/nact/nact-main-menubar-maintainer.c:
+	* src/nact/nact-main-menubar-maintainer.h:
+	* src/nact/nact-main-menubar-tools.c:
+	* src/nact/nact-main-menubar-tools.h:
+	* src/nact/nact-main-menubar-view.c:
+	* src/nact/nact-main-menubar-view.h:
+	* src/nact/nact-menubar.c:
+	* src/nact/nact-menubar.h: Updated accordingly.
+
+	Define a new NactMenubar convenience class
+
 	* src/nact/nact-main-menubar.c:
 	* src/nact/nact-main-menubar.h: Renamed as nact-menubar.{c,h}.
 
diff --git a/src/nact/Makefile.am b/src/nact/Makefile.am
index 10ba391..17ea2a7 100644
--- a/src/nact/Makefile.am
+++ b/src/nact/Makefile.am
@@ -141,6 +141,7 @@ nautilus_actions_config_tool_SOURCES = \
 	nact-match-list.h									\
 	nact-menubar.c										\
 	nact-menubar.h										\
+	nact-menubar-priv.h									\
 	nact-preferences-editor.c							\
 	nact-preferences-editor.h							\
 	nact-providers-list.c								\
diff --git a/src/nact/nact-main-menubar-edit.c b/src/nact/nact-main-menubar-edit.c
index fcd33d3..8bcc5ac 100644
--- a/src/nact/nact-main-menubar-edit.c
+++ b/src/nact/nact-main-menubar-edit.c
@@ -43,6 +43,7 @@
 #include "nact-iactions-list.h"
 #include "nact-main-tab.h"
 #include "nact-main-menubar-edit.h"
+#include "nact-menubar-priv.h"
 #include "nact-preferences-editor.h"
 
 static GList  *prepare_for_paste( NactMainWindow *window );
@@ -60,7 +61,7 @@ static void    update_clipboard_counters( NactMainWindow *window );
  * Update sensitivity of items of the Edit menu.
  */
 void
-nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_edit_on_update_sensitivities( NactMenubar *bar )
 {
 	gboolean cut_enabled;
 	gboolean copy_enabled;
@@ -75,33 +76,33 @@ nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer
 	gboolean are_parents_writable;
 	gboolean is_clipboard_empty;
 
-	is_clipboard_empty = ( mis->clipboard_menus + mis->clipboard_actions + mis->clipboard_profiles == 0 );
+	is_clipboard_empty = ( bar->private->clipboard_menus + bar->private->clipboard_actions + bar->private->clipboard_profiles == 0 );
 
 	/* cut requires a non-empty selection
 	 * and that all parents are writable (as implies a delete operation)
 	 */
-	cut_enabled = mis->treeview_has_focus || mis->popup_handler;
-	cut_enabled &= mis->count_selected > 0;
+	cut_enabled = bar->private->treeview_has_focus || bar->private->popup_handler;
+	cut_enabled &= bar->private->count_selected > 0;
 	are_parents_writable = TRUE;
-	for( is = mis->selected_items ; is ; is = is->next ){
+	for( is = bar->private->selected_items ; is ; is = is->next ){
 		parent_item = ( NAObject * ) na_object_get_parent( is->data );
 		if( parent_item ){
-			if( !na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( parent_item ), NULL )){
+			if( !na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( parent_item ), NULL )){
 				are_parents_writable = FALSE;
 				break;
 			}
-		} else if( !mis->is_level_zero_writable ){
+		} else if( !bar->private->is_level_zero_writable ){
 			are_parents_writable = FALSE;
 			break;
 		}
 	}
 	cut_enabled &= are_parents_writable;
-	nact_main_menubar_enable_item( window, "CutItem", cut_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "CutItem", cut_enabled );
 
 	/* copy only requires a non-empty selection */
-	copy_enabled = mis->treeview_has_focus || mis->popup_handler;
-	copy_enabled &= mis->count_selected > 0;
-	nact_main_menubar_enable_item( window, "CopyItem", copy_enabled );
+	copy_enabled = bar->private->treeview_has_focus || bar->private->popup_handler;
+	copy_enabled &= bar->private->count_selected > 0;
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "CopyItem", copy_enabled );
 
 	/* paste enabled if
 	 * - clipboard is not empty
@@ -113,35 +114,35 @@ nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer
 	 *   then current selection (if any) must be a menu or an action
 	 *   and its parent must be writable
 	 */
-	paste_enabled = mis->treeview_has_focus || mis->popup_handler;
+	paste_enabled = bar->private->treeview_has_focus || bar->private->popup_handler;
 	paste_enabled &= !is_clipboard_empty;
-	paste_enabled &= mis->count_selected <= 1;
-	if( mis->clipboard_profiles ){
-		paste_enabled &= mis->count_selected == 1;
+	paste_enabled &= bar->private->count_selected <= 1;
+	if( bar->private->clipboard_profiles ){
+		paste_enabled &= bar->private->count_selected == 1;
 		if( paste_enabled ){
 			selected_action = NA_OBJECT(
-					NA_IS_OBJECT_PROFILE( mis->selected_items->data )
-							? na_object_get_parent( mis->selected_items->data )
-							: mis->selected_items->data );
+					NA_IS_OBJECT_PROFILE( bar->private->selected_items->data )
+							? na_object_get_parent( bar->private->selected_items->data )
+							: bar->private->selected_items->data );
 			paste_enabled &= NA_IS_OBJECT_ACTION( selected_action );
-			paste_enabled &= na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( selected_action ), NULL );
+			paste_enabled &= na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( selected_action ), NULL );
 		}
 	} else {
-		paste_enabled &= mis->has_writable_providers;
-		if( mis->count_selected ){
-			selected_item = NA_OBJECT( mis->selected_items->data );
+		paste_enabled &= bar->private->has_writable_providers;
+		if( bar->private->count_selected ){
+			selected_item = NA_OBJECT( bar->private->selected_items->data );
 			paste_enabled &= NA_IS_OBJECT_ITEM( selected_item );
 			if( paste_enabled ){
 				parent_item = ( NAObject * ) na_object_get_parent( selected_item );
 				paste_enabled &= parent_item
-						? na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( parent_item ), NULL )
-						: mis->is_level_zero_writable;
+						? na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( parent_item ), NULL )
+						: bar->private->is_level_zero_writable;
 			}
 		} else {
-			paste_enabled &= mis->is_level_zero_writable;
+			paste_enabled &= bar->private->is_level_zero_writable;
 		}
 	}
-	nact_main_menubar_enable_item( window, "PasteItem", paste_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "PasteItem", paste_enabled );
 
 	/* paste into enabled if
 	 * - clipboard is not empty
@@ -153,32 +154,32 @@ nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer
 	 *   then current selection (if any) must be a menu
 	 *   and its parent must be writable
 	 */
-	paste_into_enabled = mis->treeview_has_focus || mis->popup_handler;
+	paste_into_enabled = bar->private->treeview_has_focus || bar->private->popup_handler;
 	paste_into_enabled &= !is_clipboard_empty;
-	paste_into_enabled &= mis->count_selected <= 1;
-	if( mis->clipboard_profiles ){
-		paste_into_enabled &= mis->count_selected == 1;
+	paste_into_enabled &= bar->private->count_selected <= 1;
+	if( bar->private->clipboard_profiles ){
+		paste_into_enabled &= bar->private->count_selected == 1;
 		if( paste_into_enabled ){
-			selected_action = NA_OBJECT( mis->selected_items->data );
+			selected_action = NA_OBJECT( bar->private->selected_items->data );
 			paste_into_enabled &= NA_IS_OBJECT_ACTION( selected_action );
-			paste_into_enabled &= na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( selected_action ), NULL );
+			paste_into_enabled &= na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( selected_action ), NULL );
 		}
 	} else {
-		paste_into_enabled &= mis->has_writable_providers;
-		if( mis->count_selected ){
-			selected_item = NA_OBJECT( mis->selected_items->data );
+		paste_into_enabled &= bar->private->has_writable_providers;
+		if( bar->private->count_selected ){
+			selected_item = NA_OBJECT( bar->private->selected_items->data );
 			paste_into_enabled &= NA_IS_OBJECT_MENU( selected_item );
 			if( paste_into_enabled ){
 				parent_item = ( NAObject * ) na_object_get_parent( selected_item );
 				paste_into_enabled &= parent_item
-						? na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( parent_item ), NULL )
-						: mis->is_level_zero_writable;
+						? na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( parent_item ), NULL )
+						: bar->private->is_level_zero_writable;
 			}
 		} else {
-			paste_into_enabled &= mis->is_level_zero_writable;
+			paste_into_enabled &= bar->private->is_level_zero_writable;
 		}
 	}
-	nact_main_menubar_enable_item( window, "PasteIntoItem", paste_into_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "PasteIntoItem", paste_into_enabled );
 
 	/* duplicate items will be duplicated besides each one
 	 * selection must be non-empty
@@ -186,14 +187,14 @@ nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer
 	 * -> so this is the same than cut
 	 */
 	duplicate_enabled = cut_enabled;
-	nact_main_menubar_enable_item( window, "DuplicateItem", duplicate_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "DuplicateItem", duplicate_enabled );
 
 	/* delete is same that cut
 	 * but items themselves must be writable (because physically deleted)
 	 * this will be checked on delete activated
 	 */
 	delete_enabled = cut_enabled;
-	nact_main_menubar_enable_item( window, "DeleteItem", delete_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "DeleteItem", delete_enabled );
 
 	/* reload items always enabled */
 
@@ -586,16 +587,14 @@ add_non_deletable_msg( const NAObjectItem *item, gint reason )
 static void
 update_clipboard_counters( NactMainWindow *window )
 {
-	MenubarIndicatorsStruct *mis;
+	BAR_WINDOW_VOID( window );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-
-	mis->clipboard_menus = mis->selected_menus;
-	mis->clipboard_actions = mis->selected_actions;
-	mis->clipboard_profiles = mis->selected_profiles;
+	bar->private->clipboard_menus = bar->private->selected_menus;
+	bar->private->clipboard_actions = bar->private->selected_actions;
+	bar->private->clipboard_profiles = bar->private->selected_profiles;
 
 	g_debug( "nact_main_menubar_update_clipboard_counters: menus=%d, actions=%d, profiles=%d",
-			mis->clipboard_menus, mis->clipboard_actions, mis->clipboard_profiles );
+			bar->private->clipboard_menus, bar->private->clipboard_actions, bar->private->clipboard_profiles );
 
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 }
diff --git a/src/nact/nact-main-menubar-edit.h b/src/nact/nact-main-menubar-edit.h
index 8932bc2..3738b95 100644
--- a/src/nact/nact-main-menubar-edit.h
+++ b/src/nact/nact-main-menubar-edit.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void     nact_main_menubar_edit_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void     nact_main_menubar_edit_on_update_sensitivities( NactMenubar *bar );
 
 void     nact_main_menubar_edit_on_cut          ( GtkAction *action, NactMainWindow *window );
 void     nact_main_menubar_edit_on_copy         ( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-main-menubar-file.c b/src/nact/nact-main-menubar-file.c
index 3ae2fdb..e9e5bf2 100644
--- a/src/nact/nact-main-menubar-file.c
+++ b/src/nact/nact-main-menubar-file.c
@@ -46,6 +46,7 @@
 #include "nact-main-statusbar.h"
 #include "nact-main-tab.h"
 #include "nact-main-menubar-file.h"
+#include "nact-menubar-priv.h"
 
 static NATimeout st_autosave_prefs_timeout = { 0 };
 static guint     st_event_autosave         = 0;
@@ -70,7 +71,7 @@ static void     autosave_destroyed( NactMainWindow *window );
  * Update sensitivity of items of the File menu.
  */
 void
-nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_file_on_update_sensitivities( NactMenubar *bar )
 {
 	static const gchar *thisfn = "nact_main_menubar_file_on_update_sensitivities";
 	gboolean new_item_enabled;
@@ -84,17 +85,17 @@ nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer
 	NactApplication *application;
 	NAUpdater *updater;
 
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( window )));
+	application = NACT_APPLICATION( base_window_get_application( bar->private->window ));
 	updater = nact_application_get_updater( application );
 
-	first_parent = mis->selected_items && g_list_length( mis->selected_items )
-			? ( NAObject * ) na_object_get_parent( mis->selected_items->data )
+	first_parent = bar->private->selected_items && g_list_length( bar->private->selected_items )
+			? ( NAObject * ) na_object_get_parent( bar->private->selected_items->data )
 			: NULL;
 	is_first_parent_writable = first_parent
-			? na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( first_parent ), NULL )
-			: mis->is_level_zero_writable;
+			? na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( first_parent ), NULL )
+			: bar->private->is_level_zero_writable;
 
-	has_modified_items = nact_main_window_has_modified_items( window );
+	has_modified_items = nact_main_window_has_modified_items( NACT_MAIN_WINDOW( bar->private->window ));
 	g_debug( "%s: has_modified_items=%s", thisfn, has_modified_items ? "True":"False" );
 
 	/* new menu / new action
@@ -102,9 +103,9 @@ nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer
 	 * parent of the first selected row must be writable
 	 * we must have at least one writable provider
 	 */
-	new_item_enabled = is_first_parent_writable && mis->has_writable_providers;
-	nact_main_menubar_enable_item( window, "NewMenuItem", new_item_enabled );
-	nact_main_menubar_enable_item( window, "NewActionItem", new_item_enabled );
+	new_item_enabled = is_first_parent_writable && bar->private->has_writable_providers;
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "NewMenuItem", new_item_enabled );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "NewActionItem", new_item_enabled );
 
 	/* new profile enabled if selection is relative to only one writable action
 	 * i.e. contains profile(s) of the same action, or only contains one action
@@ -112,7 +113,7 @@ nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer
 	 */
 	new_profile_enabled = TRUE;
 	selected_action = NULL;
-	for( is = mis->selected_items ; is ; is = is->next ){
+	for( is = bar->private->selected_items ; is ; is = is->next ){
 
 		if( NA_IS_OBJECT_MENU( is->data )){
 			new_profile_enabled = FALSE;
@@ -136,16 +137,16 @@ nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer
 			}
 		}
 	}
-	nact_main_menubar_enable_item( window, "NewProfileItem",
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "NewProfileItem",
 			new_profile_enabled &&
 			selected_action != NULL &&
-			na_updater_is_item_writable( mis->updater, NA_OBJECT_ITEM( selected_action ), NULL ));
+			na_updater_is_item_writable( bar->private->updater, NA_OBJECT_ITEM( selected_action ), NULL ));
 
 	/* save enabled if at least one item has been modified
 	 * or level-zero has been resorted and is writable
 	 */
-	nact_main_menubar_enable_item( window, "SaveItem",
-			has_modified_items || ( mis->level_zero_order_changed && mis->is_level_zero_writable ));
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "SaveItem",
+			has_modified_items || ( bar->private->level_zero_order_changed && bar->private->is_level_zero_writable ));
 
 	/* quit always enabled */
 }
@@ -297,14 +298,13 @@ nact_main_menubar_file_save_items( NactMainWindow *window )
 	GList *items, *it;
 	NactApplication *application;
 	NAUpdater *updater;
-	MenubarIndicatorsStruct *mis;
 	gchar *label;
 	GList *new_pivot;
 	NAObjectItem *duplicate;
 	GSList *messages;
 	gchar *msg;
 
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "%s: window=%p", thisfn, ( void * ) window );
 
@@ -332,8 +332,7 @@ nact_main_menubar_file_save_items( NactMainWindow *window )
 		return;
 	}
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->level_zero_order_changed = FALSE;
+	bar->private->level_zero_order_changed = FALSE;
 
 	/* remove deleted items
 	 * so that new actions with same id do not risk to be deleted later
diff --git a/src/nact/nact-main-menubar-file.h b/src/nact/nact-main-menubar-file.h
index d29ba05..1e1ec76 100644
--- a/src/nact/nact-main-menubar-file.h
+++ b/src/nact/nact-main-menubar-file.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void nact_main_menubar_file_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void nact_main_menubar_file_on_update_sensitivities( NactMenubar *bar );
 
 void nact_main_menubar_file_on_new_menu   ( GtkAction *action, NactMainWindow *window );
 void nact_main_menubar_file_on_new_action ( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-main-menubar-help.c b/src/nact/nact-main-menubar-help.c
index 5e07d16..2c2a469 100644
--- a/src/nact/nact-main-menubar-help.c
+++ b/src/nact/nact-main-menubar-help.c
@@ -35,6 +35,7 @@
 #include <core/na-iabout.h>
 
 #include "nact-main-menubar-help.h"
+#include "nact-menubar-priv.h"
 
 /**
  * nact_main_menubar_help_on_update_sensitivities:
@@ -45,9 +46,9 @@
  * Update sensitivities on the Help menu.
  */
 void
-nact_main_menubar_help_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_help_on_update_sensitivities( NactMenubar *bar )
 {
-	nact_main_menubar_enable_item( window, "HelpItem", TRUE );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "HelpItem", TRUE );
 	/* about always enabled */
 }
 
diff --git a/src/nact/nact-main-menubar-help.h b/src/nact/nact-main-menubar-help.h
index fe96249..18a2c6a 100644
--- a/src/nact/nact-main-menubar-help.h
+++ b/src/nact/nact-main-menubar-help.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void nact_main_menubar_help_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void nact_main_menubar_help_on_update_sensitivities( NactMenubar *bar );
 
 void nact_main_menubar_help_on_help ( GtkAction *action, NactMainWindow *window );
 void nact_main_menubar_help_on_about( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-main-menubar-maintainer.c b/src/nact/nact-main-menubar-maintainer.c
index fed18a4..1b0eeaa 100644
--- a/src/nact/nact-main-menubar-maintainer.c
+++ b/src/nact/nact-main-menubar-maintainer.c
@@ -47,7 +47,7 @@
  * Update sensitivities on the Maintainer menu.
  */
 void
-nact_main_menubar_maintainer_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_maintainer_on_update_sensitivities( NactMenubar *bar )
 {
 }
 
diff --git a/src/nact/nact-main-menubar-maintainer.h b/src/nact/nact-main-menubar-maintainer.h
index fac3591..c40ca60 100644
--- a/src/nact/nact-main-menubar-maintainer.h
+++ b/src/nact/nact-main-menubar-maintainer.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void nact_main_menubar_maintainer_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void nact_main_menubar_maintainer_on_update_sensitivities( NactMenubar *bar );
 
 void nact_main_menubar_maintainer_on_dump_selection       ( GtkAction *action, NactMainWindow *window );
 void nact_main_menubar_maintainer_on_brief_tree_store_dump( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-main-menubar-tools.c b/src/nact/nact-main-menubar-tools.c
index 2e81e2e..8831524 100644
--- a/src/nact/nact-main-menubar-tools.c
+++ b/src/nact/nact-main-menubar-tools.c
@@ -35,6 +35,7 @@
 #include "nact-assistant-export.h"
 #include "nact-assistant-import.h"
 #include "nact-main-menubar-tools.h"
+#include "nact-menubar-priv.h"
 
 /**
  * nact_main_menubar_tools_on_update_sensitivities:
@@ -45,13 +46,13 @@
  * Update sensitivities on the Tools menu.
  */
 void
-nact_main_menubar_tools_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_tools_on_update_sensitivities( NactMenubar *bar )
 {
 	/* import item enabled if at least one writable provider */
-	nact_main_menubar_enable_item( window, "ImportItem", mis->has_writable_providers );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "ImportItem", bar->private->has_writable_providers );
 
 	/* export item enabled if IActionsList store contains actions */
-	nact_main_menubar_enable_item( window, "ExportItem", mis->have_exportables );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "ExportItem", bar->private->have_exportables );
 }
 
 /**
diff --git a/src/nact/nact-main-menubar-tools.h b/src/nact/nact-main-menubar-tools.h
index 9f85a8f..b08fb25 100644
--- a/src/nact/nact-main-menubar-tools.h
+++ b/src/nact/nact-main-menubar-tools.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void nact_main_menubar_tools_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void nact_main_menubar_tools_on_update_sensitivities( NactMenubar *bar );
 
 void nact_main_menubar_tools_on_import( GtkAction *action, NactMainWindow *window );
 void nact_main_menubar_tools_on_export( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-main-menubar-view.c b/src/nact/nact-main-menubar-view.c
index 7391403..80c55bd 100644
--- a/src/nact/nact-main-menubar-view.c
+++ b/src/nact/nact-main-menubar-view.c
@@ -35,6 +35,7 @@
 #include "nact-iactions-list.h"
 #include "nact-main-toolbar.h"
 #include "nact-main-menubar-view.h"
+#include "nact-menubar-priv.h"
 
 static void on_view_toolbar_activated( GtkToggleAction *action, NactMainWindow *window, int toolbar_id );
 
@@ -47,14 +48,14 @@ static void on_view_toolbar_activated( GtkToggleAction *action, NactMainWindow *
  * Update sensitivity of items of the View menu.
  */
 void
-nact_main_menubar_view_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis )
+nact_main_menubar_view_on_update_sensitivities( NactMenubar *bar )
 {
 	guint count_list;
 
 	/* expand all/collapse all requires at least one item in the list */
-	count_list = mis->list_menus + mis->list_actions + mis->list_profiles;
-	nact_main_menubar_enable_item( window, "ExpandAllItem", count_list > 0 );
-	nact_main_menubar_enable_item( window, "CollapseAllItem", count_list > 0 );
+	count_list = bar->private->list_menus + bar->private->list_actions + bar->private->list_profiles;
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "ExpandAllItem", count_list > 0 );
+	nact_main_menubar_enable_item( NACT_MAIN_WINDOW( bar->private->window ), "CollapseAllItem", count_list > 0 );
 }
 
 /**
@@ -148,5 +149,5 @@ on_view_toolbar_activated( GtkToggleAction *action, NactMainWindow *window, int
 
 	is_active = gtk_toggle_action_get_active( action );
 
-	nact_main_toolbar_activate( window, toolbar_id, nact_menubar_get_ui_manager( bar ), is_active );
+	nact_main_toolbar_activate( window, toolbar_id, bar->private->ui_manager, is_active );
 }
diff --git a/src/nact/nact-main-menubar-view.h b/src/nact/nact-main-menubar-view.h
index 11b6795..d0a94e3 100644
--- a/src/nact/nact-main-menubar-view.h
+++ b/src/nact/nact-main-menubar-view.h
@@ -41,7 +41,7 @@
 
 G_BEGIN_DECLS
 
-void nact_main_menubar_view_on_update_sensitivities( NactMainWindow *window, gpointer user_data, MenubarIndicatorsStruct *mis );
+void nact_main_menubar_view_on_update_sensitivities( NactMenubar *bar );
 
 void nact_main_menubar_view_on_expand_all   ( GtkAction *action, NactMainWindow *window );
 void nact_main_menubar_view_on_collapse_all ( GtkAction *action, NactMainWindow *window );
diff --git a/src/nact/nact-menubar-priv.h b/src/nact/nact-menubar-priv.h
new file mode 100644
index 0000000..fbca480
--- /dev/null
+++ b/src/nact/nact-menubar-priv.h
@@ -0,0 +1,93 @@
+/*
+ * Nautilus-Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010, 2011 Pierre Wieser and others (see AUTHORS)
+ *
+ * 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 Library; see the file COPYING.  If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ *   Frederic Ruaudel <grumz grumz net>
+ *   Rodrigo Moya <rodrigo gnome-db org>
+ *   Pierre Wieser <pwieser trychlos org>
+ *   ... and many others (see AUTHORS)
+ */
+
+#ifndef __NACT_MENUBAR__PRIV_H__
+#define __NACT_MENUBAR__PRIV_H__
+
+/*
+ * SECTION: nact-menubar-priv
+ * @title: NactMenubarPrivate
+ * @short_description: The Menubar private data definition
+ * @include: nact-menubar-priv.h
+ *
+ * This file should only be included by nact-menubar -derived files.
+ */
+
+#include <core/na-updater.h>
+
+G_BEGIN_DECLS
+
+struct _NactMenubarPrivate {
+	gboolean        dispose_has_run;
+	BaseWindow     *window;
+	GtkUIManager   *ui_manager;
+	GtkActionGroup *action_group;
+
+	gint            selected_menus;
+	gint            selected_actions;
+	gint            selected_profiles;
+	gint            clipboard_menus;
+	gint            clipboard_actions;
+	gint            clipboard_profiles;
+	gint            list_menus;
+	gint            list_actions;
+	gint            list_profiles;
+	gboolean        is_modified;
+	gboolean        have_exportables;
+	gboolean        treeview_has_focus;
+	gboolean        level_zero_order_changed;
+	gulong          popup_handler;
+
+	/* set by the nact_main_menubar_on_update_sensitivities() function itself
+	 */
+	gboolean        is_level_zero_writable;
+	gboolean        has_writable_providers;
+	guint           count_selected;
+	GList          *selected_items;
+	NAUpdater      *updater;
+};
+
+/* Convenience macros to get a NactMenubar from a BaseWindow
+ */
+#define WINDOW_DATA_MENUBAR						"window-data-menubar"
+
+#define BAR_WINDOW_VOID( window ) \
+		g_return_if_fail( BASE_IS_WINDOW( window )); \
+		NactMenubar *bar = ( NactMenubar * ) g_object_get_data( G_OBJECT( window ), WINDOW_DATA_MENUBAR ); \
+		g_return_if_fail( NACT_IS_MENUBAR( bar ));
+
+#define BAR_WINDOW_VALUE( window, value ) \
+		g_return_val_if_fail( BASE_IS_WINDOW( window ), value ); \
+		NactMenubar *bar = ( NactMenubar * ) g_object_get_data( G_OBJECT( window ), WINDOW_DATA_MENUBAR ); \
+		g_return_val_if_fail( NACT_IS_MENUBAR( bar ), value );
+
+G_END_DECLS
+
+#endif /* __NACT_MENUBAR__PRIV_H__ */
diff --git a/src/nact/nact-menubar.c b/src/nact/nact-menubar.c
index df83553..f8ffacd 100644
--- a/src/nact/nact-menubar.c
+++ b/src/nact/nact-menubar.c
@@ -35,6 +35,7 @@
 #include <glib/gi18n.h>
 
 #include "nact-menubar.h"
+#include "nact-menubar-priv.h"
 
 /* *** */
 #include <api/na-object-api.h>
@@ -84,13 +85,6 @@ struct _NactMenubarClassPrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-struct _NactMenubarPrivate {
-	gboolean        dispose_has_run;
-	BaseWindow     *window;
-	GtkUIManager   *ui_manager;
-	GtkActionGroup *action_group;
-};
-
 static const GtkActionEntry entries[] = {
 
 		{ "FileMenu", NULL, N_( "_File" ) },
@@ -354,7 +348,6 @@ instance_finalize( GObject *instance )
 {
 	static const gchar *thisfn = "nact_menubar_instance_finalize";
 	NactMenubar *self;
-	MenubarIndicatorsStruct *mis;
 
 	g_return_if_fail( NACT_IS_MENUBAR( instance ));
 
@@ -362,9 +355,6 @@ instance_finalize( GObject *instance )
 
 	self = NACT_MENUBAR( instance );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( self->private->window ), MENUBAR_PROP_INDICATORS );
-	g_free( mis );
-
 	g_free( self->private );
 
 	/* chain call to parent class */
@@ -416,7 +406,6 @@ on_base_initialize_window( BaseWindow *window, gpointer user_data )
 	GtkAccelGroup *accel_group;
 	GtkWidget *menubar, *vbox;
 	GtkWindow *toplevel;
-	MenubarIndicatorsStruct *mis;
 	gboolean has_maintainer_menu;
 
 	BAR_WINDOW_VOID( window );
@@ -502,9 +491,6 @@ on_base_initialize_window( BaseWindow *window, gpointer user_data )
 		base_window_signal_connect( window,
 				G_OBJECT( window ), MAIN_WINDOW_SIGNAL_LEVEL_ZERO_ORDER_CHANGED, G_CALLBACK( on_level_zero_order_changed ));
 
-		mis = g_new0( MenubarIndicatorsStruct, 1 );
-		g_object_set_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS, mis );
-
 		nact_main_toolbar_init(( NactMainWindow * ) window, bar->private->action_group );
 	}
 }
@@ -599,20 +585,6 @@ on_finalize_window( NactMenubar *bar, GObject *window )
 }
 
 /**
- * nact_menubar_get_ui_manager:
- * @bar: this #NactMenubar instance.
- *
- * Returns: the attached GtkUIManager.
- */
-GtkUIManager *
-nact_menubar_get_ui_manager( const NactMenubar *bar )
-{
-	g_return_val_if_fail( NACT_IS_MENUBAR( bar ), NULL );
-
-	return( bar->private->dispose_has_run ? NULL : bar->private->ui_manager );
-}
-
-/**
  * nact_main_menubar_is_level_zero_order_changed:
  * @window: the #NactMainWindow main window.
  *
@@ -621,11 +593,8 @@ nact_menubar_get_ui_manager( const NactMenubar *bar )
 gboolean
 nact_main_menubar_is_level_zero_order_changed( const NactMainWindow *window )
 {
-	MenubarIndicatorsStruct *mis;
-
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-
-	return( mis->level_zero_order_changed );
+	BAR_WINDOW_VALUE( window, FALSE );
+	return( bar->private->level_zero_order_changed );
 }
 
 /**
@@ -639,14 +608,12 @@ void
 nact_main_menubar_open_popup( NactMainWindow *instance, GdkEventButton *event )
 {
 	GtkWidget *menu;
-	MenubarIndicatorsStruct *mis;
 
 	BAR_WINDOW_VOID( instance );
 
 	menu = gtk_ui_manager_get_widget( bar->private->ui_manager, "/ui/Popup" );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( instance ), MENUBAR_PROP_INDICATORS );
-	mis->popup_handler = g_signal_connect( menu, "selection-done", G_CALLBACK( on_popup_selection_done ), instance );
+	bar->private->popup_handler = g_signal_connect( menu, "selection-done", G_CALLBACK( on_popup_selection_done ), instance );
 
 	g_signal_emit_by_name( instance, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 
@@ -660,19 +627,18 @@ nact_main_menubar_open_popup( NactMainWindow *instance, GdkEventButton *event )
 static void
 on_iactions_list_count_updated( NactMainWindow *window, gint menus, gint actions, gint profiles )
 {
-	MenubarIndicatorsStruct *mis;
 	gchar *status;
 
+	BAR_WINDOW_VOID( window );
+
 	g_debug( "nact_main_menubar_on_iactions_list_count_updated: menus=%u, actions=%u, profiles=%u", menus, actions, profiles );
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->list_menus = menus;
-	mis->list_actions = actions;
-	mis->list_profiles = profiles;
-	mis->have_exportables = ( mis->list_menus + mis->list_actions > 0 );
+	bar->private->list_menus = menus;
+	bar->private->list_actions = actions;
+	bar->private->list_profiles = profiles;
+	bar->private->have_exportables = ( bar->private->list_menus + bar->private->list_actions > 0 );
 
-	nact_sort_buttons_enable_buttons( window, mis->list_menus + mis->list_actions > 0 );
+	nact_sort_buttons_enable_buttons( window, bar->private->list_menus + bar->private->list_actions > 0 );
 
 	/* i18n: note the space at the beginning of the sentence */
 	status = g_strdup_printf( _( " %d menu(s), %d action(s), %d profile(s) are currently loaded" ), menus, actions, profiles );
@@ -688,19 +654,17 @@ on_iactions_list_count_updated( NactMainWindow *window, gint menus, gint actions
 static void
 on_iactions_list_selection_changed( NactMainWindow *window, GList *selected )
 {
-	MenubarIndicatorsStruct *mis;
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "nact_main_menubar_on_iactions_list_selection_changed: selected=%p (count=%d)",
 			( void * ) selected, g_list_length( selected ));
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->selected_menus = 0;
-	mis->selected_actions = 0;
-	mis->selected_profiles = 0;
-	na_object_item_count_items( selected, &mis->selected_menus, &mis->selected_actions, &mis->selected_profiles, FALSE );
+	bar->private->selected_menus = 0;
+	bar->private->selected_actions = 0;
+	bar->private->selected_profiles = 0;
+	na_object_item_count_items( selected, &bar->private->selected_menus, &bar->private->selected_actions, &bar->private->selected_profiles, FALSE );
 	g_debug( "nact_main_menubar_on_iactions_list_selection_changed: menus=%d, actions=%d, profiles=%d",
-			mis->selected_menus, mis->selected_actions, mis->selected_profiles );
+			bar->private->selected_menus, bar->private->selected_actions, bar->private->selected_profiles );
 
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 }
@@ -708,26 +672,22 @@ on_iactions_list_selection_changed( NactMainWindow *window, GList *selected )
 static void
 on_iactions_list_focus_in( NactMainWindow *window, gpointer user_data )
 {
-	MenubarIndicatorsStruct *mis;
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "nact_main_menubar_on_iactions_list_focus_in" );
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->treeview_has_focus = TRUE;
+	bar->private->treeview_has_focus = TRUE;
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 }
 
 static void
 on_iactions_list_focus_out( NactMainWindow *window, gpointer user_data )
 {
-	MenubarIndicatorsStruct *mis;
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "nact_main_menubar_on_iactions_list_focus_out" );
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->treeview_has_focus = FALSE;
+	bar->private->treeview_has_focus = FALSE;
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 }
 
@@ -735,6 +695,7 @@ static void
 on_iactions_list_status_changed( NactMainWindow *window, gpointer user_data )
 {
 	g_debug( "nact_main_menubar_on_iactions_list_status_changed" );
+
 	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
 
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
@@ -743,14 +704,11 @@ on_iactions_list_status_changed( NactMainWindow *window, gpointer user_data )
 static void
 on_level_zero_order_changed( NactMainWindow *window, gpointer user_data )
 {
-	MenubarIndicatorsStruct *mis;
-
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "nact_main_menubar_on_level_zero_order_changed: change=%s", user_data ? "True":"False" );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	mis->level_zero_order_changed = GPOINTER_TO_INT( user_data );
+	bar->private->level_zero_order_changed = GPOINTER_TO_INT( user_data );
 	g_signal_emit_by_name( window, MAIN_WINDOW_SIGNAL_UPDATE_ACTION_SENSITIVITIES, NULL );
 }
 
@@ -759,33 +717,31 @@ on_update_sensitivities( NactMainWindow *window, gpointer user_data )
 {
 	static const gchar *thisfn = "nact_main_menubar_on_update_sensitivities";
 	NactApplication *application;
-	MenubarIndicatorsStruct *mis;
 
-	g_debug( "%s: window=%p, user_data=%p", thisfn, ( void * ) window, ( void * ) user_data );
-	g_return_if_fail( NACT_IS_MAIN_WINDOW( window ));
+	BAR_WINDOW_VOID( window );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
+	g_debug( "%s: window=%p, user_data=%p", thisfn, ( void * ) window, ( void * ) user_data );
 
 	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( window )));
-	mis->updater = nact_application_get_updater( application );
-	mis->is_level_zero_writable = na_iprefs_is_level_zero_writable( NA_PIVOT( mis->updater ));
+	bar->private->updater = nact_application_get_updater( application );
+	bar->private->is_level_zero_writable = na_iprefs_is_level_zero_writable( NA_PIVOT( bar->private->updater ));
 
-	mis->has_writable_providers = nact_window_has_writable_providers( NACT_WINDOW( window ));
-	g_debug( "%s: has_writable_providers=%s", thisfn, mis->has_writable_providers ? "True":"False" );
+	bar->private->has_writable_providers = nact_window_has_writable_providers( NACT_WINDOW( window ));
+	g_debug( "%s: has_writable_providers=%s", thisfn, bar->private->has_writable_providers ? "True":"False" );
 
-	mis->selected_items = nact_iactions_list_bis_get_selected_items( NACT_IACTIONS_LIST( window ));
-	mis->count_selected = mis->selected_items ? g_list_length( mis->selected_items ) : 0;
-	g_debug( "%s: count_selected=%d", thisfn, mis->count_selected );
+	bar->private->selected_items = nact_iactions_list_bis_get_selected_items( NACT_IACTIONS_LIST( window ));
+	bar->private->count_selected = bar->private->selected_items ? g_list_length( bar->private->selected_items ) : 0;
+	g_debug( "%s: count_selected=%d", thisfn, bar->private->count_selected );
 
-	nact_main_menubar_file_on_update_sensitivities( window, user_data, mis );
-	nact_main_menubar_edit_on_update_sensitivities( window, user_data, mis );
-	nact_main_menubar_view_on_update_sensitivities( window, user_data, mis );
-	nact_main_menubar_tools_on_update_sensitivities( window, user_data, mis );
-	nact_main_menubar_maintainer_on_update_sensitivities( window, user_data, mis );
-	nact_main_menubar_help_on_update_sensitivities( window, user_data, mis );
+	nact_main_menubar_file_on_update_sensitivities( bar );
+	nact_main_menubar_edit_on_update_sensitivities( bar );
+	nact_main_menubar_view_on_update_sensitivities( bar );
+	nact_main_menubar_tools_on_update_sensitivities( bar );
+	nact_main_menubar_maintainer_on_update_sensitivities( bar );
+	nact_main_menubar_help_on_update_sensitivities( bar );
 
-	na_object_unref_selected_items( mis->selected_items );
-	mis->selected_items = NULL;
+	na_object_unref_selected_items( bar->private->selected_items );
+	bar->private->selected_items = NULL;
 }
 
 /**
@@ -811,11 +767,11 @@ static void
 on_popup_selection_done(GtkMenuShell *menushell, NactMainWindow *window )
 {
 	static const gchar *thisfn = "nact_main_menubar_on_popup_selection_done";
-	MenubarIndicatorsStruct *mis;
+
+	BAR_WINDOW_VOID( window );
 
 	g_debug( "%s", thisfn );
 
-	mis = ( MenubarIndicatorsStruct * ) g_object_get_data( G_OBJECT( window ), MENUBAR_PROP_INDICATORS );
-	g_signal_handler_disconnect( menushell, mis->popup_handler );
-	mis->popup_handler = ( gulong ) 0;
+	g_signal_handler_disconnect( menushell, bar->private->popup_handler );
+	bar->private->popup_handler = ( gulong ) 0;
 }
diff --git a/src/nact/nact-menubar.h b/src/nact/nact-menubar.h
index b64d399..bce55b7 100644
--- a/src/nact/nact-menubar.h
+++ b/src/nact/nact-menubar.h
@@ -55,8 +55,6 @@
 #include "base-window.h"
 
 /* *** */
-#include <api/na-object.h>
-#include <core/na-updater.h>
 #include "nact-main-window.h"
 /* *** */
 
@@ -87,52 +85,11 @@ typedef struct {
 }
 	NactMenubarClass;
 
-/* Convenience macros to get a NactMenubar from a BaseWindow
- */
-#define WINDOW_DATA_MENUBAR						"window-data-menubar"
-#define BAR_WINDOW_VOID( window ) \
-		g_return_if_fail( BASE_IS_WINDOW( window )); \
-		NactMenubar *bar = ( NactMenubar * ) g_object_get_data( G_OBJECT( window ), WINDOW_DATA_MENUBAR ); \
-		g_return_if_fail( NACT_IS_MENUBAR( bar ));
-
-GType         nact_menubar_get_type( void );
-
-NactMenubar  *nact_menubar_new     ( BaseWindow *window );
+GType        nact_menubar_get_type( void );
 
-GtkUIManager *nact_menubar_get_ui_manager( const NactMenubar *bar );
+NactMenubar *nact_menubar_new     ( BaseWindow *window );
 
 /* *** */
-/* this structure is updated each time the user interacts in the
- * interface ; it is then used to update action sensitivities
- */
-typedef struct {
-	gint       selected_menus;
-	gint       selected_actions;
-	gint       selected_profiles;
-	gint       clipboard_menus;
-	gint       clipboard_actions;
-	gint       clipboard_profiles;
-	gint       list_menus;
-	gint       list_actions;
-	gint       list_profiles;
-	gboolean   is_modified;
-	gboolean   have_exportables;
-	gboolean   treeview_has_focus;
-	gboolean   level_zero_order_changed;
-	gulong     popup_handler;
-
-	/* set by the nact_main_menubar_on_update_sensitivities() function itself
-	 */
-	gboolean   is_level_zero_writable;
-	gboolean   has_writable_providers;
-	guint      count_selected;
-	GList     *selected_items;
-	NAUpdater *updater;
-}
-	MenubarIndicatorsStruct;
-
-#define MENUBAR_PROP_INDICATORS				"nact-menubar-indicators"
-
 gboolean nact_main_menubar_is_level_zero_order_changed( const NactMainWindow *window );
 void     nact_main_menubar_open_popup( NactMainWindow *window, GdkEventButton *event );
 void     nact_main_menubar_enable_item( NactMainWindow *window, const gchar *name, gboolean enabled );



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]