2f90225543
Export client.h, workspace.h and options.h so that people can write plugins. svn path=/trunk/kdebase/kwin/; revision=83707
113 lines
2.4 KiB
C++
113 lines
2.4 KiB
C++
/*****************************************************************
|
|
kwin - the KDE window manager
|
|
|
|
Copyright (C) 1999, 2000 Matthias Ettrich <ettrich@kde.org>
|
|
******************************************************************/
|
|
#ifndef STDCLIENT_H
|
|
#define STDCLIENT_H
|
|
#include "../../client.h"
|
|
#include <qtoolbutton.h>
|
|
class QLabel;
|
|
class QSpacerItem;
|
|
|
|
namespace KWinInternal {
|
|
|
|
class StdClient : public KWinInternal::Client
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
StdClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 );
|
|
~StdClient();
|
|
protected:
|
|
void resizeEvent( QResizeEvent* );
|
|
void paintEvent( QPaintEvent* );
|
|
|
|
void mouseDoubleClickEvent( QMouseEvent * );
|
|
void init();
|
|
void captionChange( const QString& name );
|
|
void iconChange();
|
|
void maximizeChange( bool );
|
|
void stickyChange( bool );
|
|
void activeChange( bool );
|
|
|
|
private slots:
|
|
void menuButtonPressed();
|
|
void maxButtonClicked( int );
|
|
void slotReset();
|
|
|
|
private:
|
|
QToolButton* button[7];
|
|
QSpacerItem* titlebar;
|
|
};
|
|
|
|
class StdToolClient : public Client
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
StdToolClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 );
|
|
~StdToolClient();
|
|
protected:
|
|
void resizeEvent( QResizeEvent* );
|
|
void paintEvent( QPaintEvent* );
|
|
|
|
void mouseDoubleClickEvent( QMouseEvent * );
|
|
void init();
|
|
void captionChange( const QString& name );
|
|
void activeChange( bool );
|
|
|
|
private slots:
|
|
void slotReset();
|
|
private:
|
|
QToolButton* closeBtn;
|
|
QSpacerItem* titlebar;
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
Like QToolButton, but provides a clicked(int) signals that
|
|
has the last pressed mouse button as argument
|
|
*/
|
|
class ThreeButtonButton: public QToolButton
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
ThreeButtonButton ( QWidget *parent = 0, const char* name = 0)
|
|
: QToolButton( parent, name )
|
|
{
|
|
connect( this, SIGNAL( clicked() ), this, SLOT( handleClicked() ) );
|
|
}
|
|
~ThreeButtonButton ()
|
|
{}
|
|
|
|
signals:
|
|
void clicked( int );
|
|
|
|
protected:
|
|
void mousePressEvent( QMouseEvent* e )
|
|
{
|
|
last_button = e->button();
|
|
QMouseEvent me ( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() );
|
|
QToolButton::mousePressEvent( &me );
|
|
}
|
|
|
|
void mouseReleaseEvent( QMouseEvent* e )
|
|
{
|
|
QMouseEvent me ( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() );
|
|
QToolButton::mouseReleaseEvent( &me );
|
|
}
|
|
|
|
private slots:
|
|
void handleClicked()
|
|
{
|
|
emit clicked( last_button );
|
|
}
|
|
|
|
private:
|
|
int last_button;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
#endif
|