efl

Форк
0
106 строк · 2.6 Кб
1
#include "private.h"
2

3
typedef struct _Elm_Params_Label
4
{
5
   Elm_Params base;
6
   const char* label;
7
} Elm_Params_Label;
8

9
static void
10
external_label_state_set(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
11
                         const void *from_params, const void *to_params,
12
                         float pos EINA_UNUSED)
13
{
14
   const Elm_Params_Label *p;
15

16
   if (to_params) p = to_params;
17
   else if (from_params) p = from_params;
18
   else return;
19

20
   if (p->label) elm_object_text_set(obj, p->label);
21
}
22

23
static Eina_Bool
24
external_label_param_set(void *data EINA_UNUSED, Evas_Object *obj,
25
                         const Edje_External_Param *param)
26
{
27
   if (!strcmp(param->name, "label"))
28
     {
29
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
30
          {
31
             elm_object_text_set(obj, param->s);
32
             return EINA_TRUE;
33
          }
34
     }
35

36
   ERR("unknown parameter '%s' of type '%s'",
37
       param->name, edje_external_param_type_str(param->type));
38

39
   return EINA_FALSE;
40
}
41

42
static Eina_Bool
43
external_label_param_get(void *data EINA_UNUSED, const Evas_Object *obj,
44
                         Edje_External_Param *param)
45
{
46
   if (!strcmp(param->name, "label"))
47
     {
48
        if (param->type == EDJE_EXTERNAL_PARAM_TYPE_STRING)
49
          {
50
             param->s = elm_object_text_get(obj);
51
             return EINA_TRUE;
52
          }
53
     }
54

55
   ERR("unknown parameter '%s' of type '%s'",
56
       param->name, edje_external_param_type_str(param->type));
57

58
   return EINA_FALSE;
59
}
60

61
static void *
62
external_label_params_parse(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
63
                            const Eina_List *params EINA_UNUSED)
64
{
65
   Elm_Params_Label *mem;
66
   Edje_External_Param *param;
67
   const Eina_List *l;
68

69
   mem = ELM_NEW(Elm_Params_Label);
70
   if (!mem)
71
     return NULL;
72

73
   EINA_LIST_FOREACH(params, l, param)
74
     {
75
        if (!strcmp(param->name, "label"))
76
          mem->label = eina_stringshare_add(param->s);
77
     }
78

79
   return mem;
80
}
81

82
static Evas_Object *external_label_content_get(void *data EINA_UNUSED,
83
                                               const Evas_Object *obj EINA_UNUSED,
84
                                               const char *content EINA_UNUSED)
85
{
86
   ERR("no content");
87
   return NULL;
88
}
89

90
static void
91
external_label_params_free(void *params)
92
{
93
   Elm_Params_Label *mem = params;
94
   if (mem->label)
95
     eina_stringshare_del(mem->label);
96
   free(params);
97
}
98

99
static Edje_External_Param_Info external_label_params[] = {
100
     DEFINE_EXTERNAL_COMMON_PARAMS,
101
     EDJE_EXTERNAL_PARAM_INFO_STRING("label"),
102
     EDJE_EXTERNAL_PARAM_INFO_SENTINEL
103
};
104

105
DEFINE_EXTERNAL_ICON_ADD(label, "label");
106
DEFINE_EXTERNAL_TYPE_SIMPLE(label, "Label");
107

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.