git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			166 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			166 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        control.h
 | |
| // Purpose:     wxControl class
 | |
| // Author:      David Webster
 | |
| // Modified by:
 | |
| // Created:     09/17/99
 | |
| // RCS-ID:      $Id$
 | |
| // Copyright:   (c) Julian Smart
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #ifndef _WX_CONTROL_H_
 | |
| #define _WX_CONTROL_H_
 | |
| 
 | |
| #include "wx/dynarray.h"
 | |
| 
 | |
| WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr;
 | |
| 
 | |
| // General item class
 | |
| class WXDLLEXPORT wxControl : public wxControlBase
 | |
| {
 | |
|     DECLARE_ABSTRACT_CLASS(wxControl)
 | |
| 
 | |
| public:
 | |
|    wxControl();
 | |
|    wxControl( wxWindow*          pParent
 | |
|              ,wxWindowID         vId
 | |
|              ,const wxPoint&     rPos = wxDefaultPosition
 | |
|              ,const wxSize&      rSize = wxDefaultSize
 | |
|              ,long               lStyle = 0
 | |
| #if wxUSE_VALIDATORS
 | |
|              ,const wxValidator& rValidator = wxDefaultValidator
 | |
| #endif
 | |
|              ,const wxString&    rsName = wxControlNameStr
 | |
|             )
 | |
|     {
 | |
|         Create( pParent
 | |
|                ,vId
 | |
|                ,rPos
 | |
|                ,rSize
 | |
|                ,lStyle
 | |
|                ,rValidator
 | |
|                ,rsName
 | |
|               );
 | |
|     }
 | |
|     virtual ~wxControl();
 | |
| 
 | |
|     bool Create( wxWindow*          pParent
 | |
|                 ,wxWindowID         vId
 | |
|                 ,const wxPoint&     rPos = wxDefaultPosition
 | |
|                 ,const wxSize&      rSize = wxDefaultSize
 | |
|                 ,long               lStyle = 0
 | |
| #if wxUSE_VALIDATORS
 | |
|                 ,const wxValidator& rValidator = wxDefaultValidator
 | |
| #endif
 | |
|                 ,const wxString&    rsName = wxControlNameStr
 | |
|                );
 | |
| 
 | |
|     //
 | |
|     // Simulates an event
 | |
|     //
 | |
|     virtual void Command(wxCommandEvent& rEvent) { ProcessCommand(rEvent); }
 | |
| 
 | |
|     //
 | |
|     // Implementation from now on
 | |
|     // --------------------------
 | |
|     //
 | |
| 
 | |
|     //
 | |
|     // Calls the callback and appropriate event handlers
 | |
|     //
 | |
|     bool ProcessCommand(wxCommandEvent& rEvent);
 | |
| 
 | |
|     //
 | |
|     // For ownerdraw items
 | |
|     //
 | |
|     virtual bool OS2OnDraw(WXDRAWITEMSTRUCT* WXUNUSED(pItem)) { return FALSE; };
 | |
|     virtual bool OS2OnMeasure(WXMEASUREITEMSTRUCT* WXUNUSED(pItem)) { return FALSE; };
 | |
| 
 | |
|     wxArrayLong&     GetSubcontrols() { return m_aSubControls; }
 | |
|     void             OnEraseBackground(wxEraseEvent& rEvent);
 | |
|     virtual WXHBRUSH OnCtlColor( WXHDC    hDC
 | |
|                                 ,WXHWND   pWnd
 | |
|                                 ,WXUINT   nCtlColor
 | |
|                                 ,WXUINT   uMessage
 | |
|                                 ,WXWPARAM wParam
 | |
|                                 ,WXLPARAM lParam
 | |
|                                );
 | |
| 
 | |
| #if WXWIN_COMPATIBILITY
 | |
|     virtual void SetButtonColour(const wxColour& WXUNUSED(rCol)) { }
 | |
|     wxColour*    GetButtonColour(void) const { return NULL; }
 | |
| 
 | |
|     inline virtual void SetLabelFont(const wxFont& rFont);
 | |
|     inline virtual void SetButtonFont(const wxFont& rFont);
 | |
|     inline wxFont&      GetLabelFont(void) const;
 | |
|     inline wxFont&      GetButtonFont(void) const;
 | |
| 
 | |
|     //
 | |
|     // Adds callback
 | |
|     //
 | |
|     inline void Callback(const wxFunction function);
 | |
|     wxFunction  GetCallback(void) { return m_callback; }
 | |
| 
 | |
| protected:
 | |
|     wxFunction                      m_callback;     // Callback associated with the window
 | |
| #endif // WXWIN_COMPATIBILITY
 | |
| 
 | |
| public:
 | |
|     //
 | |
|     // For controls like radiobuttons which are really composite
 | |
|     //
 | |
|     wxArrayLong m_aSubControls;
 | |
| 
 | |
|     virtual wxSize DoGetBestSize(void) const;
 | |
| 
 | |
|     bool OS2CreateControl( wxWindow*          pParent
 | |
|                           ,wxWindowID         lId
 | |
|                           ,const wxPoint&     rPos
 | |
|                           ,const wxSize&      rSize
 | |
|                           ,long               lStyle
 | |
| #if wxUSE_VALIDATORS
 | |
|                           ,const wxValidator& rValidator
 | |
| #endif
 | |
|                           ,const wxString&    rsName
 | |
|                          );
 | |
|     //
 | |
|     // Create the control of the given class with the given style, returns FALSE
 | |
|     // if creation failed.
 | |
|     //
 | |
|     bool OS2CreateControl( const wxChar*   zClassname
 | |
|                           ,WXDWORD         dwStyle
 | |
|                           ,const wxPoint&  rPos = wxDefaultPosition
 | |
|                           ,const wxSize&   rSize = wxDefaultSize
 | |
|                           ,const wxString& rsLabel = wxEmptyString
 | |
|                           ,WXDWORD         dwExstyle = (WXDWORD)-1
 | |
|                          );
 | |
| 
 | |
|     //
 | |
|     // Determine the extended styles combination for this window (may slightly
 | |
|     // modify styl parameter)
 | |
|     //
 | |
|     WXDWORD GetExStyle(WXDWORD& rStyle) const;
 | |
| 
 | |
|     inline int  GetXComp(void) const {return m_nXComp;}
 | |
|     inline int  GetYComp(void) const {return m_nYComp;}
 | |
|     inline void SetXComp(const int nXComp) {m_nXComp = nXComp;}
 | |
|     inline void SetYComp(const int nYComp) {m_nYComp = nYComp;}
 | |
| 
 | |
| private:
 | |
|     int                             m_nXComp;
 | |
|     int                             m_nYComp;
 | |
|    DECLARE_EVENT_TABLE()
 | |
| }; // end of wxControl
 | |
| 
 | |
| #if WXWIN_COMPATIBILITY
 | |
|     inline void wxControl::Callback(const wxFunction f) { m_callback = f; };
 | |
|     inline wxFont& wxControl::GetLabelFont(void) const { return GetFont(); }
 | |
|     inline wxFont& wxControl::GetButtonFont(void) const { return GetFont(); }
 | |
|     inline void wxControl::SetLabelFont(const wxFont& rFont) { SetFont(rFont); }
 | |
|     inline void wxControl::SetButtonFont(const wxFont& rFont) { SetFont(rFont); }
 | |
| #endif // WXWIN_COMPATIBILITY
 | |
| 
 | |
| #endif // _WX_CONTROL_H_
 | |
| 
 |