00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 class ConfigControl
00026 {
00027 public:
00028 ConfigControl( vlc_object_t *, module_config_t *, HWND, HINSTANCE );
00029 virtual ~ConfigControl();
00030
00031 virtual int GetIntValue() {return 0;}
00032 virtual float GetFloatValue() {return 0;}
00033 virtual char *GetPszValue() {return GetName();}
00034
00035
00036 char *GetName();
00037 int GetType();
00038 vlc_bool_t IsAdvanced();
00039
00040 void SetUpdateCallback( void (*)( void * ), void * );
00041
00042 protected:
00043
00044 HWND label;
00045 vlc_object_t *p_this;
00046
00047 void (*pf_update_callback)( void * );
00048 void *p_update_data;
00049
00050 void OnUpdate( UINT );
00051
00052 private:
00053 HWND parent;
00054
00055 char *name;
00056 int i_type;
00057 vlc_bool_t b_advanced;
00058 };
00059
00060 ConfigControl *CreateConfigControl( vlc_object_t *,
00061 module_config_t *, HWND, HINSTANCE,
00062 int * );
00063
00064 class KeyConfigControl: public ConfigControl
00065 {
00066 public:
00067 KeyConfigControl( vlc_object_t *, module_config_t *, HWND,
00068 HINSTANCE, int * );
00069 ~KeyConfigControl();
00070 virtual int GetIntValue();
00071 private:
00072 HWND alt;
00073 HWND alt_label;
00074 HWND ctrl;
00075 HWND ctrl_label;
00076 HWND shift;
00077 HWND shift_label;
00078 HWND combo;
00079
00080
00081 static string *m_keysList;
00082 };
00083
00084 class ModuleConfigControl: public ConfigControl
00085 {
00086 public:
00087 ModuleConfigControl( vlc_object_t *, module_config_t *, HWND,
00088 HINSTANCE, int * );
00089 ~ModuleConfigControl();
00090 virtual char *GetPszValue();
00091 private:
00092 HWND combo;
00093 };
00094
00095 class StringConfigControl: public ConfigControl
00096 {
00097 public:
00098 StringConfigControl( vlc_object_t *, module_config_t *, HWND,
00099 HINSTANCE, int * );
00100 ~StringConfigControl();
00101 virtual char *GetPszValue();
00102 private:
00103 HWND textctrl;
00104 };
00105
00106 class StringListConfigControl: public ConfigControl
00107 {
00108 public:
00109 StringListConfigControl( vlc_object_t *, module_config_t *, HWND,
00110 HINSTANCE, int * );
00111 ~StringListConfigControl();
00112 virtual char *GetPszValue();
00113 private:
00114 };
00115
00116 class FileConfigControl: public ConfigControl
00117 {
00118 public:
00119 FileConfigControl( vlc_object_t *, module_config_t *, HWND,
00120 HINSTANCE, int * );
00121 ~FileConfigControl();
00122 void OnBrowse( UINT );
00123 virtual char *GetPszValue();
00124 private:
00125 };
00126
00127 class IntegerConfigControl: public ConfigControl
00128 {
00129 public:
00130 IntegerConfigControl( vlc_object_t *, module_config_t *, HWND,
00131 HINSTANCE, int * );
00132 ~IntegerConfigControl();
00133 virtual int GetIntValue();
00134 private:
00135 };
00136
00137 class IntegerListConfigControl: public ConfigControl
00138 {
00139 public:
00140 IntegerListConfigControl( vlc_object_t *, module_config_t *, HWND,
00141 HINSTANCE, int * );
00142 ~IntegerListConfigControl();
00143 virtual int GetIntValue();
00144 private:
00145 };
00146
00147 class RangedIntConfigControl: public ConfigControl
00148 {
00149 public:
00150 RangedIntConfigControl( vlc_object_t *, module_config_t *, HWND,
00151 HINSTANCE, int * );
00152 ~RangedIntConfigControl();
00153 virtual int GetIntValue();
00154 private:
00155 };
00156
00157 class FloatConfigControl: public ConfigControl
00158 {
00159 public:
00160 FloatConfigControl( vlc_object_t *, module_config_t *, HWND,
00161 HINSTANCE, int * );
00162 ~FloatConfigControl();
00163 virtual float GetFloatValue();
00164 private:
00165 HWND textctrl;
00166 };
00167
00168 class BoolConfigControl: public ConfigControl
00169 {
00170 public:
00171 BoolConfigControl( vlc_object_t *, module_config_t *, HWND,
00172 HINSTANCE, int * );
00173 ~BoolConfigControl();
00174 virtual int GetIntValue();
00175 private:
00176 HWND checkbox;
00177 HWND checkbox_label;
00178 };