nux-0.9.48

Nux/FolderTreeItem.h

Go to the documentation of this file.
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       FolderOpenIcon = Texture->Clone ();
00061     }
00062     void SetCloseIcon (const BaseTexture* Texture)
00063     {
00064       FolderClosedIcon = Texture->Clone ();
00065     }
00066 
00067     bool IsSearchable()
00068     {
00069       return m_Searchable;
00070     }
00071   private:
00072     BaseTexture* FolderOpenIcon;
00073     BaseTexture* FolderClosedIcon;
00074 
00075     NFileName m_Path;
00076     NString m_FolderName;
00077     bool m_Synchronize; // synchronize with windows explorer
00078     // True if this is a real directory that can be explorer. False if this is just a decoration item.
00079     // Non searchable folders must always be at the top of the tree;
00080     bool m_Searchable;
00081 
00082     //virtual long ProcessPropertyEvent(IEvent &ievent, long TraverseInfo, long ProcessEventInfo);
00083     //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);
00084     //virtual void ComputePropertyLayout(int x, int y, RowHeader* row, const std::vector<ColumnHeader>& column_vector);
00085     //virtual int GetItemBestHeight();
00086   };
00087 
00088 }
00089 
00090 #endif // FOLDERTREEITEM_H