⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gvaluetransform.c

📁 嵌入式下基于MiniGUI的Web Browser
💻 C
📖 第 1 页 / 共 3 页
字号:
DEFINE_BOOL_CHECK (uint64_bool, v_uint64);/* string printouts */#define DEFINE_SPRINTF(func_name, from_member, format)                      \static void                                                                 \value_transform_##func_name (const GValue *src_value,                       \                             GValue       *dest_value)                      \{                                                                           \  dest_value->data[0].v_pointer = g_strdup_printf ((format),                \						   src_value->data[0].from_member);             \} extern void glib_dummy_decl (void)DEFINE_SPRINTF (int_string,     v_int,    "%d");DEFINE_SPRINTF (uint_string,    v_uint,   "%u");DEFINE_SPRINTF (long_string,    v_long,   "%ld");DEFINE_SPRINTF (ulong_string,   v_ulong,  "%lu");#ifdef G_GINT64_FORMATDEFINE_SPRINTF (int64_string,   v_int64,  "%" G_GINT64_FORMAT);#endif#ifdef G_GUINT64_FORMATDEFINE_SPRINTF (uint64_string,  v_uint64, "%" G_GUINT64_FORMAT);#endifDEFINE_SPRINTF (float_string,   v_float,  "%f");DEFINE_SPRINTF (double_string,  v_double, "%f");/* special cases */static voidvalue_transform_bool_string (const GValue *src_value,                             GValue       *dest_value){  dest_value->data[0].v_pointer = g_strdup_printf ("%s",                                                   src_value->data[0].v_int ?                                                   "TRUE" : "FALSE");}static voidvalue_transform_string_string (const GValue *src_value,                               GValue       *dest_value){  dest_value->data[0].v_pointer = g_strdup (src_value->data[0].v_pointer);}static voidvalue_transform_enum_string (const GValue *src_value,                             GValue       *dest_value){  GEnumClass *class = g_type_class_ref (G_VALUE_TYPE (src_value));  GEnumValue *enum_value = g_enum_get_value (class, src_value->data[0].v_int);    if (enum_value)    dest_value->data[0].v_pointer = g_strdup (enum_value->value_name);  else    dest_value->data[0].v_pointer = g_strdup_printf ("%d", src_value->data[0].v_int);    g_type_class_unref (class);}static voidvalue_transform_flags_string (const GValue *src_value,                              GValue       *dest_value){  GFlagsClass *class = g_type_class_ref (G_VALUE_TYPE (src_value));  GFlagsValue *flags_value = g_flags_get_first_value (class, src_value->data[0].v_uint);    if (flags_value)    {      GString *gstring = g_string_new ("");      guint v_flags = src_value->data[0].v_uint;            do        {          v_flags &= ~flags_value->value;                    if (gstring->str[0])            g_string_append (gstring, " | ");          g_string_append (gstring, flags_value->value_name);          flags_value = g_flags_get_first_value (class, v_flags);        }      while (flags_value);            if (v_flags)        dest_value->data[0].v_pointer = g_strdup_printf ("%s | %u",                                                         gstring->str,                                                         v_flags);      else        dest_value->data[0].v_pointer = g_strdup (gstring->str);      g_string_free (gstring, TRUE);    }  else    dest_value->data[0].v_pointer = g_strdup_printf ("%u", src_value->data[0].v_uint);    g_type_class_unref (class);}/* registration */voidg_value_transforms_init (void)          /* sync with gtype.c */{  /* some transformations are a bit questionable,   * we currently skip those   */#define SKIP____register_transform_func(type1,type2,transform_func)     /* skip questionable transforms */ \  (void)0    /* numeric types (plus to string) */  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_CHAR,            value_transform_int_int);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UCHAR,           value_transform_int_u8);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_BOOLEAN,         value_transform_int_bool);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT,             value_transform_int_int);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT,            value_transform_int_uint);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_LONG,            value_transform_int_long);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ULONG,           value_transform_int_ulong);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_INT64,           value_transform_int_int64);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_UINT64,          value_transform_int_uint64);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_ENUM,            value_transform_int_int);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLAGS,           value_transform_int_uint);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_FLOAT,           value_transform_int_float);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_DOUBLE,          value_transform_int_double);  g_value_register_transform_func (G_TYPE_CHAR,         G_TYPE_STRING,          value_transform_int_string);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_CHAR,            value_transform_uint_s8);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UCHAR,           value_transform_uint_uint);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_BOOLEAN,         value_transform_uint_bool);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT,             value_transform_uint_int);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT,            value_transform_uint_uint);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_LONG,            value_transform_uint_long);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ULONG,           value_transform_uint_ulong);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_INT64,           value_transform_uint_int64);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_UINT64,          value_transform_uint_uint64);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_ENUM,            value_transform_uint_int);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLAGS,           value_transform_uint_uint);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_FLOAT,           value_transform_uint_float);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_DOUBLE,          value_transform_uint_double);  g_value_register_transform_func (G_TYPE_UCHAR,        G_TYPE_STRING,          value_transform_uint_string);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_CHAR,            value_transform_int_s8);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UCHAR,           value_transform_int_u8);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_BOOLEAN,         value_transform_int_int);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT,             value_transform_int_int);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT,            value_transform_int_uint);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_LONG,            value_transform_int_long);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ULONG,           value_transform_int_ulong);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_INT64,           value_transform_int_int64);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_UINT64,          value_transform_int_uint64);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_ENUM,            value_transform_int_int);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLAGS,           value_transform_int_uint);  SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_FLOAT,           value_transform_int_float);  SKIP____register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_DOUBLE,          value_transform_int_double);  g_value_register_transform_func (G_TYPE_BOOLEAN,      G_TYPE_STRING,          value_transform_bool_string);  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_CHAR,            value_transform_int_s8);  g_value_register_transform_func (G_TYPE_INT,          G_TYPE_UCHAR,           value_transform_int_u8);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -