Commit Graph

876 Commits

Author SHA1 Message Date
Tom Hacohen 632279c2f5 Evas: Fixed compilation without BiDi support.
SVN revision: 50934
2010-08-09 16:47:35 +00:00
Tom Hacohen d5e579c2e9 Evas: Redesigned the textblock object.
Sorry, but full documented code will be committed tomorrow, this commit is needed for the API stabilization.
Major changes in this commit:
1. Changed the textblock node system there is now a linked list for the format nodes and a linked list for the text nodes. Format and text nodes point to one anoter in a matter that will be explained in the source file (will be committed tomorrow). Each text node now represents a paragraph and each format node points to a specific location in a text node.
2. Text/Format nodes are now two distinct data types.
3. The concept of nodes is no longer exposed in the API except for the format nodes which are only slightly exposed just to enable users of the API to cycle all the formats in order to find stuff like anchors.
4. Every node has a PS (paragraph separator) format node pointing to it's end, except for the last one which has nothing. Nodes are only broken by PS's.
5. Changed the BiDi functions to work nicely with offsets in big chunks of text.

More is explained in the email with the subject 'Evas Textblock redesign + edje_entry adjustments' that will be sent tomorrow because of technical issues.
For full documentation about this object wait for the next commit.

SVN revision: 50930
2010-08-09 16:24:17 +00:00
Lucas De Marchi 0a4617ae38 FORMATTING
* Remove vim modelines:
 find . -name '*.[chx]' -exec sed -i '/\/\*$/ {N;N;/ \* vim:ts/d}' \{\} \;
 find . -name '*.[chx]' -exec sed -i '/\/[\*\/] *vim:/d' \{\} \;

* Remove leading blank lines:
 find . -name '*.[cxh]' -exec sed -i '/./,$!d'

If you use vim, use this in your .vimrc:
set ts=8 sw=3 sts=8 expandtab cino=>5n-3f0^-2{2(0W1st0



SVN revision: 50816
2010-08-04 16:57:32 +00:00
Carsten Haitzler 9275e5beb2 re-jig native surface stuff to share the same gl image between
multiple instances of the same pixmap.



SVN revision: 50758
2010-08-03 06:09:53 +00:00
Carsten Haitzler c68d77a283 need to add null items for item format things (inserted external item
objects)



SVN revision: 50636
2010-07-29 07:42:30 +00:00
Tom Hacohen a6d428334f Evas: Changing the font engine to work with Eina_Unicode instead of utf8.
Changing textblock and text objects to work with Eina_Unicode instead of utf8 (internally, API remains intact).
Started relying on new fribidi 0.19.2 instead of the old fribidi.
A lot of fixes to the font engine.
Renaming of evas_common_font_utf8_* to evas_common_encoding_utf8_*
This relies on new Eina changes and types: Eina_Unicode, Eina_UStrbuf and Eina_UStringshare.

SVN revision: 50595
2010-07-28 12:00:41 +00:00
Christopher Michael 39adb32e71 Use eina_stringshare_replace rather than several _del & _add calls
(tested w/ no apparent adverse affects).

Fix some formatting.



SVN revision: 50307
2010-07-17 19:49:16 +00:00
Lucas De Marchi 2a84379ba9 Remove unneeded code with notnull.cocci script
The notnull.cocci script from Coccinelle finds places where you check if a
variable is NULL, but it's known not to be NULL. The check can be safely
removed. For example, this code would be caught by notnull:

if (!var) return;
if (var && var->fld) { ... }

It's needless to check again if var is not NULL because if it's in fact NULL,
it would have returned on the previous "if". This commit removes all the
trivial places where this pattern happens. Another patch will be generated for
the more complex cases.


SVN revision: 50241
2010-07-14 02:05:47 +00:00
Jonathan Atton d97c0b0a9a the min size of the box is the sum of the items min size
SVN revision: 50156
2010-07-09 11:17:35 +00:00
Lucas De Marchi e502081fa3 Use macro to get container of inlist
Revove warning.



SVN revision: 49959
2010-07-01 03:12:14 +00:00
Brett Nash ee5ef216ef Suppress warnign about dropping const (AKA: C is stupid)
SVN revision: 49914
2010-06-28 05:14:36 +00:00
Bruno Dilly 40db7f8c61 Add 3 missing symbols to escape strings
SVN revision: 49794
2010-06-22 14:01:50 +00:00
Carsten Haitzler a08e99cd82 warnings--
SVN revision: 49765
2010-06-20 06:32:05 +00:00
Carsten Haitzler 0d5088488e clean up smart cb descriptions on del.
SVN revision: 49438
2010-06-04 04:07:12 +00:00
Bruno Dilly 930fdce0ee small fix in evas html escape table
SVN revision: 49240
2010-05-27 21:03:53 +00:00
Carsten Haitzler cec0aa3771 segv there in frame queue code. fix.
SVN revision: 49107
2010-05-21 16:50:25 +00:00
Carsten Haitzler eaad0eb095 big patch from Samsung SAIT (Advanced research group) for async multi-frame
rendering. to turn on:

1.
configure with --enable-async-render
2.
export EVAS_RENDER_MODE=non-blocking
  
presto. necessitates some api swizzling (thus the expedite. ecore etc. changes)

the kind of results you get on a desktop:

http://www.rasterman.com/files/evas-async-vs-none.html



SVN revision: 49087
2010-05-21 07:10:45 +00:00
Sebastian Dransfeld 2c74596411 evas: Add return value
SVN revision: 48820
2010-05-13 20:24:06 +00:00
Sebastian Dransfeld ab7e6fe3f8 evas: remove unused variables
SVN revision: 48819
2010-05-13 20:23:49 +00:00
Carsten Haitzler db0679543f oops - call params in right order.
SVN revision: 48627
2010-05-05 16:17:23 +00:00
Cedric BAIL 7bcd87e551 * evas: bring back object cache.
SVN revision: 48620
2010-05-05 11:36:21 +00:00
Carsten Haitzler 7041c968bf oooh you'd love to know why this is here.. won't you? :)
SVN revision: 48613
2010-05-04 15:58:10 +00:00
Carsten Haitzler 15b7e11198 hmm - i don't know how this happened, but - metrics were not being done
right. fixed now. i wonder why. this used to be right at some point.



SVN revision: 48503
2010-05-01 14:08:14 +00:00
Carsten Haitzler c10f1e9c5d fix map rendering of text objects.
SVN revision: 48501
2010-05-01 13:27:05 +00:00
Carsten Haitzler 64c051e7c2 fix map render bug.
SVN revision: 48462
2010-04-30 08:24:55 +00:00
Cedric BAIL a52773a8ab * evas: specify Evas canvas for Evas_Object.
SVN revision: 48428
2010-04-29 17:35:47 +00:00
Carsten Haitzler 8ea3844c85 fix fill render bug cedric reported. :)
SVN revision: 48393
2010-04-28 14:38:46 +00:00
Carsten Haitzler a0b2235a44 add offset in transform of coords. missed that.
SVN revision: 48372
2010-04-28 01:52:58 +00:00
Cedric BAIL fc44f0f050 * evas: cleanup white space.
SVN revision: 48363
2010-04-27 13:43:10 +00:00
Carsten Haitzler ac70bae562 correct ascent
SVN revision: 48309
2010-04-25 13:11:44 +00:00
Carsten Haitzler fbbd6ffef1 and make items work properly.
SVN revision: 48306
2010-04-25 13:05:45 +00:00
Carsten Haitzler 1112f418dc add api to get the item geometry itself. needed to put somethign there.
SVN revision: 48305
2010-04-25 12:40:26 +00:00
Carsten Haitzler d37f08a616 adding... items... oooooh what are these items? invisible sized blobs treated
like characters/words for wrapping. intended for use in sticking inlined
content - like icons, images etc.



SVN revision: 48301
2010-04-25 11:35:41 +00:00
Gustavo Sverzut Barbieri 9b5981a52e Get a table element with its coordinates.
By: Hugo Camboulive <hugo.camboulive@gmail.com>


SVN revision: 48087
2010-04-17 20:27:53 +00:00
Carsten Haitzler d2124c5b46 remove useless eol
SVN revision: 48075
2010-04-17 16:19:11 +00:00
Carsten Haitzler afe65d7c0a add ability to dump engine coontents (if engine supports it). this means
unload images it has loaded from disk, unload fonts, and more. dump dump dump!



SVN revision: 47947
2010-04-12 08:23:53 +00:00
Gustavo Sverzut Barbieri 8ada2841d0 convert annoying debug into eina log so it is disabled by default.
SVN revision: 47651
2010-04-01 16:03:23 +00:00
Gustavo Sverzut Barbieri ad0679e050 do not operate if there is no callbacks (unsetting them).
SVN revision: 47650
2010-04-01 15:56:06 +00:00
Carsten Haitzler 54f089964c maybe fix rui's stuff?
SVN revision: 47616
2010-03-31 00:39:10 +00:00
Carsten Haitzler 5f309b5d9f actually fix evas event cb leak for good. work ast smart desc leak.
SVN revision: 47552
2010-03-29 05:03:25 +00:00
Carsten Haitzler 46e1d8a866 fix small leak - cannvas callbacks not cleaned.
SVN revision: 47551
2010-03-29 02:40:49 +00:00
Brett Nash d267122d9e Always mark object as dirty after a map_change.
Otherwise doesn't handle UV or colour changes.  It's a bit heavy handed, but
it's a lot easier.


SVN revision: 47526
2010-03-28 05:40:42 +00:00
Gustavo Lima Chaves 79449a8226 Off-by-one at debug?
SVN revision: 47492
2010-03-26 14:46:01 +00:00
Carsten Haitzler 79a950519d fix insert markup. (prepend)
SVN revision: 47464
2010-03-26 04:21:16 +00:00
Carsten Haitzler 37743d378e entry bug--
SVN revision: 47463
2010-03-26 03:57:22 +00:00
Iván Briano c1b67b4798 Add function to check smart type based on pointer alone. Useful when we have access to the class used to create the object.
SVN revision: 47413
2010-03-24 08:43:39 +00:00
Iván Briano 9570d2124c Couple of things for Smart Objects
* Subclass macro now gets a different function to retrieve the parent class,
   which should return a pointer to a fully set up class, instead of filling
   up one passed to it.
 * Add this functions and use them in SmartClippedObject and Box
 * New function to check the type of a Smart object all over its hierarchy tree


SVN revision: 47379
2010-03-23 01:22:20 +00:00
Carsten Haitzler 17764a850d fix bug when rendering not getting updates!
:)



SVN revision: 47365
2010-03-22 07:40:10 +00:00
Carsten Haitzler 264c2d5b1d fix event count issue with feeding hold from callback
SVN revision: 47364
2010-03-22 07:04:04 +00:00
Carsten Haitzler f2b1114521 actually... do canvas free.
SVN revision: 47362
2010-03-22 05:33:46 +00:00
Gustavo Sverzut Barbieri 35ca641963 remove bogus doxygen command.
SVN revision: 47309
2010-03-18 04:58:31 +00:00
Gustavo Sverzut Barbieri fd2659c572 evas: mega documentation improving commit.
This commit moves Evas.h contents a lot, but it should not change code
(some conts were added, some function attributes were changed).

The purpose of such is to define the order that doxygen show modules
in its documentation.

I also splitted documentation a bit more, and added a src/examples to
list useful example code. Right now it is just a pure-evas
draw-and-save using buffer engine.

NOTE: there is lots to document, and the @todo list is quite long but
      I guess lots of things there were done already. Raster, could
      you review this list?




SVN revision: 47308
2010-03-18 04:57:40 +00:00
Cedric BAIL a859e60140 * evas: Make evas_object_move on Evas_Object_Polygon work.
TODO: Make evas_object_resize work also.


SVN revision: 47291
2010-03-16 13:23:37 +00:00
Carsten Haitzler 8d76bbaffb fix sync issue with override-redirect windows
SVN revision: 47287
2010-03-16 12:30:55 +00:00
Carsten Haitzler c687663f14 more bug--
SVN revision: 47274
2010-03-16 04:09:00 +00:00
Carsten Haitzler 541d00ea16 crash--
SVN revision: 47270
2010-03-16 01:35:05 +00:00
Carsten Haitzler b86174f063 bug--
SVN revision: 47266
2010-03-16 00:56:11 +00:00
Carsten Haitzler 3033a7492a wow - killed 2 bugs with 1 stone!
:)



SVN revision: 47229
2010-03-15 02:34:11 +00:00
Carsten Haitzler 09279e3b3a segv--
SVN revision: 47207
2010-03-14 14:41:50 +00:00
Carsten Haitzler eae926c08b another bug--
SVN revision: 47204
2010-03-14 12:58:49 +00:00
Carsten Haitzler 2a78f7724c more entry bug--
SVN revision: 47201
2010-03-14 12:24:42 +00:00
Carsten Haitzler 033322a0c5 inf loop--
SVN revision: 47198
2010-03-14 08:04:49 +00:00
Carsten Haitzler 2527f5f00f fix valgrind complaints within tb - fixes an entry bug too.
SVN revision: 47197
2010-03-14 06:38:58 +00:00
Carsten Haitzler 5e3a5cc696 if cur not pointing to node.
SVN revision: 47196
2010-03-14 03:52:33 +00:00
Carsten Haitzler f8493edc4b printf--
SVN revision: 47174
2010-03-13 13:25:01 +00:00
Carsten Haitzler a8c9ccba77 and fix cursor when entry is empty case. more cases to fix yet.
SVN revision: 47155
2010-03-12 11:15:19 +00:00
Carsten Haitzler 4277c3ea20 ok segv not there.. but behavior not good. now i rememebr why the <br> was
there... :) time to fix this another way.



SVN revision: 47154
2010-03-12 10:49:39 +00:00
Carsten Haitzler aaaefc0b3e fix 1 entry insert issue - also printf debugging for now
SVN revision: 47134
2010-03-11 14:29:25 +00:00
Carsten Haitzler 78eba185ef according to dottedmag - this breaks things... i dndt see them - but.. lets
revert for now. i dont like breaks. :)



SVN revision: 46935
2010-03-07 07:29:26 +00:00
Carsten Haitzler 3f465fc58b alow linesiae to get smaller - from mikhal
SVN revision: 46930
2010-03-07 06:48:48 +00:00
Gustavo Sverzut Barbieri 5463f0c5d3 update text when secundary colors change.
SVN revision: 46924
2010-03-07 04:48:52 +00:00
Carsten Haitzler 10da9b00a3 api for image content hint - nothing uses it yet, but... it will. and does
nothing right now... but that will be able to change. it opens up better
optimisation paths in future.



SVN revision: 46922
2010-03-07 04:19:17 +00:00
Carsten Haitzler abd231ccf0 REVERT!!!! you broke evas build.
evas_object_textblock.c: In function ‘_nodes_next_merge’:
evas_object_textblock.c:380: error: ‘Evas_Object_Textblock_Node’ has no member named ‘len’



SVN revision: 46874
2010-03-04 16:22:28 +00:00
Mikhail Gusarov a4157cbc2a Insert more comments into _format and simplify if() logic as we go
SVN revision: 46873
2010-03-04 15:51:30 +00:00
Mikhail Gusarov a5a07377f6 evas_textblock: Make maxascent/maxdescent variables local.
They are used in single function, so don't keep them in structure.
As a side-effect rework _layout_line_advance for better readability.

SVN revision: 46872
2010-03-04 15:02:10 +00:00
Mikhail Gusarov 4d49bef2fd Evas_Textblock: store 'cursor' in the 'cursors' list to ease cursors handling
Some copy-pasted code removed as a result.

SVN revision: 46871
2010-03-04 15:02:02 +00:00
Mikhail Gusarov cf68311687 evas_textblock: Get rid of code duplication in _nodes_adjacent_merge
SVN revision: 46870
2010-03-04 15:01:51 +00:00
Cedric BAIL d790cbfd00 * evas: Now an object will only receive once the same event.
Previously, due to propagation to parent, an event could have
	been received more than once by an object. This triggered
	strange behaviour in edje for example where you could receive
	mouse,down,1 signal many time for one swallowed object.

	This patch is a fix for that problem, I hope it doesn't break
	anything (e17 and elementary_test run fine here, but report
	any break related to events please).


SVN revision: 46869
2010-03-04 14:48:21 +00:00
Cedric BAIL f880806ff2 * evas: Fix update of textblock when style change.
SVN revision: 46786
2010-03-02 14:53:27 +00:00
Mikhail Gusarov 3e0ce16056 Document evas_object_textblock_replace_char_{get,set}
SVN revision: 46785
2010-03-02 14:00:45 +00:00
Carsten Haitzler 0c17cdc62c dont need itt here either. llvm shhh
SVN revision: 46771
2010-03-02 03:19:00 +00:00
Carsten Haitzler c7d15e868a hmm llvm complaining -b ut again - i think its bogus. i just added an init of
count to 0 just in case thats what was tripping it up (as it didnt accoutn
for the for loop)



SVN revision: 46766
2010-03-02 02:25:33 +00:00
Carsten Haitzler f2f8e579b7 leak--
SVN revision: 46698
2010-03-01 14:50:56 +00:00
Carsten Haitzler d0551b44e4 eek - map event adjus gone wrong. fix!
SVN revision: 46581
2010-02-27 15:12:54 +00:00
Gustavo Sverzut Barbieri 9c3af651ba simplify and optimize parsing of percentage and float values.
Use strtod() and avoid couple of walks. Of course the walks were quite
small and it will not bring noticeable improvements, but code is
smaller and easier to read, so why not?



SVN revision: 46530
2010-02-26 22:51:07 +00:00
Gustavo Sverzut Barbieri 62301bc16d minor but easy speedups for tag processing.
keep tag and replacement size, compare it before doing strcmp() and
return the size so further calculations use it (eina_strbuf_append()
-> eina_strbuf_append_length())



SVN revision: 46529
2010-02-26 22:32:07 +00:00
Gustavo Sverzut Barbieri 3a11fbe02c use eina_strbuf faster variants whenever possible.
call me your bitch, call me your duplicated code, call me your complex code!



SVN revision: 46528
2010-02-26 22:03:25 +00:00
Cedric BAIL bb8ede02af * evas: Always redraw Textblock on style change.
SVN revision: 46469
2010-02-25 16:31:00 +00:00
Carsten Haitzler a4b6192e7f border_scale ... possible++
SVN revision: 46340
2010-02-21 06:21:15 +00:00
Gustavo Sverzut Barbieri e133d2f300 API break: proper Canvas events callback.
Canvas was (ab)using the same callback signature as Objects, so you
always got a confusing NULL parameter.

Just clean it up to be Evas_Object_Event_Cb and Evas_Event_Cb, each
with its own signature.



SVN revision: 46206
2010-02-16 12:59:37 +00:00
Sebastian Dransfeld 5847c6f245 string_remove -> string_steal
Better naming

SVN revision: 46028
2010-02-09 21:06:27 +00:00
Sebastian Dransfeld 26ddf06980 Switch internal strbuf to eina strbuf
SVN revision: 45944
2010-02-06 20:41:53 +00:00
Carsten Haitzler 327dbc9a72 small fix for over-zealous limiting of draws - use clip regions instead.
SVN revision: 45861
2010-02-04 07:41:07 +00:00
Carsten Haitzler 1dedddf95d big speedups for scrolling and drawing big textblock (once they are
formatted) as it will skip (relatively quickly0 draws outside the canvas
viewport. this could become quicker with a fask line-skip table to specific
coordinates, but for now, it's a
LOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOT
better. like going from 1fps to 60fps+



SVN revision: 45836
2010-02-03 15:47:13 +00:00
Carsten Haitzler c0baeaeb68 1. fix fcfini issue i hit - yes . things may look like they leak in valgrind
- they dont. in reality.
2. major text rendeering speedups. up to 41% in textblock intl, 33% in
textblock basic, 12-20$ in other text rendering tests. generic eina hash's
are just tooo slow for what we are doing there. specialised "Fash"
blocked-array.
3. still LOTS of optimisations left.



SVN revision: 45829
2010-02-03 11:18:00 +00:00
Iván Briano 27eccf0332 When a clipper is no more, redraw the portion of the canvas it takes.
SVN revision: 45781
2010-02-01 19:50:01 +00:00
Carsten Haitzler f35fa585c4 add 3 things
1. the concept of callbacks for a canvas as a whole. add/ del/ del_full these
2. focus in+out events for the canvas as a whole - can help solve some issues
with inoput methods + ecore-imf + entries (like edje_entry)
3. add callabcks to be called before/after flush of display.



SVN revision: 45761
2010-02-01 04:26:55 +00:00
Vincent Torri 20d5a675db * undef close() and open() in evas_module also for mingw
* init Evil in eina as it uses fcntl() with the winsock2 library
 * fix compilation of evas_cache_image.c with mingw
 * formatting


SVN revision: 45724
2010-01-30 00:09:29 +00:00
Boris Faure b2f665d0b2 evas: remove useless include. patch by vtorry
SVN revision: 45660
2010-01-28 12:38:21 +00:00
Carsten Haitzler c612e20b40 move fastpath where it should be
SVN revision: 45623
2010-01-27 06:49:21 +00:00