<?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="GObject" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <package name="gweather-3.0"/>
  <c:include name="libgweather/gweather.h"/>
  <namespace name="GWeather"
             version="3.0"
             shared-library="libgweather-3.so.6"
             c:identifier-prefixes="GWeather"
             c:symbol-prefixes="gweather">
    <alias name="MoonLatitude" c:type="GWeatherMoonLatitude">
      <doc xml:space="preserve">The moon declension, in degrees.</doc>
      <type name="gdouble" c:type="gdouble"/>
    </alias>
    <alias name="MoonPhase" c:type="GWeatherMoonPhase">
      <doc xml:space="preserve">The current phase of the moon, represented as degrees,
where 0 is the new moon, 90 is the first quarter, etc.</doc>
      <type name="gdouble" c:type="gdouble"/>
    </alias>
    <enumeration name="ConditionPhenomenon"
                 glib:type-name="GWeatherConditionPhenomenon"
                 glib:get-type="gweather_phenomenon_get_type"
                 c:type="GWeatherConditionPhenomenon">
      <doc xml:space="preserve">The current or forecasted significant phenomenon.</doc>
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_PHENOMENON_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">value not available</doc>
      </member>
      <member name="none"
              value="0"
              c:identifier="GWEATHER_PHENOMENON_NONE"
              glib:nick="none">
        <doc xml:space="preserve">no significant phenomenon</doc>
      </member>
      <member name="drizzle"
              value="1"
              c:identifier="GWEATHER_PHENOMENON_DRIZZLE"
              glib:nick="drizzle">
      </member>
      <member name="rain"
              value="2"
              c:identifier="GWEATHER_PHENOMENON_RAIN"
              glib:nick="rain">
      </member>
      <member name="snow"
              value="3"
              c:identifier="GWEATHER_PHENOMENON_SNOW"
              glib:nick="snow">
      </member>
      <member name="snow_grains"
              value="4"
              c:identifier="GWEATHER_PHENOMENON_SNOW_GRAINS"
              glib:nick="snow-grains">
      </member>
      <member name="ice_crystals"
              value="5"
              c:identifier="GWEATHER_PHENOMENON_ICE_CRYSTALS"
              glib:nick="ice-crystals">
      </member>
      <member name="ice_pellets"
              value="6"
              c:identifier="GWEATHER_PHENOMENON_ICE_PELLETS"
              glib:nick="ice-pellets">
      </member>
      <member name="hail"
              value="7"
              c:identifier="GWEATHER_PHENOMENON_HAIL"
              glib:nick="hail">
      </member>
      <member name="small_hail"
              value="8"
              c:identifier="GWEATHER_PHENOMENON_SMALL_HAIL"
              glib:nick="small-hail">
      </member>
      <member name="unknown_precipitation"
              value="9"
              c:identifier="GWEATHER_PHENOMENON_UNKNOWN_PRECIPITATION"
              glib:nick="unknown-precipitation">
      </member>
      <member name="mist"
              value="10"
              c:identifier="GWEATHER_PHENOMENON_MIST"
              glib:nick="mist">
      </member>
      <member name="fog"
              value="11"
              c:identifier="GWEATHER_PHENOMENON_FOG"
              glib:nick="fog">
      </member>
      <member name="smoke"
              value="12"
              c:identifier="GWEATHER_PHENOMENON_SMOKE"
              glib:nick="smoke">
      </member>
      <member name="volcanic_ash"
              value="13"
              c:identifier="GWEATHER_PHENOMENON_VOLCANIC_ASH"
              glib:nick="volcanic-ash">
      </member>
      <member name="sand"
              value="14"
              c:identifier="GWEATHER_PHENOMENON_SAND"
              glib:nick="sand">
      </member>
      <member name="haze"
              value="15"
              c:identifier="GWEATHER_PHENOMENON_HAZE"
              glib:nick="haze">
      </member>
      <member name="spray"
              value="16"
              c:identifier="GWEATHER_PHENOMENON_SPRAY"
              glib:nick="spray">
      </member>
      <member name="dust"
              value="17"
              c:identifier="GWEATHER_PHENOMENON_DUST"
              glib:nick="dust">
      </member>
      <member name="squall"
              value="18"
              c:identifier="GWEATHER_PHENOMENON_SQUALL"
              glib:nick="squall">
      </member>
      <member name="sandstorm"
              value="19"
              c:identifier="GWEATHER_PHENOMENON_SANDSTORM"
              glib:nick="sandstorm">
      </member>
      <member name="duststorm"
              value="20"
              c:identifier="GWEATHER_PHENOMENON_DUSTSTORM"
              glib:nick="duststorm">
      </member>
      <member name="funnel_cloud"
              value="21"
              c:identifier="GWEATHER_PHENOMENON_FUNNEL_CLOUD"
              glib:nick="funnel-cloud">
      </member>
      <member name="tornado"
              value="22"
              c:identifier="GWEATHER_PHENOMENON_TORNADO"
              glib:nick="tornado">
      </member>
      <member name="dust_whirls"
              value="23"
              c:identifier="GWEATHER_PHENOMENON_DUST_WHIRLS"
              glib:nick="dust-whirls">
      </member>
      <member name="last"
              value="24"
              c:identifier="GWEATHER_PHENOMENON_LAST"
              glib:nick="last">
      </member>
    </enumeration>
    <enumeration name="ConditionQualifier"
                 glib:type-name="GWeatherConditionQualifier"
                 glib:get-type="gweather_qualifier_get_type"
                 c:type="GWeatherConditionQualifier">
      <doc xml:space="preserve">An additional modifier applied to a #GWeatherConditionPhenomenon to
describe the current or forecasted weather conditions.
The exact meaning of each qualifier is described at
http://www.weather.com/glossary/ and
http://www.crh.noaa.gov/arx/wx.tbl.php</doc>
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_QUALIFIER_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">value not available</doc>
      </member>
      <member name="none"
              value="0"
              c:identifier="GWEATHER_QUALIFIER_NONE"
              glib:nick="none">
        <doc xml:space="preserve">no qualifier for the phenomenon</doc>
      </member>
      <member name="vicinity"
              value="1"
              c:identifier="GWEATHER_QUALIFIER_VICINITY"
              glib:nick="vicinity">
        <doc xml:space="preserve">phenomenon happening in the proximity
                              of the location, not in the actual location</doc>
      </member>
      <member name="light"
              value="2"
              c:identifier="GWEATHER_QUALIFIER_LIGHT"
              glib:nick="light">
        <doc xml:space="preserve">phenomenon is light or predicted to be light</doc>
      </member>
      <member name="moderate"
              value="3"
              c:identifier="GWEATHER_QUALIFIER_MODERATE"
              glib:nick="moderate">
        <doc xml:space="preserve">phenomenon is moderate or predicted to be
                              moderate</doc>
      </member>
      <member name="heavy"
              value="4"
              c:identifier="GWEATHER_QUALIFIER_HEAVY"
              glib:nick="heavy">
        <doc xml:space="preserve">phenomenon is heavy or predicted to be heavy</doc>
      </member>
      <member name="shallow"
              value="5"
              c:identifier="GWEATHER_QUALIFIER_SHALLOW"
              glib:nick="shallow">
        <doc xml:space="preserve">shallow fog (only valid with
                             %GWEATHER_PHENOMENON_FOG)</doc>
      </member>
      <member name="patches"
              value="6"
              c:identifier="GWEATHER_QUALIFIER_PATCHES"
              glib:nick="patches">
        <doc xml:space="preserve">patches of fog (only valid with
                             %GWEATHER_PHENOMENON_FOG)</doc>
      </member>
      <member name="partial"
              value="7"
              c:identifier="GWEATHER_QUALIFIER_PARTIAL"
              glib:nick="partial">
        <doc xml:space="preserve">partial fog (only valid with
                            %GWEATHER_PHENOMENON_FOG)</doc>
      </member>
      <member name="thunderstorm"
              value="8"
              c:identifier="GWEATHER_QUALIFIER_THUNDERSTORM"
              glib:nick="thunderstorm">
        <doc xml:space="preserve">phenomenon will be a thunderstorm
                                  and/or will include lightning</doc>
      </member>
      <member name="blowing"
              value="9"
              c:identifier="GWEATHER_QUALIFIER_BLOWING"
              glib:nick="blowing">
        <doc xml:space="preserve">phenomenon is blowing (valid with
                             %GWEATHER_PHENOMENON_SNOW, %GWEATHER_PHENOMENON_SAND,
                             %GWEATHER_PHENOMENON_SPRAY, %GWEATHER_PHENOMENON_DUST)</doc>
      </member>
      <member name="showers"
              value="10"
              c:identifier="GWEATHER_QUALIFIER_SHOWERS"
              glib:nick="showers">
        <doc xml:space="preserve">phenomenon is heavy and involves showers</doc>
      </member>
      <member name="drifting"
              value="11"
              c:identifier="GWEATHER_QUALIFIER_DRIFTING"
              glib:nick="drifting">
        <doc xml:space="preserve">phenomenon is moving across (valid
                              with %GWEATHER_PHENOMENON_SAND and
                              %GWEATHER_PHENOMENON_DUST)</doc>
      </member>
      <member name="freezing"
              value="12"
              c:identifier="GWEATHER_QUALIFIER_FREEZING"
              glib:nick="freezing">
        <doc xml:space="preserve">phenomenon is freezing and involves ice</doc>
      </member>
      <member name="last"
              value="13"
              c:identifier="GWEATHER_QUALIFIER_LAST"
              glib:nick="last">
        <doc xml:space="preserve">maximum value of the enumeration.</doc>
      </member>
    </enumeration>
    <record name="Conditions" c:type="GWeatherConditions">
      <doc xml:space="preserve">A convenient way to describe the current or forecast
weather phenomenon, if significant, and its associated
modifier. If the value is not significant, the weather conditions
are described by gweather_info_get_sky() instead.

In general it is discouraged to use this value directly to compute
the forecast icon: applications should instead use
gweather_info_get_icon_name() or
gweather_info_get_symbolic_icon_name().</doc>
      <field name="significant" writable="1">
        <doc xml:space="preserve">%TRUE if the struct contains usable data, %FALSE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </field>
      <field name="phenomenon" writable="1">
        <doc xml:space="preserve">the main weather phenomenon</doc>
        <type name="ConditionPhenomenon" c:type="GWeatherConditionPhenomenon"/>
      </field>
      <field name="qualifier" writable="1">
        <doc xml:space="preserve">a modifier for @phenomenon</doc>
        <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>
        <parameters>
          <instance-parameter name="conditions" transfer-ownership="none">
            <type name="Conditions" c:type="GWeatherConditions*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="DistanceUnit"
                 glib:type-name="GWeatherDistanceUnit"
                 glib:get-type="gweather_distance_unit_get_type"
                 c:type="GWeatherDistanceUnit">
      <doc xml:space="preserve">The measure unit to use for sky visibility values, when retrieved
by gweather_info_get_value_visibility().</doc>
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_DISTANCE_UNIT_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">invalid unit</doc>
      </member>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_DISTANCE_UNIT_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">the user preferred distance unit</doc>
      </member>
      <member name="meters"
              value="2"
              c:identifier="GWEATHER_DISTANCE_UNIT_METERS"
              glib:nick="meters">
        <doc xml:space="preserve">meters</doc>
      </member>
      <member name="km"
              value="3"
              c:identifier="GWEATHER_DISTANCE_UNIT_KM"
              glib:nick="km">
        <doc xml:space="preserve">kilometers (= 1000 meters)</doc>
      </member>
      <member name="miles"
              value="4"
              c:identifier="GWEATHER_DISTANCE_UNIT_MILES"
              glib:nick="miles">
        <doc xml:space="preserve">miles</doc>
      </member>
    </enumeration>
    <callback name="FilterFunc" c:type="GWeatherFilterFunc">
      <return-value transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <type name="Location" c:type="GWeatherLocation*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="1">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <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>
      <member name="zone"
              value="1"
              c:identifier="GWEATHER_FORECAST_ZONE"
              glib:nick="zone">
      </member>
      <member name="list"
              value="2"
              c:identifier="GWEATHER_FORECAST_LIST"
              glib:nick="list">
      </member>
    </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">
      <doc xml:space="preserve">#GWeatherInfo provides a handy way to access weather conditions
and forecasts from a #GWeatherLocation, aggregating multiple
different web services.

It includes also astronomical data such as sunrise times and
moon phases.</doc>
      <constructor name="new" c:identifier="gweather_info_new">
        <doc xml:space="preserve">Builds a new #GWeatherInfo that will provide weather information about
@location.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GWeatherInfo</doc>
          <type name="Info" c:type="GWeatherInfo*"/>
        </return-value>
        <parameters>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the desidered #GWeatherLocation (%NULL for default)</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
          <parameter name="type" transfer-ownership="none">
            <doc xml:space="preserve">deprecated and ignored</doc>
            <type name="ForecastType" c:type="GWeatherForecastType"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="store_cache" c:identifier="gweather_info_store_cache">
        <doc xml:space="preserve">Ensures that any data cached from the network is stored to disk.
Calling this is not necessary, as the cache will be saved when
the last reference to a #GWeatherInfo will be dropped.
On the other hand, it must be called if there is any chance that
the application will be closed without unreffing all objects, such
as when using a language binding that employs a GC.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <virtual-method name="updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="abort" c:identifier="gweather_info_abort">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_apparent" c:identifier="gweather_info_get_apparent">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attribution"
              c:identifier="gweather_info_get_attribution">
        <doc xml:space="preserve">Some weather services require the application showing the
data to include an attribution text, possibly including links
to the service website.
This must be shown prominently toghether with the data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the required attribution text, in Pango
         markup form, or %NULL if not required</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_conditions"
              c:identifier="gweather_info_get_conditions">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_dew" c:identifier="gweather_info_get_dew">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_enabled_providers"
              c:identifier="gweather_info_get_enabled_providers">
        <return-value transfer-ownership="none">
          <type name="Provider" c:type="GWeatherProvider"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_forecast"
              c:identifier="gweather_info_get_forecast"
              deprecated="1"
              deprecated-version="3.10">
        <doc-deprecated xml:space="preserve">Use gweather_info_get_forecast_list() instead.</doc-deprecated>
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_forecast_list"
              c:identifier="gweather_info_get_forecast_list">
        <return-value transfer-ownership="none">
          <doc xml:space="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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_humidity" c:identifier="gweather_info_get_humidity">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pressure" c:identifier="gweather_info_get_pressure">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_radar" c:identifier="gweather_info_get_radar">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">what?</doc>
          <type name="GdkPixbuf.PixbufAnimation" c:type="GdkPixbufAnimation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sky" c:identifier="gweather_info_get_sky">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sunrise" c:identifier="gweather_info_get_sunrise">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sunset" c:identifier="gweather_info_get_sunset">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_symbolic_icon_name"
              c:identifier="gweather_info_get_symbolic_icon_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_temp" c:identifier="gweather_info_get_temp">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_upcoming_moonphases"
              c:identifier="gweather_info_get_upcoming_moonphases">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">gboolean indicating success or failure</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo containing the time_t of interest</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="phases"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">An array of four
   time_t values that will hold the returned values.
   The values are estimates of the time of the next new, quarter, full and
   three-quarter moons.</doc>
            <array zero-terminated="0" c:type="time_t*" fixed-size="4">
              <type name="gulong"/>
            </array>
          </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_value_apparent"
              c:identifier="gweather_info_get_value_apparent">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">Fills out @phenomenon and @qualifier with current weather conditions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE is out arguments are valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="phenomenon"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the current moon phase</doc>
            <type name="MoonPhase" c:type="GWeatherMoonPhase*"/>
          </parameter>
          <parameter name="lat"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve">the moon declension</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:space="preserve">TRUE if @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">Fills out @sky with current sky conditions.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">TRUE is @sky is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="sky"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">TRUE is @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="value"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="preserve">TRUE if @value is valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="preserve">TRUE if @speed and @direction are valid, FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="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:space="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:space="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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_weather_summary"
              c:identifier="gweather_info_get_weather_summary">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a summary for current weather conditions.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_wind" c:identifier="gweather_info_get_wind">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_daytime" c:identifier="gweather_info_is_daytime">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether it is daytime (that is, if the sun is visible)
  or not at the location and the point of time referred by @info.
  This is mostly equivalent to comparing the return value
  of gweather_info_get_value_sunrise() and
  gweather_info_get_value_sunset(), but it accounts also
  for midnight sun and polar night, for locations within
  the Artic and Antartic circles.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_valid" c:identifier="gweather_info_is_valid">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="network_error" c:identifier="gweather_info_network_error">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </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>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_enabled_providers"
              c:identifier="gweather_info_set_enabled_providers">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="providers" transfer-ownership="none">
            <type name="Provider" c:type="GWeatherProvider"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_location" c:identifier="gweather_info_set_location">
        <doc xml:space="preserve">Changes @info to report weather for @location.
Note that this will clear any forecast or current conditions from
@info, you must call gweather_info_update() to obtain the new data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
          <parameter name="location"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="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">
        <doc xml:space="preserve">Requests a reload of weather conditions and forecast data from
enabled network services.
This call does no synchronous IO: rather, the result is delivered
by emitting the #GWeatherInfo::updated signal.
Note that if no network services are enabled, the signal will not
be emitted. See #GWeatherInfo:enabled-providers for details.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherInfo</doc>
            <type name="Info" c:type="GWeatherInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="enabled-providers"
                writable="1"
                transfer-ownership="none">
        <type name="Provider"/>
      </property>
      <property name="location"
                writable="1"
                construct="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">
        <doc xml:space="preserve">This signal is emitted after the initial fetch of the weather
data from upstream services, and after every successful call
to @gweather_info_update().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </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>
    <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">
      <doc xml:space="preserve">A #GWeatherLocation represents a "location" of some type known to
libgweather; anything from a single weather station to the entire
world. See #GWeatherLocationLevel for information about how the
hierarchy of locations works.</doc>
      <constructor name="new_detached"
                   c:identifier="gweather_location_new_detached">
        <doc xml:space="preserve">Construct a new location from the given data, supplementing
any missing information from the static database.</doc>
        <return-value transfer-ownership="full">
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the user visible location name</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icao"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the ICAO code of the location</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="latitude" transfer-ownership="none">
            <doc xml:space="preserve">the latitude of the location</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
          <parameter name="longitude" transfer-ownership="none">
            <doc xml:space="preserve">the longitude of the location</doc>
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_world"
                   c:identifier="gweather_location_new_world"
                   deprecated="1"
                   deprecated-version="3.10">
        <doc xml:space="preserve">Creates a new #GWeatherLocation of type %GWEATHER_LOCATION_WORLD,
representing a hierarchy containing all of the locations from
Locations.xml.</doc>
        <doc-deprecated xml:space="preserve">Use gweather_location_get_world() instead.</doc-deprecated>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="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:space="preserve">whether or not to divide the world into regions</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="deserialize" c:identifier="gweather_location_deserialize">
        <doc xml:space="preserve">This call undoes the effect of gweather_location_serialize(), that
is, it turns a #GVariant into a #GWeatherLocation. The conversion
happens in the context of @world (i.e, for a city or weather station,
the resulting location will be attached to a administrative division,
country and region as appropriate).</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the deserialized location.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="world" transfer-ownership="none">
            <doc xml:space="preserve">a world-level #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="serialized" transfer-ownership="none">
            <doc xml:space="preserve">the #GVariant representing the #GWeatherLocation</doc>
            <type name="GLib.Variant" c:type="GVariant*"/>
          </parameter>
        </parameters>
      </method>
      <method name="detect_nearest_city"
              c:identifier="gweather_location_detect_nearest_city"
              version="3.12">
        <doc xml:space="preserve">Initializes geocode reversing to find place for (@lat, @lon) coordinates. Calls the callback
function passed by user when the result is ready.

@loc must be at most a %GWEATHER_LOCATION_ADM2 location.
This restriction may be lifted in a future version.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">The parent location, which will be searched recursively</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:space="preserve">Latitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:space="preserve">Longitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">optional, NULL to ignore</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="4">
            <doc xml:space="preserve">callback function for GAsyncReadyCallback argument for GAsyncResult</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">user data passed to @callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="gweather_location_equal">
        <doc xml:space="preserve">Compares two #GWeatherLocation and sees if they represent the same
place.
It is only legal to call this for cities, weather stations or
detached locations.
Note that this function only checks for geographical characteristics,
such as coordinates and METAR code. It is still possible that the two
locations belong to different worlds (in which case care must be
taken when passing them GWeatherLocationEntry and GWeatherInfo), or
if one is them is detached it could have a custom name.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the two locations represent the same place as
         far as libgweather can tell, and %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="one" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="two" transfer-ownership="none">
            <doc xml:space="preserve">another #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_country_code"
              c:identifier="gweather_location_find_by_country_code">
        <doc xml:space="preserve">Retrieves the country identified by the specified ISO 3166 code,
if present in the database.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a country level #GWeatherLocation, or %NULL.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="world" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation at the world</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="country_code" transfer-ownership="none">
            <doc xml:space="preserve">a country code</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_by_station_code"
              c:identifier="gweather_location_find_by_station_code">
        <doc xml:space="preserve">Retrieves the weather station identifier by @station_code.
Note that multiple instances of the same weather station can exist
in the database, and this function will return any of them, so this
not usually what you want.

See gweather_location_deserialize() to recover a stored #GWeatherLocation.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a weather station level #GWeatherLocation for @station_code,
         or %NULL if none exists in the database.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="world" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation at the world level</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="station_code" transfer-ownership="none">
            <doc xml:space="preserve">a 4 letter METAR code</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_nearest_city"
              c:identifier="gweather_location_find_nearest_city"
              version="3.12">
        <doc xml:space="preserve">Finds the nearest city to the passed latitude and
longitude, among the descendants of @loc.

@loc must be at most a %GWEATHER_LOCATION_ADM2 location.
This restriction may be lifted in a future version.

Note that this function does not check if (@lat, @lon) fall inside
@loc, or are in the same region and timezone as the return value.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the city closest to (@lat, @lon), in the
         region or administrative district of @loc.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">The parent location, which will be searched recursively</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:space="preserve">Latitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:space="preserve">Longitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="find_nearest_city_full"
              c:identifier="gweather_location_find_nearest_city_full"
              version="3.12">
        <doc xml:space="preserve">Finds the nearest city to the passed latitude and
longitude, among the descendants of @loc.

Supports the use of own filter function to filter out locations.
Geocoding should be done on the application side if needed.

@loc must be at most a %GWEATHER_LOCATION_ADM2 location.
This restriction may be lifted in a future version.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the city closest to (@lat, @lon), in the
         region or administrative district of @loc with validation of filter function.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc"
                              transfer-ownership="none"
                              nullable="1"
                              allow-none="1">
            <doc xml:space="preserve">The parent location, which will be searched recursively</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="lat" transfer-ownership="none">
            <doc xml:space="preserve">Latitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="lon" transfer-ownership="none">
            <doc xml:space="preserve">Longitude, in degrees</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
          <parameter name="func"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="3"
                     destroy="4">
            <doc xml:space="preserve">returns true to continue check for
                                      the location and false to filter the location out</doc>
            <type name="FilterFunc" c:type="GWeatherFilterFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">for customization</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="destroy" transfer-ownership="none" scope="async">
            <doc xml:space="preserve">to destroy user_data</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="free_timezones"
              c:identifier="gweather_location_free_timezones">
        <doc xml:space="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>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="zones" transfer-ownership="none">
            <doc xml:space="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:space="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:space="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>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_city_name"
              c:identifier="gweather_location_get_city_name">
        <doc xml:space="preserve">For a %GWEATHER_LOCATION_CITY or %GWEATHER_LOCATION_DETACHED 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" nullable="1">
          <doc xml:space="preserve">@loc's city name, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_code" c:identifier="gweather_location_get_code">
        <doc xml:space="preserve">Gets the METAR station code associated with a
%GWEATHER_LOCATION_WEATHER_STATION location.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">@loc's METAR station code, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_coords" c:identifier="gweather_location_get_coords">
        <doc xml:space="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>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="latitude"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="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:space="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:space="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" nullable="1">
          <doc xml:space="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>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_country_name"
              c:identifier="gweather_location_get_country_name">
        <doc xml:space="preserve">Gets the country name of loc.
For a %GWEATHER_LOCATION_COUNTRY location, this is equivalent to
gweather_location_get_name().
For a %GWEATHER_LOCATION_REGION and GWEATHER_LOCATION_WORLD location it
will return %NULL.
For other locations it will find the parent %GWEATHER_LOCATION_COUNTRY
and return its name.</doc>
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">@loc's country name, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_distance"
              c:identifier="gweather_location_get_distance">
        <doc xml:space="preserve">Determines the distance in kilometers between @loc and @loc2.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the distance between @loc and @loc2.</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
          <parameter name="loc2" transfer-ownership="none">
            <doc xml:space="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:space="preserve">Gets @loc's level, from %GWEATHER_LOCATION_WORLD, to
%GWEATHER_LOCATION_WEATHER_STATION.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@loc's level</doc>
          <type name="LocationLevel" c:type="GWeatherLocationLevel"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gweather_location_get_name">
        <doc xml:space="preserve">Gets @loc's name, localized into the current language.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@loc's name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent" c:identifier="gweather_location_get_parent">
        <doc xml:space="preserve">Gets @loc's parent location.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">@loc's parent, or %NULL
if @loc is a %GWEATHER_LOCATION_WORLD node.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sort_name"
              c:identifier="gweather_location_get_sort_name">
        <doc xml:space="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:space="preserve">@loc's sort name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timezone"
              c:identifier="gweather_location_get_timezone">
        <doc xml:space="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" nullable="1">
          <doc xml:space="preserve">@loc's timezone, or
%NULL</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timezones"
              c:identifier="gweather_location_get_timezones">
        <doc xml:space="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:space="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>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_coords" c:identifier="gweather_location_has_coords">
        <doc xml:space="preserve">Checks if @loc has valid latitude and longitude.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @loc has valid latitude and longitude.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gweather_location_ref">
        <doc xml:space="preserve">Adds 1 to @loc's reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">@loc</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="serialize" c:identifier="gweather_location_serialize">
        <doc xml:space="preserve">Transforms a #GWeatherLocation into a #GVariant, in a way that
calling gweather_location_deserialize() will hold an equivalent
#GWeatherLocation.
The resulting variant can then be stored into GSettings or on disk.
This call is only valid for cities, weather stations and detached
locations.
The format of the resulting #GVariant is private to libgweather,
and it is subject to change. You should use the "v" format in GSettings,
to ensure maximum compatibility with future versions of the library.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the serialization of @location.</doc>
          <type name="GLib.Variant" c:type="GVariant*"/>
        </return-value>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a city, weather station or detached #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gweather_location_unref">
        <doc xml:space="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>
        <parameters>
          <instance-parameter name="loc" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocation</doc>
            <type name="Location" c:type="GWeatherLocation*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="detect_nearest_city_finish"
                c:identifier="gweather_location_detect_nearest_city_finish"
                throws="1">
        <return-value transfer-ownership="full">
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_world" c:identifier="gweather_location_get_world">
        <doc xml:space="preserve">Obtains the shared #GWeatherLocation of type %GWEATHER_LOCATION_WORLD,
representing a hierarchy containing all of the locations from
Locations.xml.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a %GWEATHER_LOCATION_WORLD
location, or %NULL if Locations.xml could not be found or could not be parsed.
The return value is owned by libgweather and should not be modified or freed.</doc>
          <type name="Location" c:type="GWeatherLocation*"/>
        </return-value>
      </function>
    </record>
    <class name="LocationEntry"
           c:symbol-prefix="location_entry"
           c:type="GWeatherLocationEntry"
           parent="Gtk.SearchEntry"
           glib:type-name="GWeatherLocationEntry"
           glib:get-type="gweather_location_entry_get_type"
           glib:type-struct="LocationEntryClass">
      <doc xml:space="preserve">A subclass of #GtkSearchEntry that provides autocompletion on
#GWeatherLocation&lt;!-- --&gt;s</doc>
      <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:space="preserve">Creates a new #GWeatherLocationEntry.

@top will normally be the location returned from
gweather_location_get_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:space="preserve">the new #GWeatherLocationEntry</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="top" transfer-ownership="none">
            <doc xml:space="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:space="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" nullable="1">
          <doc xml:space="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>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocationEntry</doc>
            <type name="LocationEntry" c:type="GWeatherLocationEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_custom_text"
              c:identifier="gweather_location_entry_has_custom_text">
        <doc xml:space="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:space="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>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocationEntry</doc>
            <type name="LocationEntry" c:type="GWeatherLocationEntry*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_city" c:identifier="gweather_location_entry_set_city">
        <doc xml:space="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:space="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>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocationEntry</doc>
            <type name="LocationEntry" c:type="GWeatherLocationEntry*"/>
          </instance-parameter>
          <parameter name="city_name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the city name, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="code" transfer-ownership="none">
            <doc xml:space="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:space="preserve">Sets @entry's location to @loc, and updates the text of the
entry accordingly.
Note that if the database contains a location that compares
equal to @loc, that will be chosen in place of @loc.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="entry" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherLocationEntry</doc>
            <type name="LocationEntry" c:type="GWeatherLocationEntry*"/>
          </instance-parameter>
          <parameter name="loc"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="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.SearchEntry" c:type="GtkSearchEntry"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="LocationEntryPrivate"
              c:type="GWeatherLocationEntryPrivate*"/>
      </field>
    </class>
    <record name="LocationEntryClass"
            c:type="GWeatherLocationEntryClass"
            glib:is-gtype-struct-for="LocationEntry">
      <field name="parent_class">
        <type name="Gtk.SearchEntryClass" c:type="GtkSearchEntryClass"/>
      </field>
    </record>
    <record name="LocationEntryPrivate"
            c:type="GWeatherLocationEntryPrivate"
            disguised="1">
    </record>
    <enumeration name="LocationLevel"
                 glib:type-name="GWeatherLocationLevel"
                 glib:get-type="gweather_location_level_get_type"
                 c:type="GWeatherLocationLevel">
      <doc xml:space="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.

Building a database with gweather_location_get_world() will never
create detached instances, but deserializing might.</doc>
      <member name="world"
              value="0"
              c:identifier="GWEATHER_LOCATION_WORLD"
              glib:nick="world">
        <doc xml:space="preserve">A location representing the entire world.</doc>
      </member>
      <member name="region"
              value="1"
              c:identifier="GWEATHER_LOCATION_REGION"
              glib:nick="region">
        <doc xml:space="preserve">A location representing a continent or
other top-level region.</doc>
      </member>
      <member name="country"
              value="2"
              c:identifier="GWEATHER_LOCATION_COUNTRY"
              glib:nick="country">
        <doc xml:space="preserve">A location representing a "country" (or
other geographic unit that has an ISO-3166 country code)</doc>
      </member>
      <member name="adm1"
              value="3"
              c:identifier="GWEATHER_LOCATION_ADM1"
              glib:nick="adm1">
        <doc xml:space="preserve">A location representing a "first-level
administrative division"; ie, a state, province, or similar
division.</doc>
      </member>
      <member name="adm2"
              value="4"
              c:identifier="GWEATHER_LOCATION_ADM2"
              glib:nick="adm2">
        <doc xml:space="preserve">A location representing a subdivision of a
%GWEATHER_LOCATION_ADM1 location, or a direct subdivision of
a country that is not represented in a #GWeatherLocationEntry.</doc>
      </member>
      <member name="city"
              value="5"
              c:identifier="GWEATHER_LOCATION_CITY"
              glib:nick="city">
        <doc xml:space="preserve">A location representing a city</doc>
      </member>
      <member name="weather_station"
              value="6"
              c:identifier="GWEATHER_LOCATION_WEATHER_STATION"
              glib:nick="weather-station">
        <doc xml:space="preserve">A location representing a
weather station.</doc>
      </member>
      <member name="detached"
              value="7"
              c:identifier="GWEATHER_LOCATION_DETACHED"
              glib:nick="detached">
        <doc xml:space="preserve">A location that is detached from the
database, for example because it was loaded from external storage
and could not be fully recovered. The parent of this location is
the nearest weather station.</doc>
      </member>
    </enumeration>
    <enumeration name="PressureUnit"
                 glib:type-name="GWeatherPressureUnit"
                 glib:get-type="gweather_pressure_unit_get_type"
                 c:type="GWeatherPressureUnit">
      <doc xml:space="preserve">The measure unit to use for atmospheric pressure values, when
retrieved by gweather_info_get_value_pressure().</doc>
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_PRESSURE_UNIT_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">invalid unit</doc>
      </member>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_PRESSURE_UNIT_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">the user preferred pressure unit</doc>
      </member>
      <member name="kpa"
              value="2"
              c:identifier="GWEATHER_PRESSURE_UNIT_KPA"
              glib:nick="kpa">
        <doc xml:space="preserve">kiloPascal (* 10^3 Pa)</doc>
      </member>
      <member name="hpa"
              value="3"
              c:identifier="GWEATHER_PRESSURE_UNIT_HPA"
              glib:nick="hpa">
        <doc xml:space="preserve">hectoPascal (* 10^2 Pa); also known
                             as millibars, but formatted differently</doc>
      </member>
      <member name="mb"
              value="4"
              c:identifier="GWEATHER_PRESSURE_UNIT_MB"
              glib:nick="mb">
        <doc xml:space="preserve">millibars; same as %GWEATHER_PRESSURE_UNIT_HPA</doc>
      </member>
      <member name="mm_hg"
              value="5"
              c:identifier="GWEATHER_PRESSURE_UNIT_MM_HG"
              glib:nick="mm-hg">
        <doc xml:space="preserve">millimiters of mercury</doc>
      </member>
      <member name="inch_hg"
              value="6"
              c:identifier="GWEATHER_PRESSURE_UNIT_INCH_HG"
              glib:nick="inch-hg">
        <doc xml:space="preserve">inches of mercury</doc>
      </member>
      <member name="atm"
              value="7"
              c:identifier="GWEATHER_PRESSURE_UNIT_ATM"
              glib:nick="atm">
        <doc xml:space="preserve">atmospheres</doc>
      </member>
    </enumeration>
    <bitfield name="Provider"
              glib:type-name="GWeatherProvider"
              glib:get-type="gweather_provider_get_type"
              c:type="GWeatherProvider">
      <member name="none"
              value="0"
              c:identifier="GWEATHER_PROVIDER_NONE"
              glib:nick="none">
        <doc xml:space="preserve">no provider, no weather information available</doc>
      </member>
      <member name="metar"
              value="1"
              c:identifier="GWEATHER_PROVIDER_METAR"
              glib:nick="metar">
        <doc xml:space="preserve">METAR office, providing current conditions worldwide</doc>
      </member>
      <member name="iwin"
              value="4"
              c:identifier="GWEATHER_PROVIDER_IWIN"
              glib:nick="iwin">
        <doc xml:space="preserve">US weather office, providing 7 days of forecast</doc>
      </member>
      <member name="yahoo"
              value="8"
              c:identifier="GWEATHER_PROVIDER_YAHOO"
              glib:nick="yahoo">
        <doc xml:space="preserve">Yahoo Weather Service, worldwide but non commercial only</doc>
      </member>
      <member name="yr_no"
              value="16"
              c:identifier="GWEATHER_PROVIDER_YR_NO"
              glib:nick="yr-no">
        <doc xml:space="preserve">Yr.no service, worldwide but requires attribution</doc>
      </member>
      <member name="owm"
              value="32"
              c:identifier="GWEATHER_PROVIDER_OWM"
              glib:nick="owm">
        <doc xml:space="preserve">OpenWeatherMap, worldwide and possibly more reliable, but requires attribution and is limited in the number of queries</doc>
      </member>
      <member name="all"
              value="31"
              c:identifier="GWEATHER_PROVIDER_ALL"
              glib:nick="all">
        <doc xml:space="preserve">enable all available providers</doc>
      </member>
    </bitfield>
    <enumeration name="Sky"
                 glib:type-name="GWeatherSky"
                 glib:get-type="gweather_sky_get_type"
                 c:type="GWeatherSky">
      <doc xml:space="preserve">The sky and cloud visibility. In general it is discouraged to
use this value directly to compute the forecast icon: applications
should instead use gweather_info_get_icon_name() or
gweather_info_get_symbolic_icon_name().</doc>
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_SKY_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">value not available</doc>
      </member>
      <member name="clear"
              value="0"
              c:identifier="GWEATHER_SKY_CLEAR"
              glib:nick="clear">
        <doc xml:space="preserve">sky completely clear, no clouds visible</doc>
      </member>
      <member name="broken"
              value="1"
              c:identifier="GWEATHER_SKY_BROKEN"
              glib:nick="broken">
        <doc xml:space="preserve">sky mostly clear, few clouds</doc>
      </member>
      <member name="scattered"
              value="2"
              c:identifier="GWEATHER_SKY_SCATTERED"
              glib:nick="scattered">
        <doc xml:space="preserve">sky mostly clear, patches of clouds</doc>
      </member>
      <member name="few"
              value="3"
              c:identifier="GWEATHER_SKY_FEW"
              glib:nick="few">
        <doc xml:space="preserve">few clouds, sky cloudy but patches of sky visible</doc>
      </member>
      <member name="overcast"
              value="4"
              c:identifier="GWEATHER_SKY_OVERCAST"
              glib:nick="overcast">
        <doc xml:space="preserve">sky completely clouded, sun not visible</doc>
      </member>
      <member name="last"
              value="5"
              c:identifier="GWEATHER_SKY_LAST"
              glib:nick="last">
        <doc xml:space="preserve">the maximum value for the enumeration</doc>
      </member>
      <function name="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>
    </enumeration>
    <enumeration name="SpeedUnit"
                 glib:type-name="GWeatherSpeedUnit"
                 glib:get-type="gweather_speed_unit_get_type"
                 c:type="GWeatherSpeedUnit">
      <doc xml:space="preserve">The measure unit to use for wind speed values, when retrieved by
gweather_info_get_value_wind().</doc>
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_SPEED_UNIT_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">invalid unit</doc>
      </member>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_SPEED_UNIT_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">the user preferred speed unit</doc>
      </member>
      <member name="ms"
              value="2"
              c:identifier="GWEATHER_SPEED_UNIT_MS"
              glib:nick="ms">
        <doc xml:space="preserve">meters per second</doc>
      </member>
      <member name="kph"
              value="3"
              c:identifier="GWEATHER_SPEED_UNIT_KPH"
              glib:nick="kph">
        <doc xml:space="preserve">kilometers per hour</doc>
      </member>
      <member name="mph"
              value="4"
              c:identifier="GWEATHER_SPEED_UNIT_MPH"
              glib:nick="mph">
        <doc xml:space="preserve">miles per hour</doc>
      </member>
      <member name="knots"
              value="5"
              c:identifier="GWEATHER_SPEED_UNIT_KNOTS"
              glib:nick="knots">
        <doc xml:space="preserve">knots</doc>
      </member>
      <member name="bft"
              value="6"
              c:identifier="GWEATHER_SPEED_UNIT_BFT"
              glib:nick="bft">
        <doc xml:space="preserve">Beaufort scale</doc>
      </member>
    </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">
      <doc xml:space="preserve">The measure unit to use for temperature values, when retrieved by
the gweather_info_get_value_temp() family of functions.</doc>
      <member name="invalid"
              value="0"
              c:identifier="GWEATHER_TEMP_UNIT_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">invalid unit</doc>
      </member>
      <member name="default"
              value="1"
              c:identifier="GWEATHER_TEMP_UNIT_DEFAULT"
              glib:nick="default">
        <doc xml:space="preserve">the user preferred temperature unit</doc>
      </member>
      <member name="kelvin"
              value="2"
              c:identifier="GWEATHER_TEMP_UNIT_KELVIN"
              glib:nick="kelvin">
        <doc xml:space="preserve">Kelvin (absolute) temperature scale</doc>
      </member>
      <member name="centigrade"
              value="3"
              c:identifier="GWEATHER_TEMP_UNIT_CENTIGRADE"
              glib:nick="centigrade">
        <doc xml:space="preserve">Celsius temperature scale</doc>
      </member>
      <member name="fahrenheit"
              value="4"
              c:identifier="GWEATHER_TEMP_UNIT_FAHRENHEIT"
              glib:nick="fahrenheit">
        <doc xml:space="preserve">Fahrenheit temperature scale</doc>
      </member>
      <function name="to_real"
                c:identifier="gweather_temperature_unit_to_real">
        <doc xml:space="preserve">Resolve @unit into a real temperature unit, potentially considering
locale defaults.</doc>
        <return-value transfer-ownership="none">
          <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
        </return-value>
        <parameters>
          <parameter name="unit" transfer-ownership="none">
            <doc xml:space="preserve">a tempeature unit, or %GWEATHER_TEMP_UNIT_DEFAULT</doc>
            <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
          </parameter>
        </parameters>
      </function>
    </enumeration>
    <record name="Timezone"
            c:type="GWeatherTimezone"
            glib:type-name="GWeatherTimezone"
            glib:get-type="gweather_timezone_get_type"
            c:symbol-prefix="timezone">
      <doc xml:space="preserve">A timezone.

Timezones are global to the GWeather world (as obtained by
gweather_location_get_world()); they can be gotten by passing
gweather_timezone_get_by_tzid() with a tzid like "America/New_York"
or "Europe/London".</doc>
      <method name="get_dst_offset"
              c:identifier="gweather_timezone_get_dst_offset">
        <doc xml:space="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:space="preserve">@zone's daylight/summer time offset, in minutes</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gweather_timezone_get_name">
        <doc xml:space="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:space="preserve">@zone's name</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_offset" c:identifier="gweather_timezone_get_offset">
        <doc xml:space="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:space="preserve">@zone's standard offset, in minutes</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_tzid" c:identifier="gweather_timezone_get_tzid">
        <doc xml:space="preserve">Gets @zone's tzdata identifier, eg "America/New_York".</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">@zone's tzid</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_dst" c:identifier="gweather_timezone_has_dst">
        <doc xml:space="preserve">Checks if @zone observes daylight/summer time for part of the year.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if @zone observes daylight/summer time.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="ref" c:identifier="gweather_timezone_ref">
        <doc xml:space="preserve">Adds 1 to @zone's reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">@zone</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="unref" c:identifier="gweather_timezone_unref">
        <doc xml:space="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>
        <parameters>
          <instance-parameter name="zone" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezone</doc>
            <type name="Timezone" c:type="GWeatherTimezone*"/>
          </instance-parameter>
        </parameters>
      </method>
      <function name="get_by_tzid"
                c:identifier="gweather_timezone_get_by_tzid"
                version="3.12">
        <doc xml:space="preserve">Get the #GWeatherTimezone for @tzid.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A #GWeatherTimezone. This object
belongs to GWeather, do not unref it.</doc>
          <type name="Timezone" c:type="GWeatherTimezone*"/>
        </return-value>
        <parameters>
          <parameter name="tzid" transfer-ownership="none">
            <doc xml:space="preserve">A timezone identifier, like "America/New_York" or "Europe/London"</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_utc" c:identifier="gweather_timezone_get_utc">
        <doc xml:space="preserve">Gets the UTC timezone.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="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">
      <doc xml:space="preserve">A #GtkComboBox subclass for choosing a #GWeatherTimezone</doc>
      <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:space="preserve">Creates a new #GWeatherTimezoneMenu.

@top will normally be the location returned from
gweather_location_get_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:space="preserve">the new #GWeatherTimezoneMenu</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="top" transfer-ownership="none">
            <doc xml:space="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:space="preserve">Gets @menu's timezone id.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">@menu's tzid, or %NULL if no timezone
is selected.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezoneMenu</doc>
            <type name="TimezoneMenu" c:type="GWeatherTimezoneMenu*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_tzid" c:identifier="gweather_timezone_menu_set_tzid">
        <doc xml:space="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>
          <instance-parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">a #GWeatherTimezoneMenu</doc>
            <type name="TimezoneMenu" c:type="GWeatherTimezoneMenu*"/>
          </instance-parameter>
          <parameter name="tzid"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="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="Location"/>
      </property>
      <property name="tzid" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </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"
                 glib:type-name="GWeatherWindDirection"
                 glib:get-type="gweather_wind_direction_get_type"
                 c:type="GWeatherWindDirection">
      <doc xml:space="preserve">The direction of the prevailing wind. Composite values
such as north-north-east indicate a direction between the
two component value (north and north-east).</doc>
      <member name="invalid"
              value="-1"
              c:identifier="GWEATHER_WIND_INVALID"
              glib:nick="invalid">
        <doc xml:space="preserve">value not available</doc>
      </member>
      <member name="variable"
              value="0"
              c:identifier="GWEATHER_WIND_VARIABLE"
              glib:nick="variable">
        <doc xml:space="preserve">variable throughout the day</doc>
      </member>
      <member name="n" value="1" c:identifier="GWEATHER_WIND_N" glib:nick="n">
        <doc xml:space="preserve">north</doc>
      </member>
      <member name="nne"
              value="2"
              c:identifier="GWEATHER_WIND_NNE"
              glib:nick="nne">
        <doc xml:space="preserve">north-north-east</doc>
      </member>
      <member name="ne"
              value="3"
              c:identifier="GWEATHER_WIND_NE"
              glib:nick="ne">
        <doc xml:space="preserve">north-east</doc>
      </member>
      <member name="ene"
              value="4"
              c:identifier="GWEATHER_WIND_ENE"
              glib:nick="ene">
        <doc xml:space="preserve">east-north-east</doc>
      </member>
      <member name="e" value="5" c:identifier="GWEATHER_WIND_E" glib:nick="e">
        <doc xml:space="preserve">east</doc>
      </member>
      <member name="ese"
              value="6"
              c:identifier="GWEATHER_WIND_ESE"
              glib:nick="ese">
        <doc xml:space="preserve">east-south-east</doc>
      </member>
      <member name="se"
              value="7"
              c:identifier="GWEATHER_WIND_SE"
              glib:nick="se">
        <doc xml:space="preserve">south-east</doc>
      </member>
      <member name="sse"
              value="8"
              c:identifier="GWEATHER_WIND_SSE"
              glib:nick="sse">
        <doc xml:space="preserve">south-south-east</doc>
      </member>
      <member name="s" value="9" c:identifier="GWEATHER_WIND_S" glib:nick="s">
        <doc xml:space="preserve">south</doc>
      </member>
      <member name="ssw"
              value="10"
              c:identifier="GWEATHER_WIND_SSW"
              glib:nick="ssw">
        <doc xml:space="preserve">south-south-west</doc>
      </member>
      <member name="sw"
              value="11"
              c:identifier="GWEATHER_WIND_SW"
              glib:nick="sw">
        <doc xml:space="preserve">south-west</doc>
      </member>
      <member name="wsw"
              value="12"
              c:identifier="GWEATHER_WIND_WSW"
              glib:nick="wsw">
        <doc xml:space="preserve">west-south-west</doc>
      </member>
      <member name="w" value="13" c:identifier="GWEATHER_WIND_W" glib:nick="w">
        <doc xml:space="preserve">west</doc>
      </member>
      <member name="wnw"
              value="14"
              c:identifier="GWEATHER_WIND_WNW"
              glib:nick="wnw">
        <doc xml:space="preserve">west-north-west</doc>
      </member>
      <member name="nw"
              value="15"
              c:identifier="GWEATHER_WIND_NW"
              glib:nick="nw">
        <doc xml:space="preserve">north-west</doc>
      </member>
      <member name="nnw"
              value="16"
              c:identifier="GWEATHER_WIND_NNW"
              glib:nick="nnw">
        <doc xml:space="preserve">north-north-west</doc>
      </member>
      <member name="last"
              value="17"
              c:identifier="GWEATHER_WIND_LAST"
              glib:nick="last">
        <doc xml:space="preserve">maximum value for the enumeration</doc>
      </member>
      <function name="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>
    </enumeration>
    <function name="location_detect_nearest_city_finish"
              c:identifier="gweather_location_detect_nearest_city_finish"
              moved-to="Location.detect_nearest_city_finish"
              throws="1">
      <return-value transfer-ownership="full">
        <type name="Location" c:type="GWeatherLocation*"/>
      </return-value>
      <parameters>
        <parameter name="result" transfer-ownership="none">
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
    <function name="location_get_world"
              c:identifier="gweather_location_get_world"
              moved-to="Location.get_world">
      <doc xml:space="preserve">Obtains the shared #GWeatherLocation of type %GWEATHER_LOCATION_WORLD,
representing a hierarchy containing all of the locations from
Locations.xml.</doc>
      <return-value transfer-ownership="none" nullable="1">
        <doc xml:space="preserve">a %GWEATHER_LOCATION_WORLD
location, or %NULL if Locations.xml could not be found or could not be parsed.
The return value is owned by libgweather and should not be modified or freed.</doc>
        <type name="Location" c:type="GWeatherLocation*"/>
      </return-value>
    </function>
    <function name="sky_to_string"
              c:identifier="gweather_sky_to_string"
              moved-to="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="temperature_unit_to_real"
              c:identifier="gweather_temperature_unit_to_real"
              moved-to="TemperatureUnit.to_real">
      <doc xml:space="preserve">Resolve @unit into a real temperature unit, potentially considering
locale defaults.</doc>
      <return-value transfer-ownership="none">
        <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
      </return-value>
      <parameters>
        <parameter name="unit" transfer-ownership="none">
          <doc xml:space="preserve">a tempeature unit, or %GWEATHER_TEMP_UNIT_DEFAULT</doc>
          <type name="TemperatureUnit" c:type="GWeatherTemperatureUnit"/>
        </parameter>
      </parameters>
    </function>
    <function name="timezone_get_by_tzid"
              c:identifier="gweather_timezone_get_by_tzid"
              moved-to="Timezone.get_by_tzid"
              version="3.12">
      <doc xml:space="preserve">Get the #GWeatherTimezone for @tzid.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">A #GWeatherTimezone. This object
belongs to GWeather, do not unref it.</doc>
        <type name="Timezone" c:type="GWeatherTimezone*"/>
      </return-value>
      <parameters>
        <parameter name="tzid" transfer-ownership="none">
          <doc xml:space="preserve">A timezone identifier, like "America/New_York" or "Europe/London"</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="timezone_get_utc"
              c:identifier="gweather_timezone_get_utc"
              moved-to="Timezone.get_utc">
      <doc xml:space="preserve">Gets the UTC timezone.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="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"
              moved-to="WindDirection.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>
