/* indicator.c generated by valac 0.40.8, the Vala compiler
* generated from indicator.vala, do not modify */
/* vim:set et sts=4 sw=4:
*
* ibus - The Input Bus
*
* Copyright(c) 2015-2017 Takao Fujiwara <takao.fujiwara1@gmail.com>
* Copyright(c) 2015 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
* USA
*/
/* This class extends AppIndicator because
* AppIndicator misses "Activate" dbus method in the definition
* for left click on the indicator.
*/
#include <glib.h>
#include <glib-object.h>
#include <stdlib.h>
#include <string.h>
#include <ibus.h>
#include <gio/gio.h>
#include <gdk/gdk.h>
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <X11/Xutil.h>
#include <X11/Xregion.h>
#include <gdk/gdkx.h>
#include <cairo.h>
#include <gtk/gtk.h>
#define TYPE_INDICATOR (indicator_get_type ())
#define INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_INDICATOR, Indicator))
#define INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_INDICATOR, IndicatorClass))
#define IS_INDICATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_INDICATOR))
#define IS_INDICATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_INDICATOR))
#define INDICATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_INDICATOR, IndicatorClass))
typedef struct _Indicator Indicator;
typedef struct _IndicatorClass IndicatorClass;
typedef struct _IndicatorPrivate IndicatorPrivate;
enum {
INDICATOR_0_PROPERTY,
INDICATOR_ID_PROPERTY,
INDICATOR_CATEGORY_S_PROPERTY,
INDICATOR_STATUS_S_PROPERTY,
INDICATOR_ICON_NAME_PROPERTY,
INDICATOR_ICON_DESC_PROPERTY,
INDICATOR_ATTENTION_ICON_NAME_PROPERTY,
INDICATOR_ATTENTION_ICON_DESC_PROPERTY,
INDICATOR_TITLE_PROPERTY,
INDICATOR_ICON_THEME_PATH_PROPERTY,
INDICATOR_CONNECTED_PROPERTY,
INDICATOR_LABEL_S_PROPERTY,
INDICATOR_LABEL_GUIDE_S_PROPERTY,
INDICATOR_ORDERING_INDEX_PROPERTY,
INDICATOR_ICON_VECTOR_PROPERTY,
INDICATOR_NUM_PROPERTIES
};
static GParamSpec* indicator_properties[INDICATOR_NUM_PROPERTIES];
#define INDICATOR_TYPE_CATEGORY (indicator_category_get_type ())
#define INDICATOR_TYPE_STATUS (indicator_status_get_type ())
#define _g_free0(var) (var = (g_free (var), NULL))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))
#define _g_dbus_node_info_unref0(var) ((var == NULL) ? NULL : (var = (g_dbus_node_info_unref (var), NULL)))
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
#define _g_error_free0(var) ((var == NULL) ? NULL : (var = (g_error_free (var), NULL)))
#define _g_variant_type_free0(var) ((var == NULL) ? NULL : (var = (g_variant_type_free (var), NULL)))
#define _g_variant_builder_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_builder_unref (var), NULL)))
#define _g_bytes_unref0(var) ((var == NULL) ? NULL : (var = (g_bytes_unref (var), NULL)))
enum {
INDICATOR_CONTEXT_MENU_SIGNAL,
INDICATOR_ACTIVATE_SIGNAL,
INDICATOR_REGISTERED_STATUS_NOTIFIER_ITEM_SIGNAL,
INDICATOR_NUM_SIGNALS
};
static guint indicator_signals[INDICATOR_NUM_SIGNALS] = {0};
struct _Indicator {
IBusService parent_instance;
IndicatorPrivate * priv;
};
struct _IndicatorClass {
IBusServiceClass parent_class;
};
struct _IndicatorPrivate {
gchar* _id;
gchar* _category_s;
gchar* _status_s;
gchar* _icon_name;
gchar* _icon_desc;
gchar* _attention_icon_name;
gchar* _attention_icon_desc;
gchar* _title;
gchar* _icon_theme_path;
gboolean _connected;
gchar* _label_s;
gchar* _label_guide_s;
guint32 _ordering_index;
GVariant* _icon_vector;
GDBusNodeInfo* m_watcher_node_info;
GDBusInterfaceInfo* m_watcher_interface_info;
GDBusProxy* m_proxy;
gint m_context_menu_x;
gint m_context_menu_y;
gint m_activate_menu_x;
gint m_activate_menu_y;
GdkWindow* m_indicator_window;
};
typedef enum {
INDICATOR_CATEGORY_APPLICATION_STATUS,
INDICATOR_CATEGORY_COMMUNICATIONS,
INDICATOR_CATEGORY_SYSTEM_SERVICES,
INDICATOR_CATEGORY_HARDWARE,
INDICATOR_CATEGORY_OTHER
} IndicatorCategory;
typedef enum {
INDICATOR_STATUS_PASSIVE,
INDICATOR_STATUS_ACTIVE,
INDICATOR_STATUS_ATTENTION
} IndicatorStatus;
extern gchar* _notification_item;
extern gchar* _notification_watcher;
static gpointer indicator_parent_class = NULL;
GType indicator_get_type (void) G_GNUC_CONST;
#define INDICATOR_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), TYPE_INDICATOR, IndicatorPrivate))
GType indicator_category_get_type (void) G_GNUC_CONST;
gchar* indicator_category_to_nick (IndicatorCategory self);
GType indicator_status_get_type (void) G_GNUC_CONST;
gchar* indicator_status_to_nick (IndicatorStatus self);
#define INDICATOR_DEFAULT_ITEM_PATH "/org/ayatana/NotificationItem"
#define INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE "org.kde.StatusNotifierItem"
#define INDICATOR_NOTIFICATION_WATCHER_DBUS_IFACE "org.kde.StatusNotifierWatcher"
#define INDICATOR_NOTIFICATION_WATCHER_DBUS_ADDR "org.kde.StatusNotifierWatcher"
#define INDICATOR_NOTIFICATION_WATCHER_DBUS_OBJ "/StatusNotifierWatcher"
Indicator* indicator_new (const gchar* id,
GDBusConnection* connection,
IndicatorCategory category);
Indicator* indicator_construct (GType object_type,
const gchar* id,
GDBusConnection* connection,
IndicatorCategory category);
void indicator_set_status_s (Indicator* self,
const gchar* value);
void indicator_set_icon_name (Indicator* self,
const gchar* value);
void indicator_set_icon_desc (Indicator* self,
const gchar* value);
void indicator_set_title (Indicator* self,
const gchar* value);
void indicator_set_icon_theme_path (Indicator* self,
const gchar* value);
void indicator_set_attention_icon_name (Indicator* self,
const gchar* value);
void indicator_set_attention_icon_desc (Indicator* self,
const gchar* value);
void indicator_set_label_s (Indicator* self,
const gchar* value);
void indicator_set_label_guide_s (Indicator* self,
const gchar* value);
static void indicator_check_connect (Indicator* self);
static void ___lambda4_ (Indicator* self,
GObject* obj,
GAsyncResult* res);
static void indicator_bus_watcher_ready (Indicator* self,
GObject* obj,
GAsyncResult* res);
static void ____lambda4__gasync_ready_callback (GObject* source_object,
GAsyncResult* res,
gpointer self);
static void ___lambda5_ (Indicator* self,
GObject* obj,
GParamSpec* pspec);
static void ____lambda5__g_object_notify (GObject* _sender,
GParamSpec* pspec,
gpointer self);
static void __lambda6_ (Indicator* self,
GObject* p_obj,
GAsyncResult* p_res);
static void ___lambda6__gasync_ready_callback (GObject* source_object,
GAsyncResult* res,
gpointer self);
static void _indicator_context_menu_cb (Indicator* self,
GDBusConnection* connection,
GVariant* parameters,
GDBusMethodInvocation* invocation);
static GdkWindow* indicator_query_gdk_window (Indicator* self);
static void _indicator_activate_menu_cb (Indicator* self,
GDBusConnection* connection,
GVariant* parameters,
GDBusMethodInvocation* invocation);
static GVariant* _indicator_get_id (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_id (Indicator* self);
static GVariant* _indicator_get_category (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_category_s (Indicator* self);
static GVariant* _indicator_get_status (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_status_s (Indicator* self);
static GVariant* _indicator_get_icon_name (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_icon_name (Indicator* self);
static GVariant* _indicator_get_icon_vector (Indicator* self,
GDBusConnection* connection);
GVariant* indicator_get_icon_vector (Indicator* self);
static GVariant* _indicator_get_icon_desc (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_icon_desc (Indicator* self);
static GVariant* _indicator_get_attention_icon_name (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_attention_icon_name (Indicator* self);
static GVariant* _indicator_get_attention_icon_desc (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_attention_icon_desc (Indicator* self);
static GVariant* _indicator_get_title (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_title (Indicator* self);
static GVariant* _indicator_get_icon_theme_path (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_icon_theme_path (Indicator* self);
static GVariant* _indicator_get_menu (Indicator* self,
GDBusConnection* connection);
static GVariant* _indicator_get_xayatana_label (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_label_s (Indicator* self);
static GVariant* _indicator_get_xayatana_label_guide (Indicator* self,
GDBusConnection* connection);
const gchar* indicator_get_label_guide_s (Indicator* self);
static GVariant* _indicator_get_xayatana_ordering_index (Indicator* self,
GDBusConnection* connection);
guint32 indicator_get_ordering_index (Indicator* self);
static void indicator_real_service_method_call (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* method_name,
GVariant* parameters,
GDBusMethodInvocation* invocation);
static GVariant* indicator_real_service_get_property (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* property_name,
GError** error);
static gboolean indicator_real_service_set_property (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* property_name,
GVariant* value,
GError** error);
void indicator_set_status (Indicator* self,
IndicatorStatus status);
void indicator_set_icon_full (Indicator* self,
const gchar* icon_name,
const gchar* icon_desc);
void indicator_set_icon_vector (Indicator* self,
GVariant* value);
void indicator_set_cairo_image_surface_full (Indicator* self,
cairo_surface_t* image,
const gchar* icon_desc);
void indicator_position_context_menu (Indicator* self,
GtkMenu* menu,
gint* x,
gint* y,
gboolean* push_in);
void indicator_position_activate_menu (Indicator* self,
GtkMenu* menu,
gint* x,
gint* y,
gboolean* push_in);
void indicator_unregister_connection (Indicator* self);
static void indicator_set_id (Indicator* self,
const gchar* value);
static void indicator_set_category_s (Indicator* self,
const gchar* value);
gboolean indicator_get_connected (Indicator* self);
void indicator_set_connected (Indicator* self,
gboolean value);
void indicator_set_ordering_index (Indicator* self,
guint32 value);
static void g_cclosure_user_marshal_VOID__INT_INT_OBJECT_UINT_UINT (GClosure * closure,
GValue * return_value,
guint n_param_values,
const GValue * param_values,
gpointer invocation_hint,
gpointer marshal_data);
static void g_cclosure_user_marshal_VOID__INT_INT_OBJECT (GClosure * closure,
GValue * return_value,
guint n_param_values,
const GValue * param_values,
gpointer invocation_hint,
gpointer marshal_data);
static void indicator_finalize (GObject * obj);
static void _vala_indicator_get_property (GObject * object,
guint property_id,
GValue * value,
GParamSpec * pspec);
static void _vala_indicator_set_property (GObject * object,
guint property_id,
const GValue * value,
GParamSpec * pspec);
gchar*
indicator_category_to_nick (IndicatorCategory self)
{
gchar* result = NULL;
switch (self) {
case INDICATOR_CATEGORY_APPLICATION_STATUS:
{
gchar* _tmp0_;
_tmp0_ = g_strdup ("ApplicationStatus");
result = _tmp0_;
return result;
}
case INDICATOR_CATEGORY_COMMUNICATIONS:
{
gchar* _tmp1_;
_tmp1_ = g_strdup ("Communications");
result = _tmp1_;
return result;
}
case INDICATOR_CATEGORY_SYSTEM_SERVICES:
{
gchar* _tmp2_;
_tmp2_ = g_strdup ("SystemServices");
result = _tmp2_;
return result;
}
case INDICATOR_CATEGORY_HARDWARE:
{
gchar* _tmp3_;
_tmp3_ = g_strdup ("Hardware");
result = _tmp3_;
return result;
}
case INDICATOR_CATEGORY_OTHER:
{
gchar* _tmp4_;
_tmp4_ = g_strdup ("Other");
result = _tmp4_;
return result;
}
default:
{
g_assert_not_reached ();
}
}
}
GType
indicator_category_get_type (void)
{
static volatile gsize indicator_category_type_id__volatile = 0;
if (g_once_init_enter (&indicator_category_type_id__volatile)) {
static const GEnumValue values[] = {{INDICATOR_CATEGORY_APPLICATION_STATUS, "INDICATOR_CATEGORY_APPLICATION_STATUS", "application-status"}, {INDICATOR_CATEGORY_COMMUNICATIONS, "INDICATOR_CATEGORY_COMMUNICATIONS", "communications"}, {INDICATOR_CATEGORY_SYSTEM_SERVICES, "INDICATOR_CATEGORY_SYSTEM_SERVICES", "system-services"}, {INDICATOR_CATEGORY_HARDWARE, "INDICATOR_CATEGORY_HARDWARE", "hardware"}, {INDICATOR_CATEGORY_OTHER, "INDICATOR_CATEGORY_OTHER", "other"}, {0, NULL, NULL}};
GType indicator_category_type_id;
indicator_category_type_id = g_enum_register_static ("IndicatorCategory", values);
g_once_init_leave (&indicator_category_type_id__volatile, indicator_category_type_id);
}
return indicator_category_type_id__volatile;
}
gchar*
indicator_status_to_nick (IndicatorStatus self)
{
gchar* result = NULL;
switch (self) {
case INDICATOR_STATUS_PASSIVE:
{
gchar* _tmp0_;
_tmp0_ = g_strdup ("Passive");
result = _tmp0_;
return result;
}
case INDICATOR_STATUS_ACTIVE:
{
gchar* _tmp1_;
_tmp1_ = g_strdup ("Active");
result = _tmp1_;
return result;
}
case INDICATOR_STATUS_ATTENTION:
{
gchar* _tmp2_;
_tmp2_ = g_strdup ("NeedsAttention");
result = _tmp2_;
return result;
}
default:
{
g_assert_not_reached ();
}
}
}
GType
indicator_status_get_type (void)
{
static volatile gsize indicator_status_type_id__volatile = 0;
if (g_once_init_enter (&indicator_status_type_id__volatile)) {
static const GEnumValue values[] = {{INDICATOR_STATUS_PASSIVE, "INDICATOR_STATUS_PASSIVE", "passive"}, {INDICATOR_STATUS_ACTIVE, "INDICATOR_STATUS_ACTIVE", "active"}, {INDICATOR_STATUS_ATTENTION, "INDICATOR_STATUS_ATTENTION", "attention"}, {0, NULL, NULL}};
GType indicator_status_type_id;
indicator_status_type_id = g_enum_register_static ("IndicatorStatus", values);
g_once_init_leave (&indicator_status_type_id__volatile, indicator_status_type_id);
}
return indicator_status_type_id__volatile;
}
static gchar*
string_delimit (const gchar* self,
const gchar* delimiters,
gchar new_delimiter)
{
gchar* result = NULL;
gchar* _result_ = NULL;
gchar* _tmp0_;
const gchar* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (delimiters != NULL, NULL);
_tmp0_ = g_strdup (self);
_result_ = _tmp0_;
_tmp1_ = _result_;
g_strdelimit (_tmp1_, delimiters, new_delimiter);
result = _result_;
return result;
}
Indicator*
indicator_construct (GType object_type,
const gchar* id,
GDBusConnection* connection,
IndicatorCategory category)
{
Indicator * self = NULL;
gchar* path = NULL;
gchar* _tmp0_;
const gchar* _tmp1_;
gchar* _tmp2_;
const gchar* _tmp3_;
gchar* _tmp4_;
gchar* _tmp5_;
gchar* _tmp6_;
gchar* _tmp7_;
const gchar* _tmp8_;
GDBusNodeInfo* _tmp22_;
GDBusInterfaceInfo* _tmp23_;
GError * _inner_error_ = NULL;
g_return_val_if_fail (id != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = g_strconcat (INDICATOR_DEFAULT_ITEM_PATH "/", id, NULL);
path = _tmp0_;
_tmp1_ = path;
_tmp2_ = string_delimit (_tmp1_, "-", '_');
_g_free0 (path);
path = _tmp2_;
_tmp3_ = path;
_tmp4_ = indicator_category_to_nick (category);
_tmp5_ = _tmp4_;
self = (Indicator*) g_object_new (object_type, "object-path", _tmp3_, "id", id, "connection", connection, "category-s", _tmp5_, NULL);
_g_free0 (_tmp5_);
_tmp6_ = indicator_status_to_nick (INDICATOR_STATUS_PASSIVE);
_tmp7_ = _tmp6_;
indicator_set_status_s (self, _tmp7_);
_g_free0 (_tmp7_);
indicator_set_icon_name (self, "");
indicator_set_icon_desc (self, "");
indicator_set_title (self, "");
indicator_set_icon_theme_path (self, "");
indicator_set_attention_icon_name (self, "");
indicator_set_attention_icon_desc (self, "");
indicator_set_label_s (self, "");
indicator_set_label_guide_s (self, "");
ibus_service_unregister ((IBusService*) self, connection);
_tmp8_ = _notification_item;
ibus_service_class_add_interfaces (IBUS_SERVICE_CLASS (G_OBJECT_GET_CLASS (self)), _tmp8_);
{
gboolean _tmp9_ = FALSE;
_tmp9_ = ibus_service_register ((IBusService*) self, connection, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch5_g_error;
}
if (!_tmp9_) {
_g_free0 (path);
return self;
}
}
goto __finally5;
__catch5_g_error:
{
GError* e = NULL;
GError* _tmp10_;
const gchar* _tmp11_;
gchar* _tmp12_;
gchar* _tmp13_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp10_ = e;
_tmp11_ = _tmp10_->message;
_tmp12_ = g_strconcat ("Failed to register the application indicator xml: ", _tmp11_, NULL);
_tmp13_ = _tmp12_;
g_warning ("indicator.vala:129: %s", _tmp13_);
_g_free0 (_tmp13_);
_g_error_free0 (e);
_g_free0 (path);
return self;
}
__finally5:
if (G_UNLIKELY (_inner_error_ != NULL)) {
_g_free0 (path);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return NULL;
}
{
GDBusNodeInfo* _tmp14_ = NULL;
const gchar* _tmp15_;
GDBusNodeInfo* _tmp16_;
GDBusNodeInfo* _tmp17_;
_tmp15_ = _notification_watcher;
_tmp16_ = g_dbus_node_info_new_for_xml (_tmp15_, &_inner_error_);
_tmp14_ = _tmp16_;
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch6_g_error;
}
_tmp17_ = _tmp14_;
_tmp14_ = NULL;
_g_dbus_node_info_unref0 (self->priv->m_watcher_node_info);
self->priv->m_watcher_node_info = _tmp17_;
_g_dbus_node_info_unref0 (_tmp14_);
}
goto __finally6;
__catch6_g_error:
{
GError* e = NULL;
GError* _tmp18_;
const gchar* _tmp19_;
gchar* _tmp20_;
gchar* _tmp21_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp18_ = e;
_tmp19_ = _tmp18_->message;
_tmp20_ = g_strconcat ("Failed to create dbus node info: ", _tmp19_, NULL);
_tmp21_ = _tmp20_;
g_warning ("indicator.vala:138: %s", _tmp21_);
_g_free0 (_tmp21_);
_g_error_free0 (e);
_g_free0 (path);
return self;
}
__finally6:
if (G_UNLIKELY (_inner_error_ != NULL)) {
_g_free0 (path);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return NULL;
}
_tmp22_ = self->priv->m_watcher_node_info;
_tmp23_ = g_dbus_node_info_lookup_interface (_tmp22_, INDICATOR_NOTIFICATION_WATCHER_DBUS_IFACE);
self->priv->m_watcher_interface_info = _tmp23_;
indicator_check_connect (self);
_g_free0 (path);
return self;
}
Indicator*
indicator_new (const gchar* id,
GDBusConnection* connection,
IndicatorCategory category)
{
return indicator_construct (TYPE_INDICATOR, id, connection, category);
}
static void
___lambda4_ (Indicator* self,
GObject* obj,
GAsyncResult* res)
{
g_return_if_fail (res != NULL);
indicator_bus_watcher_ready (self, obj, res);
}
static void
____lambda4__gasync_ready_callback (GObject* source_object,
GAsyncResult* res,
gpointer self)
{
___lambda4_ ((Indicator*) self, source_object, res);
g_object_unref (self);
}
static void
indicator_check_connect (Indicator* self)
{
GDBusProxy* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = self->priv->m_proxy;
if (_tmp0_ == NULL) {
GDBusConnection* _tmp1_;
GDBusConnection* _tmp2_;
GDBusInterfaceInfo* _tmp3_;
_tmp1_ = ibus_service_get_connection ((IBusService*) self);
_tmp2_ = _tmp1_;
_tmp3_ = self->priv->m_watcher_interface_info;
g_dbus_proxy_new (_tmp2_, G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS, _tmp3_, INDICATOR_NOTIFICATION_WATCHER_DBUS_ADDR, INDICATOR_NOTIFICATION_WATCHER_DBUS_OBJ, INDICATOR_NOTIFICATION_WATCHER_DBUS_IFACE, NULL, ____lambda4__gasync_ready_callback, g_object_ref (self));
} else {
indicator_bus_watcher_ready (self, NULL, NULL);
}
}
static void
___lambda5_ (Indicator* self,
GObject* obj,
GParamSpec* pspec)
{
gchar* name = NULL;
GDBusProxy* _tmp0_;
gchar* _tmp1_;
const gchar* _tmp2_;
g_return_if_fail (obj != NULL);
g_return_if_fail (pspec != NULL);
_tmp0_ = self->priv->m_proxy;
_tmp1_ = g_dbus_proxy_get_name_owner (_tmp0_);
name = _tmp1_;
_tmp2_ = name;
if (_tmp2_ != NULL) {
indicator_check_connect (self);
}
_g_free0 (name);
}
static void
____lambda5__g_object_notify (GObject* _sender,
GParamSpec* pspec,
gpointer self)
{
___lambda5_ ((Indicator*) self, _sender, pspec);
}
static void
__lambda6_ (Indicator* self,
GObject* p_obj,
GAsyncResult* p_res)
{
GError * _inner_error_ = NULL;
g_return_if_fail (p_res != NULL);
{
GDBusProxy* _tmp0_;
GVariant* _tmp1_;
GVariant* _tmp2_;
_tmp0_ = self->priv->m_proxy;
_tmp1_ = g_dbus_proxy_call_finish (_tmp0_, p_res, &_inner_error_);
_tmp2_ = _tmp1_;
_g_variant_unref0 (_tmp2_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch8_g_error;
}
g_signal_emit (self, indicator_signals[INDICATOR_REGISTERED_STATUS_NOTIFIER_ITEM_SIGNAL], 0);
}
goto __finally8;
__catch8_g_error:
{
GError* e = NULL;
GError* _tmp3_;
const gchar* _tmp4_;
gchar* _tmp5_;
gchar* _tmp6_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp3_ = e;
_tmp4_ = _tmp3_->message;
_tmp5_ = g_strconcat ("Failed to call " "RegisterStatusNotifierItem: ", _tmp4_, NULL);
_tmp6_ = _tmp5_;
g_warning ("indicator.vala:199: %s", _tmp6_);
_g_free0 (_tmp6_);
_g_error_free0 (e);
}
__finally8:
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
}
static void
___lambda6__gasync_ready_callback (GObject* source_object,
GAsyncResult* res,
gpointer self)
{
__lambda6_ ((Indicator*) self, source_object, res);
g_object_unref (self);
}
static void
indicator_bus_watcher_ready (Indicator* self,
GObject* obj,
GAsyncResult* res)
{
gchar* name = NULL;
GDBusProxy* _tmp8_;
gchar* _tmp9_;
const gchar* _tmp10_;
GDBusProxy* _tmp11_;
const gchar* _tmp12_;
const gchar* _tmp13_;
GVariant* _tmp14_;
GVariant* _tmp15_;
GError * _inner_error_ = NULL;
g_return_if_fail (self != NULL);
if (res != NULL) {
GDBusProxy* _tmp7_;
{
GDBusProxy* _tmp0_ = NULL;
GDBusProxy* _tmp1_;
GDBusProxy* _tmp2_;
_tmp1_ = g_dbus_proxy_new_finish (res, &_inner_error_);
_tmp0_ = _tmp1_;
if (G_UNLIKELY (_inner_error_ != NULL)) {
if (_inner_error_->domain == G_IO_ERROR) {
goto __catch7_g_io_error;
}
g_critical ("file %s: line %d: unexpected error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
_tmp2_ = _tmp0_;
_tmp0_ = NULL;
_g_object_unref0 (self->priv->m_proxy);
self->priv->m_proxy = _tmp2_;
_g_object_unref0 (_tmp0_);
}
goto __finally7;
__catch7_g_io_error:
{
GError* e = NULL;
GError* _tmp3_;
const gchar* _tmp4_;
gchar* _tmp5_;
gchar* _tmp6_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp3_ = e;
_tmp4_ = _tmp3_->message;
_tmp5_ = g_strconcat ("Failed to call dbus proxy: ", _tmp4_, NULL);
_tmp6_ = _tmp5_;
g_warning ("indicator.vala:173: %s", _tmp6_);
_g_free0 (_tmp6_);
_g_error_free0 (e);
return;
}
__finally7:
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
_tmp7_ = self->priv->m_proxy;
g_signal_connect_object ((GObject*) _tmp7_, "notify::g-name-owner", (GCallback) ____lambda5__g_object_notify, self, 0);
}
_tmp8_ = self->priv->m_proxy;
_tmp9_ = g_dbus_proxy_get_name_owner (_tmp8_);
name = _tmp9_;
_tmp10_ = name;
if (_tmp10_ == NULL) {
_g_free0 (name);
return;
}
_tmp11_ = self->priv->m_proxy;
_tmp12_ = ibus_service_get_object_path ((IBusService*) self);
_tmp13_ = _tmp12_;
_tmp14_ = g_variant_new ("(s)", _tmp13_, NULL);
g_variant_ref_sink (_tmp14_);
_tmp15_ = _tmp14_;
g_dbus_proxy_call (_tmp11_, "RegisterStatusNotifierItem", _tmp15_, G_DBUS_CALL_FLAGS_NONE, -1, NULL, ___lambda6__gasync_ready_callback, g_object_ref (self));
_g_variant_unref0 (_tmp15_);
_g_free0 (name);
}
static void
_indicator_context_menu_cb (Indicator* self,
GDBusConnection* connection,
GVariant* parameters,
GDBusMethodInvocation* invocation)
{
GVariant* var_x = NULL;
GVariant* _tmp0_;
GVariant* var_y = NULL;
GVariant* _tmp1_;
GdkWindow* window = NULL;
GdkWindow* _tmp2_;
gint _tmp3_;
gint _tmp4_;
g_return_if_fail (self != NULL);
g_return_if_fail (connection != NULL);
g_return_if_fail (parameters != NULL);
g_return_if_fail (invocation != NULL);
_tmp0_ = g_variant_get_child_value (parameters, (gsize) 0);
var_x = _tmp0_;
_tmp1_ = g_variant_get_child_value (parameters, (gsize) 1);
var_y = _tmp1_;
self->priv->m_context_menu_x = (gint) g_variant_get_int32 (var_x);
self->priv->m_context_menu_y = (gint) g_variant_get_int32 (var_y);
_tmp2_ = indicator_query_gdk_window (self);
window = _tmp2_;
_tmp3_ = self->priv->m_context_menu_x;
_tmp4_ = self->priv->m_context_menu_y;
g_signal_emit (self, indicator_signals[INDICATOR_CONTEXT_MENU_SIGNAL], 0, _tmp3_, _tmp4_, window, (guint) 2, (guint) 0);
_g_object_unref0 (window);
_g_variant_unref0 (var_y);
_g_variant_unref0 (var_x);
}
static void
_indicator_activate_menu_cb (Indicator* self,
GDBusConnection* connection,
GVariant* parameters,
GDBusMethodInvocation* invocation)
{
GVariant* var_x = NULL;
GVariant* _tmp0_;
GVariant* var_y = NULL;
GVariant* _tmp1_;
GdkWindow* window = NULL;
GdkWindow* _tmp2_;
gint _tmp3_;
gint _tmp4_;
g_return_if_fail (self != NULL);
g_return_if_fail (connection != NULL);
g_return_if_fail (parameters != NULL);
g_return_if_fail (invocation != NULL);
_tmp0_ = g_variant_get_child_value (parameters, (gsize) 0);
var_x = _tmp0_;
_tmp1_ = g_variant_get_child_value (parameters, (gsize) 1);
var_y = _tmp1_;
self->priv->m_activate_menu_x = (gint) g_variant_get_int32 (var_x);
self->priv->m_activate_menu_y = (gint) g_variant_get_int32 (var_y);
_tmp2_ = indicator_query_gdk_window (self);
window = _tmp2_;
_tmp3_ = self->priv->m_activate_menu_x;
_tmp4_ = self->priv->m_activate_menu_y;
g_signal_emit (self, indicator_signals[INDICATOR_ACTIVATE_SIGNAL], 0, _tmp3_, _tmp4_, window);
_g_object_unref0 (window);
_g_variant_unref0 (var_y);
_g_variant_unref0 (var_x);
}
static gpointer
_g_object_ref0 (gpointer self)
{
return self ? g_object_ref (self) : NULL;
}
static GdkWindow*
indicator_query_gdk_window (Indicator* self)
{
GdkWindow* result = NULL;
GdkWindow* _tmp0_;
GdkDisplay* display = NULL;
GdkDisplay* _tmp3_;
GdkDisplay* _tmp4_;
Display* xdisplay = NULL;
GdkDisplay* _tmp5_;
Display* _tmp6_;
Window current = 0;
Display* _tmp7_;
Window parent = 0;
Window child = 0;
gint root_x = 0;
gint root_y = 0;
gint win_x = 0;
gint win_y = 0;
guint mask = 0U;
gint _tmp8_;
gint _tmp9_;
gint _tmp10_;
gboolean retval = FALSE;
gboolean _tmp24_;
Window _tmp37_;
Display* _tmp38_;
GdkDisplay* _tmp39_;
Window _tmp40_;
GdkX11Window* _tmp41_;
GdkWindow* _tmp42_;
GdkWindow* _tmp43_;
GdkDisplay* _tmp46_;
Window _tmp47_;
GdkX11Window* _tmp48_;
GdkWindow* _tmp49_;
GdkWindow* _tmp50_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->m_indicator_window;
if (_tmp0_ != NULL) {
GdkWindow* _tmp1_;
GdkWindow* _tmp2_;
_tmp1_ = self->priv->m_indicator_window;
_tmp2_ = _g_object_ref0 (_tmp1_);
result = _tmp2_;
return result;
}
_tmp3_ = gdk_display_get_default ();
_tmp4_ = _g_object_ref0 (_tmp3_);
display = _tmp4_;
_tmp5_ = display;
_tmp6_ = gdk_x11_display_get_xdisplay (G_TYPE_CHECK_INSTANCE_TYPE (_tmp5_, gdk_x11_display_get_type ()) ? ((GdkX11Display*) _tmp5_) : NULL);
xdisplay = _tmp6_;
_tmp7_ = xdisplay;
current = DefaultRootWindow (_tmp7_);
parent = (Window) 0;
child = (Window) 0;
mask = (guint) 0;
win_y = 0;
_tmp8_ = win_y;
win_x = _tmp8_;
_tmp9_ = win_x;
root_y = _tmp9_;
_tmp10_ = root_y;
root_x = _tmp10_;
while (TRUE) {
Display* _tmp11_;
Window _tmp12_;
Window _tmp13_ = 0;
Window _tmp14_ = 0;
gint _tmp15_ = 0;
gint _tmp16_ = 0;
gint _tmp17_ = 0;
gint _tmp18_ = 0;
guint _tmp19_ = 0U;
gboolean _tmp20_;
gboolean _tmp21_;
Window _tmp22_;
Window _tmp23_;
_tmp11_ = xdisplay;
_tmp12_ = current;
_tmp20_ = XQueryPointer (_tmp11_, _tmp12_, &_tmp13_, &_tmp14_, &_tmp15_, &_tmp16_, &_tmp17_, &_tmp18_, &_tmp19_);
parent = _tmp13_;
child = _tmp14_;
root_x = _tmp15_;
root_y = _tmp16_;
win_x = _tmp17_;
win_y = _tmp18_;
mask = _tmp19_;
retval = _tmp20_;
_tmp21_ = retval;
if (!_tmp21_) {
break;
}
_tmp22_ = child;
if (_tmp22_ == ((Window) 0)) {
break;
}
_tmp23_ = child;
current = _tmp23_;
}
_tmp24_ = retval;
if (!_tmp24_) {
gchar* format = NULL;
gchar* _tmp25_;
gchar* message = NULL;
const gchar* _tmp26_;
Window _tmp27_;
Display* _tmp28_;
Window _tmp29_;
gint _tmp30_;
gint _tmp31_;
gint _tmp32_;
gint _tmp33_;
guint _tmp34_;
gchar* _tmp35_;
const gchar* _tmp36_;
_tmp25_ = g_strdup ("XQueryPointer is failed: current: %x root: %x " "child: %x (%d, %d), (%d, %d), %u");
format = _tmp25_;
_tmp26_ = format;
_tmp27_ = current;
_tmp28_ = xdisplay;
_tmp29_ = child;
_tmp30_ = root_x;
_tmp31_ = root_y;
_tmp32_ = win_x;
_tmp33_ = win_y;
_tmp34_ = mask;
_tmp35_ = g_strdup_printf (_tmp26_, (guint) _tmp27_, (guint) DefaultRootWindow (_tmp28_), (guint) _tmp29_, _tmp30_, _tmp31_, _tmp32_, _tmp33_, _tmp34_);
message = _tmp35_;
_tmp36_ = message;
g_warning ("indicator.vala:264: XQueryPointer is failed: %s", _tmp36_);
result = NULL;
_g_free0 (message);
_g_free0 (format);
_g_object_unref0 (display);
return result;
}
_tmp37_ = current;
_tmp38_ = xdisplay;
if (_tmp37_ == DefaultRootWindow (_tmp38_)) {
g_warning ("indicator.vala:268: The query window is root window");
}
_tmp39_ = display;
_tmp40_ = current;
_tmp41_ = gdk_x11_window_lookup_for_display (G_TYPE_CHECK_INSTANCE_TYPE (_tmp39_, gdk_x11_display_get_type ()) ? ((GdkX11Display*) _tmp39_) : NULL, _tmp40_);
_tmp42_ = _g_object_ref0 ((GdkWindow*) _tmp41_);
_g_object_unref0 (self->priv->m_indicator_window);
self->priv->m_indicator_window = _tmp42_;
_tmp43_ = self->priv->m_indicator_window;
if (_tmp43_ != NULL) {
GdkWindow* _tmp44_;
GdkWindow* _tmp45_;
_tmp44_ = self->priv->m_indicator_window;
_tmp45_ = _g_object_ref0 (_tmp44_);
result = _tmp45_;
_g_object_unref0 (display);
return result;
}
_tmp46_ = display;
_tmp47_ = current;
_tmp48_ = (GdkX11Window*) gdk_x11_window_foreign_new_for_display (G_TYPE_CHECK_INSTANCE_TYPE (_tmp46_, gdk_x11_display_get_type ()) ? ((GdkX11Display*) _tmp46_) : NULL, _tmp47_);
_g_object_unref0 (self->priv->m_indicator_window);
self->priv->m_indicator_window = (GdkWindow*) _tmp48_;
_tmp49_ = self->priv->m_indicator_window;
_tmp50_ = _g_object_ref0 (_tmp49_);
result = _tmp50_;
_g_object_unref0 (display);
return result;
}
static GVariant*
_indicator_get_id (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_id;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_category (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_category_s;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_status (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_status_s;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_icon_name (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_icon_name;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static gpointer
_g_variant_ref0 (gpointer self)
{
return self ? g_variant_ref (self) : NULL;
}
static GVariant*
_indicator_get_icon_vector (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
GVariant* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_icon_vector;
_tmp1_ = _g_variant_ref0 (_tmp0_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_icon_desc (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_icon_desc;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_attention_icon_name (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_attention_icon_name;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_attention_icon_desc (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_attention_icon_desc;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_title (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_title;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_icon_theme_path (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_icon_theme_path;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_menu (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
result = NULL;
return result;
}
static GVariant*
_indicator_get_xayatana_label (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_label_s;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_xayatana_label_guide (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
const gchar* _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_label_guide_s;
_tmp1_ = g_variant_new_string (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static GVariant*
_indicator_get_xayatana_ordering_index (Indicator* self,
GDBusConnection* connection)
{
GVariant* result = NULL;
guint32 _tmp0_;
GVariant* _tmp1_;
g_return_val_if_fail (self != NULL, NULL);
g_return_val_if_fail (connection != NULL, NULL);
_tmp0_ = self->priv->_ordering_index;
_tmp1_ = g_variant_new_uint32 (_tmp0_);
g_variant_ref_sink (_tmp1_);
result = _tmp1_;
return result;
}
static void
indicator_real_service_method_call (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* method_name,
GVariant* parameters,
GDBusMethodInvocation* invocation)
{
Indicator * self;
const gchar* _tmp0_;
const gchar* _tmp1_;
gchar* _tmp2_;
gchar* _tmp3_;
self = (Indicator*) base;
g_return_if_fail (connection != NULL);
g_return_if_fail (sender != NULL);
g_return_if_fail (object_path != NULL);
g_return_if_fail (interface_name != NULL);
g_return_if_fail (method_name != NULL);
g_return_if_fail (parameters != NULL);
g_return_if_fail (invocation != NULL);
_tmp0_ = ibus_service_get_object_path ((IBusService*) self);
_tmp1_ = _tmp0_;
g_return_if_fail (g_strcmp0 (object_path, _tmp1_) == 0);
g_return_if_fail (g_strcmp0 (interface_name, INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE) == 0);
if (g_strcmp0 (method_name, "Activate") == 0) {
_indicator_activate_menu_cb (self, connection, parameters, invocation);
return;
}
if (g_strcmp0 (method_name, "ContextMenu") == 0) {
_indicator_context_menu_cb (self, connection, parameters, invocation);
return;
}
_tmp2_ = g_strconcat ("service_method_call() does not handle the method: ", method_name, NULL);
_tmp3_ = _tmp2_;
g_warning ("indicator.vala:376: %s", _tmp3_);
_g_free0 (_tmp3_);
}
static GVariant*
indicator_real_service_get_property (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* property_name,
GError** error)
{
Indicator * self;
GVariant* result = NULL;
const gchar* _tmp0_;
const gchar* _tmp1_;
gchar* _tmp16_;
gchar* _tmp17_;
self = (Indicator*) base;
g_return_val_if_fail (connection != NULL, NULL);
g_return_val_if_fail (sender != NULL, NULL);
g_return_val_if_fail (object_path != NULL, NULL);
g_return_val_if_fail (interface_name != NULL, NULL);
g_return_val_if_fail (property_name != NULL, NULL);
_tmp0_ = ibus_service_get_object_path ((IBusService*) self);
_tmp1_ = _tmp0_;
g_return_val_if_fail (g_strcmp0 (object_path, _tmp1_) == 0, NULL);
g_return_val_if_fail (g_strcmp0 (interface_name, INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE) == 0, NULL);
if (g_strcmp0 (property_name, "Id") == 0) {
GVariant* _tmp2_;
_tmp2_ = _indicator_get_id (self, connection);
result = _tmp2_;
return result;
}
if (g_strcmp0 (property_name, "Category") == 0) {
GVariant* _tmp3_;
_tmp3_ = _indicator_get_category (self, connection);
result = _tmp3_;
return result;
}
if (g_strcmp0 (property_name, "Status") == 0) {
GVariant* _tmp4_;
_tmp4_ = _indicator_get_status (self, connection);
result = _tmp4_;
return result;
}
if (g_strcmp0 (property_name, "IconName") == 0) {
GVariant* _tmp5_;
_tmp5_ = _indicator_get_icon_name (self, connection);
result = _tmp5_;
return result;
}
if (g_strcmp0 (property_name, "IconPixmap") == 0) {
GVariant* _tmp6_;
_tmp6_ = _indicator_get_icon_vector (self, connection);
result = _tmp6_;
return result;
}
if (g_strcmp0 (property_name, "IconAccessibleDesc") == 0) {
GVariant* _tmp7_;
_tmp7_ = _indicator_get_icon_desc (self, connection);
result = _tmp7_;
return result;
}
if (g_strcmp0 (property_name, "AttentionIconName") == 0) {
GVariant* _tmp8_;
_tmp8_ = _indicator_get_attention_icon_name (self, connection);
result = _tmp8_;
return result;
}
if (g_strcmp0 (property_name, "AttentionAccessibleDesc") == 0) {
GVariant* _tmp9_;
_tmp9_ = _indicator_get_attention_icon_desc (self, connection);
result = _tmp9_;
return result;
}
if (g_strcmp0 (property_name, "Title") == 0) {
GVariant* _tmp10_;
_tmp10_ = _indicator_get_title (self, connection);
result = _tmp10_;
return result;
}
if (g_strcmp0 (property_name, "IconThemePath") == 0) {
GVariant* _tmp11_;
_tmp11_ = _indicator_get_icon_theme_path (self, connection);
result = _tmp11_;
return result;
}
if (g_strcmp0 (property_name, "Menu") == 0) {
GVariant* _tmp12_;
_tmp12_ = _indicator_get_menu (self, connection);
result = _tmp12_;
return result;
}
if (g_strcmp0 (property_name, "XAyatanaLabel") == 0) {
GVariant* _tmp13_;
_tmp13_ = _indicator_get_xayatana_label (self, connection);
result = _tmp13_;
return result;
}
if (g_strcmp0 (property_name, "XAyatanaLabelGuide") == 0) {
GVariant* _tmp14_;
_tmp14_ = _indicator_get_xayatana_label_guide (self, connection);
result = _tmp14_;
return result;
}
if (g_strcmp0 (property_name, "XAyatanaOrderingIndex") == 0) {
GVariant* _tmp15_;
_tmp15_ = _indicator_get_xayatana_ordering_index (self, connection);
result = _tmp15_;
return result;
}
_tmp16_ = g_strconcat ("service_get_property() does not handle the property: ", property_name, NULL);
_tmp17_ = _tmp16_;
g_warning ("indicator.vala:421: %s", _tmp17_);
_g_free0 (_tmp17_);
result = NULL;
return result;
}
static gboolean
indicator_real_service_set_property (IBusService* base,
GDBusConnection* connection,
const gchar* sender,
const gchar* object_path,
const gchar* interface_name,
const gchar* property_name,
GVariant* value,
GError** error)
{
Indicator * self;
gboolean result = FALSE;
self = (Indicator*) base;
g_return_val_if_fail (connection != NULL, FALSE);
g_return_val_if_fail (sender != NULL, FALSE);
g_return_val_if_fail (object_path != NULL, FALSE);
g_return_val_if_fail (interface_name != NULL, FALSE);
g_return_val_if_fail (property_name != NULL, FALSE);
g_return_val_if_fail (value != NULL, FALSE);
result = FALSE;
return result;
}
void
indicator_set_status (Indicator* self,
IndicatorStatus status)
{
gchar* status_s = NULL;
gchar* _tmp0_;
const gchar* _tmp1_;
const gchar* _tmp2_;
const gchar* _tmp3_;
GDBusConnection* _tmp4_;
GDBusConnection* _tmp5_;
GError * _inner_error_ = NULL;
g_return_if_fail (self != NULL);
_tmp0_ = indicator_status_to_nick (status);
status_s = _tmp0_;
_tmp1_ = self->priv->_status_s;
_tmp2_ = status_s;
if (g_strcmp0 (_tmp1_, _tmp2_) == 0) {
_g_free0 (status_s);
return;
}
_tmp3_ = status_s;
indicator_set_status_s (self, _tmp3_);
_tmp4_ = ibus_service_get_connection ((IBusService*) self);
_tmp5_ = _tmp4_;
if (_tmp5_ == NULL) {
_g_free0 (status_s);
return;
}
{
GDBusConnection* _tmp6_;
GDBusConnection* _tmp7_;
const gchar* _tmp8_;
const gchar* _tmp9_;
const gchar* _tmp10_;
GVariant* _tmp11_;
GVariant* _tmp12_;
_tmp6_ = ibus_service_get_connection ((IBusService*) self);
_tmp7_ = _tmp6_;
_tmp8_ = ibus_service_get_object_path ((IBusService*) self);
_tmp9_ = _tmp8_;
_tmp10_ = status_s;
_tmp11_ = g_variant_new ("(s)", _tmp10_, NULL);
g_variant_ref_sink (_tmp11_);
_tmp12_ = _tmp11_;
g_dbus_connection_emit_signal (_tmp7_, NULL, _tmp9_, INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE, "NewStatus", _tmp12_, &_inner_error_);
_g_variant_unref0 (_tmp12_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch9_g_error;
}
}
goto __finally9;
__catch9_g_error:
{
GError* e = NULL;
GError* _tmp13_;
const gchar* _tmp14_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp13_ = e;
_tmp14_ = _tmp13_->message;
g_warning ("indicator.vala:460: Unable to send signal for NewIcon: %s", _tmp14_);
_g_error_free0 (e);
}
__finally9:
if (G_UNLIKELY (_inner_error_ != NULL)) {
_g_free0 (status_s);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
_g_free0 (status_s);
}
void
indicator_set_icon_full (Indicator* self,
const gchar* icon_name,
const gchar* icon_desc)
{
gboolean changed = FALSE;
const gchar* _tmp0_;
const gchar* _tmp1_;
gboolean _tmp2_;
GDBusConnection* _tmp3_;
GDBusConnection* _tmp4_;
GError * _inner_error_ = NULL;
g_return_if_fail (self != NULL);
g_return_if_fail (icon_name != NULL);
changed = FALSE;
_tmp0_ = self->priv->_icon_name;
if (g_strcmp0 (_tmp0_, icon_name) != 0) {
indicator_set_icon_name (self, icon_name);
indicator_set_icon_vector (self, NULL);
changed = TRUE;
}
_tmp1_ = self->priv->_icon_desc;
if (g_strcmp0 (_tmp1_, icon_desc) != 0) {
indicator_set_icon_desc (self, icon_desc);
changed = TRUE;
}
_tmp2_ = changed;
if (!_tmp2_) {
return;
}
_tmp3_ = ibus_service_get_connection ((IBusService*) self);
_tmp4_ = _tmp3_;
if (_tmp4_ == NULL) {
return;
}
{
GDBusConnection* _tmp5_;
GDBusConnection* _tmp6_;
const gchar* _tmp7_;
const gchar* _tmp8_;
_tmp5_ = ibus_service_get_connection ((IBusService*) self);
_tmp6_ = _tmp5_;
_tmp7_ = ibus_service_get_object_path ((IBusService*) self);
_tmp8_ = _tmp7_;
g_dbus_connection_emit_signal (_tmp6_, NULL, _tmp8_, INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE, "NewIcon", NULL, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch10_g_error;
}
}
goto __finally10;
__catch10_g_error:
{
GError* e = NULL;
GError* _tmp9_;
const gchar* _tmp10_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp9_ = e;
_tmp10_ = _tmp9_->message;
g_warning ("indicator.vala:494: Unable to send signal for NewIcon: %s", _tmp10_);
_g_error_free0 (e);
}
__finally10:
if (G_UNLIKELY (_inner_error_ != NULL)) {
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
}
void
indicator_set_cairo_image_surface_full (Indicator* self,
cairo_surface_t* image,
const gchar* icon_desc)
{
gint width = 0;
gint height = 0;
gint stride = 0;
guint8* data = NULL;
guchar* _tmp0_;
gint data_length1;
gint _data_size_;
gint _tmp1_;
gint _tmp2_;
gint _tmp3_;
GBytes* bytes = NULL;
guint8* _tmp4_;
gint _tmp4__length1;
GBytes* _tmp5_;
GVariant* bs = NULL;
const GVariantType* _tmp6_;
GBytes* _tmp7_;
GVariant* _tmp8_;
GVariantBuilder* builder = NULL;
GVariantType* _tmp9_;
GVariantType* _tmp10_;
GVariantBuilder* _tmp11_;
GVariantBuilder* _tmp12_;
GVariantBuilder* _tmp13_;
GVariantType* _tmp14_;
GVariantType* _tmp15_;
GVariantBuilder* _tmp16_;
gint _tmp17_;
GVariantBuilder* _tmp18_;
gint _tmp19_;
GVariantBuilder* _tmp20_;
GVariant* _tmp21_;
GVariantBuilder* _tmp22_;
GVariantBuilder* _tmp23_;
GVariant* _tmp24_;
GVariant* _tmp25_;
const gchar* _tmp26_;
GDBusConnection* _tmp27_;
GDBusConnection* _tmp28_;
GError * _inner_error_ = NULL;
g_return_if_fail (self != NULL);
g_return_if_fail (image != NULL);
width = cairo_image_surface_get_width (image);
height = cairo_image_surface_get_height (image);
stride = cairo_image_surface_get_stride (image);
_tmp0_ = cairo_image_surface_get_data (image);
data = (guint8*) _tmp0_;
data_length1 = (-1 * sizeof (guchar)) / sizeof (guint8);
_data_size_ = data_length1;
_tmp1_ = stride;
_tmp2_ = height;
data_length1 = _tmp1_ * _tmp2_;
_tmp3_ = data_length1;
_tmp4_ = data;
_tmp4__length1 = data_length1;
_tmp5_ = g_bytes_new (_tmp4_, _tmp4__length1);
bytes = _tmp5_;
_tmp6_ = G_VARIANT_TYPE_BYTESTRING;
_tmp7_ = bytes;
_tmp8_ = g_variant_new_from_bytes (_tmp6_, _tmp7_, TRUE);
g_variant_ref_sink (_tmp8_);
bs = _tmp8_;
_tmp9_ = g_variant_type_new ("a(iiay)");
_tmp10_ = _tmp9_;
_tmp11_ = g_variant_builder_new (_tmp10_);
_tmp12_ = _tmp11_;
_g_variant_type_free0 (_tmp10_);
builder = _tmp12_;
_tmp13_ = builder;
_tmp14_ = g_variant_type_new ("(iiay)");
_tmp15_ = _tmp14_;
g_variant_builder_open (_tmp13_, _tmp15_);
_g_variant_type_free0 (_tmp15_);
_tmp16_ = builder;
_tmp17_ = width;
g_variant_builder_add (_tmp16_, "i", _tmp17_, NULL);
_tmp18_ = builder;
_tmp19_ = height;
g_variant_builder_add (_tmp18_, "i", _tmp19_, NULL);
_tmp20_ = builder;
_tmp21_ = bs;
g_variant_builder_add_value (_tmp20_, _tmp21_);
_tmp22_ = builder;
g_variant_builder_close (_tmp22_);
_tmp23_ = builder;
_tmp24_ = g_variant_new ("a(iiay)", _tmp23_, NULL);
g_variant_ref_sink (_tmp24_);
_tmp25_ = _tmp24_;
indicator_set_icon_vector (self, _tmp25_);
_g_variant_unref0 (_tmp25_);
indicator_set_icon_name (self, "");
_tmp26_ = self->priv->_icon_desc;
if (g_strcmp0 (_tmp26_, icon_desc) != 0) {
indicator_set_icon_desc (self, icon_desc);
}
_tmp27_ = ibus_service_get_connection ((IBusService*) self);
_tmp28_ = _tmp27_;
if (_tmp28_ == NULL) {
_g_variant_builder_unref0 (builder);
_g_variant_unref0 (bs);
_g_bytes_unref0 (bytes);
return;
}
{
GDBusConnection* _tmp29_;
GDBusConnection* _tmp30_;
const gchar* _tmp31_;
const gchar* _tmp32_;
_tmp29_ = ibus_service_get_connection ((IBusService*) self);
_tmp30_ = _tmp29_;
_tmp31_ = ibus_service_get_object_path ((IBusService*) self);
_tmp32_ = _tmp31_;
g_dbus_connection_emit_signal (_tmp30_, NULL, _tmp32_, INDICATOR_NOTIFICATION_ITEM_DBUS_IFACE, "NewIcon", NULL, &_inner_error_);
if (G_UNLIKELY (_inner_error_ != NULL)) {
goto __catch11_g_error;
}
}
goto __finally11;
__catch11_g_error:
{
GError* e = NULL;
GError* _tmp33_;
const gchar* _tmp34_;
e = _inner_error_;
_inner_error_ = NULL;
_tmp33_ = e;
_tmp34_ = _tmp33_->message;
g_warning ("indicator.vala:538: Unable to send signal for NewIcon: %s", _tmp34_);
_g_error_free0 (e);
}
__finally11:
if (G_UNLIKELY (_inner_error_ != NULL)) {
_g_variant_builder_unref0 (builder);
_g_variant_unref0 (bs);
_g_bytes_unref0 (bytes);
g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
g_clear_error (&_inner_error_);
return;
}
_g_variant_builder_unref0 (builder);
_g_variant_unref0 (bs);
_g_bytes_unref0 (bytes);
}
void
indicator_position_context_menu (Indicator* self,
GtkMenu* menu,
gint* x,
gint* y,
gboolean* push_in)
{
gint _vala_x = 0;
gint _vala_y = 0;
gboolean _vala_push_in = FALSE;
gint _tmp0_;
gint _tmp1_;
g_return_if_fail (self != NULL);
g_return_if_fail (menu != NULL);
_tmp0_ = self->priv->m_context_menu_x;
_vala_x = _tmp0_;
_tmp1_ = self->priv->m_context_menu_y;
_vala_y = _tmp1_;
_vala_push_in = FALSE;
if (x) {
*x = _vala_x;
}
if (y) {
*y = _vala_y;
}
if (push_in) {
*push_in = _vala_push_in;
}
}
void
indicator_position_activate_menu (Indicator* self,
GtkMenu* menu,
gint* x,
gint* y,
gboolean* push_in)
{
gint _vala_x = 0;
gint _vala_y = 0;
gboolean _vala_push_in = FALSE;
gint _tmp0_;
gint _tmp1_;
g_return_if_fail (self != NULL);
g_return_if_fail (menu != NULL);
_tmp0_ = self->priv->m_activate_menu_x;
_vala_x = _tmp0_;
_tmp1_ = self->priv->m_activate_menu_y;
_vala_y = _tmp1_;
_vala_push_in = FALSE;
if (x) {
*x = _vala_x;
}
if (y) {
*y = _vala_y;
}
if (push_in) {
*push_in = _vala_push_in;
}
}
/**
* unregister_connection:
*
* "Destroy" dbus method is not called for the indicator's connection
* when panel's connection is disconneted because the dbus connection
* is a shared session bus so need to call
* g_dbus_connection_unregister_object() by manual here
* so that g_object_unref(m_panel) will be called later with an idle method,
* which was assigned in the arguments of
* g_dbus_connection_register_object()
*/
void
indicator_unregister_connection (Indicator* self)
{
GDBusConnection* _tmp0_;
g_return_if_fail (self != NULL);
_tmp0_ = ibus_service_get_connection ((IBusService*) self);
ibus_service_unregister ((IBusService*) self, _tmp0_);
}
const gchar*
indicator_get_id (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_id;
result = _tmp0_;
return result;
}
static void
indicator_set_id (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_id (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_id);
self->priv->_id = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ID_PROPERTY]);
}
}
const gchar*
indicator_get_category_s (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_category_s;
result = _tmp0_;
return result;
}
static void
indicator_set_category_s (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_category_s (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_category_s);
self->priv->_category_s = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_CATEGORY_S_PROPERTY]);
}
}
const gchar*
indicator_get_status_s (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_status_s;
result = _tmp0_;
return result;
}
void
indicator_set_status_s (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_status_s (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_status_s);
self->priv->_status_s = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_STATUS_S_PROPERTY]);
}
}
const gchar*
indicator_get_icon_name (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_icon_name;
result = _tmp0_;
return result;
}
void
indicator_set_icon_name (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_icon_name (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_icon_name);
self->priv->_icon_name = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ICON_NAME_PROPERTY]);
}
}
const gchar*
indicator_get_icon_desc (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_icon_desc;
result = _tmp0_;
return result;
}
void
indicator_set_icon_desc (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_icon_desc (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_icon_desc);
self->priv->_icon_desc = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ICON_DESC_PROPERTY]);
}
}
const gchar*
indicator_get_attention_icon_name (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_attention_icon_name;
result = _tmp0_;
return result;
}
void
indicator_set_attention_icon_name (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_attention_icon_name (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_attention_icon_name);
self->priv->_attention_icon_name = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ATTENTION_ICON_NAME_PROPERTY]);
}
}
const gchar*
indicator_get_attention_icon_desc (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_attention_icon_desc;
result = _tmp0_;
return result;
}
void
indicator_set_attention_icon_desc (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_attention_icon_desc (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_attention_icon_desc);
self->priv->_attention_icon_desc = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ATTENTION_ICON_DESC_PROPERTY]);
}
}
const gchar*
indicator_get_title (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_title;
result = _tmp0_;
return result;
}
void
indicator_set_title (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_title (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_title);
self->priv->_title = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_TITLE_PROPERTY]);
}
}
const gchar*
indicator_get_icon_theme_path (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_icon_theme_path;
result = _tmp0_;
return result;
}
void
indicator_set_icon_theme_path (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_icon_theme_path (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_icon_theme_path);
self->priv->_icon_theme_path = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ICON_THEME_PATH_PROPERTY]);
}
}
gboolean
indicator_get_connected (Indicator* self)
{
gboolean result;
gboolean _tmp0_;
g_return_val_if_fail (self != NULL, FALSE);
_tmp0_ = self->priv->_connected;
result = _tmp0_;
return result;
}
void
indicator_set_connected (Indicator* self,
gboolean value)
{
g_return_if_fail (self != NULL);
if (indicator_get_connected (self) != value) {
self->priv->_connected = value;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_CONNECTED_PROPERTY]);
}
}
const gchar*
indicator_get_label_s (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_label_s;
result = _tmp0_;
return result;
}
void
indicator_set_label_s (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_label_s (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_label_s);
self->priv->_label_s = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_LABEL_S_PROPERTY]);
}
}
const gchar*
indicator_get_label_guide_s (Indicator* self)
{
const gchar* result;
const gchar* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_label_guide_s;
result = _tmp0_;
return result;
}
void
indicator_set_label_guide_s (Indicator* self,
const gchar* value)
{
g_return_if_fail (self != NULL);
if (g_strcmp0 (value, indicator_get_label_guide_s (self)) != 0) {
gchar* _tmp0_;
_tmp0_ = g_strdup (value);
_g_free0 (self->priv->_label_guide_s);
self->priv->_label_guide_s = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_LABEL_GUIDE_S_PROPERTY]);
}
}
guint32
indicator_get_ordering_index (Indicator* self)
{
guint32 result;
guint32 _tmp0_;
g_return_val_if_fail (self != NULL, 0U);
_tmp0_ = self->priv->_ordering_index;
result = _tmp0_;
return result;
}
void
indicator_set_ordering_index (Indicator* self,
guint32 value)
{
g_return_if_fail (self != NULL);
if (indicator_get_ordering_index (self) != value) {
self->priv->_ordering_index = value;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ORDERING_INDEX_PROPERTY]);
}
}
GVariant*
indicator_get_icon_vector (Indicator* self)
{
GVariant* result;
GVariant* _tmp0_;
g_return_val_if_fail (self != NULL, NULL);
_tmp0_ = self->priv->_icon_vector;
result = _tmp0_;
return result;
}
void
indicator_set_icon_vector (Indicator* self,
GVariant* value)
{
g_return_if_fail (self != NULL);
if (indicator_get_icon_vector (self) != value) {
GVariant* _tmp0_;
_tmp0_ = _g_variant_ref0 (value);
_g_variant_unref0 (self->priv->_icon_vector);
self->priv->_icon_vector = _tmp0_;
g_object_notify_by_pspec ((GObject *) self, indicator_properties[INDICATOR_ICON_VECTOR_PROPERTY]);
}
}
static void
g_cclosure_user_marshal_VOID__INT_INT_OBJECT_UINT_UINT (GClosure * closure,
GValue * return_value,
guint n_param_values,
const GValue * param_values,
gpointer invocation_hint,
gpointer marshal_data)
{
typedef void (*GMarshalFunc_VOID__INT_INT_OBJECT_UINT_UINT) (gpointer data1, gint arg_1, gint arg_2, gpointer arg_3, guint arg_4, guint arg_5, gpointer data2);
register GMarshalFunc_VOID__INT_INT_OBJECT_UINT_UINT callback;
register GCClosure * cc;
register gpointer data1;
register gpointer data2;
cc = (GCClosure *) closure;
g_return_if_fail (n_param_values == 6);
if (G_CCLOSURE_SWAP_DATA (closure)) {
data1 = closure->data;
data2 = param_values->data[0].v_pointer;
} else {
data1 = param_values->data[0].v_pointer;
data2 = closure->data;
}
callback = (GMarshalFunc_VOID__INT_INT_OBJECT_UINT_UINT) (marshal_data ? marshal_data : cc->callback);
callback (data1, g_value_get_int (param_values + 1), g_value_get_int (param_values + 2), g_value_get_object (param_values + 3), g_value_get_uint (param_values + 4), g_value_get_uint (param_values + 5), data2);
}
static void
g_cclosure_user_marshal_VOID__INT_INT_OBJECT (GClosure * closure,
GValue * return_value,
guint n_param_values,
const GValue * param_values,
gpointer invocation_hint,
gpointer marshal_data)
{
typedef void (*GMarshalFunc_VOID__INT_INT_OBJECT) (gpointer data1, gint arg_1, gint arg_2, gpointer arg_3, gpointer data2);
register GMarshalFunc_VOID__INT_INT_OBJECT callback;
register GCClosure * cc;
register gpointer data1;
register gpointer data2;
cc = (GCClosure *) closure;
g_return_if_fail (n_param_values == 4);
if (G_CCLOSURE_SWAP_DATA (closure)) {
data1 = closure->data;
data2 = param_values->data[0].v_pointer;
} else {
data1 = param_values->data[0].v_pointer;
data2 = closure->data;
}
callback = (GMarshalFunc_VOID__INT_INT_OBJECT) (marshal_data ? marshal_data : cc->callback);
callback (data1, g_value_get_int (param_values + 1), g_value_get_int (param_values + 2), g_value_get_object (param_values + 3), data2);
}
static void
indicator_class_init (IndicatorClass * klass)
{
indicator_parent_class = g_type_class_peek_parent (klass);
g_type_class_add_private (klass, sizeof (IndicatorPrivate));
((IBusServiceClass *) klass)->service_method_call = (void (*) (IBusService *, GDBusConnection*, const gchar*, const gchar*, const gchar*, const gchar*, GVariant*, GDBusMethodInvocation*)) indicator_real_service_method_call;
((IBusServiceClass *) klass)->service_get_property = (GVariant* (*) (IBusService *, GDBusConnection*, const gchar*, const gchar*, const gchar*, const gchar*, GError**)) indicator_real_service_get_property;
((IBusServiceClass *) klass)->service_set_property = (gboolean (*) (IBusService *, GDBusConnection*, const gchar*, const gchar*, const gchar*, const gchar*, GVariant*, GError**)) indicator_real_service_set_property;
G_OBJECT_CLASS (klass)->get_property = _vala_indicator_get_property;
G_OBJECT_CLASS (klass)->set_property = _vala_indicator_set_property;
G_OBJECT_CLASS (klass)->finalize = indicator_finalize;
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ID_PROPERTY, indicator_properties[INDICATOR_ID_PROPERTY] = g_param_spec_string ("id", "id", "id", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_CATEGORY_S_PROPERTY, indicator_properties[INDICATOR_CATEGORY_S_PROPERTY] = g_param_spec_string ("category-s", "category-s", "category-s", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_STATUS_S_PROPERTY, indicator_properties[INDICATOR_STATUS_S_PROPERTY] = g_param_spec_string ("status-s", "status-s", "status-s", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ICON_NAME_PROPERTY, indicator_properties[INDICATOR_ICON_NAME_PROPERTY] = g_param_spec_string ("icon-name", "icon-name", "icon-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ICON_DESC_PROPERTY, indicator_properties[INDICATOR_ICON_DESC_PROPERTY] = g_param_spec_string ("icon-desc", "icon-desc", "icon-desc", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ATTENTION_ICON_NAME_PROPERTY, indicator_properties[INDICATOR_ATTENTION_ICON_NAME_PROPERTY] = g_param_spec_string ("attention-icon-name", "attention-icon-name", "attention-icon-name", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ATTENTION_ICON_DESC_PROPERTY, indicator_properties[INDICATOR_ATTENTION_ICON_DESC_PROPERTY] = g_param_spec_string ("attention-icon-desc", "attention-icon-desc", "attention-icon-desc", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_TITLE_PROPERTY, indicator_properties[INDICATOR_TITLE_PROPERTY] = g_param_spec_string ("title", "title", "title", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ICON_THEME_PATH_PROPERTY, indicator_properties[INDICATOR_ICON_THEME_PATH_PROPERTY] = g_param_spec_string ("icon-theme-path", "icon-theme-path", "icon-theme-path", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_CONNECTED_PROPERTY, indicator_properties[INDICATOR_CONNECTED_PROPERTY] = g_param_spec_boolean ("connected", "connected", "connected", FALSE, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_LABEL_S_PROPERTY, indicator_properties[INDICATOR_LABEL_S_PROPERTY] = g_param_spec_string ("label-s", "label-s", "label-s", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_LABEL_GUIDE_S_PROPERTY, indicator_properties[INDICATOR_LABEL_GUIDE_S_PROPERTY] = g_param_spec_string ("label-guide-s", "label-guide-s", "label-guide-s", NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ORDERING_INDEX_PROPERTY, indicator_properties[INDICATOR_ORDERING_INDEX_PROPERTY] = g_param_spec_uint ("ordering-index", "ordering-index", "ordering-index", 0, G_MAXUINT, 0U, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
g_object_class_install_property (G_OBJECT_CLASS (klass), INDICATOR_ICON_VECTOR_PROPERTY, indicator_properties[INDICATOR_ICON_VECTOR_PROPERTY] = g_param_spec_variant ("icon-vector", "icon-vector", "icon-vector", G_VARIANT_TYPE_ANY, NULL, G_PARAM_STATIC_STRINGS | G_PARAM_READABLE | G_PARAM_WRITABLE));
indicator_signals[INDICATOR_CONTEXT_MENU_SIGNAL] = g_signal_new ("context-menu", TYPE_INDICATOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_INT_OBJECT_UINT_UINT, G_TYPE_NONE, 5, G_TYPE_INT, G_TYPE_INT, gdk_window_get_type (), G_TYPE_UINT, G_TYPE_UINT);
indicator_signals[INDICATOR_ACTIVATE_SIGNAL] = g_signal_new ("activate", TYPE_INDICATOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_user_marshal_VOID__INT_INT_OBJECT, G_TYPE_NONE, 3, G_TYPE_INT, G_TYPE_INT, gdk_window_get_type ());
indicator_signals[INDICATOR_REGISTERED_STATUS_NOTIFIER_ITEM_SIGNAL] = g_signal_new ("registered-status-notifier-item", TYPE_INDICATOR, G_SIGNAL_RUN_LAST, 0, NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
}
static void
indicator_instance_init (Indicator * self)
{
self->priv = INDICATOR_GET_PRIVATE (self);
}
static void
indicator_finalize (GObject * obj)
{
Indicator * self;
self = G_TYPE_CHECK_INSTANCE_CAST (obj, TYPE_INDICATOR, Indicator);
_g_free0 (self->priv->_id);
_g_free0 (self->priv->_category_s);
_g_free0 (self->priv->_status_s);
_g_free0 (self->priv->_icon_name);
_g_free0 (self->priv->_icon_desc);
_g_free0 (self->priv->_attention_icon_name);
_g_free0 (self->priv->_attention_icon_desc);
_g_free0 (self->priv->_title);
_g_free0 (self->priv->_icon_theme_path);
_g_free0 (self->priv->_label_s);
_g_free0 (self->priv->_label_guide_s);
_g_variant_unref0 (self->priv->_icon_vector);
_g_dbus_node_info_unref0 (self->priv->m_watcher_node_info);
_g_object_unref0 (self->priv->m_proxy);
_g_object_unref0 (self->priv->m_indicator_window);
G_OBJECT_CLASS (indicator_parent_class)->finalize (obj);
}
GType
indicator_get_type (void)
{
static volatile gsize indicator_type_id__volatile = 0;
if (g_once_init_enter (&indicator_type_id__volatile)) {
static const GTypeInfo g_define_type_info = { sizeof (IndicatorClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) indicator_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (Indicator), 0, (GInstanceInitFunc) indicator_instance_init, NULL };
GType indicator_type_id;
indicator_type_id = g_type_register_static (ibus_service_get_type (), "Indicator", &g_define_type_info, 0);
g_once_init_leave (&indicator_type_id__volatile, indicator_type_id);
}
return indicator_type_id__volatile;
}
static void
_vala_indicator_get_property (GObject * object,
guint property_id,
GValue * value,
GParamSpec * pspec)
{
Indicator * self;
self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_INDICATOR, Indicator);
switch (property_id) {
case INDICATOR_ID_PROPERTY:
g_value_set_string (value, indicator_get_id (self));
break;
case INDICATOR_CATEGORY_S_PROPERTY:
g_value_set_string (value, indicator_get_category_s (self));
break;
case INDICATOR_STATUS_S_PROPERTY:
g_value_set_string (value, indicator_get_status_s (self));
break;
case INDICATOR_ICON_NAME_PROPERTY:
g_value_set_string (value, indicator_get_icon_name (self));
break;
case INDICATOR_ICON_DESC_PROPERTY:
g_value_set_string (value, indicator_get_icon_desc (self));
break;
case INDICATOR_ATTENTION_ICON_NAME_PROPERTY:
g_value_set_string (value, indicator_get_attention_icon_name (self));
break;
case INDICATOR_ATTENTION_ICON_DESC_PROPERTY:
g_value_set_string (value, indicator_get_attention_icon_desc (self));
break;
case INDICATOR_TITLE_PROPERTY:
g_value_set_string (value, indicator_get_title (self));
break;
case INDICATOR_ICON_THEME_PATH_PROPERTY:
g_value_set_string (value, indicator_get_icon_theme_path (self));
break;
case INDICATOR_CONNECTED_PROPERTY:
g_value_set_boolean (value, indicator_get_connected (self));
break;
case INDICATOR_LABEL_S_PROPERTY:
g_value_set_string (value, indicator_get_label_s (self));
break;
case INDICATOR_LABEL_GUIDE_S_PROPERTY:
g_value_set_string (value, indicator_get_label_guide_s (self));
break;
case INDICATOR_ORDERING_INDEX_PROPERTY:
g_value_set_uint (value, indicator_get_ordering_index (self));
break;
case INDICATOR_ICON_VECTOR_PROPERTY:
g_value_set_variant (value, indicator_get_icon_vector (self));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}
static void
_vala_indicator_set_property (GObject * object,
guint property_id,
const GValue * value,
GParamSpec * pspec)
{
Indicator * self;
self = G_TYPE_CHECK_INSTANCE_CAST (object, TYPE_INDICATOR, Indicator);
switch (property_id) {
case INDICATOR_ID_PROPERTY:
indicator_set_id (self, g_value_get_string (value));
break;
case INDICATOR_CATEGORY_S_PROPERTY:
indicator_set_category_s (self, g_value_get_string (value));
break;
case INDICATOR_STATUS_S_PROPERTY:
indicator_set_status_s (self, g_value_get_string (value));
break;
case INDICATOR_ICON_NAME_PROPERTY:
indicator_set_icon_name (self, g_value_get_string (value));
break;
case INDICATOR_ICON_DESC_PROPERTY:
indicator_set_icon_desc (self, g_value_get_string (value));
break;
case INDICATOR_ATTENTION_ICON_NAME_PROPERTY:
indicator_set_attention_icon_name (self, g_value_get_string (value));
break;
case INDICATOR_ATTENTION_ICON_DESC_PROPERTY:
indicator_set_attention_icon_desc (self, g_value_get_string (value));
break;
case INDICATOR_TITLE_PROPERTY:
indicator_set_title (self, g_value_get_string (value));
break;
case INDICATOR_ICON_THEME_PATH_PROPERTY:
indicator_set_icon_theme_path (self, g_value_get_string (value));
break;
case INDICATOR_CONNECTED_PROPERTY:
indicator_set_connected (self, g_value_get_boolean (value));
break;
case INDICATOR_LABEL_S_PROPERTY:
indicator_set_label_s (self, g_value_get_string (value));
break;
case INDICATOR_LABEL_GUIDE_S_PROPERTY:
indicator_set_label_guide_s (self, g_value_get_string (value));
break;
case INDICATOR_ORDERING_INDEX_PROPERTY:
indicator_set_ordering_index (self, g_value_get_uint (value));
break;
case INDICATOR_ICON_VECTOR_PROPERTY:
indicator_set_icon_vector (self, g_value_get_variant (value));
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
break;
}
}