combobox.h

Go to the documentation of this file.
00001 /**
00002  * \file mgui/combobox.h
00003  * \brief MGUI::COMBOBOX definitions
00004  *
00005  * \if NODOC
00006  * $Id: combobox.h_v 1.13 2004/01/02 22:21:19 mju Exp $
00007  *
00008  * $Log: combobox.h_v $
00009  * Revision 1.13  2004/01/02 22:21:19  mju
00010  * Need to override setenabled for form too.
00011  *
00012  * Revision 1.12  2003/12/22 14:16:03  mju
00013  * Make SetEnabled public.
00014  *
00015  * Revision 1.11  2003/12/19 22:07:57  mju
00016  * Override setenabled for X.
00017  *
00018  * Revision 1.10  2003/11/17 18:10:22  mju
00019  * Add combobox::sizeToContentWidth.
00020  *
00021  * Revision 1.9  2003/10/03 19:58:19  linux32build!build
00022  * Doxygen
00023  *
00024  * Revision 1.8  2003/09/15 13:49:32  fileserver!dwilliss
00025  * Doxygen
00026  *
00027  * Revision 1.7  2003/09/11 17:05:20  mju
00028  * Use cast in IniWrite to resolve ambiguity.
00029  *
00030  * Revision 1.6  2003/09/10 21:15:25  mju
00031  * Use ID for id.
00032  *
00033  * Revision 1.5  2003/09/10 16:42:21  mju
00034  * nc.
00035  *
00036  * Revision 1.4  2003/09/05 17:09:43  mju
00037  * AddItem using const MISTRING&.
00038  *
00039  * Revision 1.3  2003/04/09 20:47:44  dwilliss
00040  * Don't define _T in templates. Mac's ctype.h defines a global _T
00041  *
00042  * Revision 1.2  2003/01/16 21:35:32  mju
00043  * Fix incl guard test.
00044  *
00045  * Revision 1.1  2003/01/16 21:13:02  mju
00046  * Initial revision
00047  * \endif
00048 **/
00049 
00050 #ifndef  INC_MGUI_COMBOBOX_H
00051 #define  INC_MGUI_COMBOBOX_H
00052 
00053 #ifndef INC_MGUI_CTRL_H
00054 #include <mgui/ctrl.h>
00055 #endif
00056 
00057 #ifndef  INC_MGUI_LISTITEM_H
00058 #include <mgui/listitem.h>
00059 #endif
00060 
00061 namespace MGUI {
00062 
00063 #ifndef GENERATING_DOXYGEN_OUTPUT
00064 #ifdef X_NATIVE
00065 class XMLIST;
00066 #endif
00067 #endif // GENERATING_DOXYGEN_OUTPUT
00068 
00069 //===================================================================================================================
00070 //! ComboBox control.
00071 //! At present this is implemented as an OptionMenu for X.
00072 class CTRL_COMBOBOX : public MGUI::CTRL {
00073    public:
00074 
00075       enum STYLE {
00076          STYLE_Default =   0x00,
00077          STYLE_Sorted =    0x01
00078          };
00079 
00080       //! Constructor.
00081       CTRL_COMBOBOX (
00082          );
00083 
00084       //! Destructor.
00085       virtual ~CTRL_COMBOBOX (
00086          );
00087 
00088       //! Add single item with MISTRING or TEXTID.
00089       //! If control was created with STYLE_Sorted then the combo will be resorted after the item
00090       //! is added, otherwise the item will be added to the end of the list.
00091       //! @return Zero-based index of item added or error < 0.
00092       int AddItem (
00093          ID id,                                 //!< ID to attach to item
00094          const MISTRING& string,                //!< String to show in list
00095          bool resize = true                     //!< Attempt to resize if needed to fit new item string
00096          );
00097 
00098       //! Add single item with string from resource lookup.
00099       //! If control was created with STYLE_Sorted then the list will be resorted after the item
00100       //! is added, otherwise the item will be added to the end of the list.
00101       //! @return Zero-based index of item added or error < 0.
00102       int AddItem (
00103          ID id,                                 //!< ID to attach to item
00104          const char *string,                    //!< String for resource lookup
00105          bool resize = true                     //!< Attempt to resize if needed to fit new item string
00106          );
00107 
00108       //! Add multiple items.
00109       void AddItems (
00110          const MGUI::LISTITEMDEF *items,        //!< Items to add, terminated by item with NULL string
00111          bool resize = true                     //!< Attempt to resize if needed to fit largest item string
00112          );
00113 
00114       //! Add items to combobox for unit selection.
00115       //! Item IDs will be equal to UnitIDs.
00116       void AddUnitItems (
00117          int UnitType,                          //!< Unit type
00118          int DftUnitID = 0                      //!< Default unit ID
00119          );
00120 
00121       //! Create control.
00122       void Create (
00123          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00124          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00125          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00126          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00127          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00128          STYLE style = STYLE_Default
00129          );
00130 
00131       //! Delete all items from control.
00132       void DeleteAllItems (
00133          );
00134 
00135       //! Delete item from list given index.
00136       void DeleteItem (
00137          int index                           //!< Zero-based index of item to delete
00138          );
00139 
00140       //! Delete item from list given ID.
00141       void DeleteItemID (
00142          ID id                            //!< ID of item to delete
00143          );
00144 
00145       //! Retrieve number of items in the list.
00146       int GetCount (
00147          ) const;
00148 
00149    #ifdef WIN32_MFC
00150       //! Get reference to MFC control (MFC only).
00151       CComboBox& GetCtrl (
00152          ) { return (m_ctrl); }
00153    #endif
00154 
00155       //! Get index to item from ID.
00156       //! @return Zero-based index or -1 if no matching item found.
00157       int GetIndexFromID (
00158          ID id                            //!< ID of item to retrieve index of
00159          ) const;
00160 
00161       //! Get ID associated with list item.
00162       //! @return ID specified when item was added.
00163       ID GetItemID (
00164          int index                           //!< Zero-based index of item
00165          ) const;
00166 
00167       //! Get text string associated with list item.
00168       //! @return String containing text, will be empty if invalid item.
00169       MISTRING GetItemString (
00170          int index                           //!< Zero-based index of item
00171          ) const;
00172 
00173       //! Get currently selected item.
00174       //! @return Zero-based index of selected item or -1 if none selected.
00175       int GetSelectedItem (
00176          ) const;
00177 
00178       //! Get ID of currently selected item.
00179       //! @return ID or -1 if item was not found or none selected.
00180       ID GetSelectedItemID (
00181          ) const;
00182 
00183       //! Read setting from INI file.
00184       //! If Create() has already been performed the control's state will be updated.
00185       void IniRead (
00186          INIHANDLE IniHandle,                //!< Handle to INI file to read from, 0 for default
00187          const char *IniGroup,               //!< INI group to read from
00188          const char *IniField,               //!< INI field to read from
00189          bool notify = true                  //!< Call OnSelection() if control has already been created
00190          );
00191 
00192       //! Write currently selected item ID to INI file.
00193       void IniWrite (
00194          INIHANDLE IniHandle,                //!< Handle to INI file to read from, 0 for default
00195          const char *IniGroup,               //!< INI group to read from
00196          const char *IniField                //!< INI field to read from
00197          ) const { ::IniWrite(IniHandle,IniGroup,IniField,static_cast<INT32>(GetSelectedItemID())); }
00198 
00199       //! Insert item at specified position.
00200       //! Unlike the AddItem method this does not cause the list to be resorted.
00201       //! @return Zero-based index of item added or error < 0.
00202       int InsertItem (
00203          int index,                          //!< Zero-based index of position at which item should be inserted
00204          ID id,                           //!< ID to attach to item
00205          const MISTRING& string              //!< String to show in combo
00206          );
00207 
00208       //! Determine if specified item is selected.
00209       bool IsItemSelected (
00210          int index                           //!< Zero-based index of item
00211          ) const;
00212 
00213    #ifdef X_NATIVE
00214       //! Set whether control is enabled.
00215       virtual void SetEnabled (
00216          bool enabled = true
00217          );
00218    #endif
00219 
00220       //! Select item using zero-based index.
00221       //! If item is not visible the list will be scrolled to make it visible.
00222       void SetSelectedItem (
00223          int index                           //!< Zero-based index of item, -1 to have no item selected
00224          );
00225 
00226       //! Select item using item ID.
00227       //! If item does not exist then no item will be selected.
00228       //! If item is not visible the list will be scrolled to make it visible.
00229       void SetSelectedItemID (
00230          ID id                            //!< ID of item to select
00231          );
00232 
00233       //! Set whether items are to be sorted or not.
00234       void SetSorted (
00235          bool sorted = true
00236          );
00237 
00238       //! Resize control to be able to show widest item.
00239       void SizeToContentWidth (
00240          );
00241 
00242    protected:
00243 
00244       //! Called when user makes selection.
00245       //! Derived class must call corresponding base class method BEFORE performing its own processing.
00246       virtual void OnSelection ();
00247 
00248    private:
00249    #ifndef GENERATING_DOXYGEN_OUTPUT
00250 
00251    #ifdef WIN32_MFC
00252       class MyComboBox : public CComboBox {
00253          public:
00254             MyComboBox (
00255                MGUI::CTRL_COMBOBOX& guictrl
00256                ): m_guictrl(guictrl)
00257                { }
00258             virtual ~MyComboBox (
00259                ) { }
00260          protected:
00261             afx_msg void OnSelendok ();
00262             DECLARE_MESSAGE_MAP()
00263          private:
00264             MGUI::CTRL_COMBOBOX& m_guictrl;
00265          };
00266       friend class MyComboBox;
00267 
00268       MyComboBox m_ctrl;
00269    #endif
00270 
00271    #ifdef X_NATIVE
00272       Widget m_text;
00273       Widget m_arrowpb;
00274       XMLIST *m_pxmlist;
00275       Widget m_listshell;
00276       int m_listheight;
00277 
00278       static void CB_ArrowActivate (Widget, CTRL_COMBOBOX*, void*);
00279       static void CB_ListBrowseSelect (Widget, CTRL_COMBOBOX*, void*);
00280       static void EH_Shell (Widget, CTRL_COMBOBOX*, XEvent*, Boolean*);
00281       void PopdownShell ();
00282       void PopupShell ();
00283    #endif
00284 
00285       CTRL_COMBOBOX (const CTRL_COMBOBOX&);
00286       CTRL_COMBOBOX& operator= (const CTRL_COMBOBOX&);
00287    #endif // GENERATING_DOXYGEN_OUTPUT
00288    };
00289 
00290 DEFINE_ENUM_OPERATORS(MGUI::CTRL_COMBOBOX::STYLE);
00291 
00292 
00293 //-------------------------------------------------------------------------------------------------------------------
00294 //! Convenience template for COMBOBOX control to allow method in container class to be called.
00295 template <class _CT> class CTRL_COMBOBOX_T : public MGUI::CTRL_COMBOBOX {
00296    public:
00297       //! Constructor.
00298       explicit CTRL_COMBOBOX_T (
00299          ): m_pContainer(0), m_pfOnSelection(0)
00300          { }
00301 
00302       //! Create control.
00303       void Create (
00304          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00305          _CT *pContainer,                       //!< Pointer to callback container class
00306          void (_CT::*pfOnSelection)(),          //! Callback function pointer
00307          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00308          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00309          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00310          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00311          STYLE style = STYLE_Default
00312          ) {
00313          m_pContainer = pContainer;
00314          m_pfOnSelection = pfOnSelection;
00315          CTRL_COMBOBOX::Create(ParentPane,items,listheight,width,sizealign,style);
00316          }
00317 
00318    private:
00319       #ifndef GENERATING_DOXYGEN_OUTPUT
00320       _CT *m_pContainer;
00321       void (_CT::*m_pfOnSelection)();
00322 
00323       virtual void OnSelection (
00324          ) {
00325          CTRL_COMBOBOX::OnSelection();
00326          if (m_pContainer != 0) (m_pContainer->*m_pfOnSelection)();
00327          }
00328       #endif // GENERATING_DOXYGEN_OUTPUT
00329    };
00330 
00331 
00332 //===================================================================================================================
00333 //! Form containing label and Combobox control.
00334 class FORM_COMBOBOX : public MGUI::FORM_COMPOSITE {
00335    public:
00336 
00337       //! Default constructor.
00338       FORM_COMBOBOX (
00339          );
00340 
00341       //! Destructor.
00342       virtual ~FORM_COMBOBOX (
00343          );
00344 
00345       //! Add single item with MISTRING or TEXTID.
00346       //! If control was created with STYLE_Sorted then the combo will be resorted after the item
00347       //! is added, otherwise the item will be added to the end of the list.
00348       //! @return Zero-based index of item added or error < 0.
00349       int AddItem (
00350          ID id,                              //!< ID to attach to item
00351          const MISTRING& string,                //!< String to show in list
00352          bool resize = true                     //!< Attempt to resize if needed to fit new item string
00353          ) { return (m_combobox.AddItem(id,string,resize)); }
00354 
00355       //! Add single item with UNICODE* string.
00356       //! If control was created with STYLE_Sorted then the combo will be resorted after the item
00357       //! is added, otherwise the item will be added to the end of the list.
00358       //! @return Zero-based index of item added or error < 0.
00359       int AddItem (
00360          ID id,                              //!< ID to attach to item
00361          const UNICODE *string,                 //!< String to show in list
00362          bool resize = true                     //!< Attempt to resize if needed to fit new item string
00363          ) { return (m_combobox.AddItem(id,string,resize)); }
00364 
00365       //! Add single item with string from resource lookup.
00366       //! If control was created with STYLE_Sorted then the list will be resorted after the item
00367       //! is added, otherwise the item will be added to the end of the list.
00368       //! @return Zero-based index of item added or error < 0.
00369       int AddItem (
00370          ID id,                              //!< ID to attach to item
00371          const char *string,                    //!< String for resource lookup
00372          bool resize = true                     //!< Attempt to resize if needed to fit new item string
00373          ) { return (m_combobox.AddItem(id,string,resize)); }
00374 
00375       //! Add multiple items.
00376       void AddItems (
00377          const MGUI::LISTITEMDEF* items,        //!< Items to add, terminated by item with NULL string
00378          bool resize = true                     //!< Attempt to resize if needed to fit largest item string
00379          ) { m_combobox.AddItems(items,resize); }
00380 
00381       //! Add items to combobox for unit selection.
00382       //! Item IDs will be equal to UnitIDs.
00383       void AddUnitItems (
00384          int UnitType,                          //!< Unit type
00385          int DftUnitID = 0                      //!< Default unit ID
00386          ) { m_combobox.AddUnitItems(UnitType,DftUnitID); }
00387 
00388       //! Create form with label from resource lookup.
00389       void Create (
00390          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00391          const char* label,                     //!< Label string for resource lookup
00392          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00393          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00394          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00395          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00396          MGUI::CTRL_COMBOBOX::STYLE style = MGUI::CTRL_COMBOBOX::STYLE_Default,
00397          MGUI::CTRL_LABEL::STYLE labelstyle = MGUI::CTRL_LABEL::STYLE_LeftNoWrap
00398          );
00399 
00400       //! Create form with Unicode label.
00401       void Create (
00402          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00403          const MISTRING& label,                 //!< Label string
00404          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00405          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00406          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00407          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00408          MGUI::CTRL_COMBOBOX::STYLE style = MGUI::CTRL_COMBOBOX::STYLE_Default,
00409          MGUI::CTRL_LABEL::STYLE labelstyle = MGUI::CTRL_LABEL::STYLE_LeftNoWrap
00410          );
00411 
00412       //! Delete all items from control.
00413       void DeleteAllItems (
00414          ) { m_combobox.DeleteAllItems(); }
00415 
00416       //! Delete item from list given index.
00417       void DeleteItem (
00418          int index                           //!< Zero-based index of item to delete
00419          ) { m_combobox.DeleteItem(index); }
00420 
00421       //! Delete item from list given ID.
00422       void DeleteItemID (
00423          ID id                            //!< ID of item to delete
00424          ) { m_combobox.DeleteItemID(id); }
00425 
00426       //! Get reference to CTRL_COMBOBOX in form.
00427       CTRL_COMBOBOX& GetComboBox (
00428          ) { return (m_combobox); }
00429 
00430       //! Get reference to CTRL_COMBOBOX in form.
00431       const CTRL_COMBOBOX& GetComboBox (
00432          ) const { return (m_combobox); }
00433 
00434       //! Retrieve number of items in the list.
00435       int GetCount (
00436          ) const { return (m_combobox.GetCount()); }
00437 
00438       //! Get index to item from ID.
00439       //! @return Zero-based index or -1 if no matching item found.
00440       int GetIndexFromID (
00441          ID id                            //!< ID of item to retrieve index of
00442          ) const { return (m_combobox.GetIndexFromID(id)); }
00443 
00444       //! Get ID associated with list item.
00445       //! @return ID specified when item was added.
00446       ID GetItemID (
00447          int index                           //!< Zero-based index of item
00448          ) const { return (m_combobox.GetItemID(index)); }
00449 
00450       //! Get text string associated with list item.
00451       //! @return String containing text, will be empty if invalid item.
00452       MISTRING GetItemString (
00453          int index                           //!< Zero-based index of item
00454          ) const { return (m_combobox.GetItemString(index)); }
00455 
00456       //! Get label control if any.
00457       //! Usually the label control is only retrieved for alignment purposes.
00458       MGUI::CTRL_LABEL& GetLabel (
00459          ) { return (m_label); }
00460 
00461       //! Get currently selected item.
00462       //! @return Zero-based index of selected item or -1 if none selected.
00463       int GetSelectedItem (
00464          ) const { return (m_combobox.GetSelectedItem()); }
00465 
00466       //! Get ID of currently selected item.
00467       //! @return ID or -1 if item was not found or none selected.
00468       ID GetSelectedItemID (
00469          ) const { return (m_combobox.GetSelectedItemID()); }
00470 
00471       //! Insert item at specified position.
00472       //! Unlike the AddItem method this does not cause the list to be resorted.
00473       //! @return Zero-based index of item added or error < 0.
00474       int InsertItem (
00475          int index,                          //!< Zero-based index of position at which item should be inserted
00476          ID id,                           //!< ID to attach to item
00477          const MISTRING& string              //!< String to show in combo
00478          ) { return (m_combobox.InsertItem(index,id,string)); }
00479 
00480       //! Determine if specified item is selected.
00481       bool IsItemSelected (
00482          int index                           //!< Zero-based index of item
00483          ) const { return (m_combobox.IsItemSelected(index)); }
00484 
00485    #ifdef X_NATIVE
00486       //! Set whether control is enabled.
00487       virtual void SetEnabled (
00488          bool enabled = true
00489          );
00490    #endif
00491 
00492       //! Select item using zero-based index.
00493       //! If item is not visible the list will be scrolled to make it visible.
00494       void SetSelectedItem (
00495          int index                           //!< Zero-based index of item, -1 to have no item selected
00496          ) { m_combobox.SetSelectedItem(index); }
00497 
00498       //! Select item using item ID.
00499       //! If item does not exist then no item will be selected.
00500       //! If item is not visible the list will be scrolled to make it visible.
00501       void SetSelectedItemID (
00502          ID id                            //!< ID of item to select
00503          ) { m_combobox.SetSelectedItemID(id); }
00504 
00505       //! Set whether items are to be sorted or not.
00506       void SetSorted (
00507          bool sorted = true
00508          ) { m_combobox.SetSorted(sorted); }
00509 
00510    protected:
00511 
00512       //! Called when user makes selection.
00513       //! Derived class must call corresponding base class method BEFORE performing its own processing.
00514       virtual void OnSelection ();
00515 
00516    private:
00517       #ifndef GENERATING_DOXYGEN_OUTPUT
00518 
00519       MGUI::CTRL_COMBOBOX_T<FORM_COMBOBOX> m_combobox;
00520       MGUI::CTRL_LABEL m_label;
00521 
00522       FORM_COMBOBOX (const FORM_COMBOBOX&);
00523       FORM_COMBOBOX& operator= (const FORM_COMBOBOX&);
00524       #endif // GENERATING_DOXYGEN_OUTPUT
00525    };
00526 
00527 
00528 //-------------------------------------------------------------------------------------------------------------------
00529 //! Convenience template for COMBOBOX control to allow method in container class to be called.
00530 template <class _CT> class FORM_COMBOBOX_T : public MGUI::FORM_COMBOBOX {
00531    public:
00532       //! Constructor.
00533       explicit FORM_COMBOBOX_T (
00534          ): m_pContainer(0), m_pfOnSelection(0)
00535          { }
00536 
00537       //! Create form with label from resource lookup.
00538       void Create (
00539          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00540          const char* label,                     //!< Label string for resource lookup
00541          _CT *pContainer,                       //!< Pointer to callback container class
00542          void (_CT::*pfOnSelection)(),          //! Callback function pointer
00543          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00544          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00545          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00546          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00547          MGUI::CTRL_COMBOBOX::STYLE style = MGUI::CTRL_COMBOBOX::STYLE_Default,
00548          MGUI::CTRL_LABEL::STYLE labelstyle = MGUI::CTRL_LABEL::STYLE_LeftNoWrap
00549          ) {
00550          m_pContainer = pContainer;
00551          m_pfOnSelection = pfOnSelection;
00552          FORM_COMBOBOX::Create(ParentPane,label,items,listheight,width,sizealign,style);
00553          }
00554 
00555       //! Create form with Unicode label.
00556       void Create (
00557          MGUI::LAYOUT_PANE_BASE& ParentPane,    //!< Parent pane
00558          const MISTRING& label,                 //!< Label string
00559          _CT *pContainer,                       //!< Pointer to callback container class
00560          void (_CT::*pfOnSelection)(),          //! Callback function pointer
00561          const MGUI::LISTITEMDEF *items = 0,    //!< Initial item set, 0 for none
00562          int listheight = 7,                    //!< Maximum list height when dropped down in characters
00563          int width = 0,                         //!< Width in 'typical' characters, 0 for default
00564          MGUI::LAYOUT_SIZEALIGN sizealign = MGUI::LAYOUT_SIZEALIGN_FixedSize,
00565          MGUI::CTRL_COMBOBOX::STYLE style = MGUI::CTRL_COMBOBOX::STYLE_Default,
00566          MGUI::CTRL_LABEL::STYLE labelstyle = MGUI::CTRL_LABEL::STYLE_LeftNoWrap
00567          ) {
00568          m_pContainer = pContainer;
00569          m_pfOnSelection = pfOnSelection;
00570          FORM_COMBOBOX::Create(ParentPane,label,items,listheight,width,sizealign,style);
00571          }
00572 
00573    private:
00574       #ifndef GENERATING_DOXYGEN_OUTPUT
00575       _CT *m_pContainer;
00576       void (_CT::*m_pfOnSelection)();
00577 
00578       virtual void OnSelection (
00579          ) {
00580          FORM_COMBOBOX::OnSelection();
00581          if (m_pContainer != 0) (m_pContainer->*m_pfOnSelection)();
00582          }
00583       #endif // GENERATING_DOXYGEN_OUTPUT
00584    };
00585 
00586 //===================================================================================================================
00587 
00588 }  // End namespace MGUI
00589 
00590 #endif   // INC_MGUI_COMBOBOX_H

Generated on Tue Dec 14 13:18:16 2004 for TNTsdk by  doxygen 1.3.8-20040913