Я думаю, что синтаксис EDJE или название части в вашем файле edc недоступны в текущем носимом tizen.
data.item
означает, что некоторые данные поступают извне edje. и blar_vg_blar
означает, что API векторной графики efl что-то там рисует. но API векторной графики отсутствует в версии tizen wearable (2.3.1).
По сути, тема EDJE для Elementary очень запутана с кодом элементарного виджета. Код элементарного виджета использует жестко закодированные сигналы и название части в файле EDC.
поэтому тема elementary не означает другие темы, такие как css
. у него есть логика для просмотра и событий, а также некоторый контроллер и данные для просмотра.
если вы хотите создать новую тему, вы снова реализуете все, что реализовано в теме по умолчанию.
Самый простой способ - скопировать оригинал и отредактировать его. поэтому вы должны проверить версию своей цели для копирования правильной темы.
В настоящее время все носимые ОС tizen в устройствах Samsung имеют версию 2.3.1.
поэтому вы должны согласовать тему с профилем носимого телефона tizen 2.3.1.
это основная тема для профиля носимых устройств tizen 2.3.1. это не то же самое на реальном устройстве, потому что реальное устройство может иметь другую тему, чем исходный профиль. это те же отношения, что и тема Google для Android и темы других поставщиков.
В любом случае вы можете сослаться на this, которая является темой индикатора выполнения по умолчанию в носимых tizen 2.3.1.
Я привожу простой пример с измененным стилем по умолчанию в первой группе EDC.
progressbartest.cpp
#include <app.h>
#include <Elementary.h>
#include <efl_extension.h>
#include <dlog.h>
#define LOG_TAG "progressbartest"
#include <string>
#include <cstdlib>
static void layout_back_cb(void *data, Evas_Object *obj, void *event_info)
{
Evas_Object* win = static_cast<Evas_Object*>(data);
elm_win_lower(win);
}
static bool create_base_gui()
{
char *res_path_ptr = app_get_resource_path();
std::string res_path(res_path_ptr);
std::free (res_path_ptr);
std::string edje_path = res_path + "edje/progressbartest.edj";
elm_theme_extension_add(nullptr, edje_path.c_str());
Evas_Object* win = elm_win_util_standard_add("test", "test");
elm_win_conformant_set(win, EINA_TRUE);
elm_win_autodel_set(win, EINA_TRUE);
evas_object_smart_callback_add(win, "delete,request", [](void*, Evas_Object*, void*){ui_app_exit();}, NULL);
eext_object_event_callback_add(win, EEXT_CALLBACK_BACK, layout_back_cb, win);
Evas_Object* pb = elm_progressbar_add(win);
bool ret = elm_object_style_set(pb, "custom_progress");
elm_progressbar_value_set(pb, 0.5);
evas_object_move(pb, 10, 150);
evas_object_resize(pb, 340, 20);
evas_object_show(pb);
evas_object_show(win);
return true;
}
int main(int argc, char *argv[])
{
ui_app_lifecycle_callback_s event_callback = {};
event_callback.create = [](void *data)->bool { return create_base_gui(); };
return ui_app_main(argc, argv, &event_callback, nullptr) != APP_ERROR_NONE;
}
progressbartest.edc (измененная группа по умолчанию)
#define PROGRESSBAR_HEIGHT 30
collections {
group { name: "elm/progressbar/horizontal/custom_progress";
parts {
part { name: "access";
type: RECT;
description { state: "default" 0.0;
fixed: 1 1;
color: 0 0 0 0;
}
}
part { name: "background";
type: RECT;
mouse_events: 0;
scale: 1;
description { state: "default" 0.0;
rel1.to: "elm.swallow.bar";
rel2.to: "elm.swallow.bar";
color: 71 200 71 255;
}
}
part { name: "elm.swallow.bar";
mouse_events: 0;
scale: 1;
type: SWALLOW;
description { state: "default" 0.0;
min: 1 PROGRESSBAR_HEIGHT;
max: -1 PROGRESSBAR_HEIGHT;
}
}
part { name: "drag.background";
mouse_events: 0;
type: RECT;
scale: 1;
description {
state: "default" 0.0;
visible: 0;
rel1.to: "elm.swallow.bar";
rel2.to: "elm.swallow.bar";
}
}
part { name: "elm.progress.progressbar";
type: RECT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
min: 0 0;
fixed: 1 1;
rel1.to: "elm.swallow.bar";
rel2 {
to_x: "elm.cur.progressbar";
to_y: "elm.swallow.bar";
offset: -1 -1;
relative: 0.5 1.0;
}
color: 255 110 0 255;
}
description {
state: "invert" 0.0;
inherit: "default" 0.0;
rel1 {
to_y: "elm.swallow.bar";
to_x: "elm.cur.progressbar";
relative: 0.0 0.0;
}
rel2.to: "elm.swallow.bar";
rel2.relative: 1.0 1.0;
}
description {
state: "state_begin" 0.0;
inherit: "default" 0.0;
rel1 {
to: "elm.swallow.bar";
relative: 0.0 0.0;
}
rel2 {
to: "elm.swallow.bar";
relative: 0.1 1.0;
}
}
description {
state: "state_end" 0.0;
inherit: "default" 0.0;
rel1 {
to: "elm.swallow.bar";
relative: 0.0 0.0;
}
rel2 {
to: "elm.swallow.bar";
relative: 1.0 1.0;
}
}
description { state: "disabled" 0.0;
inherit: "default" 0.0;
color: 0 110 255 38;
}
}
part { name: "elm.cur.progressbar";
mouse_events: 0;
scale: 1;
dragable {
confine: "drag.background";
x: 1 1 1;
y: 0 0 0;
}
description { state: "default" 0.0;
min: 0 10;
fixed: 1 1;
visible: 0;
rel1.to: "drag.background";
rel2.to: "drag.background";
}
}
part { name: "progress-rect";
type: RECT;
mouse_events: 0;
scale: 1;
description {
state: "default" 0.0;
rel1.to: "elm.progress.progressbar";
rel2.to: "elm.progress.progressbar";
color: 0 0 0 0;
}
}
}
programs {
program { name: "slide_to_end";
action: STATE_SET "state_end" 0.0;
transition: LINEAR 0.5;
target: "elm.progress.progressbar";
after: "slide_to_begin";
}
program { name: "slide_to_begin";
signal: "elm,state,slide,begin";
action: STATE_SET "state_begin" 0.0;
target: "elm.progress.progressbar";
transition: LINEAR 0.5;
after: "slide_to_end";
}
program { name: "start_pulse";
signal: "elm,state,pulse,start";
source: "elm";
}
program { name: "stop_pulse";
signal: "elm,state,pulse,stop";
source: "elm";
action: ACTION_STOP;
target: "slide_to_begin";
target: "slide_to_end";
target: "start_pulse";
}
program { name: "state_pulse";
signal: "elm,state,pulse";
source: "elm";
action: STATE_SET "state_begin" 0.0;
target: "elm.progress.progressbar";
}
program { name: "state_fraction";
signal: "elm,state,fraction";
source: "elm";
action: ACTION_STOP;
target: "slide_to_begin";
target: "slide_to_end";
target: "start_pulse";
action: STATE_SET "default" 0.0;
target: "elm.progress.progressbar";
}
program { name: "set_invert_on";
signal: "elm,state,inverted,on";
source: "elm";
action: STATE_SET "invert" 0.0;
target: "elm.progress.progressbar";
}
program { name: "set_invert_off";
signal: "elm,state,inverted,off";
source: "elm";
action: STATE_SET "default" 0.0;
target: "elm.progress.progressbar";
}
program { name: "progressbar_disable";
signal: "elm,state,disabled";
source: "elm";
action: STATE_SET "disabled" 0.0;
target: "elm.progress.progressbar";
target: "background";
}
program { name: "progressbar_enable";
signal: "elm,state,enabled";
source: "elm";
action: STATE_SET "default" 0.0;
target: "elm.progress.progressbar";
target: "background";
}
}
}
}
person
pius lee
schedule
19.10.2016