<!--
  Copyright (C) 2015 William Yu <williamyu@gnome.org>
  
  This library is free software: you can redistribute it and/or modify it
  under the terms of version 2.1. of the GNU Lesser General Public License
  as published by the Free Software Foundation.
  
  This library is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
  for more details.
  
  You should have received a copy of the GNU Lesser General Public License
  along with this library. If not, see <http://www.gnu.org/licenses/>.
-->
<structure namespace="ICal" name="Parameter" native="icalparameter" destroy_func="icalparameter_free">
    <method name="i_cal_parameter_new" corresponds="icalparameter_new" kind="constructor" since="1.0">
        <parameter type="ICalParameterKind" name="v" comment="The type of #ICalParameter to be created"/>
        <returns type="ICalParameter *" annotation="transfer full" comment="The newly created #ICalParameter." />
        <comment xml:space="preserve">Create a new #ICalParameter according to the kind type</comment>
    </method> 
    <method name="i_cal_parameter_new_clone" corresponds="icalparameter_new_clone" kind="clone" since="1.0">
        <parameter type="ICalParameter *" name="p" annotation="in" comment="The #ICalParameter to be cloned"/>
        <returns type="ICalParameter *" annotation="transfer full" comment="The newly created #ICalParameter with the same properties as the @p." />
        <comment xml:space="preserve">Deep clone a #ICalParameter</comment>
    </method>
    <method name="i_cal_parameter_new_from_string" corresponds="icalparameter_new_from_string" kind="constructor" since="1.0">
        <parameter type="const gchar *" name="value" annotation="in, transfer none" comment="The string from which the #ICalParameter is created."/>
        <returns type="ICalParameter *" annotation="transfer full" comment="The newly created $ICalParameter with the properties specified in the @value." />
        <comment xml:space="preserve">Create a #ICalParameter from a string of form "PARAMNAME=VALUE".</comment>
    </method>
    <method name="i_cal_parameter_new_from_value_string" corresponds="icalparameter_new_from_value_string" kind="constructor" since="1.0">
        <parameter type="ICalParameterKind" name="kind" comment="The kind of #ICalParameter to be created."/>
        <parameter type="const gchar *" name="value" comment="The string from which #ICalParameter to be created."/>
        <returns type="ICalParameter *" annotation="transfer full" comment="The newly created #ICalParameter" />
        <comment xml:space="preserve">Create a new #ICalParameter from just the value, the part after the "="</comment>
    </method>
    <method name="i_cal_parameter_free" corresponds="icalparameter_free" annotation="skip" kind="destructor" since="1.0">
        <parameter type="ICalParameter *" name="parameter" annotation="in" comment="The #ICalParameter to be freeed."/>
        <comment xml:space="preserve">Free the native part of the ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_as_ical_string_r" corresponds="icalparameter_as_ical_string_r" kind="others" since="1.0">
        <parameter type="ICalParameter *" name="parameter" annotation="in" comment="The #ICalParameter to be converted."/>
        <returns type="gchar *" annotation="transfer full" comment="The string representation of the @parameter." />
        <comment xml:space="preserve">Convert an #ICalParameter to the string representation.</comment>
    </method>
    <method name="i_cal_parameter_isa" corresponds="icalparameter_isa" kind="others" since="1.0">
        <parameter type="ICalParameter *" name="parameter" comment="The #ICalParameter to be determined for the type."/>
        <returns type="ICalParameterKind" comment="The type of the @parameter." />
        <comment xml:space="preserve">Check the type of a #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_isa_parameter" corresponds="icalparameter_isa_parameter" kind="others" since="1.0">
        <parameter type="ICalParameter *" name="param" annotation="in" comment="The #ICalParameter to be checked."/>
        <returns type="gint" comment="1 if the native part is of type icalparameter, 0 if not." />
        <comment xml:space="preserve">Check whether the native part of the #ICalParameter is of type icalparameter.</comment>
    </method>
    <method name="i_cal_parameter_set_xname" corresponds="icalparameter_set_xname" kind="set" since="1.0">
        <parameter type="ICalParameter *" name="param" annotation="in-out" comment="The #ICalParameter of which the xname to be set."/>
        <parameter type="const gchar *" name="v" comment="The name to be set into the @param."/>
        <comment xml:space="preserve">Set the xname property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_get_xname" corresponds="icalparameter_get_xname" kind="get" since="1.0">
        <parameter type="ICalParameter *" name="param" comment="The #ICalParameter to be queried"/>
        <returns type="const gchar *" annotation="allow-none" comment="the property of the @value" />
        <comment xml:space="preserve">Get the xname property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_set_xvalue" corresponds="icalparameter_set_xvalue" kind="set" since="1.0">
        <parameter type="ICalParameter *" name="param" annotation="in-out" comment="The #ICalParameter of which the xvalue to be set."/>
        <parameter type="const gchar *" name="v" comment="The value to be set into the @param."/>
        <comment xml:space="preserve">Set the xvalue property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_get_xvalue" corresponds="icalparameter_get_xvalue" kind="get" since="1.0">
        <parameter type="ICalParameter *" name="param" comment="The #ICalParameter to be queried"/>
        <returns type="const gchar *" annotation="allow-none" comment="the property of the @value" />
        <comment xml:space="preserve">Get the xvalue property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_set_iana_name" corresponds="icalparameter_set_iana_name" kind="set" since="1.0">
        <parameter type="ICalParameter *" name="param" annotation="in-out" comment="The #ICalParameter of which the iana_name to be set."/>
        <parameter type="const gchar *" name="v" comment="The name to be set into the @param."/>
        <comment xml:space="preserve">Set the iana_name property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_get_iana_name" corresponds="icalparameter_get_iana_name" kind="get" since="1.0">
        <parameter type="ICalParameter *" name="param" comment="The #ICalParameter to be queried"/>
        <returns type="const gchar *" annotation="allow-none" comment="the property of the @value" />
        <comment xml:space="preserve">Get the iana_name property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_set_iana_value" corresponds="icalparameter_set_iana_value" kind="set" since="1.0">
        <parameter type="ICalParameter *" name="param" annotation="in-out" comment="The #ICalParameter of which the iana_value to be set."/>
        <parameter type="const gchar *" name="v" comment="The value to be set into the @param."/>
        <comment xml:space="preserve">Set the iana_value property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_get_iana_value" corresponds="icalparameter_get_iana_value" kind="get" since="1.0">
        <parameter type="ICalParameter *" name="param" comment="The #ICalParameter to be queried"/>
        <returns type="const gchar *" annotation="allow-none" comment="the property of the @value" />
        <comment xml:space="preserve">Get the iana_value property of the native part of the #ICalParameter.</comment>
    </method>
    <method name="i_cal_parameter_has_same_name" corresponds="icalparameter_has_same_name" kind="others" since="1.0">
        <parameter type="ICalParameter *" name="param1" comment="The #ICalParameter to be checked"/>
        <parameter type="ICalParameter *" name="param2" comment="The #ICalParameter to be checked"/>
        <returns type="gint" comment="1 if the parameters have the same name, 0 or not." />
        <comment xml:space="preserve">Check whether native parts of two #ICalParameters have the same name</comment>
    </method>
    <method name="i_cal_parameter_kind_to_string" corresponds="icalparameter_kind_to_string" kind="others" since="1.0">
        <parameter type="ICalParameterKind" name="kind" comment="The #ICalParameterKind to be converted"/>
        <returns type="const gchar *" comment="The string representation of @kind." />
        <comment xml:space="preserve">Convert the #ICalParameter to the string representation</comment>
    </method>
    <method name="i_cal_parameter_string_to_kind" corresponds="icalparameter_string_to_kind" kind="others" since="1.0">
        <parameter type="const gchar *" name="string" comment="The string representation of the #ICalParameter"/>
        <returns type="ICalParameterKind" comment="The #ICalParameterKind converted from @string" />
        <comment xml:space="preserve">Convert a string to the #ICalParameterKind</comment>
    </method>
</structure>
