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

Reply via email to