[niepce: 1/22] Use AppFrame for Gtk::ApplicationWindow



commit a916521d0859d08f3cfb5eade5509eb8fd80f9f5
Author: Hubert Figuière <hub figuiere net>
Date:   Sun Jul 13 06:19:52 2014 -0400

    Use AppFrame for Gtk::ApplicationWindow

 camerawire/src/cwwindow.cpp    |    2 +-
 camerawire/src/cwwindow.hpp    |    4 ++--
 magellan/src/mgwindow.cpp      |    2 +-
 magellan/src/mgwindow.hpp      |    4 ++--
 src/fwk/toolkit/appframe.hpp   |   29 +++++++++++++++++++++++++++++
 src/fwk/toolkit/frame.cpp      |   33 ++++++++++++++++++++-------------
 src/fwk/toolkit/frame.hpp      |   15 +++++++++------
 src/niepce/ui/niepcewindow.cpp |    2 +-
 src/niepce/ui/niepcewindow.hpp |    6 +++---
 9 files changed, 68 insertions(+), 29 deletions(-)
---
diff --git a/camerawire/src/cwwindow.cpp b/camerawire/src/cwwindow.cpp
index 2f66651..67b8cd5 100644
--- a/camerawire/src/cwwindow.cpp
+++ b/camerawire/src/cwwindow.cpp
@@ -35,7 +35,7 @@ namespace cw {
 
 
 CwWindow::CwWindow()
-  : fwk::Frame("cw-window-frame")
+  : fwk::AppFrame("cw-window-frame")
   , m_vbox(Gtk::ORIENTATION_VERTICAL)
   , m_hbox(Gtk::ORIENTATION_HORIZONTAL)
 {
diff --git a/camerawire/src/cwwindow.hpp b/camerawire/src/cwwindow.hpp
index e0dcd36..404a758 100644
--- a/camerawire/src/cwwindow.hpp
+++ b/camerawire/src/cwwindow.hpp
@@ -29,12 +29,12 @@
 #include <gtkmm/treeview.h>
 
 #include "fwk/utils/gphoto.hpp"
-#include "fwk/toolkit/frame.hpp"
+#include "fwk/toolkit/appframe.hpp"
 
 namespace cw {
 
 class CwWindow
-  : public fwk::Frame
+  : public fwk::AppFrame
 {
 public:
   CwWindow();
diff --git a/magellan/src/mgwindow.cpp b/magellan/src/mgwindow.cpp
index d958a30..426d47b 100644
--- a/magellan/src/mgwindow.cpp
+++ b/magellan/src/mgwindow.cpp
@@ -36,7 +36,7 @@ namespace mg {
 
 
 MgWindow::MgWindow()
-    : fwk::Frame("mg-window-frame")
+    : fwk::AppFrame("mg-window-frame")
 {
 }
 
diff --git a/magellan/src/mgwindow.hpp b/magellan/src/mgwindow.hpp
index c376236..f804948 100644
--- a/magellan/src/mgwindow.hpp
+++ b/magellan/src/mgwindow.hpp
@@ -28,12 +28,12 @@
 #include <gtkmm/treemodel.h>
 #include <gtkmm/treeview.h>
 
-#include "fwk/toolkit/frame.hpp"
+#include "fwk/toolkit/appframe.hpp"
 
 namespace mg {
 
 class MgWindow
-  : public fwk::Frame
+  : public fwk::AppFrame
 {
 public:
   MgWindow();
diff --git a/src/fwk/toolkit/appframe.hpp b/src/fwk/toolkit/appframe.hpp
new file mode 100644
index 0000000..84fc7b3
--- /dev/null
+++ b/src/fwk/toolkit/appframe.hpp
@@ -0,0 +1,29 @@
+
+
+#pragma once
+
+#include <gtkmm/applicationwindow.h>
+
+#include "fwk/toolkit/frame.hpp"
+
+namespace fwk {
+
+class AppFrame
+  : public Frame
+{
+public:
+  typedef std::shared_ptr<AppFrame> Ptr;
+
+  AppFrame(const std::string & layout_cfg_key = "")
+    : Frame(new Gtk::ApplicationWindow(), layout_cfg_key)
+    {
+    }
+
+  Glib::RefPtr<Gio::Menu> get_menu() const
+    { return m_menu; }
+
+protected:
+  Glib::RefPtr<Gio::Menu> m_menu;
+};
+
+}
diff --git a/src/fwk/toolkit/frame.cpp b/src/fwk/toolkit/frame.cpp
index a96272f..544b42b 100644
--- a/src/fwk/toolkit/frame.cpp
+++ b/src/fwk/toolkit/frame.cpp
@@ -29,32 +29,39 @@
 #include "frame.hpp"
 #include "application.hpp"
 
-
-
 namespace fwk {
 
+Frame::Frame(Gtk::Window* win, const std::string & layout_cfg_key)
+    : m_window(win),
+      m_builder(nullptr),
+      m_layout_cfg_key(layout_cfg_key)
+{
+    connectSignals();
+    frameRectFromConfig();
+}
+
 Frame::Frame(const std::string & layout_cfg_key)
-               : m_window(new Gtk::Window()),
-                 m_builder(nullptr),
-                 m_layout_cfg_key(layout_cfg_key)
+    : m_window(new Gtk::Window()),
+      m_builder(nullptr),
+      m_layout_cfg_key(layout_cfg_key)
 {
-               connectSignals();
-               frameRectFromConfig();
+    connectSignals();
+    frameRectFromConfig();
 }
 
 
-Frame::Frame(const std::string & gladeFile, 
+Frame::Frame(const std::string & gladeFile,
              const Glib::ustring & widgetName,
              const std::string & layout_cfg_key)
-               : m_window(nullptr),
-                 m_builder(Gtk::Builder::create_from_file(gladeFile)),
-                 m_layout_cfg_key(layout_cfg_key)
+    : m_window(nullptr),
+      m_builder(Gtk::Builder::create_from_file(gladeFile)),
+      m_layout_cfg_key(layout_cfg_key)
 {
-               if (m_builder) {
+    if (m_builder) {
         m_builder->get_widget(widgetName, m_window);
         connectSignals();
         frameRectFromConfig();
-               }
+    }
 }
 
 
diff --git a/src/fwk/toolkit/frame.hpp b/src/fwk/toolkit/frame.hpp
index 6f4713f..6c48e65 100644
--- a/src/fwk/toolkit/frame.hpp
+++ b/src/fwk/toolkit/frame.hpp
@@ -37,16 +37,19 @@ namespace Gtk {
 
 namespace fwk {
 
-class Frame 
-               : public UiController
+class Frame
+    : public UiController
 {
+protected:
+    Frame(Gtk::Window* win, const std::string & layout_cfg_key = "");
+
 public:
-               typedef std::shared_ptr<Frame> Ptr;
+    typedef std::shared_ptr<Frame> Ptr;
 
-               Frame(const std::string & gladeFile, const Glib::ustring & widgetName,
+    Frame(const std::string & gladeFile, const Glib::ustring & widgetName,
           const std::string & layout_cfg_key = "");
-               Frame(const std::string & layout_cfg_key = "");
-               virtual ~Frame();
+    Frame(const std::string & layout_cfg_key = "");
+    virtual ~Frame();
 
     /** convenience to return the Frame::Ptr from this */
     Ptr shared_frame_ptr()
diff --git a/src/niepce/ui/niepcewindow.cpp b/src/niepce/ui/niepcewindow.cpp
index a403644..e1122a6 100644
--- a/src/niepce/ui/niepcewindow.cpp
+++ b/src/niepce/ui/niepcewindow.cpp
@@ -56,7 +56,7 @@ namespace ui {
 
 
 NiepceWindow::NiepceWindow()
-    : fwk::Frame("mainWindow-frame")
+    : fwk::AppFrame("mainWindow-frame")
     , m_vbox(Gtk::ORIENTATION_VERTICAL)
 {
 }
diff --git a/src/niepce/ui/niepcewindow.hpp b/src/niepce/ui/niepcewindow.hpp
index 0f2629b..cb929fa 100644
--- a/src/niepce/ui/niepcewindow.hpp
+++ b/src/niepce/ui/niepcewindow.hpp
@@ -28,7 +28,7 @@
 #include <gtkmm/statusbar.h>
 #include <gtkmm/paned.h>
 
-#include "fwk/toolkit/frame.hpp"
+#include "fwk/toolkit/appframe.hpp"
 #include "fwk/toolkit/configdatabinder.hpp"
 #include "engine/db/label.hpp"
 #include "libraryclient/libraryclient.hpp"
@@ -41,7 +41,7 @@
 namespace ui {
 
 class NiepceWindow
-    : public fwk::Frame
+    : public fwk::AppFrame
 {
 public:
     NiepceWindow();
@@ -83,7 +83,7 @@ private:
     bool open_library(const std::string & libMoniker);
 
     void _createModuleShell();
-               
+
     niepce::NotificationCenter::Ptr m_notifcenter;
 
     Gtk::Box                       m_vbox;


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