00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
#ifndef FXCOMBOBOX_H
00025
#define FXCOMBOBOX_H
00026
00027
#ifndef FXPACKER_H
00028
#include "FXPacker.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
enum {
00036
COMBOBOX_NO_REPLACE = 0,
00037
COMBOBOX_REPLACE = 0x00020000,
00038
COMBOBOX_INSERT_BEFORE = 0x00040000,
00039
COMBOBOX_INSERT_AFTER = 0x00060000,
00040
COMBOBOX_INSERT_FIRST = 0x00080000,
00041
COMBOBOX_INSERT_LAST = 0x00090000,
00042
COMBOBOX_STATIC = 0x00100000,
00043
COMBOBOX_NORMAL = 0
00044 };
00045
00046
00047
class FXTextField;
00048
class FXMenuButton;
00049
class FXList;
00050
class FXPopup;
00051
00052
00053
00054
class FXAPI FXComboBox :
public FXPacker {
00055 FXDECLARE(FXComboBox)
00056 protected:
00057 FXTextField *field;
00058 FXMenuButton *button;
00059 FXList *list;
00060 FXPopup *pane;
00061 protected:
00062 FXComboBox(){}
00063
private:
00064 FXComboBox(
const FXComboBox&);
00065 FXComboBox &operator=(
const FXComboBox&);
00066
public:
00067
long onFocusUp(
FXObject*,FXSelector,
void*);
00068
long onFocusDown(
FXObject*,FXSelector,
void*);
00069
long onFocusSelf(
FXObject*,FXSelector,
void*);
00070
long onTextButton(
FXObject*,FXSelector,
void*);
00071
long onTextChanged(
FXObject*,FXSelector,
void*);
00072
long onTextCommand(
FXObject*,FXSelector,
void*);
00073
long onListClicked(
FXObject*,FXSelector,
void*);
00074
long onFwdToText(
FXObject*,FXSelector,
void*);
00075
long onUpdFmText(
FXObject*,FXSelector,
void*);
00076
public:
00077
enum {
00078 ID_LIST=FXPacker::ID_LAST,
00079 ID_TEXT,
00080 ID_LAST
00081 };
00082
public:
00083
00084
00085 FXComboBox(FXComposite *p,FXint cols,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=COMBOBOX_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0,FXint pl=DEFAULT_PAD,FXint pr=DEFAULT_PAD,FXint pt=DEFAULT_PAD,FXint pb=DEFAULT_PAD);
00086
00087
00088
virtual void create();
00089
00090
00091
virtual void detach();
00092
00093
00094
virtual void destroy();
00095
00096
00097
virtual void enable();
00098
00099
00100
virtual void disable();
00101
00102
00103
virtual FXint getDefaultWidth();
00104
00105
00106
virtual FXint getDefaultHeight();
00107
00108
00109
virtual void layout();
00110
00111
00112 FXbool isEditable() const;
00113
00114
00115
void setEditable(FXbool edit=TRUE);
00116
00117
00118
void setText(const FXString& text);
00119
00120
00121 FXString getText() const;
00122
00123
00124
void setNumColumns(FXint cols);
00125
00126
00127 FXint getNumColumns() const;
00128
00129
00130 FXint getNumItems() const;
00131
00132
00133 FXint getNumVisible() const;
00134
00135
00136
void setNumVisible(FXint nvis);
00137
00138
00139 FXbool isItemCurrent(FXint index) const;
00140
00141
00142
void setCurrentItem(FXint indexz);
00143
00144
00145 FXint getCurrentItem() const;
00146
00147
00148 FXString getItem(FXint index) const;
00149
00150
00151 FXint setItem(FXint index,const FXString& text,
void* ptr=NULL);
00152
00153
00154 FXint insertItem(FXint index,const FXString& text,
void* ptr=NULL);
00155
00156
00157 FXint appendItem(const FXString& text,
void* ptr=NULL);
00158
00159
00160 FXint prependItem(const FXString& text,
void* ptr=NULL);
00161
00162
00163 FXint moveItem(FXint newindex,FXint oldindex);
00164
00165
00166
void removeItem(FXint index);
00167
00168
00169
void clearItems();
00170
00171
00172
00173
00174
00175 FXint findItem(const FXString& text,FXint start=-1,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP) const;
00176
00177
00178
void setItemText(FXint index,const FXString& text);
00179
00180
00181 FXString getItemText(FXint index) const;
00182
00183
00184
void setItemData(FXint index,
void* ptr) const;
00185
00186
00187
void* getItemData(FXint index) const;
00188
00189
00190 FXbool isPaneShown() const;
00191
00192
00193
void sortItems();
00194
00195
00196
void setFont(FXFont* fnt);
00197
00198
00199 FXFont* getFont() const;
00200
00201
00202
void setComboStyle(FXuint mode);
00203
00204
00205 FXuint getComboStyle() const;
00206
00207
00208 virtual
void setBackColor(FXColor clr);
00209
00210
00211 FXColor getBackColor() const;
00212
00213
00214
void setTextColor(FXColor clr);
00215
00216
00217 FXColor getTextColor() const;
00218
00219
00220
void setSelBackColor(FXColor clr);
00221
00222
00223 FXColor getSelBackColor() const;
00224
00225
00226
void setSelTextColor(FXColor clr);
00227
00228
00229 FXColor getSelTextColor() const;
00230
00231
00232 FXListSortFunc getSortFunc() const;
00233
00234
00235
void setSortFunc(FXListSortFunc func);
00236
00237
00238
void setHelpText(const FXString& txt);
00239
00240
00241 FXString getHelpText() const;
00242
00243
00244
void setTipText(const FXString& txt);
00245
00246
00247 FXString getTipText() const;
00248
00249
00250 virtual
void save(FXStream& store) const;
00251
00252
00253 virtual
void load(FXStream& store);
00254
00255
00256 virtual ~FXComboBox();
00257 };
00258
00259 }
00260
00261 #endif