1 #include "STD_MDIDesktop.h"
\r
3 #include <SUIT_Session.h>
\r
4 #include <SUIT_ViewWindow.h>
\r
5 #include <SUIT_ResourceMgr.h>
\r
7 #include <QtxAction.h>
\r
8 #include <QtxWorkstack.h>
\r
9 #include <QtxActionMenuMgr.h>
\r
10 #include <QtxWorkspaceAction.h>
\r
13 #include <qmenubar.h>
\r
14 #include <qworkspace.h>
\r
15 #include <qobjectlist.h>
\r
19 STD_MDIDesktop::STD_MDIDesktop()
\r
22 //myWorkspaceAction( 0 )
\r
24 QVBox* base = new QVBox( this );
\r
25 base->setFrameStyle( QFrame::Panel | QFrame::Sunken );
\r
27 setCentralWidget( base );
\r
29 myWorkstack = new QtxWorkstack( base );
\r
31 connect( myWorkstack, SIGNAL( windowActivated( QWidget* ) ),
\r
32 this, SLOT( onWindowActivated( QWidget* ) ) );
\r
37 STD_MDIDesktop::~STD_MDIDesktop()
\r
41 SUIT_ViewWindow* STD_MDIDesktop::activeWindow() const
\r
43 SUIT_ViewWindow* wnd = 0;
\r
45 QWidget* wid = myWorkstack->activeWindow();
\r
46 if ( wid && wid->inherits( "SUIT_ViewWindow" ) )
\r
47 wnd = (SUIT_ViewWindow*)wid;
\r
52 QPtrList<SUIT_ViewWindow> STD_MDIDesktop::windows() const
\r
54 QPtrList<SUIT_ViewWindow> winList;
\r
56 QWidgetList children = myWorkstack->windowList();
\r
57 for ( QWidgetListIt it( children ); it.current(); ++it )
\r
59 if ( it.current()->inherits( "SUIT_ViewWindow" ) )
\r
60 winList.append( (SUIT_ViewWindow*)it.current() );
\r
66 QWidget* STD_MDIDesktop::parentArea() const
\r
71 void STD_MDIDesktop::windowOperation( const int type )
\r
73 // myWorkspaceAction->perform( operationFlag( type ) );
\r
76 void STD_MDIDesktop::setWindowOperations( const int first, ... )
\r
79 va_start( ints, first );
\r
81 QValueList<int> typeList;
\r
86 typeList.append( cur );
\r
87 cur = va_arg( ints, int );
\r
90 setWindowOperations( typeList );
\r
93 void STD_MDIDesktop::setWindowOperations( const QValueList<int>& opList )
\r
97 for ( QValueList<int>::const_iterator it = opList.begin(); it != opList.end(); ++it )
\r
98 flags = flags | operationFlag( *it );
\r
100 // myWorkspaceAction->setItems( flags );
\r
103 QWorkspace* STD_MDIDesktop::workspace() const
\r
105 return 0;//myWorkspace;
\r
108 void STD_MDIDesktop::onWindowActivated( QWidget* w )
\r
110 if ( w && w->inherits( "SUIT_ViewWindow" ) )
\r
111 emit windowActivated( (SUIT_ViewWindow*)w );
\r
114 void STD_MDIDesktop::createActions()
\r
117 if ( myWorkspaceAction )
\r
120 SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
\r
124 myWorkspaceAction = new QtxWorkspaceAction( workspace(), this );
\r
126 myWorkspaceAction->setItems( QtxWorkspaceAction::Cascade | QtxWorkspaceAction::Tile |
\r
127 QtxWorkspaceAction::HTile | QtxWorkspaceAction::VTile |
\r
128 QtxWorkspaceAction::Windows );
\r
131 myWorkspaceAction->setIconSet( QtxWorkspaceAction::Cascade,
\r
132 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_CASCADE" ) ) );
\r
133 myWorkspaceAction->setMenuText( QtxWorkspaceAction::Cascade, tr( "MEN_DESK_WINDOW_CASCADE" ) );
\r
134 myWorkspaceAction->setStatusTip( QtxWorkspaceAction::Cascade, tr( "PRP_DESK_WINDOW_CASCADE" ) );
\r
137 myWorkspaceAction->setIconSet( QtxWorkspaceAction::Tile,
\r
138 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_TILE" ) ) );
\r
139 myWorkspaceAction->setMenuText( QtxWorkspaceAction::Tile, tr( "MEN_DESK_WINDOW_TILE" ) );
\r
140 myWorkspaceAction->setStatusTip( QtxWorkspaceAction::Tile, tr( "PRP_DESK_WINDOW_TILE" ) );
\r
143 myWorkspaceAction->setIconSet( QtxWorkspaceAction::HTile,
\r
144 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_HTILE" ) ) );
\r
145 myWorkspaceAction->setMenuText( QtxWorkspaceAction::HTile, tr( "MEN_DESK_WINDOW_HTILE" ) );
\r
146 myWorkspaceAction->setStatusTip( QtxWorkspaceAction::HTile, tr( "PRP_DESK_WINDOW_HTILE" ) );
\r
149 myWorkspaceAction->setIconSet( QtxWorkspaceAction::VTile,
\r
150 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_VTILE" ) ) );
\r
151 myWorkspaceAction->setMenuText( QtxWorkspaceAction::VTile, tr( "MEN_DESK_WINDOW_VTILE" ) );
\r
152 myWorkspaceAction->setStatusTip( QtxWorkspaceAction::VTile, tr( "PRP_DESK_WINDOW_VTILE" ) );
\r
155 QtxActionMenuMgr* mMgr = menuMgr();
\r
159 int winMenuId = mMgr->insert( tr( "MEN_DESK_WINDOW" ), -1, 100 );
\r
160 mMgr->insert( myWorkspaceAction, winMenuId, -1 );
\r
161 mMgr->insert( QtxActionMenuMgr::separator(), winMenuId, -1 );
\r
165 int STD_MDIDesktop::operationFlag( const int type ) const
\r
171 res = QtxWorkspaceAction::Cascade;
\r
174 res = QtxWorkspaceAction::Tile;
\r
177 res = QtxWorkspaceAction::HTile;
\r
180 res = QtxWorkspaceAction::VTile;
\r