KDevelop API Documentation

parts/doxygen/input.h

Go to the documentation of this file.
00001 /*************************************************************************** 00002 * Copyright (C) 1997-2000 by Dimitri van Heesch * 00003 * dimitri@stack.nl * 00004 * Copyright (C) 2001 by Bernd Gehrmann * 00005 * bernd@kdevelop.org * 00006 * * 00007 * This program is free software; you can redistribute it and/or modify * 00008 * it under the terms of the GNU General Public License as published by * 00009 * the Free Software Foundation; either version 2 of the License, or * 00010 * (at your option) any later version. * 00011 * * 00012 ***************************************************************************/ 00013 00014 #ifndef _INPUT_H 00015 #define _INPUT_H 00016 00017 #include <qcheckbox.h> 00018 #include <qdict.h> 00019 00020 class QComboBox; 00021 class QLabel; 00022 class QLineEdit; 00023 class QListBox; 00024 class QPushButton; 00025 class QSpinBox; 00026 00027 class IInput 00028 { 00029 public: 00030 virtual void init() = 0; 00031 virtual void setEnabled(bool) = 0; 00032 virtual QObject *qobject() = 0; 00033 }; 00034 00035 00036 class InputBool : public QWidget, public IInput 00037 { 00038 Q_OBJECT 00039 00040 public: 00041 InputBool(const QCString &key, const QString &text, QWidget *parent, bool &flag); 00042 ~InputBool(); 00043 00044 void init(); 00045 virtual void setEnabled(bool b); 00046 virtual QObject *qobject() { return this; } 00047 virtual bool getState() const { return state; } 00048 00049 signals: 00050 void changed(); 00051 void toggle(const QString &, bool); 00052 00053 private slots: 00054 void valueChanged(bool); 00055 00056 private: 00057 bool &state; 00058 QCString key; 00059 QCheckBox *cb; 00060 }; 00061 00062 00063 class InputInt : public QWidget, public IInput 00064 { 00065 Q_OBJECT 00066 00067 public: 00068 InputInt(const QString &text, QWidget *parent, 00069 int &val, int minVal, int maxVal); 00070 ~InputInt(); 00071 00072 void init(); 00073 virtual void setEnabled(bool); 00074 QObject *qobject() { return this; } 00075 00076 signals: 00077 void changed(); 00078 00079 private slots: 00080 void valueChanged(int val); 00081 00082 private: 00083 QLabel *lab; 00084 QSpinBox *sp; 00085 int &m_val; 00086 int m_minVal; 00087 int m_maxVal; 00088 }; 00089 00090 00091 class InputString : public QWidget, public IInput 00092 { 00093 Q_OBJECT 00094 00095 public: 00096 enum StringMode { StringFree=0, 00097 StringFile=1, 00098 StringDir=2, 00099 StringFixed=3 00100 }; 00101 00102 InputString(const QString &text, QWidget *parent, 00103 QCString &s, StringMode m=StringFree); 00104 ~InputString(); 00105 00106 void init(); 00107 void addValue(const char *s); 00108 void setEnabled(bool); 00109 QObject *qobject() { return this; } 00110 00111 signals: 00112 void changed(); 00113 00114 private slots: 00115 void textChanged(const QString&); 00116 void browse(); 00117 void clear(); 00118 00119 private: 00120 QLabel *lab; 00121 QLineEdit *le; 00122 QPushButton *br; 00123 QComboBox *com; 00124 QCString &str; 00125 StringMode sm; 00126 QDict<int> *m_values; 00127 int m_index; 00128 }; 00129 00130 00131 class InputStrList : public QWidget, public IInput 00132 { 00133 Q_OBJECT 00134 00135 public: 00136 enum ListMode { ListString=0, 00137 ListFile=1, 00138 ListDir=2, 00139 ListFileDir=ListFile|ListDir 00140 }; 00141 00142 InputStrList(const QString &text, QWidget *parent, 00143 QStrList &sl, ListMode v=ListString); 00144 ~InputStrList(); 00145 00146 void init(); 00147 void setEnabled(bool); 00148 QObject *qobject() { return this; } 00149 00150 signals: 00151 void changed(); 00152 00153 private slots: 00154 void addString(); 00155 void delString(); 00156 void updateString(); 00157 void selectText(const QString &s); 00158 void browseFiles(); 00159 void browseDir(); 00160 00161 private: 00162 QLabel *lab; 00163 QLineEdit *le; 00164 QPushButton *add; 00165 QPushButton *del; 00166 QPushButton *upd; 00167 QPushButton *brFile; 00168 QPushButton *brDir; 00169 QListBox *lb; 00170 QStrList &strList; 00171 }; 00172 00173 #endif
KDE Logo
This file is part of the documentation for KDevelop Version 3.0.4.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Oct 19 08:01:51 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003