+
+void remove_menu_item(gpointer main_win, gpointer user_data)
+{
+ mainWindow * mw = (mainWindow *) main_win;
+ lttv_menu_closure *menuItem = (lttv_menu_closure *)user_data;
+ GtkWidget * ToolMenuTitle_menu, *insert_view;
+
+ ToolMenuTitle_menu = lookup_widget(mw->MWindow,"ToolMenuTitle_menu");
+ insert_view = (GtkWidget*)g_hash_table_lookup(mw->hash_menu_item,
+ menuItem->menuText);
+ if(insert_view){
+ g_hash_table_remove(mw->hash_menu_item, menuItem->menuText);
+ gtk_container_remove (GTK_CONTAINER (ToolMenuTitle_menu), insert_view);
+ }
+}
+
+void remove_toolbar_item(gpointer main_win, gpointer user_data)
+{
+ mainWindow * mw = (mainWindow *) main_win;
+ lttv_toolbar_closure *toolbarItem = (lttv_toolbar_closure *)user_data;
+ GtkWidget * ToolMenuTitle_menu, *insert_view;
+
+
+ ToolMenuTitle_menu = lookup_widget(mw->MWindow,"MToolbar2");
+ insert_view = (GtkWidget*)g_hash_table_lookup(mw->hash_toolbar_item,
+ toolbarItem->tooltip);
+ if(insert_view){
+ g_hash_table_remove(mw->hash_toolbar_item, toolbarItem->tooltip);
+ gtk_container_remove (GTK_CONTAINER (ToolMenuTitle_menu), insert_view);
+ }
+}
+
+/**
+ * Remove menu and toolbar item when a module unloaded
+ */
+void main_window_remove_menu_item(lttv_constructor constructor)
+{
+ int i;
+ LttvMenus * menu;
+ lttv_menu_closure *menuItem;
+ LttvAttributeValue value;
+ LttvIAttribute *attributes = LTTV_IATTRIBUTE(lttv_global_attributes());
+
+ g_assert(lttv_iattribute_find_by_path(attributes,
+ "viewers/menu", LTTV_POINTER, &value));
+ menu = (LttvMenus*)*(value.v_pointer);
+
+ if(menu){
+ for(i=0;i<menu->len;i++){
+ menuItem = &g_array_index(menu, lttv_menu_closure, i);
+ if(menuItem->con != constructor) continue;
+ g_slist_foreach(Main_Window_List, remove_menu_item, menuItem);
+ break;
+ }
+ }
+
+}
+
+void main_window_remove_toolbar_item(lttv_constructor constructor)
+{
+ int i;
+ LttvToolbars * toolbar;
+ lttv_toolbar_closure *toolbarItem;
+ LttvAttributeValue value;
+ LttvIAttribute *attributes = LTTV_IATTRIBUTE(lttv_global_attributes());
+
+ g_assert(lttv_iattribute_find_by_path(attributes,
+ "viewers/toolbar", LTTV_POINTER, &value));
+ toolbar = (LttvToolbars*)*(value.v_pointer);
+
+ if(toolbar){
+ for(i=0;i<toolbar->len;i++){
+ toolbarItem = &g_array_index(toolbar, lttv_toolbar_closure, i);
+ if(toolbarItem->con != constructor) continue;
+ g_slist_foreach(Main_Window_List, remove_toolbar_item, toolbarItem);
+ break;
+ }
+ }
+}