Add preliminary implementation of a menu option Window/Close Window
This commit is contained in:
parent
1672206489
commit
2909804538
6 changed files with 52 additions and 1 deletions
|
|
@ -56,6 +56,8 @@ WindowManager::new_window(gui::model::Project &source_project,
|
||||||
windowList.push_back(window);
|
windowList.push_back(window);
|
||||||
|
|
||||||
window->show();
|
window->show();
|
||||||
|
|
||||||
|
update_close_window_in_menus();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
|
|
@ -107,11 +109,31 @@ WindowManager::on_window_closed(GdkEventAny* event)
|
||||||
REQUIRE(main);
|
REQUIRE(main);
|
||||||
main->quit();
|
main->quit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_close_window_in_menus();
|
||||||
|
|
||||||
// Unless this is false, the window won't close
|
// Unless this is false, the window won't close
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WindowManager::update_close_window_in_menus()
|
||||||
|
{
|
||||||
|
bool enable = windowList.size() > 1;
|
||||||
|
|
||||||
|
list< shared_ptr<WorkspaceWindow> >::iterator iterator =
|
||||||
|
windowList.begin();
|
||||||
|
|
||||||
|
while (iterator != windowList.end())
|
||||||
|
{
|
||||||
|
shared_ptr<WorkspaceWindow> workspace_window(*iterator);
|
||||||
|
REQUIRE(workspace_window);
|
||||||
|
|
||||||
|
workspace_window->set_close_window_sensitive(enable);
|
||||||
|
iterator++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
GdkColor
|
GdkColor
|
||||||
WindowManager::read_style_colour_property(
|
WindowManager::read_style_colour_property(
|
||||||
Gtk::Widget &widget, const gchar *property_name,
|
Gtk::Widget &widget, const gchar *property_name,
|
||||||
|
|
|
||||||
|
|
@ -94,6 +94,15 @@ private:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On creating and closing of any window, handle enabling or disabling of the
|
||||||
|
* Window/Close Window menu option.
|
||||||
|
*
|
||||||
|
* It should be enabled when there is more than one window and disabled
|
||||||
|
* otherwise.
|
||||||
|
**/
|
||||||
|
void update_close_window_in_menus();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers the custom icon sizes.
|
* Registers the custom icon sizes.
|
||||||
**/
|
**/
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,9 @@ Actions::populate_main_actions(RefPtr<Gtk::UIManager> uiManager)
|
||||||
actionGroup->add(Action::create("WindowNewWindow",
|
actionGroup->add(Action::create("WindowNewWindow",
|
||||||
StockID("new_window")),
|
StockID("new_window")),
|
||||||
mem_fun(*this, &Actions::on_menu_window_new_window));
|
mem_fun(*this, &Actions::on_menu_window_new_window));
|
||||||
|
actionGroup->add(Action::create("WindowCloseWindow",
|
||||||
|
_("Close Window")),
|
||||||
|
mem_fun(*this, &Actions::on_menu_window_close_window));
|
||||||
actionGroup->add(Action::create("WindowShowPanel", _("_Show Panel")));
|
actionGroup->add(Action::create("WindowShowPanel", _("_Show Panel")));
|
||||||
|
|
||||||
// Help Menu
|
// Help Menu
|
||||||
|
|
@ -169,6 +172,7 @@ Actions::populate_main_actions(RefPtr<Gtk::UIManager> uiManager)
|
||||||
" </menu>"
|
" </menu>"
|
||||||
" <menu action='WindowMenu'>"
|
" <menu action='WindowMenu'>"
|
||||||
" <menuitem action='WindowNewWindow'/>"
|
" <menuitem action='WindowNewWindow'/>"
|
||||||
|
" <menuitem action='WindowCloseWindow'/>"
|
||||||
" <menu action='WindowShowPanel'/>"
|
" <menu action='WindowShowPanel'/>"
|
||||||
" </menu>"
|
" </menu>"
|
||||||
" <menu action='HelpMenu'>"
|
" <menu action='HelpMenu'>"
|
||||||
|
|
@ -335,6 +339,13 @@ Actions::on_menu_window_new_window()
|
||||||
workspaceWindow.get_controller());
|
workspaceWindow.get_controller());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Actions::on_menu_window_close_window()
|
||||||
|
{
|
||||||
|
workspaceWindow.hide();
|
||||||
|
// delete &workspaceWindow;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Actions::on_menu_show_panel(int panel_index)
|
Actions::on_menu_show_panel(int panel_index)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,7 @@ private:
|
||||||
void on_menu_track_add();
|
void on_menu_track_add();
|
||||||
|
|
||||||
void on_menu_window_new_window();
|
void on_menu_window_new_window();
|
||||||
|
void on_menu_window_close_window();
|
||||||
void on_menu_show_panel(int panel_index);
|
void on_menu_show_panel(int panel_index);
|
||||||
|
|
||||||
void on_menu_help_about();
|
void on_menu_help_about();
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,13 @@ WorkspaceWindow::create_ui()
|
||||||
|
|
||||||
show_all_children();
|
show_all_children();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WorkspaceWindow::set_close_window_sensitive(bool enable)
|
||||||
|
{
|
||||||
|
uiManager->get_action("/MenuBar/WindowMenu/WindowCloseWindow")
|
||||||
|
->set_sensitive(enable);
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace workspace
|
} // namespace workspace
|
||||||
} // namespace gui
|
} // namespace gui
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,8 @@ public:
|
||||||
|
|
||||||
PanelManager& get_panel_manager();
|
PanelManager& get_panel_manager();
|
||||||
|
|
||||||
|
void set_close_window_sensitive(bool enable);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void create_ui();
|
void create_ui();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue