26 #ifndef QTXWORKSTACK_H
27 #define QTXWORKSTACK_H
53 #pragma warning( disable:4251 )
62 enum { SplitVertical = 0x01,
63 SplitHorizontal = 0x02,
66 All = SplitVertical | SplitHorizontal |
70 enum { VersionMarker = 0x01,
92 QWidgetList windowList(
QWidget* = 0 )
const;
93 QWidgetList splitWindowList()
const;
96 void setActiveWindow(
QWidget* );
98 int accel(
const int )
const;
99 void setAccel(
const int,
const int );
101 QIcon icon(
const int )
const;
102 void setIcon(
const int,
const QIcon& );
104 void setMenuActions(
const int );
105 int menuActions()
const;
108 void split(
const int );
113 QByteArray saveState(
int )
const;
114 bool restoreState(
const QByteArray&,
int );
116 void setOpaqueResize(
bool =
true );
117 bool opaqueResize()
const;
119 void splittersVisible(
QWidget*,
bool =
true );
124 void SetRelativePositionInSplitter(
QWidget* wid,
const double pos );
132 void splitVertical();
133 void splitHorizontal();
137 void onCloseWindow();
139 void onWindowActivated(
QWidget* );
140 void onContextMenuRequested(
QWidget*, QPoint );
144 virtual void customEvent(
QEvent* );
146 QAction* action(
const int )
const;
148 void saveState( QDataStream& )
const;
149 bool restoreState( QDataStream& );
175 void distributeSpace(
QSplitter* )
const;
178 const int need_pos,
const int splitter_pos );
206 bool restoreState( QDataStream&, QMap<QString, QtxWorkstackChild*>& );
221 bool isEmpty()
const;
224 void removeWidget(
QWidget*,
const bool =
true );
230 void setActiveWidget(
QWidget* );
232 bool contains(
QWidget* )
const;
234 QWidgetList widgetList()
const;
237 bool isActive()
const;
238 void updateActiveState();
244 QRect floatRect()
const;
245 QRect floatTab(
const int )
const;
247 int tabAt(
const QPoint& )
const;
249 void saveState( QDataStream& )
const;
250 bool restoreState( QDataStream&, QMap<QString, QtxWorkstackChild*>& );
252 void showTabBar(
bool =
true);
261 void onCurrentChanged(
int );
263 void onChildDestroyed(
QObject* );
269 void onDragActiveTab();
270 void onContextMenuRequested( QPoint );
273 virtual void customEvent(
QEvent* );
274 virtual void focusInEvent( QFocusEvent* );
275 virtual void mousePressEvent( QMouseEvent* );
279 enum { ActivateWidget = QEvent::User,
287 void updateCurrent();
290 QWidget* widget(
const int )
const;
291 int widgetId(
QWidget* )
const;
296 void setWidgetActive(
QWidget* );
298 int generateId()
const;
323 void setId(
const int );
359 int tabId(
const int )
const;
360 int indexOf(
const int )
const;
361 void setTabId(
const int,
const int );
416 #pragma warning( default:4251 )
#define QTX_EXPORT
Definition: Qtx.h:36
Orientation
Orientation.
Definition: SalomePyQt.h:138
@ Horizontal
Horizontal orientation.
Definition: SalomePyQt.h:139
For more information see QT documentation.
Definition: SUIT_Application.h:42
Implements actions group for menu Windows with standard operations, like "Split vertical",...
Definition: QtxWorkstackAction.h:45
Internal class used to forward restore info events to the workarea.
Definition: QtxWorkstack.cxx:69
Workstack widget workarea.
Definition: QtxWorkstack.h:210
void contextMenuRequested(QWidget *, QPoint)
Emitted when context popup menu is requested.
QList< QtxWorkstackChild * > ChildList
Definition: QtxWorkstack.h:301
QStackedWidget * myStack
widget stack
Definition: QtxWorkstack.h:308
void activated(QWidget *)
Emitted when child widget is activated.
void deactivated(QtxWorkstackArea *)
Emitted when workarea is deactivated.
@ FocusWidget
focus receiving widget event
Definition: QtxWorkstack.h:280
@ MakeCurrent
Definition: QtxWorkstack.h:281
ChildList myList
child widgets list
Definition: QtxWorkstack.h:306
QAbstractButton * myClose
close button
Definition: QtxWorkstack.h:307
QtxWorkstackTabBar * myBar
workarea tab bar header
Definition: QtxWorkstack.h:305
QWidget * myTop
workarea top widget
Definition: QtxWorkstack.h:304
Workarea child widget container.
Definition: QtxWorkstack.h:312
void hidden(QtxWorkstackChild *)
Emitted when child widget is hidden.
QPointer< QWidget > myWidget
child widget
Definition: QtxWorkstack.h:345
virtual ~QtxWorkstackChild()
Destructor.
Definition: QtxWorkstack.cxx:1377
void setId(const int)
Sets the id.
Definition: QtxWorkstack.cxx:1414
bool visibility()
Returns true if this child window should be visible.
Definition: QtxWorkstack.cxx:1422
void shown(QtxWorkstackChild *)
Emitted when child widget is shown.
QtxWorkstackChild(QWidget *, QWidget *=0, Qt::WindowFlags=0)
Constructor.
Definition: QtxWorkstack.cxx:1353
void captionChanged(QtxWorkstackChild *)
Emitted when child widget's title is changed.
void onDestroyed(QObject *)
Called when child widget is destroyed.
Definition: QtxWorkstack.cxx:1472
int id() const
Returns the id.
Definition: QtxWorkstack.cxx:1406
QtxWorkstackArea * area() const
Definition: QtxWorkstack.cxx:1427
void activated(QtxWorkstackChild *)
Emitted when child widget is activated.
virtual void childEvent(QChildEvent *)
Customize child event handler.
Definition: QtxWorkstack.cxx:1481
int myId
id
Definition: QtxWorkstack.h:344
virtual bool eventFilter(QObject *, QEvent *)
Custom event filter.
Definition: QtxWorkstack.cxx:1449
QWidget * widget() const
Get child widget.
Definition: QtxWorkstack.cxx:1398
Workstack drag object.
Definition: QtxWorkstack.h:385
QRubberBand * myTabRect
tab bar rubber band
Definition: QtxWorkstack.h:411
QtxWorkstackChild * myChild
workstack child widget container
Definition: QtxWorkstack.h:407
int myTab
workarea tab page index
Definition: QtxWorkstack.h:409
QtxWorkstack * myWS
parent workstack
Definition: QtxWorkstack.h:406
void dropWidget()
Called when drop operation is finished.
Definition: QtxWorkstack.cxx:195
void startDrawRect()
Create rubber band to be drawn on the dragging operation.
Definition: QtxWorkstack.cxx:252
QRubberBand * myAreaRect
workarea rubber band
Definition: QtxWorkstack.h:412
void endDrawRect()
Delete rubber band on the end on the dragging operation.
Definition: QtxWorkstack.cxx:240
void drawRect()
Draw floating rectangle.
Definition: QtxWorkstack.cxx:204
virtual ~QtxWorkstackDrag()
Destructor.
Definition: QtxWorkstack.cxx:108
void setTarget(QtxWorkstackArea *, const int)
Set dropping target.
Definition: QtxWorkstack.cxx:173
QtxWorkstackArea * detectTarget(const QPoint &, int &) const
Detect dropping target.
Definition: QtxWorkstack.cxx:157
QtxWorkstackArea * myArea
workarea
Definition: QtxWorkstack.h:410
void updateTarget(const QPoint &)
Detect and set dropping target widget.
Definition: QtxWorkstack.cxx:144
QtxWorkstackDrag(QtxWorkstack *, QtxWorkstackChild *)
Constructor.
Definition: QtxWorkstack.cxx:93
virtual bool eventFilter(QObject *, QEvent *)
Custom event filter.
Definition: QtxWorkstack.cxx:121
Workstack splitter.
Definition: QtxWorkstack.h:196
QtxWorkstack * workstack() const
Get parent workstack.
Definition: QtxWorkstack.cxx:409
bool restoreState(QDataStream &, QMap< QString, QtxWorkstackChild * > &)
Restore the widget area configuration from data stream info.
Definition: QtxWorkstack.cxx:458
virtual ~QtxWorkstackSplitter()
Destructor.
Definition: QtxWorkstack.cxx:401
void saveState(QDataStream &) const
Save the widget area configuration into data stream.
Definition: QtxWorkstack.cxx:424
QtxWorkstackSplitter(QWidget *=0)
Constructor.
Definition: QtxWorkstack.cxx:392
Workstack tab bar widget.
Definition: QtxWorkstack.h:349
int indexOf(const int) const
Get tab page index by specified identifier.
Definition: QtxWorkstack.cxx:1570
virtual void mouseReleaseEvent(QMouseEvent *)
Customize mouse release event handler.
Definition: QtxWorkstack.cxx:1654
virtual void contextMenuEvent(QContextMenuEvent *)
Customize context menu event handler.
Definition: QtxWorkstack.cxx:1668
bool myActive
"active" status
Definition: QtxWorkstack.h:381
virtual void changeEvent(QEvent *)
Process widget change state events (style, palette, enable state changing, etc).
Definition: QtxWorkstack.cxx:1678
int tabId(const int) const
Get tab page identifier.
Definition: QtxWorkstack.cxx:1547
virtual void mouseMoveEvent(QMouseEvent *)
Customize mouse move event handler.
Definition: QtxWorkstack.cxx:1627
void setActive(const bool)
Set tab bar active/inactive.
Definition: QtxWorkstack.cxx:1594
void updateActiveState()
Update tab bar according to the 'active' state.
Definition: QtxWorkstack.cxx:1606
void dragActiveTab()
Emitted when dragging operation is started.
virtual void mousePressEvent(QMouseEvent *)
Customize mouse press event handler.
Definition: QtxWorkstack.cxx:1642
void onCurrentChanged(int)
Called when current tab page is changed.
Definition: QtxWorkstack.cxx:1618
virtual ~QtxWorkstackTabBar()
Destructor.
Definition: QtxWorkstack.cxx:1538
bool isActive() const
Check if the tab bar is active.
Definition: QtxWorkstack.cxx:1585
void setTabId(const int, const int)
Set tab page identifier.
Definition: QtxWorkstack.cxx:1560
int myId
current tab page index
Definition: QtxWorkstack.h:380
void contextMenuRequested(QPoint)
Emitted when context popup menu is requested.
QtxWorkstackTabBar(QWidget *=0)
Constructor.
Definition: QtxWorkstack.cxx:1525
Workstack widget.
Definition: QtxWorkstack.h:57
QPointer< QWidget > myWin
active widget
Definition: QtxWorkstack.h:181
QMap< int, QAction * > myActionsMap
actions map
Definition: QtxWorkstack.h:187
QPointer< QtxWorkstackArea > myArea
active workarea
Definition: QtxWorkstack.h:182
SplitType
Workstack splitting type.
Definition: QtxWorkstack.h:82
@ SplitStay
selected widget stays in current workarea, others widgets are moved into a new workarea
Definition: QtxWorkstack.h:83
@ SplitAt
all widgets before selected widget stay in current workarea, other widgess are moved into a new worka...
Definition: QtxWorkstack.h:84
QPointer< QtxWorkstackArea > myWorkArea
workarea where popup menu is invoked (used internally)
Definition: QtxWorkstack.h:185
QPointer< QWidget > myWorkWin
widget where popup menu is invoked (used internally)
Definition: QtxWorkstack.h:184
QtxWorkstackSplitter * mySplit
tol-level splitter
Definition: QtxWorkstack.h:183
void windowActivated(QWidget *)
Emitted when the workstack's child widget \w is activated.