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 FXTREELISTBOX_H
00025
#define FXTREELISTBOX_H
00026
00027
#ifndef FXPACKER_H
00028
#include "FXPacker.h"
00029
#endif
00030
00031
namespace FX {
00032
00033
00034
00035
enum {
00036
TREELISTBOX_NORMAL = 0
00037 };
00038
00039
00040
class FXButton;
00041
class FXMenuButton;
00042
class FXTreeList;
00043
class FXPopup;
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
class FXAPI FXTreeListBox :
public FXPacker {
00054 FXDECLARE(FXTreeListBox)
00055 protected:
00056 FXButton *field;
00057 FXMenuButton *button;
00058 FXTreeList *tree;
00059 FXPopup *pane;
00060 protected:
00061 FXTreeListBox(){}
00062
private:
00063 FXTreeListBox(
const FXTreeListBox&);
00064 FXTreeListBox& operator=(
const FXTreeListBox&);
00065
public:
00066
long onFocusUp(
FXObject*,FXSelector,
void*);
00067
long onFocusDown(
FXObject*,FXSelector,
void*);
00068
long onFocusSelf(
FXObject*,FXSelector,
void*);
00069
long onFieldButton(
FXObject*,FXSelector,
void*);
00070
long onTreeUpdate(
FXObject*,FXSelector,
void*);
00071
long onTreeChanged(
FXObject*,FXSelector,
void*);
00072
long onTreeClicked(
FXObject*,FXSelector,
void*);
00073
public:
00074
enum{
00075 ID_TREE=FXPacker::ID_LAST,
00076 ID_FIELD,
00077 ID_LAST
00078 };
00079
public:
00080
00081
00082 FXTreeListBox(FXComposite *p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=FRAME_SUNKEN|FRAME_THICK|TREELISTBOX_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);
00083
00084
00085
virtual void create();
00086
00087
00088
virtual void detach();
00089
00090
00091
virtual void destroy();
00092
00093
00094
virtual void layout();
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 FXint getNumItems() const;
00110
00111
00112 FXint getNumVisible() const;
00113
00114
00115
void setNumVisible(FXint nvis);
00116
00117
00118 FXTreeItem* getFirstItem() const;
00119
00120
00121 FXTreeItem* getLastItem() const;
00122
00123
00124 FXint fillItems(FXTreeItem* father,const FXchar** strings,FXIcon* oi=NULL,FXIcon* ci=NULL,
void* ptr=NULL);
00125
00126
00127 FXint fillItems(FXTreeItem* father,const FXString& strings,FXIcon* oi=NULL,FXIcon* ci=NULL,
void* ptr=NULL);
00128
00129
00130 FXTreeItem* insertItem(FXTreeItem* other,FXTreeItem* father,FXTreeItem* item);
00131
00132
00133 FXTreeItem* insertItem(FXTreeItem* other,FXTreeItem* father,const FXString& text,FXIcon* oi=NULL,FXIcon* ci=NULL,
void* ptr=NULL);
00134
00135
00136 FXTreeItem* appendItem(FXTreeItem* father,FXTreeItem* item);
00137
00138
00139 FXTreeItem* appendItem(FXTreeItem* father,const FXString& text,FXIcon* oi=NULL,FXIcon* ci=NULL,
void* ptr=NULL);
00140
00141
00142 FXTreeItem* prependItem(FXTreeItem* father,FXTreeItem* item);
00143
00144
00145 FXTreeItem* prependItem(FXTreeItem* father,const FXString& text,FXIcon* oi=NULL,FXIcon* ci=NULL,
void* ptr=NULL);
00146
00147
00148 FXTreeItem *moveItem(FXTreeItem* other,FXTreeItem* father,FXTreeItem* item);
00149
00150
00151
void removeItem(FXTreeItem* item);
00152
00153
00154
void removeItems(FXTreeItem* fm,FXTreeItem* to);
00155
00156
00157
void clearItems();
00158
00159
00160
00161
00162
00163
00164
00165
00166
00167
00168
00169 FXTreeItem* findItem(const FXString& text,FXTreeItem* start=NULL,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP) const;
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181 FXTreeItem* findItemByData(const
void *ptr,FXTreeItem* start=NULL,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP) const;
00182
00183
00184 FXbool isItemCurrent(const FXTreeItem* item) const;
00185
00186
00187 FXbool isItemLeaf(const FXTreeItem* item) const;
00188
00189
00190
void sortRootItems();
00191
00192
00193
void sortItems();
00194
00195
00196
void sortChildItems(FXTreeItem* item);
00197
00198
00199 virtual
void setCurrentItem(FXTreeItem* item,FXbool notify=FALSE);
00200
00201
00202 FXTreeItem* getCurrentItem() const;
00203
00204
00205
void setItemText(FXTreeItem* item,const FXString& text);
00206
00207
00208 FXString getItemText(const FXTreeItem* item) const;
00209
00210
00211
void setItemOpenIcon(FXTreeItem* item,FXIcon* icon,FXbool owned=FALSE);
00212
00213
00214 FXIcon* getItemOpenIcon(const FXTreeItem* item) const;
00215
00216
00217
void setItemClosedIcon(FXTreeItem* item,FXIcon* icon,FXbool owned=FALSE);
00218
00219
00220 FXIcon* getItemClosedIcon(const FXTreeItem* item) const;
00221
00222
00223
void setItemData(FXTreeItem* item,
void* ptr) const;
00224
00225
00226
void* getItemData(const FXTreeItem* item) const;
00227
00228
00229 FXTreeListSortFunc getSortFunc() const;
00230
00231
00232
void setSortFunc(FXTreeListSortFunc func);
00233
00234
00235 FXbool isPaneShown() const;
00236
00237
00238
void setFont(FXFont* fnt);
00239
00240
00241 FXFont* getFont() const;
00242
00243
00244 FXuint getListStyle() const;
00245
00246
00247
void setListStyle(FXuint style);
00248
00249
00250
void setHelpText(const FXString& txt);
00251
00252
00253 const FXString& getHelpText() const;
00254
00255
00256
void setTipText(const FXString& txt);
00257
00258
00259 const FXString& getTipText() const;
00260
00261
00262 virtual
void save(FXStream& store) const;
00263
00264
00265 virtual
void load(FXStream& store);
00266
00267
00268 virtual ~FXTreeListBox();
00269 };
00270
00271 }
00272
00273 #endif