Merge branch 'master' into devs/hermet/lottie

This commit is contained in:
Hermet Park 2020-06-11 10:22:12 +09:00
commit 668e48fb47
24 changed files with 187 additions and 46 deletions

View File

@ -122,7 +122,7 @@
* - If the object is new, establish the public APIs
* - \#define \$(CLASS_NAME) \$(class_name)_class_get(): will be used to access data/inherit from this class...
* - const Eo_Class *\$(class_name)_class_get(void) EINA_CONST: declaration of the function that will create the class (not the instance), i.e virtual table...
* - extern EAPI Eo_Op \$(CLASS_NAME)_BASE_ID: class id that will be essentially used to identify functions set of this class
* - EAPI extern Eo_Op \$(CLASS_NAME)_BASE_ID: class id that will be essentially used to identify functions set of this class
* - enum of the function ids of the class in the form \$(CLASS_NAME)_SUB_ID: used to identify the function inside the class; function id is unique per class but (class id, function id) is unique per system..
* - \#define \$(CLASS_NAME)_ID(sub_id) (\$(CLASS_NAME)_BASE_ID + sub_id): formula to calculate the system function id
* - define of each function consists of:
@ -138,7 +138,7 @@
const Eo_Class *evas_object_line_class_get(void) EINA_CONST;
extern EAPI Eo_Op EVAS_OBJ_LINE_BASE_ID;
EAPI extern Eo_Op EVAS_OBJ_LINE_BASE_ID;
enum
{

View File

@ -56,6 +56,20 @@ _short_text_changed_cb(void *data, const Efl_Event *event)
efl_text_set(txtpath, TEST_UI_TEXTPATH_LONG_TEXT);
}
static char *user_style = "DEFAULT='font_size=16 color=#F00 underline=on underline_color=#00ffff'";
static void
_user_style_changed_cb(void *data, const Efl_Event *event)
{
Evas_Object *txtpath = data;
Eina_Bool val = elm_check_selected_get(event->object);
if (val)
elm_textpath_text_user_style_set(txtpath, user_style);
else
elm_textpath_text_user_style_set(txtpath, NULL);
}
static void
_change_shape_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
@ -138,6 +152,12 @@ test_ui_textpath(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *eve
elm_box_pack_end(hbox, chk);
efl_gfx_entity_visible_set(chk, EINA_TRUE);
chk = efl_add(EFL_UI_CHECK_CLASS, win);
efl_text_set(chk, "User style");
efl_event_callback_add(chk, EFL_UI_EVENT_SELECTED_CHANGED, _user_style_changed_cb, txtpath);
elm_box_pack_end(hbox, chk);
efl_gfx_entity_visible_set(chk, EINA_TRUE);
hbox = elm_box_add(win);
elm_box_horizontal_set(hbox, EINA_TRUE);
efl_gfx_hint_weight_set(hbox, EFL_GFX_HINT_EXPAND, EFL_GFX_HINT_EXPAND);

View File

@ -54,7 +54,7 @@
extern "C" {
#endif
extern EAPI double _efl_startup_time;
EAPI extern double _efl_startup_time;
#include "Ecore_Common.h"
#include "Ecore_Eo.h"

View File

@ -716,9 +716,14 @@ _ecore_drm_output_free(Ecore_Drm_Output *output)
/* restore crtc state */
if (output->crtc)
drmModeSetCrtc(output->dev->drm.fd, output->crtc->crtc_id,
output->crtc->buffer_id, output->crtc->x, output->crtc->y,
&output->conn_id, 1, &output->crtc->mode);
{
if (drmModeSetCrtc(output->dev->drm.fd, output->crtc->crtc_id,
output->crtc->buffer_id, output->crtc->x, output->crtc->y,
&output->conn_id, 1, &output->crtc->mode))
{
ERR("Failed to restore Crtc state for output %s: %m", output->name);
}
}
/* free modes */
EINA_LIST_FREE(output->modes, mode)

View File

@ -38,7 +38,10 @@
#endif
#include "eina_debug_private.h"
#ifdef HAVE_BACKTRACE
//#define EINA_LOG_BACKTRACE
#endif
#include "eina_config.h"
#include "eina_private.h"

View File

@ -979,9 +979,9 @@ EAPI void eina_log_console_color_set(FILE *fp,
const char *color) EINA_ARG_NONNULL(1, 2);
/** String that indicates the log system is initializing. */
extern EAPI const char *_eina_log_state_init;
EAPI extern const char *_eina_log_state_init;
/** String that indicates the log system is shutting down. */
extern EAPI const char *_eina_log_state_shutdown;
EAPI extern const char *_eina_log_state_shutdown;
/**
* @def EINA_LOG_STATE_INIT
* String that indicates the log system is initializing

View File

@ -106,8 +106,8 @@ typedef void (*Eina_Module_Shutdown)(void);
*/
#define EINA_MODULE_SHUTDOWN(f) EXPORTAPI Eina_Module_Shutdown __eina_module_shutdown = &f
extern EAPI Eina_Error EINA_ERROR_WRONG_MODULE;
extern EAPI Eina_Error EINA_ERROR_MODULE_INIT_FAILED;
EAPI extern Eina_Error EINA_ERROR_WRONG_MODULE;
EAPI extern Eina_Error EINA_ERROR_MODULE_INIT_FAILED;
/**
* @brief Returns a new module.

View File

@ -105,10 +105,10 @@
extern "C" {
#endif
extern EAPI double _efl_startup_time;
EAPI extern double _efl_startup_time;
/** Successfully applied the requested style from the current theme. */
extern EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE;
EAPI extern Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE;
// EO types. Defined for legacy-only builds as legacy uses typedef of EO types.
#include "efl_ui.eot.h"

View File

@ -15,6 +15,8 @@
#define MY_CLASS EFL_UI_TEXTPATH_CLASS
#define MY_CLASS_NAME "Efl.Ui.Textpath"
#define LEGACY_TEXT_PART_NAME "elm.text"
#define EFL_UI_TEXT_PART_NAME "efl.text"
#define SLICE_DEFAULT_NO 99
typedef struct _Efl_Ui_Textpath_Point Efl_Ui_Textpath_Point;
@ -54,6 +56,7 @@ struct _Efl_Ui_Textpath_Data
{
Evas_Object *text_obj;
char *text;
Eina_Strbuf *user_style;
Efl_Gfx_Path *path;
struct {
double x, y;
@ -529,13 +532,40 @@ _sizing_eval(Efl_Ui_Textpath_Data *pd)
}
static void
_textpath_ellipsis_set(Efl_Ui_Textpath_Data *pd, Eina_Bool enabled)
_textpath_ellipsis_set(Eo *obj, Efl_Ui_Textpath_Data *pd, Eina_Bool enabled)
{
edje_object_part_text_style_user_pop(pd->text_obj, "efl.text");
char *text_part;
if (elm_widget_is_legacy(obj))
text_part = LEGACY_TEXT_PART_NAME;
else
text_part = EFL_UI_TEXT_PART_NAME;
edje_object_part_text_style_user_pop(pd->text_obj, text_part);
if (enabled)
edje_object_part_text_style_user_push(pd->text_obj, "efl.text",
"DEFAULT='ellipsis=1.0'");
{
if (pd->user_style)
{
eina_strbuf_replace_first(pd->user_style, "DEFAULT='", "DEFAULT='ellipsis=1.0 ");
edje_object_part_text_style_user_push(pd->text_obj, text_part,
eina_strbuf_string_get(pd->user_style));
}
else
{
edje_object_part_text_style_user_push(pd->text_obj, text_part,
"DEFAULT='ellipsis=1.0 '");
return;
}
}
else
{
if (pd->user_style)
{
eina_strbuf_replace_first(pd->user_style, "DEFAULT='ellipsis=1.0 ", "DEFAULT='");
edje_object_part_text_style_user_push(pd->text_obj, text_part,
eina_strbuf_string_get(pd->user_style));
}
}
}
static void
@ -563,7 +593,7 @@ _ellipsis_set(Efl_Ui_Textpath_Data *pd, Eo *obj)
}
}
efl_gfx_entity_size_set(pd->text_obj, EINA_SIZE2D(w, h));
_textpath_ellipsis_set(pd, is_ellipsis);
_textpath_ellipsis_set(obj, pd, is_ellipsis);
}
static void
@ -713,6 +743,7 @@ _efl_ui_textpath_efl_object_destructor(Eo *obj, Efl_Ui_Textpath_Data *pd)
if (pd->text) free(pd->text);
if (pd->text_obj) evas_object_del(pd->text_obj);
if (pd->user_style) eina_strbuf_free(pd->user_style);
EINA_INLIST_FREE(pd->segments, seg)
{
pd->segments = eina_inlist_remove(pd->segments, EINA_INLIST_GET(seg));
@ -1013,5 +1044,37 @@ elm_textpath_circle_set(Eo *obj, double x, double y, double radius, double start
efl_gfx_hint_size_restricted_min_set(obj, EINA_SIZE2D(x * 2, y * 2));
}
EAPI void
elm_textpath_text_user_style_set(Eo *obj, const char *style)
{
EFL_UI_TEXTPATH_DATA_GET(obj, pd);
if (!pd) return;
char *text_part;
if (elm_widget_is_legacy(obj))
text_part = LEGACY_TEXT_PART_NAME;
else
text_part = EFL_UI_TEXT_PART_NAME;
if (pd->user_style)
{
edje_object_part_text_style_user_pop(pd->text_obj, text_part);
eina_strbuf_free(pd->user_style);
pd->user_style = NULL;
}
if (style)
{
pd->user_style = eina_strbuf_new();
eina_strbuf_append(pd->user_style, style);
edje_object_part_text_style_user_pop(pd->text_obj, text_part);
edje_object_part_text_style_user_push(pd->text_obj, text_part, eina_strbuf_string_get(pd->user_style));
}
_ellipsis_set(pd, obj);
_sizing_eval(pd);
}
#include "efl_ui_textpath_legacy_eo.c"

View File

@ -12,9 +12,9 @@ extern "C" {
typedef struct _Elm_Code_Parser Elm_Code_Parser;
extern EAPI Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_SYNTAX; /**< A provided parser to provide syntax highlighting */
extern EAPI Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_DIFF; /**< A provided parser that will mark up diff text */
extern EAPI Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_TODO; /**< A provided parser that will highlight TODO and FIXME lines */
EAPI extern Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_SYNTAX; /**< A provided parser to provide syntax highlighting */
EAPI extern Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_DIFF; /**< A provided parser that will mark up diff text */
EAPI extern Elm_Code_Parser *ELM_CODE_PARSER_STANDARD_TODO; /**< A provided parser that will highlight TODO and FIXME lines */
/**
* @brief Parser helper functions.

View File

@ -522,7 +522,7 @@ EAPI extern int ELM_EVENT_PROCESS_FOREGROUND;
typedef Eina_Bool (*Elm_Event_Cb)(void *data, Evas_Object *obj, Evas_Object *src, Evas_Callback_Type type, void *event_info); /**< Function prototype definition for callbacks on input events happening on Elementary widgets. @a data will receive the user data pointer passed to elm_object_event_callback_add(). @a src will be a pointer to the widget on which the input event took place. @a type will get the type of this event and @a event_info, the struct with details on this event. */
extern EAPI double _elm_startup_time;
EAPI extern double _elm_startup_time;
#ifndef ELM_LIB_QUICKLAUNCH
#define ELM_MAIN() int main(int argc, char **argv) { int ret__; _elm_startup_time = ecore_time_unix_get(); elm_init(argc, argv); ret__ = elm_main(argc, argv); elm_shutdown(); return ret__; } /**< macro to be used after the elm_main() function */

View File

@ -12,4 +12,19 @@ typedef Eo Elm_Textpath;
*/
EAPI Evas_Object *elm_textpath_add(Evas_Object *parent);
/**
* @brief Set the user text style
*
* @param[in] obj The textpath object
* @param[in] style The user text style. If the sytle is $null, the default style will be applied
*
* @note ellipsis in the style will be ignored since textpath supports ellipsis API.
* @see elm_textpath_ellipsis_set()
*
* @ingroup Elm_Textpath
*
* @since 1.25
*/
EAPI void elm_textpath_text_user_style_set(Evas_Object *obj, const char *style);
#include "efl_ui_textpath_eo.legacy.h"

View File

@ -301,7 +301,7 @@
#include "efl_ui.eot.h"
typedef Eo Efl_Ui_Focus_Manager;
extern EAPI Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE;
EAPI extern Eina_Error EFL_UI_THEME_APPLY_ERROR_NONE;
#define _EFL_UI_FOCUS_MANAGER_EO_CLASS_TYPE
#include "efl_ui_focus_object.eo.h"

View File

@ -4,7 +4,7 @@
#include "evas_font.h"
/* macros needed to log message through eina_log */
extern EAPI int _evas_font_log_dom_global;
EAPI extern int _evas_font_log_dom_global;
#ifdef _EVAS_FONT_DEFAULT_LOG_DOM
# undef _EVAS_FONT_DEFAULT_LOG_DOM
#endif

View File

@ -86,7 +86,7 @@
#endif
/* macros needed to log message through eina_log */
extern EAPI int _evas_log_dom_global;
EAPI extern int _evas_log_dom_global;
#ifdef _EVAS_DEFAULT_LOG_DOM
# undef _EVAS_DEFAULT_LOG_DOM
#endif

View File

@ -163,7 +163,7 @@ static void _locale_get(void *data EINA_UNUSED, const Eldbus_Message *msg,
setenv(type, value, 1);
}
setlocale(__LC_ALL, "");
setlocale(LC_ALL, "");
end:
ecore_event_add(ECORE_EVENT_LOCALE_CHANGED, NULL, NULL, NULL);

View File

@ -6,8 +6,8 @@
#include <Evas_Engine_Wayland.h>
#include "ecore_wl2_internal.h"
extern EAPI Eina_List *_evas_canvas_image_data_unset(Evas *eo_e);
extern EAPI void _evas_canvas_image_data_regenerate(Eina_List *list);
EAPI extern Eina_List *_evas_canvas_image_data_unset(Evas *eo_e);
EAPI extern void _evas_canvas_image_data_regenerate(Eina_List *list);
#define _smart_frame_type "ecore_evas_wl_frame"

View File

@ -324,6 +324,7 @@ _test_activated_window_activate(void *data EINA_UNUSED, int type EINA_UNUSED, vo
EFL_START_TEST(wl2_window_activated)
{
Test_Data *td;
Eina_Bool ret = EINA_FALSE;
ecore_wl2_init();
@ -345,7 +346,9 @@ EFL_START_TEST(wl2_window_activated)
ecore_wl2_window_show(td->win);
_init_egl(td);
ret = _init_egl(td);
fail_if(ret != EINA_TRUE);
td->handler = ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_CONFIGURE_COMPLETE,
_test_activated_configure_complete, td);
ecore_event_handler_add(ECORE_WL2_EVENT_WINDOW_ACTIVATE,

View File

@ -5,29 +5,51 @@
#include <EGL/egl.h>
#include <GLES2/gl2.h>
static void
static Eina_Bool
_init_egl(Test_Data *td)
{
eglBindAPI(EGL_OPENGL_API);
EGLint num_config;
EGLint attributes[] = {
EGLint attributes[] =
{
EGL_RED_SIZE, 8,
EGL_GREEN_SIZE, 8,
EGL_BLUE_SIZE, 8,
EGL_NONE
};
};
td->egl_display = eglGetDisplay((EGLNativeDisplayType)ecore_wl2_display_get(td->display));
eglInitialize(td->egl_display, NULL, NULL);
eglChooseConfig(td->egl_display, attributes, &td->egl_conf, 1, &num_config);
td->egl_context = eglCreateContext(td->egl_display, td->egl_conf, EGL_NO_CONTEXT, NULL);
td->egl_display =
eglGetDisplay((EGLNativeDisplayType)ecore_wl2_display_get(td->display));
if (!eglInitialize(td->egl_display, NULL, NULL))
{
EINA_LOG_ERR("Failed to initialize egl");
eglTerminate(td->egl_display);
return EINA_FALSE;
}
if (!eglChooseConfig(td->egl_display, attributes, &td->egl_conf,
1, &num_config))
{
EINA_LOG_ERR("Failed to choose egl config");
eglTerminate(td->egl_display);
return EINA_FALSE;
}
td->egl_context =
eglCreateContext(td->egl_display, td->egl_conf, EGL_NO_CONTEXT, NULL);
td->egl_window = wl_egl_window_create(td->surface, td->width, td->height);
td->egl_surface = eglCreateWindowSurface(td->egl_display,
td->egl_conf, td->egl_window, NULL);
eglMakeCurrent(td->egl_display, td->egl_surface, td->egl_surface, td->egl_context);
td->egl_surface =
eglCreateWindowSurface(td->egl_display,
td->egl_conf, td->egl_window, NULL);
eglMakeCurrent(td->egl_display, td->egl_surface,
td->egl_surface, td->egl_context);
return EINA_TRUE;
}
static void

View File

@ -814,7 +814,7 @@ EFL_START_TEST(eina_test_file_mktemp)
fd = eina_file_mkstemp(buf, &tmpfile);
fail_if((fd < 0) || !tmpfile || errno);
close(fd);
fail_if(close(fd));
it = eina_file_direct_ls(tmpdir);
fail_if(!it);
@ -825,8 +825,8 @@ EFL_START_TEST(eina_test_file_mktemp)
eina_iterator_free(it);
unlink(tmpfile);
remove(tmpdir);
fail_if(unlink(tmpfile));
fail_if(remove(tmpdir));
}
EFL_END_TEST

View File

@ -145,9 +145,11 @@ EFL_START_TEST(eina_test_simple)
fail_if(row != 3 || col != 5);
test1 = eina_matrixsparse_data_idx_get(matrix, 4, 3);
fail_if(test1 == NULL);
fail_if(*test1 != data[4][3]);
test1 = eina_matrixsparse_data_idx_get(matrix, 1, 3);
fail_if(test1 == NULL);
fail_if(*test1 != data[1][3]);
/* data changing */

View File

@ -32,14 +32,14 @@ static Eina_Bool list_cb(Eina_Module *m, void *data EINA_UNUSED)
const char *file;
/* the reference count */
eina_module_load(m);
fail_if(!eina_module_load(m));
/* get */
sym = eina_module_symbol_get(m, "dummy_symbol");
fail_if(!sym);
fail_if(*sym != 0xbad);
file = eina_module_file_get(m);
fail_if(!file);
eina_module_unload(m);
fail_if(eina_module_unload(m));
return EINA_TRUE;
}

View File

@ -27,12 +27,19 @@ static Eina_Error
_a_set_reflect(Eo *obj, Eina_Value value)
{
int a;
Eina_Error r = 0;
eina_value_int_convert(&value, &a);
if (!eina_value_int_convert(&value, &a))
{
r = EINA_ERROR_VALUE_FAILED;
goto end;
}
simple_a_set(obj, a);
end:
eina_value_flush(&value);
return 0;
return r;
}
static int

View File

@ -904,7 +904,8 @@ EFL_START_TEST(evas_object_image_map_unmap)
// save file, verify its pixels
fd = eina_file_mkstemp("/tmp/evas-test.XXXXXX.png", &tmp);
close(fd);
fail_if(fd <= 0);
fail_if(close(fd));
if (efl_file_save(o, tmp, NULL, NULL))
{
Eina_Rw_Slice sorig, sdest;