示例#1
0
文件: adg-adim.c 项目: bert/adg
static void
_adg_set_property(GObject *object, guint prop_id,
                  const GValue *value, GParamSpec *pspec)
{
    AdgEntity *entity;
    AdgADimPrivate *data;

    entity = (AdgEntity *) object;
    data = ((AdgADim *) object)->data;

    switch (prop_id) {
    case PROP_VALUE:
        adg_dim_set_value((AdgDim *) object, g_value_get_string(value));
        break;
    case PROP_ORG1:
        data->org1 = adg_entity_point(entity, data->org1,
                                      g_value_get_boxed(value));
        break;
    case PROP_ORG2:
        data->org2 = adg_entity_point(entity, data->org2,
                                      g_value_get_boxed(value));
        break;
    case PROP_HAS_EXTENSION1:
        data->has_extension1 = g_value_get_boolean(value);
        break;
    case PROP_HAS_EXTENSION2:
        data->has_extension2 = g_value_get_boolean(value);
        break;
    default:
        G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
        break;
    }
}
示例#2
0
static void
_adg_property_value(void)
{
    AdgDim *dim;
    const gchar *valid_text, *latin1_text;
    const gchar *value;
    gchar *value_dup;

    dim = ADG_DIM(adg_ldim_new());
    valid_text = "This is some text...";
    latin1_text = "This is some àèìòù Latin1 text...";

    /* Using the public APIs */
    adg_dim_set_value(dim, valid_text);
    value = adg_dim_get_value(dim);
    g_assert_cmpstr(value, ==, valid_text);

    adg_dim_set_value(dim, latin1_text);
    value = adg_dim_get_value(dim);
    g_assert_cmpstr(value, ==, latin1_text);

    adg_dim_set_value(dim, NULL);
    value = adg_dim_get_value(dim);
    g_assert_null(value);

    /* Using GObject property methods */
    g_object_set(dim, "value", valid_text, NULL);
    g_object_get(dim, "value", &value_dup, NULL);
    g_assert_cmpstr(value_dup, ==, valid_text);
    g_free(value_dup);

    g_object_set(dim, "value", latin1_text, NULL);
    g_object_get(dim, "value", &value_dup, NULL);
    g_assert_cmpstr(value_dup, ==, latin1_text);
    g_free(value_dup);

    g_object_set(dim, "value", NULL, NULL);
    g_object_get(dim, "value", &value_dup, NULL);
    g_assert_null(value_dup);

    adg_entity_destroy(ADG_ENTITY(dim));
}