Commit Graph

120 Commits

Author SHA1 Message Date
Arnaud Fontaine dafafd077c Port Awesome to XCB 2008-05-03 12:00:59 +02:00
Julien Danjou 84df60e11b [draw] Check len while checking for UTF-8 chars
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-28 07:35:03 +02:00
marco candrian 1b65a8acfd [draw] line-width increasing from 1.0 to 1.25 for line-style
1.25 figured out by testing...

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-19 11:20:06 +02:00
marco candrian 37f05a8277 [draw] precise line drawing using antialiasing
Antialiasing also has the advantage, that the path get's drawn now precisely -
there have been some issues without ... depending on the line-angle, some
pixels weren't filled on some y coordinates etc.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-19 11:19:59 +02:00
marco candrian 2eb6fda36e [graph] simplify 'line' drawing; draw the border after the graph-drawing
Drawing the border after the graph-drawing, allows to draw down to the border itself
when 0 values occur.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-18 09:12:02 +02:00
marco candrian 84e8949860 [draw] draw_rectangle draws stuff inside the coordinates
E.g. to get single line (or rectangle with width = 1 etc), the path should go
through the center of the pixels (.5), when that path gets stroked finally, it
filles the pixels fully.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-17 19:10:24 +02:00
marco candrian 47495c50e3 [draw] provide the middle of a pixel to make sure it draws/fills that particular pixel/line
Fixes FS#162 now also on my PC in any way (it filled the pixels on the right
when a gradient was given, else the one on the left of x.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-17 09:46:23 +02:00
marco candrian bc7d9211ba [widgets/graph] offset fixed now.
In fact on my pc, when there is no fg_end or fg_center defined,
it draws it one pixel too much on the right.

On Gigamo's PC, that patch should work on any case.

It also 'should' work from what I guess!

For people having a problem, they could define fg_end to the same as fg.

Or when it's really serious (on not just here), that could be done inside
awesome.

(Finally somekind of little cairo bug, from my perspektive)
2008-04-14 04:21:52 +02:00
marco candrian 8277693ab4 [common/draw] no slightly diagonal gradient anymore (again)
that 'fix' didn't work out anyway properly.
Following patches should do a better job.
2008-04-14 04:18:40 +02:00
marco candrian fe07cd4f30 [draw] miter set to 10 is enough
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-13 14:18:29 +02:00
marco candrian 62ac090368 [common/draw] curious (cairo?) bug, sometimes draws the line 1 pixel to much on the right
happens only when creating a gradient, and not always, and
adding + 1 (creating a slightly diagonal gradient), seems to help a little bit).
2008-04-12 06:56:14 +00:00
marco candrian 727a42eb41 [common/draw] force the draw of the left bottom corner on rectangles
setting the miter limit to 100 works here. How to do it really properly, I won't know actually.

http://cairographics.org/manual/cairo-cairo-t.html#cairo-set-miter-limit
2008-04-12 05:41:46 +00:00
Julien Danjou 038e52c699 [draw] Allow more space for characters conversion
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-04 11:07:57 +02:00
Alex Cornejo cee3e9b60d [draw] Add option to link against GTK instead of Imlib2
I added an option to the configure script to link against gdk instead
of imlib2. Most people already have gdk installed so that way they can
use awesome without installing imlib2, and gdk's pixbuf was explicitly
designed to replace imlib2.

Also, a nice side effect is that GDK works directly with cairo
surfaces, so the process of loading images should be faster, although
since awesome does very little image loading it probably wont have a
noticable impact on performance, but it certainly won't hurt.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-03 09:16:58 +02:00
Julien Danjou ae096824d6 [draw] Better check for cairo version
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-02 17:14:09 +02:00
Martin Stubenschrott 8b7c8e3822 [draw] Better computation for vertical text centering
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-04-01 17:59:23 +02:00
Julien Danjou fb36ccee49 [styles] Set shadow_offset to 0 by default
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-28 13:40:59 +01:00
Julien Danjou 18117e8495 [styles] Use 0xffffffff as auto value for shadow (FS#117)
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-28 12:13:16 +01:00
marco candrian 89f4e22255 [widgets] new progressbar options
if a ticks_count is defined (!= 0), round the value to them ('ticks')
and draw finally some gaps.

Also an important issue: since the bar needs to be 'homogenous', they may won't
match a given height. Some value tweaking will be necessary then.

An alternative would be a not homogenous bar, what is worse I think.

The values, when there are 'ticks', get rounded up somebit. So they get turned on,
when half of them is reached - or so.

new options (see awesomerc.5.txt for a more detailed description):

border_width
border_padding
fg_off

ticks_count
ticks_gap

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-26 10:02:37 +01:00
Julien Danjou f00b0b850e draw_textwidth() can use a const char *
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-25 15:55:45 +01:00
Julien Danjou 60e36aee54 Add a workaround for cairo < 1.5
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 10:48:15 +01:00
Julien Danjou 8b411eb15d Use pre-multiplied alpha for cairo rendering
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-24 10:26:35 +01:00
marco candrian b92a292e43 additional line width argument to draw_rectangle[_gradient] in draw.c
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou de5d82b8c2 Use Imlib2 to load images
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 1d468c5583 Lot of cosmetic changes: proto change, etc.
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 8d0e5b29a6 Cosmetic formating changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou 4a7e52cc27 Change draw_rotate() proto to directly render on the right Pixmap 2008-03-23 15:52:22 +01:00
Julien Danjou a3f9eb7af9 Revert "Add preliminary support for XPM format"
This reverts commit 5f8b538a5e4eeea159b26c3d0b943cac745ffdce.
2008-03-23 15:52:22 +01:00
Julien Danjou df2555d9fe Add preliminary support for XPM format
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:22 +01:00
Julien Danjou accf223bb1 Use warn() instead of perror()
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Julien Danjou 19656fc36d Add a CFG_ALIGNMENT type and use it
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
marco candrian 214a5c4bfa new graph-widget option: grow = <{right, left}>
Signed-off-by: Marco Candrian <mac@calmar.ws>
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Julien Danjou 44824e9ac7 Draw buf, not text
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-03-23 15:52:21 +01:00
Arnaud Fontaine f75f16c325 Don't get ascent/descent informations about a font because it's not
useful at the moment (commented out).
2008-03-23 15:52:21 +01:00
Arnaud Fontaine 542a944361 Use Pango for fonts instead of Xft (which hasn't been ported yet to
XCB) to measure text.
2008-03-23 15:52:21 +01:00
Julien Danjou c6eec955c8 Rename Area to area_t 2008-03-23 15:52:18 +01:00
Julien Danjou fa47024714 Change colors infrastructure to style: rename colors_ctx_t to style_t and add font in it 2008-03-23 15:52:18 +01:00
Julien Danjou 9dfd488dda Change colors handling 2008-03-23 15:52:18 +01:00
marco candrian 2e935ae1f6 vertical_gradient option for the graph widget
if true, the color values (fg, fg_center, fg_end) create a color gradient
from 0 to full value, instead of new values to old values.

each data{} can have it's own setting
2008-03-23 15:52:17 +01:00
Julien Danjou 0a980095b3 Rework colors stuff, add a common colors_ctx_t containing colors and shadow options 2008-03-23 15:52:17 +01:00
Julien Danjou f3652aaca6 Add a pointer to SLIST struct to store previous element
This will make back cycling faster
2008-03-23 15:52:17 +01:00
marco candrian 04ff373a63 New progressbar option: vertical=<boolean>
if 'true', draws the whole progressbar-block vertically
instead of horizontally.
2008-03-23 15:52:16 +01:00
marco candrian 6216d25bc6 new progressbar option for reversing the drawing
inside a data section, with reverse=<boolean> it's possible to reverse the
drawing i.e instead of left to right, from right to left. etc.
2008-03-23 15:52:16 +01:00
Julien Danjou 4451e9099e Add support for text shadow, add new text_shadow_offset option. 2008-03-23 15:52:15 +01:00
Julien Danjou 46b80552c6 add support for flex -> AlignFlex 2008-02-28 16:19:26 +01:00
Julien Danjou 46742a56e4 documentation update and some cosmetic 2008-02-27 09:32:45 +01:00
Julien Danjou 328e5d0d4e rename screen to phys_screen to avoid confusion 2008-02-25 13:33:29 +01:00
marco candrian 73696a26a9 cairo_destroy() added
(at least partly related to: FS#68 - awesome eats cpu time)

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-25 10:01:42 +01:00
Julien Danjou ae75f55acd change draw_color_new() proto to fill the struct and return status 2008-02-13 08:58:21 +01:00
Julien Danjou 9390abcfb4 fix memory leak in smart_placement (with area_list_remove) and fix the algo 2008-02-11 17:15:28 +01:00
Julien Danjou e244210943 return the right buffer, iconv modify one 2008-02-11 10:52:05 +01:00
Julien Danjou 1a643a20bd simplify buf handling 2008-02-11 10:40:38 +01:00
Julien Danjou 321a481dce return good pointer and free good pointer 2008-02-11 09:21:09 +01:00
Julien Danjou fbce780003 check iso2utf8 return 2008-02-11 08:49:10 +01:00
Julien Danjou 44a0a1ee4e make draw_text multibyte UTF-8 aware 2008-02-09 16:23:16 +01:00
Julien Danjou 0bfa880b0f add align option to widget to specify their alignment 2008-02-08 10:59:55 +01:00
marco candrian 8567009d22 rename of fg_middle/fg_half to fg_center and fg_full to fg_end
A hint from maxauthority. The names would be unified now in the progressbar
and the graph widget. And (hopefully) it's easier to guess what they mean now.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-06 07:32:22 +01:00
marco candrian ff753f1f14 Adds fg_middle + fg_end color option for the graph widget
Draws a color-gradient beginning from fg and
if either fg_middle or fg_end is set, through them.

example config:

    graph gr_cpu
    {
      data { scale = false max = 100  style = bottom
             fg = "#cc6666" fg_half = "#cc6666" fg_full = "#998888"}
      ...
      ...
    }

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-05 15:37:21 +01:00
marco candrian 09e60cb95e adds fg_half as an option to the progressbar
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-05 07:16:12 +01:00
Julien Danjou 1b4a1e7c9e convert text to draw to UTF-8 2008-02-04 13:28:20 +01:00
marco candrian b024b0c0cf draw_rectangle_gradient() for the progressbar widget; + fg_full option
Adds an optional additional foreground color option to a bar: fg_full = <color>

A value of 0 represents the fg-color, and a value of 100 (a full graph) the
fg_full-color.

Example:

progressbar xy
{
  bar { fg = "#111155" fg_full = "#3333cc"  bg = "#000000" bordercolor = "#4444cc"}
  ....
}

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-04 11:16:30 +01:00
marco candrian 8d3c24e03e fix for cairo_arc
Without a new (sub)path, it joined the new circle to the old reference point,
what happend to be at the end of the title-text - therefore the line to it with
cairo_stroke()

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-02-01 09:21:24 +01:00
marco candrian be0779d0fa graph widget adopted to the latest statusbar changes
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-31 20:43:42 +01:00
Julien Danjou a28876b5ce reuse cairo context stuff 2008-01-31 18:18:15 +01:00
Julien Danjou ea57fd8fc9 add support for smart windows placement in floating layout 2008-01-28 18:30:23 +01:00
Julien Danjou 30eba52596 rename draw_get_context() to draw_context_new() 2008-01-27 19:02:08 +01:00
Julien Danjou b6642e45c8 rename initxcolor to draw_color_new() and move it to draw.c 2008-01-27 18:56:37 +01:00
marco candrian 836942eb4c Fix for the problem that cairo draws over the given path on very sharp angles
Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-26 17:38:20 +01:00
marco candrian c73e0bd72e Additional graph widget options
There are the new styles:

bottom (fill the graph to the bottom of widget-square)
top (fill the graph to the top of the widget-square
line (just print a line representing the values)

E.g when there are multiple 'bottom'-style graphs, it will print the larger
part on top of the smaller.  When two values are the same, it will (actually)
just print it with one color (something to improve maybe).

bottom-style overdraws top-style, and line-style overdraws top and bottom style
(= gets drawn at the end)

An example configuration:

    graph gr_cpu
    {
      data { scale = false max = 100 fg = "#669966" style = bottom} # total
      data { scale = false max = 100 fg = "#cc9966" style = bottom} # user
      data { scale = false max = 100 fg = "#ffffff" style = bottom} # nice-processes
      width = 50
      height = "0.80"
      bg = "#000000"
      bordercolor = "#669966"
    }

With the 'line' style, there is a bug (draws sometimes over the rectangle).
I checked the values and didn't find any value what actually should do that.
So I have no idea why that is... needs a recheck, because it's not really nice..
Happens especially when scale=true and after a rescaling takes place.

Signed-off-by: Julien Danjou <julien@danjou.info>
2008-01-25 22:53:20 +01:00
Julien Danjou 2ac27fdac4 move draw files to common/ 2008-01-24 18:48:11 +01:00