nux-1.14.0
|
00001 /* 00002 * Copyright 2010 Inalogic® Inc. 00003 * 00004 * This program is free software: you can redistribute it and/or modify it 00005 * under the terms of the GNU Lesser General Public License, as 00006 * published by the Free Software Foundation; either version 2.1 or 3.0 00007 * of the License. 00008 * 00009 * This program is distributed in the hope that it will be useful, but 00010 * WITHOUT ANY WARRANTY; without even the implied warranties of 00011 * MERCHANTABILITY, SATISFACTORY QUALITY or FITNESS FOR A PARTICULAR 00012 * PURPOSE. See the applicable version of the GNU Lesser General Public 00013 * License for more details. 00014 * 00015 * You should have received a copy of both the GNU Lesser General Public 00016 * License along with this program. If not, see <http://www.gnu.org/licenses/> 00017 * 00018 * Authored by: Jay Taoko <jaytaoko@inalogic.com> 00019 * 00020 */ 00021 00022 00023 #ifndef FOLDERTREEITEM_H 00024 #define FOLDERTREEITEM_H 00025 00026 #include "TreeControl.h" 00027 00028 namespace nux 00029 { 00030 00031 class FolderTreeItem: public TreeItem 00032 { 00033 //NODE_XML_CLASS_MEMBER(FolderTreeItem); 00034 public: 00035 FolderTreeItem (const TCHAR *name, const TCHAR *Path, bool Searchable = true, NodeParameterType type = NODE_TYPE_STATICTEXT); 00036 virtual ~FolderTreeItem(); 00037 00038 virtual void DrawProperty (GraphicsEngine &GfxContext, TableCtrl *table, bool force_draw, Geometry geo, const BasePainter &Painter, RowHeader *row, const std::vector<ColumnHeader>& column_vector, Color ItemBackgroundColor = Color (0x0) ); 00039 00040 const TCHAR *GetPathName() 00041 { 00042 return m_Path.GetTCharPtr(); 00043 } 00044 const TCHAR *GetCleanFilename() 00045 { 00046 return m_Path.GetCleanFilename().GetTCharPtr(); 00047 } 00048 00049 void SetSynchronize (bool b) 00050 { 00051 m_Synchronize = b; 00052 } 00053 bool IsSynchronized() 00054 { 00055 return m_Synchronize; 00056 } 00057 00058 void SetOpenIcon (const BaseTexture* Texture) 00059 { 00060 if (FolderOpenIcon) 00061 FolderOpenIcon->UnReference(); 00062 FolderOpenIcon = Texture->Clone (); 00063 } 00064 void SetCloseIcon (const BaseTexture* Texture) 00065 { 00066 if (FolderClosedIcon) 00067 FolderClosedIcon->UnReference(); 00068 FolderClosedIcon = Texture->Clone (); 00069 } 00070 00071 bool IsSearchable() 00072 { 00073 return m_Searchable; 00074 } 00075 private: 00076 BaseTexture* FolderOpenIcon; 00077 BaseTexture* FolderClosedIcon; 00078 00079 NFileName m_Path; 00080 NString m_FolderName; 00081 bool m_Synchronize; // synchronize with windows explorer 00082 // True if this is a real directory that can be explorer. False if this is just a decoration item. 00083 // Non searchable folders must always be at the top of the tree; 00084 bool m_Searchable; 00085 00086 //virtual long ProcessPropertyEvent(IEvent &ievent, long TraverseInfo, long ProcessEventInfo); 00087 //virtual void DrawProperty(GraphicsEngine& GfxContext, TableCtrl* table, bool force_draw, Geometry geo, const BasePainter& Painter, RowHeader* row, const std::vector<ColumnHeader>& column_vector, Color ItemBackgroundColor = 0x0); 00088 //virtual void ComputePropertyLayout(int x, int y, RowHeader* row, const std::vector<ColumnHeader>& column_vector); 00089 //virtual int GetItemBestHeight(); 00090 }; 00091 00092 } 00093 00094 #endif // FOLDERTREEITEM_H