Back to index

kdeartwork  4.3.2
MaximiseButton.cpp
Go to the documentation of this file.
00001 /*
00002   RISC OS KWin client
00003 
00004   Copyright 2000
00005     Rik Hemsley <rik@kde.org>
00006 
00007   This program is free software; you can redistribute it and/or
00008   modify it under the terms of the GNU General Public
00009   License as published by the Free Software Foundation; either
00010   version 2 of the License, or (at your option) any later version.
00011 
00012   This program is distributed in the hope that it will be useful,
00013   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015   General Public License for more details.
00016 
00017   You should have received a copy of the GNU General Public License
00018   along with this program; see the file COPYING.  If not, write to
00019   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00020   Boston, MA 02110-1301, USA.
00021 */
00022 
00023 #include "MaximiseButton.h"
00024 
00025 #include <qtooltip.h>
00026 //Added by qt3to4:
00027 #include <QPixmap>
00028 #include <QMouseEvent>
00029 
00030 namespace RiscOS
00031 {
00032 
00033 /* XPM */
00034 static const char * const maximise_xpm[] = {
00035 "12 12 3 1",
00036 "      c None",
00037 ".     c #000000",
00038 "+     c #FFFFFF",
00039 "            ",
00040 "  ........  ",
00041 " .++++++++. ",
00042 " .++++++++. ",
00043 " .++++++++. ",
00044 " .++++++++. ",
00045 " .++++++++. ",
00046 " .++++++++. ",
00047 " .++++++++. ",
00048 " .++++++++. ",
00049 "  ........  ",
00050 "            "};
00051 
00052 /* XPM */
00053 static const char * const unmaximise_xpm[] = {
00054 "12 12 3 1",
00055 "      c None",
00056 ".     c #000000",
00057 "+     c #FFFFFF",
00058 "            ",
00059 "            ",
00060 "   ......   ",
00061 "  .++++++.  ",
00062 "  .++++++.  ",
00063 "  .++++++.  ",
00064 "  .++++++.  ",
00065 "  .++++++.  ",
00066 "  .++++++.  ",
00067 "   ......   ",
00068 "            ",
00069 "            "};
00070 
00071 MaximiseButton::MaximiseButton(QWidget * parent)
00072   : Button(parent, i18n("Maximize"),
00073            (Qt::LeftButton|Qt::MidButton|Qt::RightButton)),
00074     on_(false)
00075 {
00076    setPixmap(QPixmap((const char **)maximise_xpm));
00077 }
00078 
00079 void MaximiseButton::setOn(bool on)
00080 {
00081    on_ = on;
00082    setPixmap(on_ ? QPixmap((const char **)unmaximise_xpm)
00083                  : QPixmap((const char **)maximise_xpm));
00084    repaint();
00085    QToolTip::remove(this);
00086    this->setToolTip( on_ ? i18n("Restore") : i18n("Maximize"));
00087 }
00088 
00089 void MaximiseButton::mouseReleaseEvent(QMouseEvent *e)
00090 {
00091    Button::mouseReleaseEvent(e);
00092 
00093    if (!rect().contains(e->pos()))
00094       return;
00095    emit(maximizeClicked(lastButton_));
00096 }
00097 
00098 } // End namespace
00099 
00100 // vim:ts=2:sw=2:tw=78
00101 #include "MaximiseButton.moc"