Annotation of qemu/roms/seabios/tools/kconfig/qconf.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (C) 2002 Roman Zippel <[email protected]>
                      3:  * Released under the terms of the GNU GPL v2.0.
                      4:  */
                      5: 
                      6: #if QT_VERSION < 0x040000
                      7: #include <qlistview.h>
                      8: #else
                      9: #include <q3listview.h>
                     10: #endif
                     11: #include <qsettings.h>
                     12: 
                     13: #if QT_VERSION < 0x040000
                     14: #define Q3ValueList             QValueList
                     15: #define Q3PopupMenu             QPopupMenu
                     16: #define Q3ListView              QListView
                     17: #define Q3ListViewItem          QListViewItem
                     18: #define Q3VBox                  QVBox
                     19: #define Q3TextBrowser           QTextBrowser
                     20: #define Q3MainWindow            QMainWindow
                     21: #define Q3Action                QAction
                     22: #define Q3ToolBar               QToolBar
                     23: #define Q3ListViewItemIterator  QListViewItemIterator
                     24: #define Q3FileDialog            QFileDialog
                     25: #endif
                     26: 
                     27: class ConfigView;
                     28: class ConfigList;
                     29: class ConfigItem;
                     30: class ConfigLineEdit;
                     31: class ConfigMainWindow;
                     32: 
                     33: class ConfigSettings : public QSettings {
                     34: public:
                     35:        Q3ValueList<int> readSizes(const QString& key, bool *ok);
                     36:        bool writeSizes(const QString& key, const Q3ValueList<int>& value);
                     37: };
                     38: 
                     39: enum colIdx {
                     40:        promptColIdx, nameColIdx, noColIdx, modColIdx, yesColIdx, dataColIdx, colNr
                     41: };
                     42: enum listMode {
                     43:        singleMode, menuMode, symbolMode, fullMode, listMode
                     44: };
                     45: enum optionMode {
                     46:        normalOpt = 0, allOpt, promptOpt
                     47: };
                     48: 
                     49: class ConfigList : public Q3ListView {
                     50:        Q_OBJECT
                     51:        typedef class Q3ListView Parent;
                     52: public:
                     53:        ConfigList(ConfigView* p, const char *name = 0);
                     54:        void reinit(void);
                     55:        ConfigView* parent(void) const
                     56:        {
                     57:                return (ConfigView*)Parent::parent();
                     58:        }
                     59:        ConfigItem* findConfigItem(struct menu *);
                     60: 
                     61: protected:
                     62:        void keyPressEvent(QKeyEvent *e);
                     63:        void contentsMousePressEvent(QMouseEvent *e);
                     64:        void contentsMouseReleaseEvent(QMouseEvent *e);
                     65:        void contentsMouseMoveEvent(QMouseEvent *e);
                     66:        void contentsMouseDoubleClickEvent(QMouseEvent *e);
                     67:        void focusInEvent(QFocusEvent *e);
                     68:        void contextMenuEvent(QContextMenuEvent *e);
                     69: 
                     70: public slots:
                     71:        void setRootMenu(struct menu *menu);
                     72: 
                     73:        void updateList(ConfigItem *item);
                     74:        void setValue(ConfigItem* item, tristate val);
                     75:        void changeValue(ConfigItem* item);
                     76:        void updateSelection(void);
                     77:        void saveSettings(void);
                     78: signals:
                     79:        void menuChanged(struct menu *menu);
                     80:        void menuSelected(struct menu *menu);
                     81:        void parentSelected(void);
                     82:        void gotFocus(struct menu *);
                     83: 
                     84: public:
                     85:        void updateListAll(void)
                     86:        {
                     87:                updateAll = true;
                     88:                updateList(NULL);
                     89:                updateAll = false;
                     90:        }
                     91:        ConfigList* listView()
                     92:        {
                     93:                return this;
                     94:        }
                     95:        ConfigItem* firstChild() const
                     96:        {
                     97:                return (ConfigItem *)Parent::firstChild();
                     98:        }
                     99:        int mapIdx(colIdx idx)
                    100:        {
                    101:                return colMap[idx];
                    102:        }
                    103:        void addColumn(colIdx idx, const QString& label)
                    104:        {
                    105:                colMap[idx] = Parent::addColumn(label);
                    106:                colRevMap[colMap[idx]] = idx;
                    107:        }
                    108:        void removeColumn(colIdx idx)
                    109:        {
                    110:                int col = colMap[idx];
                    111:                if (col >= 0) {
                    112:                        Parent::removeColumn(col);
                    113:                        colRevMap[col] = colMap[idx] = -1;
                    114:                }
                    115:        }
                    116:        void setAllOpen(bool open);
                    117:        void setParentMenu(void);
                    118: 
                    119:        bool menuSkip(struct menu *);
                    120: 
                    121:        template <class P>
                    122:        void updateMenuList(P*, struct menu*);
                    123: 
                    124:        bool updateAll;
                    125: 
                    126:        QPixmap symbolYesPix, symbolModPix, symbolNoPix;
                    127:        QPixmap choiceYesPix, choiceNoPix;
                    128:        QPixmap menuPix, menuInvPix, menuBackPix, voidPix;
                    129: 
                    130:        bool showName, showRange, showData;
                    131:        enum listMode mode;
                    132:        enum optionMode optMode;
                    133:        struct menu *rootEntry;
                    134:        QColorGroup disabledColorGroup;
                    135:        QColorGroup inactivedColorGroup;
                    136:        Q3PopupMenu* headerPopup;
                    137: 
                    138: private:
                    139:        int colMap[colNr];
                    140:        int colRevMap[colNr];
                    141: };
                    142: 
                    143: class ConfigItem : public Q3ListViewItem {
                    144:        typedef class Q3ListViewItem Parent;
                    145: public:
                    146:        ConfigItem(Q3ListView *parent, ConfigItem *after, struct menu *m, bool v)
                    147:        : Parent(parent, after), menu(m), visible(v), goParent(false)
                    148:        {
                    149:                init();
                    150:        }
                    151:        ConfigItem(ConfigItem *parent, ConfigItem *after, struct menu *m, bool v)
                    152:        : Parent(parent, after), menu(m), visible(v), goParent(false)
                    153:        {
                    154:                init();
                    155:        }
                    156:        ConfigItem(Q3ListView *parent, ConfigItem *after, bool v)
                    157:        : Parent(parent, after), menu(0), visible(v), goParent(true)
                    158:        {
                    159:                init();
                    160:        }
                    161:        ~ConfigItem(void);
                    162:        void init(void);
                    163:        void okRename(int col);
                    164:        void updateMenu(void);
                    165:        void testUpdateMenu(bool v);
                    166:        ConfigList* listView() const
                    167:        {
                    168:                return (ConfigList*)Parent::listView();
                    169:        }
                    170:        ConfigItem* firstChild() const
                    171:        {
                    172:                return (ConfigItem *)Parent::firstChild();
                    173:        }
                    174:        ConfigItem* nextSibling() const
                    175:        {
                    176:                return (ConfigItem *)Parent::nextSibling();
                    177:        }
                    178:        void setText(colIdx idx, const QString& text)
                    179:        {
                    180:                Parent::setText(listView()->mapIdx(idx), text);
                    181:        }
                    182:        QString text(colIdx idx) const
                    183:        {
                    184:                return Parent::text(listView()->mapIdx(idx));
                    185:        }
                    186:        void setPixmap(colIdx idx, const QPixmap& pm)
                    187:        {
                    188:                Parent::setPixmap(listView()->mapIdx(idx), pm);
                    189:        }
                    190:        const QPixmap* pixmap(colIdx idx) const
                    191:        {
                    192:                return Parent::pixmap(listView()->mapIdx(idx));
                    193:        }
                    194:        void paintCell(QPainter* p, const QColorGroup& cg, int column, int width, int align);
                    195: 
                    196:        ConfigItem* nextItem;
                    197:        struct menu *menu;
                    198:        bool visible;
                    199:        bool goParent;
                    200: };
                    201: 
                    202: class ConfigLineEdit : public QLineEdit {
                    203:        Q_OBJECT
                    204:        typedef class QLineEdit Parent;
                    205: public:
                    206:        ConfigLineEdit(ConfigView* parent);
                    207:        ConfigView* parent(void) const
                    208:        {
                    209:                return (ConfigView*)Parent::parent();
                    210:        }
                    211:        void show(ConfigItem *i);
                    212:        void keyPressEvent(QKeyEvent *e);
                    213: 
                    214: public:
                    215:        ConfigItem *item;
                    216: };
                    217: 
                    218: class ConfigView : public Q3VBox {
                    219:        Q_OBJECT
                    220:        typedef class Q3VBox Parent;
                    221: public:
                    222:        ConfigView(QWidget* parent, const char *name = 0);
                    223:        ~ConfigView(void);
                    224:        static void updateList(ConfigItem* item);
                    225:        static void updateListAll(void);
                    226: 
                    227:        bool showName(void) const { return list->showName; }
                    228:        bool showRange(void) const { return list->showRange; }
                    229:        bool showData(void) const { return list->showData; }
                    230: public slots:
                    231:        void setShowName(bool);
                    232:        void setShowRange(bool);
                    233:        void setShowData(bool);
                    234:        void setOptionMode(QAction *);
                    235: signals:
                    236:        void showNameChanged(bool);
                    237:        void showRangeChanged(bool);
                    238:        void showDataChanged(bool);
                    239: public:
                    240:        ConfigList* list;
                    241:        ConfigLineEdit* lineEdit;
                    242: 
                    243:        static ConfigView* viewList;
                    244:        ConfigView* nextView;
                    245: 
                    246:        static QAction *showNormalAction;
                    247:        static QAction *showAllAction;
                    248:        static QAction *showPromptAction;
                    249: };
                    250: 
                    251: class ConfigInfoView : public Q3TextBrowser {
                    252:        Q_OBJECT
                    253:        typedef class Q3TextBrowser Parent;
                    254: public:
                    255:        ConfigInfoView(QWidget* parent, const char *name = 0);
                    256:        bool showDebug(void) const { return _showDebug; }
                    257: 
                    258: public slots:
                    259:        void setInfo(struct menu *menu);
                    260:        void saveSettings(void);
                    261:        void setShowDebug(bool);
                    262: 
                    263: signals:
                    264:        void showDebugChanged(bool);
                    265:        void menuSelected(struct menu *);
                    266: 
                    267: protected:
                    268:        void symbolInfo(void);
                    269:        void menuInfo(void);
                    270:        QString debug_info(struct symbol *sym);
                    271:        static QString print_filter(const QString &str);
                    272:        static void expr_print_help(void *data, struct symbol *sym, const char *str);
                    273:        Q3PopupMenu* createPopupMenu(const QPoint& pos);
                    274:        void contentsContextMenuEvent(QContextMenuEvent *e);
                    275: 
                    276:        struct symbol *sym;
                    277:        struct menu *_menu;
                    278:        bool _showDebug;
                    279: };
                    280: 
                    281: class ConfigSearchWindow : public QDialog {
                    282:        Q_OBJECT
                    283:        typedef class QDialog Parent;
                    284: public:
                    285:        ConfigSearchWindow(ConfigMainWindow* parent, const char *name = 0);
                    286: 
                    287: public slots:
                    288:        void saveSettings(void);
                    289:        void search(void);
                    290: 
                    291: protected:
                    292:        QLineEdit* editField;
                    293:        QPushButton* searchButton;
                    294:        QSplitter* split;
                    295:        ConfigView* list;
                    296:        ConfigInfoView* info;
                    297: 
                    298:        struct symbol **result;
                    299: };
                    300: 
                    301: class ConfigMainWindow : public Q3MainWindow {
                    302:        Q_OBJECT
                    303: 
                    304:        static Q3Action *saveAction;
                    305:        static void conf_changed(void);
                    306: public:
                    307:        ConfigMainWindow(void);
                    308: public slots:
                    309:        void changeMenu(struct menu *);
                    310:        void setMenuLink(struct menu *);
                    311:        void listFocusChanged(void);
                    312:        void goBack(void);
                    313:        void loadConfig(void);
                    314:        void saveConfig(void);
                    315:        void saveConfigAs(void);
                    316:        void searchConfig(void);
                    317:        void showSingleView(void);
                    318:        void showSplitView(void);
                    319:        void showFullView(void);
                    320:        void showIntro(void);
                    321:        void showAbout(void);
                    322:        void saveSettings(void);
                    323: 
                    324: protected:
                    325:        void closeEvent(QCloseEvent *e);
                    326: 
                    327:        ConfigSearchWindow *searchWindow;
                    328:        ConfigView *menuView;
                    329:        ConfigList *menuList;
                    330:        ConfigView *configView;
                    331:        ConfigList *configList;
                    332:        ConfigInfoView *helpText;
                    333:        Q3ToolBar *toolBar;
                    334:        Q3Action *backAction;
                    335:        QSplitter* split1;
                    336:        QSplitter* split2;
                    337: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.