00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _CEGUITreeItem_h_
00029 #define _CEGUITreeItem_h_
00030
00031 #include "CEGUIBase.h"
00032 #include "CEGUIString.h"
00033 #include "CEGUIColourRect.h"
00034 #include "CEGUIRenderCache.h"
00035
00036 #if defined(_MSC_VER)
00037 # pragma warning(push)
00038 # pragma warning(disable : 4251)
00039 #endif
00040
00041
00042 namespace CEGUI
00043 {
00058 class CEGUIEXPORT TreeItem
00059 {
00060 public:
00061 typedef std::vector<TreeItem*> LBItemList;
00062
00063
00064
00065
00067 static const colour DefaultTextColour;
00069 static const colour DefaultSelectionColour;
00070
00071
00072
00073
00078 TreeItem(const String& text, uint item_id = 0, void* item_data = 0,
00079 bool disabled = false, bool auto_delete = true);
00080
00085 virtual ~TreeItem(void) {}
00086
00087
00088
00089
00100 Font* getFont(void) const;
00101
00109 ColourRect getTextColours(void) const
00110 { return d_textCols; }
00111
00112
00113
00114
00125 void setFont(Font* font)
00126 { d_font = font; }
00127
00139 void setFont(const String& font_name);
00140
00151 void setTextColours(const ColourRect& cols)
00152 { d_textCols = cols; }
00153
00177 void setTextColours(colour top_left_colour, colour top_right_colour,
00178 colour bottom_left_colour, colour bottom_right_colour);
00179
00190 void setTextColours(colour col)
00191 { setTextColours(col, col, col, col); }
00192
00203 const String& getText(void) const
00204 { return d_itemText; }
00205
00214 const String& getTooltipText(void) const
00215 { return d_tooltipText; }
00216
00227 uint getID(void) const
00228 { return d_itemID; }
00229
00241 void* getUserData(void) const
00242 { return d_itemData; }
00243
00252 bool isSelected(void) const
00253 { return d_selected; }
00254
00263 bool isDisabled(void) const
00264 { return d_disabled; }
00265
00279 bool isAutoDeleted(void) const
00280 { return d_autoDelete; }
00281
00292 const Window* getOwnerWindow(void)
00293 { return d_owner; }
00294
00302 ColourRect getSelectionColours(void) const
00303 { return d_selectCols; }
00304
00305
00313 const Image* getSelectionBrushImage(void) const
00314 { return d_selectBrush; }
00315
00316
00317
00318
00319
00333 void setText(const String& text)
00334 { d_itemText = text; }
00335
00347 void setTooltipText(const String& text)
00348 { d_tooltipText = text; }
00349
00363 void setID(uint item_id)
00364 { d_itemID = item_id; }
00365
00379 void setUserData(void* item_data)
00380 { d_itemData = item_data; }
00381
00393 void setSelected(bool setting)
00394 { d_selected = setting; }
00395
00407 void setDisabled(bool setting)
00408 { d_disabled = setting; }
00409
00425 void setAutoDeleted(bool setting)
00426 { d_autoDelete = setting; }
00427
00440 void setOwnerWindow(const Window* owner)
00441 { d_owner = owner; }
00442
00453 void setSelectionColours(const ColourRect& cols)
00454 { d_selectCols = cols; }
00455
00456
00480 void setSelectionColours(colour top_left_colour,
00481 colour top_right_colour,
00482 colour bottom_left_colour,
00483 colour bottom_right_colour);
00484
00495 void setSelectionColours(colour col)
00496 { setSelectionColours(col, col, col, col); }
00497
00498
00509 void setSelectionBrushImage(const Image* image)
00510 { d_selectBrush = image; }
00511
00512
00526 void setSelectionBrushImage(const String& imageset, const String& image);
00527
00536 void setButtonLocation(Rect &buttonOffset)
00537 { d_buttonLocation = buttonOffset; }
00538
00539 Rect &getButtonLocation(void)
00540 { return d_buttonLocation; }
00541
00542 bool getIsOpen(void)
00543 { return d_isOpen; }
00544
00545 void toggleIsOpen(void)
00546 { d_isOpen = !d_isOpen; }
00547
00548 TreeItem *getTreeItemFromIndex(size_t itemIndex);
00549
00550 size_t getItemCount(void) const
00551 { return d_listItems.size(); }
00552
00553 LBItemList &getItemList(void)
00554 { return d_listItems; }
00555
00556 void addItem(TreeItem* item);
00557 void removeItem(const TreeItem* item);
00558
00559 void setIcon(const Image &theIcon)
00560 { d_iconImage = (Image *)&theIcon; }
00561
00562
00563
00564
00572 virtual Size getPixelSize(void) const;
00573
00591 virtual void draw(const Vector3& position, float alpha,
00592 const Rect& clipper) const;
00593
00594 virtual void draw(RenderCache& cache,const Rect& targetRect, float zBase,
00595 float alpha, const Rect* clipper) const;
00596
00597
00598
00599
00604 virtual bool operator<(const TreeItem& rhs) const
00605 { return d_itemText < rhs.getText(); }
00606
00611 virtual bool operator>(const TreeItem& rhs) const
00612 { return d_itemText > rhs.getText(); }
00613
00614 protected:
00615
00616
00617
00623 ColourRect getModulateAlphaColourRect(const ColourRect& cols,
00624 float alpha) const;
00625
00631 colour calculateModulatedAlphaColour(colour col, float alpha) const;
00632
00633
00634
00635
00637 String d_itemText;
00639 String d_tooltipText;
00641 uint d_itemID;
00643 void* d_itemData;
00645 bool d_selected;
00647 bool d_disabled;
00649 bool d_autoDelete;
00651 Rect d_buttonLocation;
00653 const Window* d_owner;
00655 ColourRect d_selectCols;
00657 const Image* d_selectBrush;
00659 ColourRect d_textCols;
00661 Font* d_font;
00663 Image* d_iconImage;
00665 LBItemList d_listItems;
00667 bool d_isOpen;
00668 };
00669
00670 }
00671
00672 #if defined(_MSC_VER)
00673 # pragma warning(pop)
00674 #endif
00675
00676 #endif // end of guard _CEGUITreeItem_h_