Commit Graph

247 Commits

Author SHA1 Message Date
Emmanuel Lepage Vallee 01e961dd11 refactor: Port radical.item.layout.horizontal to the declarative syntax 2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee a625388122 refactor: Port radical.layout.vertical to the declarative syntax 2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee bf64eec5c9 Use the newly upstreamed container methods 2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 5271ffd35c Begin the big changes for 3.6
Lots of things will break, hopefully for the better (eventually)

This commit use new upstream APIs:

 * Many cairo paths have been replaced with gears.shape and gears.matrix

This commit add some features:

 * Improved border_color support, now available per state
 * bg_image support, now available per state
 * Mutualize the state setting, remove duplicated code

Regressions:

 * The arrow menu background border is off by a pixel
 * The layout position problem reported by @mindeunix is now worst.

The positioning algo is full of race conditions and cannot be fixed
without a full rewrite. This commit break more things than it solve
and the code is in the middle of a transition. This will be solved
by future commits addressing the code quality (after the refactoring).
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 7f6bd3c673 Fix drawable position calculation
The position of the drawable wasn't taken into account.

This does not fix the bug reported by Minde where the manu
position is correct the first time, but off the second, this is
due to something else.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 3167affe99 overlay: Re-write for the new widget system
**WARNING**: this break the API
menu.overlay -> menu.draw_overlay

The new "overlay" behave like underlay, but is on top

This commit also add underlay/overlay "align" option and document
the feature properly.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 6e85a46093 Fix more issues for 3.6. The arrow_prefix now work using a new hack
The "hack" force the full redraw of the menu. This is what 3.5 did
anyway, but of course is not correct. The new layout system allow
widgets to have a larger fit and it should cascade by itself. This
is not yet used by radical.

This commit also fix some mistake made during the initial port.

My whole config now load mostly correctly. Some 3.5 era bugs even
fixed themselves! It is still slower for some reasons and have many
errors left, but it "look" ok.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 7c0425fdfd common: Make overlay support available to all widgets
This is the first step toward removing the underlay/overlay from
all item.style and item.layout and use the common implementation.

This will simplify the code a lot.
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee 1229da75c7 Add a new global get_preferred_size() for all widgets
Replace the fit(9999,9999) used before. This will hopefully be
temporary until upstream adopt such a method
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallee cf9bb87b36 Port to the new Awesome widget system
This commit fix most issues introduced by the new widget system. It
is not production ready and will require multiple commits to fix
individual issues.

The new widget system is better suited for modules like Radical than
the previous one. Over time, this breakage will probably end up being
a good thing. However, for now, expect multiple errors.

The changes:

 * The draw "wibox" argument is now a "context". "context.wibox" is
   the equivalent. This will allow passing the Radical structure to
   the draw method without storing it in the widgets.
 * "fit" now have a new required "context" argument for the DPI, this
   will allow removing the "default_height" variable Radical is using
   to scale the UI on HIDPI systems. This will allow size policies to
   be passed to the fit method
 * "draw" has been splitted into "draw", "draw_before_children",
   "draw_after_children" and "layout". This simplify the overlay
   system and will allow cleaner code
 * Drawing outside of the widget clip is no longer supported, this
   break multiple Radical item.style. This will allow better
   performance and less redraw once the new system issues have been
   fixed
2016-12-25 21:59:23 -05:00
Emmanuel Lepage Vallée dba05f5774 Update README.md 2016-05-24 23:30:06 -04:00
Emmanuel Lepage Vallée 72181a120e Merge pull request #37 from mindeunix/checkbox
Allow users to change checkbox style.
2016-01-03 16:50:37 -05:00
minde 0fb39f8d01 Allow users to change checkbox style.
Added:
theme.menu_checkbox_padding
theme.menu_checkbox_color
theme.menu_checkbox_checked_color
2016-01-03 20:33:34 +02:00
Emmanuel Lepage Vallée 56fb5d3ba8 Update README.md 2015-11-22 13:38:51 -05:00
Emmanuel Lepage Vallee 75e560995c Fix pango API misuse, add pie-chart cache 2015-03-15 16:25:41 -04:00
Emmanuel Lepage Vallee 698ca53762 Fix nil dereference 2015-03-13 00:15:21 -04:00
Emmanuel Lepage Vallee e65ae86d1d alttab: Prevent toggle from other screens 2015-03-08 18:37:32 -04:00
Emmanuel Lepage Vallee 4be9babed8 Fix dock when the screen doesn't start at y=0 2015-02-22 05:43:13 +00:00
Emmanuel Lepage Vallee da08a267cf Add rounded + shadow item style 2015-01-10 23:59:51 -05:00
Emmanuel Lepage Vallee c12501be9b Add a new 'line_3d' item_style 2015-01-02 17:52:36 -05:00
Emmanuel Lepage Vallee c2cf7ba3fa Add option 2015-01-01 02:08:40 -05:00
Emmanuel Lepage Vallee 2f9af8d5dd Add color groups 2014-12-31 00:30:52 -05:00
Emmanuel Lepage Vallee 1257ac228e Add a color namespace helper method
This will allow implementations to use their own colors without
redefining them by hand
2014-12-30 17:28:01 -05:00
Emmanuel Lepage Vallee 7b071fb7d1 Add an helper function to generate a layout switcher item 2014-12-29 23:28:45 -05:00
Emmanuel Lepage Vallee 80bdbcca68 Add 'add_items' and 'add_widgets' methods 2014-12-28 22:23:59 -05:00
Emmanuel Lepage Vallee 75e6357b23 Various improvements 2014-12-25 01:10:55 -05:00
Emmanuel Lepage Vallee 5768d4729c Improve tag/tasklist theming options 2014-12-24 00:53:09 -05:00
Emmanuel Lepage Vallee 4683fa672d Add a 'rounded' style for bar menus 2014-12-23 14:55:54 -05:00
Emmanuel Lepage Vallee 234c73b63a Add a new arrow based item style 2014-12-21 23:54:10 -05:00
Emmanuel Lepage Vallee 8fe10a1a9d Use betters maths for the Radial menu
The old version is terrible... How much did I drink when I made
that... Well, it was when I was unexperienced with cairo, but...
Anyway, the new maths will eventually allow to use hinting
and Pango with good results. There is also less magic constants.
2014-12-18 16:13:10 -05:00
Emmanuel Lepage Vallee 9f121b1d42 Begin to resurect the Radial menu type 2014-12-17 23:51:58 -05:00
Emmanuel Lepage Vallee 79dcd66b7b Add a basic tag switching menu 2014-11-30 23:25:40 -05:00
Emmanuel Lepage Vallee 31e5c3dd5c Fix issue #29 2014-11-23 00:32:13 -05:00
Emmanuel Lepage Vallee 03090fa2ec Add a bunch of skining options 2014-11-14 23:46:06 -05:00
Emmanuel Lepage Vallee e72323441d Add more item styles, inspired by Android Holo and Neon themes 2014-11-02 23:27:52 -05:00
Emmanuel Lepage Vallee 1a7630e437 Add default_item_margins and default_margins 2014-10-17 23:52:26 -04:00
Emmanuel Lepage Vallee 9d8bcc3882 Clean the arrow layout code
It was my first cairo code ever, I got better ;)
2014-10-11 03:11:20 -04:00
Emmanuel Lepage Vallee 26814e77ee Display a screenshot after 1.5 second when hovering the tasklist 2014-10-05 18:04:03 -04:00
Emmanuel Lepage Vallee 114cbd23be Add a client screenshot atomic menu 2014-10-05 18:03:19 -04:00
Emmanuel Lepage Vallee 45f0ee9586 Fix multiple dock issues 2014-10-05 18:02:46 -04:00
Emmanuel Lepage Vallee 46481f0a8a Add better tooling to track menu dimensions 2014-10-05 18:01:54 -04:00
Emmanuel Lepage Vallee f215d24f35 Add better tools to track the widget height 2014-10-05 18:01:36 -04:00
Emmanuel Lepage Vallee 0b174b1577 Use the dynamic margin module for all item layouts 2014-10-05 17:54:55 -04:00
Emmanuel Lepage Vallee 9bcfe953ae Add a dynamic margin tracker module 2014-10-05 17:53:26 -04:00
Emmanuel Lepage Vallee 9c013c0730 Add 'visible_row_count' property get the number of visible items (total-filter-max) 2014-09-22 01:22:18 -04:00
Emmanuel Lepage Vallee 9a78433e1e Fix Alttab module when used without my config 2014-08-09 23:45:03 -04:00
Emmanuel Lepage Vallee f3fb27f464 Fix minor bugs
* Add hide() method to hide a menu and all sub menu (compared to set_visible)
* Add option to have sub_menu arrows
* Fix selected::changed not being emited in some cases
* Remove duplicated code from notification layout
2014-08-08 02:02:40 -04:00
Emmanuel Lepage Vallee 7e4b6ef81e Highlight the client border when hovering in mod4+tab 2014-08-08 02:00:49 -04:00
Emmanuel Lepage Vallee f4e5f84c58 Add an 'hide()' method for menus 2014-08-02 18:04:47 -04:00
Emmanuel Lepage Vallee 52fdd8a1f2 Correctly forward menu item geometry 2014-07-27 23:49:14 -04:00