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 myWorkstack->setAccel(QtxWorkstack::SplitVertical, SHIFT + Key_V);
32 myWorkstack->setAccel(QtxWorkstack::SplitHorizontal, SHIFT + Key_H);
33 myWorkstack->setAccel(QtxWorkstack::Close, SHIFT + Key_C);
35 connect( myWorkstack, SIGNAL( windowActivated( QWidget* ) ),
36 this, SLOT( onWindowActivated( QWidget* ) ) );
41 STD_TabDesktop::~STD_TabDesktop()
45 SUIT_ViewWindow* STD_TabDesktop::activeWindow() const
47 SUIT_ViewWindow* wnd = 0;
49 QWidget* wid = myWorkstack->activeWindow();
50 if ( wid && wid->inherits( "SUIT_ViewWindow" ) )
51 wnd = (SUIT_ViewWindow*)wid;
56 QPtrList<SUIT_ViewWindow> STD_TabDesktop::windows() const
58 QPtrList<SUIT_ViewWindow> winList;
60 QWidgetList children = myWorkstack->windowList();
61 for ( QWidgetListIt it( children ); it.current(); ++it )
63 if ( it.current()->inherits( "SUIT_ViewWindow" ) )
64 winList.append( (SUIT_ViewWindow*)it.current() );
70 QWidget* STD_TabDesktop::parentArea() const
75 void STD_TabDesktop::windowOperation( const int type )
77 myWorkstackAction->perform( operationFlag( type ) );
80 void STD_TabDesktop::setWindowOperations( const int first, ... )
83 va_start( ints, first );
85 QValueList<int> typeList;
90 typeList.append( cur );
91 cur = va_arg( ints, int );
94 setWindowOperations( typeList );
97 void STD_TabDesktop::setWindowOperations( const QValueList<int>& opList )
101 for ( QValueList<int>::const_iterator it = opList.begin(); it != opList.end(); ++it )
102 flags = flags | operationFlag( *it );
104 myWorkstackAction->setItems( flags );
107 QtxWorkstack* STD_TabDesktop::workstack() const
112 void STD_TabDesktop::onWindowActivated( QWidget* w )
114 if ( w && w->inherits( "SUIT_ViewWindow" ) )
115 emit windowActivated( (SUIT_ViewWindow*)w );
118 void STD_TabDesktop::createActions()
120 if ( myWorkstackAction )
123 SUIT_ResourceMgr* resMgr = SUIT_Session::session()->resourceMgr();
127 myWorkstackAction = new QtxWorkstackAction( workstack(), this );
129 myWorkstackAction->setItems( QtxWorkstackAction::Split | QtxWorkstackAction::Windows );
132 myWorkstackAction->setIconSet( QtxWorkstackAction::HSplit,
133 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_HSPLIT" ) ) );
134 myWorkstackAction->setMenuText( QtxWorkstackAction::HSplit, tr( "MEN_DESK_WINDOW_HSPLIT" ) );
135 myWorkstackAction->setStatusTip( QtxWorkstackAction::HSplit, tr( "PRP_DESK_WINDOW_HSPLIT" ) );
138 myWorkstackAction->setIconSet( QtxWorkstackAction::VSplit,
139 resMgr->loadPixmap( "STD", tr( "ICON_DESK_WINDOW_VSPLIT" ) ) );
140 myWorkstackAction->setMenuText( QtxWorkstackAction::VSplit, tr( "MEN_DESK_WINDOW_VSPLIT" ) );
141 myWorkstackAction->setStatusTip( QtxWorkstackAction::VSplit, tr( "PRP_DESK_WINDOW_VSPLIT" ) );
143 QtxActionMenuMgr* mMgr = menuMgr();
147 int winMenuId = mMgr->insert( tr( "MEN_DESK_WINDOW" ), -1, 100 );
148 mMgr->insert( myWorkstackAction, winMenuId, -1 );
149 mMgr->insert( QtxActionMenuMgr::separator(), winMenuId, -1 );
152 int STD_TabDesktop::operationFlag( const int type ) const
158 res = QtxWorkstackAction::VSplit;
161 res = QtxWorkstackAction::HSplit;