#ifndef WXSSTRINGLISTPROPERTY_H
#define WXSSTRINGLISTPROPERTY_H

#include "../wxsproperties.h"
#include "../widget.h"


class wxsStringListProperty : public wxsProperty
{
	public:

        /** Ctor */
		wxsStringListProperty(wxsProperties* Properties,wxArrayString& Array);

        /** Ctor */
		wxsStringListProperty(wxsProperties* Properties,wxArrayString& Array,int& Selected,int SortedFlag=0);

		/** DCtor */
		virtual ~wxsStringListProperty();

        /** Taking name of value type handled by this item */
        virtual const wxString& GetTypeName();
        
    protected:
        
        #ifdef __NO_PROPGRGID
            virtual wxWindow* BuildEditWindow(wxWindow* Parent);
            virtual void UpdateEditWindow();
            void EditList();
        #else
            virtual void AddToPropGrid(wxPropertyGrid* Grid,const wxString& Name);
            virtual bool PropGridChanged(wxPropertyGrid* Grid,wxPGId Id);
            virtual void UpdatePropGrid(wxPropertyGrid* Grid);
        #endif
        
	private:

		wxArrayString& Array;
		int* Selected;
		int SortedFlag;

		#ifdef __NO_PROPGRGID
            friend class wxsStringListPropertyWindow;
        #else
            wxPGId PGId;
            wxPGId SelId;
            
            void BuildChoices(wxPropertyGrid* Grid);
            void RebuildChoices(wxPropertyGrid* Grid);
            bool IsSorted();
        #endif
};

#endif


syntax highlighted by Code2HTML, v. 0.9.1