Skip to content
Snippets Groups Projects
Commit ec295f74 authored by stefan's avatar stefan
Browse files

New Export for panels

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2078 5a81b35b-ba03-0410-adc8-b2c5c5119f08
parent 8e5c48f3
Branches
Tags
No related merge requests found
...@@ -20,10 +20,8 @@ ...@@ -20,10 +20,8 @@
#include <ost/gui/panel_bar/panels.hh> #include <ost/gui/panel_bar/panels.hh>
#include <ost/gui/panel_bar/panel_bar.hh> #include <ost/gui/panel_bar/panel_bar.hh>
#include <ost/gui/panel_bar/button_bar.hh>
#include "ost/gui/widget.hh" #include "ost/gui/widget.hh"
#include "menu_proxy.hh"
#include "sip_handler.hh" #include "sip_handler.hh"
...@@ -35,22 +33,21 @@ using namespace ost::gui; ...@@ -35,22 +33,21 @@ using namespace ost::gui;
namespace{ namespace{
void panels_add_widget_a(Panels * panels, PanelPosition pos, const SipHandlerBase& sh, bool hidden=false) 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); if(Widget* widget = get_cpp_qobject<Widget>(py_object)){
} panels->AddWidget(pos,widget,hidden);
}
void panels_add_widget_d(Panels * panels, PanelPosition pos, Widget* w)
{
panels->AddWidget(pos,w);
} }
void panels_remove_widget_a(Panels * panels, Widget* w) void panels_remove_widget_a(Panels * panels, Widget* w)
...@@ -60,7 +57,16 @@ 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) 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) 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 ...@@ -68,7 +74,21 @@ void panels_add_widget_to_pool_a(Panels * panels, const QString& full_name, Widg
panels->AddWidgetToPool(full_name,widget); 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); panels->AddWidgetToPool(name,limit);
} }
...@@ -89,9 +109,23 @@ object panels_get_qwidget(Panels* panels) ...@@ -89,9 +109,23 @@ object panels_get_qwidget(Panels* panels)
return widget; 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() ...@@ -107,35 +141,37 @@ void export_PanelBar()
; ;
class_<Panels, boost::noncopyable>("Panels", no_init) class_<Panels, boost::noncopyable>("Panels", no_init)
.def("AddWidget", &panels_add_widget_a) .def("AddWidget", &panels_add_widget_a, arg("hidden")=false)
.def("AddWidget", &panels_add_widget_b) .def("AddWidget", &panels_add_widget_b, arg("hidden")=false)
.def("AddWidget", &panels_add_widget_c) .def("AddWidget", &panels_add_widget_c, arg("hidden")=false)
.def("AddWidget", &panels_add_widget_d)
.def("AddWidgetByName", &Panels::AddWidgetByName) .def("AddWidgetByName", &Panels::AddWidgetByName)
.def("RemoveWidget", &panels_remove_widget_a) .def("RemoveWidget", &panels_remove_widget_a)
.def("RemoveWidget", &panels_remove_widget_b) .def("RemoveWidget", &panels_remove_widget_b)
.def("RemoveWidget", &panels_remove_widget_c)
.def("GetMenu", &panels_get_menu) .def("GetMenu", &panels_get_menu)
.def("GetQWidget", &panels_get_qwidget) .def("GetQWidget", &panels_get_qwidget)
.def("AddWidgetToPool", &panels_add_widget_to_pool_a) .def("AddWidgetToPool", &panels_add_widget_to_pool_a)
.def("AddWidgetToPool", &panels_add_widget_to_pool_b) .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("Save", &Panels::Save)
.def("Restore", &Panels::Restore) .def("Restore", &Panels::Restore)
.add_property("menu", &panels_get_menu) .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) class_<PanelBar, boost::noncopyable>("PanelBar", no_init)
.def("AddWidget", &panel_bar_add_widget) .def("AddWidget", &panel_bar_add_widget_a, arg("hidden")=false)
.def("AddWidget", &PanelBar::AddWidget) .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("Restore", &PanelBar::Restore)
.def("Save", &PanelBar::Save) .def("Save", &PanelBar::Save)
.def("Hide", &PanelBar::hide) .def("Hide", &PanelBar::hide)
.def("Show", &PanelBar::show) .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)
;
} }
//------------------------------------------------------------------------------
// 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
//------------------------------------------------------------------------------
// 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
...@@ -51,7 +51,7 @@ def _InitFrontEnd(): ...@@ -51,7 +51,7 @@ def _InitFrontEnd():
main_area=app.perspective.main_area main_area=app.perspective.main_area
_InitPanels(app, app.perspective.panels) _InitPanels(app, app.perspective.panels)
_InitMenuBar(app.perspective.GetMenuBar()) _InitMenuBar(app.perspective.GetMenuBar())
_InitSpaceNav(app.perspective.panels.qwidget) _InitSpaceNav(app.perspective.panels.qobject)
_InitContextMenu() _InitContextMenu()
main_area.AddPersistentWidget("3D Scene", "gl_win" , app.gl_win.qobject, int(QtCore.Qt.WindowMaximized)) main_area.AddPersistentWidget("3D Scene", "gl_win" , app.gl_win.qobject, int(QtCore.Qt.WindowMaximized))
app.perspective.Restore() app.perspective.Restore()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment