efl/src/lib/evas/canvas
Ali Alzyod 8f87a2411a evas_textblock: content fit feature
Summary:
**Content Fit Feature for Evas_Object_Textblock**

This Feature is available at **Evas **object level.  And **Edje **level (where it is internally use evas functionality)
This feature will allow text block to fit its content font size to proper size to fit its area.

**Main Properties:**
Fit Modes        :   None=Default, Width, Height, All [Width+Height]
Fit Size Range :   Contains maximum and minimum font size to be used (and in between).
Fit Step Size    :   Step(Jump) value when trying fonts sizes between Size_Range max and min.
Fit Size Array   :   Other way to resize font, where you explicitly select font sizes to be uses    (for example [20, 50, 100] it will try 3 sizes only)

Text Fit feature was available in Edje but:
1- It doesn't effected by ellipsis or warping in font style (or do not handle the in right way)
2- Accuracy is not good (specially if you have fix pixel size elements (spaces,tabs,items))
3- No (Step size, Size Array) available.

Test Plan:
To check the Feature
> elementary_test
> fit
> textbock fit
You can modify all the modes and properties

These are two examples, One using Evas other uses Edje

**Evas**

```
#include <Elementary.h>

enum BUTTON{
   BUTTON_MODE             = 0,
   BUTTON_MAX              = 1,
   BUTTON_MIN              = 2,
   BUTTON_STEP             = 3,
   BUTTON_ARRAY            = 4,
   BUTTON_CONTENT          = 5,
   BUTTON_STYLE            = 6,
   BUTTON_ALL              = BUTTON_STYLE+1,
};

char* BUTTON_STR[BUTTON_ALL] ={
   "MODE",
   "MAX",
   "MIN",
   "STEP",
   "ARRAY",
   "CONTENT",
   "STYLE",
};

char *contents[] = {
   "Hello World",
   "This is Line<br>THis is other Line",
   "This text contains <font_size=20 color=#F00>SPECIFIC SIZE</font_size> that does not effected by fit mode"
   };

char *styles[] = {
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000 wrap=mixed'",
   "DEFAULT='font=sans font_size=30 color=#000 ellipsis=1.0'",
   "DEFAULT='font=sans font_size=30 color=#000'",
   };

char *styles_names[] = {
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>mixed</color> ellipsis=<color=#F00>NONE</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>1.0</color>",
   "wrap=<color=#F00>NONE</color> ellipsis=<color=#F00>NONE</color>",
   };

typedef struct _APP
{
   Evas_Object *win, *box, *txtblock,*bg, *boxHor, *boxHor2;
   Eo *btn[BUTTON_ALL];
   Eo *lbl_status;
   char * str;
   unsigned int i_contnet, i_style;
} APP;
APP *app;

char * get_fit_status(Eo * textblock);

static void _btn_clicked(void *data EINA_UNUSED, Eo *obj, void *eventInfo EINA_UNUSED){
   if (obj == app->btn[BUTTON_MODE])
     {
        unsigned int options;
        evas_textblock_fit_options_get(app->txtblock, &options);
        if (options == TEXTBLOCK_FIT_MODE_NONE)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_HEIGHT);
        else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_WIDTH);
        else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_ALL);
        else if (options == TEXTBLOCK_FIT_MODE_ALL)
           evas_textblock_fit_options_set(app->txtblock, TEXTBLOCK_FIT_MODE_NONE);
     }
   else if (obj == app->btn[BUTTON_MAX])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        max -= 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_MIN])
     {
        unsigned int min, max;
        evas_textblock_fit_size_range_get(app->txtblock, &min, &max);
        min += 5;
        evas_textblock_fit_size_range_set(app->txtblock, min, max);
     }
   else if (obj == app->btn[BUTTON_STEP])
     {
        unsigned int step;
        evas_textblock_fit_step_size_get(app->txtblock, &step);
        step++;
        evas_textblock_fit_step_size_set(app->txtblock, step);
     }
   else if (obj == app->btn[BUTTON_ARRAY])
     {
        unsigned int font_size[] = {10, 50, 100 ,150};
        evas_textblock_fit_size_array_set(app->txtblock,font_size,4);
     }
   else if (obj == app->btn[BUTTON_CONTENT])
     {
        app->i_contnet++;
        if(app->i_contnet>=sizeof(contents)/sizeof(char*))
           app->i_contnet=0;
        evas_object_textblock_text_markup_set(app->txtblock,contents[app->i_contnet]);
     }
   else if (obj == app->btn[BUTTON_STYLE])
     {
        app->i_style++;
        if(app->i_style>=sizeof(styles)/sizeof(char*))
           app->i_style=0;

        Evas_Textblock_Style *style = evas_object_textblock_style_get(app->txtblock);
        evas_textblock_style_set(style,styles[app->i_style]);
     }

   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
}

char * get_fit_status(Eo * textblock)
{
   static char status[0xFFF];
   unsigned int options,min,max,step,size_array[256];
   size_t size_array_len;
   evas_textblock_fit_options_get(textblock,&options);
   evas_textblock_fit_size_range_get(textblock,&min,&max);
   evas_textblock_fit_step_size_get(textblock,&step);
   evas_textblock_fit_size_array_get(textblock,NULL,&size_array_len,0);
   if (size_array_len>255)
      size_array_len = 255;
   evas_textblock_fit_size_array_get(textblock,size_array,NULL,size_array_len);

   strcpy(status,"Mode : ");
   if (options == TEXTBLOCK_FIT_MODE_NONE)
      strcat(status,"MODE_NONE");
   else if (options == TEXTBLOCK_FIT_MODE_HEIGHT)
      strcat(status,"MODE_HEIGHT");
   else if (options == TEXTBLOCK_FIT_MODE_WIDTH)
      strcat(status,"MODE_WIDTH");
   else if (options == TEXTBLOCK_FIT_MODE_ALL)
      strcat(status,"MODE_ALL");

   strcat(status,"<br>");
   sprintf(status + strlen(status),"Max   : %d<br>",max);
   sprintf(status + strlen(status),"Min   : %d<br>",min);
   sprintf(status + strlen(status),"Step  : %d<br>",step);
   sprintf(status + strlen(status),"Array  : [ ");
   for (size_t i = 0 ; i < 10 ; i++)
     {
        if(i<size_array_len)
           sprintf(status + strlen(status)," %d,",size_array[i]);
     }

   if(10<size_array_len)
      sprintf(status + strlen(status)," ... ");
   sprintf(status + strlen(status)," ]");

   sprintf(status + strlen(status),"<br>");
   sprintf(status + strlen(status),"%s",styles_names[app->i_style]);

   return status;
}

int elm_main(int argc, char **argv)
{
  app = calloc(sizeof(APP), 1);

   elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);

   app->win = elm_win_util_standard_add("Main", "App");
   elm_win_autodel_set(app->win, EINA_TRUE);

   app->box = elm_box_add(app->win);
   app->boxHor = elm_box_add(app->box);
   app->boxHor2 = elm_box_add(app->box);
   app->txtblock = evas_object_textblock_add(app->box);
   app->bg = elm_bg_add(app->box);
   elm_bg_color_set(app->bg,255,255,255);

   Evas_Textblock_Style *style = evas_textblock_style_new();
   evas_textblock_style_set(style,styles[0]);
   evas_object_textblock_style_set(app->txtblock,style);
   evas_object_textblock_text_markup_set(app->txtblock,contents[0]);

   elm_box_horizontal_set(app->boxHor, EINA_TRUE);
   elm_box_horizontal_set(app->boxHor2, EINA_TRUE);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->box, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->txtblock);
   evas_object_show(app->bg);
   evas_object_show(app->box);
   evas_object_show(app->boxHor);
   evas_object_show(app->boxHor2);

   elm_box_pack_end(app->box, app->bg);
   elm_box_pack_end(app->box, app->boxHor);
   elm_box_pack_end(app->box, app->boxHor2);

   elm_object_content_set(app->bg,app->txtblock);

   elm_win_resize_object_add(app->win, app->box);
   evas_object_resize(app->win, 320, 480);

   for(int i = 0 ; i < BUTTON_ALL ; i++)
     {
        app->btn[i] = elm_button_add(app->boxHor);
        evas_object_smart_callback_add(app->btn[i], "clicked", _btn_clicked, NULL);
        elm_object_text_set(app->btn[i], BUTTON_STR[i]);
        elm_box_pack_end(app->boxHor, app->btn[i]);
        evas_object_show(app->btn[i]);
     }

   app->lbl_status = elm_label_add(app->boxHor2);
   elm_object_text_set(app->lbl_status, get_fit_status(app->txtblock));
   elm_box_pack_end(app->boxHor2, app->lbl_status);
   evas_object_show(app->lbl_status);

   evas_object_size_hint_weight_set(app->txtblock, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->txtblock, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND,EVAS_HINT_EXPAND);
   evas_object_size_hint_align_set(app->bg, EVAS_HINT_FILL, EVAS_HINT_FILL);

   evas_object_show(app->win);
   elm_run();
   return 0;
}

ELM_MAIN()
```

**Edje**

```
// compile: edje_cc source.edc
// run: edje_player source.edje
collections {
   styles
   {
      style
      {
         name: "text_style";
         base: "font=sans font_size=30 color=#FFF wrap=mixed ellipsis=1.0";
         tag: "br" "\n";
         tag: "ps" "ps";
         tag: "tab" "\t";
         tag: "b" "+ font_weight=Bold";
      }
   }
   group {
      name: "my_group"; // must be the same as in source.c
      parts {

         part
         {
            name: "background";
            type: RECT;
            scale: 1;
            description
            {
               color: 0 0 0 0;
               rel1.relative: 0.0 0.0;
               rel2.relative: 1.0 1.0;
            }
         }

         part
         {
            name: "text";
            type: TEXTBLOCK;
            scale: 1;
            entry_mode: NONE;
            effect: OUTLINE_SHADOW;
            description
            {
               state: "default" 0.0;
               rel1.to : "background";
               rel1.relative: 0.0 0.0;
               rel2.to : "background";
               rel2.relative: 1.0 1.0;
               text
               {
                  style: "text_style";
                  align: 0.0 0.0;
                  text: "Hello World This is Me";
                  fit: 1 1;
                  fit_step: 1;
                  size_range: 30 200;
                  //fit_size_array: 20 40 60 80 100 200;
               }
            }
         }
      }
   }
}
```

Found Task T5724 relative to this Feature

Reviewers: woohyun, bowonryu, cedric, raster

Reviewed By: woohyun

Subscribers: a.srour, #committers, #reviewers, cedric

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D9280
2019-12-12 14:22:46 +09:00
..
efl_canvas_animation.c efl_canvas_object_animation: support duration 0 2019-12-06 18:04:07 +01:00
efl_canvas_animation.eo Efl.Canvas.Animation: Rename repeat_count to play_count 2019-12-04 17:43:31 +01:00
efl_canvas_animation_alpha.c Rename Efl.Gfx.Map -> Efl.Gfx.Mapping 2019-02-21 19:20:09 +01:00
efl_canvas_animation_alpha.eo docs: Polish Efl.Canvas.Animation_* 2019-11-04 13:06:53 +01:00
efl_canvas_animation_alpha_private.h Efl.Animator: rename to Efl.Canvas.Animator 2018-02-21 14:06:43 -05:00
efl_canvas_animation_group.c efl_canvas_animation_group: remove implicit children behaviour 2019-12-04 16:30:50 +01:00
efl_canvas_animation_group.eo efl_canvas_animation_group: use @property instead of method 2019-12-04 16:30:36 +01:00
efl_canvas_animation_group_parallel.c efl_canvas_animation_group: move from list to iterator 2019-12-04 10:29:55 +01:00
efl_canvas_animation_group_parallel.eo docs: Polish Efl.Canvas.Animation_Group and sons 2019-11-04 13:51:21 +01:00
efl_canvas_animation_group_parallel_private.h Efl.Animator: rename to Efl.Canvas.Animator 2018-02-21 14:06:43 -05:00
efl_canvas_animation_group_private.h Efl.Animator: rename to Efl.Canvas.Animator 2018-02-21 14:06:43 -05:00
efl_canvas_animation_group_sequential.c efl_canvas_animation_group: move from list to iterator 2019-12-04 10:29:55 +01:00
efl_canvas_animation_group_sequential.eo docs: Polish Efl.Canvas.Animation_Group and sons 2019-11-04 13:51:21 +01:00
efl_canvas_animation_group_sequential_private.h Efl.Animator: rename to Efl.Canvas.Animator 2018-02-21 14:06:43 -05:00
efl_canvas_animation_private.h Efl.Canvas.Animation: Rename repeat_count to play_count 2019-12-04 17:43:31 +01:00
efl_canvas_animation_rotate.c efl_canvas_animation_rotate: adjust API 2019-11-04 13:06:53 +01:00
efl_canvas_animation_rotate.eo docs: Polish Efl.Canvas.Animation_* 2019-11-04 13:06:53 +01:00
efl_canvas_animation_rotate_private.h efl_canvas_animation_rotate: adjust API 2019-11-04 13:06:53 +01:00
efl_canvas_animation_scale.c efl_canvas_animation_scale: move from 2 doubles to vectors 2019-11-04 13:06:53 +01:00
efl_canvas_animation_scale.eo docs: Polish Efl.Canvas.Animation_* 2019-11-04 13:06:53 +01:00
efl_canvas_animation_scale_private.h efl_canvas_animation_scale: move from 2 doubles to vectors 2019-11-04 13:06:53 +01:00
efl_canvas_animation_translate.c efl_canvas_animation_translate: move from x&y to container types 2019-11-04 13:06:53 +01:00
efl_canvas_animation_translate.eo docs: Polish Efl.Canvas.Animation_* 2019-11-04 13:06:53 +01:00
efl_canvas_animation_translate_private.h efl_canvas_animation_translate: move from x&y to container types 2019-11-04 13:06:53 +01:00
efl_canvas_animation_types.eot Efl.Canvas.Animation: Rename repeat_count to play_count 2019-12-04 17:43:31 +01:00
efl_canvas_event_grabber.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_event_grabber.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_event_grabber_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_event_grabber_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_filter_internal.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
efl_canvas_group.eo docs: Remove redundant documentation 2019-10-07 16:40:50 +02:00
efl_canvas_group_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_group_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_image.c Efl.Canvas.Image: Add skeleton code Efl.Gfx.Frame_Controller.sector 2019-11-26 11:01:28 +09:00
efl_canvas_image.eo Efl.Canvas.Image: Add skeleton code Efl.Gfx.Frame_Controller.sector 2019-11-26 11:01:28 +09:00
efl_canvas_image_internal.eo efl/image: rename "border" -> "border_insets" 2019-09-18 10:08:56 +02:00
efl_canvas_object.eo introduce efl_canvas_object_animation 2019-11-20 09:58:24 +01:00
efl_canvas_object_animation.c efl_canvas_object_animation: support duration 0 2019-12-06 18:04:07 +01:00
efl_canvas_object_animation.eo introduce efl_canvas_object_animation 2019-11-20 09:58:24 +01:00
efl_canvas_object_eo.legacy.c evas: fix error return of evas_object_propagate_events_get() 2019-09-24 13:56:09 -07:00
efl_canvas_object_eo.legacy.h Evas: Add type convert function for BIDI_Direction_Type. 2019-03-19 12:27:51 +09:00
efl_canvas_pointer.eo evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_canvas_polygon.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_proxy.c efl.gfx: remove Efl.Gfx.Image_Load_Error 2019-03-04 13:36:57 -05:00
efl_canvas_proxy.eo eolian: remove param @nonull 2019-05-26 17:25:15 +02:00
efl_canvas_rectangle.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_scene.eo evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_canvas_scene3d.c efl.gfx: remove Efl.Gfx.Image_Load_Error 2019-03-04 13:36:57 -05:00
efl_canvas_scene3d.eo docs: Remove obsolete @since tags from EO files 2019-03-20 20:16:05 +01:00
efl_canvas_snapshot.c
efl_canvas_snapshot.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_surface.c efl_canvas_surface: change mixin to abstract 2018-12-18 11:17:12 +09:00
efl_canvas_surface.eo eolian: rename @warn_unused and its associated API 2019-05-26 17:41:22 +02:00
efl_canvas_surface.h
efl_canvas_surface_tbm.c efl_canvas_surface: change mixin to abstract 2018-12-18 11:17:12 +09:00
efl_canvas_surface_tbm.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_surface_wayland.c efl_canvas_surface: change mixin to abstract 2018-12-18 11:17:12 +09:00
efl_canvas_surface_wayland.eo Mark BETA classes individually 2019-02-14 17:46:50 +01:00
efl_canvas_surface_x11.c efl_canvas_surface: change mixin to abstract 2018-12-18 11:17:12 +09:00
efl_canvas_surface_x11.eo eo files: mark a bunch of types with @beta 2019-03-08 16:40:40 +01:00
efl_canvas_textblock.eo Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_canvas_textblock_eo.legacy.c Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_canvas_textblock_eo.legacy.h Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_canvas_textblock_factory.eo Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_canvas_textblock_internal.h Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_canvas_vg_container.c vector container: skip only for composition types. 2019-11-28 15:04:56 +09:00
efl_canvas_vg_container.eo efl: change all occurences of @owned to @move 2019-09-06 17:01:05 +02:00
efl_canvas_vg_container_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_container_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_gradient.c evas vg: optimize vg object internal connections. 2018-12-20 14:42:38 +09:00
efl_canvas_vg_gradient.eo evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_gradient_linear.c evas vector: removed useless calls. 2019-11-19 13:26:50 +09:00
efl_canvas_vg_gradient_linear.eo evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_gradient_radial.c evas vector: removed useless calls. 2019-11-19 13:26:50 +09:00
efl_canvas_vg_gradient_radial.eo evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_image.c efl_canvas_vg : Propagates the alpha color of the parent 2019-10-16 15:12:13 +09:00
efl_canvas_vg_image.eo efl_canvas_vg image: changed image parameter type. 2019-07-22 17:31:06 +09:00
efl_canvas_vg_node.c efl_canvas_vg_node: Prevent access to NULL object for remove warning 2019-11-14 11:25:53 +09:00
efl_canvas_vg_node.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
efl_canvas_vg_node_eo.legacy.c ector: code refactoring. 2019-09-06 17:56:02 +09:00
efl_canvas_vg_node_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_object.c evas vector: add one comment todo. 2019-12-06 18:59:38 +09:00
efl_canvas_vg_object.eo Efl.Gfx.Frame_Controller: Add sector property 2019-11-12 14:30:10 +09:00
efl_canvas_vg_object_eo.legacy.c efl_canvas_vg_object/evas_object_vg: Change to legacy naming rule. 2019-08-28 14:09:13 +09:00
efl_canvas_vg_object_eo.legacy.h evas vg: ++documentation 2019-12-09 15:41:33 +09:00
efl_canvas_vg_shape.c efl_canvas_vg : Propagates the alpha color of the parent 2019-10-16 15:12:13 +09:00
efl_canvas_vg_shape.eo evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_shape_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_shape_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
efl_canvas_vg_utils.c evas vg: rename evas_vg prefix to efl_canvas for consistency. 2018-11-23 20:01:53 +09:00
efl_gfx_mapping.c api: rename efl.gfx.entity geometry events and add geometry data to those events 2019-02-22 10:09:46 +01:00
efl_gfx_mapping.eo docs: Add @since 1.22 to all stable classes' EO docs 2019-03-22 16:57:36 +01:00
efl_gfx_vg_value_provider.c Efl.Gfx.Vg.Value_Provider: Introduce property change feature of Efl.Ui.Animation_View 2019-10-02 14:19:30 +09:00
efl_gfx_vg_value_provider.eo Efl.Gfx.Vg.Value_Provider: Introduce property change feature of Efl.Ui.Animation_View 2019-10-02 14:19:30 +09:00
efl_gfx_vg_value_provider.h Efl.Gfx.Vg.Value_Provider: Introduce property change feature of Efl.Ui.Animation_View 2019-10-02 14:19:30 +09:00
efl_input_clickable.c efl_input_clickable: add a flag for showing user interaction 2019-08-26 14:42:52 +02:00
efl_input_clickable.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
efl_input_device.c evas: move watching over destruction of device to custom logic due to high use. 2019-10-31 13:29:56 -04:00
efl_input_device.eo evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_event.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_event.eo efl: add code to enforce presence of @since tags 2019-09-30 20:12:35 +02:00
efl_input_focus.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_focus.eo docs: Update focus documentation 2019-09-03 18:41:34 +02:00
efl_input_hold.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_hold.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
efl_input_interface.eo efl: add code to enforce presence of @since tags 2019-09-30 20:12:35 +02:00
efl_input_key.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_key.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
efl_input_pointer.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_input_pointer.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
efl_input_state.eo eolian: move from eo_prefix to c_prefix 2019-05-09 16:17:44 +02:00
efl_input_types.eot evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
efl_text_attribute_factory.c Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_text_attribute_factory.eo Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_text_cursor.c Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
efl_text_cursor.eo efl_text_cursor: rename enums 2019-12-09 10:54:48 +01:00
evas_async_events.c Evas: remove Evil.h when not needed and use evil_private when needed 2019-05-20 08:46:02 -04:00
evas_box_eo.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_box_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_box_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_box_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_box_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_box_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_callbacks.c gesture_manager: Changed function param to reduce internal function calls. 2019-12-03 09:53:37 +01:00
evas_canvas3d_camera.c
evas_canvas3d_camera.eo eolian: enable checking of beta/stable contexts in all classes 2019-03-11 13:42:29 +01:00
evas_canvas3d_eet.c
evas_canvas3d_light.c eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
evas_canvas3d_light.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
evas_canvas3d_material.c eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
evas_canvas3d_material.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
evas_canvas3d_mesh.c canvas 3d: remove potential dangling pointer. 2019-09-05 18:09:36 +09:00
evas_canvas3d_mesh.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
evas_canvas3d_node.c evas_3d: stop just segfaulting straight away 2019-03-26 10:09:42 -04:00
evas_canvas3d_node.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
evas_canvas3d_node_callback.h
evas_canvas3d_object.c
evas_canvas3d_object.eo eolian: enable checking of beta/stable contexts in all classes 2019-03-11 13:42:29 +01:00
evas_canvas3d_primitive.c eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
evas_canvas3d_primitive.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
evas_canvas3d_scene.c eo: efl_object_legacy_only_event_description_get is an internal only function, make it so. 2019-03-15 11:54:24 +01:00
evas_canvas3d_scene.eo docs: Move property docs to property level instead of set/get 2019-09-13 12:30:03 +02:00
evas_canvas3d_texture.c efl: implement efl.file::unload for classes that implement load 2019-08-29 17:17:08 +02:00
evas_canvas3d_texture.eo eolian: fix eolian errors with EOLIAN_ENFORCE_SINCE=1 2019-10-14 16:55:52 +09:00
evas_canvas3d_types.eot eo files: mark a bunch of types with @beta 2019-03-08 16:40:40 +01:00
evas_canvas_eo.c efl.input.types: mark enums beta again and use legacy types in legacy code 2019-03-11 16:27:00 +01:00
evas_canvas_eo.h efl.input.types: mark enums beta again and use legacy types in legacy code 2019-03-11 16:27:00 +01:00
evas_canvas_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_canvas_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_canvas_eo.legacy.c efl.input.types: mark enums beta again and use legacy types in legacy code 2019-03-11 16:27:00 +01:00
evas_canvas_eo.legacy.h efl.input.types: mark enums beta again and use legacy types in legacy code 2019-03-11 16:27:00 +01:00
evas_clip.c evas: add 'has_fixed_size' property for canvas objects 2019-08-08 18:32:23 -07:00
evas_data.c
evas_device.c evas_device: Fix typo in evas_device_pop 2019-11-12 16:23:33 +09:00
evas_events.c evas_events: fix wrong condition of proxy event behavior. 2019-12-06 10:21:35 +09:00
evas_events_legacy.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
evas_filter_mixin.c evas filter: preserve text source color 2019-10-14 11:11:40 +09:00
evas_focus.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
evas_font_dir.c Efl Canvas Text : Modify Style Property 2019-11-28 13:14:15 +09:00
evas_gl.c
evas_grid_eo.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_grid_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_grid_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_grid_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_grid_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_grid_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_image_eo.c evas: implement Efl.File.unload for evas image classes 2019-04-18 16:04:14 +02:00
evas_image_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_image_eo.hh Fix last missing reference to old efl_orientation headers 2019-05-24 11:28:09 +02:00
evas_image_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_image_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_image_legacy.c efl/image: rename "border" -> "border_insets" 2019-09-18 10:08:56 +02:00
evas_image_private.h evas: disable Eina Cow Garbage Collection on dynamic content. 2019-10-25 15:45:14 -04:00
evas_key.c
evas_key_grab.c evas: move efl_input_device into evas/Efl_Canvas.h 2019-10-31 13:29:56 -04:00
evas_layer.c evas: detect incoherency in object content and report problem. 2018-05-24 16:02:20 -07:00
evas_line_eo.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_line_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_line_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_line_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_line_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_line_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_main.c gesture_manager: Changed function param to reduce internal function calls. 2019-12-03 09:53:37 +01:00
evas_map.c evas_map: draw what map did not draw before. 2019-08-14 12:39:58 +09:00
evas_map.h Rename Efl.Gfx.Map -> Efl.Gfx.Mapping 2019-02-21 19:20:09 +01:00
evas_name.c
evas_object_box.c evas/box: avoid triggering smart_move callback 2019-07-19 10:54:55 -07:00
evas_object_grid.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_object_image.c evas: avoid unecessary Eina_Cow GC during image destruction. 2019-12-11 10:36:11 +01:00
evas_object_inform.c efl/image: merge preload and unload events into preload_state,changed 2019-09-18 10:08:58 +02:00
evas_object_intercept.c efl/player: rename 'play' property to 'pause' 2019-09-24 15:23:15 -07:00
evas_object_line.c evas_inline: Clean up evas_object_is_visible function 2019-05-29 15:37:36 -04:00
evas_object_main.c evas: do not call Eina_Cow GC during invalidate it is pointless. 2019-12-11 10:36:17 +01:00
evas_object_polygon.c evas_inline: Clean up evas_object_is_visible function 2019-05-29 15:37:36 -04:00
evas_object_rectangle.c efl_canvas_rectangle: rendering optmization. 2019-08-02 18:27:38 +09:00
evas_object_smart.c evas/smart: inhibit smart member add/del callbacks when no subscribers exist 2019-10-14 09:29:57 -04:00
evas_object_smart_clipped.c Efl.Canvas.Group: use desired function 2018-08-02 09:10:41 -04:00
evas_object_table.c evas table - use geom set instead of move+resize for fewer oe calls 2019-08-21 20:02:23 +01:00
evas_object_text.c evas_text: retain legacy behaviour 2019-12-06 15:26:40 -08:00
evas_object_textblock.c evas_textblock: content fit feature 2019-12-12 14:22:46 +09:00
evas_object_textgrid.c fix the wrong method signature for evas_textgrid 2019-12-04 19:15:03 +09:00
evas_out.c evas: Remove left over includes from cserve2 removal 2019-01-28 11:59:47 -05:00
evas_polygon_private.h
evas_rectangle.c
evas_render.c evas/render: selectively inhibit render callbacks 2019-10-14 09:30:17 -04:00
evas_smart.c
evas_stack.x Efl.Gfx.Stack: Rename raise and lower 2019-02-14 08:57:22 -05:00
evas_stats.c
evas_table_eo.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_table_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_table_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_table_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_table_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_table_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_text_eo.c Polish text interface methods 2019-11-28 16:55:27 +09:00
evas_text_eo.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_text_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_text_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_text_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_text_eo.legacy.h evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_textblock_hyphenation.x Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00
evas_textblock_legacy.h evas_textblock: content fit feature 2019-12-12 14:22:46 +09:00
evas_textgrid_eo.c fix the wrong method signature for evas_textgrid 2019-12-04 19:15:03 +09:00
evas_textgrid_eo.h Polish text interface methods 2019-11-28 16:55:27 +09:00
evas_textgrid_eo.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_textgrid_eo.impl.hh evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_textgrid_eo.legacy.c evas: remove all legacy usage from eo files 2019-03-06 19:05:48 +01:00
evas_textgrid_eo.legacy.h Polish text interface methods 2019-11-28 16:55:27 +09:00
evas_touch_point.c
evas_vg_private.h evas vector: operate cached vector file data per evas instances. 2019-11-29 10:51:19 +09:00
meson.build Efl.Canvas.Text rename into Efl.Canvas.Textblock 2019-12-10 17:39:59 +09:00