Commit Graph

983 Commits

Author SHA1 Message Date
Lucas De Marchi 251a60ab09 Add function to check if point is inside an object
Add evas_object_inside_get() to check if a certain (x,y) point is inside
an evas_object. This is needed because there's no simple way to
determine it outside of evas when map transformations are used.

For instance, edje uses evas_object_geometry_get() and checks if point is
whithin the rectangle. This is wrong because the object might be
rotated, scaled. Below is a test program:

/**
 * Simple Evas test
 *
 * Compile with: gcc -O0 -g  -o evas_hello_world evas_hello_world.c $(pkg-config --cflags --libs eina evas ecore ecore-evas)
 */
 #include <Eina.h>
 #include <Evas.h>
 #include <Ecore_Evas.h>
 #include <Ecore.h>
 #include <stdio.h>

 #define WIDTH (320)
 #define HEIGHT (240)

Eina_Bool main_signal_exit(void *data, int ev_type, void *ev)
{
    ecore_main_loop_quit();
    return EINA_FALSE;
}

static void
_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
    Evas_Event_Mouse_Up *ev = event_info;
    Eina_Bool b;

    b = evas_object_inside_get(obj, ev->canvas.x, ev->canvas.y);
    fprintf(stderr, "mouse_up: x=%d, y=%d inside=%d\n", ev->canvas.x,
            ev->canvas.y, b);
}

static void
_cb_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
    Evas_Event_Mouse_Move *ev = event_info;
    const char *id = data;
    Eina_Bool b;

    b = evas_object_inside_get(obj, ev->cur.canvas.x, ev->cur.canvas.y);
    fprintf(stderr, "[%s] mouse_move: x=%d, y=%d inside=%d\n", id,
            ev->cur.canvas.x, ev->cur.canvas.y, b);
}

int main(void)
{
   Evas *evas;
   Ecore_Evas *window;
   Evas_Object *bg, *r1, *r2;
   Evas_Map *m;

   evas_init();
   ecore_init();
   ecore_evas_init();

   window = ecore_evas_new(NULL, 0, 0, WIDTH, HEIGHT, NULL);
   if (!evas)
     return -1;

   evas = ecore_evas_get(window);

   bg = evas_object_rectangle_add(evas);
   evas_object_color_set(bg, 255, 255, 255, 255); // white bg
   evas_object_move(bg, 0, 0);                    // at origin
   evas_object_resize(bg, WIDTH, HEIGHT);         // covers full evas
   evas_object_show(bg);

   r1 = evas_object_rectangle_add(evas);
   evas_object_color_set(r1, 255, 0, 0, 255); // 100% opaque red
   evas_object_move(r1, 50, 50);
   evas_object_resize(r1, 100, 100);

   m = evas_map_new(4);
   evas_map_util_points_populate_from_object(m, r1);
   evas_map_util_rotate(m, 45.0, 100, 100);
   evas_map_alpha_set(m, 0);
   evas_map_smooth_set(m, 1);

   evas_object_map_set(r1, m);
   evas_object_map_enable_set(r1, 1);
   evas_map_free(m);
   evas_object_show(r1);
   evas_object_event_callback_add(r1, EVAS_CALLBACK_MOUSE_UP, _cb, NULL);
   evas_object_event_callback_add(r1, EVAS_CALLBACK_MOUSE_MOVE, _cb_move, "r1");

   r2 = evas_object_rectangle_add(evas);
   evas_object_color_set(r2, 0, 255, 0, 255);
   evas_object_move(r2, 210, 150);
   evas_object_resize(r2, 50, 50);
   evas_object_show(r2);
   evas_object_event_callback_add(r2, EVAS_CALLBACK_MOUSE_MOVE, _cb_move, "r2");

   ecore_event_handler_add(ECORE_EVENT_SIGNAL_EXIT, main_signal_exit, evas);

   ecore_evas_show(window);
   ecore_main_loop_begin();

   ecore_evas_free(window);

   ecore_evas_shutdown();
   ecore_shutdown();
   evas_shutdown();

   return 0;
}




SVN revision: 52345
2010-09-16 13:59:46 +00:00
Tom Hacohen 12b55be8af Evas textblock: Added a lot of fixes to evas_textblock_cursor_geometry_get in the case where ctype = EVAS_TEXTBLOCK_CURSOR_BEFORE
SVN revision: 52341
2010-09-16 09:59:39 +00:00
Tom Hacohen 9fb94f209b Evas textblock: Fixed evas_textblock_range_text_get that didn't work on textblocks with no formats at all (not even newlines or tabs).
SVN revision: 52339
2010-09-16 07:12:23 +00:00
Lucas De Marchi 08055d63b9 trivial: spelling in documentation
Some misspellings found in doxy.



SVN revision: 52326
2010-09-15 20:40:51 +00:00
Iván Briano 20ea0eef4e Check there are callbacks before trying to copy them.
Patch by Otávio Pontes


SVN revision: 52323
2010-09-15 19:51:08 +00:00
Tom Hacohen 612b3eda81 Evas textblock: fix deleting the first tab in 'a<TAB><TAB>a' that caused weird behavior.
The solution is that we only delete invisible standalones now, not visible ones, this is correct intuitively and of course fixes the bug.

SVN revision: 52302
2010-09-15 14:07:09 +00:00
Tom Hacohen b59743febd Evas textblock: we should also take width of tabs into account when calculating line width.
SVN revision: 52297
2010-09-15 12:45:06 +00:00
Tom Hacohen 8b6083ec26 Evas textblock: Fix and simplify _find_layout_item_line_match which is an helper function used in many parts of textblock.
SVN revision: 52295
2010-09-15 10:24:07 +00:00
Tom Hacohen 78deeca6ba Evas textblock: Fixed the bug with disappearing text with many tabs and text.
I removed a function that caused the issue and made no sense at all, honestly, it didn't make any sense.
I did a lot of testing trying to see if there are any new bugs after the fix, and nothing, so I guess my instincts were correct.
Please if you can, check out the removed function (_layout_walk_back_to_item_word_redo) and see if it makes any sense to you, if it does, please let me know.

SVN revision: 52243
2010-09-14 13:57:26 +00:00
Iván Briano 2bd045dd1f Pending patch from glima, who's on vacations.
Add two new canvas level callbacks: OBJECT_FOCUS_IN/OUT
As we already had callbacks for objects gaining or losing focus, then
two more for the Canvas, now we can have the entire Evas be notified when
any object changes its focused status. The object in question is passed
as the event_info for the callback.


SVN revision: 52196
2010-09-13 18:04:23 +00:00
Tom Hacohen 471d682228 Evas textblock: Fixed paragraph char last.
SVN revision: 51985
2010-09-08 10:22:38 +00:00
Tom Hacohen bcc518ed97 Evas textblock: Should not clean the props of the item.
SVN revision: 51984
2010-09-08 10:00:47 +00:00
Tom Hacohen b267a0a03a Evas textblock: Fixed a typo.
SVN revision: 51981
2010-09-08 07:54:00 +00:00
Tom Hacohen 4c716af06a Evas textblock: cursor_geometry_get now also returns the direction of the cursor: rtl/ltr/whatever.
Fixed documentation a bit.

SVN revision: 51979
2010-09-08 07:28:16 +00:00
Lucas De Marchi 85815e306c Fix common misspellings
Following misspellings were fixed:

accomodate->accommodate
achive->achieve
beacuse->because
caluclate->calculate
cant->can't
carefull->careful
convertion->conversion
dependancy->dependency
dependant->dependent
doesnt->doesn't
existant->existent
extention->extension
fucntion->function
impliment->implement
inital->initial
lenght->length
occured->occurred
occuring->occurring
onyl->only
positon->position
possibilty->possibility
postion->position
proccessing->processing
proccess->process
propogate->propagate
recieve->receive
sucessive->successive
teh->the
ther->there
throught->through
thsi->this
wasnt->wasn't
whcih->which
wheras->whereas




SVN revision: 51965
2010-09-08 03:51:24 +00:00
Tom Hacohen b3982e535d Evas textblock: Update bidi props also when merging nodes and when deleting formats.
SVN revision: 51922
2010-09-06 12:19:17 +00:00
Tom Hacohen 2d1d631b48 Evas textblock: Added evas_textblock_cursor_content_get.
SVN revision: 51898
2010-09-05 08:28:58 +00:00
Tom Hacohen cc250013be Evas textblock: Fixed documentation typos. Patch by Jihoon Kim.
SVN revision: 51896
2010-09-05 07:04:59 +00:00
Christopher Michael d6da81ea66 Update email address across the board.
SVN revision: 51890
2010-09-04 18:32:59 +00:00
Carsten Haitzler e0860db059 dont call mouse out or in if already in or out in evas. causing
infinite loops in edje_viewer! bad!



SVN revision: 51875
2010-09-04 03:53:34 +00:00
Carsten Haitzler 9a51cd55fa fix raols bug he found map + del obj.
SVN revision: 51857
2010-09-03 08:44:13 +00:00
Carsten Haitzler 28a28cbf27 grrrr. slowness bug. fix. now display bug is back.
SVN revision: 51855
2010-09-03 08:23:38 +00:00
Carsten Haitzler 4c63db37f8 in order to fix some horridibubble things. i had to add 4 api's. ugh.
done. working. now... still 1 more bug. seems to be a changed flag bug
too in dlip 2 test in scrolling list after map anim finished. smaller
bug to deal with now. ugh. bug one bug to the other



SVN revision: 51849
2010-09-03 00:06:56 +00:00
Tom Hacohen 76d197bf6b Evas textblock: Fixed char coord set to work better.
SVN revision: 51842
2010-09-02 13:53:14 +00:00
Tom Hacohen 8b88b84c9f Evas textblock: width should remain the same no matter what's the position, removed that unwanted adjustment.
SVN revision: 51838
2010-09-02 12:01:23 +00:00
Tom Hacohen e8c59bf0e8 Evas textblock+font engine: Implemented evas_textblock_cursor_geometry_get.
Fixed evas_common_font_char_coords to work correctly with the NULL character in RTL text.

SVN revision: 51834
2010-09-02 11:49:00 +00:00
Carsten Haitzler b37a2117d1 fix more map+clip goop.
SVN revision: 51830
2010-09-02 09:40:23 +00:00
Vincent Torri 3527150853 evas_object_text*_get: return 0 in case of error
SVN revision: 51829
2010-09-02 05:48:23 +00:00
Carsten Haitzler de6ab93e2a notes. still a bork.
SVN revision: 51827
2010-09-01 22:51:00 +00:00
Carsten Haitzler 6e3d671219 and fix up some related map+clip+smart render issues along with fixing
map boundary bugs as in trying to fix it i added some bugs.



SVN revision: 51826
2010-09-01 22:45:30 +00:00
Carsten Haitzler 29f59da989 comment++
SVN revision: 51824
2010-09-01 21:38:34 +00:00
Carsten Haitzler bfab8b9254 now that mostly fixes this map clip issue... ugh. took a while to come up
with an elegant solution. also it does add overhead to fix. i might be
able to improve the overhead.
 


SVN revision: 51823
2010-09-01 21:37:10 +00:00
Tom Hacohen 4554c06a70 Evas textblock: Fixed compilation without fribidi. <-- For real now. :P
SVN revision: 51809
2010-09-01 14:26:55 +00:00
Tom Hacohen 97b766773b Evas textblock: Fixed compilation without fribidi.
SVN revision: 51808
2010-09-01 14:08:23 +00:00
Tom Hacohen 5e433f1956 Evas bidi: Changed the design a bit so it'll be easy to implement async-rendering with it.
Fixed a couple of issues with unwanted cleans and generally data corruption.
Cleaned up async-rendering.

SVN revision: 51806
2010-09-01 13:15:04 +00:00
Tom Hacohen e6304cafaf Evas textblock: Fixed updating BiDi properties when we delete.
SVN revision: 51801
2010-09-01 08:25:19 +00:00
Carsten Haitzler 2dedcff5d3 aaaaaaaaaaaaaaargh! where's me rum! :(
SVN revision: 51788
2010-08-31 22:16:08 +00:00
Carsten Haitzler af64cdd630 color interpolation? never used. did nothing. not needed. go go go!
SVN revision: 51781
2010-08-31 13:29:17 +00:00
Carsten Haitzler 318217b812 evas_smart_new - deprecated api gone.
SVN revision: 51780
2010-08-31 12:01:46 +00:00
Tom Hacohen c128fa4d80 Evas textblock: Fixed @intrenal -> @internal in some docs.
SVN revision: 51746
2010-08-30 11:27:39 +00:00
Carsten Haitzler f3faf1730b can optimise this a bit and avoid magic checks as its internal.
SVN revision: 51735
2010-08-29 22:59:11 +00:00
Tom Hacohen 58319c5715 Evas textblock: fixed breakages of paragraph direction when merging/splitting text nodes.
SVN revision: 51723
2010-08-29 12:16:32 +00:00
Tom Hacohen d4c2078f8d Evas textblock: Fixed 'up' and 'down' when pointing to the end of the last line when it ends with a visible format.
SVN revision: 51717
2010-08-29 09:19:04 +00:00
Tom Hacohen 649ad7a890 Evas textblock: Fixed 'Home' and 'End' in the last line when it ends with a visible format.
SVN revision: 51716
2010-08-29 09:13:48 +00:00
Tom Hacohen 71490cad70 Evas textblock: Fixed segfault when clearing a textblock and then trying to delete while it's empty. And fixed cursor position in cases when there's a visible format after a \n
SVN revision: 51709
2010-08-29 08:27:13 +00:00
Carsten Haitzler 92fcbddbf7 move more callbacks to typedefs.
SVN revision: 51705
2010-08-29 01:59:21 +00:00
Carsten Haitzler 00236e9c5a fix map bug. :) again. this time both cases work.
SVN revision: 51704
2010-08-29 01:04:47 +00:00
Vincent Torri 3aa85b5f2d formatting
SVN revision: 51695
2010-08-28 12:55:27 +00:00
Tom Hacohen 2ab7f0f809 Evas textblock: Fixed ignoring of unicode object replacement char.
SVN revision: 51658
2010-08-26 13:04:13 +00:00
Tom Hacohen 07f7a9bd88 Evas textblock: Fixed tab causing weird spacing and unwanted linewraps.
SVN revision: 51655
2010-08-26 11:14:03 +00:00
Tom Hacohen ee3b20d11a Evas textblock: Fixed a bit of formatting.
SVN revision: 51653
2010-08-26 09:22:31 +00:00
Tom Hacohen 9a5dba89eb Evas textblock: Paired formats (e.g <b> and </b>) are now only deleted if they point to the same place. This makes everything nice and clean.
SVN revision: 51646
2010-08-25 14:37:52 +00:00
Carsten Haitzler 716211ade3 fix nasty uncaught clip + map bug! fix fix fix!!!!!
SVN revision: 51608
2010-08-24 08:14:46 +00:00
Carsten Haitzler 3222408fe5 1 bug-- ... when maps got enabled and disabled you'd find in softwarre
that you'd get dirty areas that didnt re-rneder. fixed with nasty hack
- force a full update if anyone in the evas object tree changed maps
from on to off and vice-versa



SVN revision: 51600
2010-08-24 06:58:07 +00:00
Carsten Haitzler 7b8a24e734 !! once
SVN revision: 51597
2010-08-24 02:56:04 +00:00
Carsten Haitzler 5598b6681c nicer do !! once.
SVN revision: 51596
2010-08-24 02:55:09 +00:00
Carsten Haitzler 1c60a50441 i think i may have fixed a bug in mosue grabs. not sure though as
repod case eludes me - but a code review got me to clean a bit up.



SVN revision: 51595
2010-08-24 02:53:33 +00:00
Tom Hacohen 735487e18e Evas textblock: simplified descent calculation.
SVN revision: 51516
2010-08-22 12:26:40 +00:00
Tom Hacohen 818c1dbf64 Evas textblock: fixed most of the cases on which a cursor was not drawn correctly.
SVN revision: 51515
2010-08-22 11:00:45 +00:00
Lucas De Marchi 5a8a8c9014 Convert (hopefully) all comparisons to NULL
Apply badzero.cocci, badnull.coci and badnull2.cocci

This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:

code before patch               ||code after patch
===============================================================

return a == NULL;                 return !a;

return a != NULL;                 return !!a;

func(a == NULL);                  func(!a);

func(a != NULL);                  func(!!a);

b = a == NULL;                    b = !a;

b = a != NULL;                    b = !!a;

b = a == NULL ? c : d;            b = !a ? c : d;

b = a != NULL ? c : d;            b = a ? c : d;


other cases:

a == NULL                         !a
a != NULL                         a




SVN revision: 51487
2010-08-21 13:52:25 +00:00
Tom Hacohen 7967a59ef8 Evas textblock: Fixed range_text_get, no works when selecting text from multiple paragraphs.
SVN revision: 51392
2010-08-19 14:07:45 +00:00
Cedric BAIL e6f9cee051 * eina: fix structure content to be more futur proof and reduce
risk of ABI breakage.


SVN revision: 51390
2010-08-19 12:02:28 +00:00
Tom Hacohen 75a676f945 Evas textblock: Improved the docs of the size get functions. It should now be clear exactly what they are about.
SVN revision: 51385
2010-08-19 07:46:32 +00:00
Carsten Haitzler 817c505230 remove transform stuff - never was implemented anyway so no effective
break.



SVN revision: 51384
2010-08-19 07:32:44 +00:00
Carsten Haitzler a0d8db000e and make dynamic hint actually work when we have zero-copy texture
support. fully ok now for argb8888.



SVN revision: 51380
2010-08-19 05:18:17 +00:00
Carsten Haitzler c398484812 fix stride and hint setting so any order works.
SVN revision: 51379
2010-08-19 05:03:37 +00:00
Christopher Michael 76bc67ea7c Initialize var to Zero (remove compiler warning).
Remove Whitespace in cs_server.



SVN revision: 51283
2010-08-18 15:27:37 +00:00
Cedric BAIL c689865500 * evas: remove some warning.
SVN revision: 51281
2010-08-18 15:11:07 +00:00
Christopher Michael 00c661adab Fix warnings about some unused paramaters (This does not cleanup all
the warnings, just the ones which were Obviously not used).

Evas_Object_Text.c: Fix big ole nasty oopsie in the declaration of
object_func: Was missing a NULL for can_map.



SVN revision: 51280
2010-08-18 14:44:23 +00:00
Tom Hacohen f9db3d6b84 Evas textblock: Fixed range_delete with multiple paragraphs + cursor position after deletion.
Switched int -> size_t in a couple of places I forgot.
Fixed all of gcc's warnings when compiling with -Wextra.

SVN revision: 51278
2010-08-18 13:56:34 +00:00
Tom Hacohen 71f8122aab Evas textblock: Fixed range_delete.
SVN revision: 51275
2010-08-18 12:29:20 +00:00
Tom Hacohen 35f14c47e2 Evas textblock: render should be allowed to be passed an object with no paragraphs, but should just return and do nothing.
SVN revision: 51263
2010-08-17 17:55:48 +00:00
Cedric BAIL b792eff62d * evas: oops, that wasn't to be gone.
SVN revision: 51221
2010-08-16 16:13:41 +00:00
Cedric BAIL 05e8154f8b * evas: remove gradient and gradient2.
SVN revision: 51219
2010-08-16 15:14:49 +00:00
Tom Hacohen a0c3f2a405 Evas textblock: Added comment about styles in the docs.
SVN revision: 51209
2010-08-16 12:56:01 +00:00
Tom Hacohen 2f68e9299e Evas: Fixed many compilation warnings.
1. Fixed evas_common_encoding_utf8 functions to get char * instead of unsigned char * and return Eina_Unicode instead of int.
2. Removed a couple of unused variables.
3. Removed deprecated evas_common_font_utf8* functions.

SVN revision: 51200
2010-08-16 10:46:56 +00:00
Tom Hacohen 1a979c596c Evas textblock: Fix the inefficent ways used to get string length. No need to get length twice and strbuf has a very fast function to getting length, no need to get the string and the calc it's length.
SVN revision: 51182
2010-08-16 09:44:50 +00:00
Tom Hacohen 9a1e0eecda Evas textblock: Fixed evas_textblock_cursor_paragraph_text_get to return markup.
SVN revision: 51181
2010-08-16 09:40:01 +00:00
Tom Hacohen 128e61649d Evas textblock: removed two unwanted fixmes.
SVN revision: 51178
2010-08-16 09:18:09 +00:00
Tom Hacohen 424b7ed6b7 Evas textblock: Another fix to 'range_get' fixes the text getting and not just the mishandling of formats.
SVN revision: 51176
2010-08-16 09:08:01 +00:00
Tom Hacohen 9ed2feb59e Evas textblock: Fixed a bug with getting text in range.
SVN revision: 51170
2010-08-16 08:52:18 +00:00
Tom Hacohen 5d3fc4a03e Evas textblock: Use the unicode object replacement char, not the regular replacement char.
Drop the object replacement char if passed as text.

SVN revision: 51168
2010-08-16 08:36:08 +00:00
Tom Hacohen 0f184462d1 Evas textblock: Updated usage documentation.
SVN revision: 51166
2010-08-16 08:22:18 +00:00
Tom Hacohen 25d7564726 Evas textblock: Fixed the bug with going up/down lines when the cursor points to an <item>.
With this fix I also fixed a couple of potential bugs with cursor geometry in places with mixed visible+invisible formatting.

SVN revision: 51133
2010-08-15 16:04:34 +00:00
Tom Hacohen 660a7b8ee4 Evas bidi: Added defines for bidi paragraph types (instead of using the fribidi defines).
SVN revision: 51131
2010-08-15 14:36:20 +00:00
Tom Hacohen b2b95df2be Evas: Removed deprecated 'lines' from Evas_Object_Textblock.
SVN revision: 51129
2010-08-15 09:10:15 +00:00
Tom Hacohen 3686e9d295 Evas textblock: Remove an unused function.
SVN revision: 51127
2010-08-15 08:59:39 +00:00
Tom Hacohen 2c2a0cb928 Evas textblock: Free paragraphs as well as lines.
Fixes a small memory leak.

SVN revision: 51126
2010-08-15 08:17:21 +00:00
Tom Hacohen 2ecda40ecd Evas textblock: Fixed cursor sizes in rare situations, for example the text from expedite textblock_basic test and point the 'c' in COLOR you would get a badly shaped cursor.
SVN revision: 51050
2010-08-12 15:49:43 +00:00
Tom Hacohen 86adc683d0 Evas: Textblock fixed formating.
SVN revision: 51045
2010-08-12 15:04:47 +00:00
Tom Hacohen 5cc418c333 Evas: Textblock - Fixed a couple of segs/invalid memory access.
SVN revision: 51044
2010-08-12 14:59:42 +00:00
Tom Hacohen d8fadf706b Evas: Each paragraph has at least one layout item in order to mark it's existence.
SVN revision: 51039
2010-08-12 14:20:19 +00:00
Tom Hacohen 3ec81c0b3e Evas: textblock - made _format_fill faster.
SVN revision: 51032
2010-08-12 09:35:53 +00:00
Tom Hacohen eda4539c2c Evas: textblock - Made _format_param_parse sane and cleaner and fixed compilation warnings about unused functions.
SVN revision: 51031
2010-08-12 09:31:43 +00:00
Tom Hacohen fd04d4c5d3 Evas: fixed textblock compiler warnings.
SVN revision: 51029
2010-08-12 07:02:30 +00:00
Carsten Haitzler 01b7216880 more glue/infra. glue evas api to engine together. gl engine gets stubs.
SVN revision: 51028
2010-08-12 06:11:13 +00:00
Carsten Haitzler 83f2ef6142 working on new gl engine feature. inactive right now.
SVN revision: 51027
2010-08-12 06:02:15 +00:00
Tom Hacohen d408865797 Evas: textblock - fixed arabic shaping and fixed an issue with persistant paragraph direction (regarding RTL).
SVN revision: 50996
2010-08-11 13:03:24 +00:00
Tom Hacohen af31abca35 Evas: Improved evas_textblock_cursor_range_text_get to return markup text instead of plain text.
SVN revision: 50992
2010-08-11 12:29:20 +00:00
Tom Hacohen 41ebc486dc Evas: Textblock - Sanitized format init and shutdown.
SVN revision: 50991
2010-08-11 11:20:10 +00:00