[niepce: 7/22] [cw] Move the new Gio::Action and such.
- From: Hubert Figuière <hub src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [niepce: 7/22] [cw] Move the new Gio::Action and such.
- Date: Tue, 29 Jul 2014 08:06:05 +0000 (UTC)
commit f4c1820ccedd7a6d61e66d52d4bd76cfe0a4b261
Author: Hubert Figuière <hub figuiere net>
Date: Fri Jul 18 01:30:12 2014 -0400
[cw] Move the new Gio::Action and such.
camerawire/src/cwwindow.cpp | 173 +++++++++++++++++--------------------------
camerawire/src/cwwindow.hpp | 8 +-
2 files changed, 71 insertions(+), 110 deletions(-)
---
diff --git a/camerawire/src/cwwindow.cpp b/camerawire/src/cwwindow.cpp
index ba709e2..07cb624 100644
--- a/camerawire/src/cwwindow.cpp
+++ b/camerawire/src/cwwindow.cpp
@@ -25,6 +25,7 @@
#include "fwk/toolkit/application.hpp"
#include "fwk/toolkit/undo.hpp"
+#include "fwk/toolkit/gtkutils.hpp"
#include "cwwindow.hpp"
@@ -36,7 +37,6 @@ namespace cw {
CwWindow::CwWindow()
: fwk::AppFrame("cw-window-frame")
- , m_vbox(Gtk::ORIENTATION_VERTICAL)
, m_hbox(Gtk::ORIENTATION_HORIZONTAL)
{
}
@@ -51,25 +51,18 @@ Gtk::Widget * CwWindow::buildWidget()
Gtk::Window & win(gtkWindow());
m_widget = &win;
- Application::Ptr pApp = Application::app();
+ auto pApp = Application::app();
init_actions();
- init_ui(manager);
- win.add(m_vbox);
-
- Gtk::Widget* pMenuBar = pApp->uiManager()->get_widget("/MenuBar");
- m_vbox.pack_start(*pMenuBar, Gtk::PACK_SHRINK);
- m_vbox.pack_start(m_hbox, true, true, 4);
+ win.add(m_hbox);
m_camera_tree_model = Gtk::ListStore::create(m_camera_tree_record);
- Gtk::TreeView *treeview = manage(new Gtk::TreeView(m_camera_tree_model));
- Gtk::TreeViewColumn *column;
-
- column = manage(new Gtk::TreeViewColumn(_("Camera")));
- Gtk::CellRendererToggle *cell = manage(new Gtk::CellRendererToggle);
+ auto treeview = manage(new Gtk::TreeView(m_camera_tree_model));
+ auto column = manage(new Gtk::TreeViewColumn(_("Camera")));
+ auto cell = manage(new Gtk::CellRendererToggle);
column->pack_start(*cell, false);
- column->add_attribute(cell->property_active(),
+ column->add_attribute(cell->property_active(),
m_camera_tree_record.m_persistent);
column->pack_start(m_camera_tree_record.m_icon, false);
column->pack_start(m_camera_tree_record.m_label);
@@ -86,99 +79,69 @@ Gtk::Widget * CwWindow::buildWidget()
void CwWindow::init_actions()
{
- Glib::RefPtr<Gtk::Action> an_action;
-
- m_refActionGroup = Gtk::ActionGroup::create();
-
- m_refActionGroup->add(Gtk::Action::create("MenuFile", _("_File")));
- m_refActionGroup->add(Gtk::Action::create("Import", _("_Import...")),
- sigc::mem_fun(*this,
- &CwWindow::on_action_import));
- m_refActionGroup->add(Gtk::Action::create("Close", Gtk::Stock::CLOSE),
- sigc::mem_fun(gtkWindow(),
- &Gtk::Window::hide));
- m_refActionGroup->add(Gtk::Action::create("Quit", Gtk::Stock::QUIT),
- sigc::mem_fun(*Application::app(),
- &Application::quit));
-
- m_refActionGroup->add(Gtk::Action::create("MenuEdit", _("_Edit")));
-
- create_undo_action(m_refActionGroup);
- create_redo_action(m_refActionGroup);
+ m_actionGroup = Gio::SimpleActionGroup::create();
+ gtkWindow().insert_action_group("win", m_actionGroup);
+
+ m_menu = Gio::Menu::create();
+ auto submenu = Gio::Menu::create();
+ m_menu->append_submenu(_("File"), submenu);
+
+ fwk::add_action(m_actionGroup, "Import",
+ sigc::mem_fun(*this,
+ &CwWindow::on_action_import),
+ submenu, _("_Import..."), "win", nullptr);
+ fwk::add_action(m_actionGroup, "Close",
+ sigc::mem_fun(gtkWindow(),
+ &Gtk::Window::hide),
+ submenu, _("Close"), "win", "<Primary>w");
+
+ submenu = Gio::Menu::create();
+ m_menu->append_submenu(_("Edit"), submenu);
+ auto section = Gio::Menu::create();
+ submenu->append_section(section);
+
+ create_undo_action(m_actionGroup, section);
+ create_redo_action(m_actionGroup, section);
// FIXME: bind
- m_refActionGroup->add(Gtk::Action::create("Cut", Gtk::Stock::CUT));
- m_refActionGroup->add(Gtk::Action::create("Copy", Gtk::Stock::COPY));
- m_refActionGroup->add(Gtk::Action::create("Paste", Gtk::Stock::PASTE));
- m_refActionGroup->add(Gtk::Action::create("Delete", Gtk::Stock::DELETE));
-
- m_refActionGroup->add(Gtk::Action::create("Preferences",
- Gtk::Stock::PREFERENCES),
- sigc::mem_fun(*this,
- &CwWindow::on_preferences));
-
- m_refActionGroup->add(Gtk::Action::create("MenuTools", _("_Tools")));
- m_refActionGroup->add(Gtk::Action::create("ReloadCameras",
- Gtk::Stock::REFRESH),
- Gtk::AccelKey("F5"),
- sigc::mem_fun(*this, &CwWindow::reload_camera_list));
- m_hide_tools_action = Gtk::ToggleAction::create("ToggleToolsVisible",
- _("_Hide tools"));
- m_refActionGroup->add(m_hide_tools_action,
- sigc::mem_fun(*this, &Frame::toggle_tools_visible));
-
- m_refActionGroup->add(Gtk::Action::create("MenuHelp", _("_Help")));
- m_refActionGroup->add(Gtk::Action::create("Help", Gtk::Stock::HELP));
- m_refActionGroup->add(Gtk::Action::create("About", Gtk::Stock::ABOUT),
- sigc::mem_fun(*Application::app(),
- &Application::about));
-
- Application::app()->uiManager()->insert_action_group(m_refActionGroup);
-
- gtkWindow().add_accel_group(Application::app()
- ->uiManager()->get_accel_group());
-}
-
-
-void CwWindow::init_ui(const Glib::RefPtr<Gtk::UIManager> & manager)
-{
- Glib::ustring ui_info =
- "<ui>"
- " <menubar name='MenuBar'>"
- " <menu action='MenuFile'>"
- " <menuitem action='Import'/>"
- " <separator/>"
- " <menuitem action='Close'/>"
- " <menuitem action='Quit'/>"
- " </menu>"
- " <menu action='MenuEdit'>"
- " <menuitem action='Undo'/>"
- " <menuitem action='Redo'/>"
- " <separator/>"
- " <menuitem action='Cut'/>"
- " <menuitem action='Copy'/>"
- " <menuitem action='Paste'/>"
- " <menuitem action='Delete'/>"
- " <separator/>"
- " <menuitem action='Preferences'/>"
- " </menu>"
- " <menu action='MenuTools'>"
- " <menuitem action='ReloadCameras' />"
- " <separator/>"
- " <menuitem action='ToggleToolsVisible'/>"
- " <separator/>"
- " </menu>"
- " <menu action='MenuHelp'>"
- " <menuitem action='Help'/>"
- " <menuitem action='About'/>"
- " </menu>"
- " </menubar>"
- " <toolbar name='ToolBar'>"
- " <toolitem action='Import'/>"
- " <toolitem action='Quit'/>"
- " </toolbar>"
- "</ui>";
- manager->add_ui_from_string(ui_info);
+ section = Gio::Menu::create();
+ submenu->append_section(section);
+
+ fwk::add_action(m_actionGroup,
+ "Cut",
+ Gio::ActionMap::ActivateSlot(), section,
+ _("Cut"), "win", "<control>x");
+ fwk::add_action(m_actionGroup,
+ "Copy",
+ Gio::ActionMap::ActivateSlot(), section,
+ _("Copy"), "win", "<control>c");
+ fwk::add_action(m_actionGroup,
+ "Paste",
+ Gio::ActionMap::ActivateSlot(), section,
+ _("Paste"), "win" "<control>v");
+
+ section = Gio::Menu::create();
+ submenu->append_section(section);
+ fwk::add_action(m_actionGroup,
+ "Preferences",
+ sigc::mem_fun(*this,
+ &CwWindow::on_preferences),
+ section, _("Preferences"), "win", nullptr);
+
+ submenu = Gio::Menu::create();
+ m_menu->append_submenu(_("Tools"), submenu);
+
+ fwk::add_action(m_actionGroup,
+ "ReloadCameras",
+ sigc::mem_fun(*this, &CwWindow::reload_camera_list),
+ submenu, _("Refresh"), "win", "F5");
+
+
+ m_hide_tools_action
+ = fwk::add_action(m_actionGroup, "ToggleToolsVisible",
+ sigc::mem_fun(*this, &Frame::toggle_tools_visible),
+ submenu, _("Hide tools"), "win",
+ nullptr);
}
diff --git a/camerawire/src/cwwindow.hpp b/camerawire/src/cwwindow.hpp
index ffa166c..d9189fa 100644
--- a/camerawire/src/cwwindow.hpp
+++ b/camerawire/src/cwwindow.hpp
@@ -21,8 +21,7 @@
#ifndef __CW_WINDOW_HPP_
#define __CW_WINDOW_HPP_
-#include <gtkmm/action.h>
-#include <gtkmm/actiongroup.h>
+#include <giomm/simpleactiongroup.h>
#include <gtkmm/box.h>
#include <gtkmm/liststore.h>
#include <gtkmm/treemodel.h>
@@ -61,7 +60,7 @@ private:
Gtk::TreeModelColumn<bool> m_persistent;
};
- void init_ui(const Glib::RefPtr<Gtk::UIManager> & manager);
+ void init_ui();
void init_actions();
void on_action_import();
void on_preferences();
@@ -70,9 +69,8 @@ private:
CameraTreeRecord m_camera_tree_record;
Glib::RefPtr<Gtk::ListStore> m_camera_tree_model;
- Gtk::Box m_vbox;
Gtk::Box m_hbox;
- Glib::RefPtr<Gtk::ActionGroup> m_refActionGroup;
+ Glib::RefPtr<Gio::SimpleActionGroup> m_actionGroup;
};
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]