summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Dahlin <zilch@src.gnome.org>2003-01-21 02:00:36 +0000
committerJohan Dahlin <zilch@src.gnome.org>2003-01-21 02:00:36 +0000
commit151e5c8bd3c9d337142eb269e759b22665f7e8b6 (patch)
tree7e4a0c833e118edf76e9d6225c4b3cf3a7cc4e36
parenteaed18bb424ab10d890c869e6ae927689401e661 (diff)
downloadpygtk-151e5c8bd3c9d337142eb269e759b22665f7e8b6.tar.gz
Added correct __members__ to all different kind of GdkEvent's. This fixes
* gtk/gdk.override (_wrap_gdk_event_tp_getattr): Added correct __members__ to all different kind of GdkEvent's. This fixes the dir() output, also reported as #103979
-rw-r--r--ChangeLog6
-rw-r--r--gtk/gdk.override86
2 files changed, 85 insertions, 7 deletions
diff --git a/ChangeLog b/ChangeLog
index bd646a2b..998d4443 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2003-01-20 Johan Dahlin <jdahlin@async.com.br>
+
+ * gtk/gdk.override (_wrap_gdk_event_tp_getattr): Added correct
+ __members__ to all different kind of GdkEvent's. This fixes the
+ dir() output, also reported as #103979
+
2003-01-19 Johan Dahlin <jdahlin@async.com.br>
* pygtk.py (_get_available_versions): Check if a directory is
diff --git a/gtk/gdk.override b/gtk/gdk.override
index 7a5211ee..1a8d2db3 100644
--- a/gtk/gdk.override
+++ b/gtk/gdk.override
@@ -665,18 +665,15 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
GdkEvent *event = pyg_boxed_get(self, GdkEvent);
guint i;
- if (!strcmp(attr, "type"))
- return PyInt_FromLong(event->type);
- if (!strcmp(attr, "window"))
- return pygobject_new((GObject *)event->any.window);
- if (!strcmp(attr, "send_event"))
- return PyInt_FromLong(event->any.send_event);
-
switch(event->type) {
case GDK_NOTHING: break;
case GDK_DELETE: break;
case GDK_DESTROY: break;
case GDK_EXPOSE: /*GdkEventExpose expose*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssss]",
+ "type", "window", "send_event",
+ "area", "count");
if (!strcmp(attr, "area"))
return pyg_boxed_new(GDK_TYPE_RECTANGLE, &event->expose.area,
TRUE, TRUE);
@@ -684,6 +681,11 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
return PyInt_FromLong(event->expose.count);
break;
case GDK_MOTION_NOTIFY: /*GdkEventMotion motion*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssssssssssss]",
+ "type", "window", "send_event",
+ "time", "x", "y", "axes", "state",
+ "is_hint", "device", "x_root", "y_root");
if (!strcmp(attr, "time"))
return PyInt_FromLong(event->motion.time);
if (!strcmp(attr, "x"))
@@ -718,6 +720,11 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
case GDK_2BUTTON_PRESS: /*GdkEventButton button*/
case GDK_3BUTTON_PRESS: /*GdkEventButton button*/
case GDK_BUTTON_RELEASE: /*GdkEventButton button*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssssssssssss]",
+ "type", "window", "send_event",
+ "time", "x", "y", "axes", "state",
+ "button", "device", "x_root", "y_root");
if (!strcmp(attr, "time"))
return PyInt_FromLong(event->button.time);
if (!strcmp(attr, "x"))
@@ -750,6 +757,10 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
break;
case GDK_KEY_PRESS: /*GdkEventKey key*/
case GDK_KEY_RELEASE: /*GdkEventKey key*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssssss]",
+ "type", "window", "send_event",
+ "time", "state", "keyval", "string");
if (!strcmp(attr, "time"))
return PyInt_FromLong(event->key.time);
if (!strcmp(attr, "state"))
@@ -762,6 +773,12 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
break;
case GDK_ENTER_NOTIFY: /*GdkEventCrossing crossing*/
case GDK_LEAVE_NOTIFY: /*GdkEventCrossing crossing*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssssssssssss]",
+ "type", "window", "send_event",
+ "subwindow", "time", "x", "y",
+ "x_root", "y_root", "mode", "detail",
+ "focus", "state");
if (!strcmp(attr, "subwindow"))
return pygobject_new((GObject *)event->crossing.subwindow);
if (!strcmp(attr, "time"))
@@ -784,10 +801,18 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
return PyInt_FromLong(event->crossing.state);
break;
case GDK_FOCUS_CHANGE: /*GdkEventFocus focus_change*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssss]",
+ "type", "window", "send_event",
+ "in_");
if (!strcmp(attr, "in_"))
return PyInt_FromLong(event->focus_change.in);
break;
case GDK_CONFIGURE: /*GdkEventConfigure configure*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssssss]",
+ "type", "window", "send_event",
+ "x", "y", "width", "height");
if (!strcmp(attr, "x"))
return PyInt_FromLong(event->configure.x);
if (!strcmp(attr, "y"))
@@ -800,6 +825,10 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
case GDK_MAP: break;
case GDK_UNMAP: break;
case GDK_PROPERTY_NOTIFY: /*GdkEventProperty property*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssssss]",
+ "type", "window", "send_event",
+ "atom", "time", "state");
if (!strcmp(attr, "atom"))
return PyGdkAtom_New(event->property.atom);
if (!strcmp(attr, "time"))
@@ -810,6 +839,11 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
case GDK_SELECTION_CLEAR: /*GdkEventSelection selection*/
case GDK_SELECTION_REQUEST: /*GdkEventSelection selection*/
case GDK_SELECTION_NOTIFY: /*GdkEventSelection selection*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssssssss]",
+ "type", "window", "send_event",
+ "selection", "target", "property",
+ "requestor", "time");
if (!strcmp(attr, "selection"))
return PyGdkAtom_New(event->selection.selection);
if (!strcmp(attr, "target"))
@@ -823,6 +857,10 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
break;
case GDK_PROXIMITY_IN: /*GdkEventProximity proximity*/
case GDK_PROXIMITY_OUT: /*GdkEventProximity proximity*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssss]",
+ "type", "window", "send_event",
+ "time", "device");
if (!strcmp(attr, "time"))
return PyInt_FromLong(event->proximity.time);
if (!strcmp(attr, "device"))
@@ -834,6 +872,10 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
case GDK_DRAG_STATUS: /*GdkEventDND dnd*/
case GDK_DROP_START: /*GdkEventDND dnd*/
case GDK_DROP_FINISHED: /*GdkEventDND dnd*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssssss]",
+ "type", "window", "send_event",
+ "context", "time", "x_root", "y_root");
if (!strcmp(attr, "context"))
return pygobject_new((GObject *)event->dnd.context);
if (!strcmp(attr, "time"))
@@ -844,6 +886,10 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
return PyFloat_FromDouble(event->dnd.y_root);
break;
case GDK_CLIENT_EVENT: /*GdkEventClient client*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssssss]",
+ "type", "window", "send_event",
+ "message_type", "data_format", "data");
if (!strcmp(attr, "message_type"))
return PyGdkAtom_New(event->client.message_type);
if (!strcmp(attr, "data_format"))
@@ -852,12 +898,21 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
return PyString_FromStringAndSize(event->client.data.b, 20);
break;
case GDK_VISIBILITY_NOTIFY: /*GdkEventVisibility visibility*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[ssss]",
+ "type", "window", "send_event",
+ "state");
if (!strcmp(attr, "state"))
return PyInt_FromLong(event->visibility.state);
break;
case GDK_NO_EXPOSE: /*GdkEventNoExpose no_expose*/
break;
case GDK_SCROLL: /*GdkEventScroll scroll*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssssssssss]",
+ "type", "window", "send_event",
+ "time", "x", "y", "state", "direction",
+ "device", "x_root", "y_root");
if (!strcmp(attr, "time"))
return PyInt_FromLong(event->scroll.time);
if (!strcmp(attr, "x"))
@@ -876,12 +931,20 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
return PyFloat_FromDouble(event->scroll.y_root);
break;
case GDK_WINDOW_STATE: /*GdkEventWindowState window_state*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssss]",
+ "type", "window", "send_event",
+ "changed_mask", "new_window_state");
if (!strcmp(attr, "changed_mask"))
return PyInt_FromLong(event->window_state.changed_mask);
if (!strcmp(attr, "new_window_state"))
return PyInt_FromLong(event->window_state.new_window_state);
break;
case GDK_SETTING: /*GdkEventSetting setting*/
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sssss]",
+ "type", "window", "send_event",
+ "action", "name");
if (!strcmp(attr, "action"))
return PyInt_FromLong(event->setting.action);
if (!strcmp(attr, "name"))
@@ -890,6 +953,15 @@ _wrap_gdk_event_tp_getattr(PyObject *self, char *attr)
default:
break;
}
+
+ if (!strcmp(attr, "type"))
+ return PyInt_FromLong(event->type);
+ if (!strcmp(attr, "window"))
+ return pygobject_new((GObject *)event->any.window);
+ if (!strcmp(attr, "send_event"))
+ return PyInt_FromLong(event->any.send_event);
+ if (!strcmp(attr, "__members__"))
+ return Py_BuildValue("[sss]", "type", "window", "send_event");
return Py_FindMethod(_PyGdkEvent_methods, self, attr);
}