00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
#ifndef _KMDI_CHILD_VIEW_H_
00032
#define _KMDI_CHILD_VIEW_H_
00033
00034
#include <qwidget.h>
00035
#include <qpixmap.h>
00036
#include <qrect.h>
00037
#include <qapplication.h>
00038
#include <qdatetime.h>
00039
00040
#include "kmdichildfrm.h"
00041
00042
class KMdiChildViewPrivate;
00043
00108 class KMDI_EXPORT KMdiChildView :
public QWidget
00109 {
00110
friend class KMdiMainFrm;
00111
friend class KMdiChildFrm;
00112 Q_OBJECT
00113
00114
00115
protected:
00119 QString m_szCaption;
00120
00124 QString m_sTabCaption;
00125
00129 QWidget* m_focusedChildWidget;
00130
00134 QWidget* m_firstFocusableChildWidget;
00135
00139 QWidget* m_lastFocusableChildWidget;
00140
00144 int m_windowMenuID;
00145
00150 bool m_stateChanged;
00151
00155 QDateTime m_time;
00156
00157
private:
00161
bool m_bToolView;
00162
00168
bool m_bInterruptActivation;
00169
00173
bool m_bMainframesActivateViewIsPending;
00174
00178
bool m_bFocusInEventIsPending;
00179
00180
00181
public:
00185 KMdiChildView(
const QString& caption,
QWidget* parentWidget = 0L,
const char* name = 0L, WFlags f = 0 );
00186
00191 KMdiChildView(
QWidget* parentWidget = 0L,
const char* name = 0L, WFlags f = 0 );
00192
00196 ~KMdiChildView();
00197
00206
void activate();
00207
00211
void setFirstFocusableChildWidget(
QWidget* );
00212
00216
void setLastFocusableChildWidget(
QWidget* );
00217
00221
QWidget* focusedChildWidget();
00222
00227 bool isAttached()
const {
return ( mdiParent() != 0L ); }
00228
00232 const QString&
caption()
const {
return m_szCaption; }
00233
00237 const QString& tabCaption()
const {
return m_sTabCaption; }
00238
00243
virtual void setCaption(
const QString& szCaption );
00244
00248
virtual void setTabCaption(
const QString& caption );
00249
00253
virtual void setMDICaption(
const QString &caption );
00254
00258
KMdiChildFrm *mdiParent() const;
00259
00264
bool isMinimized() const;
00265
00270
bool isMaximized() const;
00271
00275
QRect internalGeometry() const;
00276
00284
void setInternalGeometry( const
QRect& newGeomety );
00285
00289
QRect externalGeometry() const;
00290
00298
void setExternalGeometry( const
QRect& newGeomety );
00299
00303 virtual
QPixmap* myIconPtr();
00304
00309 virtual
void minimize(
bool bAnimate );
00310
00315 virtual
void maximize(
bool bAnimate );
00316
00320
QRect restoreGeometry();
00321
00325
void setRestoreGeometry( const
QRect& newRestGeo );
00326
00330
void removeEventFilterForAllChildren();
00331
00335
void setWindowMenuID(
int id );
00336
00342 virtual
void setMinimumSize (
int minw,
int minh );
00343
00349 virtual
void setMaximumSize (
int maxw,
int maxh );
00350
00354 inline
bool isToolView()
const {
return m_bToolView; }
00355
00359 inline void updateTimeStamp()
00360 {
00361 m_time.setDate( QDate::currentDate() );
00362 m_time.setTime( QTime::currentTime() );
00363 }
00364
00368 inline const QDateTime& getTimeStamp()
const {
return m_time; }
00369
00370
public slots:
00376
virtual void attach();
00377
00383
virtual void detach();
00384
00390
virtual void minimize();
00391
00397
virtual void maximize();
00398
00402
virtual void restore();
00403
00408
virtual void youAreAttached(
KMdiChildFrm *lpC );
00409
00414
virtual void youAreDetached();
00415
00419
virtual void slot_clickedInWindowMenu();
00420
00424
virtual void slot_clickedInDockMenu();
00425
00429
virtual void show();
00430
00434
virtual void hide();
00435
00439
virtual void raise();
00440
00445
virtual void showMinimized();
00446
00451
virtual void showMaximized();
00452
00457
virtual void showNormal();
00458
00459
00460
protected:
00465
virtual void closeEvent(
QCloseEvent *e );
00466
00473
virtual bool eventFilter(
QObject *obj,
QEvent *e );
00474
00481
virtual void focusInEvent(
QFocusEvent *e );
00482
00486
virtual void focusOutEvent(
QFocusEvent *e );
00487
00491
virtual void resizeEvent(
QResizeEvent *e );
00492
00493
void trackIconAndCaptionChanges(
QWidget *view );
00494
00495
protected slots:
00496
void slot_childDestroyed();
00497
00498 signals:
00502
void attachWindow( KMdiChildView*,
bool );
00503
00507
void detachWindow( KMdiChildView*,
bool );
00508
00514
void focusInEventOccurs( KMdiChildView* );
00515
00520
void gotFocus( KMdiChildView* );
00521
00526
void activated( KMdiChildView* );
00527
00531
void lostFocus( KMdiChildView* );
00532
00536
void deactivated( KMdiChildView* );
00537
00542
void childWindowCloseRequest( KMdiChildView* );
00543
00547
void windowCaptionChanged(
const QString& );
00548
00552
void tabCaptionChanged(
const QString& );
00553
00558
void mdiParentNowMaximized(
bool );
00559
00563
void clickedInWindowMenu(
int );
00564
00568
void clickedInDockMenu(
int );
00569
00573
void isMaximizedNow();
00574
00578
void isMinimizedNow();
00579
00583
void isRestoredNow();
00584
00588
void isAttachedNow();
00589
00593
void isDetachedNow();
00594
00595
void iconUpdated(
QWidget*,
QPixmap );
00596
void captionUpdated(
QWidget*,
const QString& );
00597
00598
00599
private:
00600 KMdiChildViewPrivate *d;
00601
QWidget *m_trackChanges;
00602 };
00603
00604 inline KMdiChildFrm *
KMdiChildView::mdiParent()
const
00605
{
00606
QWidget * pw = parentWidget();
00607
if ( pw != 0L )
00608
if ( pw->inherits(
"KMdiChildFrm" ) )
00609
return (
KMdiChildFrm * ) pw;
00610
return 0L;
00611 }
00612
00613
#endif //_KMDICHILDVIEW_H_
00614
00615