Commit graph

752 commits

Author SHA1 Message Date
Julien Danjou
88e8002045 add Aldo as AUTHORS 2007-12-19 10:44:41 +01:00
Aldo Cortesi
750cf96eeb Remove un-needed function. 2007-12-19 10:43:27 +01:00
Aldo Cortesi
4d4001b41f Clean interface of statusbar_init. 2007-12-19 10:43:15 +01:00
Aldo Cortesi
7190e4fa48 Change awesome_config -> AwesomeConf.
All other struct definitions in the project follow this naming convention.
2007-12-19 10:43:02 +01:00
Aldo Cortesi
76a7d91f39 Make doxygen documentation less cluttered. 2007-12-19 10:42:43 +01:00
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