24 #ifndef FXFOLDINGLIST_H
25 #define FXFOLDINGLIST_H
27 #ifndef FXSCROLLAREA_H
75 FXFoldingItem():parent(
NULL),prev(
NULL),next(
NULL),first(
NULL),last(
NULL),openIcon(
NULL),closedIcon(
NULL),data(
NULL),state(0),x(0),y(0){}
93 FXFoldingItem(
const FXString& text,
FXIcon* oi=
NULL,
FXIcon* ci=
NULL,
void* ptr=
NULL):parent(
NULL),prev(
NULL),next(
NULL),first(
NULL),last(
NULL),label(text),openIcon(oi),closedIcon(ci),data(ptr),state(0),x(0),y(0){}
105 FXFoldingItem* getFirst()
const {
return first; }
108 FXFoldingItem* getLast()
const {
return last; }
111 FXFoldingItem* getBelow()
const;
117 FXint getNumChildren()
const;
120 virtual void setText(
const FXString& txt);
123 const FXString& getText()
const {
return label; }
129 FXIcon* getOpenIcon()
const {
return openIcon; }
135 FXIcon* getClosedIcon()
const {
return closedIcon; }
138 void setData(
void* ptr){ data=ptr; }
141 void* getData()
const {
return data; }
144 virtual void setFocus(
FXbool focus);
147 FXbool hasFocus()
const {
return (state&FOCUS)!=0; }
150 virtual void setSelected(
FXbool selected);
153 FXbool isSelected()
const {
return (state&SELECTED)!=0; }
156 virtual void setOpened(
FXbool opened);
159 FXbool isOpened()
const {
return (state&OPENED)!=0; }
162 virtual void setExpanded(
FXbool expanded);
165 FXbool isExpanded()
const {
return (state&EXPANDED)!=0; }
168 virtual void setEnabled(
FXbool enabled);
171 FXbool isEnabled()
const {
return (state&DISABLED)==0; }
174 virtual void setDraggable(
FXbool draggable);
177 FXbool isDraggable()
const {
return (state&DRAGGABLE)!=0; }
180 FXbool hasItems()
const {
return (state&HASITEMS)!=0; }
183 void setHasItems(
FXbool flag);
186 FXbool isChildOf(
const FXFoldingItem* item)
const;
189 FXbool isParentOf(
const FXFoldingItem* item)
const;
192 virtual FXint getWidth(
const FXFoldingList* list)
const;
195 virtual FXint getHeight(
const FXFoldingList* list)
const;
198 virtual void create();
201 virtual void detach();
204 virtual void destroy();
207 virtual void save(FXStream& store)
const;
323 virtual void create();
326 virtual void detach();
329 virtual void layout();
332 virtual FXint getDefaultWidth();
335 virtual FXint getDefaultHeight();
338 virtual FXint getContentWidth();
341 virtual FXint getContentHeight();
344 virtual void recalc();
347 virtual bool canFocus()
const;
350 virtual void setFocus();
353 virtual void killFocus();
356 FXHeader* getHeader()
const {
return header; }
359 void setHeaders(
const FXchar** strings,
FXint size=1);
368 void removeHeader(
FXint index);
389 FXint getNumHeaders()
const;
392 FXint getNumItems()
const;
395 FXint getNumVisible()
const {
return visible; }
398 void setNumVisible(
FXint nvis);
413 FXFoldingItem* insertItem(FXFoldingItem* other,FXFoldingItem* father,FXFoldingItem* item,
FXbool notify=
FALSE);
416 FXFoldingItem* insertItem(FXFoldingItem* other,FXFoldingItem* father,
const FXString& text,FXIcon* oi=
NULL,FXIcon* ci=
NULL,
void* ptr=
NULL,
FXbool notify=
FALSE);
419 FXFoldingItem* appendItem(FXFoldingItem* father,FXFoldingItem* item,
FXbool notify=
FALSE);
422 FXFoldingItem* appendItem(FXFoldingItem* father,
const FXString& text,FXIcon* oi=
NULL,FXIcon* ci=
NULL,
void* ptr=
NULL,
FXbool notify=
FALSE);
425 FXFoldingItem* prependItem(FXFoldingItem* father,FXFoldingItem* item,
FXbool notify=
FALSE);
428 FXFoldingItem* prependItem(FXFoldingItem* father,
const FXString& text,FXIcon* oi=
NULL,FXIcon* ci=
NULL,
void* ptr=
NULL,
FXbool notify=
FALSE);
431 FXFoldingItem *moveItem(FXFoldingItem* other,FXFoldingItem* father,FXFoldingItem* item);
434 FXFoldingItem* extractItem(FXFoldingItem* item,
FXbool notify=
FALSE);
437 void removeItem(FXFoldingItem* item,
FXbool notify=
FALSE);
440 void removeItems(FXFoldingItem* fm,FXFoldingItem* to,
FXbool notify=
FALSE);
446 FXint getItemWidth(
const FXFoldingItem* item)
const {
return item->getWidth(
this); }
449 FXint getItemHeight(
const FXFoldingItem* item)
const {
return item->getHeight(
this); }
452 virtual FXFoldingItem* getItemAt(
FXint x,
FXint y)
const;
476 virtual void makeItemVisible(FXFoldingItem* item);
479 void setItemText(FXFoldingItem* item,
const FXString& text);
482 FXString getItemText(
const FXFoldingItem* item)
const;
485 void setItemOpenIcon(FXFoldingItem* item,FXIcon* icon,
FXbool owned=
FALSE);
488 FXIcon* getItemOpenIcon(
const FXFoldingItem* item)
const;
491 void setItemClosedIcon(FXFoldingItem* item,FXIcon* icon,
FXbool owned=
FALSE);
494 FXIcon* getItemClosedIcon(
const FXFoldingItem* item)
const;
497 void setItemData(FXFoldingItem* item,
void* ptr)
const;
500 void* getItemData(
const FXFoldingItem* item)
const;
503 FXbool isItemSelected(
const FXFoldingItem* item)
const;
506 FXbool isItemCurrent(
const FXFoldingItem* item)
const;
509 FXbool isItemVisible(
const FXFoldingItem* item)
const;
512 FXbool isItemOpened(
const FXFoldingItem* item)
const;
515 FXbool isItemExpanded(
const FXFoldingItem* item)
const;
566 FXFoldingItem* getCurrentItem()
const {
return currentitem; }
581 void sortRootItems();
593 void setFont(
FXFont* fnt);
596 FXFont* getFont()
const {
return font; }
599 void setIndent(
FXint in);
602 FXint getIndent()
const {
return indent; }
605 FXColor getTextColor()
const {
return textColor; }
608 void setTextColor(
FXColor clr);
611 FXColor getSelBackColor()
const {
return selbackColor; }
614 void setSelBackColor(
FXColor clr);
617 FXColor getSelTextColor()
const {
return seltextColor; }
620 void setSelTextColor(
FXColor clr);
623 FXColor getLineColor()
const {
return lineColor; }
626 void setLineColor(
FXColor clr);
629 FXuint getListStyle()
const;
632 void setListStyle(
FXuint style);
635 void setHelpText(
const FXString& text);
638 const FXString& getHelpText()
const {
return help; }
641 virtual void save(FXStream& store)
const;
644 virtual void load(FXStream& store);
647 virtual ~FXFoldingList();
Boxes to expand shown.
Definition: FXFoldingList.h:51
Search forward (default)
Definition: fxdefs.h:370
char FXchar
Definition: fxdefs.h:387
Extended selection mode allows for drag-selection of ranges of items.
Definition: FXFoldingList.h:45
Definition: FXWindow.h:241
unsigned int FXuint
Definition: fxdefs.h:396
FXuint FXSelector
Association key.
Definition: FXObject.h:53
Multiple selection mode is used for selection of individual items.
Definition: FXFoldingList.h:48
#define FXAPI
Definition: fxdefs.h:122
FXuchar FXbool
Definition: fxdefs.h:393
A Folding List Widget resembles a Tree list except that it supports a header control to provide each ...
Definition: FXFoldingList.h:236
Base composite.
Definition: FXComposite.h:35
Tree list Item.
Definition: FXFoldingList.h:63
#define NULL
Definition: fxdefs.h:41
FXuint FXColor
Definition: fxdefs.h:454
A stream is a way to serialize data and objects into a byte stream.
Definition: FXStream.h:99
Single selection mode allows up to one item to be selected.
Definition: FXFoldingList.h:46
Abstract Device Context.
Definition: FXDC.h:191
int FXint
Definition: fxdefs.h:397
An Icon is an image with two additional server-side resources: a shape bitmap, which is used to mask ...
Definition: FXIcon.h:45
Automatically select under cursor.
Definition: FXFoldingList.h:49
Definition: FXFoldingList.h:53
FXint(* FXFoldingListSortFunc)(const FXFoldingItem *, const FXFoldingItem *)
Folding item collate function.
Definition: FXFoldingList.h:208
#define FALSE
Definition: fxdefs.h:35
Display root boxes also.
Definition: FXFoldingList.h:52
Object is the base class for all objects in FOX; in order to receive messages from the user interface...
Definition: FXObject.h:166
Lines shown.
Definition: FXFoldingList.h:50
Wrap around to start.
Definition: fxdefs.h:373
Browse selection mode enforces one single item to be selected at all times.
Definition: FXFoldingList.h:47
A Directory List widget provides a tree-structured view of the file system.
Definition: FXDirList.h:122
Font class.
Definition: FXFont.h:142
#define FXDECLARE(classname)
Macro to set up class declaration.
Definition: FXObject.h:92
FXString provides essential string manipulation capabilities.
Definition: FXString.h:33