/*************************************************************************** * Copyright (C) 2003 by Sébastien Laoût * * slaout@linux62.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; if not, write to the * * Free Software Foundation, Inc., * * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ #ifndef VARIOUSWIDGETS_H #define VARIOUSWIDGETS_H #include #include #include #include #include #include class TQLineEdit; class KIconViewItem; class TQIconViewItem; class Basket; /** A widget to select a command to run, * with a TQLineEdit and a TQPushButton. * @author Sébastien Laoût */ class RunCommandRequester : public TQWidget { Q_OBJECT TQ_OBJECT public: RunCommandRequester(const TQString &runCommand, const TQString &message, TQWidget *tqparent = 0, const char *name = 0); ~RunCommandRequester(); TQString runCommand(); void setRunCommand(const TQString &runCommand); TQLineEdit *lineEdit() { return m_runCommand; } private slots: void slotSelCommand(); private: TQLineEdit *m_runCommand; TQString m_message; }; /** TQComboBox to ask icon size * @author Sébastien Laoût */ class IconSizeCombo : public TQComboBox { Q_OBJECT TQ_OBJECT public: IconSizeCombo(bool rw, TQWidget *tqparent = 0, const char *name = 0); ~IconSizeCombo(); int iconSize(); void setSize(int size); }; /** A window that the user resize to graphically choose a new image size * TODO: Create a SizePushButton or even SizeWidget * @author Sébastien Laoût */ class ViewSizeDialog : public TQDialog { Q_OBJECT TQ_OBJECT public: ViewSizeDialog(TQWidget *tqparent, int w, int h); ~ViewSizeDialog(); private: virtual void resizeEvent(TQResizeEvent *); TQWidget *m_sizeGrip; }; /** A label displaying a link that, once clicked, offer a What's This messageBox to help users. * @author Sébastien Laoût */ class HelpLabel : public KURLLabel { Q_OBJECT TQ_OBJECT public: HelpLabel(const TQString &text, const TQString &message, TQWidget *tqparent); ~HelpLabel(); TQString message() { return m_message; } public slots: void setMessage(const TQString &message) { m_message = message; } void showMessage(); protected: void keyPressEvent(TQKeyEvent *event); private: TQString m_message; }; /** A dialog to choose the size of an icon. * @author Sébastien Laoût */ class IconSizeDialog : public KDialogBase { Q_OBJECT TQ_OBJECT public: IconSizeDialog(const TQString &caption, const TQString &message, const TQString &icon, int iconSize, TQWidget *tqparent); ~IconSizeDialog(); int iconSize() { return m_iconSize; } /// << @return the choosen icon size (16, 32, ...) or -1 if canceled! protected slots: void slotCancel(); void slotSelectionChanged(); void choose(TQIconViewItem*); private: KIconViewItem *m_size16; KIconViewItem *m_size22; KIconViewItem *m_size32; KIconViewItem *m_size48; KIconViewItem *m_size64; KIconViewItem *m_size128; int m_iconSize; }; /** * A missing class from KDE (and TQt): a combobox to select a font size! */ class FontSizeCombo : public KComboBox { Q_OBJECT TQ_OBJECT public: FontSizeCombo(bool rw, bool withDefault, TQWidget *tqparent = 0, const char *name = 0); ~FontSizeCombo(); void setFontSize(int size); int fontSize(); protected: void keyPressEvent(TQKeyEvent *event); signals: void sizeChanged(int size); void escapePressed(); void returnPressed2(); private slots: void textChangedInCombo(const TQString &text); private: bool m_withDefault; }; #endif // VARIOUSWIDGETS_H