Author: hisham
Date: 2005-05-24 19:36:36 -0400 (Tue, 24 May 2005)
New Revision: 44950
Modified:
trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs
trunk/efl-sharp/libs/efl-sharp/src/lib/evas/Evas.cs
Log:
Evas events overhaul part 2. Still need to add remove / cleanup methods
Modified: trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs 2005-05-24
23:34:21 UTC (rev 44949)
+++ trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs 2005-05-24
23:36:36 UTC (rev 44950)
@@ -6,46 +6,31 @@
{
private static EcoreEvas EE = new EcoreEvas();
-
- public static void EdjeMouseDown(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ public static void EdjeMouseDownEventCallback(object o, EvasEventMouseDown
e)
{
- System.Console.WriteLine("Mouse down in edje!");
+ System.Console.WriteLine("Mouse down in edje!");
- EvasEventMouseDown e = new EvasEventMouseDown(EventInfo);
-
System.Console.WriteLine("Pressed button " + e.button +
" on coord " + e.canvas.x + " "
+ e.canvas.y);
}
- public static void EdjeMouseIn(IntPtr data, IntPtr evas, IntPtr obj, IntPtr
EventInfo)
+ public static void EdjeMouseInEventCallback(object o, EvasEventMouseIn e)
{
System.Console.WriteLine("Mouse in on edje!");
}
- public static void EdjeMouseOut(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ public static void EdjeMouseOutEventCallback(object o, EvasEventMouseOut e)
{
System.Console.WriteLine("Mouse out on edje!");
}
-
- public static void EdjeKeyDown(IntPtr data, IntPtr evas, IntPtr obj, IntPtr
EventInfo)
- {
- System.Console.WriteLine("Key down on edje! Showing / hiding image!");
-
- Edje edje = new Edje(obj);
-
- EvasEventKeyDown e = new EvasEventKeyDown(EventInfo);
-
- System.Console.WriteLine("pressed " + e.key);
-
- Evas.Image image = new Evas.Image();
- image = (Evas.Image)edje.GetObject(data);
- if(image.Visible)
- image.Hide();
- else
- image.Show();
+
+ public static void EdjeKeyDownEventCallback(object o, EvasEventKeyDown e)
+ {
+ Edje edje = (Edje)o;
+ System.Console.WriteLine("pressed " + e.key);
}
public static int app_signal_exit(IntPtr data, int type, IntPtr ev)
@@ -66,7 +51,7 @@
edje = (Edje)EE.DataGet("edje");
EE.GeometryGet(out x, out y, out w, out h);
edje.Resize(w, h);
- }
+ }
public static void Main(string [] args)
{
@@ -93,10 +78,10 @@
if(edje.FileSet(DataConfig.DATADIR +
"/data/flower.edj","desktop/background") == 0)
System.Console.WriteLine("Can't load edje object!");
edje.Focus = 1;
- edje.EventCallbackAdd(Evas.Object.EVAS_CALLBACK_MOUSE_DOWN,
EdjeMouseDown, null);
- edje.EventCallbackAdd(Evas.Object.EVAS_CALLBACK_MOUSE_IN, EdjeMouseIn,
null);
- edje.EventCallbackAdd(Evas.Object.EVAS_CALLBACK_MOUSE_OUT,
EdjeMouseOut, null);
- edje.EventCallbackAdd(Evas.Object.EVAS_CALLBACK_KEY_DOWN, EdjeKeyDown,
image);
+ edje.MouseDownEvent += EdjeMouseDownEventCallback;
+ edje.MouseInEvent += EdjeMouseInEventCallback;
+ edje.MouseOutEvent += EdjeMouseOutEventCallback;
+ edje.KeyDownEvent += EdjeKeyDownEventCallback;
edje.Move(0, 0);
edje.Resize(640, 480);
edje.Show();
@@ -116,8 +101,7 @@
textblock.Resize(300, 100);
textblock.Raise();
textblock.Show();
-
-
+
Ecore.LoopBegin();
}
}
Modified: trunk/efl-sharp/libs/efl-sharp/src/lib/evas/Evas.cs
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/lib/evas/Evas.cs 2005-05-24 23:34:21 UTC
(rev 44949)
+++ trunk/efl-sharp/libs/efl-sharp/src/lib/evas/Evas.cs 2005-05-24 23:36:36 UTC
(rev 44950)
@@ -544,7 +544,6 @@
public IntPtr data;
public IntPtr modifiers; // handle this later;
public IntPtr locks; // handle this later;
- public int flags;
public EvasEventMouseIn()
{}
@@ -571,7 +570,6 @@
public IntPtr data;
public IntPtr modifiers; // handle this later;
public IntPtr locks; // handle this later;
- public int flags;
public EvasEventMouseOut()
{}
@@ -588,6 +586,41 @@
data = e.data;
locks = e.locks;
}
+ }
+
+ public struct EvasEventMouseMovePos {
+ public EvasEventMouseOutput output;
+ public EvasEventMouseCanvas canvas;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public class EvasEventMouseMove {
+ public int buttons;
+ public EvasEventMouseMovePos cur;
+ public EvasEventMouseMovePos prev;
+ public IntPtr data;
+ public IntPtr modifiers; // handle this later;
+ public IntPtr locks; // handle this later;
+
+ public EvasEventMouseMove()
+ {}
+
+ public EvasEventMouseMove(IntPtr EventInfo)
+ {
+ EvasEventMouseMove e = new EvasEventMouseMove();
+ e = (EvasEventMouseMove)Marshal.PtrToStructure(EventInfo,
typeof(EvasEventMouseMove));
+ buttons = e.buttons;
+ cur.output.x = e.cur.output.x;
+ cur.output.y = e.cur.output.y;
+ cur.canvas.x = e.cur.canvas.x;
+ cur.canvas.y = e.cur.canvas.y;
+ prev.output.x = e.prev.output.x;
+ prev.output.y = e.prev.output.y;
+ prev.canvas.x = e.prev.canvas.x;
+ prev.canvas.y = e.prev.canvas.y;
+ data = e.data;
+ locks = e.locks;
+ }
}
[StructLayout(LayoutKind.Sequential)]
@@ -808,18 +841,477 @@
set { evas_object_focus_set(Raw, value); }
}
+
+ [DllImport(Library)]
+ private extern static void evas_object_event_callback_add(IntPtr obj,
int type, EvasPrivateEventHandler func, IntPtr data);
- public delegate void evas_object_event_callback(IntPtr data, IntPtr
evas, IntPtr obj, IntPtr EventInfo);
- [DllImport(Library)]
- private extern static void evas_object_event_callback_add(IntPtr obj,
int type, evas_object_event_callback func, IntPtr data);
- public void EventCallbackAdd(int type, evas_object_event_callback func,
object data)
+ /* Private event handler type */
+ private delegate void EvasPrivateEventHandler(IntPtr data, IntPtr evas,
IntPtr obj, IntPtr EventInfo);
+
+ /* event handling code for mouse in event */
+ /* user's event handler is saved here */
+ EvasEventMouseInHandler mouse_in_user_handler;
+
+ /* User event handler type */
+ public delegate void EvasEventMouseInHandler(object obj,
EvasEventMouseIn info);
+
+ private void mouse_in_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ mouse_in_user_handler(this, new EvasEventMouseIn(EventInfo));
+ }
+
+ public event EvasEventMouseInHandler MouseInEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_in_private_handler);
+ mouse_in_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOUSE_IN,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse out event */
+
+ /* User event handler type */
+ public delegate void EvasEventMouseOutHandler(object obj,
EvasEventMouseOut info);
+
+ /* user's event handler is saved here */
+ EvasEventMouseOutHandler mouse_out_user_handler;
+
+ private void mouse_out_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ mouse_out_user_handler(this, new EvasEventMouseOut(EventInfo));
+ }
+
+ public event EvasEventMouseOutHandler MouseOutEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_out_private_handler);
+ mouse_out_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOUSE_OUT,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse down event */
+
+ /* User event handler type */
+ public delegate void EvasEventMouseDownHandler(object obj,
EvasEventMouseDown info);
+
+ /* user's event handler is saved here */
+ EvasEventMouseDownHandler mouse_down_user_handler;
+
+ private void mouse_down_private_handler(IntPtr data, IntPtr evas,
IntPtr obj, IntPtr EventInfo)
+ {
+ mouse_down_user_handler(this, new EvasEventMouseDown(EventInfo));
+ }
+
+ public event EvasEventMouseDownHandler MouseDownEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_down_private_handler);
+ mouse_down_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOUSE_DOWN,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse up event */
+
+ /* User event handler type */
+ public delegate void EvasEventMouseUpHandler(object obj,
EvasEventMouseUp info);
+
+ /* user's event handler is saved here */
+ EvasEventMouseUpHandler mouse_up_user_handler;
+
+ private void mouse_up_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ mouse_up_user_handler(this, new EvasEventMouseUp(EventInfo));
+ }
+
+ public event EvasEventMouseUpHandler MouseUpEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_up_private_handler);
+ mouse_up_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOUSE_UP,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse move event */
+
+ /* User event handler type */
+ public delegate void EvasEventMouseMoveHandler(object obj,
EvasEventMouseMove info);
+
+ /* user's event handler is saved here */
+ EvasEventMouseMoveHandler mouse_move_user_handler;
+
+ private void mouse_move_private_handler(IntPtr data, IntPtr evas,
IntPtr obj, IntPtr EventInfo)
+ {
+ mouse_move_user_handler(this, new EvasEventMouseMove(EventInfo));
+ }
+
+ public event EvasEventMouseMoveHandler MouseMoveEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_move_private_handler);
+ mouse_move_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOUSE_MOVE,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse wheel event */
+ /* User event handler type */
+ public delegate void EvasEventMouseWheelHandler(object obj,
EvasEventMouseWheel info);
+
+ /* user's event handler is saved here */
+ EvasEventMouseWheelHandler mouse_wheel_user_handler;
+
+ private void mouse_wheel_private_handler(IntPtr data, IntPtr evas,
IntPtr obj, IntPtr EventInfo)
+ {
+ mouse_wheel_user_handler(this, new EvasEventMouseWheel(EventInfo));
+ }
+
+ public event EvasEventMouseWheelHandler MouseWheelEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(mouse_wheel_private_handler);
+ mouse_wheel_user_handler = value;
+ evas_object_event_callback_add(Raw,
EVAS_CALLBACK_MOUSE_WHEEL, tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for free event */
+ /* User event handler type */
+ public delegate void EvasEventFreeHandler(object obj, /*EvasEventFree*/
object info);
+
+ /* user's event handler is saved here */
+ EvasEventFreeHandler free_user_handler;
+
+ private void free_private_handler(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ {
+ free_user_handler(this, new object() /*EvasEventFree(EventInfo)*/);
+ }
+
+ public event EvasEventFreeHandler FreeEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(free_private_handler);
+ free_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_FREE,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse in event */
+ /* User event handler type */
+ public delegate void EvasEventFocusInHandler(object obj,
/*EvasEventFocusIn*/ object info);
+
+ /* user's event handler is saved here */
+ EvasEventFocusInHandler focus_in_user_handler;
+
+ private void focus_in_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ focus_in_user_handler(this, new object()
/*EvasEventFocusIn(EventInfo)*/);
+ }
+
+ public event EvasEventFocusInHandler FocusInEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(focus_in_private_handler);
+ focus_in_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_FOCUS_IN,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for mouse in event */
+ /* User event handler type */
+ public delegate void EvasEventFocusOutHandler(object obj,
/*EvasEventFocusOut*/ object info);
+
+ /* user's event handler is saved here */
+ EvasEventFocusOutHandler focus_out_user_handler;
+
+ private void focus_out_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ focus_out_user_handler(this, new object()
/*EvasEventFocusOut(EventInfo)*/);
+ }
+
+ public event EvasEventFocusOutHandler FocusOutEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(focus_out_private_handler);
+ focus_out_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_FOCUS_OUT,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for show event */
+ /* User event handler type */
+ public delegate void EvasEventShowHandler(object obj, /*EvasEventShow*/
object info);
+
+ /* user's event handler is saved here */
+ EvasEventShowHandler show_user_handler;
+
+ private void show_private_handler(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ {
+ show_user_handler(this, new object() /*EvasEventShow(EventInfo)*/);
+ }
+
+ public event EvasEventShowHandler ShowEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(show_private_handler);
+ show_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_SHOW,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for hide event */
+ /* User event handler type */
+ public delegate void EvasEventHideHandler(object obj, /*EvasEventHide*/
object info);
+
+ /* user's event handler is saved here */
+ EvasEventHideHandler hide_user_handler;
+
+ private void hide_private_handler(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ {
+ hide_user_handler(this, new object() /*EvasEventHide(EventInfo)*/);
+ }
+
+ public event EvasEventHideHandler HideEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(hide_private_handler);
+ hide_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_HIDE,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+
+ /* event handling code for mouse in event */
+ /* User event handler type */
+ public delegate void EvasEventMoveHandler(object obj, /*EvasEventMove*/
object info);
+
+ /* user's event handler is saved here */
+ EvasEventMoveHandler move_user_handler;
+
+ private void move_private_handler(IntPtr data, IntPtr evas, IntPtr obj,
IntPtr EventInfo)
+ {
+ move_user_handler(this, new object() /*EvasEventMove(EventInfo)*/);
+ }
+
+ public event EvasEventMoveHandler MoveEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(move_private_handler);
+ move_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_MOVE,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for resize event */
+ /* User event handler type */
+ public delegate void EvasEventResizeHandler(object obj,
/*EvasEventResize*/ object info);
+
+ /* user's event handler is saved here */
+ EvasEventResizeHandler resize_user_handler;
+
+ private void resize_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ resize_user_handler(this, new object()
/*EvasEventResize(EventInfo)*/);
+ }
+
+ public event EvasEventResizeHandler ResizeEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(resize_private_handler);
+ resize_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_FOCUS_OUT,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for restack event */
+ /* User event handler type */
+ public delegate void EvasEventRestackHandler(object obj,
/*EvasEventRestack*/ object info);
+
+ /* user's event handler is saved here */
+ EvasEventRestackHandler restack_user_handler;
+
+ private void restack_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ restack_user_handler(this, new object()
/*EvasEventRestack(EventInfo)*/);
+ }
+
+ public event EvasEventRestackHandler RestackEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(restack_private_handler);
+ restack_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_RESTACK,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for key down event */
+ /* User event handler type */
+ public delegate void EvasEventKeyDownHandler(object obj,
EvasEventKeyDown info);
+
+ /* user's event handler is saved here */
+ EvasEventKeyDownHandler key_down_user_handler;
+
+ private void key_down_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ key_down_user_handler(this, new EvasEventKeyDown(EventInfo));
+ }
+
+ public event EvasEventKeyDownHandler KeyDownEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(key_down_private_handler);
+ key_down_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_KEY_DOWN,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for key up event */
+
+ /* User event handler type */
+ public delegate void EvasEventKeyUpHandler(object obj, EvasEventKeyUp
info);
+
+
+ /* user's event handler is saved here */
+ EvasEventKeyUpHandler key_up_user_handler;
+ private void key_up_private_handler(IntPtr data, IntPtr evas, IntPtr
obj, IntPtr EventInfo)
+ {
+ key_up_user_handler(this, new EvasEventKeyUp(EventInfo));
+ }
+
+ public event EvasEventKeyUpHandler KeyUpEvent
+ {
+ add
+ {
+ EvasPrivateEventHandler tmp_handler = new
EvasPrivateEventHandler(key_up_private_handler);
+ key_up_user_handler = value;
+ evas_object_event_callback_add(Raw, EVAS_CALLBACK_KEY_UP,
tmp_handler, new IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* this function is stale, remove it later on */
+ /*
+ public void EventCallbackAdd(int type, EvasPrivateEventHandler func,
object data)
{
IntPtr p = new IntPtr(dataptrs.Count);
callbacks[callbacks.Count + 1] = func;
dataptrs[p] = data;
evas_object_event_callback_add(Raw, type, func, p);
}
-
+ */
public Canvas evas
{
get { return canvas; }
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches