1 #include "STD_TabDesktop.h"
3 #include <SUIT_Session.h>
4 #include <SUIT_ViewWindow.h>
5 #include <SUIT_ResourceMgr.h>
8 #include <QtxWorkstack.h>
9 #include <QtxActionMenuMgr.h>
10 #include <QtxWorkstackAction.h>
14 #include <qworkspace.h>
15 #include <qobjectlist.h>
19 STD_TabDesktop::STD_TabDesktop()
22 myWorkstackAction( 0 )
24 QVBox* base = new QVBox( this );
25 base->setFrameStyle( QFrame::Panel | QFrame::Sunken );
27 setCentralWidget( base );
29 myWorkstack = new QtxWorkstack( base );
31 connect( myWorkstack, SIGNAL( windowActivated( QWidget* ) ),
32 this, SLOT( onWindowActivated( QWidget* ) ) );
37 STD_TabDesktop::~STD_TabDesktop()
41 SUIT_ViewWindow* STD_TabDesktop::activeWindow() const
43 SUIT_ViewWindow* wnd = 0;
45 QWidget* wid = myWorkstack->activeWindow();
46 if ( wid && wid->inherits( "SUIT_ViewWindow" ) )
47 wnd = (SUIT_ViewWindow*)wid;
52 QPtrList<SUIT_ViewWindow> STD_TabDesktop::windows() const
54 QPtrList<SUIT_ViewWindow> winList;
56 QWidgetList children = myWorkstack->windowList();
57 for ( QWidgetListIt it( children ); it.current(); ++it )
59 if ( it.current()->inherits( "SUIT_ViewWindow" ) )
60 winList.append( (SUIT_ViewWindow*)it.current() );
66 QWidget* STD_TabDesktop::parentArea() const
71 void STD_TabDesktop::windowOperation( const int type )
73 myWorkstackAction->perform( operationFlag( type ) );
76 void STD_TabDesktop::setWindowOperations( const int first, ... )
79 va_start( ints, first );
81 QValueList<int> typeList;
86 typeList.append( cur );
87 cur = va_arg( ints, int );
90 setWindowOperations( typeList );
93 void STD_TabDesktop::setWindowOperations( const QValueList<int>& opList )
97 for ( QValueList<int>::const_iterator it = opList.begin(); it != opList.end(); ++it )
98 flags = flags | operationFlag( *it );
100 myWorkstackAction->setItems( flags );
103 QtxWorkstack* STD_TabDesktop::workstack() const
108 void STD_TabDesktop::onWindowActivated( QWidget* w )
110 if ( w && w->inherits( "SUIT_ViewWindow" ) )
111 emit windowActivated( (SUIT_ViewWindow*)w );
114 void STD_TabDesktop::createActions()
116 if ( myWorkstackAction )
119 SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
123 myWorkstackAction = new QtxWorkstackAction( workstack(), this );
125 myWorkstackAction->setItems( QtxWorkstackAction::Split | QtxWorkstackAction::Windows );
128 myWorkstackAction->setIconSet( QtxWorkstackAction::HSplit,
129 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_HSPLIT" ) ) );
130 myWorkstackAction->setMenuText( QtxWorkstackAction::HSplit, tr( "MEN_DESK_WINDOW_HSPLIT" ) );
131 myWorkstackAction->setStatusTip( QtxWorkstackAction::HSplit, tr( "PRP_DESK_WINDOW_HSPLIT" ) );
134 myWorkstackAction->setIconSet( QtxWorkstackAction::VSplit,
135 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_VSPLIT" ) ) );
136 myWorkstackAction->setMenuText( QtxWorkstackAction::VSplit, tr( "MEN_DESK_WINDOW_VSPLIT" ) );
137 myWorkstackAction->setStatusTip( QtxWorkstackAction::VSplit, tr( "PRP_DESK_WINDOW_VSPLIT" ) );
139 QtxActionMenuMgr* mMgr = menuMgr();
143 int winMenuId = mMgr->insert( tr( "MEN_DESK_WINDOW" ), -1, 100 );
144 mMgr->insert( myWorkstackAction, winMenuId, -1 );
145 mMgr->insert( QtxActionMenuMgr::separator(), winMenuId, -1 );
148 int STD_TabDesktop::operationFlag( const int type ) const
154 res = QtxWorkstackAction::VSplit;
157 res = QtxWorkstackAction::HSplit;