Source: include/qextmdichildarea.h

# Source: include/qextmdichildarea.h |
Annotated List
Files
Globals
Hierarchy
Index

    //----------------------------------------------------------------------------
    //    filename             : qextmdichildarea.h
    //----------------------------------------------------------------------------
    //    Project              : Qt MDI extension
    //
    //    begin                : 07/1999       by Szymon Stefanek as part of kvirc
    //                                         (an IRC application)
    //    changes              : 09/1999       by Falk Brettschneider to create an
    //                           - 06/2000     stand-alone Qt extension set of
    //                                         classes and a Qt-based library
    //
    //    copyright            : (C) 1999-2000 by Falk Brettschneider
    //                                         and
    //                                         Szymon Stefanek (stefanek@tin.it)
    //    email                :  gigafalk@yahoo.com (Falk Brettschneider)
    //----------------------------------------------------------------------------
    //
    //----------------------------------------------------------------------------
    //
    //    This program is free software; you can redistribute it and/or modify
    //    it under the terms of the GNU Library General Public License as
    //    published by the Free Software Foundation; either version 2 of the
    //    License, or (at your option) any later version.
    //
    //----------------------------------------------------------------------------

    #ifndef _QEXTMDICHILDAREA_H_
    #define _QEXTMDICHILDAREA_H_

    #include

    #include "qextmdichildfrm.h"
    #include "qextmdichildview.h"

    /**
      * @short Internal class.
      *
      * The main frame widget QextMdiMainFrm consists of 2 child widgets. One is this class.
      * It's the widget where the child frames (emulated toplevel MDI views) live in.
      * This class is the manager for the child frame widgets because it controls the
      * Z-order widget stack of QextMdiChildFrm's.
      * It provides all placing and positioning algorithms for docked (attached) MDI views.
      *
      * QextMdiChildArea doesn't know anything about the actual MDI views. It only knows
      * and manages the frame widgets of attached MDI views.
      * All actions and stuff concerning only to childframes are handled here.
      */
    class DLL_IMP_EXP_QEXTMDICLASS QextMdiChildArea : public QFrame
    {
       friend class QextMdiChildFrmCaption;
       friend class QextMdiChildFrm;

       Q_OBJECT

    // attributes
    public:
       /**
       * Z Order stack of @ref QextMdiChildFrm childframe windows (top=last)
       */
       QList *m_pZ; //Auto delete enabled
       /**
       * the default size of an newly created childframe
       */
       QSize                   m_defaultChildFrmSize;

    protected:
       /**
       * The MDI childframe window caption font
       */
       QFont m_captionFont;
       /**
       * The foreground color of the active MDI childframe window caption
       */
       QColor m_captionActiveBackColor;
       /**
       * The background color of the active MDI childframe window captions
       */
       QColor m_captionActiveForeColor;
       /**
       * The foreground color of inactive MDI childframe window captions
       */
       QColor m_captionInactiveBackColor;
       /**
       * The background color of inactive MDI childframe window captions
       */
       QColor m_captionInactiveForeColor;
       /**
       *
       */
       int m_captionFontLineSpacing;

    // methods
    public:
       /**
       * Consruction. Note: This class needn't to know about @ref QextMdiMainFrm .
       */
       QextMdiChildArea(QWidget *parent);
       /**
       * Destructor : THERE should be no child windows anymore...
       * Howewer it simply deletes all the child widgets :)
       */
       ~QextMdiChildArea();

       /**
       * Appends a new QextMdiChildFrm to this manager.
       * The child is shown,raised and gets focus if this window has it.
       */
       void manageChild(QextMdiChildFrm *lpC,bool bShow=TRUE,bool bCascade=TRUE);
       /**
       * Destroys a QextMdiChildFrm managed.

       * Note that if a client is attached to this child , it is deleted too!
       */
       void destroyChild(QextMdiChildFrm *lpC,bool bFocusTopChild = TRUE);
       /**
       * Destroys a QextMdiChildFrm managed.

       * Note that if a client is attached to this child , it is NOT deleted!
       */
       void destroyChildButNotItsView(QextMdiChildFrm *lpC,bool bFocusTopChild = TRUE);
       /**
       * Brings the child lpC to the top of the stack
       * The children is focused if bSetFocus is TRUE
       * otherwise is raised only
       */
       void setTopChild(QextMdiChildFrm *lpC,bool bSetFocus=FALSE);
       /**
       * Returns the topmost child (the active one) or 0 if there are no children.
       * Note that the topmost child may be also hidded , if ALL the windows are minimized.
       */
       inline QextMdiChildFrm * topChild(){ return m_pZ->last(); };
       /**
       * Returns the number of visible children
       */
       int getVisibleChildCount();
       /**
       * Calculates the cascade point for the given index. If index is -1
       * the cascade point is calculated for the window following the last window
       */
       QPoint getCascadePoint(int indexOfWindow = -1);
       /**
       * Sets the MDI childframe window caption font (no relayout)
       */
       void setMdiCaptionFont(const QFont &fnt);
       /**
       * Sets the foreground color of the active MDI childframe window caption (no relayout)
       */
       void setMdiCaptionActiveForeColor(const QColor &clr);
       /**
       * Sets the background color of the active MDI childframe window captions (no relayout)
       */
       void setMdiCaptionActiveBackColor(const QColor &clr);
       /**
       * Sets the foreground color of inactive MDI childframe window captions (no relayout)
       */
       void setMdiCaptionInactiveForeColor(const QColor &clr);
       /**
       * Sets the background color of inactive MDI childframe window captions (no relayout)
       */
       void setMdiCaptionInactiveBackColor(const QColor &clr);

    public slots:
       /**
       * Cascades the windows resizing it to the minimum size.
       */
       void cascadeWindows();
       /**
       * Casecades the windows resizing it to the maximum available size.
       */
       void cascadeMaximized();
       /**
       * Maximize all windows but only in vertical direction
       */
       void expandVertical();
       /**
       * Maximize all windows but only in horizontal direction
       */
       void expandHorizontal();
       /**
       * Foces focus to the topmost child
       * In case that it not gets focused automatically...
       * Btw : It should not happen.
       */
       void focusTopChild();
       /**
       * Tile Pragma
       */
       void tilePragma();
       /**
       * Tile Anodine
       */
       void tileAnodine();
       /**
       * Tile Vertically
       */
       void tileVertically();
       /**
       * Positioning of minimized child frames
       */
       void layoutMinimizedChildren();

    protected:
       /**
       * Internally used for the tile algorithm
       */
       void tileAllInternal(int maxWnds);
       /**
       * Automatically resizes a maximized MDI view and layouts the positions of minimized MDI views.
       */
       virtual void resizeEvent(QResizeEvent *);
       /**
       * Shows the 'Window' popup menu on right mouse button click
       */
       void mousePressEvent(QMouseEvent *e);
       /**
       * Internally used. Actions that are necessary when an MDI view gets minimized
       */
       void childMinimized(QextMdiChildFrm *lpC,bool bWasMaximized);

    signals:
       /**
       * Signalizes that there aren't maximized child frames any more
       */
       void noMaximizedChildFrmLeft(QextMdiChildFrm*);
       /**
       * Signalizes that the child frames are maximized now
       */
       void nowMaximized(bool);
       /**
       * Internally used.
       * Signalizes from QextMdiChildArea to QextMdiMainFrm
       * that the signal/slot connections of the system buttons in the menubar (only in Maximize mode)
       * must be updated to another MDI view because the focused MDI view has changed
       */
       void sysButtonConnectionsMustChange(QextMdiChildFrm*, QextMdiChildFrm*);
       /**
       * Internally used.
       * Signalizes from QextMdiChildArea to QextMdiMainFrm
       * that the 'Window' popup menu must be shown
       */
       void popupWindowMenu( QPoint);
       /**
       * Signalizes that the last attached (docked) MDI view has been closed.
       * Note: Detached MDI views can remain.
       */
       void lastChildFrmClosed();
    };

    #endif   // _QEXTMDICHILDAREA_H_

Generated by: falk on pc9 on Fri Nov 30 14:44:26 2001, using kdoc 2.0a53.