00001 /*************************************************************************** 00002 klineakconfig.h - description 00003 ------------------- 00004 begin : Tue Apr 9 18:33:44 EDT 2002 00005 copyright : (C) 2002 by Sheldon Lee Wen 00006 email : tormak@rogers.com 00007 ***************************************************************************/ 00008 00009 /*************************************************************************** 00010 * * 00011 * This program is free software; you can redistribute it and/or modify * 00012 * it under the terms of the GNU General Public License as published by * 00013 * the Free Software Foundation; either version 2 of the License, or * 00014 * (at your option) any later version. * 00015 * * 00016 ***************************************************************************/ 00017 00018 #ifndef KLINEAKCONFIG_H 00019 #define KLINEAKCONFIG_H 00020 00021 #ifdef HAVE_CONFIG_H 00022 #include <config.h> 00023 #endif 00024 00025 #include <qwidget.h> 00026 #include <klineakconfigui.h> 00027 #include <qcombobox.h> 00028 #include <qlabel.h> 00029 #include <qlineedit.h> 00030 #include <qlistbox.h> 00031 #include <qpushbutton.h> 00032 #include <qradiobutton.h> 00033 #include <qmessagebox.h> 00034 #include <qstring.h> 00035 #include <kstddirs.h> 00036 #include <kprocess.h> 00037 #include <kiconloader.h> 00038 00039 #include "lineakparser.h" 00040 #include "klineak.h" 00041 #include "klineakdef.h" 00042 00043 class KlineakDef; 00044 class LineakParser; 00045 class Klineak; 00046 00048 class KlineakConfig : public KlineakConfigUI 00049 { 00050 Q_OBJECT 00051 public: 00053 KlineakConfig(QWidget* parent=0, const char *name=0); 00055 ~KlineakConfig(); 00056 00057 private: 00058 bool ApplyUsed; 00059 bool changeMade; 00060 bool changing_text_from_signal; 00061 int selected_key; 00062 LineakParser p; 00063 Klineak *systemTrayApp; 00064 KStandardDirs *resources; 00065 KIconLoader load; 00066 EAKeyboard *myEAK; 00067 KProcess lineakd; 00068 00069 public slots: 00070 virtual void updateKeyList(int index); 00071 virtual void updateKeyList(const QString& inText); 00072 virtual void updateKeyboardModels(const QString& inText); 00073 virtual void onKeyListSelect(QListBoxItem *box); 00074 virtual void updateAvailableKeys(const QString &keyboard); 00075 virtual void updateCDRom(const QString& inText); 00076 virtual void updateMixer(const QString& inText); 00077 virtual void quit(); 00078 virtual bool onApplyButtonClicked(); 00079 virtual void slotToggleApp(); 00080 virtual bool hupLineakd(); 00081 virtual bool startLineakd(); 00082 virtual bool stopLineakd(); 00083 00084 private: 00085 /* refresh *ALL* the data on the GUI (this is called on startup) */ 00086 bool refreshGUIdata(); 00087 /* refresh EAK types */ 00088 bool refresh_kbtypes(); 00089 /* refresh CD-ROM entry */ 00090 bool refresh_cdromdev(); 00091 /* refresh keyboard image */ 00092 bool refresh_kbimage(); 00093 /* refresh key list */ 00094 bool refresh_keylist(); 00095 /* refresh command/action */ 00096 bool refresh_keycommand(int i); 00097 /* refresh the special commands list */ 00098 bool refresh_specials(); 00099 bool is_special_action (const QString &command); 00100 /* select a new keyboard */ 00101 void select_new_keyboard(const QString &ndata); 00102 /* change the key command data to the users input */ 00103 void change_key_command(EAkey *thiskey, const QString &entrytext); 00104 /* wrapper for change_key_command, lookups the selected key */ 00105 void change_selectedkey_command(const QString &entrytext); 00107 void createBasic(); 00108 00109 // protected: 00110 // bool x11Event( XEvent* event); 00111 00112 00113 }; 00114 00115 #endif