summaryrefslogtreecommitdiffstats
path: root/arts/gui/kde/tdepopupbox_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'arts/gui/kde/tdepopupbox_private.h')
-rw-r--r--arts/gui/kde/tdepopupbox_private.h222
1 files changed, 222 insertions, 0 deletions
diff --git a/arts/gui/kde/tdepopupbox_private.h b/arts/gui/kde/tdepopupbox_private.h
new file mode 100644
index 00000000..9750625b
--- /dev/null
+++ b/arts/gui/kde/tdepopupbox_private.h
@@ -0,0 +1,222 @@
+ /*
+
+ Copyright ( C ) 2002, 2003 Arnold Krille <arnold@arnoldarts.de>
+
+ This library 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.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public License
+ along with this library; see the file COPYING.LIB. If not, write to
+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+
+ */
+
+#ifndef KPOPUPBOX_PRIVATE_H
+#define KPOPUPBOX_PRIVATE_H
+
+
+class HandleDrag;
+class ShowButton;
+class OwnButton;
+class KArtsWidget;
+class OwnWidget;
+class TQBoxLayout;
+
+#include <tqframe.h>
+
+class TDEPopupBox_widget : public TQFrame
+{
+ Q_OBJECT
+
+public:
+ TDEPopupBox_widget( TQWidget* =0, const char* =0);
+ ~TDEPopupBox_widget();
+
+ Arts::Direction direction();
+ void direction( Arts::Direction );
+
+ void setWidget( Arts::Widget widget );
+ Arts::Widget getWidget();
+
+ void name( std::string );
+private slots:
+ void hide( bool );
+ void own( bool );
+private:
+ TQBoxLayout *_layout;
+
+ TQFrame *_titlebar;
+ TQBoxLayout *_titlebarlayout;
+ HandleDrag *_drag;
+ ShowButton *_showbutton;
+ OwnButton *_ownbutton;
+
+ OwnWidget *_artswidget;
+};
+
+// See kpopupbox_impl.h - The eventmapper isn't needed at present, but perhaps in the future...
+
+/*class TDEPopupBoxEventMapper : public TQObject {
+ Q_OBJECT
+
+public:
+ TDEPopupBoxEventMapper( TDEPopupBox_widget *widget, Arts::TDEPopupBox_impl *impl )
+ : TQObject( widget,"" ), _widget( widget ), _impl( impl )
+ {}
+private:
+ TDEPopupBox_widget *_widget;
+ Arts::TDEPopupBox_impl *_impl;
+};*/
+
+#include <tqpainter.h>
+#include <tqstyle.h>
+
+class HandleDrag : public TQWidget {
+ Q_OBJECT
+
+public:
+ HandleDrag( TQWidget *parent, const char* name=0 ) : TQWidget( parent,name ) {}
+ void paintEvent( TQPaintEvent * ) {
+ TQPainter p( this );
+ TQStyle::SFlags flags = TQStyle::Style_Default;
+ if( width() < height() ) flags |= TQStyle::Style_Horizontal;
+ style().tqdrawPrimitive( TQStyle::PE_DockWindowHandle, &p, rect(), colorGroup(), flags );
+ }
+signals:
+ void clicked();
+protected:
+ virtual void mouseDoubleClickEvent( TQMouseEvent * ) {
+ emit clicked();
+ }
+};
+
+static const char* const close_xpm[] = { "5 5 2 1", "# c black", ". c None", "#...#", ".#.#.", "..#..", ".#.#.", "#...#"};
+static const char* const up_xpm[] = { "5 5 2 1", "# c black", ". c None", ".....", "..#..", ".###.", "#####", "....."};
+static const char* const down_xpm[] = { "5 5 2 1", "# c black", ". c None", ".....", "#####", ".###.", "..#..", "....."};
+static const char* const left_xpm[] = { "5 5 2 1", "# c black", ". c None", "...#.", "..##.", ".###.", "..##.", "...#."};
+static const char* const right_xpm[] = { "5 5 2 1", "# c black", ". c None", ".#...", ".##..", ".###.", ".##..", ".#..."};
+static const char* const inside_xpm[] = { "5 5 2 1", "# c black", ". c None", "#####", "#...#", "#...#", "#...#", "#####"};
+static const char* const own_xpm[] = { "5 5 2 1", "# c black", ". c None", "###..", "#.###", "###.#", ".#..#", ".####"};
+
+#include <tqpushbutton.h>
+#include <tqlayout.h>
+
+class ShowButton : public TQPushButton {
+ Q_OBJECT
+
+private:
+ TQBoxLayout::Direction _dir;
+ TQPixmap _pmleft, _pmright, _pmup, _pmdown;
+public:
+ ShowButton( TQWidget *parent, const char* name=0 ) : TQPushButton( parent,name ), _dir( TQBoxLayout::LeftToRight )
+ {
+ connect( this, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( owntoggle( bool ) ) );
+ setToggleButton( true );
+ _pmleft = TQPixmap( const_cast<const char**>( left_xpm ) );
+ _pmright = TQPixmap( const_cast<const char**>( right_xpm ) );
+ _pmup = TQPixmap( const_cast<const char**>( up_xpm ) );
+ _pmdown = TQPixmap( const_cast<const char**>( down_xpm ) );
+ setPixmap( _pmright );
+ }
+
+ void direction( TQBoxLayout::Direction n ) { _dir=n; }
+public slots:
+ void owntoggle( bool b ) {
+ switch( _dir )
+ {
+ case TQBoxLayout::BottomToTop:
+ if( b ) setPixmap( _pmdown );
+ else setPixmap( _pmup );
+ break;
+ case TQBoxLayout::TopToBottom:
+ if( b ) setPixmap( _pmup );
+ else setPixmap( _pmdown );
+ break;
+ case TQBoxLayout::LeftToRight:
+ if( b ) setPixmap( _pmright );
+ else setPixmap( _pmleft );
+ break;
+ case TQBoxLayout::RightToLeft:
+ if( b ) setPixmap( _pmleft );
+ else setPixmap( _pmright );
+ break;
+ }
+ }
+public:
+ TQSize minimumSizeHint() const {
+ int wh = style().pixelMetric( TQStyle::PM_DockWindowHandleExtent, this );
+ return TQSize( wh, wh );
+ }
+ TQSizePolicy sizePolicy() const { return TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ); }
+ TQSize minimumSize() const { return minimumSizeHint(); }
+ TQSize sizeHint() const { return minimumSize(); }
+
+ void drawButton( TQPainter * p )
+ {
+ p->fillRect( 0,0, width(), height(), TQBrush( colorGroup().brush( TQColorGroup::Background ) ) );
+ p->drawPixmap( ( width() - pixmap()->width() ) / 2, ( height() - pixmap()->height() ) / 2, *pixmap() );
+ }
+};
+
+class OwnButton : public TQPushButton {
+ Q_OBJECT
+
+private:
+ TQPixmap _pmown, _pminside;
+public:
+ OwnButton( TQWidget *parent, const char* name=0 ) : TQPushButton( parent,name )
+ {
+ connect( this, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( toggle( bool ) ) );
+ setToggleButton( true );
+ _pmown = TQPixmap( const_cast<const char**>( own_xpm ) );
+ _pminside = TQPixmap( const_cast<const char**>( inside_xpm ) );
+ setPixmap( _pmown );
+ }
+
+public slots:
+ void toggle( bool b ) {
+ if( b ) setPixmap( _pminside );
+ else setPixmap( _pmown );
+ }
+public:
+ TQSize minimumSizeHint() const {
+ int wh = style().pixelMetric( TQStyle::PM_DockWindowHandleExtent, this );
+ return TQSize( wh, wh );
+ }
+ TQSizePolicy sizePolicy() const { return TQSizePolicy( TQSizePolicy::Fixed, TQSizePolicy::Fixed ); }
+ TQSize minimumSize() const { return minimumSizeHint(); }
+ TQSize sizeHint() const { return minimumSize(); }
+
+ void drawButton( TQPainter * p )
+ {
+ p->fillRect( 0,0, width(), height(), TQBrush( colorGroup().brush( TQColorGroup::Background ) ) );
+ p->drawPixmap( ( width() - pixmap()->width() ) / 2, ( height() - pixmap()->height() ) / 2, *pixmap() );
+ }
+};
+
+#include <kartswidget.h>
+
+class OwnWidget : public KArtsWidget
+{
+ Q_OBJECT
+
+ ShowButton *_b;
+public:
+ OwnWidget( ShowButton* b, TQWidget* p, const char* n=0, WFlags f=0 ) : KArtsWidget( p,n,f ) { _b = b; }
+ ~OwnWidget() {}
+public slots:
+ void closeEvent( TQCloseEvent * ) { _b->toggle(); }
+};
+
+#endif
+
+// vim: sw=4 ts=4
+