|
Packit Service |
1d8f1c |
/* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
|
Packit Service |
1d8f1c |
/* vim:set et sts=4: */
|
|
Packit Service |
1d8f1c |
/* IBus - The Input Bus
|
|
Packit Service |
1d8f1c |
* Copyright (C) 2008-2010 Peng Huang <shawn.p.huang@gmail.com>
|
|
Packit Service |
1d8f1c |
* Copyright (C) 2008-2010 Red Hat, Inc.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This library is free software; you can redistribute it and/or
|
|
Packit Service |
1d8f1c |
* modify it under the terms of the GNU Lesser General Public
|
|
Packit Service |
1d8f1c |
* License as published by the Free Software Foundation; either
|
|
Packit Service |
1d8f1c |
* version 2.1 of the License, or (at your option) any later version.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* This library is distributed in the hope that it will be useful,
|
|
Packit Service |
1d8f1c |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit Service |
1d8f1c |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit Service |
1d8f1c |
* Lesser General Public License for more details.
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* You should have received a copy of the GNU Lesser General Public
|
|
Packit Service |
1d8f1c |
* License along with this library; if not, write to the Free Software
|
|
Packit Service |
1d8f1c |
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
|
|
Packit Service |
1d8f1c |
* USA
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
#include "ibusinternal.h"
|
|
Packit Service |
1d8f1c |
#include "ibusproperty.h"
|
|
Packit Service |
1d8f1c |
#include "ibusproplist.h"
|
|
Packit Service |
1d8f1c |
#include "ibusenumtypes.h"
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
enum {
|
|
Packit Service |
1d8f1c |
LAST_SIGNAL,
|
|
Packit Service |
1d8f1c |
};
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
enum {
|
|
Packit Service |
1d8f1c |
PROP_0 = 0,
|
|
Packit Service |
1d8f1c |
PROP_KEY,
|
|
Packit Service |
1d8f1c |
PROP_ICON,
|
|
Packit Service |
1d8f1c |
PROP_LABEL,
|
|
Packit Service |
1d8f1c |
PROP_SYMBOL,
|
|
Packit Service |
1d8f1c |
PROP_TOOLTIP,
|
|
Packit Service |
1d8f1c |
PROP_SENSITIVE,
|
|
Packit Service |
1d8f1c |
PROP_VISIBLE,
|
|
Packit Service |
1d8f1c |
PROP_PROP_TYPE,
|
|
Packit Service |
1d8f1c |
PROP_STATE,
|
|
Packit Service |
1d8f1c |
PROP_SUB_PROPS,
|
|
Packit Service |
1d8f1c |
};
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* _IBusPropertyPrivate */
|
|
Packit Service |
1d8f1c |
struct _IBusPropertyPrivate {
|
|
Packit Service |
1d8f1c |
gchar *key;
|
|
Packit Service |
1d8f1c |
gchar *icon;
|
|
Packit Service |
1d8f1c |
IBusText *label;
|
|
Packit Service |
1d8f1c |
IBusText *symbol;
|
|
Packit Service |
1d8f1c |
IBusText *tooltip;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
gboolean sensitive;
|
|
Packit Service |
1d8f1c |
gboolean visible;
|
|
Packit Service |
1d8f1c |
IBusPropType type;
|
|
Packit Service |
1d8f1c |
IBusPropState state;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusPropList *sub_props;
|
|
Packit Service |
1d8f1c |
};
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
#define IBUS_PROPERTY_GET_PRIVATE(o) \
|
|
Packit Service |
1d8f1c |
(G_TYPE_INSTANCE_GET_PRIVATE ((o), IBUS_TYPE_PROPERTY, IBusPropertyPrivate))
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* functions prototype */
|
|
Packit Service |
1d8f1c |
static void ibus_property_set_property (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
guint prop_id,
|
|
Packit Service |
1d8f1c |
const GValue *value,
|
|
Packit Service |
1d8f1c |
GParamSpec *pspec);
|
|
Packit Service |
1d8f1c |
static void ibus_property_get_property (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
guint prop_id,
|
|
Packit Service |
1d8f1c |
GValue *value,
|
|
Packit Service |
1d8f1c |
GParamSpec *pspec);
|
|
Packit Service |
1d8f1c |
static void ibus_property_destroy (IBusProperty *prop);
|
|
Packit Service |
1d8f1c |
static gboolean ibus_property_serialize (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
GVariantBuilder *builder);
|
|
Packit Service |
1d8f1c |
static gint ibus_property_deserialize (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
GVariant *variant);
|
|
Packit Service |
1d8f1c |
static gboolean ibus_property_copy (IBusProperty *dest,
|
|
Packit Service |
1d8f1c |
const IBusProperty *src);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
G_DEFINE_TYPE (IBusProperty, ibus_property, IBUS_TYPE_SERIALIZABLE)
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static void
|
|
Packit Service |
1d8f1c |
ibus_property_class_init (IBusPropertyClass *class)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
|
|
Packit Service |
1d8f1c |
IBusObjectClass *object_class = IBUS_OBJECT_CLASS (class);
|
|
Packit Service |
1d8f1c |
IBusSerializableClass *serializable_class = IBUS_SERIALIZABLE_CLASS (class);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_type_class_add_private (class, sizeof (IBusPropertyPrivate));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
gobject_class->set_property = (GObjectSetPropertyFunc) ibus_property_set_property;
|
|
Packit Service |
1d8f1c |
gobject_class->get_property = (GObjectGetPropertyFunc) ibus_property_get_property;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
object_class->destroy = (IBusObjectDestroyFunc) ibus_property_destroy;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
serializable_class->serialize = (IBusSerializableSerializeFunc) ibus_property_serialize;
|
|
Packit Service |
1d8f1c |
serializable_class->deserialize = (IBusSerializableDeserializeFunc) ibus_property_deserialize;
|
|
Packit Service |
1d8f1c |
serializable_class->copy = (IBusSerializableCopyFunc) ibus_property_copy;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* install properties */
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:key:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The key of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_KEY,
|
|
Packit Service |
1d8f1c |
g_param_spec_string ("key",
|
|
Packit Service |
1d8f1c |
"key",
|
|
Packit Service |
1d8f1c |
"The key of property",
|
|
Packit Service |
1d8f1c |
"",
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:icon:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The icon of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_ICON,
|
|
Packit Service |
1d8f1c |
g_param_spec_string ("icon",
|
|
Packit Service |
1d8f1c |
"icon",
|
|
Packit Service |
1d8f1c |
"The icon of property",
|
|
Packit Service |
1d8f1c |
"",
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:label:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The label of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_LABEL,
|
|
Packit Service |
1d8f1c |
g_param_spec_object("label",
|
|
Packit Service |
1d8f1c |
"label",
|
|
Packit Service |
1d8f1c |
"The label of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_TEXT,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:symbol:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The symbol of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_SYMBOL,
|
|
Packit Service |
1d8f1c |
g_param_spec_object("symbol",
|
|
Packit Service |
1d8f1c |
"symbol",
|
|
Packit Service |
1d8f1c |
"The symbol of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_TEXT,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:tooltip:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The tooltip of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_TOOLTIP,
|
|
Packit Service |
1d8f1c |
g_param_spec_object("tooltip",
|
|
Packit Service |
1d8f1c |
"tooltip",
|
|
Packit Service |
1d8f1c |
"The tooltip of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_TEXT,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:sensitive:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The sensitive of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_SENSITIVE,
|
|
Packit Service |
1d8f1c |
g_param_spec_boolean("sensitive",
|
|
Packit Service |
1d8f1c |
"sensitive",
|
|
Packit Service |
1d8f1c |
"The sensitive of property",
|
|
Packit Service |
1d8f1c |
TRUE,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:visible:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The visible of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_VISIBLE,
|
|
Packit Service |
1d8f1c |
g_param_spec_boolean("visible",
|
|
Packit Service |
1d8f1c |
"visible",
|
|
Packit Service |
1d8f1c |
"The visible of property",
|
|
Packit Service |
1d8f1c |
TRUE,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:type:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The type of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_PROP_TYPE,
|
|
Packit Service |
1d8f1c |
g_param_spec_enum("prop-type",
|
|
Packit Service |
1d8f1c |
"prop-type",
|
|
Packit Service |
1d8f1c |
"The type of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_PROP_TYPE,
|
|
Packit Service |
1d8f1c |
PROP_TYPE_NORMAL,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:state:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The state of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_STATE,
|
|
Packit Service |
1d8f1c |
g_param_spec_enum("state",
|
|
Packit Service |
1d8f1c |
"state",
|
|
Packit Service |
1d8f1c |
"The state of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_PROP_STATE,
|
|
Packit Service |
1d8f1c |
PROP_STATE_UNCHECKED,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/**
|
|
Packit Service |
1d8f1c |
* IBusPropert:sub-props:
|
|
Packit Service |
1d8f1c |
*
|
|
Packit Service |
1d8f1c |
* The sub properties of property
|
|
Packit Service |
1d8f1c |
*/
|
|
Packit Service |
1d8f1c |
g_object_class_install_property (gobject_class,
|
|
Packit Service |
1d8f1c |
PROP_SUB_PROPS,
|
|
Packit Service |
1d8f1c |
g_param_spec_object("sub-props",
|
|
Packit Service |
1d8f1c |
"sub properties",
|
|
Packit Service |
1d8f1c |
"The sub properties of property",
|
|
Packit Service |
1d8f1c |
IBUS_TYPE_PROP_LIST,
|
|
Packit Service |
1d8f1c |
G_PARAM_READWRITE));
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static void
|
|
Packit Service |
1d8f1c |
ibus_property_init (IBusProperty *prop)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
prop->priv = IBUS_PROPERTY_GET_PRIVATE (prop);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
ibus_property_set_label (prop, NULL);
|
|
Packit Service |
1d8f1c |
ibus_property_set_symbol (prop, NULL);
|
|
Packit Service |
1d8f1c |
ibus_property_set_tooltip (prop, NULL);
|
|
Packit Service |
1d8f1c |
ibus_property_set_sub_props (prop, NULL);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
static void
|
|
Packit Service |
1d8f1c |
ibus_property_set_property (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
guint prop_id,
|
|
Packit Service |
1d8f1c |
const GValue *value,
|
|
Packit Service |
1d8f1c |
GParamSpec *pspec)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
switch (prop_id) {
|
|
Packit Service |
1d8f1c |
case PROP_KEY:
|
|
Packit Service |
1d8f1c |
g_assert (prop->priv->key == NULL);
|
|
Packit Service |
1d8f1c |
prop->priv->key = g_value_dup_string (value);
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_ICON:
|
|
Packit Service |
1d8f1c |
ibus_property_set_icon (prop, g_value_get_string (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_LABEL:
|
|
Packit Service |
1d8f1c |
ibus_property_set_label (prop, g_value_get_object (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SYMBOL:
|
|
Packit Service |
1d8f1c |
ibus_property_set_symbol (prop, g_value_get_object (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_TOOLTIP:
|
|
Packit Service |
1d8f1c |
ibus_property_set_tooltip (prop, g_value_get_object (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SENSITIVE:
|
|
Packit Service |
1d8f1c |
ibus_property_set_sensitive (prop, g_value_get_boolean (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_VISIBLE:
|
|
Packit Service |
1d8f1c |
ibus_property_set_visible (prop, g_value_get_boolean (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_PROP_TYPE:
|
|
Packit Service |
1d8f1c |
prop->priv->type = g_value_get_enum (value);
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_STATE:
|
|
Packit Service |
1d8f1c |
ibus_property_set_state (prop, g_value_get_enum (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SUB_PROPS:
|
|
Packit Service |
1d8f1c |
ibus_property_set_sub_props (prop,
|
|
Packit Service |
1d8f1c |
(IBusPropList *)g_value_get_object (value));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
default:
|
|
Packit Service |
1d8f1c |
G_OBJECT_WARN_INVALID_PROPERTY_ID (prop, prop_id, pspec);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static void
|
|
Packit Service |
1d8f1c |
ibus_property_get_property (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
guint prop_id,
|
|
Packit Service |
1d8f1c |
GValue *value,
|
|
Packit Service |
1d8f1c |
GParamSpec *pspec)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
switch (prop_id) {
|
|
Packit Service |
1d8f1c |
case PROP_KEY:
|
|
Packit Service |
1d8f1c |
g_value_set_string (value, ibus_property_get_key (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_ICON:
|
|
Packit Service |
1d8f1c |
g_value_set_string (value, ibus_property_get_icon (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_LABEL:
|
|
Packit Service |
1d8f1c |
g_value_set_object (value, ibus_property_get_label (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SYMBOL:
|
|
Packit Service |
1d8f1c |
g_value_set_object (value, ibus_property_get_symbol (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_TOOLTIP:
|
|
Packit Service |
1d8f1c |
g_value_set_object (value, ibus_property_get_tooltip (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SENSITIVE:
|
|
Packit Service |
1d8f1c |
g_value_set_boolean (value, ibus_property_get_sensitive (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_VISIBLE:
|
|
Packit Service |
1d8f1c |
g_value_set_boolean (value, ibus_property_get_visible (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_PROP_TYPE:
|
|
Packit Service |
1d8f1c |
g_value_set_enum (value, ibus_property_get_prop_type (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_STATE:
|
|
Packit Service |
1d8f1c |
g_value_set_enum (value, ibus_property_get_state (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
case PROP_SUB_PROPS:
|
|
Packit Service |
1d8f1c |
g_value_set_object (value, ibus_property_get_sub_props (prop));
|
|
Packit Service |
1d8f1c |
break;
|
|
Packit Service |
1d8f1c |
default:
|
|
Packit Service |
1d8f1c |
G_OBJECT_WARN_INVALID_PROPERTY_ID (prop, prop_id, pspec);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static void
|
|
Packit Service |
1d8f1c |
ibus_property_destroy (IBusProperty *prop)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_free (prop->priv->key);
|
|
Packit Service |
1d8f1c |
prop->priv->key = NULL;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_free (prop->priv->icon);
|
|
Packit Service |
1d8f1c |
prop->priv->icon = NULL;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->label) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->label);
|
|
Packit Service |
1d8f1c |
prop->priv->label = NULL;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->symbol) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->symbol);
|
|
Packit Service |
1d8f1c |
prop->priv->symbol = NULL;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->tooltip) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->tooltip);
|
|
Packit Service |
1d8f1c |
prop->priv->tooltip = NULL;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->sub_props) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->sub_props);
|
|
Packit Service |
1d8f1c |
prop->priv->sub_props = NULL;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBUS_OBJECT_CLASS (ibus_property_parent_class)->destroy ((IBusObject *)prop);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
gboolean
|
|
Packit Service |
1d8f1c |
ibus_property_serialize (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
GVariantBuilder *builder)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
gboolean retval;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->serialize ((IBusSerializable *) prop, builder);
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (retval, FALSE);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (IBUS_IS_PROPERTY (prop), FALSE);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "s", prop->priv->key);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "u", prop->priv->type);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "v",
|
|
Packit Service |
1d8f1c |
ibus_serializable_serialize ((IBusSerializable *)prop->priv->label));
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "s", prop->priv->icon);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "v",
|
|
Packit Service |
1d8f1c |
ibus_serializable_serialize ((IBusSerializable *)prop->priv->tooltip));
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "b", prop->priv->sensitive);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "b", prop->priv->visible);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "u", prop->priv->state);
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "v",
|
|
Packit Service |
1d8f1c |
ibus_serializable_serialize ((IBusSerializable *)prop->priv->sub_props));
|
|
Packit Service |
1d8f1c |
/* Keep the serialized order for the compatibility when add new members. */
|
|
Packit Service |
1d8f1c |
g_variant_builder_add (builder, "v",
|
|
Packit Service |
1d8f1c |
ibus_serializable_serialize ((IBusSerializable *)prop->priv->symbol));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return TRUE;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static gint
|
|
Packit Service |
1d8f1c |
ibus_property_deserialize (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
GVariant *variant)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
gint retval;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->deserialize ((IBusSerializable *) prop, variant);
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (retval, 0);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
ibus_g_variant_get_child_string (variant, retval++, &prop->priv->key);
|
|
Packit Service |
1d8f1c |
g_variant_get_child (variant, retval++, "u", &prop->priv->type);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
GVariant *subvar = g_variant_get_child_value (variant, retval++);
|
|
Packit Service |
1d8f1c |
if (prop->priv->label != NULL) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->label);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
prop->priv->label = IBUS_TEXT (ibus_serializable_deserialize (subvar));
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (prop->priv->label);
|
|
Packit Service |
1d8f1c |
g_variant_unref (subvar);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
ibus_g_variant_get_child_string (variant, retval++, &prop->priv->icon);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
subvar = g_variant_get_child_value (variant, retval++);
|
|
Packit Service |
1d8f1c |
if (prop->priv->tooltip != NULL) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->tooltip);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
prop->priv->tooltip = IBUS_TEXT (ibus_serializable_deserialize (subvar));
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (prop->priv->tooltip);
|
|
Packit Service |
1d8f1c |
g_variant_unref (subvar);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_variant_get_child (variant, retval++, "b", &prop->priv->sensitive);
|
|
Packit Service |
1d8f1c |
g_variant_get_child (variant, retval++, "b", &prop->priv->visible);
|
|
Packit Service |
1d8f1c |
g_variant_get_child (variant, retval++, "u", &prop->priv->state);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
subvar = g_variant_get_child_value (variant, retval++);
|
|
Packit Service |
1d8f1c |
if (prop->priv->sub_props != NULL) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->sub_props);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
prop->priv->sub_props = IBUS_PROP_LIST (ibus_serializable_deserialize (subvar));
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (prop->priv->sub_props);
|
|
Packit Service |
1d8f1c |
g_variant_unref (subvar);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* Keep the serialized order for the compatibility when add new members. */
|
|
Packit Service |
1d8f1c |
subvar = g_variant_get_child_value (variant, retval++);
|
|
Packit Service |
1d8f1c |
if (prop->priv->symbol != NULL) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->symbol);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
prop->priv->symbol = IBUS_TEXT (ibus_serializable_deserialize (subvar));
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (prop->priv->symbol);
|
|
Packit Service |
1d8f1c |
g_variant_unref (subvar);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return retval;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
static gboolean
|
|
Packit Service |
1d8f1c |
ibus_property_copy (IBusProperty *dest,
|
|
Packit Service |
1d8f1c |
const IBusProperty *src)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
gboolean retval;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
retval = IBUS_SERIALIZABLE_CLASS (ibus_property_parent_class)->copy ((IBusSerializable *) dest, (IBusSerializable *) src);
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (retval, FALSE);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (IBUS_IS_PROPERTY (dest), FALSE);
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (IBUS_IS_PROPERTY (src), FALSE);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
dest->priv->key = g_strdup (src->priv->key);
|
|
Packit Service |
1d8f1c |
dest->priv->icon = g_strdup (src->priv->icon);
|
|
Packit Service |
1d8f1c |
if (src->priv->label) {
|
|
Packit Service |
1d8f1c |
dest->priv->label = (IBusText *) ibus_serializable_copy ((IBusSerializable *) src->priv->label);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else
|
|
Packit Service |
1d8f1c |
dest->priv->label = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
if (src->priv->symbol) {
|
|
Packit Service |
1d8f1c |
dest->priv->symbol = (IBusText *) ibus_serializable_copy ((IBusSerializable *) src->priv->symbol);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else
|
|
Packit Service |
1d8f1c |
dest->priv->symbol = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
if (src->priv->tooltip) {
|
|
Packit Service |
1d8f1c |
dest->priv->tooltip = (IBusText *) ibus_serializable_copy ((IBusSerializable *) src->priv->tooltip);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else
|
|
Packit Service |
1d8f1c |
dest->priv->tooltip = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
dest->priv->sensitive = src->priv->sensitive;
|
|
Packit Service |
1d8f1c |
dest->priv->visible = src->priv->visible;
|
|
Packit Service |
1d8f1c |
dest->priv->type = src->priv->type;
|
|
Packit Service |
1d8f1c |
dest->priv->state = src->priv->state;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
dest->priv->sub_props = (IBusPropList *) ibus_serializable_copy ((IBusSerializable *) src->priv->sub_props);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return TRUE;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusProperty *
|
|
Packit Service |
1d8f1c |
ibus_property_new (const gchar *key,
|
|
Packit Service |
1d8f1c |
IBusPropType type,
|
|
Packit Service |
1d8f1c |
IBusText *label,
|
|
Packit Service |
1d8f1c |
const gchar *icon,
|
|
Packit Service |
1d8f1c |
IBusText *tooltip,
|
|
Packit Service |
1d8f1c |
gboolean sensitive,
|
|
Packit Service |
1d8f1c |
gboolean visible,
|
|
Packit Service |
1d8f1c |
IBusPropState state,
|
|
Packit Service |
1d8f1c |
IBusPropList *props)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (key != NULL, NULL);
|
|
Packit Service |
1d8f1c |
g_return_val_if_fail (type >= PROP_TYPE_NORMAL &&
|
|
Packit Service |
1d8f1c |
type <= PROP_TYPE_SEPARATOR,
|
|
Packit Service |
1d8f1c |
NULL);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return ibus_property_new_varargs ("key", key,
|
|
Packit Service |
1d8f1c |
"prop-type", type,
|
|
Packit Service |
1d8f1c |
"label", label,
|
|
Packit Service |
1d8f1c |
"icon", icon,
|
|
Packit Service |
1d8f1c |
"tooltip", tooltip,
|
|
Packit Service |
1d8f1c |
"sensitive", sensitive,
|
|
Packit Service |
1d8f1c |
"visible", visible,
|
|
Packit Service |
1d8f1c |
"state", state,
|
|
Packit Service |
1d8f1c |
"sub-props", props,
|
|
Packit Service |
1d8f1c |
NULL);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusProperty *
|
|
Packit Service |
1d8f1c |
ibus_property_new_varargs (const gchar *first_property_name, ...)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
va_list var_args;
|
|
Packit Service |
1d8f1c |
IBusProperty *prop;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_assert (first_property_name);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
va_start (var_args, first_property_name);
|
|
Packit Service |
1d8f1c |
prop = (IBusProperty *) g_object_new_valist (IBUS_TYPE_PROPERTY,
|
|
Packit Service |
1d8f1c |
first_property_name,
|
|
Packit Service |
1d8f1c |
var_args);
|
|
Packit Service |
1d8f1c |
va_end (var_args);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_assert (prop->priv->key);
|
|
Packit Service |
1d8f1c |
g_assert (prop->priv->type >= PROP_TYPE_NORMAL &&
|
|
Packit Service |
1d8f1c |
prop->priv->type <= PROP_TYPE_SEPARATOR);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return prop;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
#define IBUS_PROPERTY_GET_FIELD(field, return_type) \
|
|
Packit Service |
1d8f1c |
return_type \
|
|
Packit Service |
1d8f1c |
ibus_property_get_ ## field (IBusProperty *prop) \
|
|
Packit Service |
1d8f1c |
{ \
|
|
Packit Service |
1d8f1c |
return prop->priv->field; \
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (key, const gchar *)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (icon, const gchar *)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (label, IBusText *)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (symbol, IBusText *)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (tooltip, IBusText *)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (sensitive, gboolean)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (visible, gboolean)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (state, IBusPropState)
|
|
Packit Service |
1d8f1c |
IBUS_PROPERTY_GET_FIELD (sub_props, IBusPropList *)
|
|
Packit Service |
1d8f1c |
#undef IBUS_PROPERTY_GET_FIELD
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* ibus_property_get_type() exists */
|
|
Packit Service |
1d8f1c |
IBusPropType
|
|
Packit Service |
1d8f1c |
ibus_property_get_prop_type (IBusProperty *prop)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
return prop->priv->type;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_label (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusText *label)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_return_if_fail (label == NULL || IBUS_IS_TEXT (label));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->label) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->label);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (label == NULL) {
|
|
Packit Service |
1d8f1c |
prop->priv->label = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else {
|
|
Packit Service |
1d8f1c |
prop->priv->label = g_object_ref_sink (label);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_symbol (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusText *symbol)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_return_if_fail (symbol == NULL || IBUS_IS_TEXT (symbol));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop->priv->symbol) {
|
|
Packit Service |
1d8f1c |
g_object_unref (prop->priv->symbol);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (symbol == NULL) {
|
|
Packit Service |
1d8f1c |
prop->priv->symbol = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else {
|
|
Packit Service |
1d8f1c |
prop->priv->symbol = g_object_ref_sink (symbol);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_icon (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
const gchar *icon)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
g_free (prop->priv->icon);
|
|
Packit Service |
1d8f1c |
prop->priv->icon = g_strdup (icon != NULL ? icon : "");
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_tooltip (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusText *tooltip)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_assert (tooltip == NULL || IBUS_IS_TEXT (tooltip));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusPropertyPrivate *priv = prop->priv;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (priv->tooltip) {
|
|
Packit Service |
1d8f1c |
g_object_unref (priv->tooltip);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (tooltip == NULL) {
|
|
Packit Service |
1d8f1c |
priv->tooltip = ibus_text_new_from_static_string ("");
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (priv->tooltip);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else {
|
|
Packit Service |
1d8f1c |
priv->tooltip = tooltip;
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (priv->tooltip);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_sensitive (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
gboolean sensitive)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
prop->priv->sensitive = sensitive;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_visible (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
gboolean visible)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
prop->priv->visible = visible;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_state (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusPropState state)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_assert (state == PROP_STATE_UNCHECKED ||
|
|
Packit Service |
1d8f1c |
state == PROP_STATE_CHECKED ||
|
|
Packit Service |
1d8f1c |
state == PROP_STATE_INCONSISTENT);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
prop->priv->state = state;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
void
|
|
Packit Service |
1d8f1c |
ibus_property_set_sub_props (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusPropList *prop_list)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROP_LIST (prop_list) || prop_list == NULL);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusPropertyPrivate *priv = prop->priv;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (priv->sub_props) {
|
|
Packit Service |
1d8f1c |
g_object_unref (priv->sub_props);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (prop_list) {
|
|
Packit Service |
1d8f1c |
priv->sub_props = prop_list;
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (prop_list);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
else {
|
|
Packit Service |
1d8f1c |
priv->sub_props = ibus_prop_list_new ();
|
|
Packit Service |
1d8f1c |
g_object_ref_sink (priv->sub_props);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
gboolean
|
|
Packit Service |
1d8f1c |
ibus_property_update (IBusProperty *prop,
|
|
Packit Service |
1d8f1c |
IBusProperty *prop_update)
|
|
Packit Service |
1d8f1c |
{
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop));
|
|
Packit Service |
1d8f1c |
g_assert (IBUS_IS_PROPERTY (prop_update));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
IBusPropertyPrivate *priv = prop->priv;
|
|
Packit Service |
1d8f1c |
IBusPropertyPrivate *priv_update = prop_update->priv;
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
if (g_strcmp0 (priv->key, priv_update->key) != 0) {
|
|
Packit Service |
1d8f1c |
return ibus_prop_list_update_property (priv->sub_props, prop_update);
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* Do not support update prop type */
|
|
Packit Service |
1d8f1c |
g_assert (priv->type == priv_update->type);
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
ibus_property_set_icon (prop, ibus_property_get_icon (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_label (prop, ibus_property_get_label (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_symbol (prop, ibus_property_get_symbol (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_tooltip (prop, ibus_property_get_tooltip (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_visible (prop, ibus_property_get_visible (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_state (prop, ibus_property_get_state (prop_update));
|
|
Packit Service |
1d8f1c |
ibus_property_set_sensitive (prop, ibus_property_get_sensitive (prop_update));
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
/* Do not support update sub props */
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
return TRUE;
|
|
Packit Service |
1d8f1c |
}
|
|
Packit Service |
1d8f1c |
|
|
Packit Service |
1d8f1c |
|