home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / include / wx / os2 / control.h < prev    next >
C/C++ Source or Header  |  2002-09-04  |  6KB  |  164 lines

  1. /////////////////////////////////////////////////////////////////////////////
  2. // Name:        control.h
  3. // Purpose:     wxControl class
  4. // Author:      David Webster
  5. // Modified by:
  6. // Created:     09/17/99
  7. // RCS-ID:      $Id: CONTROL.H,v 1.15 2002/09/03 22:26:27 DW Exp $
  8. // Copyright:   (c) Julian Smart
  9. // Licence:     wxWindows licence
  10. /////////////////////////////////////////////////////////////////////////////
  11.  
  12. #ifndef _WX_CONTROL_H_
  13. #define _WX_CONTROL_H_
  14.  
  15. #include "wx/dynarray.h"
  16.  
  17. // General item class
  18. class WXDLLEXPORT wxControl : public wxControlBase
  19. {
  20.     DECLARE_ABSTRACT_CLASS(wxControl)
  21.  
  22. public:
  23.    wxControl();
  24.    wxControl( wxWindow*          pParent
  25.              ,wxWindowID         vId
  26.              ,const wxPoint&     rPos = wxDefaultPosition
  27.              ,const wxSize&      rSize = wxDefaultSize
  28.              ,long               lStyle = 0
  29. #if wxUSE_VALIDATORS
  30.              ,const wxValidator& rValidator = wxDefaultValidator
  31. #endif
  32.              ,const wxString&    rsName = wxControlNameStr
  33.             )
  34.     {
  35.         Create( pParent
  36.                ,vId
  37.                ,rPos
  38.                ,rSize
  39.                ,lStyle
  40.                ,rValidator
  41.                ,rsName
  42.               );
  43.     }
  44.     virtual ~wxControl();
  45.  
  46.     bool Create( wxWindow*          pParent
  47.                 ,wxWindowID         vId
  48.                 ,const wxPoint&     rPos = wxDefaultPosition
  49.                 ,const wxSize&      rSize = wxDefaultSize
  50.                 ,long               lStyle = 0
  51. #if wxUSE_VALIDATORS
  52.                 ,const wxValidator& rValidator = wxDefaultValidator
  53. #endif
  54.                 ,const wxString&    rsName = wxControlNameStr
  55.                );
  56.  
  57.     //
  58.     // Simulates an event
  59.     //
  60.     virtual void Command(wxCommandEvent& rEvent) { ProcessCommand(rEvent); }
  61.  
  62.     //
  63.     // Implementation from now on
  64.     // --------------------------
  65.     //
  66.  
  67.     //
  68.     // Calls the callback and appropriate event handlers
  69.     //
  70.     bool ProcessCommand(wxCommandEvent& rEvent);
  71.  
  72.     //
  73.     // For ownerdraw items
  74.     //
  75.     virtual bool OS2OnDraw(WXDRAWITEMSTRUCT* WXUNUSED(pItem)) { return FALSE; };
  76.     virtual long OS2OnMeasure(WXMEASUREITEMSTRUCT* WXUNUSED(pItem)) { return 0L; };
  77.  
  78.     wxArrayLong&     GetSubcontrols() { return m_aSubControls; }
  79.     void             OnEraseBackground(wxEraseEvent& rEvent);
  80.     virtual WXHBRUSH OnCtlColor( WXHDC    hDC
  81.                                 ,WXHWND   pWnd
  82.                                 ,WXUINT   nCtlColor
  83.                                 ,WXUINT   uMessage
  84.                                 ,WXWPARAM wParam
  85.                                 ,WXLPARAM lParam
  86.                                );
  87.  
  88. #if WXWIN_COMPATIBILITY
  89.     virtual void SetButtonColour(const wxColour& WXUNUSED(rCol)) { }
  90.     wxColour*    GetButtonColour(void) const { return NULL; }
  91.  
  92.     inline virtual void SetLabelFont(const wxFont& rFont);
  93.     inline virtual void SetButtonFont(const wxFont& rFont);
  94.     inline wxFont&      GetLabelFont(void) const;
  95.     inline wxFont&      GetButtonFont(void) const;
  96.  
  97.     //
  98.     // Adds callback
  99.     //
  100.     inline void Callback(const wxFunction function);
  101.     wxFunction  GetCallback(void) { return m_callback; }
  102.  
  103. protected:
  104.     wxFunction                      m_callback;     // Callback associated with the window
  105. #endif // WXWIN_COMPATIBILITY
  106.  
  107. public:
  108.     //
  109.     // For controls like radiobuttons which are really composite
  110.     //
  111.     wxArrayLong m_aSubControls;
  112.  
  113.     virtual wxSize DoGetBestSize(void) const;
  114.  
  115.     //
  116.     // Create the control of the given PM class
  117.     //
  118.     bool OS2CreateControl( const wxChar*   zClassname
  119.                           ,const wxString& rsLabel
  120.                           ,const wxPoint&  rPos
  121.                           ,const wxSize&   rSize
  122.                           ,long            lStyle
  123.                          );
  124.     //
  125.     // Create the control of the given class with the given style, returns FALSE
  126.     // if creation failed.
  127.     //
  128.     bool OS2CreateControl( const wxChar*   zClassname
  129.                           ,WXDWORD         dwStyle
  130.                           ,const wxPoint&  rPos = wxDefaultPosition
  131.                           ,const wxSize&   rSize = wxDefaultSize
  132.                           ,const wxString& rsLabel = wxEmptyString
  133.                           ,WXDWORD         dwExstyle = (WXDWORD)-1
  134.                          );
  135.  
  136.     //
  137.     // Default style for the control include WS_TABSTOP if it AcceptsFocus()
  138.     //
  139.     virtual WXDWORD OS2GetStyle( long     lStyle
  140.                                 ,WXDWORD* pdwExstyle
  141.                                ) const;
  142.  
  143.     inline int  GetXComp(void) const {return m_nXComp;}
  144.     inline int  GetYComp(void) const {return m_nYComp;}
  145.     inline void SetXComp(const int nXComp) {m_nXComp = nXComp;}
  146.     inline void SetYComp(const int nYComp) {m_nYComp = nYComp;}
  147.  
  148. private:
  149.     int                             m_nXComp;
  150.     int                             m_nYComp;
  151.    DECLARE_EVENT_TABLE()
  152. }; // end of wxControl
  153.  
  154. #if WXWIN_COMPATIBILITY
  155.     inline void wxControl::Callback(const wxFunction f) { m_callback = f; };
  156.     inline wxFont& wxControl::GetLabelFont(void) const { return GetFont(); }
  157.     inline wxFont& wxControl::GetButtonFont(void) const { return GetFont(); }
  158.     inline void wxControl::SetLabelFont(const wxFont& rFont) { SetFont(rFont); }
  159.     inline void wxControl::SetButtonFont(const wxFont& rFont) { SetFont(rFont); }
  160. #endif // WXWIN_COMPATIBILITY
  161.  
  162. #endif // _WX_CONTROL_H_
  163.  
  164.