/*
  'Web' kwin client

  Copyright (C) 2001 Rik Hemsley (rikkus) <rik@kde.org>

  This program is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public
  License as published by the Free Software Foundation; either
  version 2 of the License, or (at your option) any later version.

  This program 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
  General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program; see the file COPYING.  If not, write to
  the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  Boston, MA 02111-1307, USA.
*/

#ifndef KWIN_WEB_BUTTON_H
#define KWIN_WEB_BUTTON_H

#include <qwidget.h>
#include <qbitmap.h>
#include <klocale.h>
#include "../../kwinbutton.h"

namespace KWinInternal
{
  class WebButton : public KWinInternal::KWinWidgetButton
  {
    Q_OBJECT

    public:

      enum Position
      {
        Left, Mid, Right
      };

      WebButton(QWidget * parent, const QString& tip);

      virtual ~WebButton();

      virtual QSize sizeHint() const;
      virtual QSize minimumSizeHint() const;

      void setPosition(Position);

      void setShape(bool);

    protected:

      virtual void clickEvent(int button) = 0;

      void setBitmap(const QBitmap &);

      void mousePressEvent(QMouseEvent *);
      void mouseReleaseEvent(QMouseEvent *);
      void enterEvent(QEvent *);
      void leaveEvent(QEvent *);
      void paintEvent(QPaintEvent *);
      void resizeEvent(QResizeEvent *);

    private:

      QBitmap bitmap_;

      bool mouseOver_;
      bool mouseDown_;

      Position position_;

      bool shape_;
  };
}

#endif

// vim:ts=2:sw=2:tw=78:set et:
