.. wxPython Phoenix documentation

   This file was generated by Phoenix's sphinx generator and associated
   tools, do not edit by hand.

   Copyright: (c) 2011-2017 by Total Control Software
   License:   wxWindows License

.. include:: headings.inc



.. _wx.propgrid.EnumProperty:

==========================================================================================================================================
|phoenix_title|  **wx.propgrid.EnumProperty**
==========================================================================================================================================

You can derive custom properties with choices from this class.          

See BaseEnumProperty for remarks. 

         



.. note:: 

   

   - Updating private index is important. You can do this either by calling :meth:`SetIndex`   in IntToValue, and then letting `BaseEnumProperty.OnSetValue` be called (by not implementing it, or by calling super class function in it) ``-OR-`` you can just call SetIndex in OnSetValue.  










|

|class_hierarchy| Class Hierarchy
=================================

.. raw:: html

   <div id="toggleBlock" onclick="return toggleVisibility(this)" class="closed" style="cursor:pointer;">
   <img id="toggleBlock-trigger" src="_static/images/closed.png"/>
   Inheritance diagram for class <strong>EnumProperty</strong>:
   </div>
   <div id="toggleBlock-summary" style="display:block;"></div>
   <div id="toggleBlock-content" style="display:none;">
   <p class="graphviz">
   <center><img src="_static/images/inheritance/wx.propgrid.EnumProperty_inheritance.png" alt="Inheritance diagram of EnumProperty" usemap="#dummy" class="inheritance"/></center>
   </div>
   <script type="text/javascript">toggleVisibilityOnLoad(document.getElementById('toggleBlock'))</script>
   <map id="dummy" name="dummy"> <area shape="rect" id="node1" href="wx.Object.html" title="wx.Object" alt="" coords="59,5,140,35"/> <area shape="rect" id="node2" href="wx.propgrid.PGProperty.html" title="wx.propgrid.PGProperty" alt="" coords="15,83,185,112"/> <area shape="rect" id="node3" href="wx.propgrid.EnumProperty.html" title="wx.propgrid.EnumProperty" alt="" coords="5,160,195,189"/> </map> 
   </p>

|


|sub_classes| Known Subclasses
==============================

:ref:`wx.propgrid.CursorProperty`, :ref:`wx.propgrid.EditEnumProperty`, :ref:`wx.propgrid.SystemColourProperty`

|


|method_summary| Methods Summary
================================

================================================================================ ================================================================================
:meth:`~wx.propgrid.EnumProperty.__init__`                                       
:meth:`~wx.propgrid.EnumProperty.GetChoiceSelection`                             Returns which choice is currently selected.
:meth:`~wx.propgrid.EnumProperty.GetIndexForValue`                               
:meth:`~wx.propgrid.EnumProperty.GetItemCount`                                   
:meth:`~wx.propgrid.EnumProperty.IntToValue`                                     Converts integer (possibly a choice selection) into :ref:`Variant`  value appropriate for this property.
:meth:`~wx.propgrid.EnumProperty.OnSetValue`                                     This virtual function is called after m_value has been set.
:meth:`~wx.propgrid.EnumProperty.OnValidationFailure`                            Called whenever validation has failed with given pending value.
:meth:`~wx.propgrid.EnumProperty.StringToValue`                                  Converts text into :ref:`Variant`  value appropriate for this property.
:meth:`~wx.propgrid.EnumProperty.ValidateValue`                                  Implement this function in derived class to check the value.
:meth:`~wx.propgrid.EnumProperty.ValueToString`                                  Converts property value into a text representation.
================================================================================ ================================================================================


|


|property_summary| Properties Summary
=====================================

================================================================================ ================================================================================
:attr:`~wx.propgrid.EnumProperty.ChoiceSelection`                                See :meth:`~wx.propgrid.EnumProperty.GetChoiceSelection`
:attr:`~wx.propgrid.EnumProperty.ItemCount`                                      See :meth:`~wx.propgrid.EnumProperty.GetItemCount`
================================================================================ ================================================================================


|


|api| Class API
===============


.. class:: wx.propgrid.EnumProperty(PGProperty)

   **Possible constructors**::

       EnumProperty(label, name, choices, value=0)
       
       EnumProperty(label=PG_LABEL, name=PG_LABEL, labels=[], values=[],
                    value=0)
       
   
   You can derive custom properties with choices from this class.



   .. method:: __init__(self, *args, **kw)



      |overload| Overloaded Implementations:

      **~~~**

      
      **__init__** `(self, label, name, choices, value=0)`
      
      
      
      
      :param `label`: 
      :type `label`: string
      :param `name`: 
      :type `name`: string
      :param `choices`: 
      :type `choices`: wx.propgrid.PGChoices
      :param `value`: 
      :type `value`: int
      
      
      
      
      
      
      **~~~**

      
      **__init__** `(self, label=PG_LABEL, name=PG_LABEL, labels=[], values=[], value=0)`
      
      
      
      
      :param `label`: 
      :type `label`: string
      :param `name`: 
      :type `name`: string
      :param `labels`: 
      :type `labels`: list of strings
      :param `values`: 
      :type `values`: list of integers
      :param `value`: 
      :type `value`: int
      
      
      
      
      
      
      **~~~**






   .. method:: GetChoiceSelection(self)

      Returns which choice is currently selected.                  

      Only applies to properties which have choices. 

      Needs to reimplemented in derived class if property value does not map directly to a choice. Integer as index, bool, and string usually do.                  

      :rtype: `int`








   .. method:: GetIndexForValue(self, value)




      :param `value`: 
      :type `value`: int




      :rtype: `int`








   .. method:: GetItemCount(self)



      :rtype: `int`








   .. method:: IntToValue(self, variant, number, argFlags=0)

      Converts integer (possibly a choice selection) into :ref:`Variant`  value appropriate for this property.                  




      :param `variant`: On function entry this is the old value (should not be NullVariant in normal cases). Translated value must be assigned back to it.   
      :type `variant`: PGVariant
      :param `number`: Integer to be translated into variant.   
      :type `number`: int
      :param `argFlags`: If ``wx.propgrid.PG_FULL_VALUE`` is set, returns complete, storable value instead of displayable one.  
      :type `argFlags`: int










      :rtype: `bool`



                  



      :returns: 

         Returns ``True`` if resulting :ref:`Variant`  value was different.  







      .. note:: 

   

         - If property is not supposed to use choice or spinctrl or other editor with int-based value, it is not necessary to implement this method. 
         - Default implementation simply assign given int to m_value. 
         - If property uses choice control, and displays a dialog on some choice items, then it is preferred to display that dialog in IntToValue instead of OnEvent. 
         - You might want to take into account that m_value is Mull variant if property value is unspecified (which is usually only case if you explicitly enabled that sort behaviour).  











   .. method:: OnSetValue(self)

      This virtual function is called after m_value has been set.                  

                 



      .. note:: 

   

         - If m_value was set to Null variant (ie. unspecified value), :meth:`OnSetValue`   will not be called. 
         - m_value may be of any variant type. Typically properties internally support only one variant type, and as such :meth:`OnSetValue`   provides a good opportunity to convert supported values into internal type. 
         - Default implementation does nothing.  











   .. method:: OnValidationFailure(self, pendingValue)

      Called whenever validation has failed with given pending value.                  

                


      :param `pendingValue`: 
      :type `pendingValue`: PGVariant






      .. note:: 

         If you implement this in your custom property class, please remember to call the baser implementation as well, since they may use it to revert property into pre-change state.   








   .. method:: StringToValue(self, variant, text, argFlags=0)

      Converts text into :ref:`Variant`  value appropriate for this property.                  




      :param `variant`: On function entry this is the old value (should not be NullVariant in normal cases). Translated value must be assigned back to it.  
      :type `variant`: PGVariant
      :param `text`: Text to be translated into variant.  
      :type `text`: string
      :param `argFlags`: If ``wx.propgrid.PG_FULL_VALUE`` is set, returns complete, storable value instead of displayable one (they may be different). If ``wx.propgrid.PG_COMPOSITE_FRAGMENT`` is set, text is interpreted as a part of composite property string value (as generated by :meth:`ValueToString`   called with this same flag).  
      :type `argFlags`: int










      :rtype: `bool`




      You might want to take into account that m_value is Null variant if property value is unspecified (which is usually only case if you explicitly enabled that sort behaviour).                    



      :returns: 

         Returns ``True`` if resulting :ref:`Variant`  value was different.  







      .. note:: 

         Default implementation converts semicolon delimited tokens into child values. Only works for properties with children.  








   .. method:: ValidateValue(self, value, validationInfo)

      Implement this function in derived class to check the value.                  

      Return ``True`` if it is ok. Returning ``False`` prevents property change events from occurring. 

                


      :param `value`: 
      :type `value`: PGVariant
      :param `validationInfo`: 
      :type `validationInfo`: wx.propgrid.PGValidationInfo




      :rtype: `bool`







      .. note:: 

   

         - Default implementation always returns ``True``.  











   .. method:: ValueToString(self, value, argFlags=0)

      Converts property value into a text representation.                  




      :param `value`: Value to be converted.   
      :type `value`: PGVariant
      :param `argFlags`: If 0 (default value), then displayed string is returned. If ``wx.propgrid.PG_FULL_VALUE`` is set, returns complete, storable string value instead of displayable. If ``wx.propgrid.PG_EDITABLE_VALUE`` is set, returns string value that must be editable in textctrl. If ``wx.propgrid.PG_COMPOSITE_FRAGMENT`` is set, returns text that is appropriate to display as a part of string property's composite text representation.  
      :type `argFlags`: int








      :rtype: `string`



                  



      .. note:: 

         Default implementation calls :meth:`GenerateComposedValue` .   








   .. attribute:: ChoiceSelection

      See :meth:`~wx.propgrid.EnumProperty.GetChoiceSelection`


   .. attribute:: ItemCount

      See :meth:`~wx.propgrid.EnumProperty.GetItemCount`

