OSDN Git Service

Change idx sub dir's time stamp when saving idx.
[fukui-no-namari/dialektos.git] / src / application_framework.cxx
index dc9cd7f..efded30 100644 (file)
@@ -28,7 +28,9 @@
 #include <gtkmm/menu.h>
 #include <gtkmm/uimanager.h>
 #include <gtkmm/actiongroup.h>
+#include <boost/foreach.hpp>
 #include <iostream>
+#include "bookmark_window.hxx"
 
 
 namespace dialektos {
@@ -46,6 +48,7 @@ ApplicationFrameWork::ApplicationFrameWork() :
 
   ApplicationWindow::add(vbox_);
   build_menubar();
+  statusbar_.set_no_show_all(true);
 }
 
 ApplicationFrameWork::~ApplicationFrameWork() {}
@@ -66,6 +69,8 @@ void ApplicationFrameWork::build_menubar() {
   action_group_->add(Gtk::Action::create("MenuView", "_View"));
   action_group_->add(Gtk::Action::create("ViewRefresh", Gtk::Stock::REFRESH),
       sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_refresh));
+  action_group_->add(Gtk::Action::create("ViewStop", Gtk::Stock::STOP),
+      sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_stop));
   action_group_->add(Gtk::Action::create("ViewMenubar", "Toggle _Menubar"),
       sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_menubar));
   action_group_->add(Gtk::Action::create("ViewToolbar", "Toggle _Toolbar"),
@@ -73,6 +78,11 @@ void ApplicationFrameWork::build_menubar() {
   action_group_->add(Gtk::Action::create("ViewStatusbar", "Toggle _Statusbar"),
       sigc::mem_fun(*this, &ApplicationFrameWork::on_action_view_statusbar));
 
+  // Bookmark menu
+  action_group_->add(Gtk::Action::create("MenuBookmark", "_Bookmark"));
+  action_group_->add(Gtk::Action::create("BookmarkShow", "_Show Bookmarks"),
+      sigc::mem_fun(*this, &ApplicationFrameWork::on_action_bookmark_show));
+
   ui_manager_->insert_action_group(action_group_);
   add_accel_group(ui_manager_->get_accel_group());
 
@@ -84,17 +94,23 @@ void ApplicationFrameWork::build_menubar() {
     "    </menu>"
     "    <menu action='MenuView'>"
     "      <menuitem action='ViewRefresh'/>"
+    "      <menuitem action='ViewStop'/>"
     "      <separator/>"
     "      <menuitem action='ViewMenubar'/>"
     "      <menuitem action='ViewToolbar'/>"
     "      <menuitem action='ViewStatusbar'/>"
     "    </menu>"
+    "    <menu action='MenuBookmark'>"
+    "      <menuitem action='BookmarkShow'/>"
+    "    </menu>"
     "  </menubar>"
     "  <toolbar name='ToolBar'>"
     "    <toolitem action='ViewRefresh'/>"
+    "    <toolitem action='ViewStop'/>"
     "  </toolbar>"
     "  <popup name='MenuPopup'>"
     "    <menuitem action='ViewRefresh'/>"
+    "    <menuitem action='ViewStop'/>"
     "    <separator/>"
     "    <menuitem action='ViewMenubar'/>"
     "  </popup>"
@@ -103,13 +119,20 @@ void ApplicationFrameWork::build_menubar() {
   ui_manager_->add_ui_from_string(ui_info);
 
   menubar_ = ui_manager_->get_widget("/MenuBar");
+  menubar_->set_no_show_all(true);
+  menubar_->hide();
   toolbar_ = ui_manager_->get_widget("/ToolBar");
+  toolbar_->set_no_show_all(true);
+  toolbar_->hide();
   popupmenu_ =
     dynamic_cast<Gtk::Menu*>(ui_manager_->get_widget("/MenuPopup"));
 
 }
 
 void ApplicationFrameWork::on_action_file_quit() {
+  save();
+  BOOST_FOREACH(const ApplicationWindow& window, windows)
+    window.save_state();
   windows.clear();
   Gtk::Main::quit();
 }
@@ -118,6 +141,10 @@ void ApplicationFrameWork::on_action_view_refresh() {
   std::cout << "view refresh activated" << std::endl;
 }
 
+void ApplicationFrameWork::on_action_view_stop() {
+  std::cout << "view refresh stop" << std::endl;
+}
+
 void ApplicationFrameWork::on_action_view_menubar() {
   if (menubar_->is_visible()) menubar_->hide(); else menubar_->show();
 }
@@ -130,6 +157,10 @@ void ApplicationFrameWork::on_action_view_statusbar() {
   if (statusbar_.is_visible()) statusbar_.hide(); else statusbar_.show();
 }
 
+void ApplicationFrameWork::on_action_bookmark_show() {
+  BookmarkWindow::create();
+}
+
 void ApplicationFrameWork::on_child_button_press(GdkEventButton* event) {
   if (event->type == GDK_BUTTON_PRESS && event->button == 3) {
     popupmenu_->popup(event->button, event->time);