Main Page | Modules | Class Hierarchy | Class List | Directories | File List | Class Members | File Members | Related Pages

preferences_widgets.h

00001 /*****************************************************************************
00002  * preferences_widgets.h : WinCE gui plugin for VLC
00003  *****************************************************************************
00004  * Copyright (C) 2000-2003 the VideoLAN team
00005  * $Id: preferences_widgets.h 11664 2005-07-09 06:17:09Z courmisch $
00006  *
00007  * Authors: Marodon Cedric <[email protected]>
00008  *          Gildas Bazin <[email protected]>
00009  *
00010  * This program is free software; you can redistribute it and/or modify
00011  * it under the terms of the GNU General Public License as published by
00012  * the Free Software Foundation; either version 2 of the License, or
00013  * (at your option) any later version.
00014  *
00015  * This program is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  * GNU General Public License for more details.
00019  *
00020  * You should have received a copy of the GNU General Public License
00021  * along with this program; if not, write to the Free Software
00022  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
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();} // faux retourne nom associé à parent
00034         // mettre dans constructeur et dans private le nom du panel associé à HWND
00035 
00036     char *GetName();
00037     int GetType();
00038     vlc_bool_t IsAdvanced();
00039 
00040     void SetUpdateCallback( void (*)( void * ), void * );
00041 
00042 protected:
00043     /*wxBoxSizer *sizer;*/
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     // Array of key descriptions, for the ComboBox
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 };

Generated on Tue Dec 20 10:14:46 2005 for vlc-0.8.4a by  doxygen 1.4.2