summaryrefslogtreecommitdiffstats
path: root/kmdi/kmdichildfrmcaption.h
diff options
context:
space:
mode:
Diffstat (limited to 'kmdi/kmdichildfrmcaption.h')
-rw-r--r--kmdi/kmdichildfrmcaption.h145
1 files changed, 145 insertions, 0 deletions
diff --git a/kmdi/kmdichildfrmcaption.h b/kmdi/kmdichildfrmcaption.h
new file mode 100644
index 000000000..6100acc02
--- /dev/null
+++ b/kmdi/kmdichildfrmcaption.h
@@ -0,0 +1,145 @@
+//----------------------------------------------------------------------------
+// filename : kmdichildfrmcaption.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
+//
+// copyright : (C) 1999-2003 by Falk Brettschneider
+// and
+// Szymon Stefanek (stefanek@tin.it)
+// email : falkbr@kdevelop.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_CAPTION_H_
+#define _KMDI_CHILD_FRM_CAPTION_H_
+
+#include <qwidget.h>
+
+#include "kmdidefines.h"
+
+class KMdiChildFrm;
+
+
+class KMdiChildFrmCaptionPrivate;
+
+/**
+* @short Internal class.
+*
+* It's the caption bar of a child frame widget.
+*/
+class KMDI_EXPORT KMdiChildFrmCaption : public QWidget
+{
+ Q_OBJECT
+public:
+ /**
+ * Constructor
+ */
+ KMdiChildFrmCaption( KMdiChildFrm *parent );
+
+ /**
+ * Destructor
+ */
+ ~KMdiChildFrmCaption();
+
+ /**
+ * Repaint the caption bar in active background colors
+ */
+ void setActive( bool bActive );
+
+ /**
+ * Repaint with a new caption bar title
+ */
+ void setCaption( const QString& text );
+
+ /**
+ * Returns the caption bar height depending on the used font
+ */
+ int heightHint();
+
+public slots:
+ /**
+ * Grabs the mouse, a move cursor, sets a move indicator variable to true and keeps the global mouse position in mind
+ */
+ void slot_moveViaSystemMenu();
+
+protected:
+ /**
+ * Draws the caption bar and its title using the settings
+ */
+ virtual void paintEvent( QPaintEvent *e );
+
+ /**
+ * The same as KMdiChildFrmCaption::slot_moveViaSystemMenu
+ */
+ virtual void mousePressEvent( QMouseEvent * );
+
+ /**
+ * Calls maximizePressed of the parent widget ( KMdiChildFrm )
+ */
+ virtual void mouseDoubleClickEvent( QMouseEvent * );
+
+ /**
+ * Restore the normal mouse cursor, set the state variable back to 'not moving'
+ */
+ virtual void mouseReleaseEvent( QMouseEvent * );
+
+ /**
+ * Checks if out of move range of the KMdiChildArea and calls KMdiChildFrm::move
+ */
+ virtual void mouseMoveEvent( QMouseEvent *e );
+
+ /**
+ * Computes a new abbreviated string from a given string depending on a given maximum width
+ * @todo Replace with a call to a KStringHandler function instead of rolling our own
+ */
+ QString abbreviateText( QString origStr, int maxWidth );
+
+ // attributes
+public:
+ /**
+ * the title string shown in the caption bar
+ */
+ QString m_szCaption;
+
+protected: // Protected attributes
+ /**
+ * parent widget
+ */
+ KMdiChildFrm *m_pParent;
+
+ /**
+ * state variable indicating whether activated or not activated
+ */
+ bool m_bActive;
+
+ /**
+ * the position offset related to its parent widget (internally used for translating mouse move positions
+ */
+ QPoint m_offset;
+
+ /**
+ * True if the child knows that it is currently being dragged.
+ */
+ bool m_bChildInDrag;
+
+private:
+ KMdiChildFrmCaptionPrivate *d;
+};
+
+#endif //_KMDICAPTION_H_
+
+// kate: space-indent off; replace-tabs off; indent-mode csands; tab-width 4;