<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Atk" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="xlib" version="2.0"/>
  <package name="gweather-3.0"/>
  <namespace name="GWeather"
             version="3.0"
             shared-library="libgweather-3.so.1.0"
             c:identifier-prefixes="GWeather"
             c:symbol-prefixes="gweather">
    <alias name="MoonLatitude" c:type="GWeatherMoonLatitude">
      <type name="gdouble" c:type="gdouble"/>
    </alias>
    <alias name="MoonPhase" c:type="GWeatherMoonPhase">
      <type name="gdouble" c:type="gdouble"/>
    </alias>
    <enumeration name="ConditionPhenomenon"
                 c:type="GWeatherConditionPhenomenon">
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_PHENOMENON_INVALID"/>
      <member name="none" value="0" c:identifier="GWEATHER_PHENOMENON_NONE"/>
      <member name="drizzle"
              value="1"
              c:identifier="GWEATHER_PHENOMENON_DRIZZLE"/>
      <member name="rain" value="2" c:identifier="GWEATHER_PHENOMENON_RAIN"/>
      <member name="snow" value="3" c:identifier="GWEATHER_PHENOMENON_SNOW"/>
      <member name="snow_grains"
              value="4"
              c:identifier="GWEATHER_PHENOMENON_SNOW_GRAINS"/>
      <member name="ice_crystals"
              value="5"
              c:identifier="GWEATHER_PHENOMENON_ICE_CRYSTALS"/>
      <member name="ice_pellets"
              value="6"
              c:identifier="GWEATHER_PHENOMENON_ICE_PELLETS"/>
      <member name="hail" value="7" c:identifier="GWEATHER_PHENOMENON_HAIL"/>
      <member name="small_hail"
              value="8"
              c:identifier="GWEATHER_PHENOMENON_SMALL_HAIL"/>
      <member name="unknown_precipitation"
              value="9"
              c:identifier="GWEATHER_PHENOMENON_UNKNOWN_PRECIPITATION"/>
      <member name="mist" value="10" c:identifier="GWEATHER_PHENOMENON_MIST"/>
      <member name="fog" value="11" c:identifier="GWEATHER_PHENOMENON_FOG"/>
      <member name="smoke"
              value="12"
              c:identifier="GWEATHER_PHENOMENON_SMOKE"/>
      <member name="volcanic_ash"
              value="13"
              c:identifier="GWEATHER_PHENOMENON_VOLCANIC_ASH"/>
      <member name="sand" value="14" c:identifier="GWEATHER_PHENOMENON_SAND"/>
      <member name="haze" value="15" c:identifier="GWEATHER_PHENOMENON_HAZE"/>
      <member name="spray"
              value="16"
              c:identifier="GWEATHER_PHENOMENON_SPRAY"/>
      <member name="dust" value="17" c:identifier="GWEATHER_PHENOMENON_DUST"/>
      <member name="squall"
              value="18"
              c:identifier="GWEATHER_PHENOMENON_SQUALL"/>
      <member name="sandstorm"
              value="19"
              c:identifier="GWEATHER_PHENOMENON_SANDSTORM"/>
      <member name="duststorm"
              value="20"
              c:identifier="GWEATHER_PHENOMENON_DUSTSTORM"/>
      <member name="funnel_cloud"
              value="21"
              c:identifier="GWEATHER_PHENOMENON_FUNNEL_CLOUD"/>
      <member name="tornado"
              value="22"
              c:identifier="GWEATHER_PHENOMENON_TORNADO"/>
      <member name="dust_whirls"
              value="23"
              c:identifier="GWEATHER_PHENOMENON_DUST_WHIRLS"/>
      <member name="last" value="24" c:identifier="GWEATHER_PHENOMENON_LAST"/>
    </enumeration>
    <enumeration name="ConditionQualifier" c:type="GWeatherConditionQualifier">
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_QUALIFIER_INVALID"/>
      <member name="none" value="0" c:identifier="GWEATHER_QUALIFIER_NONE"/>
      <member name="vicinity"
              value="1"
              c:identifier="GWEATHER_QUALIFIER_VICINITY"/>
      <member name="light" value="2" c:identifier="GWEATHER_QUALIFIER_LIGHT"/>
      <member name="moderate"
              value="3"
              c:identifier="GWEATHER_QUALIFIER_MODERATE"/>
      <member name="heavy" value="4" c:identifier="GWEATHER_QUALIFIER_HEAVY"/>
      <member name="shallow"
              value="5"
              c:identifier="GWEATHER_QUALIFIER_SHALLOW"/>
      <member name="patches"
              value="6"
              c:identifier="GWEATHER_QUALIFIER_PATCHES"/>
      <member name="partial"
              value="7"
              c:identifier="GWEATHER_QUALIFIER_PARTIAL"/>
      <member name="thunderstorm"
              value="8"
              c:identifier="GWEATHER_QUALIFIER_THUNDERSTORM"/>
      <member name="blowing"
              value="9"
              c:identifier="GWEATHER_QUALIFIER_BLOWING"/>
      <member name="showers"
              value="10"
              c:identifier="GWEATHER_QUALIFIER_SHOWERS"/>
      <member name="drifting"
              value="11"
              c:identifier="GWEATHER_QUALIFIER_DRIFTING"/>
      <member name="freezing"
              value="12"
              c:identifier="GWEATHER_QUALIFIER_FREEZING"/>
      <member name="last" value="13" c:identifier="GWEATHER_QUALIFIER_LAST"/>
    </enumeration>
    <record name="Conditions" c:type="GWeatherConditions">
      <field name="significant" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="phenomenon" writable="1">
        <type name="ConditionPhenomenon" c:type="GWeatherConditionPhenomenon"/>
      </field>
      <field name="qualifier" writable="1">
        <type name="ConditionQualifier" c:type="GWeatherConditionQualifier"/>
      </field>
      <method name="to_string" c:identifier="gweather_conditions_to_string">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
    </record>
    <enumeration name="DistanceUnit"
                 glib:type-name="GWeatherDistanceUnit"
                 glib:get-type="gweather_distance_unit_get_type"
                 c:type="GWeatherDistanceUnit">
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_DISTANCE_UNIT_INVALID"
              glib:nick="invalid"/>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_DISTANCE_UNIT_DEFAULT"
              glib:nick="default"/>
      <member name="meters"
              value="2"
              c:identifier="GWEATHER_DISTANCE_UNIT_METERS"
              glib:nick="meters"/>
      <member name="km"
              value="3"
              c:identifier="GWEATHER_DISTANCE_UNIT_KM"
              glib:nick="km"/>
      <member name="miles"
              value="4"
              c:identifier="GWEATHER_DISTANCE_UNIT_MILES"
              glib:nick="miles"/>
    </enumeration>
    <enumeration name="ForecastType"
                 glib:type-name="GWeatherForecastType"
                 glib:get-type="gweather_forecast_type_get_type"
                 c:type="GWeatherForecastType">
      <member name="state"
              value="0"
              c:identifier="GWEATHER_FORECAST_STATE"
              glib:nick="state"/>
      <member name="zone"
              value="1"
              c:identifier="GWEATHER_FORECAST_ZONE"
              glib:nick="zone"/>
      <member name="list"
              value="2"
              c:identifier="GWEATHER_FORECAST_LIST"
              glib:nick="list"/>
    </enumeration>
    <class name="Info"
           c:symbol-prefix="info"
           c:type="GWeatherInfo"
           parent="GObject.Object"
           glib:type-name="GWeatherInfo"
           glib:get-type="gweather_info_get_type"
           glib:type-struct="InfoClass">
      <constructor name="new" c:identifier="gweather_info_new">
        <doc xml:whitespace="preserve">Builds a new #GWeatherInfo that will provide weather information about
@location. The returned info will not be ready until the ::updated signal
is emitted.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GWeatherInfo</doc>
          <type name="Info" c:type="GWeatherInfo*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the desidered #GWeatherLocation (NULL for default)</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
          <parameter name="forecast_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">the type of forecast requested</doc>
            <type name="ForecastType" c:type="GWeatherForecastType"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_world"
                   c:identifier="gweather_info_new_for_world">
        <doc xml:whitespace="preserve">Similar to g_weather_info_new(), but also has a @world parameter, that allow controlling
the hierarchy of #GWeatherLocation to which @location (or the default one taken from
GSettings) belongs.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GWeatherInfo</doc>
          <type name="Info" c:type="GWeatherInfo*"/>
        </return-value>
        <parameters>
          <parameter name="world" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GWeatherLocation representing the whole world</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
          <parameter name="location" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the desidered #GWeatherLocation (NULL for default)</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
          <parameter name="forecast_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">the type of forecast requested</doc>
            <type name="ForecastType" c:type="GWeatherForecastType"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <method name="abort" c:identifier="gweather_info_abort">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="get_apparent" c:identifier="gweather_info_get_apparent">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_conditions"
              c:identifier="gweather_info_get_conditions">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_dew" c:identifier="gweather_info_get_dew">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_forecast" c:identifier="gweather_info_get_forecast">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_forecast_list"
              c:identifier="gweather_info_get_forecast_list">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">list of GWeatherInfo* objects for the forecast. The list is owned by the 'info' object thus is alive as long as the 'info'. This list is filled only when requested with type FORECAST_LIST and if available for given location. The 'update' property is the date/time when the forecast info is used for.</doc>
          <type name="GLib.SList" c:type="GSList*">
            <type name="Info"/>
          </type>
        </return-value>
      </method>
      <method name="get_humidity" c:identifier="gweather_info_get_humidity">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_icon_name" c:identifier="gweather_info_get_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
      </method>
      <method name="get_location" c:identifier="gweather_info_get_location">
        <return-value transfer-ownership="none">
          <type name="Location" c:type="const GWeatherLocation*"/>
        </return-value>
      </method>
      <method name="get_location_name"
              c:identifier="gweather_info_get_location_name">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_pressure" c:identifier="gweather_info_get_pressure">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_radar" c:identifier="gweather_info_get_radar">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">what?</doc>
          <type name="GdkPixbuf.PixbufAnimation" c:type="GdkPixbufAnimation*"/>
        </return-value>
      </method>
      <method name="get_sky" c:identifier="gweather_info_get_sky">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_sunrise" c:identifier="gweather_info_get_sunrise">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_sunset" c:identifier="gweather_info_get_sunset">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_temp" c:identifier="gweather_info_get_temp">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_temp_max" c:identifier="gweather_info_get_temp_max">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_temp_min" c:identifier="gweather_info_get_temp_min">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_temp_summary"
              c:identifier="gweather_info_get_temp_summary">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_upcoming_moonphases"
              c:identifier="gweather_info_get_upcoming_moonphases">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="phases" transfer-ownership="none">
            <type name="glong" c:type="time_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_update" c:identifier="gweather_info_get_update">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_value_apparent"
              c:identifier="gweather_info_get_value_apparent">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherTemperatureUnit</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the apparent temperature</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_conditions"
              c:identifier="gweather_info_get_value_conditions">
        <doc xml:whitespace="preserve">Fills out @phenomenon and @qualifier with current weather conditions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is out arguments are valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="phenomenon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a location for a #GWeatherConditionPhenomenon.</doc>
            <type name="ConditionPhenomenon"
                  c:type="GWeatherConditionPhenomenon*"/>
          </parameter>
          <parameter name="qualifier"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a location for a #GWeatherConditionQualifier.</doc>
            <type name="ConditionQualifier"
                  c:type="GWeatherConditionQualifier*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_dew" c:identifier="gweather_info_get_value_dew">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherTemperatureUnit</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the dew point</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_moonphase"
              c:identifier="gweather_info_get_value_moonphase">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the current moon phase (represented as the visible percentage)</doc>
            <type name="MoonPhase" c:type="GWeatherMoonPhase*"/>
          </parameter>
          <parameter name="lat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the latitude the moon is at (???)</doc>
            <type name="MoonLatitude" c:type="GWeatherMoonLatitude*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_pressure"
              c:identifier="gweather_info_get_value_pressure">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherPressureUnit</doc>
            <type name="PressureUnit" c:type="GWeatherPressureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">forecasted pressure, expressed in @unit</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_sky" c:identifier="gweather_info_get_value_sky">
        <doc xml:whitespace="preserve">Fills out @sky with current sky conditions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @sky is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="sky"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">a location for a #GWeatherSky.</doc>
            <type name="Sky" c:type="GWeatherSky*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_sunrise"
              c:identifier="gweather_info_get_value_sunrise">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the time of sunrise</doc>
            <type name="gulong" c:type="time_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_sunset"
              c:identifier="gweather_info_get_value_sunset">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the time of sunset</doc>
            <type name="gulong" c:type="time_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_temp"
              c:identifier="gweather_info_get_value_temp">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherTemperatureUnit</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the temperature value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_temp_max"
              c:identifier="gweather_info_get_value_temp_max">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherTemperatureUnit</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the maximum temperature value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_temp_min"
              c:identifier="gweather_info_get_value_temp_min">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherTemperatureUnit</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the minimum temperature value</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_update"
              c:identifier="gweather_info_get_value_update">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">the time @info was last updated</doc>
            <type name="glong" c:type="time_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_visibility"
              c:identifier="gweather_info_get_value_visibility">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherDistanceUnit</doc>
            <type name="DistanceUnit" c:type="GWeatherDistanceUnit"/>
          </parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">forecasted visibility, expressed in @unit</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_value_wind"
              c:identifier="gweather_info_get_value_wind">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if @speed and @direction are valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:whitespace="preserve">the desired unit, as a #GWeatherSpeedUnit</doc>
            <type name="SpeedUnit" c:type="GWeatherSpeedUnit"/>
          </parameter>
          <parameter name="speed"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">forecasted wind speed</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="direction"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">forecasted wind direction</doc>
            <type name="WindDirection" c:type="GWeatherWindDirection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_visibility"
              c:identifier="gweather_info_get_visibility">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_weather_summary"
              c:identifier="gweather_info_get_weather_summary">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a summary for current weather conditions.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_wind" c:identifier="gweather_info_get_wind">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="is_valid" c:identifier="gweather_info_is_valid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="network_error" c:identifier="gweather_info_network_error">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="next_sun_event"
              c:identifier="gweather_info_next_sun_event">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="set_location" c:identifier="gweather_info_set_location">
        <doc xml:whitespace="preserve">Changes @info to report weather for @location.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a location for which weather is desired</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update" c:identifier="gweather_info_update">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="forecast-type"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="ForecastType"/>
      </property>
      <property name="location"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Location"/>
      </property>
      <property name="world"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Location"/>
      </property>
      <field name="parent_instance" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="InfoPrivate" c:type="GWeatherInfoPrivate*"/>
      </field>
      <glib:signal name="updated" when="first">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="InfoClass"
            c:type="GWeatherInfoClass"
            glib:is-gtype-struct-for="Info">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="updated">
        <callback name="updated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="info" transfer-ownership="none">
              <type name="Info" c:type="GWeatherInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="InfoFunc" c:type="GWeatherInfoFunc">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="info" transfer-ownership="none">
          <type name="Info" c:type="GWeatherInfo*"/>
        </parameter>
        <parameter name="data" transfer-ownership="none">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <record name="InfoPrivate" c:type="GWeatherInfoPrivate" disguised="1">
    </record>
    <constant name="LOCATION_ENTRY_H"
              value="1"
              c:type="GWEATHER_LOCATION_ENTRY_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <record name="Location"
            c:type="GWeatherLocation"
            glib:type-name="GWeatherLocation"
            glib:get-type="gweather_location_get_type"
            c:symbol-prefix="location">
      <constructor name="new_world" c:identifier="gweather_location_new_world">
        <doc xml:whitespace="preserve">Creates a new #GWeatherLocation of type %GWEATHER_LOCATION_WORLD,
representing a hierarchy containing all of the locations from
Locations.xml.

If @use_regions is %TRUE, the immediate children of the returned
location will be %GWEATHER_LOCATION_REGION nodes, representing the
top-level "regions" of Locations.xml (the continents and a few
other divisions), and the country-level nodes will be the children
of the regions. If @use_regions is %FALSE, the regions will be
skipped, and the children of the returned location will be the
%GWEATHER_LOCATION_COUNTRY nodes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a %GWEATHER_LOCATION_WORLD location, or %NULL if Locations.xml could not be found or could not be parsed.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <parameter name="use_regions" transfer-ownership="none">
            <doc xml:whitespace="preserve">whether or not to divide the world into regions</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="find_by_station_code"
              c:identifier="gweather_location_find_by_station_code">
        <return-value transfer-ownership="full">
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <parameter name="code" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="free_children"
              c:identifier="gweather_location_free_children"
              deprecated="This is a no-op.">
        <doc xml:whitespace="preserve">This is a no-op. Do not use it.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="children" transfer-ownership="none">
            <doc xml:whitespace="preserve">an array of @loc's children</doc>
            <type name="Location" c:type="GWeatherLocation**"/>
          </parameter>
        </parameters>
      </method>
      <method name="free_timezones"
              c:identifier="gweather_location_free_timezones">
        <doc xml:whitespace="preserve">Frees the array of timezones returned by
gweather_location_get_timezones().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="zones" transfer-ownership="none">
            <doc xml:whitespace="preserve">an array returned from gweather_location_get_timezones()</doc>
            <type name="Timezone" c:type="GWeatherTimezone**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_children"
              c:identifier="gweather_location_get_children">
        <doc xml:whitespace="preserve">Gets an array of @loc's children; this is owned by @loc and will
not remain valid if @loc is freed.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's children. (May be empty, but will not be %NULL.)</doc>
          <array c:type="GWeatherLocation**">
            <type name="Location" c:type="GWeatherLocation*"/>
          </array>
        </return-value>
      </method>
      <method name="get_city_name"
              c:identifier="gweather_location_get_city_name">
        <doc xml:whitespace="preserve">For a %GWEATHER_LOCATION_CITY location, this is equivalent to
gweather_location_get_name(). For a
%GWEATHER_LOCATION_WEATHER_STATION location, it is equivalent to
calling gweather_location_get_name() on the location's parent. For
other locations it will return %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">@loc's city name, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_code" c:identifier="gweather_location_get_code">
        <doc xml:whitespace="preserve">Gets the METAR station code associated with a
%GWEATHER_LOCATION_WEATHER_STATION location.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's METAR station code, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_coords" c:identifier="gweather_location_get_coords">
        <doc xml:whitespace="preserve">Gets @loc's coordinates; you must check
gweather_location_has_coords() before calling this.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">on return will contain @loc's latitude</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="longitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">on return will contain @loc's longitude</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_country" c:identifier="gweather_location_get_country">
        <doc xml:whitespace="preserve">Gets the ISO 3166 country code of @loc (or %NULL if @loc is a
region- or world-level location)</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's country code (or %NULL if @loc is a region- or world-level location)</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_distance"
              c:identifier="gweather_location_get_distance">
        <doc xml:whitespace="preserve">Determines the distance in kilometers between @loc and @loc2.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the distance between @loc and @loc2.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <parameter name="loc2" transfer-ownership="none">
            <doc xml:whitespace="preserve">a second #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_level" c:identifier="gweather_location_get_level">
        <doc xml:whitespace="preserve">Gets @loc's level, from %GWEATHER_LOCATION_WORLD, to
%GWEATHER_LOCATION_WEATHER_STATION.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's level</doc>
          <type name="LocationLevel" c:type="GWeatherLocationLevel"/>
        </return-value>
      </method>
      <method name="get_name" c:identifier="gweather_location_get_name">
        <doc xml:whitespace="preserve">Gets @loc's name, localized into the current language.

Note that %GWEATHER_LOCATION_WEATHER_STATION nodes are not
localized, and so the name returned for those nodes will always be
in English, and should therefore not be displayed to the user.
(FIXME: should we just not return a name?)</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_parent" c:identifier="gweather_location_get_parent">
        <doc xml:whitespace="preserve">Gets @loc's parent location.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's parent, or %NULL if @loc is a %GWEATHER_LOCATION_WORLD node.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
      </method>
      <method name="get_sort_name"
              c:identifier="gweather_location_get_sort_name">
        <doc xml:whitespace="preserve">Gets @loc's "sort name", which is the name after having
g_utf8_normalize() (with %G_NORMALIZE_ALL) and g_utf8_casefold()
called on it. You can use this to sort locations, or to comparing
user input against a location name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's sort name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_timezone"
              c:identifier="gweather_location_get_timezone">
        <doc xml:whitespace="preserve">Gets the timezone associated with @loc, if known.

The timezone is owned either by @loc or by one of its parents.
FIXME.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@loc's timezone, or %NULL</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
      </method>
      <method name="get_timezones"
              c:identifier="gweather_location_get_timezones">
        <doc xml:whitespace="preserve">Gets an array of all timezones associated with any location under
@loc. You can use gweather_location_free_timezones() to free this
array.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">an array of timezones. May be empty but will not be %NULL.</doc>
          <array c:type="GWeatherTimezone**">
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </array>
        </return-value>
      </method>
      <method name="has_coords" c:identifier="gweather_location_has_coords">
        <doc xml:whitespace="preserve">Checks if @loc has valid latitude and longitude.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @loc has valid latitude and longitude.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="ref" c:identifier="gweather_location_ref">
        <doc xml:whitespace="preserve">Adds 1 to @loc's reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">@loc</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
      </method>
      <method name="unref" c:identifier="gweather_location_unref">
        <doc xml:whitespace="preserve">Subtracts 1 from @loc's reference count, and frees it if the
reference count reaches 0.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
    </record>
    <class name="LocationEntry"
           c:symbol-prefix="location_entry"
           c:type="GWeatherLocationEntry"
           parent="Gtk.Entry"
           glib:type-name="GWeatherLocationEntry"
           glib:get-type="gweather_location_entry_get_type"
           glib:type-struct="LocationEntryClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.CellEditable"/>
      <implements name="Gtk.Editable"/>
      <constructor name="new" c:identifier="gweather_location_entry_new">
        <doc xml:whitespace="preserve">Creates a new #GWeatherLocationEntry.

@top will normally be a location returned from
gweather_location_new_world(), but you can create an entry that
only accepts a smaller set of locations if you want.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the new #GWeatherLocationEntry</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="top" transfer-ownership="none">
            <doc xml:whitespace="preserve">the top-level location for the entry.</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_location"
              c:identifier="gweather_location_entry_get_location">
        <doc xml:whitespace="preserve">Gets the location that was set by a previous call to
gweather_location_entry_set_location() or was selected by the user.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the selected location (which you must unref when you are done with it), or %NULL if no location is selected.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
      </method>
      <method name="has_custom_text"
              c:identifier="gweather_location_entry_has_custom_text">
        <doc xml:whitespace="preserve">Checks whether or not @entry's text has been modified by the user.
Note that this does not mean that no location is associated with @entry.
gweather_location_entry_get_location() should be used for this.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @entry's text was modified by the user, or %FALSE if it's set to the default text of a location.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_city" c:identifier="gweather_location_entry_set_city">
        <doc xml:whitespace="preserve">Sets @entry's location to a city with the given @code, and given
@city_name, if non-%NULL. If there is no matching city, sets
@entry's location to %NULL.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @entry's location could be set to a matching city, %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="city_name" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">the city name, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:whitespace="preserve">the METAR station code</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_location"
              c:identifier="gweather_location_entry_set_location">
        <doc xml:whitespace="preserve">Sets @entry's location to @loc, and updates the text of the
entry accordingly.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="loc" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a #GWeatherLocation in @entry, or %NULL to clear @entry</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </method>
      <property name="location" writable="1" transfer-ownership="none">
        <type name="Location"/>
      </property>
      <property name="top"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Location"/>
      </property>
      <field name="parent">
        <type name="Gtk.Entry" c:type="GtkEntry"/>
      </field>
      <field name="location" readable="0" private="1">
        <type name="Location" c:type="GWeatherLocation*"/>
      </field>
      <field name="top" readable="0" private="1">
        <type name="Location" c:type="GWeatherLocation*"/>
      </field>
      <field name="custom_text" readable="0" bits="1" private="1">
        <type name="guint" c:type="guint"/>
      </field>
    </class>
    <record name="LocationEntryClass"
            c:type="GWeatherLocationEntryClass"
            glib:is-gtype-struct-for="LocationEntry">
      <field name="parent_class">
        <type name="Gtk.EntryClass" c:type="GtkEntryClass"/>
      </field>
    </record>
    <enumeration name="LocationLevel"
                 glib:type-name="GWeatherLocationLevel"
                 glib:get-type="gweather_location_level_get_type"
                 c:type="GWeatherLocationLevel">
      <doc xml:whitespace="preserve">The size/scope of a particular #GWeatherLocation.

Locations form a hierarchy, with a %GWEATHER_LOCATION_WORLD
location at the top, divided into regions or countries, and so on.
Countries may or may not be divided into "adm1"s, and "adm1"s may
or may not be divided into "adm2"s. A city will have at least one,
and possibly several, weather stations inside it. Weather stations
will never appear outside of cities.</doc>
      <member name="world"
              value="0"
              c:identifier="GWEATHER_LOCATION_WORLD"
              glib:nick="world"/>
      <member name="region"
              value="1"
              c:identifier="GWEATHER_LOCATION_REGION"
              glib:nick="region"/>
      <member name="country"
              value="2"
              c:identifier="GWEATHER_LOCATION_COUNTRY"
              glib:nick="country"/>
      <member name="adm1"
              value="3"
              c:identifier="GWEATHER_LOCATION_ADM1"
              glib:nick="adm1"/>
      <member name="adm2"
              value="4"
              c:identifier="GWEATHER_LOCATION_ADM2"
              glib:nick="adm2"/>
      <member name="city"
              value="5"
              c:identifier="GWEATHER_LOCATION_CITY"
              glib:nick="city"/>
      <member name="weather_station"
              value="6"
              c:identifier="GWEATHER_LOCATION_WEATHER_STATION"
              glib:nick="weather-station"/>
    </enumeration>
    <enumeration name="PressureUnit"
                 glib:type-name="GWeatherPressureUnit"
                 glib:get-type="gweather_pressure_unit_get_type"
                 c:type="GWeatherPressureUnit">
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_PRESSURE_UNIT_INVALID"
              glib:nick="invalid"/>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_PRESSURE_UNIT_DEFAULT"
              glib:nick="default"/>
      <member name="kpa"
              value="2"
              c:identifier="GWEATHER_PRESSURE_UNIT_KPA"
              glib:nick="kpa"/>
      <member name="hpa"
              value="3"
              c:identifier="GWEATHER_PRESSURE_UNIT_HPA"
              glib:nick="hpa"/>
      <member name="mb"
              value="4"
              c:identifier="GWEATHER_PRESSURE_UNIT_MB"
              glib:nick="mb"/>
      <member name="mm_hg"
              value="5"
              c:identifier="GWEATHER_PRESSURE_UNIT_MM_HG"
              glib:nick="mm-hg"/>
      <member name="inch_hg"
              value="6"
              c:identifier="GWEATHER_PRESSURE_UNIT_INCH_HG"
              glib:nick="inch-hg"/>
      <member name="atm"
              value="7"
              c:identifier="GWEATHER_PRESSURE_UNIT_ATM"
              glib:nick="atm"/>
    </enumeration>
    <enumeration name="Sky" c:type="GWeatherSky">
      <member name="invalid" value="-1" c:identifier="GWEATHER_SKY_INVALID"/>
      <member name="clear" value="0" c:identifier="GWEATHER_SKY_CLEAR"/>
      <member name="broken" value="1" c:identifier="GWEATHER_SKY_BROKEN"/>
      <member name="scattered"
              value="2"
              c:identifier="GWEATHER_SKY_SCATTERED"/>
      <member name="few" value="3" c:identifier="GWEATHER_SKY_FEW"/>
      <member name="overcast" value="4" c:identifier="GWEATHER_SKY_OVERCAST"/>
      <member name="last" value="5" c:identifier="GWEATHER_SKY_LAST"/>
    </enumeration>
    <enumeration name="SpeedUnit"
                 glib:type-name="GWeatherSpeedUnit"
                 glib:get-type="gweather_speed_unit_get_type"
                 c:type="GWeatherSpeedUnit">
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_SPEED_UNIT_INVALID"
              glib:nick="invalid"/>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_SPEED_UNIT_DEFAULT"
              glib:nick="default"/>
      <member name="ms"
              value="2"
              c:identifier="GWEATHER_SPEED_UNIT_MS"
              glib:nick="ms"/>
      <member name="kph"
              value="3"
              c:identifier="GWEATHER_SPEED_UNIT_KPH"
              glib:nick="kph"/>
      <member name="mph"
              value="4"
              c:identifier="GWEATHER_SPEED_UNIT_MPH"
              glib:nick="mph"/>
      <member name="knots"
              value="5"
              c:identifier="GWEATHER_SPEED_UNIT_KNOTS"
              glib:nick="knots"/>
      <member name="bft"
              value="6"
              c:identifier="GWEATHER_SPEED_UNIT_BFT"
              glib:nick="bft"/>
    </enumeration>
    <constant name="TIMEZONE_MENU_H"
              value="1"
              c:type="GWEATHER_TIMEZONE_MENU_H">
      <type name="gint" c:type="gint"/>
    </constant>
    <enumeration name="TemperatureUnit"
                 glib:type-name="GWeatherTemperatureUnit"
                 glib:get-type="gweather_temperature_unit_get_type"
                 c:type="GWeatherTemperatureUnit">
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_TEMP_UNIT_INVALID"
              glib:nick="invalid"/>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_TEMP_UNIT_DEFAULT"
              glib:nick="default"/>
      <member name="kelvin"
              value="2"
              c:identifier="GWEATHER_TEMP_UNIT_KELVIN"
              glib:nick="kelvin"/>
      <member name="centigrade"
              value="3"
              c:identifier="GWEATHER_TEMP_UNIT_CENTIGRADE"
              glib:nick="centigrade"/>
      <member name="fahrenheit"
              value="4"
              c:identifier="GWEATHER_TEMP_UNIT_FAHRENHEIT"
              glib:nick="fahrenheit"/>
    </enumeration>
    <record name="Timezone"
            c:type="GWeatherTimezone"
            glib:type-name="GWeatherTimezone"
            glib:get-type="gweather_timezone_get_type"
            c:symbol-prefix="timezone">
      <method name="get_dst_offset"
              c:identifier="gweather_timezone_get_dst_offset">
        <doc xml:whitespace="preserve">Gets @zone's daylight/summer time offset from UTC, in minutes. Eg,
a value of %120 would indicate "GMT+2". This is only meaningful if
gweather_timezone_has_dst() returns %TRUE.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@zone's daylight/summer time offset, in minutes</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_name" c:identifier="gweather_timezone_get_name">
        <doc xml:whitespace="preserve">Gets @zone's name; a translated, user-presentable string.

Note that the returned name might not be unique among timezones,
and may not make sense to the user unless it is presented along
with the timezone's country's name (or in some context where the
country is obvious).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@zone's name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="get_offset" c:identifier="gweather_timezone_get_offset">
        <doc xml:whitespace="preserve">Gets @zone's standard offset from UTC, in minutes. Eg, a value of
%120 would indicate "GMT+2".</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@zone's standard offset, in minutes</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_tzid" c:identifier="gweather_timezone_get_tzid">
        <doc xml:whitespace="preserve">Gets @zone's tzdata identifier, eg "America/New_York".</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@zone's tzid</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="has_dst" c:identifier="gweather_timezone_has_dst">
        <doc xml:whitespace="preserve">Checks if @zone observes daylight/summer time for part of the year.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if @zone observes daylight/summer time.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="ref" c:identifier="gweather_timezone_ref">
        <doc xml:whitespace="preserve">Adds 1 to @zone's reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">@zone</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
      </method>
      <method name="unref" c:identifier="gweather_timezone_unref">
        <doc xml:whitespace="preserve">Subtracts 1 from @zone's reference count and frees it if it reaches 0.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <function name="get_utc" c:identifier="gweather_timezone_get_utc">
        <doc xml:whitespace="preserve">Gets the UTC timezone.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GWeatherTimezone for UTC, or %NULL on error.</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
      </function>
    </record>
    <class name="TimezoneMenu"
           c:symbol-prefix="timezone_menu"
           c:type="GWeatherTimezoneMenu"
           parent="Gtk.ComboBox"
           glib:type-name="GWeatherTimezoneMenu"
           glib:get-type="gweather_timezone_menu_get_type"
           glib:type-struct="TimezoneMenuClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.CellEditable"/>
      <implements name="Gtk.CellLayout"/>
      <constructor name="new" c:identifier="gweather_timezone_menu_new">
        <doc xml:whitespace="preserve">Creates a new #GWeatherTimezoneMenu.

@top will normally be a location returned from
gweather_location_new_world(), but you can create a menu that
contains the timezones from a smaller set of locations if you want.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the new #GWeatherTimezoneMenu</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="top" transfer-ownership="none">
            <doc xml:whitespace="preserve">the top-level location for the menu.</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_tzid" c:identifier="gweather_timezone_menu_get_tzid">
        <doc xml:whitespace="preserve">Gets @menu's timezone id.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@menu's tzid, or %NULL if no timezone is selected.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
      </method>
      <method name="set_tzid" c:identifier="gweather_timezone_menu_set_tzid">
        <doc xml:whitespace="preserve">Sets @menu to the given @tzid. If @tzid is %NULL, sets @menu to
"Unknown".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="preserve">a tzdata id (eg, "America/New_York")</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="top"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer"/>
      </property>
      <property name="tzid" writable="1" transfer-ownership="none">
        <type name="utf8"/>
      </property>
      <field name="parent">
        <type name="Gtk.ComboBox" c:type="GtkComboBox"/>
      </field>
      <field name="zone" readable="0" private="1">
        <type name="Timezone" c:type="GWeatherTimezone*"/>
      </field>
    </class>
    <record name="TimezoneMenuClass"
            c:type="GWeatherTimezoneMenuClass"
            glib:is-gtype-struct-for="TimezoneMenu">
      <field name="parent_class">
        <type name="Gtk.ComboBoxClass" c:type="GtkComboBoxClass"/>
      </field>
    </record>
    <enumeration name="WindDirection" c:type="GWeatherWindDirection">
      <member name="invalid" value="-1" c:identifier="GWEATHER_WIND_INVALID"/>
      <member name="variable" value="0" c:identifier="GWEATHER_WIND_VARIABLE"/>
      <member name="n" value="1" c:identifier="GWEATHER_WIND_N"/>
      <member name="nne" value="2" c:identifier="GWEATHER_WIND_NNE"/>
      <member name="ne" value="3" c:identifier="GWEATHER_WIND_NE"/>
      <member name="ene" value="4" c:identifier="GWEATHER_WIND_ENE"/>
      <member name="e" value="5" c:identifier="GWEATHER_WIND_E"/>
      <member name="ese" value="6" c:identifier="GWEATHER_WIND_ESE"/>
      <member name="se" value="7" c:identifier="GWEATHER_WIND_SE"/>
      <member name="sse" value="8" c:identifier="GWEATHER_WIND_SSE"/>
      <member name="s" value="9" c:identifier="GWEATHER_WIND_S"/>
      <member name="ssw" value="10" c:identifier="GWEATHER_WIND_SSW"/>
      <member name="sw" value="11" c:identifier="GWEATHER_WIND_SW"/>
      <member name="wsw" value="12" c:identifier="GWEATHER_WIND_WSW"/>
      <member name="w" value="13" c:identifier="GWEATHER_WIND_W"/>
      <member name="wnw" value="14" c:identifier="GWEATHER_WIND_WNW"/>
      <member name="nw" value="15" c:identifier="GWEATHER_WIND_NW"/>
      <member name="nnw" value="16" c:identifier="GWEATHER_WIND_NNW"/>
      <member name="last" value="17" c:identifier="GWEATHER_WIND_LAST"/>
    </enumeration>
    <function name="sky_to_string" c:identifier="gweather_sky_to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="sky" transfer-ownership="none">
          <type name="Sky" c:type="GWeatherSky"/>
        </parameter>
      </parameters>
    </function>
    <function name="timezone_get_utc"
              c:identifier="gweather_timezone_get_utc"
              moved-to="Timezone.get_utc">
      <doc xml:whitespace="preserve">Gets the UTC timezone.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a #GWeatherTimezone for UTC, or %NULL on error.</doc>
        <type name="Timezone" c:type="GWeatherTimezone*"/>
      </return-value>
    </function>
    <function name="wind_direction_to_string"
              c:identifier="gweather_wind_direction_to_string">
      <return-value transfer-ownership="none">
        <type name="utf8" c:type="const gchar*"/>
      </return-value>
      <parameters>
        <parameter name="wind" transfer-ownership="none">
          <type name="WindDirection" c:type="GWeatherWindDirection"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
