📄 z875.html
字号:
case GDK_LEAVE_NOTIFY: return g_strdup(_("Leave Notify\n")); break; case GDK_FOCUS_CHANGE: return g_strdup(_("Focus Change\n")); break; case GDK_CONFIGURE: return g_strdup(_("Configure\n")); break; case GDK_MAP: return g_strdup(_("Map\n")); break; case GDK_UNMAP: return g_strdup(_("Unmap\n")); break; case GDK_PROPERTY_NOTIFY: return g_strdup(_("Property Notify\n")); break; case GDK_SELECTION_CLEAR: return g_strdup(_("Selection Clear\n")); break; case GDK_SELECTION_REQUEST: return g_strdup(_("Selection Request\n")); break; case GDK_SELECTION_NOTIFY: return g_strdup(_("Selection Notify\n")); break; case GDK_PROXIMITY_IN: return g_strdup(_("Proximity In\n")); break; case GDK_PROXIMITY_OUT: return g_strdup(_("Proximity Out\n")); break; case GDK_DRAG_ENTER: return g_strdup(_("Drag Enter\n")); break; case GDK_DRAG_LEAVE: return g_strdup(_("Drag Leave\n")); break; case GDK_DRAG_MOTION: return g_strdup(_("Drag Motion\n")); break; case GDK_DRAG_STATUS: return g_strdup(_("Drag Status\n")); break; case GDK_DROP_START: return g_strdup(_("Drop Start\n")); break; case GDK_DROP_FINISHED: return g_strdup(_("Drop Finished\n")); break; case GDK_CLIENT_EVENT: return g_strdup(_("Client Event\n")); break; case GDK_VISIBILITY_NOTIFY: return g_strdup(_("Visibility Notify\n")); break; case GDK_NO_EXPOSE: return g_strdup(_("No Expose\n")); break; default: g_assert_not_reached(); return NULL; break; }}static gchar* any_event_line(GdkEvent* event){ guint32 event_time; event_time = gdk_event_get_time(event); if (event_time != GDK_CURRENT_TIME) return g_strdup_printf(_("Window: %p Time: %u send_event: %s\n"), event->any.window, event_time, event->any.send_event ? _("True") : _("False")); else return g_strdup_printf(_("Window: %p send_event: %s\n"), event->any.window, event->any.send_event ? _("True") : _("False"));}#define MAX_STATES 30static gchar* event_state_line(GdkModifierType state){ gchar** states; gint n_active; states = g_new(gchar*, MAX_STATES); n_active = 0; if (state & GDK_SHIFT_MASK) { states[n_active] = _("Shift"); ++n_active; } if (state & GDK_LOCK_MASK) { states[n_active] = _("Lock"); ++n_active; } if (state & GDK_CONTROL_MASK) { states[n_active] = _("Ctrl"); ++n_active; } if (state & GDK_MOD1_MASK) { states[n_active] = _("Mod1"); ++n_active; } if (state & GDK_MOD2_MASK) { states[n_active] = _("Mod2"); ++n_active; } if (state & GDK_MOD3_MASK) { states[n_active] = _("Mod3"); ++n_active; } if (state & GDK_MOD4_MASK) { states[n_active] = _("Mod4"); ++n_active; } if (state & GDK_MOD5_MASK) { states[n_active] = _("Mod5"); ++n_active; } if (state & GDK_BUTTON1_MASK) { states[n_active] = _("Button1"); ++n_active; } if (state & GDK_BUTTON2_MASK) { states[n_active] = _("Button2"); ++n_active; } if (state & GDK_BUTTON3_MASK) { states[n_active] = _("Button3"); ++n_active; } if (state & GDK_BUTTON4_MASK) { states[n_active] = _("Button4"); ++n_active; } if (state & GDK_BUTTON5_MASK) { states[n_active] = _("Button4"); ++n_active; } if (state & GDK_RELEASE_MASK) { states[n_active] = _("Release"); ++n_active; } if (n_active == 0) return NULL; else { /* Not efficient, but not important */ gchar* str = NULL; gchar* tmp = NULL; guint i = 0; while (i < n_active) { if (str) { tmp = str; str = g_strconcat(str, " | ", states[i], NULL); g_free(tmp); } else { str = g_strdup(states[i]); } ++i; } tmp = str; str = g_strconcat(str, "\n", NULL); g_free(tmp); return str; }}static gchar* event_to_text (GdkEvent* event){ gchar* any_line; gchar* name_line; gchar* entire_line; gchar* detail; gchar* state; name_line = event_name_line(event); any_line = any_event_line(event); entire_line = NULL; detail = NULL; state = NULL; switch (event->type) { case GDK_NOTHING: break; case GDK_DELETE: break; case GDK_DESTROY: break; case GDK_EXPOSE: detail = g_strdup_printf(_("Area: %d,%d %dx%d Count: %d\n"), event->expose.area.x, event->expose.area.y, event->expose.area.width, event->expose.area.height, event->expose.count); break; case GDK_MOTION_NOTIFY: detail = g_strdup_printf(_("x: %g y: %g\n"), event->motion.x, event->motion.y); state = event_state_line(event->motion.state); break; case GDK_BUTTON_PRESS: case GDK_2BUTTON_PRESS: case GDK_3BUTTON_PRESS: case GDK_BUTTON_RELEASE: detail = g_strdup_printf(_("Button: %d\n"), event->button.button); state = event_state_line(event->button.state); break; case GDK_KEY_PRESS: case GDK_KEY_RELEASE: detail = g_strdup_printf(_("Keyval: GDK_%s Text: %s\n"), gdk_keyval_name(event->key.keyval), event->key.string); state = event_state_line(event->key.state); break; case GDK_ENTER_NOTIFY: break; case GDK_LEAVE_NOTIFY: break; case GDK_FOCUS_CHANGE: break; case GDK_CONFIGURE: break; case GDK_MAP: break; case GDK_UNMAP: break; case GDK_PROPERTY_NOTIFY: break; case GDK_SELECTION_CLEAR: break; case GDK_SELECTION_REQUEST: break; case GDK_SELECTION_NOTIFY: break; case GDK_PROXIMITY_IN: break; case GDK_PROXIMITY_OUT: break; case GDK_DRAG_ENTER: break; case GDK_DRAG_LEAVE: break; case GDK_DRAG_MOTION: break; case GDK_DRAG_STATUS: break; case GDK_DROP_START: break; case GDK_DROP_FINISHED: break; case GDK_CLIENT_EVENT: break; case GDK_VISIBILITY_NOTIFY: break; case GDK_NO_EXPOSE: break; default: g_assert_not_reached(); break; } if (entire_line == NULL) { /* Assumes we always have a detail if we have a state */ entire_line = g_strconcat(name_line, " ", any_line, detail ? " " : NULL, detail, state ? " " : NULL, state, NULL); } g_free(name_line); g_free(any_line); g_free(detail); g_free(state); return entire_line;} </pre> </td> </tr> </table> </div> </div> <div class="NAVFOOTER"> <br> <br> <table width="100%" border="0" bgcolor="#ffffff" cellpadding= "1" cellspacing="0"> <tr> <td width="25%" bgcolor="#ffffff" align="left"> <a href="listing.html"><font color="#0000ff" size="2"> <b><<< Previous</b></font></a> </td> <td width="25%" colspan="2" bgcolor="#ffffff" align= "center"> <font color="#0000ff" size="2"><b><a href="ggad.html"> <font color="#0000ff" size="2"><b> Home</b></font></a></b></font> </td> <td width="25%" bgcolor="#ffffff" align="right"> </td> </tr> <tr> <td colspan="2" align="left"> <font color="#000000" size="2"><b>Code Listings</b></font> </td> <td colspan="2" align="right"> </td> </tr> </table> </div> </body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -