diff options
author | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
---|---|---|
committer | toma <toma@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2009-11-25 17:56:58 +0000 |
commit | 90825e2392b2d70e43c7a25b8a3752299a933894 (patch) | |
tree | e33aa27f02b74604afbfd0ea4f1cfca8833d882a /qtsharp/src/bindings/static/QtSupport.cs | |
download | tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.tar.gz tdebindings-90825e2392b2d70e43c7a25b8a3752299a933894.zip |
Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features.
BUG:215923
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'qtsharp/src/bindings/static/QtSupport.cs')
-rw-r--r-- | qtsharp/src/bindings/static/QtSupport.cs | 750 |
1 files changed, 750 insertions, 0 deletions
diff --git a/qtsharp/src/bindings/static/QtSupport.cs b/qtsharp/src/bindings/static/QtSupport.cs new file mode 100644 index 00000000..eee74728 --- /dev/null +++ b/qtsharp/src/bindings/static/QtSupport.cs @@ -0,0 +1,750 @@ +// QtSupport.cs - QtSupport c-sharp support file +// +// Copyright (C) 2002 Adam Treat (manyoso@yahoo.com) +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either version 2 +// of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +namespace Qt { + + using Qt; + using System; + using System.Collections; + using System.Reflection; + using System.Text.RegularExpressions; + using System.Runtime.InteropServices; + + public class QtSupport: IDisposable { + + private static Hashtable QtObjects; + private static int cleanCount; + private static int cleanLimit; + + private static QtEventHandler qtEventHandler; + + // Runtime flags, set by QApplication.ParseArguments + internal static bool enableDebug; + internal static bool disableTracking; + internal static bool traceObjects; + internal static bool traceChildren; + + static QtSupport() { + //QtObjects = Hashtable.Synchronized (new Hashtable ()); + QtObjects = new Hashtable(); + + cleanCount = 0; + cleanLimit = 750; + + enableDebug = false; + disableTracking = false; + traceObjects = false; + traceChildren = false; + } + + internal protected IntPtr rawObject; + internal protected bool disposed; + internal bool deleted; + protected QtSupport qparent; + protected ArrayList qchildren; + + internal IntPtr RawObject { + get { return rawObject; } + } + + public bool Disposed { + get { return disposed; } + } + + public QtSupport QParent { + get { return qparent; } + } + + public ArrayList QChildren { + get { return qchildren; } + } + + // A dummy constructor for inherited classes + internal QtSupport (QNull dummy) { + disposed = false; + deleted = false; + qchildren = new ArrayList (); + } + + public void Dispose () + { + GC.SuppressFinalize (this); + Dispose (true); + } + + protected virtual void Dispose (bool disposeManaged) + { + if (disposed) + return; + + if (rawObject == IntPtr.Zero) + deleted = true; + + if (disposeManaged) { + disposed = true; + + UnregisterObject (this); + + if (qparent != null && ! qparent.Disposed) + qparent.RemoveChild (this); + + foreach (QtSupport qts in qchildren) + qts.Dispose (); + } + + /* + DbgMsg ("({0}) {1}: {2} managed. {3} native instance.", + deleted ? IntPtr.Zero : rawObject, + this, + disposeManaged ? "Disposing" : "Not disposing", + deleted ? "Not deleting" : "Deleting"); + */ + + qparent = null; + qchildren = null; + + Delete (); + } + + internal virtual void Delete () + { + WarnMsg ("({0}) {1}: QtSupport.Dispose() running", rawObject, this); + deleted = true; + } + + /************************** General Utility Methods *********************************/ + + public static void QAssert (bool value) + { + if (!value) throw new ApplicationException ("Assertion failed"); + } + + public static void QAssert (bool value, string message) + { + if (!value) throw new ApplicationException ("Assertion failed: " + message); + } + + internal bool IsQObject () + { + return GetType ().IsSubclassOf (typeof (QObject)); + } + + internal static void WarnMsg (string format, params object[] arg) + { + if (enableDebug) + Console.Error.WriteLine ("Qt# Warning: " + format, arg); + } + + internal static void DbgMsg (string format, params object[] arg) + { + if (enableDebug) Console.WriteLine (format, arg); + } + + internal static void ErrMsg (string format, params object[] arg) + { + Console.Error.WriteLine (format, arg); + } + + internal static void Msg (string format, params object[] arg) + { + Console.WriteLine (format, arg); + } + + public static string SIGNAL (string signal) + { + return "2"+ + Regex.Replace (signal, @"\s*\(\s*\)", "()"); + + + } + + public static string SLOT (string slot) + { + return "1" + + Regex.Replace (slot, @"\s*\(\s*\)", "()"); + } + + /************************** Object Tracking/Boxing and Disposal *********************************/ + + internal static void RegisterObject (QtSupport o) + { + if (disableTracking) return; + + if (o.RawObject == IntPtr.Zero) { + WarnMsg ("Asked to register object with null pointer: {0}", o); + return; + } + + string replacing = String.Empty; + WeakReference wref; + + if (QtObjects.ContainsKey (o.RawObject)) + { + wref = QtObjects[o.RawObject] as WeakReference; + QAssert (! wref.IsAlive, + "New object "+o+" has same RawObject as "+(QtSupport)wref.Target+"! Please report this error!"); + replacing = "(replacing)"; + QtObjects.Remove (o.RawObject); + } + + if (traceObjects) + ErrMsg ("Object Registered: {0} ({1}) {2}", o, o.RawObject, replacing); + + QtObjects[o.RawObject] = new WeakReference (o); + + if (cleanCount > cleanLimit) { + cleanCount = 0; + IDictionaryEnumerator de = QtObjects.GetEnumerator (); + ArrayList obituaries = new ArrayList (); + + while (de.MoveNext ()) { + wref = de.Value as WeakReference; + if (!wref.IsAlive) obituaries.Add (de.Key); + } + + if (traceObjects) + ErrMsg ("RegisterObject: Removing {0} of {1} references from QtObjects", obituaries.Count, QtObjects.Count); + + foreach (IntPtr p in obituaries) + QtObjects.Remove (p); + } + else + cleanCount++; + } + + internal static void UnregisterObject (QtSupport o) + { + if (disableTracking) return; + if (traceObjects) ErrMsg ("Object Unregistered: {0} ({1})", o, o.RawObject); + + if (o.RawObject == IntPtr.Zero) { + WarnMsg ("Asked to unregister object with null pointer: {0}", o); + return; + } + + QtObjects.Remove (o.RawObject); + } + + internal static QtSupport LookupObject (IntPtr ptr) + { + if (disableTracking) return null; + + if (ptr == IntPtr.Zero) { + WarnMsg ("Asked to lookup null pointer"); + return null; + } + + QtSupport ret = null; + + if (QtObjects.ContainsKey (ptr)) { + WeakReference wref = QtObjects[ptr] as WeakReference; + if (wref.IsAlive) + ret = wref.Target as QtSupport; + else + QtObjects.Remove (ptr); + } + + return ret; + } + + internal static QtSupport LookupObject (IntPtr ptr, Type type) + { + if (ptr == IntPtr.Zero) { + WarnMsg ("Asked to lookup null pointer of type {0}", type); + return null; + } + + if (! (type.IsSubclassOf (typeof(QtSupport)) || type == typeof (QtSupport)) ) + throw new ArgumentException ("Type '" +type+ "' is not related to QtSupport."); + + QtSupport qtsObj = LookupObject (ptr); + + if (qtsObj == null) { + //DbgMsg (type+" ("+ptr+"): Boxing foreign object"); + qtsObj = (QtSupport)Activator.CreateInstance ( + type, + BindingFlags.NonPublic | BindingFlags.Instance, + null, + new object[] {ptr}, + null); + + // FIXME Must handle cases where qtsObj is a QObject root + // or child. Should we box the entire object tree in + // C#? Also, RegisterObject will only track this object + // if it is a root node. Child nodes are assumed to be + // referenced by their parents. Must ponder and seek + // opinions. + } + + return qtsObj; + } + + internal virtual void AddChild (QtSupport o) { + // FIXME: Faster way to do this? O(n), where n == Count + if (!qchildren.Contains(o)) { + qchildren.Add(o); + if (traceChildren) + ErrMsg ("({0}) {1}::AddChild: ({2}) {3}", rawObject, this, o.RawObject, o); + } + } + + internal virtual void RemoveChild (QtSupport o) { + // FIXME: Faster way to do this? O(n), where n == Count + if (qchildren.Contains(o)) { + qchildren.Remove(o); + if (traceChildren) + ErrMsg ("({0}) {1}::RemoveChild: ({2}) {3}", rawObject, this, o.RawObject, o); + } + } + + /************************** The Event Handler ******************************************/ + + private delegate void QtEventHandler (IntPtr instance, string eventname, IntPtr eventinstance, string eventclass); + + private static QEventList eventList = new QEventList (); + + [DllImport("libqtsharp", CharSet=CharSet.Ansi)] + private static extern void qtsharp_QObject_registerEventDelegate + ([MarshalAs (UnmanagedType.FunctionPtr)] Delegate qtdelegate); + + internal static void RegisterEventDelegate () + { + qtEventHandler = new QtEventHandler (DispatchEvent); + qtsharp_QObject_registerEventDelegate (qtEventHandler); + } + + internal static QEventList EventList { + get { return eventList; } + } + + private static void DispatchEvent (IntPtr instance, string eventname, IntPtr eventinstance, string eventclass) + { + ArrayList array; + QObject obj; + QEvent ev; + Type evtype = Type.GetType ("Qt."+eventclass+",Qt"); + + if ((obj = (QObject)LookupObject (instance)) == null) return; + + try + { + if ((ev = (QEvent)LookupObject (eventinstance)) == null) { + object[] args = new object[] { eventinstance }; + BindingFlags bflags = BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public; + ev = Activator.CreateInstance (evtype, bflags, null, args, null) as QEvent; + } + + // Notify global event handlers first. + if ((array = EventList.QEventHandlers (eventclass)) != null) { + foreach (Delegate del in array) { + QEventArgs evargs = new QEventArgs (eventname, ev); + del.DynamicInvoke (new object[] { obj, evargs }); + } + } + + // Notify local event handlers second. + if ((array = EventList.QEventHandlers (eventname)) != null) { + foreach (Delegate del in array) { + if (ReferenceEquals (del.Target, obj)) + del.DynamicInvoke (new object[] { ev }); + } + } + } + catch (TargetInvocationException e) { + throw e.InnerException; + } + + ev.deleted = true; // Qt deletes events for us + ev.Dispose (); + } + + // Global events. + public static event QChildHandler childHandler { + add { EventList.Add ("QChildEvent", value); } + remove { EventList.Remove ("QChildEvent", value); } + } + public static event QDragEnterHandler dragEnterHandler { + add { EventList.Add ("QDragEnterEvent", value); } + remove { EventList.Remove ("QDragEnterEvent", value); } + } + public static event QDropHandler dropHandler { + add { EventList.Add ("QDropEvent", value); } + remove { EventList.Remove ("QDropEvent", value); } + } + public static event QIMHandler imHandler { + add { EventList.Add ("QIMEvent", value); } + remove { EventList.Remove ("QIMEvent", value); } + } + public static event QPaintHandler paintHandler { + add { EventList.Add ("QPaintEvent", value); } + remove { EventList.Remove ("QPaintEvent", value); } + } + public static event QTimerHandler timerHandler { + add { EventList.Add ("QTimerEvent", value); } + remove { EventList.Remove ("QTimerEvent", value); } + } + public static event QCloseHandler closeHandler { + add { EventList.Add ("QCloseEvent", value); } + remove { EventList.Remove ("QCloseEvent", value); } + } + public static event QDragLeaveHandler dragLeaveHandler { + add { EventList.Add ("QDragLeaveEvent", value); } + remove { EventList.Remove ("QDragLeaveEvent", value); } + } + public static event QEventHandler eventHandler { + add { EventList.Add ("QEventEvent", value); } + remove { EventList.Remove ("QEventEvent", value); } + } + public static event QKeyHandler keyHandler { + add { EventList.Add ("QKeyEvent", value); } + remove { EventList.Remove ("QKeyEvent", value); } + } + public static event QResizeHandler resizeHandler { + add { EventList.Add ("QResizeEvent", value); } + remove { EventList.Remove ("QResizeEvent", value); } + } + public static event QWheelHandler wheelHandler { + add { EventList.Add ("QWheelEvent", value); } + remove { EventList.Remove ("QWheelEvent", value); } + } + public static event QContextMenuHandler contextMenuHandler { + add { EventList.Add ("QContextMenuEvent", value); } + remove { EventList.Remove ("QContextMenuEvent", value); } + } + public static event QDragMoveHandler dragMoveHandler { + add { EventList.Add ("QDragMoveEvent", value); } + remove { EventList.Remove ("QDragMoveEvent", value); } + } + public static event QFocusHandler focusHandler { + add { EventList.Add ("QFocusEvent", value); } + remove { EventList.Remove ("QFocusEvent", value); } + } + public static event QMouseHandler mouseHandler { + add { EventList.Add ("QMouseEvent", value); } + remove { EventList.Remove ("QMouseEvent", value); } + } + public static event QShowHandler showHandler { + add { EventList.Add ("QShowEvent", value); } + remove { EventList.Remove ("QShowEvent", value); } + } + public static event QCustomHandler customHandler { + add { EventList.Add ("QCustomEvent", value); } + remove { EventList.Remove ("QCustomEvent", value); } + } + public static event QDragResponseHandler dragResponseHandler { + add { EventList.Add ("QDragResponseEvent", value); } + remove { EventList.Remove ("QDragResponseEvent", value); } + } + public static event QHideHandler hideHandler { + add { EventList.Add ("QHideEvent", value); } + remove { EventList.Remove ("QHideEvent", value); } + } + public static event QMoveHandler moveHandler { + add { EventList.Add ("QMoveEvent", value); } + remove { EventList.Remove ("QMoveEvent", value); } + } + public static event QTabletHandler tabletHandler { + add { EventList.Add ("QTabletEvent", value); } + remove { EventList.Remove ("QTabletEvent", value); } + } + + // Local events. + protected static event ChildEvent childEvent { + add { EventList.Add ("childEvent", value); } + remove { EventList.Remove ("childEvent", value); } + } + protected static event CloseEvent closeEvent { + add { EventList.Add ("closeEvent", value); } + remove { EventList.Remove ("closeEvent", value); } + } + protected static event ContentsContextMenuEvent contentsContextMenuEvent { + add { EventList.Add ("contentsContextMenuEvent", value); } + remove { EventList.Remove ("contentsContextMenuEvent", value); } + } + protected static event ContentsDragEnterEvent contentsDragEnterEvent { + add { EventList.Add ("contentsDragEnterEvent", value); } + remove { EventList.Remove ("contentsDragEnterEvent", value); } + } + protected static event ContentsDragLeaveEvent contentsDragLeaveEvent { + add { EventList.Add ("contentsDragLeaveEvent", value); } + remove { EventList.Remove ("contentsDragLeaveEvent", value); } + } + protected static event ContentsDragMoveEvent contentsDragMoveEvent { + add { EventList.Add ("contentsDragMoveEvent", value); } + remove { EventList.Remove ("contentsDragMoveEvent", value); } + } + protected static event ContentsDropEvent contentsDropEvent { + add { EventList.Add ("contentsDropEvent", value); } + remove { EventList.Remove ("contentsDropEvent", value); } + } + protected static event ContentsMouseDoubleClickEvent contentsMouseDoubleClickEvent { + add { EventList.Add ("contentsMouseDoubleClickEvent", value); } + remove { EventList.Remove ("contentsMouseDoubleClickEvent", value); } + } + protected static event ContentsMouseMoveEvent contentsMouseMoveEvent { + add { EventList.Add ("contentsMouseMoveEvent", value); } + remove { EventList.Remove ("contentsMouseMoveEvent", value); } + } + protected static event ContentsMousePressEvent contentsMousePressEvent { + add { EventList.Add ("contentsMousePressEvent", value); } + remove { EventList.Remove ("contentsMousePressEvent", value); } + } + protected static event ContentsMouseReleaseEvent contentsMouseReleaseEvent { + add { EventList.Add ("contentsMouseReleaseEvent", value); } + remove { EventList.Remove ("contentsMouseReleaseEvent", value); } + } + protected static event ContentsWheelEvent contentsWheelEvent { + add { EventList.Add ("contentsWheelEvent", value); } + remove { EventList.Remove ("contentsWheelEvent", value); } + } + protected static event ContextMenuEvent contextMenuEvent { + add { EventList.Add ("contextMenuEvent", value); } + remove { EventList.Remove ("contextMenuEvent", value); } + } + protected static event CustomEvent customEvent { + add { EventList.Add ("customEvent", value); } + remove { EventList.Remove ("customEvent", value); } + } + protected static event DragEnterEvent dragEnterEvent { + add { EventList.Add ("dragEnterEvent", value); } + remove { EventList.Remove ("dragEnterEvent", value); } + } + protected static event DragLeaveEvent dragLeaveEvent { + add { EventList.Add ("dragLeaveEvent", value); } + remove { EventList.Remove ("dragLeaveEvent", value); } + } + protected static event DragMoveEvent dragMoveEvent { + add { EventList.Add ("dragMoveEvent", value); } + remove { EventList.Remove ("dragMoveEvent", value); } + } + protected static event DropEvent dropEvent { + add { EventList.Add ("dropEvent", value); } + remove { EventList.Remove ("dropEvent", value); } + } + protected static event EnterEvent enterEvent { + add { EventList.Add ("enterEvent", value); } + remove { EventList.Remove ("enterEvent", value); } + } + protected static event FocusInEvent focusInEvent { + add { EventList.Add ("focusInEvent", value); } + remove { EventList.Remove ("focusInEvent", value); } + } + protected static event FocusOutEvent focusOutEvent { + add { EventList.Add ("focusOutEvent", value); } + remove { EventList.Remove ("focusOutEvent", value); } + } + protected static event HideEvent hideEvent { + add { EventList.Add ("hideEvent", value); } + remove { EventList.Remove ("hideEvent", value); } + } + protected static event IMComposeEvent imComposeEvent { + add { EventList.Add ("imComposeEvent", value); } + remove { EventList.Remove ("imComposeEvent", value); } + } + protected static event IMEndEvent imEndEvent { + add { EventList.Add ("imEndEvent", value); } + remove { EventList.Remove ("imEndEvent", value); } + } + protected static event IMStartEvent imStartEvent { + add { EventList.Add ("imStartEvent", value); } + remove { EventList.Remove ("imStartEvent", value); } + } + protected static event KeyPressEvent keyPressEvent { + add { EventList.Add ("keyPressEvent", value); } + remove { EventList.Remove ("keyPressEvent", value); } + } + protected static event KeyReleaseEvent keyReleaseEvent { + add { EventList.Add ("keyReleaseEvent", value); } + remove { EventList.Remove ("keyReleaseEvent", value); } + } + protected static event LeaveEvent leaveEvent { + add { EventList.Add ("leaveEvent", value); } + remove { EventList.Remove ("leaveEvent", value); } + } + protected static event MouseDoubleClickEvent mouseDoubleClickEvent { + add { EventList.Add ("mouseDoubleClickEvent", value); } + remove { EventList.Remove ("mouseDoubleClickEvent", value); } + } + protected static event MouseMoveEvent mouseMoveEvent { + add { EventList.Add ("mouseMoveEvent", value); } + remove { EventList.Remove ("mouseMoveEvent", value); } + } + protected static event MousePressEvent mousePressEvent { + add { EventList.Add ("mousePressEvent", value); } + remove { EventList.Remove ("mousePressEvent", value); } + } + protected static event MouseReleaseEvent mouseReleaseEvent { + add { EventList.Add ("mouseReleaseEvent", value); } + remove { EventList.Remove ("mouseReleaseEvent", value); } + } + protected static event MoveEvent moveEvent { + add { EventList.Add ("moveEvent", value); } + remove { EventList.Remove ("moveEvent", value); } + } + protected static event PaintEvent paintEvent { + add { EventList.Add ("paintEvent", value); } + remove { EventList.Remove ("paintEvent", value); } + } + protected static event ResizeEvent resizeEvent { + add { EventList.Add ("resizeEvent", value); } + remove { EventList.Remove ("resizeEvent", value); } + } + protected static event ShowEvent showEvent { + add { EventList.Add ("showEvent", value); } + remove { EventList.Remove ("showEvent", value); } + } + protected static event TabletEvent tabletEvent { + add { EventList.Add ("tabletEvent", value); } + remove { EventList.Remove ("tabletEvent", value); } + } + protected static event TimerEvent timerEvent { + add { EventList.Add ("timerEvent", value); } + remove { EventList.Remove ("timerEvent", value); } + } + protected static event ViewportContextMenuEvent viewportContextMenuEvent { + add { EventList.Add ("viewportContextMenuEvent", value); } + remove { EventList.Remove ("viewportContextMenuEvent", value); } + } + protected static event ViewportDragEnterEvent viewportDragEnterEvent { + add { EventList.Add ("viewportDragEnterEvent", value); } + remove { EventList.Remove ("viewportDragEnterEvent", value); } + } + protected static event ViewportDragLeaveEvent viewportDragLeaveEvent { + add { EventList.Add ("viewportDragLeaveEvent", value); } + remove { EventList.Remove ("viewportDragLeaveEvent", value); } + } + protected static event ViewportDragMoveEvent viewportDragMoveEvent { + add { EventList.Add ("viewportDragMoveEvent", value); } + remove { EventList.Remove ("viewportDragMoveEvent", value); } + } + protected static event ViewportDropEvent viewportDropEvent { + add { EventList.Add ("viewportDropEvent", value); } + remove { EventList.Remove ("viewportDropEvent", value); } + } + protected static event ViewportMouseDoubleClickEvent viewportMouseDoubleClickEvent { + add { EventList.Add ("viewportMouseDoubleClickEvent", value); } + remove { EventList.Remove ("viewportMouseDoubleClickEvent", value); } + } + protected static event ViewportMouseMoveEvent viewportMouseMoveEvent { + add { EventList.Add ("viewportMouseMoveEvent", value); } + remove { EventList.Remove ("viewportMouseMoveEvent", value); } + } + protected static event ViewportMousePressEvent viewportMousePressEvent { + add { EventList.Add ("viewportMousePressEvent", value); } + remove { EventList.Remove ("viewportMousePressEvent", value); } + } + protected static event ViewportMouseReleaseEvent viewportMouseReleaseEvent { + add { EventList.Add ("viewportMouseReleaseEvent", value); } + remove { EventList.Remove ("viewportMouseReleaseEvent", value); } + } + protected static event ViewportPaintEvent viewportPaintEvent { + add { EventList.Add ("viewportPaintEvent", value); } + remove { EventList.Remove ("viewportPaintEvent", value); } + } + protected static event ViewportResizeEvent viewportResizeEvent { + add { EventList.Add ("viewportResizeEvent", value); } + remove { EventList.Remove ("viewportResizeEvent", value); } + } + protected static event ViewportWheelEvent viewportWheelEvent { + add { EventList.Add ("viewportWheelEvent", value); } + remove { EventList.Remove ("viewportWheelEvent", value); } + } + protected static event WheelEvent wheelEvent { + add { EventList.Add ("wheelEvent", value); } + remove { EventList.Remove ("wheelEvent", value); } + } + + // The local event delegates. + protected delegate void ChildEvent (QChildEvent e); + protected delegate void CloseEvent (QCloseEvent e); + protected delegate void ContentsContextMenuEvent (QContextMenuEvent e); + protected delegate void ContentsDragEnterEvent (QDragEnterEvent e); + protected delegate void ContentsDragLeaveEvent (QDragLeaveEvent e); + protected delegate void ContentsDragMoveEvent (QDragMoveEvent e); + protected delegate void ContentsDropEvent (QDropEvent e); + protected delegate void ContentsMouseDoubleClickEvent (QMouseEvent e); + protected delegate void ContentsMouseMoveEvent (QMouseEvent e); + protected delegate void ContentsMousePressEvent (QMouseEvent e); + protected delegate void ContentsMouseReleaseEvent (QMouseEvent e); + protected delegate void ContentsWheelEvent (QWheelEvent e); + protected delegate void ContextMenuEvent (QContextMenuEvent e); + protected delegate void CustomEvent (QCustomEvent e); + protected delegate void DragEnterEvent (QDragEnterEvent e); + protected delegate void DragLeaveEvent (QDragLeaveEvent e); + protected delegate void DragMoveEvent (QDragMoveEvent e); + protected delegate void DropEvent (QDropEvent e); + protected delegate void EnterEvent (QEvent e); + protected delegate void FocusInEvent (QFocusEvent e); + protected delegate void FocusOutEvent (QFocusEvent e); + protected delegate void HideEvent (QHideEvent e); + protected delegate void IMComposeEvent (QIMEvent e); + protected delegate void IMEndEvent (QIMEvent e); + protected delegate void IMStartEvent (QIMEvent e); + protected delegate void KeyPressEvent (QKeyEvent e); + protected delegate void KeyReleaseEvent (QKeyEvent e); + protected delegate void LeaveEvent (QEvent e); + protected delegate void MouseDoubleClickEvent (QMouseEvent e); + protected delegate void MouseMoveEvent (QMouseEvent e); + protected delegate void MousePressEvent (QMouseEvent e); + protected delegate void MouseReleaseEvent (QMouseEvent e); + protected delegate void MoveEvent (QMoveEvent e); + protected delegate void PaintEvent (QPaintEvent e); + protected delegate void ResizeEvent (QResizeEvent e); + protected delegate void ShowEvent (QShowEvent e); + protected delegate void TabletEvent (QTabletEvent e); + protected delegate void TimerEvent (QTimerEvent e); + protected delegate void ViewportContextMenuEvent (QContextMenuEvent e); + protected delegate void ViewportDragEnterEvent (QDragEnterEvent e); + protected delegate void ViewportDragLeaveEvent (QDragLeaveEvent e); + protected delegate void ViewportDragMoveEvent (QDragMoveEvent e); + protected delegate void ViewportDropEvent (QDropEvent e); + protected delegate void ViewportMouseDoubleClickEvent (QMouseEvent e); + protected delegate void ViewportMouseMoveEvent (QMouseEvent e); + protected delegate void ViewportMousePressEvent (QMouseEvent e); + protected delegate void ViewportMouseReleaseEvent (QMouseEvent e); + protected delegate void ViewportPaintEvent (QPaintEvent e); + protected delegate void ViewportResizeEvent (QResizeEvent e); + protected delegate void ViewportWheelEvent (QWheelEvent e); + protected delegate void WheelEvent (QWheelEvent e); + } + + + // The global event delegates. + public delegate void QChildHandler (QObject sender, QEventArgs e); + public delegate void QDragEnterHandler (QObject sender, QEventArgs e); + public delegate void QDropHandler (QObject sender, QEventArgs e); + public delegate void QIMHandler (QObject sender, QEventArgs e); + public delegate void QPaintHandler (QObject sender, QEventArgs e); + public delegate void QTimerHandler (QObject sender, QEventArgs e); + public delegate void QCloseHandler (QObject sender, QEventArgs e); + public delegate void QDragLeaveHandler (QObject sender, QEventArgs e); + public delegate void QEventHandler (QObject sender, QEventArgs e); + public delegate void QKeyHandler (QObject sender, QEventArgs e); + public delegate void QResizeHandler (QObject sender, QEventArgs e); + public delegate void QWheelHandler (QObject sender, QEventArgs e); + public delegate void QContextMenuHandler (QObject sender, QEventArgs e); + public delegate void QDragMoveHandler (QObject sender, QEventArgs e); + public delegate void QFocusHandler (QObject sender, QEventArgs e); + public delegate void QMouseHandler (QObject sender, QEventArgs e); + public delegate void QShowHandler (QObject sender, QEventArgs e); + public delegate void QCustomHandler (QObject sender, QEventArgs e); + public delegate void QDragResponseHandler (QObject sender, QEventArgs e); + public delegate void QHideHandler (QObject sender, QEventArgs e); + public delegate void QMoveHandler (QObject sender, QEventArgs e); + public delegate void QTabletHandler (QObject sender, QEventArgs e); +} |