00001
00002
00003
00004
00005
00006
00007
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 }
00097 #endif
00098