Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

StringListBox.h

Go to the documentation of this file.
00001 //345678901234567890123456789012345678901234567890123456789012345678901234567890
00002 // StringListBox.h
00003 //
00004 // TODO: Changed ColumnHeaders such that a new column
00005 // can be inserted somewhere. Then also change AddColumn here
00006 //
00007 // Author: Richard van Balen
00008 #ifndef OglGui_StringListBox_h
00009 #define OglGui_StringListBox_h
00010 
00011 #ifndef OglGui_Columns_h
00012 #include "OglGui/Columns.h"
00013 #endif
00014 
00015 #ifndef OglGui_DocScroller_h
00016 #include "OglGui/DocScroller.h"
00017 #endif
00018 
00019 #ifndef OglGui_StringColumns_h
00020 #include "OglGui/StringColumns.h"
00021 #endif
00022 
00023 namespace OglGui
00024 {
00025 
00026 class StringListBox : public Columns
00027 {
00028 public:
00029     typedef std::vector<std::string>    StrVector;
00030 
00031     StringListBox(int x, int y, int w, int h) :
00032         Columns(x, y, w, h)
00033     {
00034         Init();
00035     }
00036 
00037     StringListBox(Window* parent, int w, int h) :
00038         Columns(parent, w, h)
00039     {
00040         Init();
00041     }
00042 
00043     StringListBox(Window* parent,int x,int y,int w,int h):
00044         Columns(parent, x, y, w, h)
00045     {
00046         Init();
00047     }
00048 
00049     void AddColumn(strconst colName, int colWidth=100, ULONG bg=0)
00050     {
00051         CreateHeader(colName,colWidth);
00052         mStrColumns->AddColumn(colName,&StrVector(),colWidth,bg);
00053     }
00054 
00055     void AddColumn(strconst colName, StrVector* strVector,
00056                    int colWidth=100, ULONG bg=0)
00057     {
00058         CreateHeader(colName,colWidth);
00059         mStrColumns->AddColumn(colName,strVector,colWidth,bg);
00060     }
00061 
00062     void AddString(strconst str, int colIdx, ULONG col=oglBLACK,
00063                    int opts=0, int insertAt=-1)
00064     {
00065         mStrColumns->AddString(str,colIdx,col,opts,insertAt);
00066     }
00067 
00068     virtual void DisplayFunc()
00069     {
00070         int i = 0;
00071         while(mHeaders->Header(i))
00072         {
00073             StringColumns::ColumnData* colData
00074                 = mStrColumns->GetColumnData(mHeaders->Header(i)->GetText());
00075             if (colData)
00076                 colData->width = mHeaders->Header(i)->W();
00077             i++;
00078         }
00079         Columns::DisplayFunc();
00080     }
00081 
00082 private:
00083     DocScroller*        mScroller;
00084     StringColumns*      mStrColumns;
00085     void Init()
00086     {
00087         mScroller = new DocScroller(this,0,0,W(),H()-24,2);
00088         mScroller->ConnectTo(this);
00089         mStrColumns = new StringColumns(mScroller->ContentHolder(),0,0,60,60);
00090         mScroller->SetContentPane(mStrColumns);
00091         mScroller->SetDoc(mStrColumns);
00092         mStrColumns->ConnectTo(mScroller->ContentHolder());
00093     }
00094 };
00095 
00096 } // Namespace OglGui
00097 #endif
00098 

Generated on Fri Mar 19 09:31:39 2010 for ImpalaSrc by  doxygen 1.5.1