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
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161
00162
00163
00164 #ifndef INC_MGUI_GRID_H
00165 #define INC_MGUI_GRID_H
00166
00167 #ifndef INC_MGUI_CTRL_H
00168 #include <mgui/ctrl.h>
00169 #endif
00170
00171 namespace MGD {
00172 class CONTEXT;
00173 }
00174
00175 struct LPOINT2D;
00176
00177 namespace MGUI {
00178
00179 class IMAGELIST;
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190 class CTRL_GRID : public MGUI::CTRL {
00191 public:
00192
00193
00194 enum FORMAT {
00195 FORMAT_Left = 0,
00196 FORMAT_Right = 1,
00197 FORMAT_Center = 2
00198 };
00199
00200 enum STYLE {
00201 STYLE_AlignLeft = 0x0800,
00202 STYLE_AlignTop = 0x0000,
00203 STYLE_AutoArrange = 0x0100,
00204 STYLE_EditLabels = 0x0200,
00205 STYLE_NoColumnHeader = 0x4000,
00206 STYLE_NoLabelWrap = 0x0080,
00207 STYLE_NoScroll = 0x2000,
00208 STYLE_NoSortHeader = 0x8000,
00209 STYLE_OwnerData = 0x1000,
00210 STYLE_ShowSelAlways = 0x0008,
00211 STYLE_NoGridLines = 0x0001,
00212 STYLE_SingleSel = 0x0004,
00213 STYLE_SortAscending = 0x0010,
00214 STYLE_SortDescending = 0x0020
00215 };
00216
00217 enum VIEWMODE {
00218 VIEWMODE_Icon = 0,
00219 VIEWMODE_Report = 1,
00220 VIEWMODE_SmallIcon = 2,
00221 VIEWMODE_List = 3
00222 };
00223
00224 enum IMAGELISTTYPE {
00225 IMAGELISTTYPE_Normal = 0,
00226 IMAGELISTTYPE_Small = 1,
00227 IMAGELISTTYPE_State = 2
00228 };
00229
00230
00231
00232 struct DISPINFO {
00233 DISPINFO () :
00234 m_indent(0),
00235 m_IconIndex(-1),
00236 m_StateImageIndex(-1),
00237 m_OverlayImageIndex(-1),
00238 m_bSelected(false)
00239 {}
00240
00241 ~DISPINFO() {}
00242
00243 MISTRING m_text;
00244 int m_indent;
00245 int m_IconIndex;
00246 int m_StateImageIndex;
00247 int m_OverlayImageIndex;
00248 bool m_bSelected;
00249 };
00250
00251
00252 struct CUSTOMDRAW {
00253 int row;
00254 int col;
00255 LRECT2D rect;
00256 COLOR BackgroundColor;
00257 COLOR TextColor;
00258 bool ChangedBackgroundColor;
00259 bool ChangedTextColor;
00260 #ifdef WIN32_MFC
00261 HDC gc;
00262 #else
00263 MGD::CONTEXT* gc;
00264 #endif
00265 };
00266
00267
00268 CTRL_GRID (
00269 );
00270
00271
00272 virtual ~CTRL_GRID (
00273 );
00274
00275
00276 void Create (
00277 MGUI::LAYOUT_PANE_BASE& ParentPane,
00278 int height = 10,
00279 int width = 40,
00280 VIEWMODE viewmode = VIEWMODE_Report,
00281 STYLE style = STYLE_AlignTop,
00282 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00283 );
00284
00285
00286 void DeleteAllColumns (
00287 );
00288
00289
00290 void DeleteAllItems (
00291 );
00292
00293
00294 void DeleteColumn (
00295 int col
00296 );
00297
00298
00299 void DeleteItem (
00300 int itemnum
00301 );
00302
00303
00304 void DeleteItemByData (
00305 ID id
00306 );
00307
00308
00309 void DeselectAllItems (
00310 );
00311
00312
00313
00314 bool EditItem (
00315 int itemnum,
00316 int column = 0,
00317 bool selectall = true
00318 );
00319
00320
00321
00322 bool EditItem (
00323 int itemnum,
00324 int column,
00325 const MIUNICODE *initstr,
00326 bool selectall = true
00327 );
00328
00329
00330 void EnsureVisible (
00331 int itemnum,
00332 bool PartialOK = false
00333 );
00334
00335
00336
00337 int FindItemByData (
00338 const void* value
00339 ) const;
00340
00341
00342
00343 int FindItemByData (
00344 ID data
00345 ) const { return (FindItemByData((void*)data)); }
00346
00347
00348
00349
00350 int GetBottomRow (
00351 ) const { return (GetTopRow() + GetCountPerPage()); }
00352
00353
00354 bool GetCellRect (
00355 int itemnum,
00356 int col,
00357 LRECT2D& rect
00358 ) const;
00359
00360
00361 int GetColumnCount (
00362 ) const;
00363
00364
00365
00366 bool GetColumnLabel (
00367 int column,
00368 MISTRING& label
00369 ) const;
00370
00371
00372
00373
00374 ERRVALUE GetColumnOrderArray (
00375 SIMPLE_ARRAY<INT32>& array
00376 );
00377
00378
00379 int GetColumnWidth (
00380 int column
00381 ) const;
00382
00383
00384 int GetCountPerPage (
00385 ) const;
00386
00387
00388 int GetHeadingHeight (
00389 ) const;
00390
00391
00392 int GetItemCount (
00393 ) const;
00394
00395
00396 MGUI::ID GetItemData (
00397 int itemnum
00398 ) const;
00399
00400
00401
00402 int GetNextSelectedItem (
00403 int startitem = -1
00404 ) const;
00405
00406
00407 int GetSelectedCount (
00408 ) const;
00409
00410 #ifdef WIN32_MFC
00411
00412
00413 BOOL GetSubItemRect (
00414 int item,
00415 int colnum,
00416 CRect& rect
00417 );
00418 #endif
00419
00420
00421 int GetTopRow (
00422 ) const;
00423
00424
00425 int InsertColumn (
00426 int colnum,
00427 const char *string,
00428 FORMAT format = FORMAT_Left,
00429 int width = -1,
00430 bool lookup = true
00431 );
00432
00433
00434 int InsertColumn (
00435 int colnum,
00436 const MIUNICODE *string,
00437 FORMAT format = FORMAT_Left,
00438 int width = -1
00439 );
00440
00441
00442 int InsertColumn (
00443 int colnum,
00444 const MISTRING& string,
00445 FORMAT format = FORMAT_Left,
00446 int width = -1
00447 ) { return (InsertColumn(colnum,static_cast<const MIUNICODE*>(string),format,width)); }
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457 int InsertColumnComboBox (
00458 int colnum,
00459 const MISTRING& label,
00460 const MISTRING& menu,
00461 int width = -1
00462 );
00463
00464
00465
00466 int InsertItem (
00467 const char *string,
00468 bool lookup = true
00469 );
00470
00471
00472
00473 int InsertItem (
00474 const MIUNICODE *string
00475 );
00476
00477
00478
00479 int InsertItem (
00480 const MISTRING& string
00481 ) { return (InsertItem(static_cast<const MIUNICODE*>(string))); }
00482
00483
00484
00485 int InsertItem (
00486 int pos,
00487 const char *string,
00488 bool lookup = true
00489 );
00490
00491
00492
00493 int InsertItem (
00494 int pos,
00495 const MIUNICODE *string
00496 );
00497
00498
00499
00500 bool IsItemSelected (
00501 int itemnum
00502 ) const;
00503
00504
00505 void Redraw (
00506 bool updatenow = true
00507 );
00508
00509
00510 void RedrawItems (
00511 int firstitemnum,
00512 int lastitemnum,
00513 bool updatenow = true
00514 );
00515
00516
00517
00518 bool SetColumnLabel (
00519 int column,
00520 const MIUNICODE* label
00521 );
00522
00523
00524 void SetColumnOrderArray (
00525 SIMPLE_ARRAY<INT32>& array
00526 );
00527
00528
00529
00530
00531 void SetColumnWidth (
00532 int column,
00533 int width
00534 );
00535
00536 #ifdef WIN32_MFC
00537
00538 void SetExtendedStyle (
00539 UINT32 exstyles,
00540 UINT32 mask = 0
00541 );
00542 #endif
00543
00544
00545 void SetImageList (
00546 IMAGELIST& imagelist,
00547 IMAGELISTTYPE listtype = IMAGELISTTYPE_Small,
00548 bool shared = false
00549 );
00550
00551
00552 int SetItemCount (
00553 int NumItems
00554 );
00555
00556
00557 void SetItemData (
00558 int itemnum,
00559 ID value
00560 );
00561
00562
00563
00564
00565
00566
00567 void SetItemImage (
00568 int itemnum,
00569 int imageindex
00570 );
00571
00572
00573 void SetItemSelected (
00574 int itemnum,
00575 bool selected = true
00576 );
00577
00578
00579 void SetItemText (
00580 int itemnum,
00581 int subitem,
00582 const char *string,
00583 bool lookup = true
00584 );
00585
00586
00587 void SetItemText (
00588 int itemnum,
00589 int subitem,
00590 const MIUNICODE *string
00591 );
00592
00593
00594 void SortItems (
00595 int column = 0,
00596 bool bAscending = true
00597 );
00598
00599
00600 void Update (
00601 int itemnum
00602 );
00603
00604 protected:
00605
00606 STYLE GetStyle (
00607 ) const { return m_style; }
00608
00609
00610
00611
00612
00613 virtual bool OnBeginLabelEdit (
00614 int itemnum,
00615 int subitemnum
00616 );
00617
00618
00619 virtual void OnChangeColumnOrder (
00620 int fromCol,
00621 int toCol
00622 );
00623
00624
00625 virtual void OnClickColumn (
00626 int itemnum,
00627 int column,
00628 KEYSTATE state
00629 );
00630
00631
00632 virtual void OnClickItem (
00633 int itemnum,
00634 int column,
00635 KEYSTATE state
00636 );
00637
00638
00639 virtual void OnDoubleClickItem (
00640 int itemnum,
00641 int column,
00642 KEYSTATE state
00643 );
00644
00645
00646
00647
00648 virtual bool OnDrawItem (
00649 CUSTOMDRAW& drawinfo
00650 );
00651
00652
00653
00654
00655
00656 virtual bool OnEndLabelEdit (
00657 int row,
00658 int col,
00659 MISTRING& string
00660 );
00661
00662
00663
00664
00665
00666 virtual bool OnGetDispInfo (
00667 int row,
00668 int col,
00669 CTRL_GRID::DISPINFO& dispinfo
00670 );
00671
00672
00673 virtual void OnItemActivate (
00674 );
00675
00676
00677
00678
00679
00680
00681 virtual int OnItemCompare (
00682 UINT32 rowitem1,
00683 UINT32 rowitem2
00684 );
00685
00686
00687
00688
00689
00690 virtual int OnItemCompare (
00691 UINT32 rowitem1,
00692 UINT32 rowitem2,
00693 int colnum,
00694 bool bAscending
00695 );
00696
00697
00698 virtual void OnItemSelect (
00699 int itemnum,
00700 int subitemnum
00701 );
00702
00703
00704 virtual void OnItemUnselect (
00705 int itemnum,
00706 int subitemnum
00707 );
00708
00709
00710 virtual void OnOwnerDataCacheHint (
00711 int from,
00712 int to
00713 );
00714
00715
00716 virtual void OnRightClickItem (
00717 int itemnum,
00718 int column,
00719 const LPOINT2D&,
00720 KEYSTATE state
00721 );
00722
00723
00724 virtual void OnUserResizeColumn (
00725 int column,
00726 int width
00727 );
00728
00729 private:
00730 #ifndef GENERATING_DOXYGEN_OUTPUT
00731
00732 class MyListCtrl;
00733 friend class MyListCtrl;
00734
00735 MyListCtrl *m_pCtrl;
00736 STYLE m_style;
00737 int m_PrevSelRow;
00738 int m_PrevSelCol;
00739
00740
00741 CTRL_GRID (const CTRL_GRID&);
00742 CTRL_GRID& operator= (const CTRL_GRID&);
00743
00744 #ifdef WIN32_MFC
00745 static int CALLBACK CompareCallback (LPARAM rowitem1, LPARAM rowitem2, LPARAM cbdata);
00746 #endif
00747 #endif // GENERATING_DOXYGEN_OUTPUT
00748
00749
00750 };
00751
00752 DEFINE_ENUM_OPERATORS(MGUI::CTRL_GRID::STYLE);
00753
00754
00755
00756
00757 template <class _CT> class CTRL_GRID_T : public MGUI::CTRL_GRID {
00758 public:
00759
00760 CTRL_GRID_T (
00761 ):
00762 m_pContainer(0),
00763 m_OnBeginLabelEditFunc(0),
00764 m_OnClickColumnFunc(0),
00765 m_OnClickItemFunc(0),
00766 m_OnDoubleClickItemFunc(0),
00767 m_OnEndLabelEditFunc(0),
00768 m_OnGetDispInfoFunc(0),
00769 m_OnItemActivateFunc(0),
00770 m_OnItemDrawFunc(0),
00771 m_OnItemCompareFunc(0),
00772 m_OnItemSelectFunc(0),
00773 m_OnItemUnselectFunc(0),
00774 m_OnOwnerDataCacheHintFunc(0),
00775 m_OnRightClickItemFunc(0),
00776 m_OnUserResizeColumnFunc(0)
00777 { }
00778
00779
00780 virtual ~CTRL_GRID_T (
00781 ) { }
00782
00783
00784 void Create (
00785 MGUI::LAYOUT_PANE_BASE& ParentPane,
00786 _CT *pContainer,
00787 int height = 10,
00788 int width = 40,
00789 VIEWMODE viewmode = VIEWMODE_Report,
00790 STYLE style = STYLE_AlignTop,
00791 MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_Expand
00792 ) {
00793 m_pContainer = pContainer;
00794 CTRL_GRID::Create(ParentPane,height,width,viewmode,style,sizealign);
00795 return;
00796 }
00797
00798
00799 void SetBeginLabelEditFunc (
00800 bool (_CT::*BeginLabelEditFunc)(int row, int col)
00801 ) { m_OnBeginLabelEditFunc = BeginLabelEditFunc; };
00802
00803
00804 void SetChangeColumnOrderFunc (
00805 void (_CT::*ChangeColumnOrderFunc)(int fromCol, int toCol)
00806 ) { m_OnChangeColumnOrderFunc = ChangeColumnOrderFunc; };
00807
00808
00809 void SetClickColumnFunc (
00810 void (_CT::*ClickColumnFunc)(int itemnum, int column, KEYSTATE state)
00811 ) { m_OnClickColumnFunc = ClickColumnFunc; };
00812
00813
00814 void SetClickItemFunc (
00815 void (_CT::*ClickItemFunc)(int itemnum, int column, KEYSTATE state)
00816 ) { m_OnClickItemFunc = ClickItemFunc; };
00817
00818
00819 void SetDoubleClickItemFunc (
00820 void (_CT::*DoubleClickItemFunc)(int itemnum, int column, KEYSTATE state)
00821 ) { m_OnDoubleClickItemFunc = DoubleClickItemFunc; };
00822
00823
00824 void SetEndLabelEditFunc (
00825 bool (_CT::*EndLabelEditFunc)(int row, int col, MISTRING& string)
00826 ) { m_OnEndLabelEditFunc = EndLabelEditFunc; };
00827
00828
00829
00830 void SetGetDispInfoFunc (
00831 bool (_CT::*GetDispInfoFunc)(int row, int col, DISPINFO& info)
00832 ) { m_OnGetDispInfoFunc = GetDispInfoFunc; };
00833
00834
00835 void SetItemActivateFunc (
00836 void (_CT::*ItemActivateFunc)()
00837 ) { m_OnItemActivateFunc = ItemActivateFunc; };
00838
00839
00840
00841
00842 void SetItemCompareFunc (
00843 int (_CT::*ItemCompareFunc)(UINT32 rowitem1, UINT32 rowitem2, int ColNum, bool bAscending)
00844 ) { m_OnItemCompareFunc = ItemCompareFunc; };
00845
00846
00847
00848 void SetItemDrawFunc (
00849 bool (_CT::*ItemDrawFunc)(CUSTOMDRAW&)
00850 ) { m_OnItemDrawFunc = ItemDrawFunc; };
00851
00852
00853 void SetItemSelectFunc (
00854 void (_CT::*ItemSelectFunc)(int itemnum, int subitemnum)
00855 ) { m_OnItemSelectFunc = ItemSelectFunc; };
00856
00857
00858 void SetItemUnselectFunc (
00859 void (_CT::*ItemUnselectFunc)(int itemnum, int subitemnum)
00860 ) { m_OnItemUnselectFunc = ItemUnselectFunc; };
00861
00862
00863 void SetOwnerDataCacheHintFunc (
00864 void (_CT::*OwnerDataCacheHintFunc)(int from, int to)
00865 ) { m_OnOwnerDataCacheHintFunc = OwnerDataCacheHintFunc; };
00866
00867
00868 void SetRightClickItemFunc (
00869 void (_CT::*RightClickItemFunc)(int itemnum, int column, const LPOINT2D&, KEYSTATE state)
00870 ) { m_OnRightClickItemFunc = RightClickItemFunc; };
00871
00872
00873 void SetUserResizeColumnFunc (
00874 void (_CT::*OnUserResizeColumnFunc)(int column, int width)
00875 ) { m_OnUserResizeColumnFunc = OnUserResizeColumnFunc; };
00876
00877 private:
00878 #ifndef GENERATING_DOXYGEN_OUTPUT
00879
00880 virtual bool OnBeginLabelEdit (
00881 int row,
00882 int col
00883 ) {
00884 if (m_OnBeginLabelEditFunc != 0) {
00885 return (m_pContainer->*m_OnBeginLabelEditFunc)(row, col);
00886 }
00887 else {
00888 return ((GetStyle() & STYLE_EditLabels) != 0);
00889 }
00890 }
00891
00892 virtual void OnChangeColumnOrder (
00893 int fromCol,
00894 int toCol
00895 ) { if (m_OnChangeColumnOrderFunc != 0) (m_pContainer->*m_OnChangeColumnOrderFunc)(fromCol, toCol); }
00896
00897 virtual void OnClickColumn (
00898 int itemnum,
00899 int column,
00900 KEYSTATE state
00901 ) { if (m_OnClickColumnFunc != 0) (m_pContainer->*m_OnClickColumnFunc)(itemnum,column,state); }
00902
00903 virtual void OnClickItem (
00904 int itemnum,
00905 int column,
00906 KEYSTATE state
00907 ) { if (itemnum >= 0 && m_OnClickItemFunc != 0) (m_pContainer->*m_OnClickItemFunc)(itemnum,column,state);
00908 else CTRL_GRID::OnClickItem(itemnum, column, state);
00909 }
00910
00911 virtual void OnDoubleClickItem (
00912 int itemnum,
00913 int column,
00914 KEYSTATE state
00915 ) { if (m_OnDoubleClickItemFunc != 0) (m_pContainer->*m_OnDoubleClickItemFunc)(itemnum,column, state); }
00916
00917 virtual int OnItemCompare (
00918 UINT32 rowitem1,
00919 UINT32 rowitem2,
00920 int colnum,
00921 bool bAscending
00922 ) { if (m_OnItemCompareFunc != 0) return ((m_pContainer->*m_OnItemCompareFunc)(rowitem1, rowitem2, colnum, bAscending)); else return (0); }
00923
00924 virtual bool OnDrawItem (
00925 CUSTOMDRAW& drawinfo
00926 ) { if (m_OnItemDrawFunc != 0) return ((m_pContainer->*m_OnItemDrawFunc)(drawinfo)); else return (false); }
00927
00928 virtual bool OnEndLabelEdit (
00929 int row,
00930 int col,
00931 MISTRING& string
00932 ) { return ((m_OnEndLabelEditFunc != 0) ? (m_pContainer->*m_OnEndLabelEditFunc)(row, col, string) : true); }
00933
00934 virtual bool OnGetDispInfo (
00935 int row,
00936 int col,
00937 DISPINFO& info
00938 ) { if (m_OnGetDispInfoFunc != 0) return((m_pContainer->*m_OnGetDispInfoFunc)(row, col, info));
00939 return (false);
00940 }
00941
00942 virtual void OnItemActivate (
00943 ) { if (m_OnItemActivateFunc != 0) (m_pContainer->*m_OnItemActivateFunc)(); }
00944
00945 virtual void OnItemSelect (
00946 int itemnum,
00947 int subitemnum
00948 ) { if (m_OnItemSelectFunc != 0) (m_pContainer->*m_OnItemSelectFunc)(itemnum, subitemnum);
00949 else CTRL_GRID::OnItemSelect(itemnum, subitemnum);
00950 }
00951
00952 virtual void OnItemUnselect (
00953 int itemnum,
00954 int subitemnum
00955 ) { if (m_OnItemUnselectFunc != 0) (m_pContainer->*m_OnItemUnselectFunc)(itemnum, subitemnum);
00956 else CTRL_GRID::OnItemUnselect(itemnum, subitemnum);
00957 }
00958
00959 virtual void OnOwnerDataCacheHint (
00960 int from,
00961 int to
00962 ) { if (m_OnOwnerDataCacheHintFunc != 0) (m_pContainer->*m_OnOwnerDataCacheHintFunc)(from,to); };
00963
00964 virtual void OnRightClickItem (
00965 int itemnum,
00966 int column,
00967 const LPOINT2D& pt,
00968 KEYSTATE state
00969 ) { if (m_OnRightClickItemFunc != 0) (m_pContainer->*m_OnRightClickItemFunc)(itemnum,column,pt,state); }
00970
00971 virtual void OnUserResizeColumn (
00972 int column,
00973 int width
00974 ) { if (m_OnUserResizeColumnFunc != 0) (m_pContainer->*m_OnUserResizeColumnFunc)(column, width); }
00975
00976 _CT *m_pContainer;
00977 bool (_CT::*m_OnBeginLabelEditFunc)(int row, int col);
00978 void (_CT::*m_OnChangeColumnOrderFunc)(int fromCol, int toCol);
00979 void (_CT::*m_OnClickColumnFunc)(int row, int column, KEYSTATE state);
00980 void (_CT::*m_OnClickItemFunc)(int row, int column, KEYSTATE state);
00981 void (_CT::*m_OnDoubleClickItemFunc)(int row, int column, KEYSTATE state);
00982 bool (_CT::*m_OnEndLabelEditFunc)(int row, int col, MISTRING& string);
00983 bool (_CT::*m_OnGetDispInfoFunc)(int row, int col, CTRL_GRID::DISPINFO&info);
00984 void (_CT::*m_OnItemActivateFunc)();
00985 void (_CT::*m_OnItemSelectFunc)(int item, int subitem);
00986 void (_CT::*m_OnItemUnselectFunc)(int item, int subitem);
00987 int (_CT::*m_OnItemCompareFunc)(UINT32 rowitem1, UINT32 rowitem2, int col, bool bAscending);
00988 bool (_CT::*m_OnItemDrawFunc)(CUSTOMDRAW& drawinfo);
00989 void (_CT::*m_OnOwnerDataCacheHintFunc)(int from, int to);
00990 void (_CT::*m_OnRightClickItemFunc)(int itemnum, int column, const LPOINT2D&, KEYSTATE state);
00991 void (_CT::*m_OnUserResizeColumnFunc)(int column, int width);
00992 #endif // GENERATING_DOXYGEN_OUTPUT
00993 };
00994
00995
00996
00997 }
00998
00999 #endif // INC_MGUI_GRID_H
01000