summaryrefslogtreecommitdiff
path: root/src/Gtk/Signal.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'src/Gtk/Signal.dcl')
-rw-r--r--src/Gtk/Signal.dcl26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/Gtk/Signal.dcl b/src/Gtk/Signal.dcl
index 32ebc08..e4ce83b 100644
--- a/src/Gtk/Signal.dcl
+++ b/src/Gtk/Signal.dcl
@@ -1,15 +1,27 @@
definition module Gtk.Signal
-from Gtk.State import :: GtkM
+from System._Pointer import :: Pointer
+
+from Gtk.State import :: GtkM, :: GtkState
from Gtk.Widgets import class gtkWidget
-:: GSignalHandlerFunction :== GtkM ()
+class signalHandler h
+where
+ signalName :: !h -> String
+ signalHandler :: !h -> SignalHandlerInternal
:: GSignalHandler
- = DestroyHandler !GSignalHandlerFunction
- | ActivateHandler !GSignalHandlerFunction
+ = DestroyHandler !(GtkM ())
+ | ActivateHandler !(GtkM ())
+
+instance signalHandler GSignalHandler
+
+:: SignalHandlerInternal
+ = SHI_Void !(GtkM ())
+ | SHI_Int_Int_Pointer_Pointer_Bool !(Int Int Pointer Pointer -> GtkM Bool)
-:: GSignalHandlerInternal
- = GSHI_Void !GSignalHandlerFunction
+installSignalHandler :: !h !w -> GtkM w | signalHandler h & gtkWidget w
-installSignalHandler :: !GSignalHandler !w -> GtkM w | gtkWidget w
+saveState :: GtkM ()
+retrieveState :: GtkM GtkState
+handleSignal :: !Int !{#Int} -> Int