Moved workspaceview drawing to gtk css

This commit is contained in:
Tom Beckmann 2012-07-17 23:24:49 +02:00
parent fb5bf75e38
commit 85907d7fdb
2 changed files with 54 additions and 9 deletions

View File

@ -41,6 +41,18 @@ namespace Gala
static GtkClutter.Texture? plus = null;
Gtk.StyleContext selector_style;
static const string FALLBACK_STYLE = """
.workspace-selector {
background-image: -gtk-gradient (linear,
left top, left bottom,
from(#eee),
to(#555));
border: 1px solid black;
border-radius: 5px;
}
""";
internal Clone wallpaper;
Clutter.Actor windows;
internal Clutter.Actor icons;
@ -54,6 +66,19 @@ namespace Gala
workspace = _workspace;
screen = workspace.get_screen ();
//setup styles
var fallback = new Gtk.CssProvider ();
try {
fallback.load_from_data (FALLBACK_STYLE, -1);
} catch (Error e) { warning (e.message); }
var e = new Gtk.EventBox ();
e.show ();
selector_style = e.get_style_context ();
selector_style.add_class ("workspace-selector");
selector_style.add_provider (fallback, Gtk.STYLE_PROVIDER_PRIORITY_FALLBACK);
screen.workspace_switched.connect (handle_workspace_switched);
screen.workspace_added.connect (workspace_added);
@ -200,13 +225,7 @@ namespace Gala
bool draw_indicator (Cairo.Context cr)
{
Granite.Drawing.Utilities.cairo_rounded_rectangle (cr, 0, 0, indicator.width, indicator.height, 8);
cr.set_source_rgb (0.35, 0.75, 1.0);
cr.fill_preserve ();
cr.set_line_width (1);
cr.set_source_rgba (0.0, 0.0, 0.0, 0.8);
cr.stroke ();
selector_style.render_activity (cr, 0, 0, indicator.width, indicator.height);
return false;
}

View File

@ -37,6 +37,18 @@ namespace Gala
bool wait_one_key_release; //called by shortcut, don't close it on first keyrelease
Gtk.StyleContext background_style;
static const string FALLBACK_STYLE = """
.workspaces-background {
border-top: 1px solid alpha(#fff, 0.5);
background-image: -gtk-gradient (linear,
left top, left bottom,
from (#161616),
color-stop (0.15, #262626),
to (#262626));
}
""";
public WorkspaceView (Gala.Plugin _plugin)
{
plugin = _plugin;
@ -46,6 +58,18 @@ namespace Gala
opacity = 0;
reactive = true;
//setup styles
var fallback = new Gtk.CssProvider ();
try {
fallback.load_from_data (FALLBACK_STYLE, -1);
} catch (Error e) { warning (e.message); }
var e = new Gtk.EventBox ();
e.show ();
background_style = e.get_style_context ();
background_style.add_class ("workspaces-background");
background_style.add_provider (fallback, Gtk.STYLE_PROVIDER_PRIORITY_FALLBACK);
thumbnails = new Clutter.Actor ();
thumbnails.layout_manager = new Clutter.BoxLayout ();
(thumbnails.layout_manager as Clutter.BoxLayout).spacing = 12;
@ -113,7 +137,7 @@ namespace Gala
bool draw_background (Cairo.Context cr)
{
cr.rectangle (0, 1, width, height);
/*cr.rectangle (0, 1, width, height);
cr.set_source_rgb (0.15, 0.15, 0.15);
cr.fill ();
@ -129,7 +153,9 @@ namespace Gala
cr.rectangle (0, 1, width, 15);
cr.set_source (grad);
cr.fill ();
cr.fill ();*/
background_style.render_activity (cr, 0, 0, width, height);
return false;
}