summaryrefslogtreecommitdiffstats
path: root/lib/kofficeui/ttdetoolbarbutton.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kofficeui/ttdetoolbarbutton.h')
-rw-r--r--lib/kofficeui/ttdetoolbarbutton.h228
1 files changed, 228 insertions, 0 deletions
diff --git a/lib/kofficeui/ttdetoolbarbutton.h b/lib/kofficeui/ttdetoolbarbutton.h
new file mode 100644
index 00000000..14d3b285
--- /dev/null
+++ b/lib/kofficeui/ttdetoolbarbutton.h
@@ -0,0 +1,228 @@
+/*
+ * Kivio - Visual Modelling and Flowcharting
+ * Copyright (C) 2000 theKompany.com
+ *
+ * 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; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+#ifndef TKTOOLBARBUTTON_H
+#define TKTOOLBARBUTTON_H
+
+#include <tkaction.h>
+
+#include <tqpixmap.h>
+#include <tqtoolbutton.h>
+#include <kglobal.h>
+
+class TDEToolBar;
+class TDEInstance;
+class TQPopupMenu;
+class TQPainter;
+
+class TTDEToolBarButton : public TQToolButton
+{ Q_OBJECT
+
+public:
+ TTDEToolBarButton(const TQString& icon, const TQString& txt,
+ TQWidget* parent = 0, const char *name=0L,
+ TDEInstance *_instance = TDEGlobal::instance());
+
+ TTDEToolBarButton(const TQPixmap&, const TQString&, TQWidget* parent=0, const char* name=0);
+ ~TTDEToolBarButton();
+
+ void setIconMode(TK::IconMode);
+ void setRaised(bool);
+ void setAutoRaised(bool);
+
+ /**
+ * Enable/Disable this button
+ *
+ * @param enable Defaults to true
+ */
+ void setEnabled(bool enable = true);
+
+ /**
+ * Set the pixmap directly for this button. This pixmap should be
+ * the active one... the dimmed and disabled pixmaps are constructed
+ * based on this one. However, don't use this function unless you
+ * are positive that you don't want to use @ref setIcon.
+ *
+ * @param pixmap The active pixmap
+ */
+ virtual void setPixmap(const TQPixmap &pixmap);
+
+ /**
+ * Set the pixmap directly for this button. This pixmap should be
+ * the active one.. however, the disabled and default pixmaps will
+ * only be constructed if @ref #generate is true. In any event,
+ * don't use this function unless you are positive that you don't
+ * want to use @ref setIcon.
+ *
+ * @param pixmap The active pixmap
+ * @param generate If true, then the other pixmaps will be
+ * automatically generated using configurable effects
+ */
+ virtual void setPixmap(const TQPixmap &pixmap, bool generate);
+
+ /**
+ * Force the button to use this pixmap as the default one rather
+ * then generating it using effects.
+ *
+ * @param pixmap The pixmap to use as the default (normal) one
+ */
+ virtual void setDefaultPixmap(const TQPixmap& pixmap);
+
+ /**
+ * Force the button to use this pixmap when disabled one rather then
+ * generating it using effects.
+ *
+ * @param pixmap The pixmap to use when disabled
+ */
+ virtual void setDisabledPixmap(const TQPixmap& pixmap);
+
+ /**
+ * Set the text for this button. The text will be either used as a
+ * tooltip (IconOnly) or will be along side the icon
+ *
+ * @param text The button (or tooltip) text
+ */
+ virtual void setText(const TQString &text);
+ TQString text();
+
+ /**
+ * Set the icon for this button. This icon should be the active
+ * one... the dimmed and disabled icons are constructed based on
+ * this one. The actual pixmap will be loaded internally. This
+ * function is preferred over @ref setPixmap
+ *
+ * @param icon The name of the active pixmap
+ */
+ virtual void setIcon(const TQString &icon);
+
+ /**
+ * Force the button to use this icon as the default one rather
+ * then generating it using effects.
+ *
+ * @param icon The icon to use as the default (normal) one
+ */
+ virtual void setDefaultIcon(const TQString& icon);
+
+ /**
+ * Force the button to use this icon when disabled one rather then
+ * generating it using effects.
+ *
+ * @param icon The icon to use when disabled
+ */
+ virtual void setDisabledIcon(const TQString& icon);
+
+ /**
+ * Turn this button on or off
+ *
+ * @param flag true or false
+ */
+ void on(bool flag = true);
+
+ /**
+ * Toggle this button
+ */
+ void toggle();
+
+ /**
+ * Turn this button into a toggle button or disable the toggle
+ * aspects of it. This does not toggle the button itself. Use @ref
+ * toggle for that.
+ *
+ * @param toggle true or false
+ */
+ void setToggle(bool toggle = true);
+
+ /**
+ * Return a pointer to this button's popup menu (if it exists)
+ */
+ TQPopupMenu *popup();
+
+ /**
+ * Give this button a popup menu. There will not be a delay when
+ * you press the button. Use @ref setDelayedPopup if you want that
+ * behavior
+ *
+ * @param p The new popup menu
+ */
+ void setPopup (TQPopupMenu *p);
+
+ /**
+ * Gives this button a delayed popup menu.
+ *
+ * This function allows you to add a delayed popup menu to the button.
+ * The popup menu is then only displayed when the button is pressed and
+ * held down for about half a second. You can also make the poup-menu
+ * "sticky", i.e. visible until a selection is made or the mouse is
+ * clikced elsewhere, by simply setting the second argument to true.
+ * This "sticky" button feature allows you to make a selection without
+ * having to press and hold down the mouse while making a selection.
+ *
+ * @param p the new popup menu
+ * @param toggle if true, makes the button "sticky" (toggled)
+ */
+ void setDelayedPopup(TQPopupMenu *p, bool toggle = false);
+
+ TQPixmap getActivePixmap() const;
+
+ virtual TQSize sizeHint() const;
+ virtual TQSize minimumSizeHint() const;
+
+signals:
+ void buttonClicked();
+ void buttonPressed();
+ void buttonReleased();
+ void buttonToggled();
+
+public slots:
+ void modeChange();
+
+protected:
+ void paletteChange(const TQPalette &);
+ void leaveEvent(TQEvent *e);
+ void enterEvent(TQEvent *e);
+ void drawButton(TQPainter *p);
+ bool eventFilter (TQObject *o, TQEvent *e);
+ void showMenu();
+
+ void makeDefaultPixmap();
+ void makeDisabledPixmap();
+ bool arrowPressed( const TQPoint& pos ) {
+ int x = pos.x();
+ int y = pos.y();
+ return (x > width() - 12 && x <= width() && y > 0 && y < height());
+ }
+
+private:
+ TQPixmap defaultPixmap;
+ TQPixmap activePixmap;
+ TQPixmap disabledPixmap;
+ virtual void setIcon(const TQPixmap &p) { TQButton::setIcon(p); }
+ class TTDEToolBarButtonPrivate;
+ TTDEToolBarButtonPrivate *d;
+
+
+protected slots:
+ void slotClicked();
+ void slotPressed();
+ void slotReleased();
+ void slotToggled();
+ void slotDelayTimeout();
+};
+
+#endif