| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/propgrid/advprops.h
 
- // Purpose:     wxPropertyGrid Advanced Properties (font, colour, etc.)
 
- // Author:      Jaakko Salli
 
- // Modified by:
 
- // Created:     2004-09-25
 
- // Copyright:   (c) Jaakko Salli
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_PROPGRID_ADVPROPS_H_
 
- #define _WX_PROPGRID_ADVPROPS_H_
 
- #include "wx/defs.h"
 
- #if wxUSE_PROPGRID
 
- #include "wx/propgrid/props.h"
 
- // -----------------------------------------------------------------------
 
- //
 
- // Additional Value Type Handlers
 
- //
 
- bool WXDLLIMPEXP_PROPGRID
 
- operator==(const wxArrayInt& array1, const wxArrayInt& array2);
 
- //
 
- // Additional Property Editors
 
- //
 
- #if wxUSE_SPINBTN
 
- WX_PG_DECLARE_EDITOR_WITH_DECL(SpinCtrl,WXDLLIMPEXP_PROPGRID)
 
- #endif
 
- #if wxUSE_DATEPICKCTRL
 
- WX_PG_DECLARE_EDITOR_WITH_DECL(DatePickerCtrl,WXDLLIMPEXP_PROPGRID)
 
- #endif
 
- // -----------------------------------------------------------------------
 
- // Web colour is currently unsupported
 
- #define wxPG_COLOUR_WEB_BASE        0x10000
 
- //#define wxPG_TO_WEB_COLOUR(A)   ((wxUint32)(A+wxPG_COLOUR_WEB_BASE))
 
- #define wxPG_COLOUR_CUSTOM      0xFFFFFF
 
- #define wxPG_COLOUR_UNSPECIFIED (wxPG_COLOUR_CUSTOM+1)
 
- /** @class wxColourPropertyValue
 
-     Because text, background and other colours tend to differ between
 
-     platforms, wxSystemColourProperty must be able to select between system
 
-     colour and, when necessary, to pick a custom one. wxSystemColourProperty
 
-     value makes this possible.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxColourPropertyValue : public wxObject
 
- {
 
- public:
 
-     /** An integer value relating to the colour, and which exact
 
-         meaning depends on the property with which it is used.
 
-         For wxSystemColourProperty:
 
-         Any of wxSYS_COLOUR_XXX, or any web-colour ( use wxPG_TO_WEB_COLOUR
 
-         macro - (currently unsupported) ), or wxPG_COLOUR_CUSTOM.
 
-         For custom colour properties without values array specified:
 
-         index or wxPG_COLOUR_CUSTOM
 
-         For custom colour properties <b>with</b> values array specified:
 
-         m_arrValues[index] or wxPG_COLOUR_CUSTOM
 
-     */
 
-     wxUint32    m_type;
 
-     /** Resulting colour. Should be correct regardless of type. */
 
-     wxColour    m_colour;
 
-     wxColourPropertyValue()
 
-         : wxObject()
 
-     {
 
-         m_type = 0;
 
-     }
 
-     virtual ~wxColourPropertyValue()
 
-     {
 
-     }
 
-     wxColourPropertyValue( const wxColourPropertyValue& v )
 
-         : wxObject()
 
-     {
 
-         m_type = v.m_type;
 
-         m_colour = v.m_colour;
 
-     }
 
-     void Init( wxUint32 type, const wxColour& colour )
 
-     {
 
-         m_type = type;
 
-         m_colour = colour;
 
-     }
 
-     wxColourPropertyValue( const wxColour& colour )
 
-         : wxObject()
 
-     {
 
-         m_type = wxPG_COLOUR_CUSTOM;
 
-         m_colour = colour;
 
-     }
 
-     wxColourPropertyValue( wxUint32 type )
 
-         : wxObject()
 
-     {
 
-         m_type = type;
 
-     }
 
-     wxColourPropertyValue( wxUint32 type, const wxColour& colour )
 
-         : wxObject()
 
-     {
 
-         Init( type, colour );
 
-     }
 
-     void operator=(const wxColourPropertyValue& cpv)
 
-     {
 
-         if (this != &cpv)
 
-             Init( cpv.m_type, cpv.m_colour );
 
-     }
 
- private:
 
-     DECLARE_DYNAMIC_CLASS(wxColourPropertyValue)
 
- };
 
- bool WXDLLIMPEXP_PROPGRID
 
- operator==(const wxColourPropertyValue&, const wxColourPropertyValue&);
 
- DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
 
- // -----------------------------------------------------------------------
 
- // Declare part of custom colour property macro pairs.
 
- #if wxUSE_IMAGE
 
-     #include "wx/image.h"
 
- #endif
 
- // -----------------------------------------------------------------------
 
- /** @class wxFontProperty
 
-     @ingroup classes
 
-     Property representing wxFont.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxFontProperty : public wxPGProperty
 
- {
 
-     WX_PG_DECLARE_PROPERTY_CLASS(wxFontProperty)
 
- public:
 
-     wxFontProperty(const wxString& label = wxPG_LABEL,
 
-                    const wxString& name = wxPG_LABEL,
 
-                    const wxFont& value = wxFont());
 
-     virtual ~wxFontProperty();
 
-     virtual void OnSetValue();
 
-     virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
 
-     virtual bool OnEvent( wxPropertyGrid* propgrid,
 
-                           wxWindow* primary, wxEvent& event );
 
-     virtual wxVariant ChildChanged( wxVariant& thisValue,
 
-                                     int childIndex,
 
-                                     wxVariant& childValue ) const;
 
-     virtual void RefreshChildren();
 
- protected:
 
- };
 
- // -----------------------------------------------------------------------
 
- /** If set, then match from list is searched for a custom colour. */
 
- #define wxPG_PROP_TRANSLATE_CUSTOM      wxPG_PROP_CLASS_SPECIFIC_1
 
- /** @class wxSystemColourProperty
 
-     @ingroup classes
 
-     Has dropdown list of wxWidgets system colours. Value used is
 
-     of wxColourPropertyValue type.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxSystemColourProperty : public wxEnumProperty
 
- {
 
-     WX_PG_DECLARE_PROPERTY_CLASS(wxSystemColourProperty)
 
- public:
 
-     wxSystemColourProperty( const wxString& label = wxPG_LABEL,
 
-                             const wxString& name = wxPG_LABEL,
 
-                             const wxColourPropertyValue&
 
-                                 value = wxColourPropertyValue() );
 
-     virtual ~wxSystemColourProperty();
 
-     virtual void OnSetValue();
 
-     virtual bool IntToValue(wxVariant& variant,
 
-                             int number,
 
-                             int argFlags = 0) const;
 
-     /**
 
-         Override in derived class to customize how colours are printed as
 
-         strings.
 
-     */
 
-     virtual wxString ColourToString( const wxColour& col, int index,
 
-                                      int argFlags = 0 ) const;
 
-     /** Returns index of entry that triggers colour picker dialog
 
-         (default is last).
 
-     */
 
-     virtual int GetCustomColourIndex() const;
 
-     virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
 
-     virtual bool StringToValue( wxVariant& variant,
 
-                                 const wxString& text,
 
-                                 int argFlags = 0 ) const;
 
-     virtual bool OnEvent( wxPropertyGrid* propgrid,
 
-                           wxWindow* primary, wxEvent& event );
 
-     virtual bool DoSetAttribute( const wxString& name, wxVariant& value );
 
-     virtual wxSize OnMeasureImage( int item ) const;
 
-     virtual void OnCustomPaint( wxDC& dc,
 
-                                 const wxRect& rect, wxPGPaintData& paintdata );
 
-     // Helper function to show the colour dialog
 
-     bool QueryColourFromUser( wxVariant& variant ) const;
 
-     /** Default is to use wxSystemSettings::GetColour(index). Override to use
 
-         custom colour tables etc.
 
-     */
 
-     virtual wxColour GetColour( int index ) const;
 
-     wxColourPropertyValue GetVal( const wxVariant* pVariant = NULL ) const;
 
- protected:
 
-     // Special constructors to be used by derived classes.
 
-     wxSystemColourProperty( const wxString& label, const wxString& name,
 
-         const wxChar* const* labels, const long* values, wxPGChoices* choicesCache,
 
-         const wxColourPropertyValue& value );
 
-     wxSystemColourProperty( const wxString& label, const wxString& name,
 
-         const wxChar* const* labels, const long* values, wxPGChoices* choicesCache,
 
-         const wxColour& value );
 
-     void Init( int type, const wxColour& colour );
 
-     // Utility functions for internal use
 
-     virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const;
 
-     wxVariant TranslateVal( wxColourPropertyValue& v ) const
 
-     {
 
-         return DoTranslateVal( v );
 
-     }
 
-     wxVariant TranslateVal( int type, const wxColour& colour ) const
 
-     {
 
-         wxColourPropertyValue v(type, colour);
 
-         return DoTranslateVal( v );
 
-     }
 
-     // Translates colour to a int value, return wxNOT_FOUND if no match.
 
-     int ColToInd( const wxColour& colour ) const;
 
- };
 
- // -----------------------------------------------------------------------
 
- class WXDLLIMPEXP_PROPGRID wxColourProperty : public wxSystemColourProperty
 
- {
 
-     WX_PG_DECLARE_PROPERTY_CLASS(wxColourProperty)
 
- public:
 
-     wxColourProperty( const wxString& label = wxPG_LABEL,
 
-                       const wxString& name = wxPG_LABEL,
 
-                       const wxColour& value = *wxWHITE );
 
-     virtual ~wxColourProperty();
 
-     virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
 
-     virtual wxColour GetColour( int index ) const;
 
- protected:
 
-     virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const;
 
- private:
 
-     void Init( wxColour colour );
 
- };
 
- // -----------------------------------------------------------------------
 
- /** @class wxCursorProperty
 
-     @ingroup classes
 
-     Property representing wxCursor.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty
 
- {
 
-     DECLARE_DYNAMIC_CLASS(wxCursorProperty)
 
-     wxCursorProperty( const wxString& label= wxPG_LABEL,
 
-                       const wxString& name= wxPG_LABEL,
 
-                       int value = 0 );
 
-     virtual ~wxCursorProperty();
 
-     virtual wxSize OnMeasureImage( int item ) const;
 
-     virtual void OnCustomPaint( wxDC& dc,
 
-                                 const wxRect& rect, wxPGPaintData& paintdata );
 
- };
 
- // -----------------------------------------------------------------------
 
- #if wxUSE_IMAGE
 
- WXDLLIMPEXP_PROPGRID const wxString& wxPGGetDefaultImageWildcard();
 
- /** @class wxImageFileProperty
 
-     @ingroup classes
 
-     Property representing image file(name).
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxImageFileProperty : public wxFileProperty
 
- {
 
-     DECLARE_DYNAMIC_CLASS(wxImageFileProperty)
 
- public:
 
-     wxImageFileProperty( const wxString& label= wxPG_LABEL,
 
-                          const wxString& name = wxPG_LABEL,
 
-                          const wxString& value = wxEmptyString);
 
-     virtual ~wxImageFileProperty();
 
-     virtual void OnSetValue();
 
-     virtual wxSize OnMeasureImage( int item ) const;
 
-     virtual void OnCustomPaint( wxDC& dc,
 
-                                 const wxRect& rect, wxPGPaintData& paintdata );
 
- protected:
 
-     wxBitmap*   m_pBitmap; // final thumbnail area
 
-     wxImage*    m_pImage; // intermediate thumbnail area
 
- private:
 
-     // Initialize m_pImage using the current file name.
 
-     void LoadImageFromFile();
 
- };
 
- #endif
 
- #if wxUSE_CHOICEDLG
 
- /** @class wxMultiChoiceProperty
 
-     @ingroup classes
 
-     Property that manages a value resulting from wxMultiChoiceDialog. Value is
 
-     array of strings. You can get value as array of choice values/indices by
 
-     calling wxMultiChoiceProperty::GetValueAsArrayInt().
 
-     <b>Supported special attributes:</b>
 
-     - "UserStringMode": If > 0, allow user to manually enter strings that are
 
-       not in the list of choices. If this value is 1, user strings are
 
-       preferably placed in front of valid choices. If value is 2, then those
 
-       strings will placed behind valid choices.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxMultiChoiceProperty : public wxPGProperty
 
- {
 
-     WX_PG_DECLARE_PROPERTY_CLASS(wxMultiChoiceProperty)
 
- public:
 
-     wxMultiChoiceProperty( const wxString& label,
 
-                            const wxString& name,
 
-                            const wxArrayString& strings,
 
-                            const wxArrayString& value );
 
-     wxMultiChoiceProperty( const wxString& label,
 
-                            const wxString& name,
 
-                            const wxPGChoices& choices,
 
-                            const wxArrayString& value = wxArrayString() );
 
-     wxMultiChoiceProperty( const wxString& label = wxPG_LABEL,
 
-                            const wxString& name = wxPG_LABEL,
 
-                            const wxArrayString& value = wxArrayString() );
 
-     virtual ~wxMultiChoiceProperty();
 
-     virtual void OnSetValue();
 
-     virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
 
-     virtual bool StringToValue(wxVariant& variant,
 
-                                const wxString& text,
 
-                                int argFlags = 0) const;
 
-     virtual bool OnEvent( wxPropertyGrid* propgrid,
 
-                           wxWindow* primary, wxEvent& event );
 
-     wxArrayInt GetValueAsArrayInt() const
 
-     {
 
-         return m_choices.GetValuesForStrings(m_value.GetArrayString());
 
-     }
 
- protected:
 
-     void GenerateValueAsString( wxVariant& value, wxString* target ) const;
 
-     // Returns translation of values into string indices.
 
-     wxArrayInt GetValueAsIndices() const;
 
-     wxArrayString       m_valueAsStrings;  // Value as array of strings
 
-     // Cache displayed text since generating it is relatively complicated.
 
-     wxString            m_display;
 
- };
 
- #endif // wxUSE_CHOICEDLG
 
- // -----------------------------------------------------------------------
 
- #if wxUSE_DATETIME
 
- /** @class wxDateProperty
 
-     @ingroup classes
 
-     Property representing wxDateTime.
 
-     <b>Supported special attributes:</b>
 
-     - "DateFormat": Determines displayed date format.
 
-     - "PickerStyle": Determines window style used with wxDatePickerCtrl.
 
-        Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE
 
-        enables additional support for unspecified property value.
 
- */
 
- class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty
 
- {
 
-     WX_PG_DECLARE_PROPERTY_CLASS(wxDateProperty)
 
- public:
 
-     wxDateProperty( const wxString& label = wxPG_LABEL,
 
-                     const wxString& name = wxPG_LABEL,
 
-                     const wxDateTime& value = wxDateTime() );
 
-     virtual ~wxDateProperty();
 
-     virtual void OnSetValue();
 
-     virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const;
 
-     virtual bool StringToValue(wxVariant& variant,
 
-                                const wxString& text,
 
-                                int argFlags = 0) const;
 
-     virtual bool DoSetAttribute( const wxString& name, wxVariant& value );
 
-     void SetFormat( const wxString& format )
 
-     {
 
-         m_format = format;
 
-     }
 
-     const wxString& GetFormat() const
 
-     {
 
-         return m_format;
 
-     }
 
-     void SetDateValue( const wxDateTime& dt )
 
-     {
 
-         //m_valueDateTime = dt;
 
-         m_value = dt;
 
-     }
 
-     wxDateTime GetDateValue() const
 
-     {
 
-         //return m_valueDateTime;
 
-         return m_value;
 
-     }
 
-     long GetDatePickerStyle() const
 
-     {
 
-         return m_dpStyle;
 
-     }
 
- protected:
 
-     wxString        m_format;
 
-     long            m_dpStyle;  // DatePicker style
 
-     static wxString ms_defaultDateFormat;
 
-     static wxString DetermineDefaultDateFormat( bool showCentury );
 
- };
 
- #endif // wxUSE_DATETIME
 
- // -----------------------------------------------------------------------
 
- #if wxUSE_SPINBTN
 
- //
 
- // Implement an editor control that allows using wxSpinCtrl (actually, a
 
- // combination of wxTextCtrl and wxSpinButton) to edit value of wxIntProperty
 
- // and wxFloatProperty (and similar).
 
- //
 
- // Note that new editor classes needs to be registered before use. This can be
 
- // accomplished using wxPGRegisterEditorClass macro, which is used for SpinCtrl
 
- // in wxPropertyGridInterface::RegisterAdditionalEditors (see below).
 
- // Registration can also be performed in a constructor of a property that is
 
- // likely to require the editor in question.
 
- //
 
- #include "wx/spinbutt.h"
 
- #include "wx/propgrid/editors.h"
 
- // NOTE: Regardless that this class inherits from a working editor, it has
 
- //   all necessary methods to work independently. wxTextCtrl stuff is only
 
- //   used for event handling here.
 
- class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor
 
- {
 
-     DECLARE_DYNAMIC_CLASS(wxPGSpinCtrlEditor)
 
- public:
 
-     virtual ~wxPGSpinCtrlEditor();
 
-     wxString GetName() const;
 
-     virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid,
 
-                                           wxPGProperty* property,
 
-                                           const wxPoint& pos,
 
-                                           const wxSize& size) const;
 
-     virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property,
 
-         wxWindow* wnd, wxEvent& event ) const;
 
- private:
 
-     mutable wxString m_tempString;
 
- };
 
- #endif // wxUSE_SPINBTN
 
- // -----------------------------------------------------------------------
 
- #endif // wxUSE_PROPGRID
 
- #endif // _WX_PROPGRID_ADVPROPS_H_
 
 
  |