forked from enlightenment/enventor
edc_parser: Append different string to each candidate list.
This commit is contained in:
parent
c4d60f326a
commit
18bb73f161
|
@ -91,15 +91,49 @@ update_preset_colors(Eina_Bool update)
|
|||
}
|
||||
}
|
||||
|
||||
static int
|
||||
array_data_idx(const Eina_Array *array, void *data)
|
||||
{
|
||||
Eina_Stringshare *array_data;
|
||||
Eina_Array_Iterator itr;
|
||||
int idx;
|
||||
|
||||
if (!array) return -1;
|
||||
|
||||
EINA_ARRAY_ITER_NEXT(array, idx, array_data, itr)
|
||||
{
|
||||
if (array_data == data)
|
||||
return idx;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
static void
|
||||
ctxpopup_it_cb(void *data, Evas_Object *obj, void *event_info)
|
||||
{
|
||||
ctxpopup_data *ctxdata = data;
|
||||
Elm_Object_Item *it = event_info;
|
||||
const char *text = elm_object_item_text_get(it);
|
||||
const Eina_Stringshare *append_str = NULL;
|
||||
|
||||
//Append different string to each candidate list.
|
||||
if (ctxdata->attr->use_append_str_array)
|
||||
{
|
||||
int idx = array_data_idx(ctxdata->attr->strs, (void *)text);
|
||||
if (idx != -1)
|
||||
{
|
||||
append_str = (const Eina_Stringshare *)
|
||||
eina_array_data_get(ctxdata->attr->append_str_array, idx);
|
||||
}
|
||||
}
|
||||
//Append same string to all candidate lists.
|
||||
else
|
||||
{
|
||||
append_str = ctxdata->attr->append_str;
|
||||
}
|
||||
snprintf(ctxdata->candidate, sizeof(ctxdata->candidate), "%s %s%s",
|
||||
ctxdata->attr->prepend_str, text, ctxdata->attr->append_str);
|
||||
ctxdata->attr->prepend_str, text, append_str);
|
||||
|
||||
ctxdata->changed_cb(ctxdata->data, obj, ctxdata->candidate);
|
||||
elm_ctxpopup_dismiss(obj);
|
||||
|
|
|
@ -9,6 +9,9 @@ const char ATTR_PREPEND_COLON[] = ":";
|
|||
const char ATTR_PREPEND_NONE[] = "";
|
||||
const char ATTR_APPEND_SEMICOLON[] = ";";
|
||||
const char ATTR_APPEND_TRANSITION_TIME[] = " 1.0;";
|
||||
const char ATTR_APPEND_TRANSITION_TIME_FACTOR[] = " 1.0 0.0;";
|
||||
const char ATTR_APPEND_TRANSITION_TIME_FACTOR2[] = " 1.0 0.0 0.0;";
|
||||
const char ATTR_APPEND_TRANSITION_TIME_FACTOR4[] = " 1.0 0.0 0.0 0.0 0.0;";
|
||||
|
||||
typedef struct parser_attr_s
|
||||
{
|
||||
|
@ -560,12 +563,26 @@ type_init_thread_blocking(void *data, Ecore_Thread *thread EINA_UNUSED)
|
|||
eina_array_push(trans, eina_stringshare_add("SPRING"));
|
||||
eina_array_push(trans, eina_stringshare_add("CUBIC_BEZIER"));
|
||||
|
||||
Eina_Array *trans_append_str = eina_array_new(11);
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR2));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR2));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR2));
|
||||
eina_array_push(trans_append_str, eina_stringshare_add(ATTR_APPEND_TRANSITION_TIME_FACTOR4));
|
||||
|
||||
memset(&attr, 0x00, sizeof(parser_attr));
|
||||
attr.keyword = eina_stringshare_add("transition");
|
||||
attr.value.strs = trans;
|
||||
attr.value.type = ATTR_VALUE_CONSTANT;
|
||||
attr.value.prepend_str = ATTR_PREPEND_COLON;
|
||||
attr.value.append_str = ATTR_APPEND_TRANSITION_TIME;
|
||||
attr.value.append_str_array = trans_append_str;
|
||||
attr.value.use_append_str_array = EINA_TRUE;
|
||||
eina_inarray_push(td->attrs, &attr);
|
||||
|
||||
Eina_Array *aspect_mode = eina_array_new(5);
|
||||
|
|
|
@ -69,6 +69,8 @@ struct attr_value_s
|
|||
attr_value_type type;
|
||||
const char *prepend_str;
|
||||
const char *append_str;
|
||||
Eina_Array *append_str_array;
|
||||
Eina_Bool use_append_str_array : 1;
|
||||
Eina_Bool program : 1;
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue