]> SALOME platform Git repositories - modules/gui.git/blob - src/SUIT/SUIT_Desktop.cxx
Salome HOME
f40ba81b8659167802def1bba5d4d222309e5e3b
[modules/gui.git] / src / SUIT / SUIT_Desktop.cxx
1 #include "SUIT_Desktop.h"
2
3 #include "SUIT_Tools.h"
4 #include "SUIT_ViewWindow.h"
5
6 #include <QtxLogoMgr.h>
7 #include <QtxActionMenuMgr.h>
8 #include <QtxActionToolMgr.h>
9
10 /*!\class SUIT_Desktop
11  * Provide desktop management:\n
12  * \li menu manager
13  * \li tool manager
14  * \li windows
15  */
16
17 /*!
18   Constructor.
19 */
20 SUIT_Desktop::SUIT_Desktop()
21 : QtxMainWindow()
22 {
23   myMenuMgr = new QtxActionMenuMgr( this );
24   myToolMgr = new QtxActionToolMgr( this );
25   myLogoMgr = new QtxLogoMgr( menuBar() );
26 }
27
28 /*!
29   Destructor.
30 */
31 SUIT_Desktop::~SUIT_Desktop()
32 {
33 }
34
35 /*!
36   Emit on event \a e.
37 */
38 bool SUIT_Desktop::event( QEvent* e )
39 {
40   if ( !e )
41     return false;
42
43   switch ( e->type() )
44   {
45   case QEvent::WindowActivate:
46     emit activated();
47     break;
48   case QEvent::WindowDeactivate:
49     emit deactivated();
50     break;
51   }
52
53   return QMainWindow::event( e );
54 }
55
56 /*!
57   Close event \a e.
58 */
59 void SUIT_Desktop::closeEvent( QCloseEvent* e )
60 {
61   emit closing( this, e );
62   e->ignore();
63 }
64
65 /*!
66   Child event.
67 */
68 void SUIT_Desktop::childEvent( QChildEvent* e )
69 {
70   if ( e->type() == QEvent::ChildInserted && parentArea() &&
71        e->child()->isWidgetType() && e->child()->inherits( "SUIT_ViewWindow" ) )
72   {
73     QWidget* wid = (QWidget*)e->child();
74     bool vis = wid->isVisibleTo( wid->parentWidget() );
75     wid->reparent( parentArea(), QPoint( 0, 0 ), vis );
76     wid->setShown( vis );
77   }
78   else
79     QtxMainWindow::childEvent( e );
80 }
81
82 /*!
83   Gets menu manager.
84 */
85 QtxActionMenuMgr* SUIT_Desktop::menuMgr() const
86 {
87   return myMenuMgr;
88 }
89
90 /*!
91   Gets tool manager.
92 */
93 QtxActionToolMgr* SUIT_Desktop::toolMgr() const
94 {
95   return myToolMgr;
96 }
97
98 /*!
99   Returns the count of the existed logos.
100 */
101 int SUIT_Desktop::logoCount() const
102 {
103   if ( !myLogoMgr )
104     return 0;
105   else
106     return myLogoMgr->count();
107 }
108
109 /*!
110   Adds new logo to the menu bar area.
111   Obsolete. Not should be used.
112   Use SUIT_Desktop::logoInsert();
113 */
114 void SUIT_Desktop::addLogo( const QString& id, const QPixmap& pix )
115 {
116   logoInsert( id, pix );
117 }
118
119 /*!
120   Removes a logo.
121   Obsolete. Not should be used.
122   Use SUIT_Desktop::logoRemove();
123 */
124 void SUIT_Desktop::removeLogo( const QString& id )
125 {
126   logoRemove( id );
127 }
128
129 /*!
130   Adds new logo to the menu bar area
131 */
132 void SUIT_Desktop::logoInsert( const QString& logoID, const QPixmap& logo, const int idx )
133 {
134   if ( myLogoMgr )
135     myLogoMgr->insert( logoID, logo, idx );
136 }
137
138 /*!
139   Removes a logo
140 */
141 void SUIT_Desktop::logoRemove( const QString& logoID )
142 {
143   if ( myLogoMgr )
144     myLogoMgr->remove( logoID );
145 }
146
147 /*!
148   Removes all logos 
149 */
150 void SUIT_Desktop::logoClear()
151 {
152   if ( myLogoMgr )
153     myLogoMgr->clear();
154 }
155
156