Commit Graph

1047 Commits

Author SHA1 Message Date
Aldo Cortesi 980afac1cf Make sure all uicb_ functions have doxygen annotations.
Also refactor some indentation while I'm there.
2007-12-19 10:42:34 +01:00
Aldo Cortesi cbf5c474c1 Documentation generation fixes.
- Fix many instances of incorrect and incomplete doxygen annotations.
- Teach doxygen not to complain when it comes accross gcc __attribute__
specifications.
- Turn off graph generation by default.
- Make doxygen quiet, so we can actually see warnings when they occur.
2007-12-19 10:42:24 +01:00
Aldo Cortesi 4664fba970 Remove single occurance of die, and then remove die itself. 2007-12-19 10:42:00 +01:00
Aldo Cortesi 9bb28772ed Make textbox foreground and background configurable. 2007-12-19 10:41:50 +01:00
Julien Danjou eb57f68ed3 fix compilation errors with new globalconf stuff 2007-12-18 11:29:02 +01:00
Aldo Cortesi ce556ec743 The preferred line length is 80 characters. 2007-12-18 11:27:26 +01:00
Aldo Cortesi 965cbb7e0b Continue to simplify interfaces that require arguments in globalconf.
Today I focus on screen.c.
2007-12-18 11:26:39 +01:00
Aldo Cortesi 205f2c55ca Make "Statusbar statusbar" the in VirtScreen "Statusbar *statusbar". This is
more consistent with the rest of the interface, and will make our life easier
when we have mulitiple statusbars per screen.
2007-12-18 11:26:18 +01:00
Aldo Cortesi 21fe1add9e Make drawtext interface more general. 2007-12-18 11:25:50 +01:00
Aldo Cortesi 4723ab3627 This patch is a first draft of independently targetable textboxes, and a
protocol to speak to them. Given a textbox widget definition like this:

        textbox mail {
            default = 0
        }
        textbox time {}

We can update the boxes individually by going:

    echo 0 tell_widget mail 10
    echo 0 tell_widget time 12:01

Text boxes will dynamically resize to fit their contents. A textbox can be
cleared by going:

    echo 0 tell_widget name

A text-box containing no text will take up 0 space in the bar, i.e. it will not
be visible at all

Textboxes now supersede statusbar_set_text, so this call has been removed.
2007-12-17 18:22:05 +01:00
Aldo Cortesi ff84907b38 Use WidgetList for lookups, rather than recreating the data. 2007-12-17 18:21:59 +01:00
Aldo Cortesi 86521c57a6 Add more requirements to README. 2007-12-17 18:21:47 +01:00
Aldo Cortesi d5fd96dbd2 Refactor the focus.c interface to use globalconf. 2007-12-17 18:21:42 +01:00
Aldo Cortesi b6bfd1a4d0 The arg to uicb_ functions is no longer const. 2007-12-17 18:19:44 +01:00
Aldo Cortesi 7385815927 Add basic framework for uicb_widget_tell. For now, it does nothing, but stay
tuned.
2007-12-17 18:19:39 +01:00
Julien Danjou 3af4117039 declare real_display as const 2007-12-17 12:26:09 +01:00
Nikos Ntarmos 395c0ba6d7 mouse button press on the statusbar causes segfault
The tags member of screen is no longer an array but a linked list, thus
tags[0] (used in config.c) is ok since tags points to the first tag
struct, but tags[i], i>0 is wrong. There is one such use in
handle_event_buttonpress, causing awesome to segfault when pressing with
the mouse on the statusbar. The attached patch fixes this.
2007-12-17 07:35:08 +01:00
Julien Danjou 2990514863 support for more complete $DISPLAY variable 2007-12-16 21:01:38 +01:00
Julien Danjou 9c83ebfb80 good fix for ncol = 0, last was wrong 2007-12-16 18:29:11 +01:00
Julien Danjou 077ffb5b43 update titleinfo with the right window 2007-12-16 18:23:37 +01:00
Julien Danjou 48ac631f41 add warning about get_current_tag() 2007-12-16 18:15:07 +01:00
Julien Danjou 4577c64ec4 don't allow ncol to be <= 0 2007-12-16 18:07:02 +01:00
Julien Danjou f0f522bd47 move things around
- rename parse_config to config_parse
- move KeyModList and ButtonList in their own functions
- move LayoutsList in layout.c
- move static fcts around in config.c
2007-12-16 13:24:12 +01:00
Julien Danjou 66d43ef0d9 change default conf to work with new widget layout 2007-12-16 13:12:35 +01:00
Aldo Cortesi 5715b70ab3 Make empty status bar look nice.
It's now possible to have unfilled space on the status bar. Fill it with the
background colour on creation.

Normalise line lengths while I'm at it.
2007-12-16 12:58:21 +01:00
Aldo Cortesi 5923c90aaa Solidify widgets.
Factor out common initialisation into a common_new function. Copy the section
title into the Widget title attribute.
2007-12-16 12:57:47 +01:00
Aldo Cortesi 65fd8d48f0 The beginnings of a more flexible widget configuration.
The problem is as follows. In the end, different types of widget are going to
have distinct configurable options. This means that we need to have a
different section type for every widget type, if we are ever to make the
configuration nice. In fact, a configuration syntax like this would suit us
very well:

    textbox name {
        foo = bar
    }
    focuslist name2 {
        bar = voing
    }

This is all very well, but libconfuse has a limitation - there is no "nice"
way to retrieve the order of disparate sections (i.e. sections of different
types), and order is important to us. This patch goes to some effort to
retrieve the section order by extracting an array of widgets, and sorting them
based on line number.
2007-12-16 12:57:03 +01:00
Aldo Cortesi 8880a3804e Simplify widget draw interface. 2007-12-16 12:54:42 +01:00
Aldo Cortesi 65d8d846f2 Fix compiler warning re unused argument, and improve the function interface
while we're at it.
2007-12-16 12:54:09 +01:00
Aldo Cortesi 6e8b1383fe Various doc comment fixes. 2007-12-16 12:13:07 +01:00
Aldo Cortesi 2f74c079aa Massive, massive interface refactoring.
The big change here is that we now keep our configuration structure in a global
variable called globalconf. This radically simplifies many interfaces, since
passing awesomeconf everywhere is no longer necessary. There are also more
subtle interface effects - now we can reliably identify a screen from just a
screen ID, rather than an awesomeconf, screenid tuple.

Overall, this patch makes most of the interfaces in awesome much nicer to use -
enjoy!

Yes, this is a huge patch, but since a lot of the refactoring was done
systematically using vim macros, splitting this up would have been very hard.
2007-12-16 12:12:48 +01:00
Aldo Cortesi ec80635cbc Fix compilation warning related to parsing of statusbar widgets config.
Also make the code surrounding this problem more legible, and remove
Widget_ptr, which just confuses the issue.
2007-12-16 12:00:00 +01:00
Julien Danjou db6a9e92c3 add uicb_focus_history and bind with -1 to Mod4+Tab by default 2007-12-15 20:32:49 +01:00
Julien Danjou ae7b2ed9d0 finish with NULL 2007-12-15 20:22:20 +01:00
Julien Danjou 33d97a7934 remove default reloadconfig un manpage 2007-12-15 19:22:47 +01:00
Julien Danjou 602f921559 first try to get widget configurable 2007-12-15 18:21:02 +01:00
Julien Danjou 4432bd6d39 cosmetic 2007-12-15 16:34:22 +01:00
Julien Danjou 3b013f90b1 cosmetic and don't cast for nothing 2007-12-15 16:25:54 +01:00
Julien Danjou 79749fcc7f remove useless #include 2007-12-15 16:17:57 +01:00
Julien Danjou bf20f9cee9 rework widget.c 2007-12-15 13:37:34 +01:00
Julien Danjou 8b62669970 fix tag_view prev/next segfault 2007-12-15 13:35:15 +01:00
Julien Danjou 8500188d6a uicb_screen_focus honors focus history 2007-12-15 10:19:33 +01:00
Aldo Cortesi 76ddf235ac Widget-ise the statusbar.
We now have the beginnings of a flexible widget structure for the statusbar.
For now, there is no behavioural change, and the interface is a bit crude, but
watch this space!
2007-12-15 10:15:42 +01:00
Aldo Cortesi c81b5cfc55 Refactor statusbar.c
This a preparatory patch. Refactor statusbar.c to compartmentalise the drawing
of the statusbar "widgets". We can now begin to see what a generalised widget
drawing interface would look like.

Note that at the moment we don't gracefully handle situations where "widgets"
run out of space. That will come as we generalise from here.
2007-12-15 09:48:13 +01:00
Aldo Cortesi a6bb5abfef Remove stubs for reloadconfig.
- reloadconfig never worked properly. There were a number of circumstances
    under which it would crash awesome.

    - reloadconfig always leaked memory, because our cleanup process was never
    perfect. Making it perfect would be Hard.

    - Just exec-ing awesome over the top of itself is an OK solution. Maybe we
    should add a uicb_restart to do this so users don't have to think about
    uicb_exec.
2007-12-15 09:46:28 +01:00
Aldo Cortesi f36a56cdcc Refactor draw.c
This is a big patch that does not change any behaviour. We abstract the data
needed by the draw.c functions into a context object, and pass that around
instead of passing each argument every time. This results in a much cleaner API
- most functions lose 3-4 arguments.

This is a preparatory patch for further work on statusbar.
2007-12-15 09:30:29 +01:00
Julien Danjou 7327a92972 untag everything on rules applying 2007-12-15 09:02:49 +01:00
Nikos Ntarmos e205a144cc awesome crashes when non-focused client exits/dies
When a non-focused client exits (e.g. through a signal) then awesome
crashes. The attached patch fixes this for me.

Cheers.

\n\n
2007-12-15 08:16:03 +01:00
Julien Danjou 69ba990371 rename description 2007-12-15 07:42:18 +01:00
marco candrian 0d2c1557e6 awesomerc man page 2007-12-15 07:39:55 +01:00