kmdi Library API Documentation

kmdichildview.h

00001 //----------------------------------------------------------------------------
00002 //    filename             : kmdichildview.h
00003 //----------------------------------------------------------------------------
00004 //    Project              : KDE MDI extension
00005 //
00006 //    begin                : 07/1999       by Szymon Stefanek as part of kvirc
00007 //                                         (an IRC application)
00008 //    changes              : 09/1999       by Falk Brettschneider to create an
00009 //                           - 06/2000     stand-alone Qt extension set of
00010 //                                         classes and a Qt-based library
00011 //                           2000-2003     maintained by the KDevelop project
00012 //    patches              : 02/2000       by Massimo Morin (mmorin@schedsys.com)
00013 //                           */2000        by Lars Beikirch (Lars.Beikirch@gmx.net)
00014 //                           02/2001       by Eva Brucherseifer (eva@rt.e-technik.tu-darmstadt.de)
00015 //                           01/2003       by Jens Zurheide (jens.zurheide@gmx.de)
00016 //
00017 //    copyright            : (C) 1999-2003 by Falk Brettschneider
00018 //                                         and
00019 //                                         Szymon Stefanek (stefanek@tin.it)
00020 //    email                :  falkbr@kdevelop.org (Falk Brettschneider)
00021 //----------------------------------------------------------------------------
00022 //
00023 //----------------------------------------------------------------------------
00024 //
00025 //    This program is free software; you can redistribute it and/or modify
00026 //    it under the terms of the GNU Library General Public License as
00027 //    published by the Free Software Foundation; either version 2 of the
00028 //    License, or (at your option) any later version.
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 KMdiChildView : public QWidget
00109 {
00110    friend class KMdiMainFrm;
00111    friend class KMdiChildFrm;
00112    Q_OBJECT
00113 
00114 // attributes
00115 protected:
00119    QString     m_szCaption;
00123    QString     m_sTabCaption;
00127    QWidget*    m_focusedChildWidget;
00131    QWidget*    m_firstFocusableChildWidget;
00135    QWidget*    m_lastFocusableChildWidget;
00139    int         m_windowMenuID;
00144    bool        m_stateChanged;
00145 
00149    QDateTime   m_time;
00150 
00151 private:
00155    bool  m_bToolView;
00161    bool m_bInterruptActivation;
00165    bool m_bMainframesActivateViewIsPending;
00169    bool m_bFocusInEventIsPending;
00170 
00171 // methods
00172 public:
00176    KMdiChildView( const QString& caption, QWidget* parentWidget = 0L, const char* name = 0L, WFlags f=0);
00180    KMdiChildView( QWidget* parentWidget = 0L, const char* name = 0L, WFlags f=0);
00184    ~KMdiChildView();
00193    void activate();
00197    void setFirstFocusableChildWidget(QWidget*);
00201    void setLastFocusableChildWidget(QWidget*);
00205    QWidget* focusedChildWidget();
00210    bool isAttached() const { return (mdiParent() != 0L); };
00214    const QString& caption() const { return m_szCaption; };
00218    const QString& tabCaption() const { return m_sTabCaption; };
00223    virtual void setCaption(const QString& szCaption);
00227    virtual void setTabCaption(const QString& caption);
00231    virtual void setMDICaption(const QString &caption);
00235    KMdiChildFrm *mdiParent() const;
00240    bool isMinimized() const;
00245    bool isMaximized() const;
00249    QRect internalGeometry() const;
00257    void setInternalGeometry(const QRect& newGeomety);
00261    QRect externalGeometry() const;
00269    void setExternalGeometry(const QRect& newGeomety);
00273    virtual QPixmap* myIconPtr();
00278    virtual void minimize(bool bAnimate);
00283    virtual void maximize(bool bAnimate);
00287    QRect restoreGeometry();
00291    void  setRestoreGeometry(const QRect& newRestGeo);
00295    void removeEventFilterForAllChildren();
00299    void setWindowMenuID( int id);
00305    virtual void setMinimumSize ( int minw, int minh );
00311    virtual void setMaximumSize ( int maxw, int maxh );
00315    inline bool isToolView() const { return m_bToolView; };
00319    inline void updateTimeStamp() {
00320       m_time.setDate( QDate::currentDate() );
00321       m_time.setTime( QTime::currentTime() );
00322    }
00326    inline const QDateTime& getTimeStamp() const { return m_time; }
00327 
00328 public slots:
00335    virtual void attach();
00342    virtual void detach();
00348    virtual void minimize();
00354    virtual void maximize();
00358    virtual void restore();
00363    virtual void youAreAttached(KMdiChildFrm *lpC);
00368    virtual void youAreDetached();
00372    virtual void slot_clickedInWindowMenu();
00376    virtual void slot_clickedInDockMenu();
00380    virtual void show();
00384    virtual void hide();
00388    virtual void raise();
00393    virtual void showMinimized();
00398    virtual void showMaximized();
00403    virtual void showNormal();
00404 
00405 protected:
00410    virtual void closeEvent(QCloseEvent *e);
00417    virtual bool eventFilter(QObject *obj, QEvent *e);
00424    virtual void focusInEvent(QFocusEvent *e);
00428    virtual void focusOutEvent(QFocusEvent *e);
00432    virtual void resizeEvent(QResizeEvent *e);
00433 
00434    void trackIconAndCaptionChanges(QWidget *view);
00435 
00436 protected slots:
00437    void slot_childDestroyed();
00438 
00439 signals:
00443    void attachWindow( KMdiChildView*,bool);
00447    void detachWindow( KMdiChildView*,bool);
00453    void focusInEventOccurs( KMdiChildView*);
00458    void gotFocus( KMdiChildView*);
00463    void activated( KMdiChildView*);
00467    void lostFocus( KMdiChildView*);
00471    void deactivated( KMdiChildView*);
00476    void childWindowCloseRequest( KMdiChildView*);
00480    void windowCaptionChanged( const QString&);
00484    void tabCaptionChanged( const QString&);
00489    void mdiParentNowMaximized(bool);
00493    void clickedInWindowMenu(int);
00497    void clickedInDockMenu(int);
00501    void isMaximizedNow();
00505    void isMinimizedNow();
00509    void isRestoredNow();
00513    void isAttachedNow();
00517    void isDetachedNow();
00518 
00519    void iconUpdated(QWidget*,QPixmap);
00520    void captionUpdated(QWidget*,const QString&);
00521 
00522 
00523   private:
00524    KMdiChildViewPrivate *d;
00525    QWidget *m_trackChanges;
00526 };
00527 
00528 inline KMdiChildFrm *KMdiChildView::mdiParent() const
00529 {
00530    QWidget* pw = parentWidget();
00531    if( pw != 0L)
00532       if( pw->inherits("KMdiChildFrm"))
00533          return (KMdiChildFrm *)pw;
00534    return 0L;
00535 }
00536 
00537 #endif //_KMDICHILDVIEW_H_
00538 
00539 // kate: space-indent on; indent-width 2; replace-tabs on;
KDE Logo
This file is part of the documentation for kmdi Library Version 3.2.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Feb 4 12:36:51 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2003