本文整理汇总了C#中gbrainy.Core.Main.CairoContextEx.Translate方法的典型用法代码示例。如果您正苦于以下问题:C# CairoContextEx.Translate方法的具体用法?C# CairoContextEx.Translate怎么用?C# CairoContextEx.Translate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gbrainy.Core.Main.CairoContextEx
的用法示例。
在下文中一共展示了CairoContextEx.Translate方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Draw
public override void Draw(CairoContextEx gr, int area_width, int area_height, bool rtl)
{
double x = X, y = Y;
this.rtl = rtl;
#if DESIGN_MODE
gr.Save ();
gr.Color = new Cairo.Color (0, 0, 1);
gr.Rectangle (X, Y, Width, Height);
gr.Stroke ();
gr.Restore ();
ValidateDimensions ();
#endif
//
// Coordinates are stored right to left
//
if (rtl == false) {
for (int i = 0; i < children.Count; i++)
{
gr.Save ();
gr.Translate (x, y);
children[i].Draw (gr, area_width, area_height, rtl);
gr.Restore ();
x += children[i].Width;
}
} else {
x += Width;
for (int i = 0; i < children.Count; i++)
{
x -= children[i].Width;
gr.Save ();
gr.Translate (x, y);
children[i].Draw (gr, area_width, area_height, rtl);
gr.Restore ();
}
}
}
示例2: Draw
public override void Draw(CairoContextEx gr, int area_width, int area_height, bool rtl)
{
double x = X, y = Y;
this.rtl = rtl;
#if DESIGN_MODE
gr.Save ();
gr.Color = new Cairo.Color (0, 0, 1);
gr.Rectangle (X, Y, Width, Height);
gr.Stroke ();
gr.Restore ();
double width = 0;
foreach (Widget child in children)
{
width += child.Width;
if (Height < child.Height)
throw new InvalidOperationException (String.Format ("Container height too small {0} < {1}", Height, child.Height));
}
if (Width < width)
throw new InvalidOperationException (String.Format ("Container witdh too small {0} < {1}", Width, width));
#endif
//
// Coordinates are stored right to left
//
if (rtl == false) {
for (int i = 0; i < children.Count; i++)
{
gr.Save ();
gr.Translate (x, y);
children[i].Draw (gr, area_width, area_height, rtl);
gr.Restore ();
x += children[i].Width;
}
} else {
x += Width;
for (int i = 0; i < children.Count; i++)
{
x -= children[i].Width;
gr.Save ();
gr.Translate (x, y);
children[i].Draw (gr, area_width, area_height, rtl);
gr.Restore ();
}
}
}
示例3: GenerateQuestions
static void GenerateQuestions(CairoContextEx cr, Game [] games, int columns, int rows)
{
int x, y, page;
Game puzzle;
string str;
x = y = page = 0;
for (int i = 0; i < games.Length; i++)
{
puzzle = games [i];
puzzle.Begin ();
page++;
cr.Save ();
cr.Translate (x, y);
cr.Rectangle (0, 0, width, height + question_height);
cr.Clip ();
// Translators: {0} is the game number and {1} the game question or answer
// The number is used as reference when looking for the game solution in the PDF
str = String.Format (ServiceLocator.Instance.GetService <ITranslations> ().GetString ("Game #{0}. {1}"), i + 1, puzzle.Question);
// Draw question
cr.SetPangoFontSize (12);
cr.UseMarkup = true;
cr.DrawStringWithWrapping (margin, 10, str, width - margin);
cr.Stroke ();
cr.UseMarkup = false;
// Draw from question_height up height since from 0 to question_height is the question
// Translate adds always to previous matrix's transformation
cr.Translate (0, question_height);
puzzle.DrawPreview (cr, width, height, false);
if (i == 0) {
cr.Save ();
cr.SetPangoFontSize (0.02);
cr.MoveTo (0.05, 0.95);
cr.ShowPangoText (String.Format (ServiceLocator.Instance.GetService <ITranslations> ().GetString ("Created by gbrainy {0}"), Defines.VERSION));
cr.Stroke ();
cr.Restore ();
}
x += width + margin;
if (x > width + margin) {
x = 0;
y += height + margin + question_height;
}
cr.Restore ();
cr.Stroke ();
if (page >= columns * rows) {
cr.ShowPage ();
page = x = y = 0;
}
}
if (y > 0)
cr.ShowPage ();
}
示例4: OnDrawn
protected override bool OnDrawn(Cairo.Context cc)
{
if(!IsRealized)
return false;
int w, h, nw, nh;
double x = 0, y = 0;
CairoContextEx cr = new CairoContextEx (cc.Handle);
cr.PangoFontDescription = PangoContext.FontDescription;
w = Window.Width;
h = Window.Height;
nh = nw = Math.Min (w, h);
if (nw < w) {
x = (w - nw) / 2d;
}
if (nh < h) {
y = (h - nh) / 2d;
}
cr.Translate (x, y);
cr.Scale (nw, nh);
view.Draw (cr, nw, nh, Direction == Gtk.TextDirection.Rtl);
((IDisposable)cr).Dispose();
return true;
}
示例5: OnExposeEvent
protected override bool OnExposeEvent(Gdk.EventExpose args)
{
if(!IsRealized)
return false;
int w, h, nw, nh;
double x = 0, y = 0;
Cairo.Context cc = Gdk.CairoHelper.Create (args.Window);
CairoContextEx cr = new CairoContextEx (cc.Handle, this);
args.Window.GetSize (out w, out h);
nh = nw = Math.Min (w, h);
if (nw < w) {
x = (w - nw) / 2d;
}
if (nh < h) {
y = (h - nh) / 2d;
}
cr.Translate (x, y);
cr.Scale (nw, nh);
view.Draw (cr, nw, nh, Direction == Gtk.TextDirection.Rtl);
((IDisposable)cc).Dispose();
((IDisposable)cr).Dispose();
return base.OnExposeEvent(args);
}
示例6: OnExposeEvent
protected override bool OnExposeEvent(Gdk.EventExpose args)
{
if (!IsRealized)
return false;
int w, h, total_w, total_h;
Cairo.Context cc = Gdk.CairoHelper.Create (args.Window);
CairoContextEx cr = new CairoContextEx (cc.Handle, this);
args.Window.GetSize (out total_w, out total_h);
h = total_h - question_high;
if (UseSolutionArea)
h -= solution_high;
w = total_w;
// We want a square drawing area for the puzzles then the figures are shown as designed.
// For example, squares are squares. This also makes sure that proportions are kept when resizing
DrawingSquare = Math.Min (w, h);
if (DrawingSquare < w)
OffsetX = (w - DrawingSquare) / 2d;
else
OffsetX = 0;
if (DrawingSquare < h)
OffsetY = (h - DrawingSquare) / 2d;
else
OffsetY = 0;
OffsetY += question_high;
// Draw a background taking all the window area
cr.Save ();
cr.Scale (total_w, total_h);
cr.DrawBackground ();
if (Paused == false) {
DrawQuestionAndAnswer (cr, total_h);
} else {
cr.SetPangoFontSize (0.08);
cr.DrawTextCentered (0.5, 0.5, Catalog.GetString ("Paused"));
cr.Stroke ();
}
cr.Restore ();
if (Paused == false) {
// Draw the game area
cr.Translate (OffsetX, OffsetY);
cr.SetPangoNormalFontSize ();
cr.Color = new Color (1, 1, 1, 0.5);
Drawable.Draw (cr, DrawingSquare, DrawingSquare, Direction == Gtk.TextDirection.Rtl);
cr.Stroke ();
}
((IDisposable)cc).Dispose();
((IDisposable)cr).Dispose();
return true;
}
示例7: Draw
public override void Draw(CairoContextEx gr, int area_width, int area_height, bool rtl)
{
#if DESIGN_MODE
gr.Save ();
gr.Color = new Cairo.Color (0, 0, 1);
gr.Rectangle (X, Y, Width, Height);
gr.Stroke ();
gr.Restore ();
#endif
foreach (Widget child in children)
{
gr.Save ();
gr.Translate (child.X, child.Y);
child.Draw (gr, area_width, area_height, rtl);
gr.Restore ();
}
}