Commit Graph

374 Commits

Author SHA1 Message Date
Julien Danjou e880f7c11b taglist: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:09:00 +02:00
Julien Danjou 4c133bc646 iconbox: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:06:37 +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 f0a01c6131 util: remove useless fuzzy
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:41:26 +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 28830c0dc9 textbox: use tokenize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 13:24:03 +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 7b7af60dcd Use gcc to find places needing a a_tokenize call.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit 8d7f45d76a And more gperf.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit 4d21d0fd98 Use more gperf stuff.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +02:00
Pierre Habouzit f423719bd6 use gperf
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-23 07:41:22 +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
Michael Gehring 9206a60e88 cmake: consolidate version strings 2008-06-22 22:13:06 +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 dc6373488f wipe elements overwritten by a splice
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 22:09:19 +02:00
Pierre Habouzit 3862a626c2 fix typo
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 18:58:52 +02:00
Julien Danjou 901d8db5b6 buffer: add various code documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-22 18:43:04 +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 37d69b8dcc markup substitutions enhancements.
Do not preemptively allocate a g_markup_escape_text for substitutions,
just remember what we want to substitute markup with, and substitute it in
the final buffer efficiently.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:58:56 +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 c3e01fdd43 Add buffer_add_xmlescaped, and malloc--
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 16:02:13 +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
Pierre Habouzit e25a50774b Add extensible buffers to awesome.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 15:04:09 +02:00
Pierre Habouzit 848a0b1987 add {un,}likely macros
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:58:37 +02:00
Pierre Habouzit ea646e7077 Make refcounting safer.
put *item to NULL on unref, as we cannot know if the pointer is valid
after an unref, so just segfault rather than hide a problem.

Also return *item on ref() it allow short versions like:
  foo_list_push(&list, foo_ref(&elem));
which is kind of readable _and_ handy.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:22:44 +02:00
Pierre Habouzit 2a5014383d No need to copy the parser each time it's allocated.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 14:22:44 +02:00
Pierre Habouzit f2fd90655e Add a simple array generic type.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 13:52:26 +02:00
Pierre Habouzit f055e4a13b Add p_grow.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-22 13:30:39 +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
Julien Danjou 0fdc03faa4 util: rename eprint() to fatal()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 09:45:08 +02:00
Julien Danjou 5773f5eddb util: remove useless compute_new_value_from_arg()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-19 09:43:08 +02:00
Julien Danjou 1a31d49b3d swindow: do not resize if nothing to do
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 13:50:50 +02: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 3555e89c1c swindow: only send one event for moveresize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:44:33 +02:00
Pierre Habouzit a4953d13d5 Fix a couple of warnings.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-15 23:58:51 +02:00
Julien Danjou 67de549992 xembed: simplify
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 20:30:55 +02:00
Julien Danjou 6f9d196e67 systray: check for embedder window on startup
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 23:39:12 +02:00
Julien Danjou e5e379656a systray: import widget
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 18:12:16 +02:00
Julien Danjou 477c6eb4a1 xutil: support NULL as atom cache
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 16:59:31 +02:00
Julien Danjou ce08d9769f xutil: fix potential leak
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-14 08:23:16 +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 3d8613daf4 Fix comments typos
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-12 13:42:39 +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
Michael Gehring 59c04890fc [cleanup] random doxygen fixes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 17:13:09 +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 4f0dbdabb0 [xutil] Move cursor creation to xutil
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 10:08:44 +02:00
Michael Gehring 8ab1831ed6 [mouse] Use different cursors for vert./horiz. resize
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 09:28:11 +02:00
Julien Danjou 6d89565c8e [mouse] Use different cursors for corners
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-07 16:38:33 +02:00
Julien Danjou 8fdc1d9608 [version] Typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 20:26:47 +02:00
Julien Danjou 05ef68a4c4 [refcount] Check for pointer existence
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:14:08 +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
Julien Danjou 1dbea735b3 [list] Remove useless DO_SLIST_UNREF
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:53:59 +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 e39bb8eac6 [markup] Stop recomputing len, use slen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-30 07:52:29 +02:00
Julien Danjou eaf38a6a69 [xutil] Add list_attach_after() and use it for cache atom
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 14:24:33 +02:00
Julien Danjou 2a4971b725 [xutil] Fix strdup() usage
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 14:15:03 +02:00
Julien Danjou fda025a591 [statusbar] Add fake transparency
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 13:01:09 +02:00
Julien Danjou 9e2ff3f893 [util] Rewrite a_strndup()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-29 09:45:10 +02:00
Julien Danjou 83470a99e8 [xutil] Fix typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 10:15:58 +02:00
Julien Danjou 7fc41ca7cf [xutil] Fix typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 07:31:09 +02:00
Julien Danjou 1a3d59ddfa [xutil] Add support to mouse button 8 and 9
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 07:27:12 +02:00
Alex Cornejo 710c457f08 Remove old confuse structures and include.
I noticed the new version of awesome does not (or should not) depend
on libconfuse, however there were some unused headers and structures
that needed to be removed in order to compile without having
libconfuse.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-26 18:21:20 +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
Julien Danjou e710cff383 [xscreen] Add some documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 22:31:08 +02:00
Julien Danjou c468d83059 [draw] Fix compilation errors with Imlib2
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 17:18:58 +02:00
Julien Danjou ff8603110a [util] Add name_func_rlookup()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 16:53:37 +02:00
Julien Danjou a04417494b [mouse] Rename Button to button_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 15:12:01 +02:00
Julien Danjou b3f8464800 [draw] Make sure that font is not NULL before freeing
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-21 17:02:22 +02:00
Julien Danjou 680944d583 [build] Use autoheader & config.h
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 19:55:37 +02:00
Julien Danjou 1f046b3c9f [everything] Switch from libconfuse to Lua
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 18:01:15 +02:00
Julien Danjou 61d552a860 [draw] Inline draw_context_delete() and check that it's != NULL
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-14 15:22:31 +02:00
Julien Danjou e5ed2f2f1c [swindow] Permit to delete NULL swindow
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-13 18:56:33 +02:00
Julien Danjou e80e6a73c5 [draw] Remove useless default_screen
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-13 17:42:05 +02:00
Julien Danjou f824e383c9 [markup] Check that str is not NULL
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-11 16:23:05 +02:00
Arnaud Fontaine 162b8a690c [all] Implement an atom cache in xutil as an ordered linked-list 2008-05-11 01:10:37 +02:00
Julien Danjou 6a06e44461 [markup] Check for error before warning
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-10 10:37:12 +02:00
Julien Danjou c3e063d55e [config] Use a string array as args for uicb
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-04 12:47:16 +02:00
Julien Danjou f42f75468c [swindow] Add border manipulation function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 15:17:46 +02:00
Julien Danjou 0e1747587c [swindow] Store border width
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +02:00
Julien Danjou c57435c96d [util] Add a_strtobool() function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:35 +02:00