From ec295f74a006dd11577a17b4dea54dddebc0be97 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 Export for panels git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2078 5a81b35b-ba03-0410-adc8-b2c5c5119f08 --- modules/gui/pymod/export_panel_bar.cc | 90 +++++++++++++++++++-------- modules/gui/pymod/menu_bar_proxy.hh | 46 -------------- modules/gui/pymod/menu_proxy.hh | 46 -------------- scripts/init.py | 2 +- 4 files changed, 64 insertions(+), 120 deletions(-) delete mode 100644 modules/gui/pymod/menu_bar_proxy.hh delete mode 100644 modules/gui/pymod/menu_proxy.hh diff --git a/modules/gui/pymod/export_panel_bar.cc b/modules/gui/pymod/export_panel_bar.cc index 38e2b6458..e83a8cb2b 100644 --- a/modules/gui/pymod/export_panel_bar.cc +++ b/modules/gui/pymod/export_panel_bar.cc @@ -20,10 +20,8 @@ #include <ost/gui/panel_bar/panels.hh> #include <ost/gui/panel_bar/panel_bar.hh> -#include <ost/gui/panel_bar/button_bar.hh> #include "ost/gui/widget.hh" -#include "menu_proxy.hh" #include "sip_handler.hh" @@ -35,22 +33,21 @@ using namespace ost::gui; namespace{ void panels_add_widget_a(Panels * panels, PanelPosition pos, const SipHandlerBase& sh, bool hidden=false) { - panels->AddWidget(pos,reinterpret_cast<Widget*>(sh.GetSipHandle()),hidden); + if(Widget* widget = reinterpret_cast<Widget*>(sh.GetSipHandle())){ + panels->AddWidget(pos,widget,hidden); + } } -void panels_add_widget_b(Panels * panels, PanelPosition pos, const SipHandlerBase& sh) +void panels_add_widget_b(Panels * panels, PanelPosition pos, Widget* widget, bool hidden=false) { - panels->AddWidget(pos,reinterpret_cast<Widget*>(sh.GetSipHandle())); + panels->AddWidget(pos,widget,hidden); } -void panels_add_widget_c(Panels * panels, PanelPosition pos, Widget* w, bool hidden=false) +void panels_add_widget_c(Panels * panels, PanelPosition pos, object py_object, bool hidden=false) { - panels->AddWidget(pos,w,hidden); -} - -void panels_add_widget_d(Panels * panels, PanelPosition pos, Widget* w) -{ - panels->AddWidget(pos,w); + if(Widget* widget = get_cpp_qobject<Widget>(py_object)){ + panels->AddWidget(pos,widget,hidden); + } } void panels_remove_widget_a(Panels * panels, Widget* w) @@ -60,7 +57,16 @@ void panels_remove_widget_a(Panels * panels, Widget* w) void panels_remove_widget_b(Panels * panels, const SipHandlerBase& sh) { - panels->RemoveWidget(reinterpret_cast<Widget*>(sh.GetSipHandle())); + if(Widget* widget = reinterpret_cast<Widget*>(sh.GetSipHandle())){ + panels->RemoveWidget(widget); + } +} + +void panels_remove_widget_c(Panels * panels, object py_object) +{ + if(Widget* widget = get_cpp_qobject<Widget>(py_object)){ + panels->RemoveWidget(widget); + } } void panels_add_widget_to_pool_a(Panels * panels, const QString& full_name, Widget* widget) @@ -68,7 +74,21 @@ void panels_add_widget_to_pool_a(Panels * panels, const QString& full_name, Widg panels->AddWidgetToPool(full_name,widget); } -void panels_add_widget_to_pool_b(Panels * panels, const QString& name, int limit=-1) +void panels_add_widget_to_pool_b(Panels * panels, const QString& full_name, const SipHandlerBase& sh) +{ + if(Widget* widget = reinterpret_cast<Widget*>(sh.GetSipHandle())){ + panels->AddWidgetToPool(full_name,widget); + } +} + +void panels_add_widget_to_pool_c(Panels * panels, const QString& full_name, object py_object) +{ + if(Widget* widget = get_cpp_qobject<Widget>(py_object)){ + panels->AddWidgetToPool(full_name,widget); + } +} + +void panels_add_widget_to_pool_d(Panels * panels, const QString& name, int limit=-1) { panels->AddWidgetToPool(name,limit); } @@ -89,9 +109,23 @@ object panels_get_qwidget(Panels* panels) return widget; } -void panel_bar_add_widget(PanelBar * pb, const SipHandlerBase& sh, bool hidden) +void panel_bar_add_widget_a(PanelBar * pb, Widget* widget, bool hidden=false) { - pb->AddWidget(reinterpret_cast<Widget*>(sh.GetSipHandle()),hidden); + pb->AddWidget(widget,hidden); +} + +void panel_bar_add_widget_b(PanelBar * pb, const SipHandlerBase& sh, bool hidden=false) +{ + if(Widget* widget = reinterpret_cast<Widget*>(sh.GetSipHandle())){ + pb->AddWidget(widget,hidden); + } +} + +void panel_bar_add_widget_c(PanelBar * pb, object py_object, bool hidden=false) +{ + if(Widget* widget = get_cpp_qobject<Widget>(py_object)){ + pb->AddWidget(widget,hidden); + } } } @@ -107,35 +141,37 @@ void export_PanelBar() ; class_<Panels, boost::noncopyable>("Panels", no_init) - .def("AddWidget", &panels_add_widget_a) - .def("AddWidget", &panels_add_widget_b) - .def("AddWidget", &panels_add_widget_c) - .def("AddWidget", &panels_add_widget_d) + .def("AddWidget", &panels_add_widget_a, arg("hidden")=false) + .def("AddWidget", &panels_add_widget_b, arg("hidden")=false) + .def("AddWidget", &panels_add_widget_c, arg("hidden")=false) .def("AddWidgetByName", &Panels::AddWidgetByName) .def("RemoveWidget", &panels_remove_widget_a) .def("RemoveWidget", &panels_remove_widget_b) + .def("RemoveWidget", &panels_remove_widget_c) .def("GetMenu", &panels_get_menu) .def("GetQWidget", &panels_get_qwidget) .def("AddWidgetToPool", &panels_add_widget_to_pool_a) .def("AddWidgetToPool", &panels_add_widget_to_pool_b) + .def("AddWidgetToPool", &panels_add_widget_to_pool_c) + .def("AddWidgetToPool", &panels_add_widget_to_pool_d) .def("Save", &Panels::Save) .def("Restore", &Panels::Restore) .add_property("menu", &panels_get_menu) - .add_property("qwidget", &panels_get_qwidget) + .def("GetQObject",&get_py_qobject<Panels>) + .add_property("qobject", &get_py_qobject<Panels>) ; class_<PanelBar, boost::noncopyable>("PanelBar", no_init) - .def("AddWidget", &panel_bar_add_widget) - .def("AddWidget", &PanelBar::AddWidget) + .def("AddWidget", &panel_bar_add_widget_a, arg("hidden")=false) + .def("AddWidget", &panel_bar_add_widget_b, arg("hidden")=false) + .def("AddWidget", &panel_bar_add_widget_c, arg("hidden")=false) .def("Restore", &PanelBar::Restore) .def("Save", &PanelBar::Save) .def("Hide", &PanelBar::hide) .def("Show", &PanelBar::show) + .def("GetQObject",&get_py_qobject<PanelBar>) + .add_property("qobject", &get_py_qobject<PanelBar>) ; - class_<ButtonBar, boost::noncopyable>("ButtonBar", no_init) - .def("Hide", &ButtonBar::hide) - .def("Show", &ButtonBar::show) - ; } diff --git a/modules/gui/pymod/menu_bar_proxy.hh b/modules/gui/pymod/menu_bar_proxy.hh deleted file mode 100644 index 075f3a224..000000000 --- a/modules/gui/pymod/menu_bar_proxy.hh +++ /dev/null @@ -1,46 +0,0 @@ -//------------------------------------------------------------------------------ -// This file is part of the OpenStructure project <www.openstructure.org> -// -// Copyright (C) 2008-2010 by the OpenStructure authors -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License as published by the Free -// Software Foundation; either version 3.0 of the License, or (at your option) -// any later version. -// This library is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -// details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this library; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//------------------------------------------------------------------------------ -#ifndef OST_GUI_MENU_BAR_PROXY_HH -#define OST_GUI_MENU_BAR_PROXY_HH - -#include <QMenuBar> - -#include "sip_handler.hh" - -namespace ost { namespace gui { - -class MenuBarProxy : public SipHandler<QMenuBar> { -public: - MenuBarProxy(QMenuBar* gl_win=NULL): - SipHandler<QMenuBar>(gl_win) - { } - - void Show() - { - return Me()->show(); - } - void Hide() - { - return Me()->hide(); - } -}; - -}} - -#endif diff --git a/modules/gui/pymod/menu_proxy.hh b/modules/gui/pymod/menu_proxy.hh deleted file mode 100644 index 8383a1dec..000000000 --- a/modules/gui/pymod/menu_proxy.hh +++ /dev/null @@ -1,46 +0,0 @@ -//------------------------------------------------------------------------------ -// This file is part of the OpenStructure project <www.openstructure.org> -// -// Copyright (C) 2008-2010 by the OpenStructure authors -// -// This library is free software; you can redistribute it and/or modify it under -// the terms of the GNU Lesser General Public License as published by the Free -// Software Foundation; either version 3.0 of the License, or (at your option) -// any later version. -// This library is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -// FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more -// details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this library; if not, write to the Free Software Foundation, Inc., -// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//------------------------------------------------------------------------------ -#ifndef OST_GUI_MENU_PROXY_HH -#define OST_GUI_MENU_PROXY_HH - -#include <QMenu> - -#include "sip_handler.hh" - -namespace ost { namespace gui { - -class MenuProxy : public SipHandler<QMenu> { -public: - MenuProxy(QMenu* gl_win=NULL): - SipHandler<QMenu>(gl_win) - { } - - void Show() - { - return Me()->show(); - } - void Hide() - { - return Me()->hide(); - } -}; - -}} - -#endif diff --git a/scripts/init.py b/scripts/init.py index 94bd347e1..e012b6118 100644 --- a/scripts/init.py +++ b/scripts/init.py @@ -51,7 +51,7 @@ def _InitFrontEnd(): main_area=app.perspective.main_area _InitPanels(app, app.perspective.panels) _InitMenuBar(app.perspective.GetMenuBar()) - _InitSpaceNav(app.perspective.panels.qwidget) + _InitSpaceNav(app.perspective.panels.qobject) _InitContextMenu() main_area.AddPersistentWidget("3D Scene", "gl_win" , app.gl_win.qobject, int(QtCore.Qt.WindowMaximized)) app.perspective.Restore() -- GitLab