kwin/clients/laptop/laptopclient.h
Daniel M. Duley 420b046646 The old default is now moved to the Laptop style, since they are so similiar
but has so many more bugfixes. So if you liked the old default here it is ;-)

svn path=/trunk/kdebase/kwin/; revision=68367
2000-10-20 01:14:46 +00:00

86 lines
2.1 KiB
C++

#ifndef __KDECLIENT_H
#define __KDECLIENT_H
#include <qbutton.h>
#include <qbitmap.h>
#include <kpixmap.h>
#include "../../client.h"
class QLabel;
class QSpacerItem;
class QHBoxLayout;
// get rid of autohide :P
class LaptopClientButton : public QButton
{
public:
LaptopClientButton(int w, int h, Client *parent=0, const char *name=0,
const unsigned char *bitmap=NULL);
void setBitmap(const unsigned char *bitmap);
void reset();
QSize sizeHint() const;
int last_button;
protected:
void mousePressEvent( QMouseEvent* e )
{
last_button = e->button();
QMouseEvent me ( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() );
QButton::mousePressEvent( &me );
}
void mouseReleaseEvent( QMouseEvent* e )
{
last_button = e->button();
QMouseEvent me ( e->type(), e->pos(), e->globalPos(), LeftButton, e->state() );
QButton::mouseReleaseEvent( &me );
}
virtual void drawButton(QPainter *p);
void drawButtonLabel(QPainter *){;}
QSize defaultSize;
QBitmap deco;
Client *client;
};
class LaptopClient : public Client
{
Q_OBJECT
public:
enum Buttons{BtnHelp=0, BtnSticky, BtnMax, BtnIconify, BtnClose};
LaptopClient( Workspace *ws, WId w, QWidget *parent=0, const char *name=0 );
~LaptopClient(){;}
protected:
void resizeEvent( QResizeEvent* );
void paintEvent( QPaintEvent* );
void showEvent( QShowEvent* );
void windowWrapperShowEvent( QShowEvent* );
void mouseDoubleClickEvent( QMouseEvent * );
void init();
void captionChange( const QString& name );
void stickyChange(bool on);
void maximizeChange(bool m);
void doShape();
void activeChange(bool);
void calcHiddenButtons();
void updateActiveBuffer();
MousePosition mousePosition(const QPoint &) const;
protected slots:
void slotReset();
void slotMaximize();
private:
LaptopClientButton* button[5];
int lastButtonWidth;
QSpacerItem* titlebar;
bool hiddenItems;
QHBoxLayout *hb;
KPixmap activeBuffer;
bool bufferDirty;
int lastBufferWidth;
};
#endif