[gbrainy] More work on mouse support
- From: Jordi Mas <jmas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gbrainy] More work on mouse support
- Date: Fri, 19 Feb 2010 17:09:54 +0000 (UTC)
commit ba9ee1539006c8f898004d35a4569608fb0772df
Author: Jordi Mas <jmas softcatala org>
Date: Fri Feb 19 18:10:19 2010 +0100
More work on mouse support
src/Games/Logic/PuzzleClocks.cs | 79 ++++++++++++++++++++++---------
src/Games/Logic/PuzzleLargerShape.cs | 84 ++++++++++++++++++++++++++++------
src/Games/Logic/PuzzleTetris.cs | 33 +++++++++----
3 files changed, 149 insertions(+), 47 deletions(-)
---
diff --git a/src/Games/Logic/PuzzleClocks.cs b/src/Games/Logic/PuzzleClocks.cs
index 6799065..8c050db 100644
--- a/src/Games/Logic/PuzzleClocks.cs
+++ b/src/Games/Logic/PuzzleClocks.cs
@@ -23,6 +23,7 @@ using System;
using gbrainy.Core.Main;
using gbrainy.Core.Libraries;
+using gbrainy.Core.Toolkit;
namespace gbrainy.Games.Logic
{
@@ -89,6 +90,61 @@ namespace gbrainy.Games.Logic
right_answer = handles[7].ToString ();
+ // First row
+ HorizontalContainer container = new HorizontalContainer (DrawAreaX, 0.05, 0.8, 0.45);
+ DrawableArea drawable_area;
+ AddWidget (container);
+
+ drawable_area = new DrawableArea (0.8 / 2, 0.4);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawClock (e.Context, 0.2, 0.16, handles[0], handles[1], true);
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.36, GetPossibleFigureAnswer (0));
+ e.Context.Stroke ();
+ };
+
+ drawable_area = new DrawableArea (0.8 / 2, 0.4);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawClock (e.Context, 0.2, 0.16, handles[2], handles[3], true);
+ e.Context.MoveTo (0.03, 0.29);
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.36, GetPossibleFigureAnswer (1));
+ e.Context.Stroke ();
+ };
+
+ // Second row
+ container = new HorizontalContainer (DrawAreaX, 0.05 + 0.45, 0.8, 0.45);
+ AddWidget (container);
+
+ drawable_area = new DrawableArea (0.8 / 2, 0.4);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawClock (e.Context, 0.2, 0.16, handles[4], handles[5], true);
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.36, GetPossibleFigureAnswer (2));
+ e.Context.Stroke ();
+ };
+
+ drawable_area = new DrawableArea (0.8 / 2, 0.4);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawClock (e.Context, 0.2, 0.16, handles[6], handles[7], DrawAnswer == true);
+ e.Context.MoveTo (0.03, 0.29);
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.36, GetPossibleFigureAnswer (3));
+ e.Context.Stroke ();
+ };
+
/*DateTime dt1 = new DateTime (2008, 2, 20, handles[0], handles[1] * 5, 0);
DateTime dt2 = new DateTime (2008, 2, 20, handles[2], handles[3] * 5, 0);
Console.WriteLine ("t1 {0}", dt1);
@@ -152,30 +208,7 @@ namespace gbrainy.Games.Logic
public override void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
{
- double x = DrawAreaX + 0.1, y = DrawAreaY + 0.05;
-
base.Draw (gr, area_width, area_height, rtl);
-
- DrawClock (gr, x + 0.1, y + 0.1, handles[0], handles[1], true);
- gr.MoveTo (x + 0.03, y + 0.29);
- gr.ShowPangoText (GetPossibleFigureAnswer (0));
- gr.Stroke ();
-
- DrawClock (gr, x + 0.5, y + 0.1, handles[2], handles[3], true);
- gr.MoveTo (x + 0.43, y + 0.29);
- gr.ShowPangoText (GetPossibleFigureAnswer (1));
- gr.Stroke ();
-
- DrawClock (gr, x + 0.1, y + 0.52, handles[4], handles[5], true);
- gr.MoveTo (x + 0.03, y + 0.71);
- gr.ShowPangoText (GetPossibleFigureAnswer (2));
- gr.Stroke ();
-
- DrawClock (gr, x + 0.5, y + 0.52, handles[6], handles[7], DrawAnswer == true);
- gr.MoveTo (x + 0.43, y + 0.71);
- gr.ShowPangoText (GetPossibleFigureAnswer (3));
- gr.Stroke ();
-
}
}
}
diff --git a/src/Games/Logic/PuzzleLargerShape.cs b/src/Games/Logic/PuzzleLargerShape.cs
index 14e1fee..89521e0 100644
--- a/src/Games/Logic/PuzzleLargerShape.cs
+++ b/src/Games/Logic/PuzzleLargerShape.cs
@@ -23,6 +23,7 @@ using System;
using gbrainy.Core.Main;
using gbrainy.Core.Libraries;
+using gbrainy.Core.Toolkit;
namespace gbrainy.Games.Logic
{
@@ -153,6 +154,75 @@ namespace gbrainy.Games.Logic
break;
}
}
+
+ double x = DrawAreaX, y = DrawAreaY;
+
+ // Question
+ DrawableArea drawable_area;
+ HorizontalContainer container = new HorizontalContainer (x, y, 0.8, 0.3);
+ AddWidget (container);
+
+ drawable_area = new DrawableArea (container.Width / 2, 0.25);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawSquare (e.Context, 0.15, 0);
+ };
+
+ drawable_area = new DrawableArea (container.Width / 2, 0.25);
+ drawable_area.Sensitive = false;
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ DrawLShape (e.Context, 0.15, 0);
+ };
+
+ // Answers
+ y += 0.3;
+ container = new HorizontalContainer (x, y, 0.8, 0.3);
+ AddWidget (container);
+
+ for (int i = 0; i < 2; i++)
+ {
+ drawable_area = new DrawableArea (container.Width / 2, 0.25);
+ drawable_area.Data = i;
+ drawable_area.DataEx = GetPossibleAnswer (i);
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ int n = (int) e.Data;
+ DrawPossibleAnswer (e.Context, 0.12, 0.03, answer, random_indices [n], n);
+
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.22, GetPossibleFigureAnswer (n));
+ e.Context.Stroke ();
+ };
+ }
+
+ container = new HorizontalContainer (x, y + 0.3, 0.8, 0.3);
+ AddWidget (container);
+
+ for (int i = 2; i < 4; i++)
+ {
+ drawable_area = new DrawableArea (container.Width / 2, 0.25);
+ drawable_area.Data = i;
+ drawable_area.DataEx = GetPossibleAnswer (i);
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ int n = (int) e.Data;
+ DrawPossibleAnswer (e.Context, 0.12, 0.03, answer, random_indices [n], n);
+
+ e.Context.DrawTextCentered (drawable_area.Width / 2, 0.22, GetPossibleFigureAnswer (n));
+ e.Context.Stroke ();
+ };
+ }
+
+
}
private Color ColorForPortion (char portion)
@@ -224,29 +294,15 @@ namespace gbrainy.Games.Logic
gr.Stroke ();
}
}
-
- gr.MoveTo (x, y + 0.18);
- gr.ShowPangoText (GetPossibleFigureAnswer (seq));
- gr.Stroke ();
}
public override void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
{
- double x = DrawAreaX + 0.1, y = DrawAreaY;
-
base.Draw (gr, area_width, area_height, rtl);
-
- DrawSquare (gr, x, y);
- DrawLShape (gr, x + 0.4, y);
gr.MoveTo (0.1, 0.3);
gr.ShowPangoText (Catalog.GetString ("Possible answers are:"));
gr.Stroke ();
-
- DrawPossibleAnswer (gr, x, y + 0.32, answer, random_indices [0], 0);
- DrawPossibleAnswer (gr, x + 0.4, y + 0.32, answer, random_indices [1], 1);
- DrawPossibleAnswer (gr, x, y + 0.6, answer, random_indices [2], 2);
- DrawPossibleAnswer (gr, x + 0.4, y + 0.6, answer, random_indices [3], 3);
}
}
}
diff --git a/src/Games/Logic/PuzzleTetris.cs b/src/Games/Logic/PuzzleTetris.cs
index fcf096c..7cf6ca6 100644
--- a/src/Games/Logic/PuzzleTetris.cs
+++ b/src/Games/Logic/PuzzleTetris.cs
@@ -23,6 +23,7 @@ using System;
using gbrainy.Core.Main;
using gbrainy.Core.Libraries;
+using gbrainy.Core.Toolkit;
namespace gbrainy.Games.Logic
{
@@ -64,6 +65,27 @@ namespace gbrainy.Games.Logic
break;
}
}
+
+ HorizontalContainer container = new HorizontalContainer (0.1, 0.5, 0.8, 0.4);
+ DrawableArea drawable_area;
+ AddWidget (container);
+
+ for (int i = 0; i < 3; i++)
+ {
+ drawable_area = new DrawableArea (0.8 / 3, 0.4);
+ drawable_area.Data = i;
+ drawable_area.DataEx = GetPossibleAnswer (i);
+ container.AddChild (drawable_area);
+
+ drawable_area.DrawEventHandler += delegate (object sender, DrawEventArgs e)
+ {
+ int n = (int) e.Data;
+
+ DrawAnswerFigures (e.Context, 0.05, 0.2, random_indices_answers [n]);
+ e.Context.MoveTo (0.05, 0.33);
+ e.Context.ShowPangoText (GetPossibleFigureAnswer (n));
+ };
+ }
}
private static void DrawQuestionFigures (CairoContextEx gr, double x, double y, int figure)
@@ -123,7 +145,7 @@ namespace gbrainy.Games.Logic
// X
// X
for (int i = 0; i < 4; i++) {
- gr.Rectangle (x, y - rect_height * i, rect_witdh, rect_height);
+ gr.Rectangle (x + 0.05, y - rect_height * i, rect_witdh, rect_height);
}
break;
case 2:
@@ -151,15 +173,6 @@ namespace gbrainy.Games.Logic
gr.MoveTo (0.1, 0.4 - 0.02);
gr.ShowPangoText (Catalog.GetString ("Possible answers are:"));
-
- x = 0.2;
- y = 0.6;
- for (int i = 0; i < 3; i++) {
- DrawAnswerFigures (gr, x, y, random_indices_answers [i]);
- gr.MoveTo (x, y + 0.13);
- gr.ShowPangoText (GetPossibleFigureAnswer (i));
- x += space_figures;
- }
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]