Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Ported palacios to Kbuild
[palacios.git] / scripts / kconfig / qconf.h
1 /*
2  * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
3  * Released under the terms of the GNU GPL v2.0.
4  */
5
6 #include <qlistview.h>
7 #if QT_VERSION >= 300
8 #include <qsettings.h>
9 #else
10 class QSettings { };
11 #endif
12
13 class ConfigList;
14 class ConfigItem;
15 class ConfigLineEdit;
16 class ConfigMainWindow;
17
18
19 class ConfigSettings : public QSettings {
20 public:
21         ConfigSettings();
22
23 #if QT_VERSION >= 300
24         void readListSettings();
25         QValueList<int> readSizes(const QString& key, bool *ok);
26         bool writeSizes(const QString& key, const QValueList<int>& value);
27 #endif
28
29         bool showAll;
30         bool showName;
31         bool showRange;
32         bool showData;
33 };
34
35 class ConfigView : public QVBox {
36         Q_OBJECT
37         typedef class QVBox Parent;
38 public:
39         ConfigView(QWidget* parent, ConfigMainWindow* cview, ConfigSettings* configSettings);
40         ~ConfigView(void);
41         static void updateList(ConfigItem* item);
42         static void updateListAll(void);
43
44 public:
45         ConfigList* list;
46         ConfigLineEdit* lineEdit;
47
48         static ConfigView* viewList;
49         ConfigView* nextView;
50 };
51
52 enum colIdx {
53         promptColIdx, nameColIdx, noColIdx, modColIdx, yesColIdx, dataColIdx, colNr
54 };
55 enum listMode {
56         singleMode, menuMode, symbolMode, fullMode
57 };
58
59 class ConfigList : public QListView {
60         Q_OBJECT
61         typedef class QListView Parent;
62 public:
63         ConfigList(ConfigView* p, ConfigMainWindow* cview, ConfigSettings *configSettings);
64         void reinit(void);
65         ConfigView* parent(void) const
66         {
67                 return (ConfigView*)Parent::parent();
68         }
69
70 protected:
71         ConfigMainWindow* cview;
72
73         void keyPressEvent(QKeyEvent *e);
74         void contentsMousePressEvent(QMouseEvent *e);
75         void contentsMouseReleaseEvent(QMouseEvent *e);
76         void contentsMouseMoveEvent(QMouseEvent *e);
77         void contentsMouseDoubleClickEvent(QMouseEvent *e);
78         void focusInEvent(QFocusEvent *e);
79 public slots:
80         void setRootMenu(struct menu *menu);
81
82         void updateList(ConfigItem *item);
83         void setValue(ConfigItem* item, tristate val);
84         void changeValue(ConfigItem* item);
85         void updateSelection(void);
86 signals:
87         void menuSelected(struct menu *menu);
88         void parentSelected(void);
89         void gotFocus(void);
90
91 public:
92         void updateListAll(void)
93         {
94                 updateAll = true;
95                 updateList(NULL);
96                 updateAll = false;
97         }
98         ConfigList* listView()
99         {
100                 return this;
101         }
102         ConfigItem* firstChild() const
103         {
104                 return (ConfigItem *)Parent::firstChild();
105         }
106         int mapIdx(colIdx idx)
107         {
108                 return colMap[idx];
109         }
110         void addColumn(colIdx idx, const QString& label)
111         {
112                 colMap[idx] = Parent::addColumn(label);
113                 colRevMap[colMap[idx]] = idx;
114         }
115         void removeColumn(colIdx idx)
116         {
117                 int col = colMap[idx];
118                 if (col >= 0) {
119                         Parent::removeColumn(col);
120                         colRevMap[col] = colMap[idx] = -1;
121                 }
122         }
123         void setAllOpen(bool open);
124         void setParentMenu(void);
125
126         template <class P>
127         void updateMenuList(P*, struct menu*);
128
129         bool updateAll;
130
131         QPixmap symbolYesPix, symbolModPix, symbolNoPix;
132         QPixmap choiceYesPix, choiceNoPix;
133         QPixmap menuPix, menuInvPix, menuBackPix, voidPix;
134
135         bool showAll, showName, showRange, showData;
136         enum listMode mode;
137         struct menu *rootEntry;
138         QColorGroup disabledColorGroup;
139         QColorGroup inactivedColorGroup;
140
141 private:
142         int colMap[colNr];
143         int colRevMap[colNr];
144 };
145
146 class ConfigItem : public QListViewItem {
147         typedef class QListViewItem Parent;
148 public:
149         ConfigItem(QListView *parent, ConfigItem *after, struct menu *m, bool v)
150         : Parent(parent, after), menu(m), visible(v), goParent(false)
151         {
152                 init();
153         }
154         ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu *m, bool v)
155         : Parent(parent, after), menu(m), visible(v), goParent(false)
156         {
157                 init();
158         }
159         ConfigItem(QListView *parent, ConfigItem *after, bool v)
160         : Parent(parent, after), menu(0), visible(v), goParent(true)
161         {
162                 init();
163         }
164         ~ConfigItem(void);
165         void init(void);
166 #if QT_VERSION >= 300
167         void okRename(int col);
168 #endif
169         void updateMenu(void);
170         void testUpdateMenu(bool v);
171         ConfigList* listView() const
172         {
173                 return (ConfigList*)Parent::listView();
174         }
175         ConfigItem* firstChild() const
176         {
177                 return (ConfigItem *)Parent::firstChild();
178         }
179         ConfigItem* nextSibling() const
180         {
181                 return (ConfigItem *)Parent::nextSibling();
182         }
183         void setText(colIdx idx, const QString& text)
184         {
185                 Parent::setText(listView()->mapIdx(idx), text);
186         }
187         QString text(colIdx idx) const
188         {
189                 return Parent::text(listView()->mapIdx(idx));
190         }
191         void setPixmap(colIdx idx, const QPixmap& pm)
192         {
193                 Parent::setPixmap(listView()->mapIdx(idx), pm);
194         }
195         const QPixmap* pixmap(colIdx idx) const
196         {
197                 return Parent::pixmap(listView()->mapIdx(idx));
198         }
199         void paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int align);
200
201         ConfigItem* nextItem;
202         struct menu *menu;
203         bool visible;
204         bool goParent;
205 };
206
207 class ConfigLineEdit : public QLineEdit {
208         Q_OBJECT
209         typedef class QLineEdit Parent;
210 public:
211         ConfigLineEdit(ConfigView* parent)
212         : Parent(parent)
213         { }
214         ConfigView* parent(void) const
215         {
216                 return (ConfigView*)Parent::parent();
217         }
218         void show(ConfigItem *i);
219         void keyPressEvent(QKeyEvent *e);
220
221 public:
222         ConfigItem *item;
223 };
224
225 class ConfigMainWindow : public QMainWindow {
226         Q_OBJECT
227 public:
228         ConfigMainWindow(void);
229 public slots:
230         void setHelp(QListViewItem* item);
231         void changeMenu(struct menu *);
232         void listFocusChanged(void);
233         void goBack(void);
234         void loadConfig(void);
235         void saveConfig(void);
236         void saveConfigAs(void);
237         void showSingleView(void);
238         void showSplitView(void);
239         void showFullView(void);
240         void setShowAll(bool);
241         void setShowDebug(bool);
242         void setShowRange(bool);
243         void setShowName(bool);
244         void setShowData(bool);
245         void showIntro(void);
246         void showAbout(void);
247         void saveSettings(void);
248
249 protected:
250         void closeEvent(QCloseEvent *e);
251
252         ConfigView *menuView;
253         ConfigList *menuList;
254         ConfigView *configView;
255         ConfigList *configList;
256         QTextView *helpText;
257         QToolBar *toolBar;
258         QAction *backAction;
259         QSplitter* split1;
260         QSplitter* split2;
261
262         bool showDebug;
263 };