Commit Graph

148 Commits

Author SHA1 Message Date
Julien Danjou 48111308a0 draw: add draw_align_tostr()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 16:29:50 +02:00
Julien Danjou 4e2e8a3653 draw: len is mandatory
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:05:00 +02:00
Julien Danjou 9b74cdbc0a draw: iso2utf now gets len as arg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 14:44:19 +02:00
Julien Danjou 35e948f53b draw: xcolor_t store color name
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 13:30:17 +02:00
Julien Danjou 0fddca87c3 draw: stop leaking image on double parsing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 10:08:22 +02:00
Julien Danjou 0012b8dfc0 draw: honor bg_resize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:49:16 +02:00
Julien Danjou 7dbd06c8ca draw: markup bg image do not change the size
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:49:05 +02:00
Julien Danjou 68f0eda193 iconbox: remove
This can be replaced by textbox.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 16:37:16 +02:00
Pierre Habouzit b19aace542 Fix draw_align_fromstr calls.
Note that it's undefined to have side effects on an argument and pass this
argument again to another function.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-24 22:40:34 +02:00
Julien Danjou a055634d4e draw: use len param in draw_align_fromstr()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-24 20:34:02 +02:00
Julien Danjou fdcc507329 draw: add resize for bg
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:07:47 +02:00
Julien Danjou 9caa9fc96f draw: add background alignment
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 18:01:15 +02:00
Julien Danjou 236ccc165c placement: fix smart
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 17:30:35 +02:00
Pierre Habouzit 3116c0d381 Add draw_parser_data_{init,wipe}.
Use it everywhere needed instead of wrong p_clear's, this fixes memory
leaks.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 15:23:49 +02:00
Julien Danjou ab5119732d use more tokenizer, with len
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:01:33 +02:00
Julien Danjou 7803225553 draw: use tokenize() in markup parsing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:39:47 +02:00
Julien Danjou 7dd1fa0e0b draw: rename on_event() to on_element()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:32:22 +02:00
Julien Danjou 7aab504350 draw: store parser_data made by extents call
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:09:42 +02:00
Julien Danjou 00b119c1ac draw: remove draw_get_image_size()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 12:44:01 +02:00
Pierre Habouzit c2df807ede Use gperf to tokenize some strings.
This makes the code way more readable, and also avoids a lot of strcmps.

Use it for draw_align_get_from_str as a proof of concept.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Julien Danjou 46f03fd6a6 area_t: make it smaller, use arrays instead of lists.
Make area_t smaller so that it fits in an uint64_t using 4 {u,}int16_t's
for it. Note that xcb uses the very same structure, so we aren't loosing
any information while remaining very small.

This is better to use arrays in term of:
* memory access when iterating over area_t's;
* allocation because area_t's have no *next/*prev members anymore, which
  makes it a tiny structure (8 octets);
* allocation because we allocate area_t's by vector of'em rather than one
  by one.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 22:09:48 +02:00
Pierre Habouzit b4b381e947 Finish markup parsing rewrite to avoid mallocs.
For that matter, use elements as a filter for elements we care about, and
let the hook implement whatever it needs without duplicating everything.

The resulting algorithm is still O(n²) where n is the number of filtered
elements (3 at most right now), which isn't bad if we don't need to get
too many elements, but at least it's not quadratic in the number of
attributes anymore.

Speedup improvements could be done using gperf btw.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 17:45:45 +02:00
Pierre Habouzit 943e2035fa Rework the markup_parser_* allocation API.
We have a stack, don't be ashamed to use it.

Instead of:

    foo_t *foo;

    foo = foo_new();
    /* work with foo */
    foo_delete(&foo);

It's way better to:

    foo_t foo;

    foo_init(&foo);
    /* work with &foo */
    foo_wipe(&foo);

Remember: more mallocs == more fragmentation.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:17:12 +02:00
Pierre Habouzit 0ad600ef0a And use a buffer in the drawing stuff.
So that we don't stupidly call even more strlen's.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:27:06 +02:00
Pierre Habouzit 3fb0b5127e Remove lots and lots of useless mallocs.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:20:55 +02:00
Pierre Habouzit 5c601dfd19 Use extensible buffers in markup parsing.
This should avoid quite a few malloc calls.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:12:42 +02:00
Byron Clark 7106c9bcad Stop spamming the log when there is no image present.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-22 09:46:58 +02:00
Arnaud Fontaine 452b89d6ec Always use unchecked xcb functions 2008-06-21 19:56:51 +09:00
Arnaud Fontaine b9e1ec69d0 Replace xcb_aux_get_screen() by a safer function 2008-06-17 17:14:00 +02:00
Julien Danjou ff6a814770 draw: markup now supports image as background
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 09:37:19 +02:00
Julien Danjou 114a97ee87 draw: remove useless draw_get_image_size()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 09:26:30 +02:00
Julien Danjou 64c4202519 draw: remove draw_image_from_file()
This should speed up tasklist image drawing.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 09:21:26 +02:00
Julien Danjou 54f2ebee96 draw: switch GTK dependency to GDK and GdkPixbuf
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 23:24:07 +02:00
Michael Gehring b16493d878 random updates/fixes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 20:33:47 +02:00
Julien Danjou 12d4c66771 draw: make draw_setup_cairo_color_source() alpha aware
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-12 15:24:27 +02:00
Julien Danjou 659f9bd048 draw: simplify draw_graph()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-12 15:21:25 +02:00
Julien Danjou aa6bfc560a [draw] Do inline UTF-8 conversion
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 07:32:35 +02:00
Julien Danjou 8776b3adb5 [draw] Rename var
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 10:58:48 +02:00
Julien Danjou 2742318f16 [common] Use pixmap instead of drawable type
It's just more clear.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 16:13:41 +02:00
Michael Gehring f95889f2ad unify draw_image_from_file
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 08:32:50 +02:00
Michael Gehring 88a0e58e79 add draw_image_new, draw_image_delete, draw_image
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 08:32:48 +02:00
Michael Gehring d2f9c6518b rename draw_image to draw_image_from_file
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 08:32:46 +02:00
Michael Gehring c20a2cb416 [draw] fix --with-imlib2 build
when configured with imlib2 draw.c fails to compile (at least on arch
linux), as it cannot find the gtk/gdk-pixbuf headers. The #includes are
guarded by #ifdef HAVE_IMLIB2, but as config.h isn't included, this is
never defined.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:27:04 +02:00
Julien Danjou d8a5b43f26 [widgets] Make draw functions statusbar-less dependents
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-02 12:18:17 +02:00
Julien Danjou 7cff3567e3 [statusbar] Fix left and right statusbars alpha support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 18:09:54 +02:00
Julien Danjou 4f79c53f4c [draw] Add alpha channel support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 13:08:07 +02:00
Julien Danjou 066bfaacc8 [draw] Remove multiple strlen() calls
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:35:57 +02:00
Julien Danjou c332971b21 [draw] Rename draw_color_new() to xcolor_new()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:34:38 +02:00
Julien Danjou 407972eb00 [xutil] Move xcolor_t into draw
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 12:33:08 +02:00
Julien Danjou be108acc32 [util] warn() and eprint() now print \n
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 22:56:05 +02:00