From 8e5c48f38c86d31cf2338a45e0f031b887b9ea7e Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Wed, 21 Apr 2010 13:13:26 +0000
Subject: [PATCH] New sip exports for menubar and menu

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2077 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/gui/pymod/export_gl_win.cc      |  6 +++---
 modules/gui/pymod/export_input.cc       |  4 ++--
 modules/gui/pymod/export_main_area.cc   |  1 +
 modules/gui/pymod/export_menu_bar.cc    | 19 +++++++++++++------
 modules/gui/pymod/export_panel_bar.cc   |  9 +--------
 modules/gui/pymod/export_perspective.cc | 21 ++-------------------
 6 files changed, 22 insertions(+), 38 deletions(-)

diff --git a/modules/gui/pymod/export_gl_win.cc b/modules/gui/pymod/export_gl_win.cc
index a0ef599d4..d42165b00 100644
--- a/modules/gui/pymod/export_gl_win.cc
+++ b/modules/gui/pymod/export_gl_win.cc
@@ -28,12 +28,12 @@ using namespace ost::gui;
 
 void export_GLWin()
 {
-  class_<GLWin, boost::noncopyable >("GLWin", no_init)
+  class_<GLWin, boost::noncopyable>("GLWin", no_init)
     .def("Show", &GLWin::show)
     .def("Hide", &GLWin::hide)
     .def("StatusMessage",&GLWin::StatusMessage)
-    .def("GetQObject",&ost::gui::get_py_qobject<GLWin>)
-    .add_property("qobject", &ost::gui::get_py_qobject<GLWin>)
+    .def("GetQObject",&get_py_qobject<GLWin>)
+    .add_property("qobject", &get_py_qobject<GLWin>)
   ;
 }
 
diff --git a/modules/gui/pymod/export_input.cc b/modules/gui/pymod/export_input.cc
index f0df02754..25ede19bc 100644
--- a/modules/gui/pymod/export_input.cc
+++ b/modules/gui/pymod/export_input.cc
@@ -43,8 +43,8 @@ void export_Input()
 {
   class_<SpnavInput, bases<SipHandlerBase>, boost::noncopyable >("SpnavInput",no_init)
     .def("GetQThread", &spnav_get_instance).staticmethod("GetQThread")
-    .def("GetQObject", &ost::gui::get_py_qobject<SpnavInput>)
-    .add_property("qobject", &ost::gui::get_py_qobject<SpnavInput>)
+    .def("GetQObject", &get_py_qobject<SpnavInput>)
+    .add_property("qobject", &get_py_qobject<SpnavInput>)
     .def("Instance", &SpnavInput::Instance,
      return_value_policy<reference_existing_object>()).staticmethod("Instance")
   ;
diff --git a/modules/gui/pymod/export_main_area.cc b/modules/gui/pymod/export_main_area.cc
index 70c69427a..afeea34ae 100644
--- a/modules/gui/pymod/export_main_area.cc
+++ b/modules/gui/pymod/export_main_area.cc
@@ -148,6 +148,7 @@ void export_MainArea()
     .def("AddWidget", &MainArea::AddWidget)
     .def("AddWidget", &main_area_add_widget_a)
     .def("AddWidget", &main_area_add_widget_b)
+    .def("AddWidget", &main_area_add_widget_c)
     .def("AddPersistentWidget", &main_area_add_pers_widget_a)    
     .def("AddPersistentWidget", &main_area_add_pers_widget_b)
     .def("AddPersistentWidget", &main_area_add_pers_widget_c)
diff --git a/modules/gui/pymod/export_menu_bar.cc b/modules/gui/pymod/export_menu_bar.cc
index a53c45c67..146e0785c 100644
--- a/modules/gui/pymod/export_menu_bar.cc
+++ b/modules/gui/pymod/export_menu_bar.cc
@@ -18,8 +18,10 @@
 //------------------------------------------------------------------------------
 #include <boost/python.hpp>
 
-#include "menu_proxy.hh"
-#include "menu_bar_proxy.hh"
+#include "sip_handler.hh"
+
+#include <QMenuBar>
+#include <QMenu>
 
 using namespace boost::python;
 using namespace ost;
@@ -28,11 +30,16 @@ using namespace ost::gui;
 
 void export_MenuBar()
 {
-  class_<MenuBarProxy, bases<SipHandlerBase> >("MenuBar")
-    .def("Show", &MenuBarProxy::Show)
-    .def("Hide", &MenuBarProxy::Hide)
+  class_<QMenuBar, boost::noncopyable>("MenuBar")
+    .def("Show", &QMenuBar::show)
+    .def("Hide", &QMenuBar::hide)
+    .def("GetQObject",&get_py_qobject<QMenuBar>)
+    .add_property("qobject", &get_py_qobject<QMenuBar>)
   ;
 
-  class_<MenuProxy, bases<SipHandlerBase> >("Menu");
+  class_<QMenu, boost::noncopyable>("Menu")
+    .def("GetQObject",&get_py_qobject<QMenu>)
+    .add_property("qobject", &get_py_qobject<QMenu>)
+  ;
 }
 
diff --git a/modules/gui/pymod/export_panel_bar.cc b/modules/gui/pymod/export_panel_bar.cc
index 2153804cf..38e2b6458 100644
--- a/modules/gui/pymod/export_panel_bar.cc
+++ b/modules/gui/pymod/export_panel_bar.cc
@@ -75,14 +75,7 @@ void panels_add_widget_to_pool_b(Panels * panels, const QString& name, int limit
 
 object panels_get_menu(Panels* panels)
 {
-  static object sip_module=import("sip");
-  static object pyqt4_module=import("PyQt4.QtGui");
-  object obj(MenuProxy(panels->GetMenu()));
-  object sip_handle=obj.attr("GetSipHandle")();
-  object qmenu = pyqt4_module.attr("QMenu");
-  object menu = sip_module.attr("wrapinstance")(sip_handle, qmenu);
-
-  return menu;
+  return get_py_qobject<QMenu>(panels->GetMenu());
 }
 
 object panels_get_qwidget(Panels* panels)
diff --git a/modules/gui/pymod/export_perspective.cc b/modules/gui/pymod/export_perspective.cc
index 6c20c2327..d7367b700 100644
--- a/modules/gui/pymod/export_perspective.cc
+++ b/modules/gui/pymod/export_perspective.cc
@@ -23,9 +23,6 @@
 #include <ost/gui/perspective.hh>
 #include <ost/gui/main_area.hh>
 
-#include "menu_bar_proxy.hh"
-#include "menu_proxy.hh"
-
 #include "sip_handler.hh"
 
 using namespace boost::python;
@@ -34,26 +31,12 @@ using namespace ost::gui;
 
 object app_get_menu_bar(Perspective* pers)
 {
-  static object sip_module=import("sip");
-  static object pyqt4_module=import("PyQt4.QtGui");
-  object obj(MenuBarProxy(pers->GetMenuBar()));
-  object sip_handle=obj.attr("GetSipHandle")();
-  object qmenubar = pyqt4_module.attr("QMenuBar");
-  object menu_bar = sip_module.attr("wrapinstance")(sip_handle, qmenubar);
-
-  return menu_bar;
+  return get_py_qobject<QMenuBar>(pers->GetMenuBar());
 }
 
 object app_get_menu(Perspective* pers, const QString& name)
 {
-  static object sip_module=import("sip");
-  static object pyqt4_module=import("PyQt4.QtGui");
-  object obj(MenuProxy(pers->GetMenu(name)));
-  object sip_handle=obj.attr("GetSipHandle")();
-  object qmenu = pyqt4_module.attr("QMenu");
-  object menu = sip_module.attr("wrapinstance")(sip_handle, qmenu);
-
-  return menu;
+  return get_py_qobject<QMenu>(pers->GetMenu(name));
 }
 
 void export_Perspective()
-- 
GitLab