You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
751 lines
27 KiB
751 lines
27 KiB
15 years ago
|
// 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);
|
||
|
}
|