static void state_notify (DBusPendingCall *pending, gpointer data) { GWeatherApplet *gw_applet = data; DBusMessage *msg = dbus_pending_call_steal_reply (pending); if (!msg) return; if (dbus_message_get_type (msg) == DBUS_MESSAGE_TYPE_METHOD_RETURN) { dbus_uint32_t result; if (dbus_message_get_args (msg, NULL, DBUS_TYPE_UINT32, &result, DBUS_TYPE_INVALID)) { if (result == NM_STATE_CONNECTED) { /* thank you, glibc */ res_init (); gweather_update (gw_applet); } } } dbus_message_unref (msg); }
gint timeout_cb (gpointer data) { GWeatherApplet *gw_applet = (GWeatherApplet *)data; gweather_update(gw_applet); return 0; /* Do not repeat timeout (will be re-set by gweather_update) */ }
static gboolean key_press_cb (GtkWidget *widget, GdkEventKey *event, GWeatherApplet *gw_applet) { switch (event->keyval) { case GDK_KEY_u: if (event->state == GDK_CONTROL_MASK) { gweather_update (gw_applet); return TRUE; } break; case GDK_KEY_d: if (event->state == GDK_CONTROL_MASK) { details_cb (NULL, gw_applet); return TRUE; } break; case GDK_KEY_KP_Enter: case GDK_KEY_ISO_Enter: case GDK_KEY_3270_Enter: case GDK_KEY_Return: case GDK_KEY_space: case GDK_KEY_KP_Space: details_cb (NULL, gw_applet); return TRUE; default: break; } return FALSE; }
static void network_changed (GNetworkMonitor *monitor, gboolean available, GWeatherApplet *gw_applet) { if (available) { gweather_update (gw_applet); } }
static void update_cb (GSimpleAction *action, GVariant *parameter, gpointer user_data) { GWeatherApplet *gw_applet = (GWeatherApplet *) user_data; gweather_update (gw_applet); }
static void update_cb (GtkAction *action, GWeatherApplet *gw_applet) { gweather_update (gw_applet); }