home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2240.zip / wxWindows-2.4.0 / include / wx / radiobox.h < prev    next >
C/C++ Source or Header  |  2002-08-31  |  3KB  |  117 lines

  1. ///////////////////////////////////////////////////////////////////////////////
  2. // Name:        wx/radiobox.h
  3. // Purpose:     wxRadioBox declaration
  4. // Author:      Vadim Zeitlin
  5. // Modified by:
  6. // Created:     10.09.00
  7. // RCS-ID:      $Id: radiobox.h,v 1.10 2002/08/31 11:29:11 GD Exp $
  8. // Copyright:   (c) wxWindows team
  9. // Licence:     wxWindows license
  10. ///////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_RADIOBOX_H_BASE_
  13. #define _WX_RADIOBOX_H_BASE_
  14.  
  15. #if defined(__GNUG__) && !defined(__APPLE__)
  16.     #pragma interface "radioboxbase.h"
  17. #endif
  18.  
  19. #if wxUSE_RADIOBOX
  20.  
  21. #include "wx/control.h"
  22.  
  23. WXDLLEXPORT_DATA(extern const wxChar*) wxRadioBoxNameStr;
  24.  
  25. // ----------------------------------------------------------------------------
  26. // wxRadioBoxBase is not a normal base class, but rather a mix-in because the
  27. // real wxRadioBox derives from different classes on different platforms: for
  28. // example, it is a wxStaticBox in wxUniv but not in wxMSW
  29. // ----------------------------------------------------------------------------
  30.  
  31. class WXDLLEXPORT wxRadioBoxBase
  32. {
  33. public:
  34.     // selection
  35.     virtual void SetSelection(int n) = 0;
  36.     virtual int GetSelection() const = 0;
  37.  
  38.     virtual wxString GetStringSelection() const
  39.     {
  40.         wxString s;
  41.         int sel = GetSelection();
  42.         if ( sel != wxNOT_FOUND )
  43.             s = GetString(sel);
  44.  
  45.         return s;
  46.     }
  47.  
  48.     virtual bool SetStringSelection(const wxString& s)
  49.     {
  50.         int sel = FindString(s);
  51.         if ( sel != wxNOT_FOUND )
  52.         {
  53.             SetSelection(sel);
  54.  
  55.             return TRUE;
  56.         }
  57.  
  58.         return FALSE;
  59.     }
  60.  
  61.     // string access
  62.     virtual int GetCount() const = 0;
  63.     virtual int FindString(const wxString& s) const
  64.     {
  65.         int count = GetCount();
  66.         for ( int n = 0; n < count; n++ )
  67.         {
  68.             if ( GetString(n) == s )
  69.                 return n;
  70.         }
  71.  
  72.         return wxNOT_FOUND;
  73.     }
  74.  
  75.     virtual wxString GetString(int n) const = 0;
  76.     virtual void SetString(int n, const wxString& label) = 0;
  77.  
  78.     // change the individual radio button state
  79.     virtual void Enable(int n, bool enable = TRUE) = 0;
  80.     virtual void Show(int n, bool show = TRUE) = 0;
  81.  
  82.     // layout parameters
  83.     virtual int GetColumnCount() const = 0;
  84.     virtual int GetRowCount() const = 0;
  85.  
  86.     // return the item above/below/to the left/right of the given one
  87.     int GetNextItem(int item, wxDirection dir, long style) const;
  88.  
  89.     // for compatibility only, don't use these methods in new code!
  90. #if WXWIN_COMPATIBILITY_2_2
  91.     int Number() const { return GetCount(); }
  92.     wxString GetLabel(int n) const { return GetString(n); }
  93.     void SetLabel(int n, const wxString& label) { SetString(n, label); }
  94. #endif // WXWIN_COMPATIBILITY_2_2
  95. };
  96.  
  97. #if defined(__WXUNIVERSAL__)
  98.     #include "wx/univ/radiobox.h"
  99. #elif defined(__WXMSW__)
  100.     #include "wx/msw/radiobox.h"
  101. #elif defined(__WXMOTIF__)
  102.     #include "wx/motif/radiobox.h"
  103. #elif defined(__WXGTK__)
  104.     #include "wx/gtk/radiobox.h"
  105. #elif defined(__WXMAC__)
  106.     #include "wx/mac/radiobox.h"
  107. #elif defined(__WXPM__)
  108.     #include "wx/os2/radiobox.h"
  109. #elif defined(__WXSTUBS__)
  110.     #include "wx/stubs/radiobox.h"
  111. #endif
  112.  
  113. #endif // wxUSE_RADIOBOX
  114.  
  115. #endif
  116.     // _WX_RADIOBOX_H_BASE_
  117.