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

Copyright © 1997-2010 Jeroen van der Zijp