Salome HOME
Initial version
[modules/gui.git] / src / SalomeApp / SalomeApp_WidgetContainer.cxx
1 #include "SalomeApp_WidgetContainer.h"
2
3 #include <qobjectlist.h>
4 #include <qwidgetstack.h>
5
6 SalomeApp_WidgetContainer::SalomeApp_WidgetContainer( const int type, QWidget* parent )
7 : QDockWindow( QDockWindow::InDock, parent ),
8 myType( type )
9 {
10   setWidget( myStack = new QWidgetStack( this ) );
11   myStack->show();
12 }
13
14 SalomeApp_WidgetContainer::~SalomeApp_WidgetContainer()
15 {
16 }
17
18 bool SalomeApp_WidgetContainer::isEmpty() const
19 {
20   const QObjectList* lst = myStack->children();
21   if ( !lst )
22     return true;
23
24   bool res = true;
25   for ( QObjectListIt it( *lst ); it.current() && res; ++it )
26   {
27     if ( it.current()->isWidgetType() && myStack->id( (QWidget*)it.current() ) != -1 )
28       res = false;
29   }
30   return res;
31 }
32
33 int SalomeApp_WidgetContainer::type() const
34 {
35   return myType;
36 }
37
38 bool SalomeApp_WidgetContainer::contains( const int id ) const
39 {
40   return myStack->widget( id ) != 0;
41 }
42
43 int SalomeApp_WidgetContainer::insert( const int id, QWidget* wid )
44 {
45   if ( id == -1 || !wid )
46     return -1;
47
48   if ( contains( id ) )
49     remove( id );
50
51   int stackId = myStack->addWidget( wid, id );
52   if ( !myStack->visibleWidget() )
53     myStack->raiseWidget( wid );
54
55   setCaption( myStack->visibleWidget() ? myStack->visibleWidget()->caption() : QString::null );
56
57   return stackId;
58 }
59
60 void SalomeApp_WidgetContainer::remove( const int id )
61 {
62   remove( myStack->widget( id ) );
63
64   setCaption( myStack->visibleWidget() ? myStack->visibleWidget()->caption() : QString::null );
65 }
66
67 void SalomeApp_WidgetContainer::remove( QWidget* wid )
68 {
69   myStack->removeWidget( wid );
70
71   setCaption( myStack->visibleWidget() ? myStack->visibleWidget()->caption() : QString::null );
72 }
73
74 void SalomeApp_WidgetContainer::activate( const int id )
75 {
76   myStack->raiseWidget( id );
77
78   setCaption( myStack->visibleWidget() ? myStack->visibleWidget()->caption() : QString::null );
79 }
80
81 void SalomeApp_WidgetContainer::activate( QWidget* wid )
82 {
83   myStack->raiseWidget( wid );
84
85   setCaption( myStack->visibleWidget() ? myStack->visibleWidget()->caption() : QString::null );
86 }
87
88 QWidget* SalomeApp_WidgetContainer::widget( const int id ) const
89 {
90   return myStack->widget( id );
91 }
92
93 QWidget* SalomeApp_WidgetContainer::active() const
94 {
95   return myStack->visibleWidget();
96 }