2
* Copyright (C) 2010 Jordi Mas i Hernàndez <jmas@softcatala.org>
4
* This program is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU General Public License as
6
* published by the Free Software Foundation; either version 2 of the
7
* License, or (at your option) any later version.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12
* General Public License for more details.
14
* You should have received a copy of the GNU General Public
15
* License along with this program; if not, write to the
16
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
17
* Boston, MA 02111-1307, USA.
21
using System.ComponentModel;
23
using gbrainy.Core.Main;
24
using gbrainy.Core.Libraries;
26
namespace gbrainy.Core.Toolkit
29
This is a set of classes that help to model a minimal widget library over
30
Cairo that handles RTL and mouse events
33
public abstract class Widget : IDrawable, IDrawRequest, IMouseEvent
35
public delegate void WidgetDrawEventHandler (object sender, DrawEventArgs e);
37
public event EventHandler DrawRequest;
38
public event EventHandler <SeletectedEventArgs> SelectedEvent;
39
ISynchronizeInvoke synchronize;
42
public Widget (double width, double height)
44
if (width < 0 || width > 1)
45
throw new ArgumentOutOfRangeException ("width");
47
if (height < 0 || height > 1)
48
throw new ArgumentOutOfRangeException ("height");
54
public virtual bool Sensitive {
59
get {return sensitive; }
62
public object Data { get; set; }
63
public object DataEx { get; set; }
65
public double X { get; set; }
66
public double Y { get; set; }
67
public double Width { get; set; }
68
public double Height { get; set; }
70
public ISynchronizeInvoke SynchronizingObject {
71
set { synchronize = value; }
72
get { return synchronize; }
75
protected void OnDrawRequest ()
77
if (DrawRequest == null)
80
DrawRequest (this, EventArgs.Empty);
83
protected void OnSelected (SeletectedEventArgs e)
85
if (SelectedEvent == null)
88
SelectedEvent (this, e);
91
public virtual void Draw (CairoContextEx gr, int area_width, int area_height, bool rtl)
93
throw new InvalidOperationException ();
96
public virtual void MouseEvent (object obj, MouseEventArgs args)
98
throw new InvalidOperationException ();