Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members

FXIconList.h

Go to the documentation of this file.
00001 /********************************************************************************
00002 *                                                                               *
00003 *                         I c o n   L i s t   W i d g e t                       *
00004 *                                                                               *
00005 *********************************************************************************
00006 * Copyright (C) 1999,2006 by Jeroen van der Zijp.   All Rights Reserved.        *
00007 *********************************************************************************
00008 * This library is free software; you can redistribute it and/or                 *
00009 * modify it under the terms of the GNU Lesser General Public                    *
00010 * License as published by the Free Software Foundation; either                  *
00011 * version 2.1 of the License, or (at your option) any later version.            *
00012 *                                                                               *
00013 * This library is distributed in the hope that it will be useful,               *
00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of                *
00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU             *
00016 * Lesser General Public License for more details.                               *
00017 *                                                                               *
00018 * You should have received a copy of the GNU Lesser General Public              *
00019 * License along with this library; if not, write to the Free Software           *
00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.    *
00021 *********************************************************************************
00022 * $Id: FXIconList.h,v 1.95 2006/01/22 17:58:04 fox Exp $                        *
00023 ********************************************************************************/
00024 #ifndef FXICONLIST_H
00025 #define FXICONLIST_H
00026 
00027 #ifndef FXSCROLLAREA_H
00028 #include "FXScrollArea.h"
00029 #endif
00030 
00031 namespace FX {
00032 
00033 
00034 /// Icon list styles
00035 enum {
00036   ICONLIST_EXTENDEDSELECT = 0,                /// Extended selection mode
00037   ICONLIST_SINGLESELECT   = 0x00100000,       /// At most one selected item
00038   ICONLIST_BROWSESELECT   = 0x00200000,       /// Always exactly one selected item
00039   ICONLIST_MULTIPLESELECT = 0x00300000,       /// Multiple selection mode
00040   ICONLIST_AUTOSIZE       = 0x00400000,       /// Automatically size item spacing
00041   ICONLIST_DETAILED       = 0,                /// List mode
00042   ICONLIST_MINI_ICONS     = 0x00800000,       /// Mini Icon mode
00043   ICONLIST_BIG_ICONS      = 0x01000000,       /// Big Icon mode
00044   ICONLIST_ROWS           = 0,                /// Row-wise mode
00045   ICONLIST_COLUMNS        = 0x02000000,       /// Column-wise mode
00046   ICONLIST_NORMAL         = ICONLIST_EXTENDEDSELECT
00047   };
00048 
00049 
00050 class FXIcon;
00051 class FXHeader;
00052 class FXFont;
00053 class FXIconList;
00054 class FXFileList;
00055 
00056 
00057 /// Icon item
00058 class FXAPI FXIconItem : public FXObject {
00059   FXDECLARE(FXIconItem)
00060   friend class FXIconList;
00061   friend class FXFileList;
00062 protected:
00063   FXString  label;
00064   FXIcon   *bigIcon;
00065   FXIcon   *miniIcon;
00066   void     *data;
00067   FXuint    state;
00068 private:
00069   FXIconItem(const FXIconItem&);
00070   FXIconItem& operator=(const FXIconItem&);
00071 protected:
00072   FXIconItem():bigIcon(NULL),miniIcon(NULL),data(NULL),state(0){}
00073   virtual void draw(const FXIconList* list,FXDC& dc,FXint x,FXint y,FXint w,FXint h) const;
00074   virtual FXint hitItem(const FXIconList* list,FXint rx,FXint ry,FXint rw=1,FXint rh=1) const;
00075 protected:
00076   virtual void drawBigIcon(const FXIconList* list,FXDC& dc,FXint x,FXint y,FXint w,FXint h) const;
00077   virtual void drawMiniIcon(const FXIconList* list,FXDC& dc,FXint x,FXint y,FXint w,FXint h) const;
00078   virtual void drawDetails(const FXIconList* list,FXDC& dc,FXint x,FXint y,FXint w,FXint h) const;
00079 public:
00080   enum {
00081     SELECTED      = 1,  /// Selected
00082     FOCUS         = 2,  /// Focus
00083     DISABLED      = 4,  /// Disabled
00084     DRAGGABLE     = 8,  /// Draggable
00085     BIGICONOWNED  = 16, /// Big icon owned by item
00086     MINIICONOWNED = 32  /// Mini icon owned by item
00087     };
00088 public:
00089 
00090   /// Construct new item with given text, icons, and user-data
00091   FXIconItem(const FXString& text,FXIcon* bi=NULL,FXIcon* mi=NULL,void* ptr=NULL):label(text),bigIcon(bi),miniIcon(mi),data(ptr),state(0){}
00092 
00093   /// Change item's text label
00094   virtual void setText(const FXString& txt);
00095 
00096   /// Return item's text label
00097   const FXString& getText() const { return label; }
00098 
00099   /// Change item's big icon, deleting the old icon if it was owned
00100   virtual void setBigIcon(FXIcon* icn,FXbool owned=FALSE);
00101 
00102   /// Return item's big icon
00103   FXIcon* getBigIcon() const { return bigIcon; }
00104 
00105   /// Change item's mini icon, deleting the old icon if it was owned
00106   virtual void setMiniIcon(FXIcon* icn,FXbool owned=FALSE);
00107 
00108   /// Return item's mini icon
00109   FXIcon* getMiniIcon() const { return miniIcon; }
00110 
00111   /// Change item's user data
00112   void setData(void* ptr){ data=ptr; }
00113 
00114   /// Get item's user data
00115   void* getData() const { return data; }
00116 
00117   /// Make item draw as focused
00118   virtual void setFocus(FXbool focus);
00119 
00120   /// Return true if item has focus
00121   FXbool hasFocus() const { return (state&FOCUS)!=0; }
00122 
00123   /// Select item
00124   virtual void setSelected(FXbool selected);
00125 
00126   /// Return true if this item is selected
00127   FXbool isSelected() const { return (state&SELECTED)!=0; }
00128 
00129   /// Enable or disable item
00130   virtual void setEnabled(FXbool enabled);
00131 
00132   /// Return true if this item is enabled
00133   FXbool isEnabled() const { return (state&DISABLED)==0; }
00134 
00135   /// Make item draggable
00136   virtual void setDraggable(FXbool draggable);
00137 
00138   /// Return true if this item is draggable
00139   FXbool isDraggable() const { return (state&DRAGGABLE)!=0; }
00140 
00141   /// Return width of item as drawn in list
00142   virtual FXint getWidth(const FXIconList* list) const;
00143 
00144   /// Return height of item as drawn in list
00145   virtual FXint getHeight(const FXIconList* list) const;
00146 
00147   /// Create server-side resources
00148   virtual void create();
00149 
00150   /// Detach server-side resources
00151   virtual void detach();
00152 
00153   /// Destroy server-side resources
00154   virtual void destroy();
00155 
00156   /// Save to stream
00157   virtual void save(FXStream& store) const;
00158 
00159   /// Load from stream
00160   virtual void load(FXStream& store);
00161 
00162   /// Destroy item and free icons if owned
00163   virtual ~FXIconItem();
00164   };
00165 
00166 
00167 /// Icon item collate function
00168 typedef FXint (*FXIconListSortFunc)(const FXIconItem*,const FXIconItem*);
00169 
00170 
00171 typedef FXObjectListOf<FXIconItem> FXIconItemList;
00172 
00173 
00174 /**
00175 * A Icon List Widget displays a list of items, each with a text and
00176 * optional icon.  Icon List can display its items in essentially three
00177 * different ways; in big-icon mode, the bigger of the two icons is used
00178 * for each item, and the text is placed underneath the icon. In mini-
00179 * icon mode, the icons are listed in rows and columns, with the smaller
00180 * icon preceding the text.  Finally, in detail mode the icons are listed
00181 * in a single column, and all fields of the text are shown under a
00182 * header control with one button for each subfield.
00183 * When an item's selected state changes, the icon list sends
00184 * a SEL_SELECTED or SEL_DESELECTED message.  A change of the current
00185 * item is signified by the SEL_CHANGED message.
00186 * The icon list sends SEL_COMMAND messages when the user clicks on an item,
00187 * and SEL_CLICKED, SEL_DOUBLECLICKED, and SEL_TRIPLECLICKED when the user
00188 * clicks once, twice, or thrice, respectively.
00189 * When items are added, replaced, or removed, the icon list sends messages
00190 * of the type SEL_INSERTED, SEL_REPLACED, or SEL_DELETED.
00191 * In each of these cases, the index to the item, if any, is passed in the
00192 * 3rd argument of the message.
00193 */
00194 class FXAPI FXIconList : public FXScrollArea {
00195   FXDECLARE(FXIconList)
00196 protected:
00197   FXHeader          *header;            // Header control
00198   FXIconItemList     items;   // Item list
00199   FXint              nrows;             // Number of rows
00200   FXint              ncols;             // Number of columns
00201   FXint              anchor;            // Anchor item
00202   FXint              current;           // Current item
00203   FXint              extent;            // Extent item
00204   FXint              cursor;            // Cursor item
00205   FXint              viewable;          // Visible item
00206   FXFont            *font;              // Font
00207   FXIconListSortFunc sortfunc;          // Item sort function
00208   FXColor            textColor;         // Text color
00209   FXColor            selbackColor;      // Selected back color
00210   FXColor            seltextColor;      // Selected text color
00211   FXint              itemWidth;         // Item width
00212   FXint              itemHeight;        // Item height
00213   FXint              itemSpace;         // Space for item label
00214   FXint              anchorx;           // Rectangular selection
00215   FXint              anchory;
00216   FXint              currentx;
00217   FXint              currenty;
00218   FXint              grabx;             // Grab point x
00219   FXint              graby;             // Grab point y
00220   FXString           lookup;            // Lookup string
00221   FXString           help;              // Help text
00222   FXbool             state;             // State of item
00223 protected:
00224   FXIconList();
00225   void recompute();
00226   void getrowscols(FXint& nr,FXint& nc,FXint w,FXint h) const;
00227   void drawLasso(FXint x0,FXint y0,FXint x1,FXint y1);
00228   void lassoChanged(FXint ox,FXint oy,FXint ow,FXint oh,FXint nx,FXint ny,FXint nw,FXint nh,FXbool notify);
00229   virtual void moveContents(FXint x,FXint y);
00230   virtual FXIconItem *createItem(const FXString& text,FXIcon *big,FXIcon* mini,void* ptr);
00231   static FXint compareSection(const FXchar *p,const FXchar* q,FXint s);
00232   static FXint compareSectionCase(const FXchar *p,const FXchar* q,FXint s);
00233 private:
00234   FXIconList(const FXIconList&);
00235   FXIconList &operator=(const FXIconList&);
00236 public:
00237   long onPaint(FXObject*,FXSelector,void*);
00238   long onEnter(FXObject*,FXSelector,void*);
00239   long onLeave(FXObject*,FXSelector,void*);
00240   long onUngrabbed(FXObject*,FXSelector,void*);
00241   long onKeyPress(FXObject*,FXSelector,void*);
00242   long onKeyRelease(FXObject*,FXSelector,void*);
00243   long onLeftBtnPress(FXObject*,FXSelector,void*);
00244   long onLeftBtnRelease(FXObject*,FXSelector,void*);
00245   long onRightBtnPress(FXObject*,FXSelector,void*);
00246   long onRightBtnRelease(FXObject*,FXSelector,void*);
00247   long onMotion(FXObject*,FXSelector,void*);
00248   long onQueryTip(FXObject*,FXSelector,void*);
00249   long onQueryHelp(FXObject*,FXSelector,void*);
00250   long onTipTimer(FXObject*,FXSelector,void*);
00251   long onCmdSelectAll(FXObject*,FXSelector,void*);
00252   long onCmdDeselectAll(FXObject*,FXSelector,void*);
00253   long onCmdSelectInverse(FXObject*,FXSelector,void*);
00254   long onCmdArrangeByRows(FXObject*,FXSelector,void*);
00255   long onUpdArrangeByRows(FXObject*,FXSelector,void*);
00256   long onCmdArrangeByColumns(FXObject*,FXSelector,void*);
00257   long onUpdArrangeByColumns(FXObject*,FXSelector,void*);
00258   long onCmdShowDetails(FXObject*,FXSelector,void*);
00259   long onUpdShowDetails(FXObject*,FXSelector,void*);
00260   long onCmdShowBigIcons(FXObject*,FXSelector,void*);
00261   long onUpdShowBigIcons(FXObject*,FXSelector,void*);
00262   long onCmdShowMiniIcons(FXObject*,FXSelector,void*);
00263   long onUpdShowMiniIcons(FXObject*,FXSelector,void*);
00264   long onHeaderChanged(FXObject*,FXSelector,void*);
00265   long onHeaderResize(FXObject*,FXSelector,void*);
00266   long onFocusIn(FXObject*,FXSelector,void*);
00267   long onFocusOut(FXObject*,FXSelector,void*);
00268   long onClicked(FXObject*,FXSelector,void*);
00269   long onDoubleClicked(FXObject*,FXSelector,void*);
00270   long onTripleClicked(FXObject*,FXSelector,void*);
00271   long onCommand(FXObject*,FXSelector,void*);
00272   long onAutoScroll(FXObject*,FXSelector,void*);
00273   long onLookupTimer(FXObject*,FXSelector,void*);
00274   long onCmdSetValue(FXObject*,FXSelector,void*);
00275   long onCmdGetIntValue(FXObject*,FXSelector,void*);
00276   long onCmdSetIntValue(FXObject*,FXSelector,void*);
00277 public:
00278   static FXint ascending(const FXIconItem* a,const FXIconItem* b);
00279   static FXint descending(const FXIconItem* a,const FXIconItem* b);
00280   static FXint ascendingCase(const FXIconItem* a,const FXIconItem* b);
00281   static FXint descendingCase(const FXIconItem* a,const FXIconItem* b);
00282 public:
00283   enum {
00284     ID_SHOW_DETAILS=FXScrollArea::ID_LAST,
00285     ID_SHOW_MINI_ICONS,
00286     ID_SHOW_BIG_ICONS,
00287     ID_ARRANGE_BY_ROWS,
00288     ID_ARRANGE_BY_COLUMNS,
00289     ID_HEADER_CHANGE,
00290     ID_LOOKUPTIMER,
00291     ID_SELECT_ALL,
00292     ID_DESELECT_ALL,
00293     ID_SELECT_INVERSE,
00294     ID_LAST
00295     };
00296 public:
00297 
00298   /// Construct icon list with no items in it initially
00299   FXIconList(FXComposite *p,FXObject* tgt=NULL,FXSelector sel=0,FXuint opts=ICONLIST_NORMAL,FXint x=0,FXint y=0,FXint w=0,FXint h=0);
00300 
00301   /// Create server-side resources
00302   virtual void create();
00303 
00304   /// Detach server-side resources
00305   virtual void detach();
00306 
00307   /// Recalculate layout
00308   virtual void recalc();
00309 
00310   /// Perform layout
00311   virtual void layout();
00312 
00313  /// Compute and return content width
00314   virtual FXint getContentWidth();
00315 
00316   /// Return content height
00317   virtual FXint getContentHeight();
00318 
00319   /// Icon list can receive focus
00320   virtual bool canFocus() const;
00321 
00322   /// Move the focus to this window
00323   virtual void setFocus();
00324 
00325   /// Remove the focus from this window
00326   virtual void killFocus();
00327 
00328   /// Return viewport size
00329   virtual FXint getViewportHeight();
00330 
00331   /// Resize this window to the specified width and height
00332   virtual void resize(FXint w,FXint h);
00333 
00334   /// Move and resize this window in the parent's coordinates
00335   virtual void position(FXint x,FXint y,FXint w,FXint h);
00336 
00337   /// Return number of items
00338   FXint getNumItems() const { return items.no(); }
00339 
00340   /// Return number of rows
00341   FXint getNumRows() const { return nrows; }
00342 
00343   /// Return number of columns
00344   FXint getNumCols() const { return ncols; }
00345 
00346   /// Return header control
00347   FXHeader* getHeader() const { return header; }
00348 
00349   /// Set headers from array of strings
00350   void setHeaders(const FXchar** strings,FXint size=1);
00351 
00352   /// Set headers from newline separated strings
00353   void setHeaders(const FXString& strings,FXint size=1);
00354 
00355   /// Append header with given text and optional icon
00356   void appendHeader(const FXString& text,FXIcon *icon=NULL,FXint size=1);
00357 
00358   /// Remove header at index
00359   void removeHeader(FXint index);
00360 
00361   /// Change text of header at index
00362   void setHeaderText(FXint index,const FXString& text);
00363 
00364   /// Return text of header at index
00365   FXString getHeaderText(FXint index) const;
00366 
00367   /// Change icon of header at index
00368   void setHeaderIcon(FXint index,FXIcon *icon);
00369 
00370   /// Return icon of header at index
00371   FXIcon* getHeaderIcon(FXint index) const;
00372 
00373   /// Change size of header at index
00374   void setHeaderSize(FXint index,FXint size);
00375 
00376   /// Return width of header at index
00377   FXint getHeaderSize(FXint index) const;
00378 
00379   /// Return number of headers
00380   FXint getNumHeaders() const;
00381 
00382   /// Return the item at the given index
00383   FXIconItem *getItem(FXint index) const;
00384 
00385   /// Replace the item with a [possibly subclassed] item
00386   FXint setItem(FXint index,FXIconItem* item,FXbool notify=FALSE);
00387 
00388   /// Replace items text, icons, and user-data pointer
00389   FXint setItem(FXint index,const FXString& text,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00390 
00391   /// Fill list by appending items from array of strings
00392   FXint fillItems(const FXchar** strings,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00393 
00394   /// Fill list by appending items from newline separated strings
00395   FXint fillItems(const FXString& strings,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00396 
00397   /// Insert a new [possibly subclassed] item at the give index
00398   FXint insertItem(FXint index,FXIconItem* item,FXbool notify=FALSE);
00399 
00400   /// Insert item at index with given text, icons, and user-data pointer
00401   FXint insertItem(FXint index,const FXString& text,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00402 
00403   /// Append a [possibly subclassed] item to the end of the list
00404   FXint appendItem(FXIconItem* item,FXbool notify=FALSE);
00405 
00406   /// Append new item with given text and optional icons, and user-data pointer
00407   FXint appendItem(const FXString& text,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00408 
00409   /// Prepend a [possibly subclassed] item to the end of the list
00410   FXint prependItem(FXIconItem* item,FXbool notify=FALSE);
00411 
00412   /// Prepend new item with given text and optional icons, and user-data pointer
00413   FXint prependItem(const FXString& text,FXIcon *big=NULL,FXIcon* mini=NULL,void* ptr=NULL,FXbool notify=FALSE);
00414 
00415   /// Move item from oldindex to newindex
00416   FXint moveItem(FXint newindex,FXint oldindex,FXbool notify=FALSE);
00417 
00418   /// Extract item from list
00419   FXIconItem* extractItem(FXint index,FXbool notify=FALSE);
00420 
00421   /// Remove item from list
00422   void removeItem(FXint index,FXbool notify=FALSE);
00423 
00424   /// Remove all items from list
00425   void clearItems(FXbool notify=FALSE);
00426 
00427   /// Return item width
00428   FXint getItemWidth() const { return itemWidth; }
00429 
00430   /// Return item height
00431   FXint getItemHeight() const { return itemHeight; }
00432 
00433   /// Return index of item at x,y, or -1 if none
00434   virtual FXint getItemAt(FXint x,FXint y) const;
00435 
00436   /**
00437   * Search items by name, beginning from item start.  If the start
00438   * item is -1 the search will start at the first item in the list.
00439   * Flags may be SEARCH_FORWARD or SEARCH_BACKWARD to control the
00440   * search direction; this can be combined with SEARCH_NOWRAP or SEARCH_WRAP
00441   * to control whether the search wraps at the start or end of the list.
00442   * The option SEARCH_IGNORECASE causes a case-insensitive match.  Finally,
00443   * passing SEARCH_PREFIX causes searching for a prefix of the item name.
00444   * Return -1 if no matching item is found.
00445   */
00446   FXint findItem(const FXString& text,FXint start=-1,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP) const;
00447 
00448   /**
00449   * Search items by associated user data, beginning from item start. If the
00450   * start item is -1 the search will start at the first item in the list.
00451   * Flags may be SEARCH_FORWARD or SEARCH_BACKWARD to control the
00452   * search direction; this can be combined with SEARCH_NOWRAP or SEARCH_WRAP
00453   * to control whether the search wraps at the start or end of the list.
00454   */
00455   FXint findItemByData(const void *ptr,FXint start=-1,FXuint flags=SEARCH_FORWARD|SEARCH_WRAP) const;
00456 
00457   /// Scroll to make item at index visible
00458   virtual void makeItemVisible(FXint index);
00459 
00460   /// Change item text
00461   void setItemText(FXint index,const FXString& text);
00462 
00463   /// Return item text
00464   FXString getItemText(FXint index) const;
00465 
00466   /// Change item big icon
00467   void setItemBigIcon(FXint index,FXIcon* icon,FXbool owned=FALSE);
00468 
00469   /// Return big icon of item at index
00470   FXIcon* getItemBigIcon(FXint index) const;
00471 
00472   /// Change item mini icon
00473   void setItemMiniIcon(FXint index,FXIcon* icon,FXbool owned=FALSE);
00474 
00475   /// Return mini icon of item at index
00476   FXIcon* getItemMiniIcon(FXint index) const;
00477 
00478   /// Change item user-data pointer
00479   void setItemData(FXint index,void* ptr);
00480 
00481   /// Return item user-data pointer
00482   void* getItemData(FXint index) const;
00483 
00484   /// Return TRUE if item at index is selected
00485   FXbool isItemSelected(FXint index) const;
00486 
00487   /// Return TRUE if item at index is current
00488   FXbool isItemCurrent(FXint index) const;
00489 
00490   /// Return TRUE if item at index is visible
00491   FXbool isItemVisible(FXint index) const;
00492 
00493   /// Return TRUE if item at index is enabled
00494   FXbool isItemEnabled(FXint index) const;
00495 
00496   /// Return item hit code: 0 outside, 1 icon, 2 text
00497   FXint hitItem(FXint index,FXint x,FXint y,FXint ww=1,FXint hh=1) const;
00498 
00499   /// Repaint item at index
00500   void updateItem(FXint index) const;
00501 
00502   /// Enable item at index
00503   virtual FXbool enableItem(FXint index);
00504 
00505   /// Disable item at index
00506   virtual FXbool disableItem(FXint index);
00507 
00508   /// Select item at index
00509   virtual FXbool selectItem(FXint index,FXbool notify=FALSE);
00510 
00511   /// Deselect item at index
00512   virtual FXbool deselectItem(FXint index,FXbool notify=FALSE);
00513 
00514   /// Toggle item at index
00515   virtual FXbool toggleItem(FXint index,FXbool notify=FALSE);
00516 
00517   /// Select items in rectangle
00518   virtual FXbool selectInRectangle(FXint x,FXint y,FXint w,FXint h,FXbool notify=FALSE);
00519 
00520   /// Extend selection from anchor index to index
00521   virtual FXbool extendSelection(FXint index,FXbool notify=FALSE);
00522 
00523   /// Deselect all items
00524   virtual FXbool killSelection(FXbool notify=FALSE);
00525 
00526   /// Change current item index
00527   virtual void setCurrentItem(FXint index,FXbool notify=FALSE);
00528 
00529   /// Return current item index, or -1 if none
00530   FXint getCurrentItem() const { return current; }
00531 
00532   /// Change anchor item index
00533   void setAnchorItem(FXint index);
00534 
00535   /// Return anchor item index, or -1 if none
00536   FXint getAnchorItem() const { return anchor; }
00537 
00538   /// Return index of item under cursor, or -1 if none
00539   FXint getCursorItem() const { return cursor; }
00540 
00541   /// Sort items
00542   void sortItems();
00543 
00544   /// Return sort function
00545   FXIconListSortFunc getSortFunc() const { return sortfunc; }
00546 
00547   /// Change sort function
00548   void setSortFunc(FXIconListSortFunc func){ sortfunc=func; }
00549 
00550   /// Change text font
00551   void setFont(FXFont* fnt);
00552 
00553   /// Return text font
00554   FXFont* getFont() const { return font; }
00555 
00556   /// Return normal text color
00557   FXColor getTextColor() const { return textColor; }
00558 
00559   /// Change normal text color
00560   void setTextColor(FXColor clr);
00561 
00562   /// Return selected text background
00563   FXColor getSelBackColor() const { return selbackColor; }
00564 
00565   /// Change selected text background
00566   void setSelBackColor(FXColor clr);
00567 
00568   /// Return selected text color
00569   FXColor getSelTextColor() const { return seltextColor; }
00570 
00571   /// Change selected text color
00572   void setSelTextColor(FXColor clr);
00573 
00574   /// Change maximum item space for each item
00575   void setItemSpace(FXint s);
00576 
00577   /// Return maximum item space
00578   FXint getItemSpace() const { return itemSpace; }
00579 
00580   /// Get the current icon list style
00581   FXuint getListStyle() const;
00582 
00583   /// Set the current icon list style.
00584   void setListStyle(FXuint style);
00585 
00586   /// Set the status line help text for this widget
00587   void setHelpText(const FXString& text);
00588 
00589   /// Get the status line help text for this widget
00590   const FXString& getHelpText() const { return help; }
00591 
00592   /// Save list to a stream
00593   virtual void save(FXStream& store) const;
00594 
00595   /// Load list from a stream
00596   virtual void load(FXStream& store);
00597 
00598   /// Destructor
00599   virtual ~FXIconList();
00600   };
00601 
00602 }
00603 
00604 #endif

Copyright © 1997-2005 Jeroen van der Zijp