Commit Graph

289 Commits

Author SHA1 Message Date
Brett Nash 9eaea94252 Evas: Filters:
More work, proudly supported by Samsung.  Filters!

So now you can apply a whole host of cheesy visual effects to objects at
runtime.  This is the first commit, there are a couple of more to come as I
tweak the filters, and fix blur with GL[1].

Please direct bugs to me nash@nash.id.au.

[1] You'd think shaders would be good at this.. but no, generic blur and GL
are like trying to get an apple product to work with Linux.

SVN revision: 58726
2011-04-19 05:47:56 +00:00
Tom Hacohen f5e7165a65 Evas text/textblock: Add setting bidi_delimiter API.
SVN revision: 58669
2011-04-14 15:34:01 +00:00
Daniel Juyung Seo 50e748b8cd Evas Evas.h: Removed trailing whitespaces.
SVN revision: 58587
2011-04-12 09:25:12 +00:00
Carsten Haitzler 5bc7805b28 many more shadow options (8 shadow directions now)
SVN revision: 58546
2011-04-11 12:05:59 +00:00
Carsten Haitzler 09069b6172 doxy move to header.
SVN revision: 58477
2011-04-08 07:26:20 +00:00
Carsten Haitzler 296739cd7d doxy to h.
SVN revision: 58473
2011-04-08 06:11:31 +00:00
Daniel Juyung Seo e1abab20f3 Evas Evas.h: Removed trailing whitespaces.
SVN revision: 58314
2011-04-04 08:10:06 +00:00
Carsten Haitzler 12d1b2d24d flesh out valign prop to have real api. untested currently.
SVN revision: 58199
2011-03-30 10:31:29 +00:00
Carsten Haitzler 3d26ace1c7 evas: add memory image loader api. ask not how it works or i shall
disembowel you. ktnxbi.



SVN revision: 57736
2011-03-14 10:53:37 +00:00
Carsten Haitzler b893963ee8 i cannot believe evas has lasted this long without this. obj ref &
unref.



SVN revision: 57582
2011-03-08 12:23:37 +00:00
Tom Hacohen 56f8891073 Evas textblock: Added a mode for setting newline behavior.
Can either be normal, or PS mode which means newline character behaves as a PS.

SVN revision: 57019
2011-02-14 14:17:12 +00:00
Brett Nash 290e6c430d Remove the old 'proxy' functions.
Now I know git-svn decided to not merge everything.
Anyway the proxy functions are not part of images.  Use them there.

SVN revision: 56884
2011-02-09 21:38:57 +00:00
Brett Nash 9c927de649 Add evas_object_image_source_get, and fix NOTNULL() args to _source_set
Source set of 'NULL' is the equivelent of source_unset (actually source_unset
is an alias to source_set with a second NULL arg.

And I still want to know why these are in my tree, but not upstream.

SVN revision: 56881
2011-02-09 21:36:10 +00:00
Brett Nash 1415635f94 Add header for image proxy.
Not sure why this didn't merge then either.
No changelog since it's adding a missing header.

SVN revision: 56880
2011-02-09 21:36:07 +00:00
Christopher Michael 0bee0601e1 Evas: Fixed a few 'implicit declaration' warnings.
Add missing evas_object_image_source functions.
      (was giving nasty 'implicit declarations' prior to this change)
    Add UNUSED to evas_common_map_rgba for npoints variable
      (wasn't used in that function)
    Fixed a little formatting in evas_object_main.c
    Add UNUSED to the eng_image_map_draw function of the gl_x11 engine.
      (npoints variable not used there)
    Fixed a little formatting in gl_x11 engine.



SVN revision: 56869
2011-02-09 18:39:54 +00:00
Mike Blumenkrantz 1d0e9bf198 remove some commas
SVN revision: 56778
2011-02-07 00:20:00 +00:00
Brett Nash aa59164001 Support for Proxy Objects (and others)
Proxy objects allow you to use another image as the source of an image.
Essentially allowing the same object to be rendered multiple times.  One
object (the source) is the original, each additional 'copy' is an image with
evas_object_image_source_set.

This is complete.

Also add partially working arbitrary maps, and arbitrary clipping.
Unfortunately both have some issues yet to be resolved (waiting on the next
feature to get merged together).

SVN revision: 56777
2011-02-06 23:52:17 +00:00
Brett Nash 37ea40c0cc Add the extra proxy convenience functions.
SVN revision: 56773
2011-02-06 23:51:34 +00:00
Brett Nash 04f6e8f789 Proxy Object framework.
Doesn't do anything useful yet.  But it's a start.

SVN revision: 56760
2011-02-06 23:49:44 +00:00
Tom Hacohen 36df64bbeb Evas table: Added "mirrored mode" to table. This is important for ui mirroring and let users do cooler stuff.
SVN revision: 56633
2011-02-01 12:50:59 +00:00
Tom Hacohen e82371fd03 Evas text: Added API to query text object's text direction.
SVN revision: 56534
2011-01-30 10:45:00 +00:00
Tom Hacohen 35847d3c88 Evas textblock: Added evas_textblock_cursor_pen_geometry_get.
SVN revision: 56433
2011-01-30 10:34:13 +00:00
Carsten Haitzler 19d4f8affc add unload callback - missing event problem that makes it impossible
for client apps that tried to be efficient with preloads to adapt
when the preloaded data is taken away from them. this allows it.
missing callback api bug fix.



SVN revision: 55745
2010-12-24 16:04:27 +00:00
Carsten Haitzler 640a4030f3 change native api to allow for other types of native data like texture
id's, fbo's etc. too - at least it's versioned now.



SVN revision: 55315
2010-12-06 07:09:51 +00:00
helen 750d360c97 evas_object_image_file_set can receives null to unset
Passing null to the second parameter is the only way to unset
the file, so it should not have EINA_ARG_NONNULL to the file parameter

SVN revision: 54998
2010-11-25 19:41:59 +00:00
Carsten Haitzler 2b6b563f62 add scroll flag in addition to hold flag.
SVN revision: 54355
2010-11-09 05:23:34 +00:00
Christopher Michael 5ee58fab59 Fix some misspellings.
SVN revision: 52990
2010-10-03 01:44:21 +00:00
Vincent Torri 98247ac8dc formatting
SVN revision: 52714
2010-09-25 04:40:54 +00:00
Carsten Haitzler ef71a85f2a fix error enum too
SVN revision: 52588
2010-09-22 13:25:17 +00:00
Carsten Haitzler fea985b760 fmting.
SVN revision: 52586
2010-09-22 12:02:35 +00:00
Carsten Haitzler 80e131a443 fmting
SVN revision: 52585
2010-09-22 11:57:19 +00:00
Carsten Haitzler c4d77fea71 docs++
SVN revision: 52584
2010-09-22 11:29:42 +00:00
Carsten Haitzler ea8175d746 fmormatting cleanups
SVN revision: 52583
2010-09-22 11:28:31 +00:00
Carsten Haitzler dddab37368 fmting
SVN revision: 52581
2010-09-22 11:14:25 +00:00
Carsten Haitzler 629916a4ee formatting
SVN revision: 52579
2010-09-22 11:04:32 +00:00
Carsten Haitzler c5977a45dd formatting.
SVN revision: 52578
2010-09-22 11:03:28 +00:00
Carsten Haitzler 2dce035395 warning--, formatting.
SVN revision: 52577
2010-09-22 11:02:19 +00:00
Carsten Haitzler fa813fb8f2 size_t -> int.
really - i prefer it and if we hit the 2gb limit of a signed int for
bytes added to a textblock... thats the day we will need evas 2 :)



SVN revision: 52576
2010-09-22 10:58:44 +00:00
Carsten Haitzler 21ec26bed3 move some simple #define constants to typedefs. api compatible tho.
SVN revision: 52575
2010-09-22 10:52:54 +00:00
Carsten Haitzler 08b5fe088a fmting
SVN revision: 52572
2010-09-22 09:37:18 +00:00
Carsten Haitzler af7910c47b formatting
SVN revision: 52571
2010-09-22 09:28:23 +00:00
Carsten Haitzler f5acc84e67 int -> bool
SVN revision: 52570
2010-09-22 09:19:31 +00:00
Iván Briano 68f1a20306 Adding callback for box to be called when a child is added or removed.
Also sets the children_changed flag when changing children list.

    by Otavio Pontes <otavio@profusion.mobi>



SVN revision: 52541
2010-09-21 14:04:28 +00:00
Tom Hacohen e8c10dbce7 Evas textblock: Added evas_textblock_node_format_remove_pair to remove formats.
SVN revision: 52484
2010-09-20 09:44:48 +00:00
Gustavo Sverzut Barbieri 19f0eebd27 cleanup: simple clean of "comparison between signed and unsigned errors"
not much to see here, please review but these are simple changes.



SVN revision: 52426
2010-09-18 23:07:31 +00:00
Lucas De Marchi a7fcb37a7f Revert r52345
This function is not needed at all, and as of now it's borken. Coming patches
will properly fix coords on events.



SVN revision: 52398
2010-09-18 06:29:47 +00:00
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
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 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