diff options
Diffstat (limited to 'kmdi/kmdichildfrm.h')
-rw-r--r-- | kmdi/kmdichildfrm.h | 446 |
1 files changed, 0 insertions, 446 deletions
diff --git a/kmdi/kmdichildfrm.h b/kmdi/kmdichildfrm.h deleted file mode 100644 index 0fe2cd2b2..000000000 --- a/kmdi/kmdichildfrm.h +++ /dev/null @@ -1,446 +0,0 @@ -//---------------------------------------------------------------------------- -// filename : kmdichildfrm.h -//---------------------------------------------------------------------------- -// Project : KDE 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 -// 2000-2003 maintained by the KDevelop project -// patches : */2000 Lars Beikirch (Lars.Beikirch@gmx.net) -// -// copyright : (C) 1999-2003 by Falk Brettschneider -// and -// Szymon Stefanek (stefanek@tin.it) -// email : falkbr@tdevelop.org (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 _KMDI_CHILD_FRM_H_ -#define _KMDI_CHILD_FRM_H_ - -#include <tqptrlist.h> -#include <tqpixmap.h> -#include <tqpushbutton.h> -#include <tqlabel.h> -#include <tqdatetime.h> -#include <tqlayout.h> - -#include <tqdict.h> - -#include "kmdichildfrmcaption.h" - -class KMdiChildArea; -class KMdiChildView; -class TQPopupMenu; -class TQToolButton; - -//============================================================================== -/** - * @short Internal class, only used on Win32. - * This class provides a label widget that can process mouse click events. - */ -class KMDI_EXPORT KMdiWin32IconButton : public TQLabel -{ - Q_OBJECT -public: - KMdiWin32IconButton( TQWidget* parent, const char* name = 0 ); - virtual void mousePressEvent( TQMouseEvent* ); - -signals: - void pressed(); -}; - -//============================================================================== -/* some special events, see kmdidefines.h -*/ -//------------------------------------------------------------------------------ -/** - * @short a TQCustomEvent for move - * This special event will be useful, to inform view about child frame event. - */ -class KMDI_EXPORT KMdiChildFrmMoveEvent : public TQCustomEvent -{ -public: - KMdiChildFrmMoveEvent( TQMoveEvent *e ) : TQCustomEvent( TQEvent::Type( TQEvent::User + int( KMdi::EV_Move ) ), e ) {} - -}; - -//------------------------------------------------------------------------------ -/** - * @short a TQCustomEvent for begin of dragging - * This special event will be useful, to inform view about child frame event. - */ -class KMDI_EXPORT KMdiChildFrmDragBeginEvent : public TQCustomEvent -{ -public: - KMdiChildFrmDragBeginEvent( TQMouseEvent *e ) : TQCustomEvent( TQEvent::Type( TQEvent::User + int( KMdi::EV_DragBegin ) ), e ) {} -}; - -//------------------------------------------------------------------------------ -/** - * @short a TQCustomEvent for end of dragging - * This special event will be useful, to inform view about child frame event. - */ -class KMDI_EXPORT KMdiChildFrmDragEndEvent : public TQCustomEvent -{ -public: - KMdiChildFrmDragEndEvent( TQMouseEvent *e ) : TQCustomEvent( TQEvent::Type( TQEvent::User + int( KMdi::EV_DragEnd ) ), e ) {} -}; - -//------------------------------------------------------------------------------ -/** - * @short a TQCustomEvent for begin of resizing - * This special event will be useful, to inform view about child frame event. - */ -class KMDI_EXPORT KMdiChildFrmResizeBeginEvent : public TQCustomEvent -{ -public: - KMdiChildFrmResizeBeginEvent( TQMouseEvent *e ) : TQCustomEvent( TQEvent::Type( TQEvent::User + int( KMdi::EV_ResizeBegin ) ), e ) {} -}; - -//------------------------------------------------------------------------------ -/** - * @short a TQCustomEvent for end of resizing - * This special event will be useful, to inform view about child frame event. - */ -class KMDI_EXPORT KMdiChildFrmResizeEndEvent : public TQCustomEvent -{ -public: - KMdiChildFrmResizeEndEvent( TQMouseEvent *e ) : TQCustomEvent( TQEvent::Type( TQEvent::User + int( KMdi::EV_ResizeEnd ) ), e ) {} -}; - - -class KMdiChildFrmPrivate; -//============================================================================== -/** - * @short Internal class. - * It's an MDI child frame widget. It contains a view widget and a frame caption. Usually you derive from its view. - */ -//------------------------------------------------------------------------------ -class KMDI_EXPORT KMdiChildFrm : public TQFrame -{ - friend class KMdiChildArea; - friend class KMdiChildFrmCaption; - - Q_OBJECT - - // attributes -public: - enum MdiWindowState { Normal, Maximized, Minimized }; - //positions same in h and cpp for fast order check - KMdiChildView* m_pClient; - -protected: - KMdiChildArea* m_pManager; - KMdiChildFrmCaption* m_pCaption; - KMdiWin32IconButton* m_pWinIcon; - TQToolButton* m_pUnixIcon; - TQToolButton* m_pMinimize; - TQToolButton* m_pMaximize; - TQToolButton* m_pClose; - TQToolButton* m_pUndock; - MdiWindowState m_state; - TQRect m_restoredRect; - int m_iResizeCorner; - int m_iLastCursorCorner; - bool m_bResizing; - bool m_bDragging; - TQPixmap* m_pIconButtonPixmap; - TQPixmap* m_pMinButtonPixmap; - TQPixmap* m_pMaxButtonPixmap; - TQPixmap* m_pRestoreButtonPixmap; - TQPixmap* m_pCloseButtonPixmap; - TQPixmap* m_pUndockButtonPixmap; - - /** - * Every child frame window has an temporary ID in the Window menu of the child area. - */ - int m_windowMenuID; - - /** - * Imitates a system menu for child frame windows - */ - TQPopupMenu* m_pSystemMenu; - - TQSize m_oldClientMinSize; - TQSize m_oldClientMaxSize; - TQLayout::ResizeMode m_oldLayoutResizeMode; - TQTime m_timeMeasure; - - // methods -public: - - /** - * Creates a new KMdiChildFrm class. - */ - KMdiChildFrm( KMdiChildArea *parent ); - - /** - * Destroys this KMdiChildFrm - * If a child is still here managed (no recreation was made) it is destroyed too. - */ - ~KMdiChildFrm(); - - /** - * Reparents the widget w to this KMdiChildFrm (if this is not already done) - * Installs an event filter to catch focus events. - * Resizes this mdi child in a way that the child fits perfectly in. - */ - void setClient( KMdiChildView *w, bool bAutomaticResize = false ); - - /** - * Reparents the client widget to 0 (desktop), moves with an offset from the original position - * Removes the event filter. - */ - void unsetClient( TQPoint positionOffset = TQPoint( 0, 0 ) ); - - /** - * Sets the window icon pointer. - */ - void setIcon( const TQPixmap &pxm ); - - /** - * Returns the child frame icon. - */ - TQPixmap* icon() const; - - /** - * Enables or disables the close button - */ - void enableClose( bool bEnable ); - - /** - * Sets the caption of this window - */ - void setCaption( const TQString& text ); - - /** - * Gets the caption of this mdi child. - */ - const TQString& caption() { return m_pCaption->m_szCaption; } - - /** - * Minimizes, Maximizes, or restores the window. - */ - void setState( MdiWindowState state, bool bAnimate = true ); - - /** - * Returns the current state of the window - */ - inline MdiWindowState state() const { return m_state; } - - /** - * Returns the inner client area of the parent of this (which is KMdiChildArea). - */ - TQRect mdiAreaContentsRect() const; - - /** - * Returns the geometry that will be restored by calling restore(). - */ - TQRect restoreGeometry() const; - - /** - * Sets the geometry that will be restored by calling restore(). - */ - void setRestoreGeometry( const TQRect& newRestGeo ); - - /** - * Forces updating the rects of the caption and so... - * It may be useful when setting the mdiCaptionFont of the MdiManager - */ - void updateRects() { resizeEvent( 0 ); } - - /** - * Returns the system menu. - */ - TQPopupMenu* systemMenu() const; - - /** - * Returns the caption bar height - */ - inline int captionHeight() const { return m_pCaption->height(); } - - /** - * sets new raise behavior and pixmaps of the buttons depending on the current decoration style - */ - void redecorateButtons(); - - /** - * returns the mouse state "In Drag" - */ - bool isInDrag() const { return m_bDragging; } - - /** - * returns the mouse state "In Resize" - */ - bool isInResize() const { return m_bResizing; } - - /** - * Internally called from the signal focusInEventOccurs. - * It raises the MDI childframe to the top of all other MDI child frames and sets the focus on it. - */ - void raiseAndActivate(); - - /** - * Sets the minimum size of the widget to w by h pixels. - * It extends it's base clase method in a way that the minimum size of - * the child area will be set additionally if the view is maximized. - */ - virtual void setMinimumSize ( int minw, int minh ); - -public slots: - - void slot_resizeViaSystemMenu(); - -protected: - - /** - * Reimplemented from the base class. - * Resizes the captionbar, relayouts the position of the system buttons, - * and calls resize for its embedded KMdiChildView with the proper size - */ - virtual void resizeEvent( TQResizeEvent * ); - - /** - * Reimplemented from the base class. - * Detects if the mouse is on the edge of window and what resize cursor must be set. - * Calls KMdiChildFrm::resizeWindow if it is in m_bResizing. - */ - virtual void mouseMoveEvent( TQMouseEvent *e ); - - /** - * Reimplemented from the base class. - * Colours the caption, raises the childfrm widget and - * turns to resize mode if it is on the edge (resize-sensitive area) - */ - virtual void mousePressEvent( TQMouseEvent *e ); - - /** - * Reimplemented from the base class. - * Sets a normal cursor and leaves the resize mode. - */ - virtual void mouseReleaseEvent( TQMouseEvent * ); - - /** - * Reimplemented from the base class. - * give its child view the chance to notify a childframe move... that's why it sends - * a KMdiChildMovedEvent to the embedded KMdiChildView . - */ - virtual void moveEvent( TQMoveEvent* me ); - - /** - * Reimplemented from the base class. If not in resize mode, it sets the mouse cursor to normal appearance. - */ - virtual void leaveEvent( TQEvent * ); - - /** - * Reimplemented from the base class. - * In addition, the following are caught - * -the client's mousebutton press events which raises and activates the childframe - * -the client's resize event which resizes this widget as well - */ - virtual bool eventFilter( TQObject*, TQEvent* ); - - /** - * Calculates the new geometry from the new mouse position given as parameters - * and calls KMdiChildFrm::setGeometry - */ - void resizeWindow( int resizeCorner, int x, int y ); - - /** - * Override the cursor appearance depending on the widget corner given as parameter - */ - void setResizeCursor( int resizeCorner ); - - /** - * Changes from the resize cursor to the normal (previous) cursor - */ - void unsetResizeCursor(); - - /** - * That means to show a mini window showing the childframe's caption bar, only. - * It cannot be resized. - */ - virtual void switchToMinimizeLayout(); - - /** - * Does the actual resize. Called from various places but from resizeEvent in general. - */ - void doResize(); - - /** - * Does the actual resize, like doResize() but skips resize of the client if \a captionOnly is true. - * @todo: merge with doResize() - */ - void doResize( bool captionOnly ); - -protected slots: - - /** - * Handles a click on the Maximize button - */ - void maximizePressed(); - - /** - * Handles a click on the Restore (Normalize) button - */ - void restorePressed(); - - /** - * Handles a click on the Minimize button. - */ - void minimizePressed(); - - /** - * Handles a click on the Close button. - */ - void closePressed(); - - /** - * Handles a click on the Undock (Detach) button - */ - void undockPressed(); - - /** - * Shows a system menu for child frame windows. - */ - void showSystemMenu(); - -protected: - - /** - * Restore the focus policies for _all_ widgets in the view using the list given as parameter. - * Install the event filter for all direct child widgets of this. (See KMdiChildFrm::eventFilter) - */ - void linkChildren( TQDict<TQ_FocusPolicy>* pFocPolDict ); - - /** - * Backups all focus policies of _all_ child widgets in the MDI childview since they get lost during a reparent. - * Remove all event filters for all direct child widgets of this. (See KMdiChildFrm::eventFilter) - */ - TQDict<TQ_FocusPolicy>* unlinkChildren(); - - /** - * Calculates the corner id for the resize cursor. The return value can be tested for: - * KMDI_RESIZE_LEFT, KMDI_RESIZE_RIGHT, KMDI_RESIZE_TOP, KMDI_RESIZE_BOTTOM - * or an OR'd variant of them for the corners. - */ - int getResizeCorner( int ax, int ay ); - -private: - KMdiChildFrmPrivate *d; -}; - -#endif //_KMDICHILDFRM_H_ - -// kate: space-indent off; replace-tabs off; tab-width 4; indent-mode csands; |