Commit Graph

194 Commits

Author SHA1 Message Date
Julien Danjou 862fe193ee Rewrite {tag,task}list in Lua.
This removes the C implementation of taglist and tasklist widgets and
use a Lua one.

This works by letting .widgets property of wiboxes to be a table with
table, and setting a special metatable on them which notify awesome on
newindex events, updating wiboxes.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-20 20:06:09 +02:00
Julien Danjou a4224193d8 widget: move widget_{set,get}
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-10-01 17:45:07 +02:00
Julien Danjou 5709435392 wibox: rework, merge titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-26 15:00:42 +02:00
Julien Danjou 0feb7de68e wibox: merge statusbars and titlebars Lua objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 14:34:43 +02:00
Julien Danjou 34fe130307 wibox: merge statusbar and titlebar types
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 44ef511aed screen: store statusbars as array
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou 4193e81fa8 screen: merge with xscreen, remove screens_info
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:56 +02:00
Julien Danjou e871bbfa18 widget: add support for mouse enter and leave events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:54 +02:00
Julien Danjou 3b895d84ed mouse: rework mouse buttons API, support release events
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-09-22 11:11:53 +02:00
Julien Danjou 8cd4fca6f9 widget: invalidate on visible flag change
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-25 14:19:36 +02:00
Julien Danjou 3fbfd0658a widget: invalidate on visible change
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-21 15:08:56 +02:00
Julien Danjou d261f9a3cc widgets: generic set/get for list
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-19 19:13:46 +02:00
Arnaud Fontaine b655f6348c xutil: rename xutil functions according to the rest of code. 2008-08-11 18:05:35 +02:00
Julien Danjou f28fac6107 widget: optimize cache invalidation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-06 14:24:54 +02:00
Julien Danjou 254a39b6d3 statusbar: handle systray invisibility
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 16:59:54 +02:00
Julien Danjou 86cb01685b widget: call draw() even if it's invisible
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 14:19:29 +02:00
Julien Danjou 380750dd43 widget: check value len of request
This avoid copying inexsting drawable when on background is set.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-08-05 11:26:06 +02:00
Julien Danjou 063bf2083d titlebar: use need_update system (like statusbar, …)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-31 14:11:07 +02:00
Julien Danjou 3db9f29453 appicon: new widget, used in titlebar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-29 16:51:21 +02:00
Julien Danjou 80b79717ba various documentation update for _index()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-28 16:03:38 +02:00
Julien Danjou 3f46ec2152 tasklist: use a callback for label
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-09 12:12:52 +02:00
Pierre Habouzit 924078c898 Streamline xcolor_t.
Do not have a ->name char * field, but a char[32] instead.  This isn't a
big problem, the longest color in /etc/X11/rgb.txt is 23 chars long, and
if it becomes a problem one day, one could just strip the name and
generate an hexadecimal representation on the fly instead. But allocating
the name is asking for a lot of trouble.

Since we do not allocate anything anymore, just don't allocate anything
anymore at all, it avoids the mess of xcolor_copy/_wipe and fixes a lot of
sleeping bugs (p_dup were used e.g., which is wrong).

Pass xcolor_t *, xcolor_t becomes too big to be passed by value. Add
consts at some places.

xcolor_new allocates nothing, hence is renamed xcolor_init, has xcolor_t
as a first argument (OO-style, this is self), and doesn't touch the
structure at all if it returns false, which allow us to skip a lot of
intermediates values.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 10:36:46 +02:00
Julien Danjou b8310ffd38 widget: documente index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-02 10:34:14 +02:00
Julien Danjou 1723cc160a lua: introduce luaA_usemetatable
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 19:25:58 +02:00
Julien Danjou 677d815a03 widget: move name into index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 16:18:32 +02:00
Julien Danjou 5bb431fc4a widgets: don't tokenize twice
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:27:41 +02:00
Julien Danjou b72d5c7951 widget: visible is now part of index
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-07-01 15:20:42 +02:00
Julien Danjou b584b19104 atoms: add all used atoms
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 18:55:14 +02:00
Julien Danjou 45b0a2df80 lua: replace .new() by __call meth
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 14:11:54 +02:00
Julien Danjou f2d2a10d9b lua: remove luaA_name_init
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-30 13:50:49 +02:00
Pierre Habouzit 1b6543025c Don't be silly and use our metatable rather than duplicating the effort.
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-28 07:56:35 +02:00
Julien Danjou 1c5fc37eef widgets: add newindex support
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-27 12:43:39 +02:00
Pierre Habouzit cde80ab49a Move CLEANMASK to xutil.h, remove useless #Includes
Signed-off-by: Pierre Habouzit <madcoder@debian.org>
2008-06-26 22:47:56 +02:00
Julien Danjou 013b2afe62 remove useless #include
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 18:10:45 +02:00
Julien Danjou 094d0ebc50 widget: new widget index method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 16:35:07 +02:00
Julien Danjou db07fd0362 widget: add missing mouse_remove in index()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-26 15:56:55 +02:00
Julien Danjou db88877587 lua: split getopt_string/getopt_lstring; fix mouse corner
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 17:33:05 +02:00
Julien Danjou d5ed48ffdd widget: use __index to get method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-25 16:37:51 +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 ab5119732d use more tokenizer, with len
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-23 14:01:33 +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
Julien Danjou dc8a309c95 fix comments typo
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 20:00:24 +02:00
Julien Danjou 92f369e3aa lua: userdata_new is now macro
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-18 18:31:35 +02:00
Julien Danjou 3bee2302bf widget: use PIXMAP atom directly
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-17 21:23:38 +02:00
Arnaud Fontaine b9e1ec69d0 Replace xcb_aux_get_screen() by a safer function 2008-06-17 17:14:00 +02:00
Julien Danjou 16646c86ab lua: __eq methods are not macros
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:37:55 +02:00
Julien Danjou 6e36717163 lua: _gc are now macros
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-16 11:31:38 +02:00
Julien Danjou a1a8f608b1 widget: fix documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 21:04:57 +02:00
Julien Danjou 5c50da78be widget: use the right root window
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 16:29:12 +02:00
Julien Danjou 0f7a8f16c6 widget: check background pixmap != 0
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-15 16:14:39 +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 1142c382f7 mouse: make button bindings objects
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-13 15:35:47 +02:00
Michael Gehring 276f5f8849 [doxygen] Add \lvalue and convert existing doc.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-11 07:36:34 +02:00
Michael Gehring 1ca55927f0 [doxygen] Convert Lua documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-10 20:12:51 +02:00
Julien Danjou 1049393840 Revert "Replace tags by workspaces"
This reverts commit 00f966ea04.

Revert "[focus] Fix bogus arguments"
This reverts commit 816b5d16bc.

Revert "[mouse] Fix bug with floating"
This reverts commit 89daa72790.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 21:56:03 +02:00
Julien Danjou 00f966ea04 Replace tags by workspaces
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-09 16:30:46 +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 b3bb0faf36 [widget] Stop using useless screen fct
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-08 10:59:13 +02:00
Julien Danjou 4c41361d6c [lua] Add object as argument to mouse click function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 19:21:21 +02:00
Julien Danjou 98119d5d3f [lua] Check for object validity
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:27:10 +02:00
Julien Danjou 0a44e90cb6 [lua] Fix garbage collectors
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 18:17:47 +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
Julien Danjou 5f2585d82e [screen] s/get_display_area/display_area_get/
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 15:34:11 +02:00
Julien Danjou 80ec848130 [client] Add titlebar_get()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 13:36:13 +02:00
Julien Danjou 35b5afe38c [widget] Move widget_get to statusbar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 13:25:34 +02:00
Julien Danjou aecc3c0e45 [titlebar] Store titlebar inside client
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-04 11:50:21 +02:00
Julien Danjou 1e08a992b8 [titlebar] Rewrote titlebar based on widgets
This is the new titlebar handling code, based on widgets.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 18:41:54 +02:00
Julien Danjou dfea3c3bba [widget] Split out widget rendering
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 16:32:23 +02:00
Julien Danjou 34cd5504a7 [widget] Make button press event statusbar indep
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-06-03 11:40:50 +02:00
Julien Danjou 01fe4e3331 [statusbar] Remove multi-threading code
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-31 16:04:46 +02:00
Julien Danjou 46603a108a [widget] Documentation update.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-28 10:13:27 +02:00
Julien Danjou a0b24c5505 [statusbar] Implement multi-threading per statusbar
More more efficient than before.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-27 11:17:51 +02:00
Julien Danjou bdc8382474 [widget] Fix warning
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 17:39:46 +02:00
Julien Danjou ab62a78884 [widget] Print error on unkown widget type
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 14:08:46 +02:00
Julien Danjou c822a9ccf1 [widget] Rename WidgetConstructor to widget_constructor_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-25 14:07:01 +02:00
Julien Danjou 9d99ff48ae [widget] Add luaA_widget_userdata_new() function
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 19:58:25 +02:00
Julien Danjou 0bbd2d4b3e Rename AwesomeConf to awesome_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-24 08:59:27 +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 ffdb9727b7 [widget] Add a visible attribute to widgets and Lua functions
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 19:29:55 +02:00
Julien Danjou 97956822ee [widget] Add lua function to get/set widget's name.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 16:41:33 +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 ccb2a2db77 [lua] Remove regex matching
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-23 13:17:02 +02:00
Julien Danjou 67598ab859 [widget] Remove useless warn()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 22:36:05 +02:00
Julien Danjou 7d34d0dd85 [dbus/widget] Correctly invalidate statusbars on update
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 20:25:49 +02:00
Julien Danjou 4742463cec [dbus] Fix widget.set() API call
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-20 20:13:44 +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 255d91c711 [statusbar] Separate widget cache inside widets and sbars
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-13 16:48:33 +02:00
Julien Danjou fb1ab46eea [iconbox] Use a_strtobool()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-11 16:20:58 +02:00
Julien Danjou deadca321c [dbus] Implement widget.set method
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
Julien Danjou 6f6235acd5 [widget] Documentation fix
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:06 +02:00
marco candrian 8fa33698d2 replace 'command' with 'new_value'
Describes it somebit better

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:04 +02:00
Julien Danjou a73b07f5d3 [statusbar] Rename Statusbar type to statusbar_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Julien Danjou 0cd46ab6b1 [widgets] Rename Widget type to widget_t
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-05-03 12:01:03 +02:00
Arnaud Fontaine dafafd077c Port Awesome to XCB 2008-05-03 12:00:59 +02:00
marco candrian ce17b1457e [widgets] allow NULL for 'command' (FS#175)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-23 08:49:31 +02:00
Fabienne Ducroquet b12a5235a5 [doc] Fix some typos, modify a few descriptions
Before awesome 2.3 release, I've decided to look for typos in the
awesome* manpages, here is the result. I've also modified some options'
descriptions that I didn't find very clear, I hope I have not
added/missed too many mistakes as I'm not a native English speaker...

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-11 07:34:45 +02:00
Julien Danjou 40eaa6b997 [doc] Add a bunch of documentation
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-08 09:45:48 +02:00
Julien Danjou 5f58d17d58 [widgets] Use statusbar name in widget_tell (FS#144)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 14:00:46 +02:00
Julien Danjou c582f4397b [widgets] Check for no value in uicb_widget_tell and only update sbar on no error
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-02 15:31:19 +02:00
marco candrian 2e6dccc5ac make sure command is some text != ""
else call with command arg = NULL

No need to check for a_strlen(command) then on _tell anymore if command != NULL
2008-03-23 15:52:18 +01:00