#tizen #tizen-native-app
Вопрос:
В Tizen очень легко отправлять сигналы в мою тему (EDC) из кода на C/C с помощью elm_layout_signal_emit
.
У меня есть список имен myList
, и я создал для него пользовательскую тему (с помощью EDC).:
group { "elm/genlist/base/mystyle";
parts { ... }
programs {
program { "myprogram";
source: "app";
signal: "mysignal";
...
}
}
}
Я применяю эту тему к myList
: elm_object_style_set(myList, "mystyle")
.
Как запустить myprogram
программу с этим списком генов?
Я пытался
elm_layout_signal_emit
: не сработало, но genlist может и не быть макетом, я не удивлен.elm_object_signal_emit
: не сработало, понятия не имею, почему нетedje_object_signal_emit
: не сработало, также понятия не имею, почему
Ответ №1:
elm_object_signal_emit должен работать. но у меня есть сомнения в том, что эта тема правильно применена. если вы хотите установить пользовательский стиль для объекта, сначала необходимо изменить тему. вы можете расширить свою пользовательскую тему, вызвав elm_theme_extension_add(NULL, your_edc_path); //NULL означает тему по умолчанию. смотрите более подробную информацию о https://docs.tizen.org/application/native/guides/ui/efl/component-custom/
и мне интересно… вы действительно хотите изменить genlist, а не genlist_item. если вы хотите изменить тему виджета genlist, которая очень редко меняется, вам нужно скопировать тему скроллера или тему genlist по умолчанию, так как genlist-это особый тип скроллера. стили genlist расположены в виджетах/scroller.edc в https://review.tizen.org/gerrit/#/admin/projects/profile/wearable/platform/core/uifw/efl-theme-tizen-wearable
чтобы убедиться в этом, я протестировал просто изменения сигнала в scroller.edc(общий список/по умолчанию)
part { name: "myrect"; type: RECT;
description { state: "default" 0.0;
visible: 0;
}
description { state: "show" 0.0;
inherit: "default" 0.0;
visible: 1;
color: 255 0 0 255;
}
}
program { name: "myprogram";
signal: "mysignal";
source: "app";
action: STATE_SET "show" 0.0;
target: "myrect";
}
и отправьте сигнал,
elm_object_signal_emit(myList, «мой сигнал», «приложение»);
которые правильно меняют цвет фона на красный.