Compare commits

...

5 Commits

Author SHA1 Message Date
Dmitri Chudinov a448fc785b config: fixed active Scrolling item highlighter 2023-11-11 20:03:09 +00:00
Dmitri Chudinov d9d81af314 efl_ui_slider: update legacy functions to unified 2023-11-11 11:54:40 -08:00
Vincent Torri 1e871074af ecore_exe: support ECORE_EXE_TERM_WITH_PARENT flag on Windows
tested with ecore_exe_example.c by running notepad.exe and forcing
the parent process to quit, with and without the flag.
2023-11-11 11:51:44 -08:00
Carsten Haitzler cfa8067a32 elm theme - add fileman bar graph groups 2023-11-04 20:44:37 +00:00
Carsten Haitzler a4e36e6f04 elm theme - fix other repeats on slider 2023-10-27 22:26:26 +01:00
8 changed files with 159 additions and 15 deletions

View File

@ -406,6 +406,7 @@ color_tree {
"/fg/normal/fileman/filesize/2";
"/fg/selected/fileman/filesize/2";
"/fg/normal/fileperm/execute";
"/fg/normal/filegraph/bar";
}
":selected-alt-trans" {
"/bg/normal/access";
@ -475,6 +476,7 @@ color_tree {
"/fg/normal/fileman/mount/off";
"/fg/normal/progress/busy/2";
"/fg/normal/gadgets/packagekit/pkg/low-priority";
"/fg/normal/filegraph/bartop";
}
":light-high" {
"/fg/normal/naviframe/top/overlap";

View File

@ -966,7 +966,7 @@ group { name: "elm/slider/vertical/default";
color_class: "/fg/disabled/slider/knob";
}
}
part { name: "slideevent"; type: RECT; repeat_events: 1;
part { name: "slideevent"; type: RECT; repeat_events: 0;
scale: 1;
ignore_flags: ON_HOLD;
dragable.events: "elm.dragable.slider";
@ -1633,7 +1633,7 @@ group { name: "elm/slider/range/horizontal/default";
color_class: "/fg/disabled/slider/knob";
}
}
part { name: "slideevent"; type: RECT; repeat_events: 1;
part { name: "slideevent"; type: RECT; repeat_events: 0;
scale: 1;
ignore_flags: ON_HOLD;
dragable.events: "elm.dragable.slider";
@ -1698,7 +1698,7 @@ group { name: "elm/slider/range/horizontal/default";
color_class: "/fg/disabled/slider/knob";
}
}
part { name: "slideevent2"; type: RECT; repeat_events: 1;
part { name: "slideevent2"; type: RECT; repeat_events: 0;
clip_to: "enable2";
scale: 1;
ignore_flags: ON_HOLD;
@ -2317,7 +2317,7 @@ group { name: "elm/slider/range/vertical/default";
color_class: "/fg/disabled/slider/knob";
}
}
part { name: "slideevent"; type: RECT; repeat_events: 1;
part { name: "slideevent"; type: RECT; repeat_events: 0;
scale: 1;
ignore_flags: ON_HOLD;
dragable.events: "elm.dragable.slider";
@ -2381,7 +2381,7 @@ group { name: "elm/slider/range/vertical/default";
color_class: "/fg/disabled/slider/knob";
}
}
part { name: "slideevent2"; type: RECT; repeat_events: 1;
part { name: "slideevent2"; type: RECT; repeat_events: 0;
clip_to: "enable2";
scale: 1;
ignore_flags: ON_HOLD;

View File

@ -1219,6 +1219,109 @@ group { name: "e/fileman/default/circle";
}
}
group { name: "e/fileman/default/graph/base";
parts {
part { name: "e.swallow.content"; type: SWALLOW; scale;
description { state: "default" 0.0; offscale;
rel1 { offset: 2 2; }
rel2 { offset: -3 -3; }
}
}
}
}
group { name: "e/fileman/default/graph/bar";
script {
hex(str[], len) {
new i, val = 0;
for (i = 0; i < len; i++) {
val <<= 4;
if ((str[i] >= '0') && (str[i] <= '9')) {
val += str[i] - '0';
} else if ((str[i] >= 'a') && (str[i] <= 'f')) {
val += 10 + str[i] - 'a';
} else if ((str[i] >= 'A') && (str[i] <= 'F')) {
val += 10 + str[i] - 'A';
}
}
return val;
}
public message(Msg_Type:type, id, ...) {
if ((type == MSG_STRING) && (id == 1)) {
new cc[256];
getsarg(2, cc, 255);
custom_state(PART:"base", "default", 0.0);
if (!strncmp(cc, "cc:", 3)) {
strcpy(cc, cc[3]);
set_state_val(PART:"base", STATE_COLOR, 255, 255, 255, 255);
set_state_val(PART:"base", STATE_COLOR_CLASS, cc);
} else if (!strncmp(cc, "#", 1)) {
new r = 255, g = 255, b = 255, a = 255;
strcpy(cc, cc[1]);
if (strlen(cc) == 3) { // #35a
r = hex(cc[0], 1);
g = hex(cc[1], 1);
b = hex(cc[2], 1);
} else if (strlen(cc) == 4) { // #35af
r = hex(cc[0], 1);
g = hex(cc[1], 1);
b = hex(cc[2], 1);
a = hex(cc[3], 1);
} else if (strlen(cc) == 6) { // #3355aa
r = hex(cc[0], 2);
g = hex(cc[2], 2);
b = hex(cc[4], 2);
} else if (strlen(cc) == 8) { // #3355aaff
r = hex(cc[0], 2);
g = hex(cc[2], 2);
b = hex(cc[4], 2);
a = hex(cc[6], 2);
}
set_state_val(PART:"base", STATE_COLOR, r, g, b, a);
set_state_val(PART:"base", STATE_COLOR_CLASS, "");
}
set_state(PART:"base", "custom", 0.0);
}
}
}
parts {
part { name: "drag_base"; type: SPACER; scale;
description { state: "default" 0.0; offscale;
rel1 { offset: 1 1; }
rel2 { offset: -2 -2; }
}
}
part { name: "base"; type: RECT;
description { state: "default" 0.0;
rel1.to_y: "e.dragable.value";
rel2.to: "drag_base";
color_class: "/fg/normal/filegraph/bar";
}
}
part { name: "top"; type: RECT;
description { state: "default" 0.0;
rel.to: "base";
rel2.relative: 1.0 0.0;
rel2.offset: -1 0;
color_class: "/fg/normal/filegraph/bartop";
}
}
part { name: "e.dragable.value"; type: SPACER;
dragable.x: 0 0 0;
dragable.y: 1 1 0;
dragable.confine: "drag_base";
description { state: "default" 0.0;
min: 0 1;
max: 99999 1;
fixed: 1 1;
}
}
}
}
group { name: "e/fileman/default/list/detailed";
inherit: "e/fileman/default/list/variable";
parts {

View File

@ -4086,9 +4086,9 @@ _status_config_scrolling(Evas_Object *win,
evas_object_smart_callback_add(sl, "delay,changed", smooth_win_change, NULL);
evas_object_data_set(win, "scrolling", sc);
evas_object_data_set(win, "scrolling", bx);
elm_naviframe_item_simple_push(naviframe, sc);
elm_naviframe_item_simple_push(naviframe, bx);
}
static void

View File

@ -33,6 +33,14 @@ struct _ecore_exe_dead_exe
char *cmd;
};
#ifdef _WIN32
/*
* this job is used to close child processes when parent one is closed
* see https://stackoverflow.com/a/53214/688348
*/
HANDLE _ecore_exe_win32_job = NULL;
#endif
EAPI int ECORE_EXE_EVENT_ADD = 0;
EAPI int ECORE_EXE_EVENT_DEL = 0;
EAPI int ECORE_EXE_EVENT_DATA = 0;
@ -338,6 +346,21 @@ ecore_exe_hup(Ecore_Exe *obj)
void
_ecore_exe_init(void)
{
#ifdef _WIN32
_ecore_exe_win32_job = CreateJobObject( NULL, NULL);
if (_ecore_exe_win32_job)
{
JOBOBJECT_EXTENDED_LIMIT_INFORMATION jeli;
memset (&jeli, 0, sizeof(jeli));
jeli.BasicLimitInformation.LimitFlags = JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE;
if (!SetInformationJobObject(_ecore_exe_win32_job, JobObjectExtendedLimitInformation, &jeli, sizeof(jeli)))
{
CloseHandle(_ecore_exe_win32_job);
_ecore_exe_win32_job = NULL;
}
}
#endif
ECORE_EXE_EVENT_ADD = ecore_event_type_new();
ECORE_EXE_EVENT_DEL = ecore_event_type_new();
ECORE_EXE_EVENT_DATA = ecore_event_type_new();
@ -358,6 +381,11 @@ _ecore_exe_shutdown(void)
ECORE_EXE_EVENT_DEL,
ECORE_EXE_EVENT_DATA,
ECORE_EXE_EVENT_ERROR);
#ifdef _WIN32
if (_ecore_exe_win32_job)
CloseHandle(_ecore_exe_win32_job);
#endif
}
Ecore_Exe *

View File

@ -133,6 +133,10 @@ struct _Ecore_Exe_Data
typedef struct _Ecore_Exe_Data Ecore_Exe_Data;
#ifdef _WIN32
extern HANDLE _ecore_exe_win32_job;
#endif
EAPI extern int ECORE_EXE_EVENT_ADD;
EAPI extern int ECORE_EXE_EVENT_DEL;
EAPI extern int ECORE_EXE_EVENT_DATA;

View File

@ -512,6 +512,13 @@ _impl_ecore_exe_efl_object_finalize(Eo *obj, Ecore_Exe_Data *exe)
goto error;
}
if ((flags & ECORE_EXE_TERM_WITH_PARENT) && _ecore_exe_win32_job)
{
if (!AssignProcessToJobObject(_ecore_exe_win32_job, pi.hProcess))
WRN("AssignProcessToJobObject failed (job: %p, process: %p",
_ecore_exe_win32_job, pi.hProcess);
}
/*
* Close pipe handles (do not continue to modify the parent).
* We need to make sure that no handles to the write end of the

View File

@ -329,7 +329,7 @@ _drag_start(void *data,
elm_object_focus_set(data, EINA_TRUE);
_slider_update(data, EINA_TRUE);
efl_event_callback_call(data, EFL_UI_SLIDER_INTERVAL_EVENT_SLIDER_DRAG_START, NULL);
elm_widget_scroll_freeze_push(data);
efl_ui_widget_scroll_freeze_push(data);
}
static void
@ -340,7 +340,7 @@ _drag_stop(void *data,
{
_slider_update(data, EINA_TRUE);
efl_event_callback_call(data, EFL_UI_SLIDER_INTERVAL_EVENT_SLIDER_DRAG_STOP, NULL);
elm_widget_scroll_freeze_pop(data);
efl_ui_widget_scroll_freeze_pop(data);
}
static void
@ -413,7 +413,7 @@ _spacer_move_cb(void *data,
{
if (!sd->frozen)
{
elm_widget_scroll_freeze_push(data);
efl_ui_widget_scroll_freeze_push(data);
sd->frozen = EINA_TRUE;
}
ev->event_flags &= ~EVAS_EVENT_FLAG_ON_HOLD;
@ -427,7 +427,7 @@ _spacer_move_cb(void *data,
(data, EFL_UI_SLIDER_INTERVAL_EVENT_SLIDER_DRAG_STOP, NULL);
if (sd->frozen)
{
elm_widget_scroll_freeze_pop(data);
efl_ui_widget_scroll_freeze_pop(data);
sd->frozen = EINA_FALSE;
}
return;
@ -466,7 +466,7 @@ _spacer_up_cb(void *data,
if (sd->frozen)
{
elm_widget_scroll_freeze_pop(data);
efl_ui_widget_scroll_freeze_pop(data);
sd->frozen = EINA_FALSE;
}
}
@ -492,7 +492,7 @@ _mouse_out_cb(void *data EINA_UNUSED,
static char *
_access_info_cb(void *data EINA_UNUSED, Evas_Object *obj)
{
const char *txt = elm_widget_access_info_get(obj);
const char *txt = efl_ui_widget_access_info_get(obj);
if (!txt) txt = elm_layout_text_get(obj, NULL);
if (txt) return strdup(txt);
@ -506,7 +506,7 @@ _access_state_cb(void *data EINA_UNUSED, Evas_Object *obj)
char *ret;
Eina_Strbuf *buf = eina_strbuf_new();
if (elm_widget_disabled_get(obj))
if (efl_ui_widget_disabled_get(obj))
eina_strbuf_append(buf, " state: disabled");
if (eina_strbuf_length_get(buf))
@ -713,7 +713,7 @@ _key_action_drag(Evas_Object *obj, const char *params)
EOLIAN static Eina_Bool
_efl_ui_slider_interval_efl_ui_widget_on_access_activate(Eo *obj, Efl_Ui_Slider_Interval_Data *sd, Efl_Ui_Activate act)
{
if (elm_widget_disabled_get(obj)) return EINA_FALSE;
if (efl_ui_widget_disabled_get) return EINA_FALSE;
if (act == EFL_UI_ACTIVATE_DEFAULT) return EINA_FALSE;
if ((act == EFL_UI_ACTIVATE_UP) ||