[mistelix] Support for alpha colors and menu item button background color
- From: Jordi Mas <jmas src gnome org>
- To: svn-commits-list gnome org
- Subject: [mistelix] Support for alpha colors and menu item button background color
- Date: Mon, 18 May 2009 15:47:32 -0400 (EDT)
commit 176a4f6214ab396883f2026c86addff323828078
Author: Jordi Mas <jmas softcatala org>
Date: Mon May 18 21:47:33 2009 +0200
Support for alpha colors and menu item button background color
---
src/core/Button.cs | 12 +++++++++---
src/core/SlideShow.cs | 2 +-
src/datamodel/ProjectDetails.cs | 8 ++++----
src/dialogs/BuildProjectDialog.cs | 3 +++
src/dialogs/ProjectPropertiesDialog.cs | 25 ++++++++++++++++++-------
src/widgets/GtkUtils.cs | 5 +++++
6 files changed, 40 insertions(+), 15 deletions(-)
diff --git a/src/core/Button.cs b/src/core/Button.cs
index 487424d..0f2fc11 100644
--- a/src/core/Button.cs
+++ b/src/core/Button.cs
@@ -117,11 +117,17 @@ namespace Mistelix.Core
layout.SetMarkup (Text);
layout.Ellipsize = Pango.EllipsizeMode.End;
layout.Alignment = Pango.Alignment.Center;
- layout.GetPixelSize (out box_width, out box_height);
- cr.MoveTo (x, y);
layout.SingleParagraphMode = true;
layout.Width = -1;
-
+ layout.GetPixelSize (out box_width, out box_height);
+
+ // Background
+ cr.Color = project.Details.ButtonsBackColor;
+ cr.Rectangle (x, y, box_width, box_height);
+ cr.Fill ();
+ cr.Stroke ();
+
+ cr.MoveTo (x, y);
cr.Color = project.Details.ButtonsForeColor;
Pango.CairoHelper.ShowLayout (cr, layout);
}
diff --git a/src/core/SlideShow.cs b/src/core/SlideShow.cs
index 95e2d59..ae25f2d 100644
--- a/src/core/SlideShow.cs
+++ b/src/core/SlideShow.cs
@@ -115,7 +115,7 @@ namespace Mistelix.Core
progress (this, args);
}
- // This a blocking call. It does not return until the pipeline sends and EOS
+ // This a blocking call. It does not return until the pipeline sends an EOS
lib.SlideShowClose ();
Logger.Debug ("SlideShow.GenerateMPEG->Finished generation");
return project.FileToFullPath (outfile);
diff --git a/src/datamodel/ProjectDetails.cs b/src/datamodel/ProjectDetails.cs
index 1cd0158..b15371f 100644
--- a/src/datamodel/ProjectDetails.cs
+++ b/src/datamodel/ProjectDetails.cs
@@ -64,12 +64,12 @@ namespace Mistelix.DataModel
public ProjectDetails ()
{
- buttons_back_color = new Cairo.Color (0.6, 0.6, 0.6);
- buttons_fore_color = new Cairo.Color (1, 0, 0);
+ buttons_back_color = new Cairo.Color (44d / 255d, 56d / 255d, 119d / 255d, 0.5);
+ buttons_fore_color = new Cairo.Color (1, 1, 1, 255);
buttons_fontname = "sans 12";
- slideshows_back_color = new Cairo.Color (0.6, 0.6, 0.6);
- slideshows_fore_color = new Cairo.Color (1, 1, 1);
+ slideshows_back_color = new Cairo.Color (44d / 255d, 56d / 255d, 119d / 255d, 0.5);
+ slideshows_fore_color = new Cairo.Color (1, 1, 1, 255);
slideshows_fontname = "sans 12";
}
diff --git a/src/dialogs/BuildProjectDialog.cs b/src/dialogs/BuildProjectDialog.cs
index cfa8fbf..bd4bd7b 100644
--- a/src/dialogs/BuildProjectDialog.cs
+++ b/src/dialogs/BuildProjectDialog.cs
@@ -92,6 +92,9 @@ namespace Mistelix.Dialogs
// This is a particular case since the Cancel button is not part of the standard dlg button bar
void OnCancel (object sender, EventArgs args)
{
+ if (thread != null)
+ thread.Abort ();
+
Dialog.Respond (ResponseType.Cancel);
}
diff --git a/src/dialogs/ProjectPropertiesDialog.cs b/src/dialogs/ProjectPropertiesDialog.cs
index ed2ceb5..8e1044b 100644
--- a/src/dialogs/ProjectPropertiesDialog.cs
+++ b/src/dialogs/ProjectPropertiesDialog.cs
@@ -90,14 +90,24 @@ namespace Mistelix.Dialogs
output_dir.Text = project.Details.OutputDir;
fontslides_button.FontName = project.Details.SlideshowsFontName;
+
+ backslides_button.UseAlpha = foreslides_button.UseAlpha = true;
+ foreslides_button.Alpha = (ushort) (project.Details.SlideshowsForeColor.A * 65535);
+ backslides_button.Alpha = (ushort) (project.Details.SlideshowsBackColor.A * 65535);
+
foreslides_button.Color = GtkUtils.CairoToGdkColor (project.Details.SlideshowsForeColor);
backslides_button.Color = GtkUtils.CairoToGdkColor (project.Details.SlideshowsBackColor);
-
+
if (dvd_project == true) // DVD tab
{
notebook.RemovePage (PAGE_THEORA);
fontbuttons_button.FontName = project.Details.ButtonsFontName;
+
+ forebuttons_button.UseAlpha = backbuttons_button.UseAlpha = true;
+ forebuttons_button.Alpha = (ushort) (project.Details.ButtonsForeColor.A * 65535);
+ backbuttons_button.Alpha = (ushort) (project.Details.ButtonsBackColor.A * 65535);
+
forebuttons_button.Color = GtkUtils.CairoToGdkColor (project.Details.ButtonsForeColor);
backbuttons_button.Color = GtkUtils.CairoToGdkColor (project.Details.ButtonsBackColor);
@@ -202,13 +212,13 @@ namespace Mistelix.Dialogs
needs_repaint = true;
}
- if (project.Details.ButtonsForeColor.Equals (GtkUtils.GdkToCairoColor (forebuttons_button.Color)) == false) {
- project.Details.ButtonsForeColor = GtkUtils.GdkToCairoColor (forebuttons_button.Color);
+ if (project.Details.ButtonsForeColor.Equals (GtkUtils.GdkToCairoColor (forebuttons_button.Color, forebuttons_button.Alpha)) == false) {
+ project.Details.ButtonsForeColor = GtkUtils.GdkToCairoColor (forebuttons_button.Color, forebuttons_button.Alpha);
needs_repaint = true;
}
- if (project.Details.ButtonsBackColor.Equals (GtkUtils.GdkToCairoColor (backbuttons_button.Color)) == false) {
- project.Details.ButtonsBackColor = GtkUtils.GdkToCairoColor (backbuttons_button.Color);
+ if (project.Details.ButtonsBackColor.Equals (GtkUtils.GdkToCairoColor (backbuttons_button.Color, backbuttons_button.Alpha)) == false) {
+ project.Details.ButtonsBackColor = GtkUtils.GdkToCairoColor (backbuttons_button.Color, backbuttons_button.Alpha);
needs_repaint = true;
}
@@ -246,8 +256,9 @@ namespace Mistelix.Dialogs
}
project.Details.SlideshowsFontName = fontslides_button.FontName;
- project.Details.SlideshowsForeColor = GtkUtils.GdkToCairoColor (foreslides_button.Color);
- project.Details.SlideshowsBackColor = GtkUtils.GdkToCairoColor (backslides_button.Color);
+ project.Details.SlideshowsForeColor = GtkUtils.GdkToCairoColor (foreslides_button.Color, foreslides_button.Alpha);
+ project.Details.SlideshowsBackColor = GtkUtils.GdkToCairoColor (backslides_button.Color, backslides_button.Alpha);
+
}
void OnBrowse (object o, EventArgs args)
diff --git a/src/widgets/GtkUtils.cs b/src/widgets/GtkUtils.cs
index 83eb04b..4af1202 100644
--- a/src/widgets/GtkUtils.cs
+++ b/src/widgets/GtkUtils.cs
@@ -45,6 +45,11 @@ namespace Mistelix.Widgets
cr.Restore ();
}
+ public static Cairo.Color GdkToCairoColor (Gdk.Color color, int alpha)
+ {
+ return new Cairo.Color (color.Red / 65535.0, color.Green / 65535.0, color.Blue / 65535.0, alpha / 65535.0);
+ }
+
public static Cairo.Color GdkToCairoColor (Gdk.Color color)
{
return new Cairo.Color (color.Red / 65535.0, color.Green / 65535.0, color.Blue / 65535.0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]