173 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			173 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        pickerbase.h
 | |
| // Purpose:     interface of wxPickerBase
 | |
| // Author:      wxWidgets team
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| 
 | |
| #define wxPB_USE_TEXTCTRL           0x0002
 | |
| #define wxPB_SMALL                  0x8000
 | |
| 
 | |
| 
 | |
| /**
 | |
|     @class wxPickerBase
 | |
| 
 | |
|     Base abstract class for all pickers which support an auxiliary text control.
 | |
| 
 | |
|     This class handles all positioning and sizing of the text control like a
 | |
|     an horizontal wxBoxSizer would do, with the text control on the left of the
 | |
|     picker button.
 | |
| 
 | |
|     The proportion (see wxSizer documentation for more info about proportion values)
 | |
|     of the picker control defaults to 1 when there isn't a text control associated
 | |
|     (see @c wxPB_USE_TEXTCTRL style) and to 0 otherwise.
 | |
| 
 | |
|     @beginStyleTable
 | |
|     @style{wxPB_USE_TEXTCTRL}
 | |
|            Creates a text control to the left of the picker which is
 | |
|            completely managed by this wxPickerBase class.
 | |
|     @endStyleTable
 | |
| 
 | |
|     @library{wxcore}
 | |
|     @category{pickers}
 | |
| 
 | |
|     @see wxColourPickerCtrl
 | |
| */
 | |
| class wxPickerBase : public wxControl
 | |
| {
 | |
| public:
 | |
|     wxPickerBase();
 | |
|     virtual ~wxPickerBase();
 | |
| 
 | |
|     // if present, intercepts wxPB_USE_TEXTCTRL style and creates the text control
 | |
|     // The 3rd argument is the initial wxString to display in the text control
 | |
|     bool CreateBase(wxWindow *parent,
 | |
|                     wxWindowID id,
 | |
|                     const wxString& text = wxEmptyString,
 | |
|                     const wxPoint& pos = wxDefaultPosition,
 | |
|                     const wxSize& size = wxDefaultSize,
 | |
|                     long style = 0,
 | |
|                     const wxValidator& validator = wxDefaultValidator,
 | |
|                     const wxString& name = wxButtonNameStr);
 | |
| 
 | |
|     /**
 | |
|         Returns the margin (in pixel) between the picker and the text control.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     int GetInternalMargin() const;
 | |
| 
 | |
|     /**
 | |
|         Returns the proportion value of the picker.
 | |
|     */
 | |
|     int GetPickerCtrlProportion() const;
 | |
| 
 | |
|     /**
 | |
|         Returns a pointer to the text control handled by this window or @NULL if the
 | |
|         @c wxPB_USE_TEXTCTRL style was not specified when this control was created.
 | |
| 
 | |
|         @remarks
 | |
|         The contents of the text control could be an invalid representation of
 | |
|         the entity which can be chosen through the picker
 | |
|         (e.g. when the user enters an invalid colour syntax because of a typo).
 | |
|         Thus you should never parse the content of the textctrl to get the
 | |
|         user's input; rather use the derived-class getter
 | |
|         (e.g. wxColourPickerCtrl::GetColour(), wxFilePickerCtrl::GetPath(), etc).
 | |
|     */
 | |
|     wxTextCtrl* GetTextCtrl();
 | |
| 
 | |
|     /**
 | |
|         Returns the native implementation of the real picker control.
 | |
| 
 | |
|         @note
 | |
|         The returned control in the generic implementation of wxFilePickerCtrl,
 | |
|         wxDirPickerCtrl, wxFontPickerCtrl and wxColourPickerCtrl is a specialized
 | |
|         wxButton class so that you can change its label doing, e.g.:
 | |
|         @code
 | |
|             #ifdef __WXMSW__
 | |
|                 // wxMSW is one of the platforms where the generic implementation
 | |
|                 // of wxFilePickerCtrl is used...
 | |
| 
 | |
|                 wxButton *pButt = static_cast<wxButton*>(myFilePickerCtrl->GetPickerCtrl());
 | |
|                 if (pButt)
 | |
|                     pButt->SetLabel("Custom browse string");
 | |
|             #endif
 | |
|         @endcode
 | |
|     */
 | |
|     wxControl* GetPickerCtrl();
 | |
| 
 | |
|     /**
 | |
|         Returns the proportion value of the text control.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     int GetTextCtrlProportion() const;
 | |
| 
 | |
|     /**
 | |
|         Returns @true if this window has a valid text control (i.e.\ if the @c
 | |
|         wxPB_USE_TEXTCTRL style was given when creating this control).
 | |
|     */
 | |
|     bool HasTextCtrl() const;
 | |
| 
 | |
|     /**
 | |
|         Returns @true if the picker control is growable.
 | |
|     */
 | |
|     bool IsPickerCtrlGrowable() const;
 | |
| 
 | |
|     /**
 | |
|         Returns @true if the text control is growable.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     bool IsTextCtrlGrowable() const;
 | |
| 
 | |
|     /**
 | |
|         Sets the margin (in pixel) between the picker and the text control.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     void SetInternalMargin(int margin);
 | |
| 
 | |
|     /**
 | |
|         Sets the picker control as growable when @c grow is @true.
 | |
|     */
 | |
|     void SetPickerCtrlGrowable(bool grow = true);
 | |
| 
 | |
|     /**
 | |
|         Sets the proportion value of the picker.
 | |
| 
 | |
|         Look at the detailed description of wxPickerBase for more info.
 | |
|     */
 | |
|     void SetPickerCtrlProportion(int prop);
 | |
| 
 | |
|     /**
 | |
|         Sets the text control as growable when @c grow is @true.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     void SetTextCtrlGrowable(bool grow = true);
 | |
| 
 | |
|     /**
 | |
|         Sets the proportion value of the text control.
 | |
| 
 | |
|         Look at the detailed description of wxPickerBase for more info.
 | |
| 
 | |
|         This function can be used only when HasTextCtrl() returns @true.
 | |
|     */
 | |
|     void SetTextCtrlProportion(int prop);
 | |
| 
 | |
| 
 | |
|     void SetTextCtrl(wxTextCtrl* text);
 | |
|     void SetPickerCtrl(wxControl* picker);
 | |
| 
 | |
|     virtual void UpdatePickerFromTextCtrl() = 0;
 | |
|     virtual void UpdateTextCtrlFromPicker() = 0;
 | |
|     
 | |
| protected:
 | |
|     virtual long GetTextCtrlStyle(long style) const;
 | |
|     virtual long GetPickerStyle(long style) const;
 | |
|     void PostCreation();
 | |
| };
 | |
| 
 |