Author: hisham
Date: 2005-05-25 18:43:21 -0400 (Wed, 25 May 2005)
New Revision: 45018
Added:
trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_x.cs
Modified:
trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs
trunk/efl-sharp/libs/efl-sharp/src/lib/Makefile.am
trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_event.cs
trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_timer.cs
Log:
ecore events using += (still missing user defined events)
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-25
21:24:17 UTC (rev 45017)
+++ trunk/efl-sharp/libs/efl-sharp/src/bin/efl_sharp_test.cs 2005-05-25
22:43:21 UTC (rev 45018)
@@ -60,7 +60,7 @@
image.Move(e.cur.canvas.x - x, e.cur.canvas.y - y);
}
- public static int app_signal_exit(IntPtr data, int type, IntPtr ev)
+ public static int AppSignalExitHandler(EcoreEventSignalExit info)
{
System.Console.WriteLine("Quitting main application!");
Ecore.MainLoop.Quit();
@@ -91,9 +91,9 @@
EE.Show();
- if(Ecore.Event.HandlerAdd(Ecore.Event.EventSignalExit, app_signal_exit,
null) == IntPtr.Zero)
- System.Console.WriteLine("Error adding callback!");
+ Ecore.Event.SignalExitEvent += AppSignalExitHandler;
+
Edje edje = new Edje(EE.Get());
if(edje.FileSet(DataConfig.DATADIR +
"/data/flower.edj","desktop/background") == 0)
System.Console.WriteLine("Can't load edje object!");
Modified: trunk/efl-sharp/libs/efl-sharp/src/lib/Makefile.am
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/lib/Makefile.am 2005-05-25 21:24:17 UTC
(rev 45017)
+++ trunk/efl-sharp/libs/efl-sharp/src/lib/Makefile.am 2005-05-25 22:43:21 UTC
(rev 45018)
@@ -12,6 +12,7 @@
ecore/ecore_idler.cs \
ecore/ecore_main.cs \
ecore/ecore_timer.cs \
+ecore/ecore_x.cs \
evas/Evas.cs \
edje/Edje.cs \
ewl/ewl_app.cs \
Modified: trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_event.cs
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_event.cs 2005-05-25
21:24:17 UTC (rev 45017)
+++ trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_event.cs 2005-05-25
22:43:21 UTC (rev 45018)
@@ -1,80 +1,391 @@
namespace Ecore {
-using System;
-using System.Collections;
-using System.Runtime.InteropServices;
+ using System;
+ using System.Collections;
+ using System.Runtime.InteropServices;
- public delegate void EventFunction(IntPtr data, IntPtr ev);
- public delegate int EventHandlerFunction(IntPtr data, int type, IntPtr
ev);
-
- public class Event
- {
- const string Library = "ecore";
-
- private static Hashtable callbacks = new Hashtable ();
- private static Hashtable dataptrs = new Hashtable ();
-
- /* PUBLIC METHODS */
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventExeExit
+ {
+ public int pid;
+ public int exit_code;
+ public IntPtr exe; // do this later;
+ public int exit_signal;
+ public char exited;
+ public char signalled;
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventExeExit()
+ {}
+
+ public EcoreEventExeExit(IntPtr EventInfo)
+ {
+ EcoreEventExeExit e = new EcoreEventExeExit();
+ e = (EcoreEventExeExit)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventExeExit));
+ pid = e.pid;
+ exit_code = e.exit_code;
+ exe = e.exe;
+ exit_signal = e.exit_signal;
+ exited = e.exited;
+ signalled = e.signalled;
+ ext_data = e.ext_data;
+ data = e.data;
+ }
+ }
- public const int EventNone = 0;
- public const int EventExeExit = 1;
- public const int EventSignalUser = 2;
- public const int EventSignalHup = 3;
- public const int EventSignalExit = 4;
- public const int EventSignalPower = 5;
- public const int EventSignalRealtime = 6;
- public const int EventCount = 7;
-
- // FIXME: Are we using this for anything??? Kind of out of
place here
- public static object GetObject(IntPtr p)
- {
- if(!dataptrs.Contains(p))
- throw new Exception("Object pointer is
invalid");
- // FIXME: Should we remove it?
- return dataptrs[p];
- }
-
- [DllImport(Library)]
- private extern static IntPtr ecore_event_add(int type, IntPtr
ev, EventFunction func, IntPtr data);
- [DllImport(Library)]
- private extern static IntPtr ecore_event_del(IntPtr events);
-
- [DllImport(Library)]
- private extern static IntPtr ecore_event_handler_add(int type,
EventHandlerFunction func, IntPtr data);
- public static IntPtr HandlerAdd(int type, EventHandlerFunction
func, object data)
- {
- IntPtr p = new IntPtr(dataptrs.Count);
- IntPtr key = ecore_event_handler_add(type, func, p);
- dataptrs[p] = data;
- callbacks[key] = func;
- return key;
- }
-
- [DllImport(Library)]
- private extern static IntPtr ecore_event_handler_del(IntPtr
event_handler);
- public static void HandlerRemove(IntPtr key)
- {
- if (!callbacks.Contains(key))
- throw new Exception("key is invalid");
- ecore_event_handler_del(key);
- callbacks.Remove(key);
- }
-
- [DllImport(Library)]
- private extern static int ecore_event_type_new();
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventSignalUser
+ {
+ public int number;
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventSignalUser()
+ {}
+
+ public EcoreEventSignalUser(IntPtr EventInfo)
+ {
+ EcoreEventSignalUser e = new EcoreEventSignalUser();
+ e = (EcoreEventSignalUser)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventSignalUser));
+ number = e.number;
+ ext_data = e.ext_data;
+ data = data;
+ }
+ }
- [DllImport(Library)]
- private extern static IntPtr ecore_event_filter_add(IntPtr
func_start, IntPtr func_filter, IntPtr func_end, IntPtr data);
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventSignalHup
+ {
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventSignalHup()
+ {}
+
+ public EcoreEventSignalHup(IntPtr EventInfo)
+ {
+ EcoreEventSignalHup e = new EcoreEventSignalHup();
+ e = (EcoreEventSignalHup)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventSignalHup));
+ ext_data = e.ext_data;
+ data = data;
+ }
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventSignalExit
+ {
+ public int interrupt;
+ public int quit;
+ public int temrinate;
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventSignalExit()
+ {}
+
+ public EcoreEventSignalExit(IntPtr EventInfo)
+ {
+ EcoreEventSignalExit e = new EcoreEventSignalExit();
+ e = (EcoreEventSignalExit)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventSignalExit));
+ ext_data = e.ext_data;
+ data = data;
+ }
+ }
- [DllImport(Library)]
- private extern static IntPtr ecore_event_filter_del(IntPtr ef);
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventSignalPower
+ {
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventSignalPower()
+ {}
+
+ public EcoreEventSignalPower(IntPtr EventInfo)
+ {
+ EcoreEventSignalPower e = new EcoreEventSignalPower();
+ e = (EcoreEventSignalPower)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventSignalPower));
+ ext_data = e.ext_data;
+ data = data;
+ }
+ }
- [DllImport(Library)]
- private extern static int ecore_event_current_type_get();
+ [StructLayout(LayoutKind.Sequential)]
+ public class EcoreEventSignalRealtime
+ {
+ public IntPtr ext_data;
+ public IntPtr data; // do this later, its a siginfo_t
+
+ public EcoreEventSignalRealtime()
+ {}
+
+ public EcoreEventSignalRealtime(IntPtr EventInfo)
+ {
+ EcoreEventSignalRealtime e = new EcoreEventSignalRealtime();
+ e = (EcoreEventSignalRealtime)Marshal.PtrToStructure(EventInfo,
typeof(EcoreEventSignalRealtime));
+ ext_data = e.ext_data;
+ data = data;
+ }
+ }
- [DllImport(Library)]
- private extern static IntPtr ecore_event_current_event_get();
-
- }
-
+
+
+ public class Event
+ {
+ const string Library = "ecore";
+
+ private static Hashtable callbacks = new Hashtable ();
+ private static Hashtable dataptrs = new Hashtable ();
+
+ public delegate void EventFunction(IntPtr data, IntPtr ev);
+
+ /* private event handler thats called by ecore, we call the users event
in this handler */
+ public delegate int EcorePrivateEventHandler(IntPtr data, int type,
IntPtr ev);
+
+ /* PUBLIC METHODS */
+
+ public const int EventNone = 0;
+ public const int EventExeExit = 1;
+ public const int EventSignalUser = 2;
+ public const int EventSignalHup = 3;
+ public const int EventSignalExit = 4;
+ public const int EventSignalPower = 5;
+ public const int EventSignalRealtime = 6;
+ public const int EventCount = 7;
+
+ // FIXME: Are we using this for anything??? Kind of out of place here
+ public static object GetObject(IntPtr p)
+ {
+ if(!dataptrs.Contains(p))
+ throw new Exception("Object pointer is invalid");
+ // FIXME: Should we remove it?
+ return dataptrs[p];
+ }
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_add(int type, IntPtr ev,
EventFunction func, IntPtr data);
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_del(IntPtr events);
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_handler_add(int type,
EcorePrivateEventHandler func, IntPtr data);
+
+ /* event handling code for exe exit event */
+
+ /* User event handler type */
+ public delegate int EcoreEventExeExitHandler(EcoreEventExeExit info);
+
+ /* user's event handler is saved here */
+ static EcoreEventExeExitHandler exe_exit_user_handler;
+
+
+ private static int exe_exit_private_handler(IntPtr data, int type,
IntPtr EventInfo)
+ {
+ return exe_exit_user_handler(new EcoreEventExeExit(EventInfo));
+ }
+
+ public static event EcoreEventExeExitHandler ExeExitEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(exe_exit_private_handler);
+ exe_exit_user_handler = value;
+ ecore_event_handler_add(EventExeExit, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+
+ /* event handling code for signal user event */
+
+ /* User event handler type */
+ public delegate int EcoreEventSignalUserHandler(EcoreEventSignalUser
info);
+
+ /* user's event handler is saved here */
+ static EcoreEventSignalUserHandler signal_user_user_handler;
+
+
+ private static int signal_user_private_handler(IntPtr data, int type,
IntPtr EventInfo)
+ {
+ return signal_user_user_handler(new
EcoreEventSignalUser(EventInfo));
+ }
+
+ public static event EcoreEventSignalUserHandler SignalUserEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(signal_user_private_handler);
+ signal_user_user_handler = value;
+ ecore_event_handler_add(EventSignalUser, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for signal user event */
+
+ /* User event handler type */
+ public delegate int EcoreEventSignalHupHandler(EcoreEventSignalHup
info);
+
+ /* user's event handler is saved here */
+ static EcoreEventSignalHupHandler signal_hup_user_handler;
+
+
+ private static int signal_hup_private_handler(IntPtr data, int type,
IntPtr EventInfo)
+ {
+ return signal_hup_user_handler(new EcoreEventSignalHup(EventInfo));
+ }
+
+ public static event EcoreEventSignalHupHandler SignalHupEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(signal_hup_private_handler);
+ signal_hup_user_handler = value;
+ ecore_event_handler_add(EventSignalHup, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for signal user event */
+
+ /* User event handler type */
+ public delegate int EcoreEventSignalExitHandler(EcoreEventSignalExit
info);
+
+ /* user's event handler is saved here */
+ static EcoreEventSignalExitHandler signal_exit_user_handler;
+
+
+ private static int signal_exit_private_handler(IntPtr data, int type,
IntPtr EventInfo)
+ {
+ return signal_exit_user_handler(new
EcoreEventSignalExit(EventInfo));
+ }
+
+ public static event EcoreEventSignalExitHandler SignalExitEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(signal_exit_private_handler);
+ signal_exit_user_handler = value;
+ ecore_event_handler_add(EventSignalExit, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for signal user event */
+
+ /* User event handler type */
+ public delegate int EcoreEventSignalPowerHandler(EcoreEventSignalPower
info);
+
+ /* user's event handler is saved here */
+ static EcoreEventSignalPowerHandler signal_power_user_handler;
+
+
+ private static int signal_power_private_handler(IntPtr data, int type,
IntPtr EventInfo)
+ {
+ return signal_power_user_handler(new
EcoreEventSignalPower(EventInfo));
+ }
+
+ public static event EcoreEventSignalPowerHandler SignalPowerEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(signal_power_private_handler);
+ signal_power_user_handler = value;
+ ecore_event_handler_add(EventSignalPower, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* event handling code for signal user event */
+
+ /* User event handler type */
+ public delegate int
EcoreEventSignalRealtimeHandler(EcoreEventSignalRealtime info);
+
+ /* user's event handler is saved here */
+ static EcoreEventSignalRealtimeHandler signal_realtime_user_handler;
+
+
+ private static int signal_realtime_private_handler(IntPtr data, int
type, IntPtr EventInfo)
+ {
+ return signal_realtime_user_handler(new
EcoreEventSignalRealtime(EventInfo));
+ }
+
+ public static event EcoreEventSignalRealtimeHandler SignalRealtimeEvent
+ {
+ add
+ {
+ EcorePrivateEventHandler tmp_handler = new
EcorePrivateEventHandler(signal_realtime_private_handler);
+ signal_realtime_user_handler = value;
+ ecore_event_handler_add(EventSignalRealtime, tmp_handler, new
IntPtr());
+ System.GC.KeepAlive(tmp_handler);
+ }
+
+ remove
+ {
+
+ }
+ }
+
+ /* this stale, use its ArryList stuff instead of the
System.GC.KeepAlive in the events and delete it */
+ public static IntPtr HandlerAdd(int type, EcorePrivateEventHandler
func, object data)
+ {
+ IntPtr p = new IntPtr(dataptrs.Count);
+ IntPtr key = ecore_event_handler_add(type, func, p);
+ dataptrs[p] = data;
+ callbacks[key] = func;
+ return key;
+ }
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_handler_del(IntPtr
event_handler);
+ public static void HandlerRemove(IntPtr key)
+ {
+ if (!callbacks.Contains(key))
+ throw new Exception("key is invalid");
+ ecore_event_handler_del(key);
+ callbacks.Remove(key);
+ }
+
+ [DllImport(Library)]
+ private extern static int ecore_event_type_new();
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_filter_add(IntPtr func_start,
IntPtr func_filter, IntPtr func_end, IntPtr data);
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_filter_del(IntPtr ef);
+
+ [DllImport(Library)]
+ private extern static int ecore_event_current_type_get();
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_event_current_event_get();
+
+ }
}
Modified: trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_timer.cs
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_timer.cs 2005-05-25
21:24:17 UTC (rev 45017)
+++ trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_timer.cs 2005-05-25
22:43:21 UTC (rev 45018)
@@ -1,26 +1,25 @@
namespace Ecore {
-using System;
-using System.Collections;
-using System.Runtime.InteropServices;
+ using System;
+ using System.Collections;
+ using System.Runtime.InteropServices;
- public delegate int TimerFunction(IntPtr data);
-
- class Timer
- {
- const string Library = "ecore";
-
- [DllImport(Library)]
- private extern static double ecore_time_get();
-
- [DllImport(Library)]
- private extern static IntPtr ecore_timer_add(double _in, IntPtr
func, IntPtr data);
-
- [DllImport(Library)]
- private extern static IntPtr ecore_timer_del(IntPtr timer);
-
- [DllImport(Library)]
- private extern static void ecore_timer_interval_set(IntPtr
timer, double _in);
- }
-
+ public delegate int TimerFunction(IntPtr data);
+
+ public class Timer
+ {
+ const string Library = "ecore";
+
+ [DllImport(Library)]
+ private extern static double ecore_time_get();
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_timer_add(double _in, IntPtr func,
IntPtr data);
+
+ [DllImport(Library)]
+ private extern static IntPtr ecore_timer_del(IntPtr timer);
+
+ [DllImport(Library)]
+ private extern static void ecore_timer_interval_set(IntPtr timer,
double _in);
+ }
}
Added: trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_x.cs
===================================================================
--- trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_x.cs 2005-05-25
21:24:17 UTC (rev 45017)
+++ trunk/efl-sharp/libs/efl-sharp/src/lib/ecore/ecore_x.cs 2005-05-25
22:43:21 UTC (rev 45018)
@@ -0,0 +1,14 @@
+namespace Ecore.X {
+
+ using System;
+ using System.Collections;
+ using System.Runtime.InteropServices;
+
+ public class Dnd
+ {
+ const string Library = "ecore_x";
+
+ }
+}
+
+
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches