summaryrefslogtreecommitdiffstats
path: root/twin-styles/riscos/Manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'twin-styles/riscos/Manager.h')
-rw-r--r--twin-styles/riscos/Manager.h125
1 files changed, 125 insertions, 0 deletions
diff --git a/twin-styles/riscos/Manager.h b/twin-styles/riscos/Manager.h
new file mode 100644
index 00000000..5668a7fc
--- /dev/null
+++ b/twin-styles/riscos/Manager.h
@@ -0,0 +1,125 @@
+/*
+ RISC OS KWin client
+
+ Copyright 2000
+ Rik Hemsley <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., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA.
+*/
+
+#ifndef RISC_OS_MANAGER_H
+#define RISC_OS_MANAGER_H
+
+#include <tqdict.h>
+#include <kdecoration.h>
+#include <kdecorationfactory.h>
+
+class TQSpacerItem;
+class TQVBoxLayout;
+class TQBoxLayout;
+
+namespace RiscOS
+{
+
+class LowerButton;
+class CloseButton;
+class IconifyButton;
+class MaximiseButton;
+class StickyButton;
+class HelpButton;
+class Button;
+
+class Manager : public KDecoration
+{
+ Q_OBJECT
+ TQ_OBJECT
+
+ public:
+
+ Manager(KDecorationBridge*, KDecorationFactory*);
+ ~Manager();
+ void init();
+ bool eventFilter(TQObject*, TQEvent*);
+ void reset(unsigned long changed);
+ void borders(int&, int&, int&, int&) const;
+ void resize(const TQSize&);
+ TQSize tqminimumSize() const;
+ void activeChange();
+ void captionChange();
+ void iconChange();
+ void maximizeChange();
+ void desktopChange();
+ void shadeChange();
+
+ signals:
+
+ void maximizeChanged(bool);
+ void stickyChanged(bool);
+ void activeChanged(bool);
+
+ public slots:
+
+ void slotAbove();
+ void slotLower();
+ void slotMaximizeClicked(ButtonState);
+ void slotToggleSticky();
+
+ protected:
+
+ KDecoration::Position mousePosition(const TQPoint &) const;
+ void paletteChange(const TQPalette &);
+ void activeChange(bool);
+ void stickyChange(bool);
+ void paintEvent(TQPaintEvent *);
+ void resizeEvent(TQResizeEvent *);
+ void mouseDoubleClickEvent(TQMouseEvent *);
+ void wheelEvent(TQWheelEvent *e);
+ bool animateMinimize(bool);
+ void updateButtonVisibility();
+ void updateTitleBuffer();
+
+ void createTitle();
+ void resetLayout();
+
+ private:
+
+ TQVBoxLayout *topLayout_;
+ TQBoxLayout *titleLayout_;
+ TQSpacerItem *titleSpacer_;
+
+ TQPixmap titleBuf_;
+ TQPtrList<Button> leftButtonList_;
+ TQPtrList<Button> rightButtonList_;
+};
+
+class Factory : public TQObject, public KDecorationFactory
+{
+ Q_OBJECT
+ TQ_OBJECT
+
+ public:
+ Factory();
+ ~Factory();
+ virtual bool reset(unsigned long changed);
+ virtual KDecoration* createDecoration(KDecorationBridge*);
+ virtual bool supports( Ability ability );
+};
+
+} // End namespace
+
+#endif
+
+// vim:ts=2:sw=2:tw=78