From: Matt Birkholz Date: Fri, 20 Jul 2012 17:27:33 +0000 (-0700) Subject: gtk: Use Cairo, punt gdk_draw_*, in preparation for Gtk+ 3.0. X-Git-Tag: mit-scheme-pucked-9.2.12~575 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=265b418a646c126bec674ee7ab9f421c8e964c11;p=mit-scheme.git gtk: Use Cairo, punt gdk_draw_*, in preparation for Gtk+ 3.0. Also replaced some structure member accesses with accessor functions (or just eliminated them). Deleted some unused declarations. GdkVisual, GdkGC and GdkDrawable are no more. Fixed green and blue switchup in peek-gdkcolor and a call to vector-length with 2 args in guarantee-color-spec. --- diff --git a/doc/gtk/gtk.texinfo b/doc/gtk/gtk.texinfo index 2d0f5eb2c..eff5f9805 100644 --- a/doc/gtk/gtk.texinfo +++ b/doc/gtk/gtk.texinfo @@ -1913,8 +1913,9 @@ Removes @var{ink} from its drawing. @subsection Draw Ink -This type of fix-ink is rendered with a @code{gdk_draw_} toolkit -function. +This type of ink draws (outlines and/or fills) a shape according to a +variety of options similar to those kept in an X GC (graphics +context) for e.g. XDrawLine. @deffn Class A direct subclass of fix-ink. @@ -1922,7 +1923,8 @@ A direct subclass of fix-ink. @subsection Line Ink -A draw-ink rendered with @code{gdk_draw_line}. +A draw-ink rendered with color, width and dashes as if by an +@code{XDrawLine} request. @deffn Class A direct subclass of draw-ink. @@ -1979,7 +1981,8 @@ should be solid. @subsection Rectangle Ink -A draw-ink rendered with @code{gdk_draw_rectangle}. +A draw-ink rendered with a fill color or outline width and color as if +by an @code{XDrawRectangle} request. @deffn Class A direct subclass of draw-ink. @@ -2034,10 +2037,12 @@ is outlined, not filled. @subsection Arc Ink -A draw-ink rendered with @code{gdk_draw_arc}. Its width and height -are the dimensions of the bounding box for the entire ellipse, though -only a portion may be drawn. The portion drawn starts with a -start-angle and ends after a certain amount of sweep-angle. +A draw-ink rendered with a fill color or outline width and color as if +by an @code{XDrawArc} request. Its position, width and height define +the bounding box of an ellipse. The portion drawn starts with a +start-angle and ends after a sweep-angle. Both angles are in degrees +and are measured clockwise from 3 o'clock on the ellipse's circle --- +the ellipse scaled into a circle. @deffn Class A direct subclass of draw-ink. @@ -2052,11 +2057,11 @@ A new arc-ink. @end deffn @deffn Procedure set-arc-ink! arc x y width height -Sets the position and size of @var{arc}'s entire ellipse. +Sets the position and size of @var{arc}'s ellipse. @end deffn @deffn Procedure arc-ink-start-angle arc -@var{Arc}'s start-angle. +@var{Arc}'s start-angle (degrees). @end deffn @deffn Procedure set-arc-ink-start-angle! arc degrees @@ -2064,7 +2069,7 @@ Sets @var{arc}'s start-angle. @end deffn @deffn Procedure arc-ink-sweep-angle arc -@var{Arc}'s sweep-angle. +@var{Arc}'s sweep-angle (degrees). @end deffn @deffn Procedure set-arc-ink-sweep-angle! arc degrees @@ -2108,8 +2113,10 @@ filled. @subsection Text Ink -A draw-ink rendered with @code{gdk_draw_layout} applied to a -PangoLayout from an abstract ``pango-layout'' slot. +A draw-ink rendered by a PangoLayout. This abstract class uses an +abstract pango-layout slot provided by the generic function +@code{text-ink-pango-layout}, which is implemented by e.g. the simple +text ink (below). @deffn Class An abstract, direct subclass of draw-ink. @@ -2149,8 +2156,9 @@ acceptable to @bref{gtk-widget-parse-color} for every widget in which @subsection Simple Text Ink -A text-ink whose abstract pango-layout slot is implemented by an -actual instance slot. +A text-ink whose abstract text-ink-pango-layout slot is implemented by +an actual instance slot. Use @code{set-simple-text-ink-text!} to fill +it. @deffn Class A direct subclass of text-ink. @@ -2186,8 +2194,8 @@ should be a PangoFontDescription, or a string acceptable to @subsection Image Ink -A draw-ink rendered by @code{gdk_draw_pixbuf}. It uses a -pixbuf-loader so that it can render the pixbuf as it loads. +A draw-ink rendered by a pixbuf. It uses a pixbuf-loader so that it can +render the pixbuf as it loads. @deffn Class A direct subclass of fix-ink. diff --git a/src/gtk/Includes/cairo.cdecl b/src/gtk/Includes/cairo.cdecl index baaf3a98e..77ea7d2b4 100644 --- a/src/gtk/Includes/cairo.cdecl +++ b/src/gtk/Includes/cairo.cdecl @@ -153,7 +153,7 @@ cairo/cairo.h (v1.4) |# ;(extern void cairo_set_fill_rule (cr (* cairo_t)) (fill_rule cairo_fill_rule_t)) -;(extern void cairo_set_line_width (cr (* cairo_t)) (width double)) +(extern void cairo_set_line_width (cr (* cairo_t)) (width double)) ;(typedef cairo_line_cap_t ; (enum _cairo_line_cap @@ -171,17 +171,17 @@ cairo/cairo.h (v1.4) |# ;(extern void cairo_set_line_join (cr (* cairo_t)) (line_join cairo_line_join_t)) -;(extern void cairo_set_dash -; (cr (* cairo_t)) -; (dashes (* (const double))) -; (num_dashes int) -; (offset double)) +(extern void cairo_set_dash + (cr (* cairo_t)) + (dashes (* (const double))) + (num_dashes int) + (offset double)) ;(extern void cairo_set_miter_limit (cr (* cairo_t)) (limit double)) (extern void cairo_translate (cr (* cairo_t)) (tx double) (ty double)) -;(extern void cairo_scale (cr (* cairo_t)) (sx double) (sy double)) +(extern void cairo_scale (cr (* cairo_t)) (sx double) (sy double)) (extern void cairo_rotate (cr (* cairo_t)) (angle double)) @@ -214,35 +214,33 @@ cairo/cairo.h (v1.4) |# ;(extern void cairo_new_sub_path (cairo_t *cr); -;(extern void cairo_line_to (cr (* cairo_t)) double x, double y); +(extern void cairo_line_to (cr (* cairo_t)) (x double) (y double)) ;(extern void cairo_curve_to (cr (* cairo_t)) ; double x1, double y1, ; double x2, double y2, ; double x3, double y3); -;(extern void cairo_arc (cr (* cairo_t)) +(extern void cairo_arc (cr (* cairo_t)) + (xc double) (yc double) (radius double) + (angle1 double) (angle2 double)) + +;(extern void cairo_arc_negative (cr (* cairo_t)) ; double xc, double yc, ; double radius, ; double angle1, double angle2); -;(extern void cairo_arc_negative (cr (* cairo_t)) -; double xc, double yc, -; double radius, -; double angle1, double angle2); - -;(extern void cairo_rel_move_to (cr (* cairo_t)) double dx, double dy); +(extern void cairo_rel_move_to (cr (* cairo_t)) (dx double) (dy double)) -;(extern void cairo_rel_line_to (cr (* cairo_t)) double dx, double dy); +(extern void cairo_rel_line_to (cr (* cairo_t)) (dx double) (dy double)) ;(extern void cairo_rel_curve_to (cr (* cairo_t)) ; double dx1, double dy1, ; double dx2, double dy2, ; double dx3, double dy3); -;(extern void cairo_rectangle (cr (* cairo_t)) -; double x, double y, -; double width, double height); +(extern void cairo_rectangle + (cr (* cairo_t)) (x double) (y double) (width double) (height double)) ;(extern void cairo_close_path (cairo_t *cr); @@ -263,14 +261,15 @@ cairo/cairo.h (v1.4) |# cairo_surface_t *surface, double surface_x, double surface_y); +|# +(extern void cairo_stroke (cr (* cairo_t))) - (extern void cairo_stroke (cairo_t *cr); - - (extern void cairo_stroke_preserve (cairo_t *cr); +(extern void cairo_stroke_preserve (cr (* cairo_t))) - (extern void cairo_fill (cairo_t *cr); +(extern void cairo_fill (cr (* cairo_t))) - (extern void cairo_fill_preserve (cairo_t *cr); +(extern void cairo_fill_preserve (cr (* cairo_t))) +#| (extern void cairo_copy_page (cairo_t *cr); @@ -295,9 +294,9 @@ cairo/cairo.h (v1.4) |# ;; Clipping (extern void cairo_reset_clip (cairo_t *cr); - - (extern void cairo_clip (cairo_t *cr); - +|# +(extern void cairo_clip (cr (* cairo_t))) +#| (extern void cairo_clip_preserve (cairo_t *cr); (extern void cairo_clip_extents (cr (* cairo_t)) @@ -672,16 +671,15 @@ cairo_append_path (cairo_t *cr, (extern void cairo_path_destroy (cairo_path_t *path); +|# ;;; Error status queries - (extern cairo_status_t -cairo_status (cairo_t *cr); - - (extern const char * -cairo_status_to_string (cairo_status_t status); - +(extern cairo_status_t cairo_status (cr (* cairo_t))) + +(extern (* (const char)) cairo_status_to_string (status cairo_status_t)) +#| ;;; Surface manipulation (extern cairo_surface_t * diff --git a/src/gtk/Includes/gdk.cdecl b/src/gtk/Includes/gdk.cdecl index 8e30e3def..f41998277 100644 --- a/src/gtk/Includes/gdk.cdecl +++ b/src/gtk/Includes/gdk.cdecl @@ -7,11 +7,11 @@ gtk-2.0/gdk/gdk.h |# (include "gdkcursor") ;(include "gdkdisplay") ;(include "gdkdnd") -(include "gdkdrawable") +;(include "gdkdrawable") ;(include "gdkenumtypes") (include "gdkevents") ;(include "gdkfont") -(include "gdkgc") +;(include "gdkgc") ;(include "gdkimage") ;(include "gdkinput") (include "gdkkeys") @@ -26,7 +26,7 @@ gtk-2.0/gdk/gdk.h |# ;(include "gdkselection") ;(include "gdkspawn") (include "gdktypes") -(include "gdkvisual") +;(include "gdkvisual") (include "gdkwindow") (extern gboolean gdk_rectangle_intersect diff --git a/src/gtk/Includes/gdkcairo.cdecl b/src/gtk/Includes/gdkcairo.cdecl index 8c4df8b29..43c98977d 100644 --- a/src/gtk/Includes/gdkcairo.cdecl +++ b/src/gtk/Includes/gdkcairo.cdecl @@ -15,7 +15,7 @@ gtk-2.0/gdk/gdkcairo.h |# #;(extern void gdk_cairo_set_source_color (cr (* cairo_t)) (color (* (const GdkColor)))) -#;(extern void gdk_cairo_set_source_pixbuf +(extern void gdk_cairo_set_source_pixbuf (cr (* cairo_t)) (pixbuf (* (const GdkPixbuf))) (pixbuf_x double) diff --git a/src/gtk/Includes/gdkdrawable.cdecl b/src/gtk/Includes/gdkdrawable.cdecl deleted file mode 100644 index 934379505..000000000 --- a/src/gtk/Includes/gdkdrawable.cdecl +++ /dev/null @@ -1,104 +0,0 @@ -#| -*-Scheme-*- - -gtk-2.0/gdk/gdkdrawable.h |# - -(include "gdktypes") -(include "gdkgc") -(include "gdkrgb") -(include "gdk-pixbuf") -(include "cairo") - -(typedef GdkDrawableClass (struct _GdkDrawableClass)) -(typedef GdkTrapezoid (struct _GdkTrapezoid)) - -(struct _GdkDrawable - (parent_instance GObject)) - -(struct _GdkDrawableClass - (parent_class GObjectClass) - (create_gc - (* (function (* GdkGC) - (drawable (* GdkDrawable)) - (values (* GdkGCValues)) - (mask GdkGCValuesMask)))) - (draw_rectangle (* mumble)) - (draw_arc (* mumble)) - (draw_polygon (* mumble)) - (draw_text (* mumble)) - (draw_text_wc (* mumble)) - (draw_drawable (* mumble)) - (draw_points (* mumble)) - (draw_segments (* mumble)) - (draw_lines (* mumble)) - (draw_glyphs (* mumble)) - (draw_image (* mumble)) - - (get_depth (* mumble)) - (get_size (* mumble)) - (set_colormap (* mumble)) - (get_colormap (* mumble)) - (get_visual (* mumble)) - (get_screen (* mumble)) - (get_image (* mumble)) - (get_clip_region (* mumble)) - (get_visible_region (* mumble)) - (get_composite_drawable (* mumble)) - (draw_pixbuf (* mumble)) - (_copy_to_image (* mumble)) - (draw_glyphs_transformed (* mumble)) - (draw_trapezoids (* mumble)) - (ref_cairo_surface (* mumble))) - -(struct _GdkTrapezoid - (y1 double) - (x11 double) - (x21 double) - (y2 double) - (x12 double) - (x22 double)) - -(extern void gdk_draw_line ;gtk-2.20.1 - (drawable (* GdkDrawable)) - (gc (* GdkGC)) - (x1 gint) (y1 gint) - (x2 gint) (y2 gint)) - -(extern void gdk_draw_rectangle ;gtk-2.20.1 - (drawable (* GdkDrawable)) - (gc (* GdkGC)) - (filled gboolean) - (x gint) - (y gint) - (width gint) - (height gint)) - -(extern void gdk_draw_arc ;gtk-2.20.1 - (drawable (* GdkDrawable)) - (gc (* GdkGC)) - (filled gboolean) - (x gint) - (y gint) - (width gint) - (height gint) - (angle1 gint) - (angle2 gint)) - -(extern void gdk_draw_layout - (drawable (* GdkDrawable)) - (gc (* GdkGC)) - (x gint) (y gint) - (layout (* PangoLayout))) - -(extern void gdk_draw_pixbuf - (drawable (* GdkDrawable)) - (gc (* GdkGC)) - (pixbuf (* GdkPixbuf)) - (src_x gint) - (src_y gint) - (dest_x gint) - (dest_y gint) - (width gint) - (height gint) - (dither GdkRgbDither) - (x_dither gint) - (y_dither gint)) \ No newline at end of file diff --git a/src/gtk/Includes/gdkgc.cdecl b/src/gtk/Includes/gdkgc.cdecl deleted file mode 100644 index 85cf21d18..000000000 --- a/src/gtk/Includes/gdkgc.cdecl +++ /dev/null @@ -1,215 +0,0 @@ -#| -*-Scheme-*- - -gtk-2.0/gdk/gdkgc.h |# - -(include "gdkcolor") -(include "gdktypes") - -(typedef GdkGCValues (struct _GdkGCValues)) -(typedef GdkGCClass (struct _GdkGCClass)) - -(typedef GdkCapStyle - (enum - (GDK_CAP_NOT_LAST) - (GDK_CAP_BUTT) - (GDK_CAP_ROUND) - (GDK_CAP_PROJECTING))) - -(typedef GdkFill - (enum - (GDK_SOLID) - (GDK_TILED) - (GDK_STIPPLED) - (GDK_OPAQUE_STIPPLED))) - -(typedef GdkFunction - (enum - (GDK_COPY) - (GDK_INVERT) - (GDK_XOR) - (GDK_CLEAR) - (GDK_AND) - (GDK_AND_REVERSE) - (GDK_AND_INVERT) - (GDK_NOOP) - (GDK_OR) - (GDK_EQUIV) - (GDK_OR_REVERSE) - (GDK_COPY_INVERT) - (GDK_OR_INVERT) - (GDK_NAND) - (GDK_NOR) - (GDK_SET))) - -(typedef GdkJoinStyle - (enum - (GDK_JOIN_MITER) - (GDK_JOIN_ROUND) - (GDK_JOIN_BEVEL))) - -(typedef GdkLineStyle - (enum - (GDK_LINE_SOLID) - (GDK_LINE_ON_OFF_DASH) - (GDK_LINE_DOUBLE_DASH))) - -(typedef GdkSubwindowMode - (enum - (GDK_CLIP_BY_CHILDREN) - (GDK_INCLUDE_INFERIORS))) - -(typedef GdkGCValuesMask - (enum - (GDK_GC_FOREGROUND) - (GDK_GC_BACKGROUND) - (GDK_GC_FONT) - (GDK_GC_FUNCTION) - (GDK_GC_FILL) - (GDK_GC_TILE) - (GDK_GC_STIPPLE) - (GDK_GC_CLIP_MASK) - (GDK_GC_SUBWINDOW) - (GDK_GC_TS_X_ORIGIN) - (GDK_GC_TS_Y_ORIGIN) - (GDK_GC_CLIP_X_ORIGIN) - (GDK_GC_CLIP_Y_ORIGIN) - (GDK_GC_EXPOSURES) - (GDK_GC_LINE_WIDTH) - (GDK_GC_LINE_STYLE) - (GDK_GC_CAP_STYLE) - (GDK_GC_JOIN_STYLE))) - -(struct _GdkGCValues - (foreground GdkColor) - (background GdkColor) - (font (* GdkFont)) - (function GdkFunction) - (fill GdkFill) - (tile (* GdkPixmap)) - (stipple (* GdkPixmap)) - (clip_mask (* GdkPixmap)) - (subwindow_mode GdkSubwindowMode) - (ts_x_origin gint) - (ts_y_origin gint) - (clip_x_origin gint) - (clip_y_origin gint) - (graphics_exposures gint) - (line_width gint) - (line_style GdkLineStyle) - (cap_style GdkCapStyle) - (join_style GdkJoinStyle)) - -(struct _GdkGC - (parent_instance GObject) - (clip_x_origin gint) - (clip_y_origin gint) - (ts_x_origin gint) - (ts_y_origin gint) - (colormap (* GdkColormap))) - -(struct _GdkGCClass - (parent_class GObjectClass) - (get_values (* (function void - (gc (* GdkGC)) - (values (* GdkGCValues))))) - (set_values (* (function void - (gc (* GdkGC)) - (values (* GdkGCValues)) - (mask GdkGCValuesMask)))) - (set_dashes (* (function void - (gc (* GdkGC)) - (dash_offset gint) - (dash_list (array gint8)) - (gint n)))) - - ;; Padding for future expansion - (_gdk_reserved1 (* (function void))) - (_gdk_reserved2 (* (function void))) - (_gdk_reserved3 (* (function void))) - (_gdk_reserved4 (* (function void)))) - -;(extern GType gdk_gc_get_type) -;(extern (* GdkGC) gdk_gc_new -; (drawable (* GdkDrawable))) -;(extern (* GdkGC) gdk_gc_new_with_values -; (drawable (* GdkDrawable)) -; (values (* GdkGCValues)) -; (values_mask GdkGCValuesMask)) -(extern void gdk_gc_get_values - (gc (* GdkGC)) - (values (* GdkGCValues))) -;(extern void gdk_gc_set_values -; (gc (* GdkGC)) -; (values (* GdkGCValues)) -; (values_mask GdkGCValuesMask)) -;(extern void gdk_gc_set_foreground -; (gc (* GdkGC)) -; (color (* (const GdkColor)))) -;(extern void gdk_gc_set_background -; (gc (* GdkGC)) -; (color (* (const GdkColor)))) -;(extern void gdk_gc_set_function -; (gc (* GdkGC)) -; (function GdkFunction)) -;(extern void gdk_gc_set_fill -; (gc (* GdkGC)) -; (fill GdkFill)) -;(extern void gdk_gc_set_tile -; (gc (* GdkGC)) -; (tile (* GdkPixmap))) -;(extern void gdk_gc_set_stipple -; (gc (* GdkGC)) -; (stipple (* GdkPixmap))) -;(extern void gdk_gc_set_ts_origin -; (gc (* GdkGC)) -; (x gint) (y gint)) -;(extern void gdk_gc_set_clip_origin -; (gc (* GdkGC)) -; (x gint) (y gint)) -;(extern void gdk_gc_set_clip_mask -; (gc (* GdkGC)) -; (mask (* GdkBitmap))) -(extern void gdk_gc_set_clip_rectangle - (gc (* GdkGC)) - (rectangle (* GdkRectangle))) -;(extern void gdk_gc_set_clip_region -; (gc (* GdkGC)) -; (region (* GdkRegion))) -;(extern void gdk_gc_set_subwindow -; (gc (* GdkGC)) -; (mode GdkSubwindowMode)) -;(extern void gdk_gc_set_exposures -; (gc (* GdkGC)) -; (exposures gboolean)) -;(extern void gdk_gc_set_line_attributes -; (gc (* GdkGC)) -; (line_width gint) -; (line_style GdkLineStyle) -; (cap_style GdkCapStyle) -; (join_style GdkJoinStyle)) -;(extern void gdk_gc_set_dashes -; (gc (* GdkGC)) -; (dash_offset gint) -; (dash_list (array gint8)) -; (n gint)) -;(extern void gdk_gc_offset -; (gc (* GdkGC)) -; (x_offset gint) -; (y_offset gint)) -;(extern void gdk_gc_copy -; (dst_gc (* GdkGC)) -; (src_gc (* GdkGC))) -; -;(extern void gdk_gc_set_colormap -; (gc (* GdkGC)) -; (colormap (* GdkColormap))) -;(extern (* GdkColormap) gdk_gc_get_colormap -; (gc (* GdkGC))) -;(extern void gdk_gc_set_rgb_fg_color -; (gc (* GdkGC)) -; (color (* (const GdkColor)))) -;(extern void gdk_gc_set_rgb_bg_color -; (gc (* GdkGC)) -; (color (* (const GdkColor)))) -;(extern (* GdkScreen) gdk_gc_get_screen -; (gc (* GdkGC))) \ No newline at end of file diff --git a/src/gtk/Includes/gdkkeysyms.cdecl b/src/gtk/Includes/gdkkeysyms.cdecl index 77e9841d1..7c1ec2843 100644 --- a/src/gtk/Includes/gdkkeysyms.cdecl +++ b/src/gtk/Includes/gdkkeysyms.cdecl @@ -3,1711 +3,1711 @@ gtk-2.0/gdk/gdkkeysyms.h |# (enum GdkKeysyms - (GDK_VoidSymbol) - (GDK_BackSpace) - (GDK_Tab) - (GDK_Linefeed) - (GDK_Clear) - (GDK_Return) - (GDK_Pause) - (GDK_Scroll_Lock) - (GDK_Sys_Req) - (GDK_Escape) - (GDK_Delete) - (GDK_Multi_key) - (GDK_Codeinput) - (GDK_SingleCandidate) - (GDK_MultipleCandidate) - (GDK_PreviousCandidate) - (GDK_Kanji) - (GDK_Muhenkan) - (GDK_Henkan_Mode) - (GDK_Henkan) - (GDK_Romaji) - (GDK_Hiragana) - (GDK_Katakana) - (GDK_Hiragana_Katakana) - (GDK_Zenkaku) - (GDK_Hankaku) - (GDK_Zenkaku_Hankaku) - (GDK_Touroku) - (GDK_Massyo) - (GDK_Kana_Lock) - (GDK_Kana_Shift) - (GDK_Eisu_Shift) - (GDK_Eisu_toggle) - (GDK_Kanji_Bangou) - (GDK_Zen_Koho) - (GDK_Mae_Koho) - (GDK_Home) - (GDK_Left) - (GDK_Up) - (GDK_Right) - (GDK_Down) - (GDK_Prior) - (GDK_Page_Up) - (GDK_Next) - (GDK_Page_Down) - (GDK_End) - (GDK_Begin) - (GDK_Select) - (GDK_Print) - (GDK_Execute) - (GDK_Insert) - (GDK_Undo) - (GDK_Redo) - (GDK_Menu) - (GDK_Find) - (GDK_Cancel) - (GDK_Help) - (GDK_Break) - (GDK_Mode_switch) - (GDK_script_switch) - (GDK_Num_Lock) - (GDK_KP_Space) - (GDK_KP_Tab) - (GDK_KP_Enter) - (GDK_KP_F1) - (GDK_KP_F2) - (GDK_KP_F3) - (GDK_KP_F4) - (GDK_KP_Home) - (GDK_KP_Left) - (GDK_KP_Up) - (GDK_KP_Right) - (GDK_KP_Down) - (GDK_KP_Prior) - (GDK_KP_Page_Up) - (GDK_KP_Next) - (GDK_KP_Page_Down) - (GDK_KP_End) - (GDK_KP_Begin) - (GDK_KP_Insert) - (GDK_KP_Delete) - (GDK_KP_Equal) - (GDK_KP_Multiply) - (GDK_KP_Add) - (GDK_KP_Separator) - (GDK_KP_Subtract) - (GDK_KP_Decimal) - (GDK_KP_Divide) - (GDK_KP_0) - (GDK_KP_1) - (GDK_KP_2) - (GDK_KP_3) - (GDK_KP_4) - (GDK_KP_5) - (GDK_KP_6) - (GDK_KP_7) - (GDK_KP_8) - (GDK_KP_9) - (GDK_F1) - (GDK_F2) - (GDK_F3) - (GDK_F4) - (GDK_F5) - (GDK_F6) - (GDK_F7) - (GDK_F8) - (GDK_F9) - (GDK_F10) - (GDK_F11) - (GDK_L1) - (GDK_F12) - (GDK_L2) - (GDK_F13) - (GDK_L3) - (GDK_F14) - (GDK_L4) - (GDK_F15) - (GDK_L5) - (GDK_F16) - (GDK_L6) - (GDK_F17) - (GDK_L7) - (GDK_F18) - (GDK_L8) - (GDK_F19) - (GDK_L9) - (GDK_F20) - (GDK_L10) - (GDK_F21) - (GDK_R1) - (GDK_F22) - (GDK_R2) - (GDK_F23) - (GDK_R3) - (GDK_F24) - (GDK_R4) - (GDK_F25) - (GDK_R5) - (GDK_F26) - (GDK_R6) - (GDK_F27) - (GDK_R7) - (GDK_F28) - (GDK_R8) - (GDK_F29) - (GDK_R9) - (GDK_F30) - (GDK_R10) - (GDK_F31) - (GDK_R11) - (GDK_F32) - (GDK_R12) - (GDK_F33) - (GDK_R13) - (GDK_F34) - (GDK_R14) - (GDK_F35) - (GDK_R15) - (GDK_Shift_L) - (GDK_Shift_R) - (GDK_Control_L) - (GDK_Control_R) - (GDK_Caps_Lock) - (GDK_Shift_Lock) - (GDK_Meta_L) - (GDK_Meta_R) - (GDK_Alt_L) - (GDK_Alt_R) - (GDK_Super_L) - (GDK_Super_R) - (GDK_Hyper_L) - (GDK_Hyper_R) - (GDK_ISO_Lock) - (GDK_ISO_Level2_Latch) - (GDK_ISO_Level3_Shift) - (GDK_ISO_Level3_Latch) - (GDK_ISO_Level3_Lock) - (GDK_ISO_Group_Shift) - (GDK_ISO_Group_Latch) - (GDK_ISO_Group_Lock) - (GDK_ISO_Next_Group) - (GDK_ISO_Next_Group_Lock) - (GDK_ISO_Prev_Group) - (GDK_ISO_Prev_Group_Lock) - (GDK_ISO_First_Group) - (GDK_ISO_First_Group_Lock) - (GDK_ISO_Last_Group) - (GDK_ISO_Last_Group_Lock) - (GDK_ISO_Left_Tab) - (GDK_ISO_Move_Line_Up) - (GDK_ISO_Move_Line_Down) - (GDK_ISO_Partial_Line_Up) - (GDK_ISO_Partial_Line_Down) - (GDK_ISO_Partial_Space_Left) - (GDK_ISO_Partial_Space_Right) - (GDK_ISO_Set_Margin_Left) - (GDK_ISO_Set_Margin_Right) - (GDK_ISO_Release_Margin_Left) - (GDK_ISO_Release_Margin_Right) - (GDK_ISO_Release_Both_Margins) - (GDK_ISO_Fast_Cursor_Left) - (GDK_ISO_Fast_Cursor_Right) - (GDK_ISO_Fast_Cursor_Up) - (GDK_ISO_Fast_Cursor_Down) - (GDK_ISO_Continuous_Underline) - (GDK_ISO_Discontinuous_Underline) - (GDK_ISO_Emphasize) - (GDK_ISO_Center_Object) - (GDK_ISO_Enter) - (GDK_dead_grave) - (GDK_dead_acute) - (GDK_dead_circumflex) - (GDK_dead_tilde) - (GDK_dead_macron) - (GDK_dead_breve) - (GDK_dead_abovedot) - (GDK_dead_diaeresis) - (GDK_dead_abovering) - (GDK_dead_doubleacute) - (GDK_dead_caron) - (GDK_dead_cedilla) - (GDK_dead_ogonek) - (GDK_dead_iota) - (GDK_dead_voiced_sound) - (GDK_dead_semivoiced_sound) - (GDK_dead_belowdot) - (GDK_dead_hook) - (GDK_dead_horn) - (GDK_First_Virtual_Screen) - (GDK_Prev_Virtual_Screen) - (GDK_Next_Virtual_Screen) - (GDK_Last_Virtual_Screen) - (GDK_Terminate_Server) - (GDK_AccessX_Enable) - (GDK_AccessX_Feedback_Enable) - (GDK_RepeatKeys_Enable) - (GDK_SlowKeys_Enable) - (GDK_BounceKeys_Enable) - (GDK_StickyKeys_Enable) - (GDK_MouseKeys_Enable) - (GDK_MouseKeys_Accel_Enable) - (GDK_Overlay1_Enable) - (GDK_Overlay2_Enable) - (GDK_AudibleBell_Enable) - (GDK_Pointer_Left) - (GDK_Pointer_Right) - (GDK_Pointer_Up) - (GDK_Pointer_Down) - (GDK_Pointer_UpLeft) - (GDK_Pointer_UpRight) - (GDK_Pointer_DownLeft) - (GDK_Pointer_DownRight) - (GDK_Pointer_Button_Dflt) - (GDK_Pointer_Button1) - (GDK_Pointer_Button2) - (GDK_Pointer_Button3) - (GDK_Pointer_Button4) - (GDK_Pointer_Button5) - (GDK_Pointer_DblClick_Dflt) - (GDK_Pointer_DblClick1) - (GDK_Pointer_DblClick2) - (GDK_Pointer_DblClick3) - (GDK_Pointer_DblClick4) - (GDK_Pointer_DblClick5) - (GDK_Pointer_Drag_Dflt) - (GDK_Pointer_Drag1) - (GDK_Pointer_Drag2) - (GDK_Pointer_Drag3) - (GDK_Pointer_Drag4) - (GDK_Pointer_Drag5) - (GDK_Pointer_EnableKeys) - (GDK_Pointer_Accelerate) - (GDK_Pointer_DfltBtnNext) - (GDK_Pointer_DfltBtnPrev) - (GDK_3270_Duplicate) - (GDK_3270_FieldMark) - (GDK_3270_Right2) - (GDK_3270_Left2) - (GDK_3270_BackTab) - (GDK_3270_EraseEOF) - (GDK_3270_EraseInput) - (GDK_3270_Reset) - (GDK_3270_Quit) - (GDK_3270_PA1) - (GDK_3270_PA2) - (GDK_3270_PA3) - (GDK_3270_Test) - (GDK_3270_Attn) - (GDK_3270_CursorBlink) - (GDK_3270_AltCursor) - (GDK_3270_KeyClick) - (GDK_3270_Jump) - (GDK_3270_Ident) - (GDK_3270_Rule) - (GDK_3270_Copy) - (GDK_3270_Play) - (GDK_3270_Setup) - (GDK_3270_Record) - (GDK_3270_ChangeScreen) - (GDK_3270_DeleteWord) - (GDK_3270_ExSelect) - (GDK_3270_CursorSelect) - (GDK_3270_PrintScreen) - (GDK_3270_Enter) - (GDK_space) - (GDK_exclam) - (GDK_quotedbl) - (GDK_numbersign) - (GDK_dollar) - (GDK_percent) - (GDK_ampersand) - (GDK_apostrophe) - (GDK_quoteright) - (GDK_parenleft) - (GDK_parenright) - (GDK_asterisk) - (GDK_plus) - (GDK_comma) - (GDK_minus) - (GDK_period) - (GDK_slash) - (GDK_0) - (GDK_1) - (GDK_2) - (GDK_3) - (GDK_4) - (GDK_5) - (GDK_6) - (GDK_7) - (GDK_8) - (GDK_9) - (GDK_colon) - (GDK_semicolon) - (GDK_less) - (GDK_equal) - (GDK_greater) - (GDK_question) - (GDK_at) - (GDK_A) - (GDK_B) - (GDK_C) - (GDK_D) - (GDK_E) - (GDK_F) - (GDK_G) - (GDK_H) - (GDK_I) - (GDK_J) - (GDK_K) - (GDK_L) - (GDK_M) - (GDK_N) - (GDK_O) - (GDK_P) - (GDK_Q) - (GDK_R) - (GDK_S) - (GDK_T) - (GDK_U) - (GDK_V) - (GDK_W) - (GDK_X) - (GDK_Y) - (GDK_Z) - (GDK_bracketleft) - (GDK_backslash) - (GDK_bracketright) - (GDK_asciicircum) - (GDK_underscore) - (GDK_grave) - (GDK_quoteleft) - (GDK_a) - (GDK_b) - (GDK_c) - (GDK_d) - (GDK_e) - (GDK_f) - (GDK_g) - (GDK_h) - (GDK_i) - (GDK_j) - (GDK_k) - (GDK_l) - (GDK_m) - (GDK_n) - (GDK_o) - (GDK_p) - (GDK_q) - (GDK_r) - (GDK_s) - (GDK_t) - (GDK_u) - (GDK_v) - (GDK_w) - (GDK_x) - (GDK_y) - (GDK_z) - (GDK_braceleft) - (GDK_bar) - (GDK_braceright) - (GDK_asciitilde) - (GDK_nobreakspace) - (GDK_exclamdown) - (GDK_cent) - (GDK_sterling) - (GDK_currency) - (GDK_yen) - (GDK_brokenbar) - (GDK_section) - (GDK_diaeresis) - (GDK_copyright) - (GDK_ordfeminine) - (GDK_guillemotleft) - (GDK_notsign) - (GDK_hyphen) - (GDK_registered) - (GDK_macron) - (GDK_degree) - (GDK_plusminus) - (GDK_twosuperior) - (GDK_threesuperior) - (GDK_acute) - (GDK_mu) - (GDK_paragraph) - (GDK_periodcentered) - (GDK_cedilla) - (GDK_onesuperior) - (GDK_masculine) - (GDK_guillemotright) - (GDK_onequarter) - (GDK_onehalf) - (GDK_threequarters) - (GDK_questiondown) - (GDK_Agrave) - (GDK_Aacute) - (GDK_Acircumflex) - (GDK_Atilde) - (GDK_Adiaeresis) - (GDK_Aring) - (GDK_AE) - (GDK_Ccedilla) - (GDK_Egrave) - (GDK_Eacute) - (GDK_Ecircumflex) - (GDK_Ediaeresis) - (GDK_Igrave) - (GDK_Iacute) - (GDK_Icircumflex) - (GDK_Idiaeresis) - (GDK_ETH) - (GDK_Eth) - (GDK_Ntilde) - (GDK_Ograve) - (GDK_Oacute) - (GDK_Ocircumflex) - (GDK_Otilde) - (GDK_Odiaeresis) - (GDK_multiply) - (GDK_Oslash) - (GDK_Ooblique) - (GDK_Ugrave) - (GDK_Uacute) - (GDK_Ucircumflex) - (GDK_Udiaeresis) - (GDK_Yacute) - (GDK_THORN) - (GDK_Thorn) - (GDK_ssharp) - (GDK_agrave) - (GDK_aacute) - (GDK_acircumflex) - (GDK_atilde) - (GDK_adiaeresis) - (GDK_aring) - (GDK_ae) - (GDK_ccedilla) - (GDK_egrave) - (GDK_eacute) - (GDK_ecircumflex) - (GDK_ediaeresis) - (GDK_igrave) - (GDK_iacute) - (GDK_icircumflex) - (GDK_idiaeresis) - (GDK_eth) - (GDK_ntilde) - (GDK_ograve) - (GDK_oacute) - (GDK_ocircumflex) - (GDK_otilde) - (GDK_odiaeresis) - (GDK_division) - (GDK_oslash) - (GDK_ooblique) - (GDK_ugrave) - (GDK_uacute) - (GDK_ucircumflex) - (GDK_udiaeresis) - (GDK_yacute) - (GDK_thorn) - (GDK_ydiaeresis) - (GDK_Aogonek) - (GDK_breve) - (GDK_Lstroke) - (GDK_Lcaron) - (GDK_Sacute) - (GDK_Scaron) - (GDK_Scedilla) - (GDK_Tcaron) - (GDK_Zacute) - (GDK_Zcaron) - (GDK_Zabovedot) - (GDK_aogonek) - (GDK_ogonek) - (GDK_lstroke) - (GDK_lcaron) - (GDK_sacute) - (GDK_caron) - (GDK_scaron) - (GDK_scedilla) - (GDK_tcaron) - (GDK_zacute) - (GDK_doubleacute) - (GDK_zcaron) - (GDK_zabovedot) - (GDK_Racute) - (GDK_Abreve) - (GDK_Lacute) - (GDK_Cacute) - (GDK_Ccaron) - (GDK_Eogonek) - (GDK_Ecaron) - (GDK_Dcaron) - (GDK_Dstroke) - (GDK_Nacute) - (GDK_Ncaron) - (GDK_Odoubleacute) - (GDK_Rcaron) - (GDK_Uring) - (GDK_Udoubleacute) - (GDK_Tcedilla) - (GDK_racute) - (GDK_abreve) - (GDK_lacute) - (GDK_cacute) - (GDK_ccaron) - (GDK_eogonek) - (GDK_ecaron) - (GDK_dcaron) - (GDK_dstroke) - (GDK_nacute) - (GDK_ncaron) - (GDK_odoubleacute) - (GDK_udoubleacute) - (GDK_rcaron) - (GDK_uring) - (GDK_tcedilla) - (GDK_abovedot) - (GDK_Hstroke) - (GDK_Hcircumflex) - (GDK_Iabovedot) - (GDK_Gbreve) - (GDK_Jcircumflex) - (GDK_hstroke) - (GDK_hcircumflex) - (GDK_idotless) - (GDK_gbreve) - (GDK_jcircumflex) - (GDK_Cabovedot) - (GDK_Ccircumflex) - (GDK_Gabovedot) - (GDK_Gcircumflex) - (GDK_Ubreve) - (GDK_Scircumflex) - (GDK_cabovedot) - (GDK_ccircumflex) - (GDK_gabovedot) - (GDK_gcircumflex) - (GDK_ubreve) - (GDK_scircumflex) - (GDK_kra) - (GDK_kappa) - (GDK_Rcedilla) - (GDK_Itilde) - (GDK_Lcedilla) - (GDK_Emacron) - (GDK_Gcedilla) - (GDK_Tslash) - (GDK_rcedilla) - (GDK_itilde) - (GDK_lcedilla) - (GDK_emacron) - (GDK_gcedilla) - (GDK_tslash) - (GDK_ENG) - (GDK_eng) - (GDK_Amacron) - (GDK_Iogonek) - (GDK_Eabovedot) - (GDK_Imacron) - (GDK_Ncedilla) - (GDK_Omacron) - (GDK_Kcedilla) - (GDK_Uogonek) - (GDK_Utilde) - (GDK_Umacron) - (GDK_amacron) - (GDK_iogonek) - (GDK_eabovedot) - (GDK_imacron) - (GDK_ncedilla) - (GDK_omacron) - (GDK_kcedilla) - (GDK_uogonek) - (GDK_utilde) - (GDK_umacron) - (GDK_Babovedot) - (GDK_babovedot) - (GDK_Dabovedot) - (GDK_Wgrave) - (GDK_Wacute) - (GDK_dabovedot) - (GDK_Ygrave) - (GDK_Fabovedot) - (GDK_fabovedot) - (GDK_Mabovedot) - (GDK_mabovedot) - (GDK_Pabovedot) - (GDK_wgrave) - (GDK_pabovedot) - (GDK_wacute) - (GDK_Sabovedot) - (GDK_ygrave) - (GDK_Wdiaeresis) - (GDK_wdiaeresis) - (GDK_sabovedot) - (GDK_Wcircumflex) - (GDK_Tabovedot) - (GDK_Ycircumflex) - (GDK_wcircumflex) - (GDK_tabovedot) - (GDK_ycircumflex) - (GDK_OE) - (GDK_oe) - (GDK_Ydiaeresis) - (GDK_overline) - (GDK_kana_fullstop) - (GDK_kana_openingbracket) - (GDK_kana_closingbracket) - (GDK_kana_comma) - (GDK_kana_conjunctive) - (GDK_kana_middledot) - (GDK_kana_WO) - (GDK_kana_a) - (GDK_kana_i) - (GDK_kana_u) - (GDK_kana_e) - (GDK_kana_o) - (GDK_kana_ya) - (GDK_kana_yu) - (GDK_kana_yo) - (GDK_kana_tsu) - (GDK_kana_tu) - (GDK_prolongedsound) - (GDK_kana_A) - (GDK_kana_I) - (GDK_kana_U) - (GDK_kana_E) - (GDK_kana_O) - (GDK_kana_KA) - (GDK_kana_KI) - (GDK_kana_KU) - (GDK_kana_KE) - (GDK_kana_KO) - (GDK_kana_SA) - (GDK_kana_SHI) - (GDK_kana_SU) - (GDK_kana_SE) - (GDK_kana_SO) - (GDK_kana_TA) - (GDK_kana_CHI) - (GDK_kana_TI) - (GDK_kana_TSU) - (GDK_kana_TU) - (GDK_kana_TE) - (GDK_kana_TO) - (GDK_kana_NA) - (GDK_kana_NI) - (GDK_kana_NU) - (GDK_kana_NE) - (GDK_kana_NO) - (GDK_kana_HA) - (GDK_kana_HI) - (GDK_kana_FU) - (GDK_kana_HU) - (GDK_kana_HE) - (GDK_kana_HO) - (GDK_kana_MA) - (GDK_kana_MI) - (GDK_kana_MU) - (GDK_kana_ME) - (GDK_kana_MO) - (GDK_kana_YA) - (GDK_kana_YU) - (GDK_kana_YO) - (GDK_kana_RA) - (GDK_kana_RI) - (GDK_kana_RU) - (GDK_kana_RE) - (GDK_kana_RO) - (GDK_kana_WA) - (GDK_kana_N) - (GDK_voicedsound) - (GDK_semivoicedsound) - (GDK_kana_switch) - (GDK_Farsi_0) - (GDK_Farsi_1) - (GDK_Farsi_2) - (GDK_Farsi_3) - (GDK_Farsi_4) - (GDK_Farsi_5) - (GDK_Farsi_6) - (GDK_Farsi_7) - (GDK_Farsi_8) - (GDK_Farsi_9) - (GDK_Arabic_percent) - (GDK_Arabic_superscript_alef) - (GDK_Arabic_tteh) - (GDK_Arabic_peh) - (GDK_Arabic_tcheh) - (GDK_Arabic_ddal) - (GDK_Arabic_rreh) - (GDK_Arabic_comma) - (GDK_Arabic_fullstop) - (GDK_Arabic_0) - (GDK_Arabic_1) - (GDK_Arabic_2) - (GDK_Arabic_3) - (GDK_Arabic_4) - (GDK_Arabic_5) - (GDK_Arabic_6) - (GDK_Arabic_7) - (GDK_Arabic_8) - (GDK_Arabic_9) - (GDK_Arabic_semicolon) - (GDK_Arabic_question_mark) - (GDK_Arabic_hamza) - (GDK_Arabic_maddaonalef) - (GDK_Arabic_hamzaonalef) - (GDK_Arabic_hamzaonwaw) - (GDK_Arabic_hamzaunderalef) - (GDK_Arabic_hamzaonyeh) - (GDK_Arabic_alef) - (GDK_Arabic_beh) - (GDK_Arabic_tehmarbuta) - (GDK_Arabic_teh) - (GDK_Arabic_theh) - (GDK_Arabic_jeem) - (GDK_Arabic_hah) - (GDK_Arabic_khah) - (GDK_Arabic_dal) - (GDK_Arabic_thal) - (GDK_Arabic_ra) - (GDK_Arabic_zain) - (GDK_Arabic_seen) - (GDK_Arabic_sheen) - (GDK_Arabic_sad) - (GDK_Arabic_dad) - (GDK_Arabic_tah) - (GDK_Arabic_zah) - (GDK_Arabic_ain) - (GDK_Arabic_ghain) - (GDK_Arabic_tatweel) - (GDK_Arabic_feh) - (GDK_Arabic_qaf) - (GDK_Arabic_kaf) - (GDK_Arabic_lam) - (GDK_Arabic_meem) - (GDK_Arabic_noon) - (GDK_Arabic_ha) - (GDK_Arabic_heh) - (GDK_Arabic_waw) - (GDK_Arabic_alefmaksura) - (GDK_Arabic_yeh) - (GDK_Arabic_fathatan) - (GDK_Arabic_dammatan) - (GDK_Arabic_kasratan) - (GDK_Arabic_fatha) - (GDK_Arabic_damma) - (GDK_Arabic_kasra) - (GDK_Arabic_shadda) - (GDK_Arabic_sukun) - (GDK_Arabic_madda_above) - (GDK_Arabic_hamza_above) - (GDK_Arabic_hamza_below) - (GDK_Arabic_jeh) - (GDK_Arabic_veh) - (GDK_Arabic_keheh) - (GDK_Arabic_gaf) - (GDK_Arabic_noon_ghunna) - (GDK_Arabic_heh_doachashmee) - (GDK_Farsi_yeh) - (GDK_Arabic_farsi_yeh) - (GDK_Arabic_yeh_baree) - (GDK_Arabic_heh_goal) - (GDK_Arabic_switch) - (GDK_Cyrillic_GHE_bar) - (GDK_Cyrillic_ghe_bar) - (GDK_Cyrillic_ZHE_descender) - (GDK_Cyrillic_zhe_descender) - (GDK_Cyrillic_KA_descender) - (GDK_Cyrillic_ka_descender) - (GDK_Cyrillic_KA_vertstroke) - (GDK_Cyrillic_ka_vertstroke) - (GDK_Cyrillic_EN_descender) - (GDK_Cyrillic_en_descender) - (GDK_Cyrillic_U_straight) - (GDK_Cyrillic_u_straight) - (GDK_Cyrillic_U_straight_bar) - (GDK_Cyrillic_u_straight_bar) - (GDK_Cyrillic_HA_descender) - (GDK_Cyrillic_ha_descender) - (GDK_Cyrillic_CHE_descender) - (GDK_Cyrillic_che_descender) - (GDK_Cyrillic_CHE_vertstroke) - (GDK_Cyrillic_che_vertstroke) - (GDK_Cyrillic_SHHA) - (GDK_Cyrillic_shha) - (GDK_Cyrillic_SCHWA) - (GDK_Cyrillic_schwa) - (GDK_Cyrillic_I_macron) - (GDK_Cyrillic_i_macron) - (GDK_Cyrillic_O_bar) - (GDK_Cyrillic_o_bar) - (GDK_Cyrillic_U_macron) - (GDK_Cyrillic_u_macron) - (GDK_Serbian_dje) - (GDK_Macedonia_gje) - (GDK_Cyrillic_io) - (GDK_Ukrainian_ie) - (GDK_Ukranian_je) - (GDK_Macedonia_dse) - (GDK_Ukrainian_i) - (GDK_Ukranian_i) - (GDK_Ukrainian_yi) - (GDK_Ukranian_yi) - (GDK_Cyrillic_je) - (GDK_Serbian_je) - (GDK_Cyrillic_lje) - (GDK_Serbian_lje) - (GDK_Cyrillic_nje) - (GDK_Serbian_nje) - (GDK_Serbian_tshe) - (GDK_Macedonia_kje) - (GDK_Ukrainian_ghe_with_upturn) - (GDK_Byelorussian_shortu) - (GDK_Cyrillic_dzhe) - (GDK_Serbian_dze) - (GDK_numerosign) - (GDK_Serbian_DJE) - (GDK_Macedonia_GJE) - (GDK_Cyrillic_IO) - (GDK_Ukrainian_IE) - (GDK_Ukranian_JE) - (GDK_Macedonia_DSE) - (GDK_Ukrainian_I) - (GDK_Ukranian_I) - (GDK_Ukrainian_YI) - (GDK_Ukranian_YI) - (GDK_Cyrillic_JE) - (GDK_Serbian_JE) - (GDK_Cyrillic_LJE) - (GDK_Serbian_LJE) - (GDK_Cyrillic_NJE) - (GDK_Serbian_NJE) - (GDK_Serbian_TSHE) - (GDK_Macedonia_KJE) - (GDK_Ukrainian_GHE_WITH_UPTURN) - (GDK_Byelorussian_SHORTU) - (GDK_Cyrillic_DZHE) - (GDK_Serbian_DZE) - (GDK_Cyrillic_yu) - (GDK_Cyrillic_a) - (GDK_Cyrillic_be) - (GDK_Cyrillic_tse) - (GDK_Cyrillic_de) - (GDK_Cyrillic_ie) - (GDK_Cyrillic_ef) - (GDK_Cyrillic_ghe) - (GDK_Cyrillic_ha) - (GDK_Cyrillic_i) - (GDK_Cyrillic_shorti) - (GDK_Cyrillic_ka) - (GDK_Cyrillic_el) - (GDK_Cyrillic_em) - (GDK_Cyrillic_en) - (GDK_Cyrillic_o) - (GDK_Cyrillic_pe) - (GDK_Cyrillic_ya) - (GDK_Cyrillic_er) - (GDK_Cyrillic_es) - (GDK_Cyrillic_te) - (GDK_Cyrillic_u) - (GDK_Cyrillic_zhe) - (GDK_Cyrillic_ve) - (GDK_Cyrillic_softsign) - (GDK_Cyrillic_yeru) - (GDK_Cyrillic_ze) - (GDK_Cyrillic_sha) - (GDK_Cyrillic_e) - (GDK_Cyrillic_shcha) - (GDK_Cyrillic_che) - (GDK_Cyrillic_hardsign) - (GDK_Cyrillic_YU) - (GDK_Cyrillic_A) - (GDK_Cyrillic_BE) - (GDK_Cyrillic_TSE) - (GDK_Cyrillic_DE) - (GDK_Cyrillic_IE) - (GDK_Cyrillic_EF) - (GDK_Cyrillic_GHE) - (GDK_Cyrillic_HA) - (GDK_Cyrillic_I) - (GDK_Cyrillic_SHORTI) - (GDK_Cyrillic_KA) - (GDK_Cyrillic_EL) - (GDK_Cyrillic_EM) - (GDK_Cyrillic_EN) - (GDK_Cyrillic_O) - (GDK_Cyrillic_PE) - (GDK_Cyrillic_YA) - (GDK_Cyrillic_ER) - (GDK_Cyrillic_ES) - (GDK_Cyrillic_TE) - (GDK_Cyrillic_U) - (GDK_Cyrillic_ZHE) - (GDK_Cyrillic_VE) - (GDK_Cyrillic_SOFTSIGN) - (GDK_Cyrillic_YERU) - (GDK_Cyrillic_ZE) - (GDK_Cyrillic_SHA) - (GDK_Cyrillic_E) - (GDK_Cyrillic_SHCHA) - (GDK_Cyrillic_CHE) - (GDK_Cyrillic_HARDSIGN) - (GDK_Greek_ALPHAaccent) - (GDK_Greek_EPSILONaccent) - (GDK_Greek_ETAaccent) - (GDK_Greek_IOTAaccent) - (GDK_Greek_IOTAdieresis) - (GDK_Greek_IOTAdiaeresis) - (GDK_Greek_OMICRONaccent) - (GDK_Greek_UPSILONaccent) - (GDK_Greek_UPSILONdieresis) - (GDK_Greek_OMEGAaccent) - (GDK_Greek_accentdieresis) - (GDK_Greek_horizbar) - (GDK_Greek_alphaaccent) - (GDK_Greek_epsilonaccent) - (GDK_Greek_etaaccent) - (GDK_Greek_iotaaccent) - (GDK_Greek_iotadieresis) - (GDK_Greek_iotaaccentdieresis) - (GDK_Greek_omicronaccent) - (GDK_Greek_upsilonaccent) - (GDK_Greek_upsilondieresis) - (GDK_Greek_upsilonaccentdieresis) - (GDK_Greek_omegaaccent) - (GDK_Greek_ALPHA) - (GDK_Greek_BETA) - (GDK_Greek_GAMMA) - (GDK_Greek_DELTA) - (GDK_Greek_EPSILON) - (GDK_Greek_ZETA) - (GDK_Greek_ETA) - (GDK_Greek_THETA) - (GDK_Greek_IOTA) - (GDK_Greek_KAPPA) - (GDK_Greek_LAMDA) - (GDK_Greek_LAMBDA) - (GDK_Greek_MU) - (GDK_Greek_NU) - (GDK_Greek_XI) - (GDK_Greek_OMICRON) - (GDK_Greek_PI) - (GDK_Greek_RHO) - (GDK_Greek_SIGMA) - (GDK_Greek_TAU) - (GDK_Greek_UPSILON) - (GDK_Greek_PHI) - (GDK_Greek_CHI) - (GDK_Greek_PSI) - (GDK_Greek_OMEGA) - (GDK_Greek_alpha) - (GDK_Greek_beta) - (GDK_Greek_gamma) - (GDK_Greek_delta) - (GDK_Greek_epsilon) - (GDK_Greek_zeta) - (GDK_Greek_eta) - (GDK_Greek_theta) - (GDK_Greek_iota) - (GDK_Greek_kappa) - (GDK_Greek_lamda) - (GDK_Greek_lambda) - (GDK_Greek_mu) - (GDK_Greek_nu) - (GDK_Greek_xi) - (GDK_Greek_omicron) - (GDK_Greek_pi) - (GDK_Greek_rho) - (GDK_Greek_sigma) - (GDK_Greek_finalsmallsigma) - (GDK_Greek_tau) - (GDK_Greek_upsilon) - (GDK_Greek_phi) - (GDK_Greek_chi) - (GDK_Greek_psi) - (GDK_Greek_omega) - (GDK_Greek_switch) - (GDK_leftradical) - (GDK_topleftradical) - (GDK_horizconnector) - (GDK_topintegral) - (GDK_botintegral) - (GDK_vertconnector) - (GDK_topleftsqbracket) - (GDK_botleftsqbracket) - (GDK_toprightsqbracket) - (GDK_botrightsqbracket) - (GDK_topleftparens) - (GDK_botleftparens) - (GDK_toprightparens) - (GDK_botrightparens) - (GDK_leftmiddlecurlybrace) - (GDK_rightmiddlecurlybrace) - (GDK_topleftsummation) - (GDK_botleftsummation) - (GDK_topvertsummationconnector) - (GDK_botvertsummationconnector) - (GDK_toprightsummation) - (GDK_botrightsummation) - (GDK_rightmiddlesummation) - (GDK_lessthanequal) - (GDK_notequal) - (GDK_greaterthanequal) - (GDK_integral) - (GDK_therefore) - (GDK_variation) - (GDK_infinity) - (GDK_nabla) - (GDK_approximate) - (GDK_similarequal) - (GDK_ifonlyif) - (GDK_implies) - (GDK_identical) - (GDK_radical) - (GDK_includedin) - (GDK_includes) - (GDK_intersection) - (GDK_union) - (GDK_logicaland) - (GDK_logicalor) - (GDK_partialderivative) - (GDK_function) - (GDK_leftarrow) - (GDK_uparrow) - (GDK_rightarrow) - (GDK_downarrow) - (GDK_blank) - (GDK_soliddiamond) - (GDK_checkerboard) - (GDK_ht) - (GDK_ff) - (GDK_cr) - (GDK_lf) - (GDK_nl) - (GDK_vt) - (GDK_lowrightcorner) - (GDK_uprightcorner) - (GDK_upleftcorner) - (GDK_lowleftcorner) - (GDK_crossinglines) - (GDK_horizlinescan1) - (GDK_horizlinescan3) - (GDK_horizlinescan5) - (GDK_horizlinescan7) - (GDK_horizlinescan9) - (GDK_leftt) - (GDK_rightt) - (GDK_bott) - (GDK_topt) - (GDK_vertbar) - (GDK_emspace) - (GDK_enspace) - (GDK_em3space) - (GDK_em4space) - (GDK_digitspace) - (GDK_punctspace) - (GDK_thinspace) - (GDK_hairspace) - (GDK_emdash) - (GDK_endash) - (GDK_signifblank) - (GDK_ellipsis) - (GDK_doubbaselinedot) - (GDK_onethird) - (GDK_twothirds) - (GDK_onefifth) - (GDK_twofifths) - (GDK_threefifths) - (GDK_fourfifths) - (GDK_onesixth) - (GDK_fivesixths) - (GDK_careof) - (GDK_figdash) - (GDK_leftanglebracket) - (GDK_decimalpoint) - (GDK_rightanglebracket) - (GDK_marker) - (GDK_oneeighth) - (GDK_threeeighths) - (GDK_fiveeighths) - (GDK_seveneighths) - (GDK_trademark) - (GDK_signaturemark) - (GDK_trademarkincircle) - (GDK_leftopentriangle) - (GDK_rightopentriangle) - (GDK_emopencircle) - (GDK_emopenrectangle) - (GDK_leftsinglequotemark) - (GDK_rightsinglequotemark) - (GDK_leftdoublequotemark) - (GDK_rightdoublequotemark) - (GDK_prescription) - (GDK_minutes) - (GDK_seconds) - (GDK_latincross) - (GDK_hexagram) - (GDK_filledrectbullet) - (GDK_filledlefttribullet) - (GDK_filledrighttribullet) - (GDK_emfilledcircle) - (GDK_emfilledrect) - (GDK_enopencircbullet) - (GDK_enopensquarebullet) - (GDK_openrectbullet) - (GDK_opentribulletup) - (GDK_opentribulletdown) - (GDK_openstar) - (GDK_enfilledcircbullet) - (GDK_enfilledsqbullet) - (GDK_filledtribulletup) - (GDK_filledtribulletdown) - (GDK_leftpointer) - (GDK_rightpointer) - (GDK_club) - (GDK_diamond) - (GDK_heart) - (GDK_maltesecross) - (GDK_dagger) - (GDK_doubledagger) - (GDK_checkmark) - (GDK_ballotcross) - (GDK_musicalsharp) - (GDK_musicalflat) - (GDK_malesymbol) - (GDK_femalesymbol) - (GDK_telephone) - (GDK_telephonerecorder) - (GDK_phonographcopyright) - (GDK_caret) - (GDK_singlelowquotemark) - (GDK_doublelowquotemark) - (GDK_cursor) - (GDK_leftcaret) - (GDK_rightcaret) - (GDK_downcaret) - (GDK_upcaret) - (GDK_overbar) - (GDK_downtack) - (GDK_upshoe) - (GDK_downstile) - (GDK_underbar) - (GDK_jot) - (GDK_quad) - (GDK_uptack) - (GDK_circle) - (GDK_upstile) - (GDK_downshoe) - (GDK_rightshoe) - (GDK_leftshoe) - (GDK_lefttack) - (GDK_righttack) - (GDK_hebrew_doublelowline) - (GDK_hebrew_aleph) - (GDK_hebrew_bet) - (GDK_hebrew_beth) - (GDK_hebrew_gimel) - (GDK_hebrew_gimmel) - (GDK_hebrew_dalet) - (GDK_hebrew_daleth) - (GDK_hebrew_he) - (GDK_hebrew_waw) - (GDK_hebrew_zain) - (GDK_hebrew_zayin) - (GDK_hebrew_chet) - (GDK_hebrew_het) - (GDK_hebrew_tet) - (GDK_hebrew_teth) - (GDK_hebrew_yod) - (GDK_hebrew_finalkaph) - (GDK_hebrew_kaph) - (GDK_hebrew_lamed) - (GDK_hebrew_finalmem) - (GDK_hebrew_mem) - (GDK_hebrew_finalnun) - (GDK_hebrew_nun) - (GDK_hebrew_samech) - (GDK_hebrew_samekh) - (GDK_hebrew_ayin) - (GDK_hebrew_finalpe) - (GDK_hebrew_pe) - (GDK_hebrew_finalzade) - (GDK_hebrew_finalzadi) - (GDK_hebrew_zade) - (GDK_hebrew_zadi) - (GDK_hebrew_qoph) - (GDK_hebrew_kuf) - (GDK_hebrew_resh) - (GDK_hebrew_shin) - (GDK_hebrew_taw) - (GDK_hebrew_taf) - (GDK_Hebrew_switch) - (GDK_Thai_kokai) - (GDK_Thai_khokhai) - (GDK_Thai_khokhuat) - (GDK_Thai_khokhwai) - (GDK_Thai_khokhon) - (GDK_Thai_khorakhang) - (GDK_Thai_ngongu) - (GDK_Thai_chochan) - (GDK_Thai_choching) - (GDK_Thai_chochang) - (GDK_Thai_soso) - (GDK_Thai_chochoe) - (GDK_Thai_yoying) - (GDK_Thai_dochada) - (GDK_Thai_topatak) - (GDK_Thai_thothan) - (GDK_Thai_thonangmontho) - (GDK_Thai_thophuthao) - (GDK_Thai_nonen) - (GDK_Thai_dodek) - (GDK_Thai_totao) - (GDK_Thai_thothung) - (GDK_Thai_thothahan) - (GDK_Thai_thothong) - (GDK_Thai_nonu) - (GDK_Thai_bobaimai) - (GDK_Thai_popla) - (GDK_Thai_phophung) - (GDK_Thai_fofa) - (GDK_Thai_phophan) - (GDK_Thai_fofan) - (GDK_Thai_phosamphao) - (GDK_Thai_moma) - (GDK_Thai_yoyak) - (GDK_Thai_rorua) - (GDK_Thai_ru) - (GDK_Thai_loling) - (GDK_Thai_lu) - (GDK_Thai_wowaen) - (GDK_Thai_sosala) - (GDK_Thai_sorusi) - (GDK_Thai_sosua) - (GDK_Thai_hohip) - (GDK_Thai_lochula) - (GDK_Thai_oang) - (GDK_Thai_honokhuk) - (GDK_Thai_paiyannoi) - (GDK_Thai_saraa) - (GDK_Thai_maihanakat) - (GDK_Thai_saraaa) - (GDK_Thai_saraam) - (GDK_Thai_sarai) - (GDK_Thai_saraii) - (GDK_Thai_saraue) - (GDK_Thai_sarauee) - (GDK_Thai_sarau) - (GDK_Thai_sarauu) - (GDK_Thai_phinthu) - (GDK_Thai_maihanakat_maitho) - (GDK_Thai_baht) - (GDK_Thai_sarae) - (GDK_Thai_saraae) - (GDK_Thai_sarao) - (GDK_Thai_saraaimaimuan) - (GDK_Thai_saraaimaimalai) - (GDK_Thai_lakkhangyao) - (GDK_Thai_maiyamok) - (GDK_Thai_maitaikhu) - (GDK_Thai_maiek) - (GDK_Thai_maitho) - (GDK_Thai_maitri) - (GDK_Thai_maichattawa) - (GDK_Thai_thanthakhat) - (GDK_Thai_nikhahit) - (GDK_Thai_leksun) - (GDK_Thai_leknung) - (GDK_Thai_leksong) - (GDK_Thai_leksam) - (GDK_Thai_leksi) - (GDK_Thai_lekha) - (GDK_Thai_lekhok) - (GDK_Thai_lekchet) - (GDK_Thai_lekpaet) - (GDK_Thai_lekkao) - (GDK_Hangul) - (GDK_Hangul_Start) - (GDK_Hangul_End) - (GDK_Hangul_Hanja) - (GDK_Hangul_Jamo) - (GDK_Hangul_Romaja) - (GDK_Hangul_Codeinput) - (GDK_Hangul_Jeonja) - (GDK_Hangul_Banja) - (GDK_Hangul_PreHanja) - (GDK_Hangul_PostHanja) - (GDK_Hangul_SingleCandidate) - (GDK_Hangul_MultipleCandidate) - (GDK_Hangul_PreviousCandidate) - (GDK_Hangul_Special) - (GDK_Hangul_switch) - (GDK_Hangul_Kiyeog) - (GDK_Hangul_SsangKiyeog) - (GDK_Hangul_KiyeogSios) - (GDK_Hangul_Nieun) - (GDK_Hangul_NieunJieuj) - (GDK_Hangul_NieunHieuh) - (GDK_Hangul_Dikeud) - (GDK_Hangul_SsangDikeud) - (GDK_Hangul_Rieul) - (GDK_Hangul_RieulKiyeog) - (GDK_Hangul_RieulMieum) - (GDK_Hangul_RieulPieub) - (GDK_Hangul_RieulSios) - (GDK_Hangul_RieulTieut) - (GDK_Hangul_RieulPhieuf) - (GDK_Hangul_RieulHieuh) - (GDK_Hangul_Mieum) - (GDK_Hangul_Pieub) - (GDK_Hangul_SsangPieub) - (GDK_Hangul_PieubSios) - (GDK_Hangul_Sios) - (GDK_Hangul_SsangSios) - (GDK_Hangul_Ieung) - (GDK_Hangul_Jieuj) - (GDK_Hangul_SsangJieuj) - (GDK_Hangul_Cieuc) - (GDK_Hangul_Khieuq) - (GDK_Hangul_Tieut) - (GDK_Hangul_Phieuf) - (GDK_Hangul_Hieuh) - (GDK_Hangul_A) - (GDK_Hangul_AE) - (GDK_Hangul_YA) - (GDK_Hangul_YAE) - (GDK_Hangul_EO) - (GDK_Hangul_E) - (GDK_Hangul_YEO) - (GDK_Hangul_YE) - (GDK_Hangul_O) - (GDK_Hangul_WA) - (GDK_Hangul_WAE) - (GDK_Hangul_OE) - (GDK_Hangul_YO) - (GDK_Hangul_U) - (GDK_Hangul_WEO) - (GDK_Hangul_WE) - (GDK_Hangul_WI) - (GDK_Hangul_YU) - (GDK_Hangul_EU) - (GDK_Hangul_YI) - (GDK_Hangul_I) - (GDK_Hangul_J_Kiyeog) - (GDK_Hangul_J_SsangKiyeog) - (GDK_Hangul_J_KiyeogSios) - (GDK_Hangul_J_Nieun) - (GDK_Hangul_J_NieunJieuj) - (GDK_Hangul_J_NieunHieuh) - (GDK_Hangul_J_Dikeud) - (GDK_Hangul_J_Rieul) - (GDK_Hangul_J_RieulKiyeog) - (GDK_Hangul_J_RieulMieum) - (GDK_Hangul_J_RieulPieub) - (GDK_Hangul_J_RieulSios) - (GDK_Hangul_J_RieulTieut) - (GDK_Hangul_J_RieulPhieuf) - (GDK_Hangul_J_RieulHieuh) - (GDK_Hangul_J_Mieum) - (GDK_Hangul_J_Pieub) - (GDK_Hangul_J_PieubSios) - (GDK_Hangul_J_Sios) - (GDK_Hangul_J_SsangSios) - (GDK_Hangul_J_Ieung) - (GDK_Hangul_J_Jieuj) - (GDK_Hangul_J_Cieuc) - (GDK_Hangul_J_Khieuq) - (GDK_Hangul_J_Tieut) - (GDK_Hangul_J_Phieuf) - (GDK_Hangul_J_Hieuh) - (GDK_Hangul_RieulYeorinHieuh) - (GDK_Hangul_SunkyeongeumMieum) - (GDK_Hangul_SunkyeongeumPieub) - (GDK_Hangul_PanSios) - (GDK_Hangul_KkogjiDalrinIeung) - (GDK_Hangul_SunkyeongeumPhieuf) - (GDK_Hangul_YeorinHieuh) - (GDK_Hangul_AraeA) - (GDK_Hangul_AraeAE) - (GDK_Hangul_J_PanSios) - (GDK_Hangul_J_KkogjiDalrinIeung) - (GDK_Hangul_J_YeorinHieuh) - (GDK_Korean_Won) - (GDK_Armenian_ligature_ew) - (GDK_Armenian_full_stop) - (GDK_Armenian_verjaket) - (GDK_Armenian_separation_mark) - (GDK_Armenian_but) - (GDK_Armenian_hyphen) - (GDK_Armenian_yentamna) - (GDK_Armenian_exclam) - (GDK_Armenian_amanak) - (GDK_Armenian_accent) - (GDK_Armenian_shesht) - (GDK_Armenian_question) - (GDK_Armenian_paruyk) - (GDK_Armenian_AYB) - (GDK_Armenian_ayb) - (GDK_Armenian_BEN) - (GDK_Armenian_ben) - (GDK_Armenian_GIM) - (GDK_Armenian_gim) - (GDK_Armenian_DA) - (GDK_Armenian_da) - (GDK_Armenian_YECH) - (GDK_Armenian_yech) - (GDK_Armenian_ZA) - (GDK_Armenian_za) - (GDK_Armenian_E) - (GDK_Armenian_e) - (GDK_Armenian_AT) - (GDK_Armenian_at) - (GDK_Armenian_TO) - (GDK_Armenian_to) - (GDK_Armenian_ZHE) - (GDK_Armenian_zhe) - (GDK_Armenian_INI) - (GDK_Armenian_ini) - (GDK_Armenian_LYUN) - (GDK_Armenian_lyun) - (GDK_Armenian_KHE) - (GDK_Armenian_khe) - (GDK_Armenian_TSA) - (GDK_Armenian_tsa) - (GDK_Armenian_KEN) - (GDK_Armenian_ken) - (GDK_Armenian_HO) - (GDK_Armenian_ho) - (GDK_Armenian_DZA) - (GDK_Armenian_dza) - (GDK_Armenian_GHAT) - (GDK_Armenian_ghat) - (GDK_Armenian_TCHE) - (GDK_Armenian_tche) - (GDK_Armenian_MEN) - (GDK_Armenian_men) - (GDK_Armenian_HI) - (GDK_Armenian_hi) - (GDK_Armenian_NU) - (GDK_Armenian_nu) - (GDK_Armenian_SHA) - (GDK_Armenian_sha) - (GDK_Armenian_VO) - (GDK_Armenian_vo) - (GDK_Armenian_CHA) - (GDK_Armenian_cha) - (GDK_Armenian_PE) - (GDK_Armenian_pe) - (GDK_Armenian_JE) - (GDK_Armenian_je) - (GDK_Armenian_RA) - (GDK_Armenian_ra) - (GDK_Armenian_SE) - (GDK_Armenian_se) - (GDK_Armenian_VEV) - (GDK_Armenian_vev) - (GDK_Armenian_TYUN) - (GDK_Armenian_tyun) - (GDK_Armenian_RE) - (GDK_Armenian_re) - (GDK_Armenian_TSO) - (GDK_Armenian_tso) - (GDK_Armenian_VYUN) - (GDK_Armenian_vyun) - (GDK_Armenian_PYUR) - (GDK_Armenian_pyur) - (GDK_Armenian_KE) - (GDK_Armenian_ke) - (GDK_Armenian_O) - (GDK_Armenian_o) - (GDK_Armenian_FE) - (GDK_Armenian_fe) - (GDK_Armenian_apostrophe) - (GDK_Georgian_an) - (GDK_Georgian_ban) - (GDK_Georgian_gan) - (GDK_Georgian_don) - (GDK_Georgian_en) - (GDK_Georgian_vin) - (GDK_Georgian_zen) - (GDK_Georgian_tan) - (GDK_Georgian_in) - (GDK_Georgian_kan) - (GDK_Georgian_las) - (GDK_Georgian_man) - (GDK_Georgian_nar) - (GDK_Georgian_on) - (GDK_Georgian_par) - (GDK_Georgian_zhar) - (GDK_Georgian_rae) - (GDK_Georgian_san) - (GDK_Georgian_tar) - (GDK_Georgian_un) - (GDK_Georgian_phar) - (GDK_Georgian_khar) - (GDK_Georgian_ghan) - (GDK_Georgian_qar) - (GDK_Georgian_shin) - (GDK_Georgian_chin) - (GDK_Georgian_can) - (GDK_Georgian_jil) - (GDK_Georgian_cil) - (GDK_Georgian_char) - (GDK_Georgian_xan) - (GDK_Georgian_jhan) - (GDK_Georgian_hae) - (GDK_Georgian_he) - (GDK_Georgian_hie) - (GDK_Georgian_we) - (GDK_Georgian_har) - (GDK_Georgian_hoe) - (GDK_Georgian_fi) - (GDK_Xabovedot) - (GDK_Ibreve) - (GDK_Zstroke) - (GDK_Gcaron) - (GDK_Ocaron) - (GDK_Obarred) - (GDK_xabovedot) - (GDK_ibreve) - (GDK_zstroke) - (GDK_gcaron) - (GDK_ocaron) - (GDK_obarred) - (GDK_SCHWA) - (GDK_schwa) - (GDK_Lbelowdot) - (GDK_lbelowdot) - (GDK_Abelowdot) - (GDK_abelowdot) - (GDK_Ahook) - (GDK_ahook) - (GDK_Acircumflexacute) - (GDK_acircumflexacute) - (GDK_Acircumflexgrave) - (GDK_acircumflexgrave) - (GDK_Acircumflexhook) - (GDK_acircumflexhook) - (GDK_Acircumflextilde) - (GDK_acircumflextilde) - (GDK_Acircumflexbelowdot) - (GDK_acircumflexbelowdot) - (GDK_Abreveacute) - (GDK_abreveacute) - (GDK_Abrevegrave) - (GDK_abrevegrave) - (GDK_Abrevehook) - (GDK_abrevehook) - (GDK_Abrevetilde) - (GDK_abrevetilde) - (GDK_Abrevebelowdot) - (GDK_abrevebelowdot) - (GDK_Ebelowdot) - (GDK_ebelowdot) - (GDK_Ehook) - (GDK_ehook) - (GDK_Etilde) - (GDK_etilde) - (GDK_Ecircumflexacute) - (GDK_ecircumflexacute) - (GDK_Ecircumflexgrave) - (GDK_ecircumflexgrave) - (GDK_Ecircumflexhook) - (GDK_ecircumflexhook) - (GDK_Ecircumflextilde) - (GDK_ecircumflextilde) - (GDK_Ecircumflexbelowdot) - (GDK_ecircumflexbelowdot) - (GDK_Ihook) - (GDK_ihook) - (GDK_Ibelowdot) - (GDK_ibelowdot) - (GDK_Obelowdot) - (GDK_obelowdot) - (GDK_Ohook) - (GDK_ohook) - (GDK_Ocircumflexacute) - (GDK_ocircumflexacute) - (GDK_Ocircumflexgrave) - (GDK_ocircumflexgrave) - (GDK_Ocircumflexhook) - (GDK_ocircumflexhook) - (GDK_Ocircumflextilde) - (GDK_ocircumflextilde) - (GDK_Ocircumflexbelowdot) - (GDK_ocircumflexbelowdot) - (GDK_Ohornacute) - (GDK_ohornacute) - (GDK_Ohorngrave) - (GDK_ohorngrave) - (GDK_Ohornhook) - (GDK_ohornhook) - (GDK_Ohorntilde) - (GDK_ohorntilde) - (GDK_Ohornbelowdot) - (GDK_ohornbelowdot) - (GDK_Ubelowdot) - (GDK_ubelowdot) - (GDK_Uhook) - (GDK_uhook) - (GDK_Uhornacute) - (GDK_uhornacute) - (GDK_Uhorngrave) - (GDK_uhorngrave) - (GDK_Uhornhook) - (GDK_uhornhook) - (GDK_Uhorntilde) - (GDK_uhorntilde) - (GDK_Uhornbelowdot) - (GDK_uhornbelowdot) - (GDK_Ybelowdot) - (GDK_ybelowdot) - (GDK_Yhook) - (GDK_yhook) - (GDK_Ytilde) - (GDK_ytilde) - (GDK_Ohorn) - (GDK_ohorn) - (GDK_Uhorn) - (GDK_uhorn) - (GDK_EcuSign) - (GDK_ColonSign) - (GDK_CruzeiroSign) - (GDK_FFrancSign) - (GDK_LiraSign) - (GDK_MillSign) - (GDK_NairaSign) - (GDK_PesetaSign) - (GDK_RupeeSign) - (GDK_WonSign) - (GDK_NewSheqelSign) - (GDK_DongSign) - (GDK_EuroSign) - (GDK_zerosuperior) - (GDK_foursuperior) - (GDK_fivesuperior) - (GDK_sixsuperior) - (GDK_sevensuperior) - (GDK_eightsuperior) - (GDK_ninesuperior) - (GDK_zerosubscript) - (GDK_onesubscript) - (GDK_twosubscript) - (GDK_threesubscript) - (GDK_foursubscript) - (GDK_fivesubscript) - (GDK_sixsubscript) - (GDK_sevensubscript) - (GDK_eightsubscript) - (GDK_ninesubscript) - (GDK_partdifferential) - (GDK_emptyset) - (GDK_elementof) - (GDK_notelementof) - (GDK_containsas) - (GDK_squareroot) - (GDK_cuberoot) - (GDK_fourthroot) - (GDK_dintegral) - (GDK_tintegral) - (GDK_because) - (GDK_approxeq) - (GDK_notapproxeq) - (GDK_notidentical) - (GDK_stricteq)) \ No newline at end of file + (GDK_KEY_VoidSymbol) + (GDK_KEY_BackSpace) + (GDK_KEY_Tab) + (GDK_KEY_Linefeed) + (GDK_KEY_Clear) + (GDK_KEY_Return) + (GDK_KEY_Pause) + (GDK_KEY_Scroll_Lock) + (GDK_KEY_Sys_Req) + (GDK_KEY_Escape) + (GDK_KEY_Delete) + (GDK_KEY_Multi_key) + (GDK_KEY_Codeinput) + (GDK_KEY_SingleCandidate) + (GDK_KEY_MultipleCandidate) + (GDK_KEY_PreviousCandidate) + (GDK_KEY_Kanji) + (GDK_KEY_Muhenkan) + (GDK_KEY_Henkan_Mode) + (GDK_KEY_Henkan) + (GDK_KEY_Romaji) + (GDK_KEY_Hiragana) + (GDK_KEY_Katakana) + (GDK_KEY_Hiragana_Katakana) + (GDK_KEY_Zenkaku) + (GDK_KEY_Hankaku) + (GDK_KEY_Zenkaku_Hankaku) + (GDK_KEY_Touroku) + (GDK_KEY_Massyo) + (GDK_KEY_Kana_Lock) + (GDK_KEY_Kana_Shift) + (GDK_KEY_Eisu_Shift) + (GDK_KEY_Eisu_toggle) + (GDK_KEY_Kanji_Bangou) + (GDK_KEY_Zen_Koho) + (GDK_KEY_Mae_Koho) + (GDK_KEY_Home) + (GDK_KEY_Left) + (GDK_KEY_Up) + (GDK_KEY_Right) + (GDK_KEY_Down) + (GDK_KEY_Prior) + (GDK_KEY_Page_Up) + (GDK_KEY_Next) + (GDK_KEY_Page_Down) + (GDK_KEY_End) + (GDK_KEY_Begin) + (GDK_KEY_Select) + (GDK_KEY_Print) + (GDK_KEY_Execute) + (GDK_KEY_Insert) + (GDK_KEY_Undo) + (GDK_KEY_Redo) + (GDK_KEY_Menu) + (GDK_KEY_Find) + (GDK_KEY_Cancel) + (GDK_KEY_Help) + (GDK_KEY_Break) + (GDK_KEY_Mode_switch) + (GDK_KEY_script_switch) + (GDK_KEY_Num_Lock) + (GDK_KEY_KP_Space) + (GDK_KEY_KP_Tab) + (GDK_KEY_KP_Enter) + (GDK_KEY_KP_F1) + (GDK_KEY_KP_F2) + (GDK_KEY_KP_F3) + (GDK_KEY_KP_F4) + (GDK_KEY_KP_Home) + (GDK_KEY_KP_Left) + (GDK_KEY_KP_Up) + (GDK_KEY_KP_Right) + (GDK_KEY_KP_Down) + (GDK_KEY_KP_Prior) + (GDK_KEY_KP_Page_Up) + (GDK_KEY_KP_Next) + (GDK_KEY_KP_Page_Down) + (GDK_KEY_KP_End) + (GDK_KEY_KP_Begin) + (GDK_KEY_KP_Insert) + (GDK_KEY_KP_Delete) + (GDK_KEY_KP_Equal) + (GDK_KEY_KP_Multiply) + (GDK_KEY_KP_Add) + (GDK_KEY_KP_Separator) + (GDK_KEY_KP_Subtract) + (GDK_KEY_KP_Decimal) + (GDK_KEY_KP_Divide) + (GDK_KEY_KP_0) + (GDK_KEY_KP_1) + (GDK_KEY_KP_2) + (GDK_KEY_KP_3) + (GDK_KEY_KP_4) + (GDK_KEY_KP_5) + (GDK_KEY_KP_6) + (GDK_KEY_KP_7) + (GDK_KEY_KP_8) + (GDK_KEY_KP_9) + (GDK_KEY_F1) + (GDK_KEY_F2) + (GDK_KEY_F3) + (GDK_KEY_F4) + (GDK_KEY_F5) + (GDK_KEY_F6) + (GDK_KEY_F7) + (GDK_KEY_F8) + (GDK_KEY_F9) + (GDK_KEY_F10) + (GDK_KEY_F11) + (GDK_KEY_L1) + (GDK_KEY_F12) + (GDK_KEY_L2) + (GDK_KEY_F13) + (GDK_KEY_L3) + (GDK_KEY_F14) + (GDK_KEY_L4) + (GDK_KEY_F15) + (GDK_KEY_L5) + (GDK_KEY_F16) + (GDK_KEY_L6) + (GDK_KEY_F17) + (GDK_KEY_L7) + (GDK_KEY_F18) + (GDK_KEY_L8) + (GDK_KEY_F19) + (GDK_KEY_L9) + (GDK_KEY_F20) + (GDK_KEY_L10) + (GDK_KEY_F21) + (GDK_KEY_R1) + (GDK_KEY_F22) + (GDK_KEY_R2) + (GDK_KEY_F23) + (GDK_KEY_R3) + (GDK_KEY_F24) + (GDK_KEY_R4) + (GDK_KEY_F25) + (GDK_KEY_R5) + (GDK_KEY_F26) + (GDK_KEY_R6) + (GDK_KEY_F27) + (GDK_KEY_R7) + (GDK_KEY_F28) + (GDK_KEY_R8) + (GDK_KEY_F29) + (GDK_KEY_R9) + (GDK_KEY_F30) + (GDK_KEY_R10) + (GDK_KEY_F31) + (GDK_KEY_R11) + (GDK_KEY_F32) + (GDK_KEY_R12) + (GDK_KEY_F33) + (GDK_KEY_R13) + (GDK_KEY_F34) + (GDK_KEY_R14) + (GDK_KEY_F35) + (GDK_KEY_R15) + (GDK_KEY_Shift_L) + (GDK_KEY_Shift_R) + (GDK_KEY_Control_L) + (GDK_KEY_Control_R) + (GDK_KEY_Caps_Lock) + (GDK_KEY_Shift_Lock) + (GDK_KEY_Meta_L) + (GDK_KEY_Meta_R) + (GDK_KEY_Alt_L) + (GDK_KEY_Alt_R) + (GDK_KEY_Super_L) + (GDK_KEY_Super_R) + (GDK_KEY_Hyper_L) + (GDK_KEY_Hyper_R) + (GDK_KEY_ISO_Lock) + (GDK_KEY_ISO_Level2_Latch) + (GDK_KEY_ISO_Level3_Shift) + (GDK_KEY_ISO_Level3_Latch) + (GDK_KEY_ISO_Level3_Lock) + (GDK_KEY_ISO_Group_Shift) + (GDK_KEY_ISO_Group_Latch) + (GDK_KEY_ISO_Group_Lock) + (GDK_KEY_ISO_Next_Group) + (GDK_KEY_ISO_Next_Group_Lock) + (GDK_KEY_ISO_Prev_Group) + (GDK_KEY_ISO_Prev_Group_Lock) + (GDK_KEY_ISO_First_Group) + (GDK_KEY_ISO_First_Group_Lock) + (GDK_KEY_ISO_Last_Group) + (GDK_KEY_ISO_Last_Group_Lock) + (GDK_KEY_ISO_Left_Tab) + (GDK_KEY_ISO_Move_Line_Up) + (GDK_KEY_ISO_Move_Line_Down) + (GDK_KEY_ISO_Partial_Line_Up) + (GDK_KEY_ISO_Partial_Line_Down) + (GDK_KEY_ISO_Partial_Space_Left) + (GDK_KEY_ISO_Partial_Space_Right) + (GDK_KEY_ISO_Set_Margin_Left) + (GDK_KEY_ISO_Set_Margin_Right) + (GDK_KEY_ISO_Release_Margin_Left) + (GDK_KEY_ISO_Release_Margin_Right) + (GDK_KEY_ISO_Release_Both_Margins) + (GDK_KEY_ISO_Fast_Cursor_Left) + (GDK_KEY_ISO_Fast_Cursor_Right) + (GDK_KEY_ISO_Fast_Cursor_Up) + (GDK_KEY_ISO_Fast_Cursor_Down) + (GDK_KEY_ISO_Continuous_Underline) + (GDK_KEY_ISO_Discontinuous_Underline) + (GDK_KEY_ISO_Emphasize) + (GDK_KEY_ISO_Center_Object) + (GDK_KEY_ISO_Enter) + (GDK_KEY_dead_grave) + (GDK_KEY_dead_acute) + (GDK_KEY_dead_circumflex) + (GDK_KEY_dead_tilde) + (GDK_KEY_dead_macron) + (GDK_KEY_dead_breve) + (GDK_KEY_dead_abovedot) + (GDK_KEY_dead_diaeresis) + (GDK_KEY_dead_abovering) + (GDK_KEY_dead_doubleacute) + (GDK_KEY_dead_caron) + (GDK_KEY_dead_cedilla) + (GDK_KEY_dead_ogonek) + (GDK_KEY_dead_iota) + (GDK_KEY_dead_voiced_sound) + (GDK_KEY_dead_semivoiced_sound) + (GDK_KEY_dead_belowdot) + (GDK_KEY_dead_hook) + (GDK_KEY_dead_horn) + (GDK_KEY_First_Virtual_Screen) + (GDK_KEY_Prev_Virtual_Screen) + (GDK_KEY_Next_Virtual_Screen) + (GDK_KEY_Last_Virtual_Screen) + (GDK_KEY_Terminate_Server) + (GDK_KEY_AccessX_Enable) + (GDK_KEY_AccessX_Feedback_Enable) + (GDK_KEY_RepeatKeys_Enable) + (GDK_KEY_SlowKeys_Enable) + (GDK_KEY_BounceKeys_Enable) + (GDK_KEY_StickyKeys_Enable) + (GDK_KEY_MouseKeys_Enable) + (GDK_KEY_MouseKeys_Accel_Enable) + (GDK_KEY_Overlay1_Enable) + (GDK_KEY_Overlay2_Enable) + (GDK_KEY_AudibleBell_Enable) + (GDK_KEY_Pointer_Left) + (GDK_KEY_Pointer_Right) + (GDK_KEY_Pointer_Up) + (GDK_KEY_Pointer_Down) + (GDK_KEY_Pointer_UpLeft) + (GDK_KEY_Pointer_UpRight) + (GDK_KEY_Pointer_DownLeft) + (GDK_KEY_Pointer_DownRight) + (GDK_KEY_Pointer_Button_Dflt) + (GDK_KEY_Pointer_Button1) + (GDK_KEY_Pointer_Button2) + (GDK_KEY_Pointer_Button3) + (GDK_KEY_Pointer_Button4) + (GDK_KEY_Pointer_Button5) + (GDK_KEY_Pointer_DblClick_Dflt) + (GDK_KEY_Pointer_DblClick1) + (GDK_KEY_Pointer_DblClick2) + (GDK_KEY_Pointer_DblClick3) + (GDK_KEY_Pointer_DblClick4) + (GDK_KEY_Pointer_DblClick5) + (GDK_KEY_Pointer_Drag_Dflt) + (GDK_KEY_Pointer_Drag1) + (GDK_KEY_Pointer_Drag2) + (GDK_KEY_Pointer_Drag3) + (GDK_KEY_Pointer_Drag4) + (GDK_KEY_Pointer_Drag5) + (GDK_KEY_Pointer_EnableKeys) + (GDK_KEY_Pointer_Accelerate) + (GDK_KEY_Pointer_DfltBtnNext) + (GDK_KEY_Pointer_DfltBtnPrev) + (GDK_KEY_3270_Duplicate) + (GDK_KEY_3270_FieldMark) + (GDK_KEY_3270_Right2) + (GDK_KEY_3270_Left2) + (GDK_KEY_3270_BackTab) + (GDK_KEY_3270_EraseEOF) + (GDK_KEY_3270_EraseInput) + (GDK_KEY_3270_Reset) + (GDK_KEY_3270_Quit) + (GDK_KEY_3270_PA1) + (GDK_KEY_3270_PA2) + (GDK_KEY_3270_PA3) + (GDK_KEY_3270_Test) + (GDK_KEY_3270_Attn) + (GDK_KEY_3270_CursorBlink) + (GDK_KEY_3270_AltCursor) + (GDK_KEY_3270_KeyClick) + (GDK_KEY_3270_Jump) + (GDK_KEY_3270_Ident) + (GDK_KEY_3270_Rule) + (GDK_KEY_3270_Copy) + (GDK_KEY_3270_Play) + (GDK_KEY_3270_Setup) + (GDK_KEY_3270_Record) + (GDK_KEY_3270_ChangeScreen) + (GDK_KEY_3270_DeleteWord) + (GDK_KEY_3270_ExSelect) + (GDK_KEY_3270_CursorSelect) + (GDK_KEY_3270_PrintScreen) + (GDK_KEY_3270_Enter) + (GDK_KEY_space) + (GDK_KEY_exclam) + (GDK_KEY_quotedbl) + (GDK_KEY_numbersign) + (GDK_KEY_dollar) + (GDK_KEY_percent) + (GDK_KEY_ampersand) + (GDK_KEY_apostrophe) + (GDK_KEY_quoteright) + (GDK_KEY_parenleft) + (GDK_KEY_parenright) + (GDK_KEY_asterisk) + (GDK_KEY_plus) + (GDK_KEY_comma) + (GDK_KEY_minus) + (GDK_KEY_period) + (GDK_KEY_slash) + (GDK_KEY_0) + (GDK_KEY_1) + (GDK_KEY_2) + (GDK_KEY_3) + (GDK_KEY_4) + (GDK_KEY_5) + (GDK_KEY_6) + (GDK_KEY_7) + (GDK_KEY_8) + (GDK_KEY_9) + (GDK_KEY_colon) + (GDK_KEY_semicolon) + (GDK_KEY_less) + (GDK_KEY_equal) + (GDK_KEY_greater) + (GDK_KEY_question) + (GDK_KEY_at) + (GDK_KEY_A) + (GDK_KEY_B) + (GDK_KEY_C) + (GDK_KEY_D) + (GDK_KEY_E) + (GDK_KEY_F) + (GDK_KEY_G) + (GDK_KEY_H) + (GDK_KEY_I) + (GDK_KEY_J) + (GDK_KEY_K) + (GDK_KEY_L) + (GDK_KEY_M) + (GDK_KEY_N) + (GDK_KEY_O) + (GDK_KEY_P) + (GDK_KEY_Q) + (GDK_KEY_R) + (GDK_KEY_S) + (GDK_KEY_T) + (GDK_KEY_U) + (GDK_KEY_V) + (GDK_KEY_W) + (GDK_KEY_X) + (GDK_KEY_Y) + (GDK_KEY_Z) + (GDK_KEY_bracketleft) + (GDK_KEY_backslash) + (GDK_KEY_bracketright) + (GDK_KEY_asciicircum) + (GDK_KEY_underscore) + (GDK_KEY_grave) + (GDK_KEY_quoteleft) + (GDK_KEY_a) + (GDK_KEY_b) + (GDK_KEY_c) + (GDK_KEY_d) + (GDK_KEY_e) + (GDK_KEY_f) + (GDK_KEY_g) + (GDK_KEY_h) + (GDK_KEY_i) + (GDK_KEY_j) + (GDK_KEY_k) + (GDK_KEY_l) + (GDK_KEY_m) + (GDK_KEY_n) + (GDK_KEY_o) + (GDK_KEY_p) + (GDK_KEY_q) + (GDK_KEY_r) + (GDK_KEY_s) + (GDK_KEY_t) + (GDK_KEY_u) + (GDK_KEY_v) + (GDK_KEY_w) + (GDK_KEY_x) + (GDK_KEY_y) + (GDK_KEY_z) + (GDK_KEY_braceleft) + (GDK_KEY_bar) + (GDK_KEY_braceright) + (GDK_KEY_asciitilde) + (GDK_KEY_nobreakspace) + (GDK_KEY_exclamdown) + (GDK_KEY_cent) + (GDK_KEY_sterling) + (GDK_KEY_currency) + (GDK_KEY_yen) + (GDK_KEY_brokenbar) + (GDK_KEY_section) + (GDK_KEY_diaeresis) + (GDK_KEY_copyright) + (GDK_KEY_ordfeminine) + (GDK_KEY_guillemotleft) + (GDK_KEY_notsign) + (GDK_KEY_hyphen) + (GDK_KEY_registered) + (GDK_KEY_macron) + (GDK_KEY_degree) + (GDK_KEY_plusminus) + (GDK_KEY_twosuperior) + (GDK_KEY_threesuperior) + (GDK_KEY_acute) + (GDK_KEY_mu) + (GDK_KEY_paragraph) + (GDK_KEY_periodcentered) + (GDK_KEY_cedilla) + (GDK_KEY_onesuperior) + (GDK_KEY_masculine) + (GDK_KEY_guillemotright) + (GDK_KEY_onequarter) + (GDK_KEY_onehalf) + (GDK_KEY_threequarters) + (GDK_KEY_questiondown) + (GDK_KEY_Agrave) + (GDK_KEY_Aacute) + (GDK_KEY_Acircumflex) + (GDK_KEY_Atilde) + (GDK_KEY_Adiaeresis) + (GDK_KEY_Aring) + (GDK_KEY_AE) + (GDK_KEY_Ccedilla) + (GDK_KEY_Egrave) + (GDK_KEY_Eacute) + (GDK_KEY_Ecircumflex) + (GDK_KEY_Ediaeresis) + (GDK_KEY_Igrave) + (GDK_KEY_Iacute) + (GDK_KEY_Icircumflex) + (GDK_KEY_Idiaeresis) + (GDK_KEY_ETH) + (GDK_KEY_Eth) + (GDK_KEY_Ntilde) + (GDK_KEY_Ograve) + (GDK_KEY_Oacute) + (GDK_KEY_Ocircumflex) + (GDK_KEY_Otilde) + (GDK_KEY_Odiaeresis) + (GDK_KEY_multiply) + (GDK_KEY_Oslash) + (GDK_KEY_Ooblique) + (GDK_KEY_Ugrave) + (GDK_KEY_Uacute) + (GDK_KEY_Ucircumflex) + (GDK_KEY_Udiaeresis) + (GDK_KEY_Yacute) + (GDK_KEY_THORN) + (GDK_KEY_Thorn) + (GDK_KEY_ssharp) + (GDK_KEY_agrave) + (GDK_KEY_aacute) + (GDK_KEY_acircumflex) + (GDK_KEY_atilde) + (GDK_KEY_adiaeresis) + (GDK_KEY_aring) + (GDK_KEY_ae) + (GDK_KEY_ccedilla) + (GDK_KEY_egrave) + (GDK_KEY_eacute) + (GDK_KEY_ecircumflex) + (GDK_KEY_ediaeresis) + (GDK_KEY_igrave) + (GDK_KEY_iacute) + (GDK_KEY_icircumflex) + (GDK_KEY_idiaeresis) + (GDK_KEY_eth) + (GDK_KEY_ntilde) + (GDK_KEY_ograve) + (GDK_KEY_oacute) + (GDK_KEY_ocircumflex) + (GDK_KEY_otilde) + (GDK_KEY_odiaeresis) + (GDK_KEY_division) + (GDK_KEY_oslash) + (GDK_KEY_ooblique) + (GDK_KEY_ugrave) + (GDK_KEY_uacute) + (GDK_KEY_ucircumflex) + (GDK_KEY_udiaeresis) + (GDK_KEY_yacute) + (GDK_KEY_thorn) + (GDK_KEY_ydiaeresis) + (GDK_KEY_Aogonek) + (GDK_KEY_breve) + (GDK_KEY_Lstroke) + (GDK_KEY_Lcaron) + (GDK_KEY_Sacute) + (GDK_KEY_Scaron) + (GDK_KEY_Scedilla) + (GDK_KEY_Tcaron) + (GDK_KEY_Zacute) + (GDK_KEY_Zcaron) + (GDK_KEY_Zabovedot) + (GDK_KEY_aogonek) + (GDK_KEY_ogonek) + (GDK_KEY_lstroke) + (GDK_KEY_lcaron) + (GDK_KEY_sacute) + (GDK_KEY_caron) + (GDK_KEY_scaron) + (GDK_KEY_scedilla) + (GDK_KEY_tcaron) + (GDK_KEY_zacute) + (GDK_KEY_doubleacute) + (GDK_KEY_zcaron) + (GDK_KEY_zabovedot) + (GDK_KEY_Racute) + (GDK_KEY_Abreve) + (GDK_KEY_Lacute) + (GDK_KEY_Cacute) + (GDK_KEY_Ccaron) + (GDK_KEY_Eogonek) + (GDK_KEY_Ecaron) + (GDK_KEY_Dcaron) + (GDK_KEY_Dstroke) + (GDK_KEY_Nacute) + (GDK_KEY_Ncaron) + (GDK_KEY_Odoubleacute) + (GDK_KEY_Rcaron) + (GDK_KEY_Uring) + (GDK_KEY_Udoubleacute) + (GDK_KEY_Tcedilla) + (GDK_KEY_racute) + (GDK_KEY_abreve) + (GDK_KEY_lacute) + (GDK_KEY_cacute) + (GDK_KEY_ccaron) + (GDK_KEY_eogonek) + (GDK_KEY_ecaron) + (GDK_KEY_dcaron) + (GDK_KEY_dstroke) + (GDK_KEY_nacute) + (GDK_KEY_ncaron) + (GDK_KEY_odoubleacute) + (GDK_KEY_udoubleacute) + (GDK_KEY_rcaron) + (GDK_KEY_uring) + (GDK_KEY_tcedilla) + (GDK_KEY_abovedot) + (GDK_KEY_Hstroke) + (GDK_KEY_Hcircumflex) + (GDK_KEY_Iabovedot) + (GDK_KEY_Gbreve) + (GDK_KEY_Jcircumflex) + (GDK_KEY_hstroke) + (GDK_KEY_hcircumflex) + (GDK_KEY_idotless) + (GDK_KEY_gbreve) + (GDK_KEY_jcircumflex) + (GDK_KEY_Cabovedot) + (GDK_KEY_Ccircumflex) + (GDK_KEY_Gabovedot) + (GDK_KEY_Gcircumflex) + (GDK_KEY_Ubreve) + (GDK_KEY_Scircumflex) + (GDK_KEY_cabovedot) + (GDK_KEY_ccircumflex) + (GDK_KEY_gabovedot) + (GDK_KEY_gcircumflex) + (GDK_KEY_ubreve) + (GDK_KEY_scircumflex) + (GDK_KEY_kra) + (GDK_KEY_kappa) + (GDK_KEY_Rcedilla) + (GDK_KEY_Itilde) + (GDK_KEY_Lcedilla) + (GDK_KEY_Emacron) + (GDK_KEY_Gcedilla) + (GDK_KEY_Tslash) + (GDK_KEY_rcedilla) + (GDK_KEY_itilde) + (GDK_KEY_lcedilla) + (GDK_KEY_emacron) + (GDK_KEY_gcedilla) + (GDK_KEY_tslash) + (GDK_KEY_ENG) + (GDK_KEY_eng) + (GDK_KEY_Amacron) + (GDK_KEY_Iogonek) + (GDK_KEY_Eabovedot) + (GDK_KEY_Imacron) + (GDK_KEY_Ncedilla) + (GDK_KEY_Omacron) + (GDK_KEY_Kcedilla) + (GDK_KEY_Uogonek) + (GDK_KEY_Utilde) + (GDK_KEY_Umacron) + (GDK_KEY_amacron) + (GDK_KEY_iogonek) + (GDK_KEY_eabovedot) + (GDK_KEY_imacron) + (GDK_KEY_ncedilla) + (GDK_KEY_omacron) + (GDK_KEY_kcedilla) + (GDK_KEY_uogonek) + (GDK_KEY_utilde) + (GDK_KEY_umacron) + (GDK_KEY_Babovedot) + (GDK_KEY_babovedot) + (GDK_KEY_Dabovedot) + (GDK_KEY_Wgrave) + (GDK_KEY_Wacute) + (GDK_KEY_dabovedot) + (GDK_KEY_Ygrave) + (GDK_KEY_Fabovedot) + (GDK_KEY_fabovedot) + (GDK_KEY_Mabovedot) + (GDK_KEY_mabovedot) + (GDK_KEY_Pabovedot) + (GDK_KEY_wgrave) + (GDK_KEY_pabovedot) + (GDK_KEY_wacute) + (GDK_KEY_Sabovedot) + (GDK_KEY_ygrave) + (GDK_KEY_Wdiaeresis) + (GDK_KEY_wdiaeresis) + (GDK_KEY_sabovedot) + (GDK_KEY_Wcircumflex) + (GDK_KEY_Tabovedot) + (GDK_KEY_Ycircumflex) + (GDK_KEY_wcircumflex) + (GDK_KEY_tabovedot) + (GDK_KEY_ycircumflex) + (GDK_KEY_OE) + (GDK_KEY_oe) + (GDK_KEY_Ydiaeresis) + (GDK_KEY_overline) + (GDK_KEY_kana_fullstop) + (GDK_KEY_kana_openingbracket) + (GDK_KEY_kana_closingbracket) + (GDK_KEY_kana_comma) + (GDK_KEY_kana_conjunctive) + (GDK_KEY_kana_middledot) + (GDK_KEY_kana_WO) + (GDK_KEY_kana_a) + (GDK_KEY_kana_i) + (GDK_KEY_kana_u) + (GDK_KEY_kana_e) + (GDK_KEY_kana_o) + (GDK_KEY_kana_ya) + (GDK_KEY_kana_yu) + (GDK_KEY_kana_yo) + (GDK_KEY_kana_tsu) + (GDK_KEY_kana_tu) + (GDK_KEY_prolongedsound) + (GDK_KEY_kana_A) + (GDK_KEY_kana_I) + (GDK_KEY_kana_U) + (GDK_KEY_kana_E) + (GDK_KEY_kana_O) + (GDK_KEY_kana_KA) + (GDK_KEY_kana_KI) + (GDK_KEY_kana_KU) + (GDK_KEY_kana_KE) + (GDK_KEY_kana_KO) + (GDK_KEY_kana_SA) + (GDK_KEY_kana_SHI) + (GDK_KEY_kana_SU) + (GDK_KEY_kana_SE) + (GDK_KEY_kana_SO) + (GDK_KEY_kana_TA) + (GDK_KEY_kana_CHI) + (GDK_KEY_kana_TI) + (GDK_KEY_kana_TSU) + (GDK_KEY_kana_TU) + (GDK_KEY_kana_TE) + (GDK_KEY_kana_TO) + (GDK_KEY_kana_NA) + (GDK_KEY_kana_NI) + (GDK_KEY_kana_NU) + (GDK_KEY_kana_NE) + (GDK_KEY_kana_NO) + (GDK_KEY_kana_HA) + (GDK_KEY_kana_HI) + (GDK_KEY_kana_FU) + (GDK_KEY_kana_HU) + (GDK_KEY_kana_HE) + (GDK_KEY_kana_HO) + (GDK_KEY_kana_MA) + (GDK_KEY_kana_MI) + (GDK_KEY_kana_MU) + (GDK_KEY_kana_ME) + (GDK_KEY_kana_MO) + (GDK_KEY_kana_YA) + (GDK_KEY_kana_YU) + (GDK_KEY_kana_YO) + (GDK_KEY_kana_RA) + (GDK_KEY_kana_RI) + (GDK_KEY_kana_RU) + (GDK_KEY_kana_RE) + (GDK_KEY_kana_RO) + (GDK_KEY_kana_WA) + (GDK_KEY_kana_N) + (GDK_KEY_voicedsound) + (GDK_KEY_semivoicedsound) + (GDK_KEY_kana_switch) + (GDK_KEY_Farsi_0) + (GDK_KEY_Farsi_1) + (GDK_KEY_Farsi_2) + (GDK_KEY_Farsi_3) + (GDK_KEY_Farsi_4) + (GDK_KEY_Farsi_5) + (GDK_KEY_Farsi_6) + (GDK_KEY_Farsi_7) + (GDK_KEY_Farsi_8) + (GDK_KEY_Farsi_9) + (GDK_KEY_Arabic_percent) + (GDK_KEY_Arabic_superscript_alef) + (GDK_KEY_Arabic_tteh) + (GDK_KEY_Arabic_peh) + (GDK_KEY_Arabic_tcheh) + (GDK_KEY_Arabic_ddal) + (GDK_KEY_Arabic_rreh) + (GDK_KEY_Arabic_comma) + (GDK_KEY_Arabic_fullstop) + (GDK_KEY_Arabic_0) + (GDK_KEY_Arabic_1) + (GDK_KEY_Arabic_2) + (GDK_KEY_Arabic_3) + (GDK_KEY_Arabic_4) + (GDK_KEY_Arabic_5) + (GDK_KEY_Arabic_6) + (GDK_KEY_Arabic_7) + (GDK_KEY_Arabic_8) + (GDK_KEY_Arabic_9) + (GDK_KEY_Arabic_semicolon) + (GDK_KEY_Arabic_question_mark) + (GDK_KEY_Arabic_hamza) + (GDK_KEY_Arabic_maddaonalef) + (GDK_KEY_Arabic_hamzaonalef) + (GDK_KEY_Arabic_hamzaonwaw) + (GDK_KEY_Arabic_hamzaunderalef) + (GDK_KEY_Arabic_hamzaonyeh) + (GDK_KEY_Arabic_alef) + (GDK_KEY_Arabic_beh) + (GDK_KEY_Arabic_tehmarbuta) + (GDK_KEY_Arabic_teh) + (GDK_KEY_Arabic_theh) + (GDK_KEY_Arabic_jeem) + (GDK_KEY_Arabic_hah) + (GDK_KEY_Arabic_khah) + (GDK_KEY_Arabic_dal) + (GDK_KEY_Arabic_thal) + (GDK_KEY_Arabic_ra) + (GDK_KEY_Arabic_zain) + (GDK_KEY_Arabic_seen) + (GDK_KEY_Arabic_sheen) + (GDK_KEY_Arabic_sad) + (GDK_KEY_Arabic_dad) + (GDK_KEY_Arabic_tah) + (GDK_KEY_Arabic_zah) + (GDK_KEY_Arabic_ain) + (GDK_KEY_Arabic_ghain) + (GDK_KEY_Arabic_tatweel) + (GDK_KEY_Arabic_feh) + (GDK_KEY_Arabic_qaf) + (GDK_KEY_Arabic_kaf) + (GDK_KEY_Arabic_lam) + (GDK_KEY_Arabic_meem) + (GDK_KEY_Arabic_noon) + (GDK_KEY_Arabic_ha) + (GDK_KEY_Arabic_heh) + (GDK_KEY_Arabic_waw) + (GDK_KEY_Arabic_alefmaksura) + (GDK_KEY_Arabic_yeh) + (GDK_KEY_Arabic_fathatan) + (GDK_KEY_Arabic_dammatan) + (GDK_KEY_Arabic_kasratan) + (GDK_KEY_Arabic_fatha) + (GDK_KEY_Arabic_damma) + (GDK_KEY_Arabic_kasra) + (GDK_KEY_Arabic_shadda) + (GDK_KEY_Arabic_sukun) + (GDK_KEY_Arabic_madda_above) + (GDK_KEY_Arabic_hamza_above) + (GDK_KEY_Arabic_hamza_below) + (GDK_KEY_Arabic_jeh) + (GDK_KEY_Arabic_veh) + (GDK_KEY_Arabic_keheh) + (GDK_KEY_Arabic_gaf) + (GDK_KEY_Arabic_noon_ghunna) + (GDK_KEY_Arabic_heh_doachashmee) + (GDK_KEY_Farsi_yeh) + (GDK_KEY_Arabic_farsi_yeh) + (GDK_KEY_Arabic_yeh_baree) + (GDK_KEY_Arabic_heh_goal) + (GDK_KEY_Arabic_switch) + (GDK_KEY_Cyrillic_GHE_bar) + (GDK_KEY_Cyrillic_ghe_bar) + (GDK_KEY_Cyrillic_ZHE_descender) + (GDK_KEY_Cyrillic_zhe_descender) + (GDK_KEY_Cyrillic_KA_descender) + (GDK_KEY_Cyrillic_ka_descender) + (GDK_KEY_Cyrillic_KA_vertstroke) + (GDK_KEY_Cyrillic_ka_vertstroke) + (GDK_KEY_Cyrillic_EN_descender) + (GDK_KEY_Cyrillic_en_descender) + (GDK_KEY_Cyrillic_U_straight) + (GDK_KEY_Cyrillic_u_straight) + (GDK_KEY_Cyrillic_U_straight_bar) + (GDK_KEY_Cyrillic_u_straight_bar) + (GDK_KEY_Cyrillic_HA_descender) + (GDK_KEY_Cyrillic_ha_descender) + (GDK_KEY_Cyrillic_CHE_descender) + (GDK_KEY_Cyrillic_che_descender) + (GDK_KEY_Cyrillic_CHE_vertstroke) + (GDK_KEY_Cyrillic_che_vertstroke) + (GDK_KEY_Cyrillic_SHHA) + (GDK_KEY_Cyrillic_shha) + (GDK_KEY_Cyrillic_SCHWA) + (GDK_KEY_Cyrillic_schwa) + (GDK_KEY_Cyrillic_I_macron) + (GDK_KEY_Cyrillic_i_macron) + (GDK_KEY_Cyrillic_O_bar) + (GDK_KEY_Cyrillic_o_bar) + (GDK_KEY_Cyrillic_U_macron) + (GDK_KEY_Cyrillic_u_macron) + (GDK_KEY_Serbian_dje) + (GDK_KEY_Macedonia_gje) + (GDK_KEY_Cyrillic_io) + (GDK_KEY_Ukrainian_ie) + (GDK_KEY_Ukranian_je) + (GDK_KEY_Macedonia_dse) + (GDK_KEY_Ukrainian_i) + (GDK_KEY_Ukranian_i) + (GDK_KEY_Ukrainian_yi) + (GDK_KEY_Ukranian_yi) + (GDK_KEY_Cyrillic_je) + (GDK_KEY_Serbian_je) + (GDK_KEY_Cyrillic_lje) + (GDK_KEY_Serbian_lje) + (GDK_KEY_Cyrillic_nje) + (GDK_KEY_Serbian_nje) + (GDK_KEY_Serbian_tshe) + (GDK_KEY_Macedonia_kje) + (GDK_KEY_Ukrainian_ghe_with_upturn) + (GDK_KEY_Byelorussian_shortu) + (GDK_KEY_Cyrillic_dzhe) + (GDK_KEY_Serbian_dze) + (GDK_KEY_numerosign) + (GDK_KEY_Serbian_DJE) + (GDK_KEY_Macedonia_GJE) + (GDK_KEY_Cyrillic_IO) + (GDK_KEY_Ukrainian_IE) + (GDK_KEY_Ukranian_JE) + (GDK_KEY_Macedonia_DSE) + (GDK_KEY_Ukrainian_I) + (GDK_KEY_Ukranian_I) + (GDK_KEY_Ukrainian_YI) + (GDK_KEY_Ukranian_YI) + (GDK_KEY_Cyrillic_JE) + (GDK_KEY_Serbian_JE) + (GDK_KEY_Cyrillic_LJE) + (GDK_KEY_Serbian_LJE) + (GDK_KEY_Cyrillic_NJE) + (GDK_KEY_Serbian_NJE) + (GDK_KEY_Serbian_TSHE) + (GDK_KEY_Macedonia_KJE) + (GDK_KEY_Ukrainian_GHE_WITH_UPTURN) + (GDK_KEY_Byelorussian_SHORTU) + (GDK_KEY_Cyrillic_DZHE) + (GDK_KEY_Serbian_DZE) + (GDK_KEY_Cyrillic_yu) + (GDK_KEY_Cyrillic_a) + (GDK_KEY_Cyrillic_be) + (GDK_KEY_Cyrillic_tse) + (GDK_KEY_Cyrillic_de) + (GDK_KEY_Cyrillic_ie) + (GDK_KEY_Cyrillic_ef) + (GDK_KEY_Cyrillic_ghe) + (GDK_KEY_Cyrillic_ha) + (GDK_KEY_Cyrillic_i) + (GDK_KEY_Cyrillic_shorti) + (GDK_KEY_Cyrillic_ka) + (GDK_KEY_Cyrillic_el) + (GDK_KEY_Cyrillic_em) + (GDK_KEY_Cyrillic_en) + (GDK_KEY_Cyrillic_o) + (GDK_KEY_Cyrillic_pe) + (GDK_KEY_Cyrillic_ya) + (GDK_KEY_Cyrillic_er) + (GDK_KEY_Cyrillic_es) + (GDK_KEY_Cyrillic_te) + (GDK_KEY_Cyrillic_u) + (GDK_KEY_Cyrillic_zhe) + (GDK_KEY_Cyrillic_ve) + (GDK_KEY_Cyrillic_softsign) + (GDK_KEY_Cyrillic_yeru) + (GDK_KEY_Cyrillic_ze) + (GDK_KEY_Cyrillic_sha) + (GDK_KEY_Cyrillic_e) + (GDK_KEY_Cyrillic_shcha) + (GDK_KEY_Cyrillic_che) + (GDK_KEY_Cyrillic_hardsign) + (GDK_KEY_Cyrillic_YU) + (GDK_KEY_Cyrillic_A) + (GDK_KEY_Cyrillic_BE) + (GDK_KEY_Cyrillic_TSE) + (GDK_KEY_Cyrillic_DE) + (GDK_KEY_Cyrillic_IE) + (GDK_KEY_Cyrillic_EF) + (GDK_KEY_Cyrillic_GHE) + (GDK_KEY_Cyrillic_HA) + (GDK_KEY_Cyrillic_I) + (GDK_KEY_Cyrillic_SHORTI) + (GDK_KEY_Cyrillic_KA) + (GDK_KEY_Cyrillic_EL) + (GDK_KEY_Cyrillic_EM) + (GDK_KEY_Cyrillic_EN) + (GDK_KEY_Cyrillic_O) + (GDK_KEY_Cyrillic_PE) + (GDK_KEY_Cyrillic_YA) + (GDK_KEY_Cyrillic_ER) + (GDK_KEY_Cyrillic_ES) + (GDK_KEY_Cyrillic_TE) + (GDK_KEY_Cyrillic_U) + (GDK_KEY_Cyrillic_ZHE) + (GDK_KEY_Cyrillic_VE) + (GDK_KEY_Cyrillic_SOFTSIGN) + (GDK_KEY_Cyrillic_YERU) + (GDK_KEY_Cyrillic_ZE) + (GDK_KEY_Cyrillic_SHA) + (GDK_KEY_Cyrillic_E) + (GDK_KEY_Cyrillic_SHCHA) + (GDK_KEY_Cyrillic_CHE) + (GDK_KEY_Cyrillic_HARDSIGN) + (GDK_KEY_Greek_ALPHAaccent) + (GDK_KEY_Greek_EPSILONaccent) + (GDK_KEY_Greek_ETAaccent) + (GDK_KEY_Greek_IOTAaccent) + (GDK_KEY_Greek_IOTAdieresis) + (GDK_KEY_Greek_IOTAdiaeresis) + (GDK_KEY_Greek_OMICRONaccent) + (GDK_KEY_Greek_UPSILONaccent) + (GDK_KEY_Greek_UPSILONdieresis) + (GDK_KEY_Greek_OMEGAaccent) + (GDK_KEY_Greek_accentdieresis) + (GDK_KEY_Greek_horizbar) + (GDK_KEY_Greek_alphaaccent) + (GDK_KEY_Greek_epsilonaccent) + (GDK_KEY_Greek_etaaccent) + (GDK_KEY_Greek_iotaaccent) + (GDK_KEY_Greek_iotadieresis) + (GDK_KEY_Greek_iotaaccentdieresis) + (GDK_KEY_Greek_omicronaccent) + (GDK_KEY_Greek_upsilonaccent) + (GDK_KEY_Greek_upsilondieresis) + (GDK_KEY_Greek_upsilonaccentdieresis) + (GDK_KEY_Greek_omegaaccent) + (GDK_KEY_Greek_ALPHA) + (GDK_KEY_Greek_BETA) + (GDK_KEY_Greek_GAMMA) + (GDK_KEY_Greek_DELTA) + (GDK_KEY_Greek_EPSILON) + (GDK_KEY_Greek_ZETA) + (GDK_KEY_Greek_ETA) + (GDK_KEY_Greek_THETA) + (GDK_KEY_Greek_IOTA) + (GDK_KEY_Greek_KAPPA) + (GDK_KEY_Greek_LAMDA) + (GDK_KEY_Greek_LAMBDA) + (GDK_KEY_Greek_MU) + (GDK_KEY_Greek_NU) + (GDK_KEY_Greek_XI) + (GDK_KEY_Greek_OMICRON) + (GDK_KEY_Greek_PI) + (GDK_KEY_Greek_RHO) + (GDK_KEY_Greek_SIGMA) + (GDK_KEY_Greek_TAU) + (GDK_KEY_Greek_UPSILON) + (GDK_KEY_Greek_PHI) + (GDK_KEY_Greek_CHI) + (GDK_KEY_Greek_PSI) + (GDK_KEY_Greek_OMEGA) + (GDK_KEY_Greek_alpha) + (GDK_KEY_Greek_beta) + (GDK_KEY_Greek_gamma) + (GDK_KEY_Greek_delta) + (GDK_KEY_Greek_epsilon) + (GDK_KEY_Greek_zeta) + (GDK_KEY_Greek_eta) + (GDK_KEY_Greek_theta) + (GDK_KEY_Greek_iota) + (GDK_KEY_Greek_kappa) + (GDK_KEY_Greek_lamda) + (GDK_KEY_Greek_lambda) + (GDK_KEY_Greek_mu) + (GDK_KEY_Greek_nu) + (GDK_KEY_Greek_xi) + (GDK_KEY_Greek_omicron) + (GDK_KEY_Greek_pi) + (GDK_KEY_Greek_rho) + (GDK_KEY_Greek_sigma) + (GDK_KEY_Greek_finalsmallsigma) + (GDK_KEY_Greek_tau) + (GDK_KEY_Greek_upsilon) + (GDK_KEY_Greek_phi) + (GDK_KEY_Greek_chi) + (GDK_KEY_Greek_psi) + (GDK_KEY_Greek_omega) + (GDK_KEY_Greek_switch) + (GDK_KEY_leftradical) + (GDK_KEY_topleftradical) + (GDK_KEY_horizconnector) + (GDK_KEY_topintegral) + (GDK_KEY_botintegral) + (GDK_KEY_vertconnector) + (GDK_KEY_topleftsqbracket) + (GDK_KEY_botleftsqbracket) + (GDK_KEY_toprightsqbracket) + (GDK_KEY_botrightsqbracket) + (GDK_KEY_topleftparens) + (GDK_KEY_botleftparens) + (GDK_KEY_toprightparens) + (GDK_KEY_botrightparens) + (GDK_KEY_leftmiddlecurlybrace) + (GDK_KEY_rightmiddlecurlybrace) + (GDK_KEY_topleftsummation) + (GDK_KEY_botleftsummation) + (GDK_KEY_topvertsummationconnector) + (GDK_KEY_botvertsummationconnector) + (GDK_KEY_toprightsummation) + (GDK_KEY_botrightsummation) + (GDK_KEY_rightmiddlesummation) + (GDK_KEY_lessthanequal) + (GDK_KEY_notequal) + (GDK_KEY_greaterthanequal) + (GDK_KEY_integral) + (GDK_KEY_therefore) + (GDK_KEY_variation) + (GDK_KEY_infinity) + (GDK_KEY_nabla) + (GDK_KEY_approximate) + (GDK_KEY_similarequal) + (GDK_KEY_ifonlyif) + (GDK_KEY_implies) + (GDK_KEY_identical) + (GDK_KEY_radical) + (GDK_KEY_includedin) + (GDK_KEY_includes) + (GDK_KEY_intersection) + (GDK_KEY_union) + (GDK_KEY_logicaland) + (GDK_KEY_logicalor) + (GDK_KEY_partialderivative) + (GDK_KEY_function) + (GDK_KEY_leftarrow) + (GDK_KEY_uparrow) + (GDK_KEY_rightarrow) + (GDK_KEY_downarrow) + (GDK_KEY_blank) + (GDK_KEY_soliddiamond) + (GDK_KEY_checkerboard) + (GDK_KEY_ht) + (GDK_KEY_ff) + (GDK_KEY_cr) + (GDK_KEY_lf) + (GDK_KEY_nl) + (GDK_KEY_vt) + (GDK_KEY_lowrightcorner) + (GDK_KEY_uprightcorner) + (GDK_KEY_upleftcorner) + (GDK_KEY_lowleftcorner) + (GDK_KEY_crossinglines) + (GDK_KEY_horizlinescan1) + (GDK_KEY_horizlinescan3) + (GDK_KEY_horizlinescan5) + (GDK_KEY_horizlinescan7) + (GDK_KEY_horizlinescan9) + (GDK_KEY_leftt) + (GDK_KEY_rightt) + (GDK_KEY_bott) + (GDK_KEY_topt) + (GDK_KEY_vertbar) + (GDK_KEY_emspace) + (GDK_KEY_enspace) + (GDK_KEY_em3space) + (GDK_KEY_em4space) + (GDK_KEY_digitspace) + (GDK_KEY_punctspace) + (GDK_KEY_thinspace) + (GDK_KEY_hairspace) + (GDK_KEY_emdash) + (GDK_KEY_endash) + (GDK_KEY_signifblank) + (GDK_KEY_ellipsis) + (GDK_KEY_doubbaselinedot) + (GDK_KEY_onethird) + (GDK_KEY_twothirds) + (GDK_KEY_onefifth) + (GDK_KEY_twofifths) + (GDK_KEY_threefifths) + (GDK_KEY_fourfifths) + (GDK_KEY_onesixth) + (GDK_KEY_fivesixths) + (GDK_KEY_careof) + (GDK_KEY_figdash) + (GDK_KEY_leftanglebracket) + (GDK_KEY_decimalpoint) + (GDK_KEY_rightanglebracket) + (GDK_KEY_marker) + (GDK_KEY_oneeighth) + (GDK_KEY_threeeighths) + (GDK_KEY_fiveeighths) + (GDK_KEY_seveneighths) + (GDK_KEY_trademark) + (GDK_KEY_signaturemark) + (GDK_KEY_trademarkincircle) + (GDK_KEY_leftopentriangle) + (GDK_KEY_rightopentriangle) + (GDK_KEY_emopencircle) + (GDK_KEY_emopenrectangle) + (GDK_KEY_leftsinglequotemark) + (GDK_KEY_rightsinglequotemark) + (GDK_KEY_leftdoublequotemark) + (GDK_KEY_rightdoublequotemark) + (GDK_KEY_prescription) + (GDK_KEY_minutes) + (GDK_KEY_seconds) + (GDK_KEY_latincross) + (GDK_KEY_hexagram) + (GDK_KEY_filledrectbullet) + (GDK_KEY_filledlefttribullet) + (GDK_KEY_filledrighttribullet) + (GDK_KEY_emfilledcircle) + (GDK_KEY_emfilledrect) + (GDK_KEY_enopencircbullet) + (GDK_KEY_enopensquarebullet) + (GDK_KEY_openrectbullet) + (GDK_KEY_opentribulletup) + (GDK_KEY_opentribulletdown) + (GDK_KEY_openstar) + (GDK_KEY_enfilledcircbullet) + (GDK_KEY_enfilledsqbullet) + (GDK_KEY_filledtribulletup) + (GDK_KEY_filledtribulletdown) + (GDK_KEY_leftpointer) + (GDK_KEY_rightpointer) + (GDK_KEY_club) + (GDK_KEY_diamond) + (GDK_KEY_heart) + (GDK_KEY_maltesecross) + (GDK_KEY_dagger) + (GDK_KEY_doubledagger) + (GDK_KEY_checkmark) + (GDK_KEY_ballotcross) + (GDK_KEY_musicalsharp) + (GDK_KEY_musicalflat) + (GDK_KEY_malesymbol) + (GDK_KEY_femalesymbol) + (GDK_KEY_telephone) + (GDK_KEY_telephonerecorder) + (GDK_KEY_phonographcopyright) + (GDK_KEY_caret) + (GDK_KEY_singlelowquotemark) + (GDK_KEY_doublelowquotemark) + (GDK_KEY_cursor) + (GDK_KEY_leftcaret) + (GDK_KEY_rightcaret) + (GDK_KEY_downcaret) + (GDK_KEY_upcaret) + (GDK_KEY_overbar) + (GDK_KEY_downtack) + (GDK_KEY_upshoe) + (GDK_KEY_downstile) + (GDK_KEY_underbar) + (GDK_KEY_jot) + (GDK_KEY_quad) + (GDK_KEY_uptack) + (GDK_KEY_circle) + (GDK_KEY_upstile) + (GDK_KEY_downshoe) + (GDK_KEY_rightshoe) + (GDK_KEY_leftshoe) + (GDK_KEY_lefttack) + (GDK_KEY_righttack) + (GDK_KEY_hebrew_doublelowline) + (GDK_KEY_hebrew_aleph) + (GDK_KEY_hebrew_bet) + (GDK_KEY_hebrew_beth) + (GDK_KEY_hebrew_gimel) + (GDK_KEY_hebrew_gimmel) + (GDK_KEY_hebrew_dalet) + (GDK_KEY_hebrew_daleth) + (GDK_KEY_hebrew_he) + (GDK_KEY_hebrew_waw) + (GDK_KEY_hebrew_zain) + (GDK_KEY_hebrew_zayin) + (GDK_KEY_hebrew_chet) + (GDK_KEY_hebrew_het) + (GDK_KEY_hebrew_tet) + (GDK_KEY_hebrew_teth) + (GDK_KEY_hebrew_yod) + (GDK_KEY_hebrew_finalkaph) + (GDK_KEY_hebrew_kaph) + (GDK_KEY_hebrew_lamed) + (GDK_KEY_hebrew_finalmem) + (GDK_KEY_hebrew_mem) + (GDK_KEY_hebrew_finalnun) + (GDK_KEY_hebrew_nun) + (GDK_KEY_hebrew_samech) + (GDK_KEY_hebrew_samekh) + (GDK_KEY_hebrew_ayin) + (GDK_KEY_hebrew_finalpe) + (GDK_KEY_hebrew_pe) + (GDK_KEY_hebrew_finalzade) + (GDK_KEY_hebrew_finalzadi) + (GDK_KEY_hebrew_zade) + (GDK_KEY_hebrew_zadi) + (GDK_KEY_hebrew_qoph) + (GDK_KEY_hebrew_kuf) + (GDK_KEY_hebrew_resh) + (GDK_KEY_hebrew_shin) + (GDK_KEY_hebrew_taw) + (GDK_KEY_hebrew_taf) + (GDK_KEY_Hebrew_switch) + (GDK_KEY_Thai_kokai) + (GDK_KEY_Thai_khokhai) + (GDK_KEY_Thai_khokhuat) + (GDK_KEY_Thai_khokhwai) + (GDK_KEY_Thai_khokhon) + (GDK_KEY_Thai_khorakhang) + (GDK_KEY_Thai_ngongu) + (GDK_KEY_Thai_chochan) + (GDK_KEY_Thai_choching) + (GDK_KEY_Thai_chochang) + (GDK_KEY_Thai_soso) + (GDK_KEY_Thai_chochoe) + (GDK_KEY_Thai_yoying) + (GDK_KEY_Thai_dochada) + (GDK_KEY_Thai_topatak) + (GDK_KEY_Thai_thothan) + (GDK_KEY_Thai_thonangmontho) + (GDK_KEY_Thai_thophuthao) + (GDK_KEY_Thai_nonen) + (GDK_KEY_Thai_dodek) + (GDK_KEY_Thai_totao) + (GDK_KEY_Thai_thothung) + (GDK_KEY_Thai_thothahan) + (GDK_KEY_Thai_thothong) + (GDK_KEY_Thai_nonu) + (GDK_KEY_Thai_bobaimai) + (GDK_KEY_Thai_popla) + (GDK_KEY_Thai_phophung) + (GDK_KEY_Thai_fofa) + (GDK_KEY_Thai_phophan) + (GDK_KEY_Thai_fofan) + (GDK_KEY_Thai_phosamphao) + (GDK_KEY_Thai_moma) + (GDK_KEY_Thai_yoyak) + (GDK_KEY_Thai_rorua) + (GDK_KEY_Thai_ru) + (GDK_KEY_Thai_loling) + (GDK_KEY_Thai_lu) + (GDK_KEY_Thai_wowaen) + (GDK_KEY_Thai_sosala) + (GDK_KEY_Thai_sorusi) + (GDK_KEY_Thai_sosua) + (GDK_KEY_Thai_hohip) + (GDK_KEY_Thai_lochula) + (GDK_KEY_Thai_oang) + (GDK_KEY_Thai_honokhuk) + (GDK_KEY_Thai_paiyannoi) + (GDK_KEY_Thai_saraa) + (GDK_KEY_Thai_maihanakat) + (GDK_KEY_Thai_saraaa) + (GDK_KEY_Thai_saraam) + (GDK_KEY_Thai_sarai) + (GDK_KEY_Thai_saraii) + (GDK_KEY_Thai_saraue) + (GDK_KEY_Thai_sarauee) + (GDK_KEY_Thai_sarau) + (GDK_KEY_Thai_sarauu) + (GDK_KEY_Thai_phinthu) + (GDK_KEY_Thai_maihanakat_maitho) + (GDK_KEY_Thai_baht) + (GDK_KEY_Thai_sarae) + (GDK_KEY_Thai_saraae) + (GDK_KEY_Thai_sarao) + (GDK_KEY_Thai_saraaimaimuan) + (GDK_KEY_Thai_saraaimaimalai) + (GDK_KEY_Thai_lakkhangyao) + (GDK_KEY_Thai_maiyamok) + (GDK_KEY_Thai_maitaikhu) + (GDK_KEY_Thai_maiek) + (GDK_KEY_Thai_maitho) + (GDK_KEY_Thai_maitri) + (GDK_KEY_Thai_maichattawa) + (GDK_KEY_Thai_thanthakhat) + (GDK_KEY_Thai_nikhahit) + (GDK_KEY_Thai_leksun) + (GDK_KEY_Thai_leknung) + (GDK_KEY_Thai_leksong) + (GDK_KEY_Thai_leksam) + (GDK_KEY_Thai_leksi) + (GDK_KEY_Thai_lekha) + (GDK_KEY_Thai_lekhok) + (GDK_KEY_Thai_lekchet) + (GDK_KEY_Thai_lekpaet) + (GDK_KEY_Thai_lekkao) + (GDK_KEY_Hangul) + (GDK_KEY_Hangul_Start) + (GDK_KEY_Hangul_End) + (GDK_KEY_Hangul_Hanja) + (GDK_KEY_Hangul_Jamo) + (GDK_KEY_Hangul_Romaja) + (GDK_KEY_Hangul_Codeinput) + (GDK_KEY_Hangul_Jeonja) + (GDK_KEY_Hangul_Banja) + (GDK_KEY_Hangul_PreHanja) + (GDK_KEY_Hangul_PostHanja) + (GDK_KEY_Hangul_SingleCandidate) + (GDK_KEY_Hangul_MultipleCandidate) + (GDK_KEY_Hangul_PreviousCandidate) + (GDK_KEY_Hangul_Special) + (GDK_KEY_Hangul_switch) + (GDK_KEY_Hangul_Kiyeog) + (GDK_KEY_Hangul_SsangKiyeog) + (GDK_KEY_Hangul_KiyeogSios) + (GDK_KEY_Hangul_Nieun) + (GDK_KEY_Hangul_NieunJieuj) + (GDK_KEY_Hangul_NieunHieuh) + (GDK_KEY_Hangul_Dikeud) + (GDK_KEY_Hangul_SsangDikeud) + (GDK_KEY_Hangul_Rieul) + (GDK_KEY_Hangul_RieulKiyeog) + (GDK_KEY_Hangul_RieulMieum) + (GDK_KEY_Hangul_RieulPieub) + (GDK_KEY_Hangul_RieulSios) + (GDK_KEY_Hangul_RieulTieut) + (GDK_KEY_Hangul_RieulPhieuf) + (GDK_KEY_Hangul_RieulHieuh) + (GDK_KEY_Hangul_Mieum) + (GDK_KEY_Hangul_Pieub) + (GDK_KEY_Hangul_SsangPieub) + (GDK_KEY_Hangul_PieubSios) + (GDK_KEY_Hangul_Sios) + (GDK_KEY_Hangul_SsangSios) + (GDK_KEY_Hangul_Ieung) + (GDK_KEY_Hangul_Jieuj) + (GDK_KEY_Hangul_SsangJieuj) + (GDK_KEY_Hangul_Cieuc) + (GDK_KEY_Hangul_Khieuq) + (GDK_KEY_Hangul_Tieut) + (GDK_KEY_Hangul_Phieuf) + (GDK_KEY_Hangul_Hieuh) + (GDK_KEY_Hangul_A) + (GDK_KEY_Hangul_AE) + (GDK_KEY_Hangul_YA) + (GDK_KEY_Hangul_YAE) + (GDK_KEY_Hangul_EO) + (GDK_KEY_Hangul_E) + (GDK_KEY_Hangul_YEO) + (GDK_KEY_Hangul_YE) + (GDK_KEY_Hangul_O) + (GDK_KEY_Hangul_WA) + (GDK_KEY_Hangul_WAE) + (GDK_KEY_Hangul_OE) + (GDK_KEY_Hangul_YO) + (GDK_KEY_Hangul_U) + (GDK_KEY_Hangul_WEO) + (GDK_KEY_Hangul_WE) + (GDK_KEY_Hangul_WI) + (GDK_KEY_Hangul_YU) + (GDK_KEY_Hangul_EU) + (GDK_KEY_Hangul_YI) + (GDK_KEY_Hangul_I) + (GDK_KEY_Hangul_J_Kiyeog) + (GDK_KEY_Hangul_J_SsangKiyeog) + (GDK_KEY_Hangul_J_KiyeogSios) + (GDK_KEY_Hangul_J_Nieun) + (GDK_KEY_Hangul_J_NieunJieuj) + (GDK_KEY_Hangul_J_NieunHieuh) + (GDK_KEY_Hangul_J_Dikeud) + (GDK_KEY_Hangul_J_Rieul) + (GDK_KEY_Hangul_J_RieulKiyeog) + (GDK_KEY_Hangul_J_RieulMieum) + (GDK_KEY_Hangul_J_RieulPieub) + (GDK_KEY_Hangul_J_RieulSios) + (GDK_KEY_Hangul_J_RieulTieut) + (GDK_KEY_Hangul_J_RieulPhieuf) + (GDK_KEY_Hangul_J_RieulHieuh) + (GDK_KEY_Hangul_J_Mieum) + (GDK_KEY_Hangul_J_Pieub) + (GDK_KEY_Hangul_J_PieubSios) + (GDK_KEY_Hangul_J_Sios) + (GDK_KEY_Hangul_J_SsangSios) + (GDK_KEY_Hangul_J_Ieung) + (GDK_KEY_Hangul_J_Jieuj) + (GDK_KEY_Hangul_J_Cieuc) + (GDK_KEY_Hangul_J_Khieuq) + (GDK_KEY_Hangul_J_Tieut) + (GDK_KEY_Hangul_J_Phieuf) + (GDK_KEY_Hangul_J_Hieuh) + (GDK_KEY_Hangul_RieulYeorinHieuh) + (GDK_KEY_Hangul_SunkyeongeumMieum) + (GDK_KEY_Hangul_SunkyeongeumPieub) + (GDK_KEY_Hangul_PanSios) + (GDK_KEY_Hangul_KkogjiDalrinIeung) + (GDK_KEY_Hangul_SunkyeongeumPhieuf) + (GDK_KEY_Hangul_YeorinHieuh) + (GDK_KEY_Hangul_AraeA) + (GDK_KEY_Hangul_AraeAE) + (GDK_KEY_Hangul_J_PanSios) + (GDK_KEY_Hangul_J_KkogjiDalrinIeung) + (GDK_KEY_Hangul_J_YeorinHieuh) + (GDK_KEY_Korean_Won) + (GDK_KEY_Armenian_ligature_ew) + (GDK_KEY_Armenian_full_stop) + (GDK_KEY_Armenian_verjaket) + (GDK_KEY_Armenian_separation_mark) + (GDK_KEY_Armenian_but) + (GDK_KEY_Armenian_hyphen) + (GDK_KEY_Armenian_yentamna) + (GDK_KEY_Armenian_exclam) + (GDK_KEY_Armenian_amanak) + (GDK_KEY_Armenian_accent) + (GDK_KEY_Armenian_shesht) + (GDK_KEY_Armenian_question) + (GDK_KEY_Armenian_paruyk) + (GDK_KEY_Armenian_AYB) + (GDK_KEY_Armenian_ayb) + (GDK_KEY_Armenian_BEN) + (GDK_KEY_Armenian_ben) + (GDK_KEY_Armenian_GIM) + (GDK_KEY_Armenian_gim) + (GDK_KEY_Armenian_DA) + (GDK_KEY_Armenian_da) + (GDK_KEY_Armenian_YECH) + (GDK_KEY_Armenian_yech) + (GDK_KEY_Armenian_ZA) + (GDK_KEY_Armenian_za) + (GDK_KEY_Armenian_E) + (GDK_KEY_Armenian_e) + (GDK_KEY_Armenian_AT) + (GDK_KEY_Armenian_at) + (GDK_KEY_Armenian_TO) + (GDK_KEY_Armenian_to) + (GDK_KEY_Armenian_ZHE) + (GDK_KEY_Armenian_zhe) + (GDK_KEY_Armenian_INI) + (GDK_KEY_Armenian_ini) + (GDK_KEY_Armenian_LYUN) + (GDK_KEY_Armenian_lyun) + (GDK_KEY_Armenian_KHE) + (GDK_KEY_Armenian_khe) + (GDK_KEY_Armenian_TSA) + (GDK_KEY_Armenian_tsa) + (GDK_KEY_Armenian_KEN) + (GDK_KEY_Armenian_ken) + (GDK_KEY_Armenian_HO) + (GDK_KEY_Armenian_ho) + (GDK_KEY_Armenian_DZA) + (GDK_KEY_Armenian_dza) + (GDK_KEY_Armenian_GHAT) + (GDK_KEY_Armenian_ghat) + (GDK_KEY_Armenian_TCHE) + (GDK_KEY_Armenian_tche) + (GDK_KEY_Armenian_MEN) + (GDK_KEY_Armenian_men) + (GDK_KEY_Armenian_HI) + (GDK_KEY_Armenian_hi) + (GDK_KEY_Armenian_NU) + (GDK_KEY_Armenian_nu) + (GDK_KEY_Armenian_SHA) + (GDK_KEY_Armenian_sha) + (GDK_KEY_Armenian_VO) + (GDK_KEY_Armenian_vo) + (GDK_KEY_Armenian_CHA) + (GDK_KEY_Armenian_cha) + (GDK_KEY_Armenian_PE) + (GDK_KEY_Armenian_pe) + (GDK_KEY_Armenian_JE) + (GDK_KEY_Armenian_je) + (GDK_KEY_Armenian_RA) + (GDK_KEY_Armenian_ra) + (GDK_KEY_Armenian_SE) + (GDK_KEY_Armenian_se) + (GDK_KEY_Armenian_VEV) + (GDK_KEY_Armenian_vev) + (GDK_KEY_Armenian_TYUN) + (GDK_KEY_Armenian_tyun) + (GDK_KEY_Armenian_RE) + (GDK_KEY_Armenian_re) + (GDK_KEY_Armenian_TSO) + (GDK_KEY_Armenian_tso) + (GDK_KEY_Armenian_VYUN) + (GDK_KEY_Armenian_vyun) + (GDK_KEY_Armenian_PYUR) + (GDK_KEY_Armenian_pyur) + (GDK_KEY_Armenian_KE) + (GDK_KEY_Armenian_ke) + (GDK_KEY_Armenian_O) + (GDK_KEY_Armenian_o) + (GDK_KEY_Armenian_FE) + (GDK_KEY_Armenian_fe) + (GDK_KEY_Armenian_apostrophe) + (GDK_KEY_Georgian_an) + (GDK_KEY_Georgian_ban) + (GDK_KEY_Georgian_gan) + (GDK_KEY_Georgian_don) + (GDK_KEY_Georgian_en) + (GDK_KEY_Georgian_vin) + (GDK_KEY_Georgian_zen) + (GDK_KEY_Georgian_tan) + (GDK_KEY_Georgian_in) + (GDK_KEY_Georgian_kan) + (GDK_KEY_Georgian_las) + (GDK_KEY_Georgian_man) + (GDK_KEY_Georgian_nar) + (GDK_KEY_Georgian_on) + (GDK_KEY_Georgian_par) + (GDK_KEY_Georgian_zhar) + (GDK_KEY_Georgian_rae) + (GDK_KEY_Georgian_san) + (GDK_KEY_Georgian_tar) + (GDK_KEY_Georgian_un) + (GDK_KEY_Georgian_phar) + (GDK_KEY_Georgian_khar) + (GDK_KEY_Georgian_ghan) + (GDK_KEY_Georgian_qar) + (GDK_KEY_Georgian_shin) + (GDK_KEY_Georgian_chin) + (GDK_KEY_Georgian_can) + (GDK_KEY_Georgian_jil) + (GDK_KEY_Georgian_cil) + (GDK_KEY_Georgian_char) + (GDK_KEY_Georgian_xan) + (GDK_KEY_Georgian_jhan) + (GDK_KEY_Georgian_hae) + (GDK_KEY_Georgian_he) + (GDK_KEY_Georgian_hie) + (GDK_KEY_Georgian_we) + (GDK_KEY_Georgian_har) + (GDK_KEY_Georgian_hoe) + (GDK_KEY_Georgian_fi) + (GDK_KEY_Xabovedot) + (GDK_KEY_Ibreve) + (GDK_KEY_Zstroke) + (GDK_KEY_Gcaron) + (GDK_KEY_Ocaron) + (GDK_KEY_Obarred) + (GDK_KEY_xabovedot) + (GDK_KEY_ibreve) + (GDK_KEY_zstroke) + (GDK_KEY_gcaron) + (GDK_KEY_ocaron) + (GDK_KEY_obarred) + (GDK_KEY_SCHWA) + (GDK_KEY_schwa) + (GDK_KEY_Lbelowdot) + (GDK_KEY_lbelowdot) + (GDK_KEY_Abelowdot) + (GDK_KEY_abelowdot) + (GDK_KEY_Ahook) + (GDK_KEY_ahook) + (GDK_KEY_Acircumflexacute) + (GDK_KEY_acircumflexacute) + (GDK_KEY_Acircumflexgrave) + (GDK_KEY_acircumflexgrave) + (GDK_KEY_Acircumflexhook) + (GDK_KEY_acircumflexhook) + (GDK_KEY_Acircumflextilde) + (GDK_KEY_acircumflextilde) + (GDK_KEY_Acircumflexbelowdot) + (GDK_KEY_acircumflexbelowdot) + (GDK_KEY_Abreveacute) + (GDK_KEY_abreveacute) + (GDK_KEY_Abrevegrave) + (GDK_KEY_abrevegrave) + (GDK_KEY_Abrevehook) + (GDK_KEY_abrevehook) + (GDK_KEY_Abrevetilde) + (GDK_KEY_abrevetilde) + (GDK_KEY_Abrevebelowdot) + (GDK_KEY_abrevebelowdot) + (GDK_KEY_Ebelowdot) + (GDK_KEY_ebelowdot) + (GDK_KEY_Ehook) + (GDK_KEY_ehook) + (GDK_KEY_Etilde) + (GDK_KEY_etilde) + (GDK_KEY_Ecircumflexacute) + (GDK_KEY_ecircumflexacute) + (GDK_KEY_Ecircumflexgrave) + (GDK_KEY_ecircumflexgrave) + (GDK_KEY_Ecircumflexhook) + (GDK_KEY_ecircumflexhook) + (GDK_KEY_Ecircumflextilde) + (GDK_KEY_ecircumflextilde) + (GDK_KEY_Ecircumflexbelowdot) + (GDK_KEY_ecircumflexbelowdot) + (GDK_KEY_Ihook) + (GDK_KEY_ihook) + (GDK_KEY_Ibelowdot) + (GDK_KEY_ibelowdot) + (GDK_KEY_Obelowdot) + (GDK_KEY_obelowdot) + (GDK_KEY_Ohook) + (GDK_KEY_ohook) + (GDK_KEY_Ocircumflexacute) + (GDK_KEY_ocircumflexacute) + (GDK_KEY_Ocircumflexgrave) + (GDK_KEY_ocircumflexgrave) + (GDK_KEY_Ocircumflexhook) + (GDK_KEY_ocircumflexhook) + (GDK_KEY_Ocircumflextilde) + (GDK_KEY_ocircumflextilde) + (GDK_KEY_Ocircumflexbelowdot) + (GDK_KEY_ocircumflexbelowdot) + (GDK_KEY_Ohornacute) + (GDK_KEY_ohornacute) + (GDK_KEY_Ohorngrave) + (GDK_KEY_ohorngrave) + (GDK_KEY_Ohornhook) + (GDK_KEY_ohornhook) + (GDK_KEY_Ohorntilde) + (GDK_KEY_ohorntilde) + (GDK_KEY_Ohornbelowdot) + (GDK_KEY_ohornbelowdot) + (GDK_KEY_Ubelowdot) + (GDK_KEY_ubelowdot) + (GDK_KEY_Uhook) + (GDK_KEY_uhook) + (GDK_KEY_Uhornacute) + (GDK_KEY_uhornacute) + (GDK_KEY_Uhorngrave) + (GDK_KEY_uhorngrave) + (GDK_KEY_Uhornhook) + (GDK_KEY_uhornhook) + (GDK_KEY_Uhorntilde) + (GDK_KEY_uhorntilde) + (GDK_KEY_Uhornbelowdot) + (GDK_KEY_uhornbelowdot) + (GDK_KEY_Ybelowdot) + (GDK_KEY_ybelowdot) + (GDK_KEY_Yhook) + (GDK_KEY_yhook) + (GDK_KEY_Ytilde) + (GDK_KEY_ytilde) + (GDK_KEY_Ohorn) + (GDK_KEY_ohorn) + (GDK_KEY_Uhorn) + (GDK_KEY_uhorn) + (GDK_KEY_EcuSign) + (GDK_KEY_ColonSign) + (GDK_KEY_CruzeiroSign) + (GDK_KEY_FFrancSign) + (GDK_KEY_LiraSign) + (GDK_KEY_MillSign) + (GDK_KEY_NairaSign) + (GDK_KEY_PesetaSign) + (GDK_KEY_RupeeSign) + (GDK_KEY_WonSign) + (GDK_KEY_NewSheqelSign) + (GDK_KEY_DongSign) + (GDK_KEY_EuroSign) + (GDK_KEY_zerosuperior) + (GDK_KEY_foursuperior) + (GDK_KEY_fivesuperior) + (GDK_KEY_sixsuperior) + (GDK_KEY_sevensuperior) + (GDK_KEY_eightsuperior) + (GDK_KEY_ninesuperior) + (GDK_KEY_zerosubscript) + (GDK_KEY_onesubscript) + (GDK_KEY_twosubscript) + (GDK_KEY_threesubscript) + (GDK_KEY_foursubscript) + (GDK_KEY_fivesubscript) + (GDK_KEY_sixsubscript) + (GDK_KEY_sevensubscript) + (GDK_KEY_eightsubscript) + (GDK_KEY_ninesubscript) + (GDK_KEY_partdifferential) + (GDK_KEY_emptyset) + (GDK_KEY_elementof) + (GDK_KEY_notelementof) + (GDK_KEY_containsas) + (GDK_KEY_squareroot) + (GDK_KEY_cuberoot) + (GDK_KEY_fourthroot) + (GDK_KEY_dintegral) + (GDK_KEY_tintegral) + (GDK_KEY_because) + (GDK_KEY_approxeq) + (GDK_KEY_notapproxeq) + (GDK_KEY_notidentical) + (GDK_KEY_stricteq)) \ No newline at end of file diff --git a/src/gtk/Includes/gdktypes.cdecl b/src/gtk/Includes/gdktypes.cdecl index f54a9799c..3ada5ca8e 100644 --- a/src/gtk/Includes/gdktypes.cdecl +++ b/src/gtk/Includes/gdktypes.cdecl @@ -4,18 +4,10 @@ gtk-2.0/gdk/gdktypes.h |# (include "glib") (include "pango") -;(include "glib-object") - -;(include "gdkconfig") (enum (GDK_CURRENT_TIME)) -(enum (GDK_PARENT_RELATIVE)) -(typedef GdkPoint (struct _GdkPoint)) (typedef GdkRectangle (struct _GdkRectangle)) -(typedef GdkSegment (struct _GdkSegment)) -(typedef GdkSpan (struct _GdkSpan)) -(typedef GdkWChar guint32) (typedef GdkAtom (* (struct _GdkAtom))) @@ -24,23 +16,6 @@ gtk-2.0/gdk/gdktypes.h |# (typedef GdkColor (struct _GdkColor)) (typedef GdkColormap (struct _GdkColormap)) (typedef GdkCursor (struct _GdkCursor)) -;(typedef GdkFont (struct _GdkFont)) -(typedef GdkGC (struct _GdkGC)) -;(typedef GdkImage (struct _GdkImage)) -;(typedef GdkRegion (struct _GdkRegion)) -(typedef GdkVisual (struct _GdkVisual)) - -(typedef GdkDrawable (struct _GdkDrawable)) -(typedef GdkBitmap (struct _GdkDrawable)) -(typedef GdkPixmap (struct _GdkDrawable)) -(typedef GdkWindow (struct _GdkDrawable)) -;(typedef GdkDisplay (struct _GdkDisplay)) -;(typedef GdkScreen (struct _GdkScreen)) - -(typedef GdkByteOrder - (enum - (GDK_LSB_FIRST) - (GDK_MSB_FIRST))) (typedef GdkModifierType (enum @@ -63,45 +38,8 @@ gtk-2.0/gdk/gdktypes.h |# (GDK_RELEASE_MASK) (GDK_MODIFIER_MASK))) -(typedef GdkInputCondition - (enum - (GDK_INPUT_READ) - (GDK_INPUT_WRITE) - (GDK_INPUT_EXCEPTION))) - -(typedef GdkStatus - (enum - (GDK_OK) - (GDK_ERROR) - (GDK_ERROR_PARAM) - (GDK_ERROR_FILE) - (GDK_ERROR_MEM))) - -(typedef GdkGrabStatus - (enum - (GDK_GRAB_SUCCESS) - (GDK_GRAB_ALREADY_GRABBED) - (GDK_GRAB_INVALID_TIME) - (GDK_GRAB_NOT_VIEWABLE) - (GDK_GRAB_FROZEN))) - -(struct _GdkPoint - (x gint) - (y gint)) - (struct _GdkRectangle (x gint) (y gint) (width gint) - (height gint)) - -(struct _GdkSegment - (x1 gint) - (y1 gint) - (x2 gint) - (y2 gint)) - -(struct _GdkSpan - (x gint) - (y gint) - (width gint)) \ No newline at end of file + (height gint)) \ No newline at end of file diff --git a/src/gtk/Includes/gdkvisual.cdecl b/src/gtk/Includes/gdkvisual.cdecl deleted file mode 100644 index 569d4c610..000000000 --- a/src/gtk/Includes/gdkvisual.cdecl +++ /dev/null @@ -1,34 +0,0 @@ -#| -*-Scheme-*- - -gtk-2.0/gdk/gdkvisual.h |# - -(include "gdktypes") - -(typedef GdkVisualType - (enum - (GDK_VISUAL_STATIC_GRAY) - (GDK_VISUAL_GRAYSCALE) - (GDK_VISUAL_STATIC_COLOR) - (GDK_VISUAL_PSEUDO_COLOR) - (GDK_VISUAL_TRUE_COLOR) - (GDK_VISUAL_DIRECT_COLOR))) - -(struct _GdkVisual - (parent_instance GObject) - (type GdkVisualType) - (depth gint) - (byte_order GdkByteOrder) - (colormap_size gint) - (bits_per_rgb gint) - - (red_mask guint32) - (red_shift gint) - (red_prec gint) - - (green_mask guint32) - (green_shift gint) - (green_prec gint) - - (blue_mask guint32) - (blue_shift gint) - (blue_prec gint)) \ No newline at end of file diff --git a/src/gtk/Includes/gdkwindow.cdecl b/src/gtk/Includes/gdkwindow.cdecl index 8481d22fb..cfaf95771 100644 --- a/src/gtk/Includes/gdkwindow.cdecl +++ b/src/gtk/Includes/gdkwindow.cdecl @@ -2,7 +2,7 @@ gtk-2.0/gdk/gdkwindow.h |# -(include "gdkdrawable") +;(include "gdkdrawable") (include "gdktypes") (include "gdkevents") @@ -141,36 +141,6 @@ gtk-2.0/gdk/gdkwindow.h |# (win_x (* gint)) (win_y (* gint)))))) -(typedef GdkWindowObject (struct _GdkWindowObject)) - -(typedef GdkWindowObjectClass (struct _GdkWindowObjectClass)) - -(struct _GdkWindowObject - (parent_instance GdkDrawable) - (impl (* GdkDrawable)) - (parent (* GdkWindowObject)) - (user_data gpointer) - (x gint) - (y gint) - (extension_events gint) - (filters (* GList)) - (children (* GList)) - (bg_color GdkColor) - (bg_pixmap (* GdkPixmap)) - (paint_stack (* GSList)) - (update_area (* GdkRegion)) - (update_freeze_count guint) - (window_type guint8) - (depth guint8) - (resize_count guint8) - (state GdkWindowState) - ;;(_skip guchar) - (event_mask GdkEventMask) - (update_and_descendants_freeze_count guint)) - -(struct _GdkWindowObjectClass - (parent_class GdkDrawableClass)) - (extern (* GdkWindow) gdk_window_new (parent (* GdkWindow)) (attributes (* GdkWindowAttr)) diff --git a/src/gtk/Includes/gtk.cdecl b/src/gtk/Includes/gtk.cdecl index c6ae1f275..0120e88f9 100644 --- a/src/gtk/Includes/gtk.cdecl +++ b/src/gtk/Includes/gtk.cdecl @@ -59,7 +59,7 @@ gtk-2.0/gtk/gtk.h |# ;(include "gtkfontsel") (include "gtkframe") ;(include "gtkgamma") -(include "gtkgc") +;(include "gtkgc") ;(include "gtkhandlebox") ;(include "gtkhbbox") (include "gtkhbox") diff --git a/src/gtk/Includes/gtkadjustment.cdecl b/src/gtk/Includes/gtkadjustment.cdecl index c96980995..49fc659d9 100644 --- a/src/gtk/Includes/gtkadjustment.cdecl +++ b/src/gtk/Includes/gtkadjustment.cdecl @@ -34,8 +34,8 @@ gtk-2.0/gtk/gtkadjustment.h |# ; (lower gdouble) ; (upper gdouble)) -;(extern gdouble gtk_adjustment_get_value -; (adjustment (* GtkAdjustment))) +(extern gdouble gtk_adjustment_get_value + (adjustment (* GtkAdjustment))) ;(extern void gtk_adjustment_set_value ; (adjustment (* GtkAdjustment)) diff --git a/src/gtk/Includes/gtkgc.cdecl b/src/gtk/Includes/gtkgc.cdecl deleted file mode 100644 index 97140f22a..000000000 --- a/src/gtk/Includes/gtkgc.cdecl +++ /dev/null @@ -1,12 +0,0 @@ -#| -*-Scheme-*- - -gtk+-2.20.1/gtk/gtkgc.h |# - -(extern (* GdkGC) gtk_gc_get - (depth gint) - (colormap (* GdkColormap)) - (values (* GdkGCValues)) - (values_mask GdkGCValuesMask)) - -(extern void gtk_gc_release - (gc (* GdkGC))) diff --git a/src/gtk/Includes/pangocairo.cdecl b/src/gtk/Includes/pangocairo.cdecl index ae7635401..6b65202c6 100644 --- a/src/gtk/Includes/pangocairo.cdecl +++ b/src/gtk/Includes/pangocairo.cdecl @@ -12,4 +12,4 @@ pango-1.0/pango/pangocairo.h |# (extern (* PangoLayout) pango_cairo_create_layout (cr (* cairo_t))) (extern void pango_cairo_update_layout (cr (* cairo_t))(layout (* PangoLayout))) -(extern void pango_cairo_show_layout (cd (* cairo_t))(layout (* PangoLayout))) +(extern void pango_cairo_show_layout (cr (* cairo_t))(layout (* PangoLayout))) diff --git a/src/gtk/cairo.scm b/src/gtk/cairo.scm new file mode 100644 index 000000000..70bb6d45b --- /dev/null +++ b/src/gtk/cairo.scm @@ -0,0 +1,60 @@ +#| -*-Scheme-*- + +Copyright (C) 2012 Matthew Birkholz + +This file is part of MIT/GNU Scheme. + +MIT/GNU Scheme 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. + +MIT/GNU Scheme 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 MIT/GNU Scheme; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, +USA. + +|# + +;;;; Cairo interface. +;;; package: (gtk cairo) + +(define (gdk-cairo-create GdkDrawable) + (let ((cairo (make-alien '|cairo_t|)) + (copy (make-alien '|cairo_t|))) + (add-gc-cleanup cairo (make-cairo-cleanup copy)) + (C-call "gdk_cairo_create" copy GdkDrawable) + (copy-alien-address! cairo copy) + (check-cairo-status cairo) + cairo)) + +(define (make-cairo-cleanup alien) + (named-lambda (cairo-cleanup) + ;;without-interrupts + (if (not (alien-null? alien)) + (begin + (C-call "cairo_destroy" alien) + (alien-null! alien))))) + +(define (cairo-destroy cairo) + (check-cairo-status cairo) + (without-interrupts + (lambda () + (if (not (alien-null? cairo)) + (begin + (C-call "cairo_destroy" cairo) + (alien-null! cairo))))) + (punt-gc-cleanup cairo)) + +(define (check-cairo-status cairo) + (let ((status (C-call "cairo_status" cairo))) + (if (not (= status (C-enum "CAIRO_STATUS_SUCCESS"))) + (let ((msg (C-call "cairo_status_to_string" + (make-alien '(* (const char))) + cairo))) + (error msg cairo))))) \ No newline at end of file diff --git a/src/gtk/fix-demo.scm b/src/gtk/fix-demo.scm index 956663a8d..5f00be218 100644 --- a/src/gtk/fix-demo.scm +++ b/src/gtk/fix-demo.scm @@ -145,7 +145,6 @@ USA. (%trace2 ";picked: "ink"\n") (let ((index (text-ink-xy-to-index ink x y)) (text-extent (fix-ink-extent ink))) - (%trace ";picked: "index" in "ink"\n") (with-text-ink-grapheme-rect ink index (lambda (xG yG widthG heightG) diff --git a/src/gtk/fix-layout.scm b/src/gtk/fix-layout.scm index bb33c00c3..98a695d04 100644 --- a/src/gtk/fix-layout.scm +++ b/src/gtk/fix-layout.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -Copyright (C) 2007, 2008, 2009, 2010, 2011 Matthew Birkholz +Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Matthew Birkholz This file is part of MIT/GNU Scheme. @@ -667,7 +667,7 @@ USA. (vadjustment (fix-layout-vadjustment widget)) (hadjustment (fix-layout-hadjustment widget)) (value (floor->exact - (C-> (gobject-alien adjustment) "GtkAdjustment value")))) + (C-call "gtk_adjustment_get_value" (gobject-alien adjustment))))) (cond ((eq? adjustment vadjustment) (%trace2 ";vadjustment to "value"\n") (scroll widget (fix-rect-x window-extent) value)) @@ -810,9 +810,6 @@ USA. (begin (%trace "; drag end!\n") (set-fix-resizer-dragging?! resizer #f) -;;; Does a leave notify event always follow, making this happen? -;;; (C-call "gtk_widget_set_state" -;;; (gobject-alien resizer) (C-enum "GTK_STATE_NORMAL")) (C-call "gtk_grab_remove" (gobject-alien resizer))))) (define (resizer-motion-handler resizer modifiers x y) @@ -1102,122 +1099,19 @@ USA. (fix-rect-move! extent dx dy) (drawing-damage ink))))) -;; This kind of ink draws (outlines and/or fills) a shape using a -;; gdk_draw_* function with a GdkGC from gtk_gc_get (i.e. using the -;; toolkit's GdkGC pool). +;; This kind of ink draws (outlines and/or fills) a shape according to +;; a variety of options. These can be converted LATE, e.g. on expose, +;; when there is a realized widget. (define-class () - - ;; An alist of logical GraphicsContext member names (e.g. 'dash) X - ;; color or font specs, widths, booleans, etc. The spec's are - ;; converted to toolkit objects LATE, e.g. on expose, when the - ;; drawing is found in a realized widget. The conversion of this - ;; alist produces the GCValues struct that is passed to gtk_gc_get. + ;; Alist of option names (symbols) X values (whatnot). (options define standard initial-value '())) (define-guarantee draw-ink "a ") ;;; For draw-ink expose handlers (without-interrupts in gtk-thread). -(define (with-gc options widget receiver) - (if (pair? options) - (let* ((alien.mask (malloc-gcvalues options)) - (gc (gtk-gc-get widget alien.mask))) - (free (car alien.mask)) - (receiver gc) - (gtk-gc-release gc)) - (let ((gc (make-alien '|GdkGC|))) - (C-> (gobject-alien widget) "GtkWidget style" gc) - (C-> gc "GtkStyle fg_gc" gc) - (C-array-loc! gc "* GdkGC" (C-enum "GTK_STATE_NORMAL")) - (C-> gc "* GdkGC" gc) - (receiver gc)))) - -(define (gtk-gc-get widget gcvalues.mask) - (let* ((alien (make-alien '|GdkGC|)) - (copy (make-alien '|GdkGC|)) - (colormap (gtk-widget-get-colormap widget)) - (depth (C-> (C-> colormap "GdkColormap visual") "GdkVisual depth"))) - (add-gc-cleanup alien (gtk-gc-cleanup-thunk copy)) - (C-call "gtk_gc_get" copy depth colormap - (car gcvalues.mask) (cdr gcvalues.mask)) - (copy-alien-address! alien copy) - alien)) - -(define (gtk-gc-cleanup-thunk copy) - (named-lambda (gtk-gc-cleanup-handler) - (if (not (alien-null? copy)) - (begin - (C-call "gtk_gc_release" copy) - (alien-null! copy))))) - -(define (gtk-gc-release gc) - (without-interrupts - (lambda () - (if (not (alien-null? gc)) - (begin - (C-call "gtk_gc_release" gc) - (alien-null! gc) - (punt-gc-cleanup gc)))))) - -(define (malloc-gcvalues options) - (let ((gcvalues (malloc (C-sizeof "GdkGCValues") '|GdkGCValues|))) - (let loop ((options options) - (mask 0)) - (if (null? options) - (cons gcvalues mask) - (let ((name (caar options)) - (value (cdar options))) - (case name - - ((FOREGROUND) - (poke-color (C-> gcvalues "GdkGCValues foreground") value) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_FOREGROUND")))) - - ((BACKGROUND) - (poke-color (C-> gcvalues "GdkGCValues background") value) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_BACKGROUND")))) - - ((FONT) - ;; Handled during creation of the PangoLayout. - (loop (cdr options) mask)) - - #;((FUNCTION) - (C->= gcvalues "GdkGCValues function" value) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_FUNCTION")))) - - #;((FILL) - ;; This is useless without a pixmap or bitmap setting. - (case value - ((SOLID) - (C->= gcvalues "GdkGCValues fill" (C-enum "GDK_SOLID"))) - ((TILED) - (C->= gcvalues "GdkGCValues fill" (C-enum "GDK_TILED"))) - ((STIPPLED) - (C->= gcvalues "GdkGCValues fill" (C-enum "GDK_STIPPLED"))) - ((OPAQUE-STIPPLED) - (C->= gcvalues "GdkGCValues fill" (C-enum "GDK_OPAQUE_STIPPLED"))) - (else (error:datum-out-of-range value))) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_FILL")))) - - ((LINE-WIDTH) - (C->= gcvalues "GdkGCValues line_width" value) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_LINE_WIDTH")))) - - ((LINE-STYLE) - (C->= gcvalues "GdkGCValues line_style" value) - (loop (cdr options) (int:+ mask (C-enum "GDK_GC_LINE_STYLE")))) - - (else (warn "Unsupported option name:" name value) - (loop (cdr options) mask)))))))) - -(define-integrable (poke-color target source) - (C->= target "GdkColor red" (C-> source "GdkColor red")) - (C->= target "GdkColor green" (C-> source "GdkColor green")) - (C->= target "GdkColor blue" (C-> source "GdkColor blue")) - (C->= target "GdkColor pixel" (C-> source "GdkColor pixel"))) - (define-integrable (get-option ink name default) (let ((entry (assq name (draw-ink-options ink)))) (if entry (cdr entry) default))) @@ -1245,43 +1139,70 @@ USA. (define-guarantee line-ink "a ") (define-method fix-ink-expose-callback ((ink ) widget window area) - (declare (ignore area)) + (declare (ignore window area)) (%trace2 ";drawing "ink" on "widget"\n") (let ((view (fix-layout-view widget)) - (vector (line-ink-vector ink))) + (vector (line-ink-vector ink)) + (cr (gdk-cairo-create (fix-widget-window widget)))) (with-fix-rect vector (lambda (x y dx dy) (let ((x (fix:- x (fix-rect-x view))) (y (fix:- y (fix-rect-y view)))) - (with-line-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_line" window gc - x y (fix:+ x dx) (fix:+ y dy))))))))) - -(define (with-line-gc ink widget receiver) - ;; For drawing lines (with different defaults than the outline gc). - (with-gc (line-options ink widget) widget receiver)) - -(define (line-options ink widget) - (append-map! - (lambda (entry) - (case (car entry) - ((FOREGROUND) `((FOREGROUND . ,(allocate-color! widget (cdr entry))))) - ((LINE-WIDTH) `((LINE-WIDTH . ,(cdr entry)))) - ((DASH) (cond ((eq? #t (cdr entry)) - `((LINE-STYLE . ,(C-enum "GDK_LINE_ON_OFF_DASH")))) - ((eq? #f (cdr entry)) - `((LINE-STYLE . ,(C-enum "GDK_LINE_SOLID")))) - (else - `((LINE-STYLE . ,(C-enum "GDK_LINE_DOUBLE_DASH")) - (BACKGROUND . ,(allocate-color! widget (cdr entry))))))) - (else '()))) - (draw-ink-options ink))) + (C-call "cairo_move_to" cr (->flonum x) (->flonum y)) + (C-call "cairo_rel_line_to" cr (->flonum dx) (->flonum dy))))) + (set-line-options! cr ink widget) + (let ((color (get-option ink 'DASH '()))) + (if (and color (not (null? color)) (not (eq? #t color))) + (begin + (C-call "cairo_save" cr) + (set-source-rgb cr color widget) + (C-call "cairo_stroke_preserve" cr) + (C-call "cairo_restore" cr)))) + (set-line-dashes! cr ink) + (C-call "cairo_stroke" cr) + (cairo-destroy cr))) + +(define-integrable (set-source-rgb cr color widget) + (let ((gdkcolor (allocate-color! widget color))) + (if gdkcolor + (C-call "cairo_set_source_rgb" cr + (flo:/ (->flonum (C-> gdkcolor "GdkColor red")) 65535.) + (flo:/ (->flonum (C-> gdkcolor "GdkColor green")) 65535.) + (flo:/ (->flonum (C-> gdkcolor "GdkColor blue")) 65535.))))) + +(define (set-line-options! cr ink widget) + (for-each + (lambda (entry) + (let ((name (car entry)) + (value (cdr entry))) + (case name + ((COLOR) (set-source-rgb cr value widget)) + ;;((LINE-CAP) ...) + ;;((LINE-JOIN) ...) + ;;((LINE-MITER-LIMIT) ...) + ((LINE-WIDTH) (C-call "cairo_set_line_width" cr value))))) + (draw-ink-options ink))) + +(define (set-line-dashes! cr ink) + (let* ((value (get-option ink 'DASH '())) + (dashes (if (and value (not (null? value))) '(5.) #f))) + (if dashes + (let* ((num (length dashes)) + (alien (malloc (fix:* num (C-sizeof "double")) + `(array double ,num))) + (scan (copy-alien alien))) + (for-each + (lambda (len) + (C->= scan "double" len) + (alien-byte-increment! scan (C-sizeof "double") 'double)) + dashes) + (C-call "cairo_set_dash" cr alien num 0) + (free alien))))) (define-integrable (half-line-width ink) - (fix:max 1 (fix:1+ (quotient (get-option ink 'WIDTH 1) 2)))) + (fix:max 1 (fix:1+ (floor->exact (quotient (get-option ink 'LINE-WIDTH 1.) + 2))))) (define (recache-line-extent! ink) (with-fix-rect @@ -1339,24 +1260,24 @@ USA. (guarantee-positive-fixnum width 'set-line-ink-width!) (without-interrupts (lambda () - (if (set-option!? ink 'LINE-WIDTH width) + (if (set-option!? ink 'LINE-WIDTH (->flonum width)) (recache-line-extent! ink))))) (define-integrable (guarantee-color-spec spec operator) (cond ((string? spec) spec) - ((and (vector? spec) (vector-length spec 3)) spec) + ((and (vector? spec) (fix:= (vector-length spec) 3)) spec) (else (error:wrong-type-argument spec "a color" operator)))) (define (line-ink-color ink) (guarantee-line-ink ink 'line-ink-color) - (get-option ink 'FOREGROUND '())) + (get-option ink 'COLOR '())) (define (set-line-ink-color! ink color) (guarantee-line-ink ink 'set-line-ink-color!) (guarantee-color-spec color 'set-line-ink-color!) (without-interrupts (lambda () - (if (set-option!? ink 'FOREGROUND color) + (if (set-option!? ink 'COLOR color) (drawing-damage ink))))) (define (line-ink-dash-color ink) @@ -1366,7 +1287,7 @@ USA. (define (set-line-ink-dash-color! ink color) (guarantee-line-ink ink 'set-line-ink-dash-color!) (if (not (or (eq? color #t) (eq? color #f))) - (guarantee-color-spec color 'set-line-ink-dash!)) + (guarantee-color-spec color 'set-line-ink-dash-color!)) (without-interrupts (lambda () (if (set-option!? ink 'DASH color) @@ -1379,7 +1300,7 @@ USA. (define-guarantee rectangle-ink "a ") (define-method fix-ink-expose-callback ((ink ) widget window area) - (declare (ignore area)) + (declare (ignore window area)) (%trace2 ";drawing "ink" on "widget"\n") (let ((view (fix-layout-view widget)) (rect (rectangle-ink-rect ink))) @@ -1387,47 +1308,44 @@ USA. rect (lambda (x y width height) (let ((x (fix:- x (fix-rect-x view))) - (y (fix:- y (fix-rect-y view)))) - (with-fill-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_rectangle" window gc 1 x y width height))) - (with-outline-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_rectangle" window gc 0 x y width height)))))))) - -(define (with-fill-gc ink widget receiver) + (y (fix:- y (fix-rect-y view))) + (cr (gdk-cairo-create (fix-widget-window widget)))) + (C-call "cairo_rectangle" cr + (->flonum x) (->flonum y) + (->flonum width) (->flonum height)) + (let ((fill (get-option ink 'FILL '()))) + (if (not (null? fill)) + (begin + (C-call "cairo_save" cr) + (set-fill-options! cr ink widget) + (C-call "cairo_fill_preserve" cr) + (C-call "cairo_restore" cr)))) + (let ((outline (get-option ink 'OUTLINE '()))) + (if (not (null? outline)) + (begin + (set-outline-options! cr ink widget) + (C-call "cairo_stroke" cr)))) + (cairo-destroy cr)))))) + +(define (set-fill-options! cr ink widget) ;; For filling ovals, rectangles... - (let ((options (fill-options ink widget))) - (if (pair? options) - (with-gc options widget receiver)))) - -(define (fill-options ink widget) - (append-map! - (lambda (entry) - (case (car entry) - ((FILL) `((FOREGROUND . ,(allocate-color! widget (cdr entry))))) - ;;((STIPPLE) `((STIPPLE . ,(bitmap-cache! entry)))) - (else '()))) - (draw-ink-options ink))) - -(define (with-outline-gc ink widget receiver) - ;; For outlining arcs, rectangles... - (let ((options (outline-options ink widget))) - (if (pair? options) - (with-gc options widget receiver)))) - -(define (outline-options ink widget) - (append-map! - (lambda (entry) - (case (car entry) - ((OUTLINE) `((FOREGROUND . ,(allocate-color! widget (cdr entry))))) - ((WIDTH) `((LINE-WIDTH . ,(cdr entry)))) - ;;((STYLE) `((LINE-STYLE . ,(cdr entry)))) - ;;((OUTLINESTIPPLE) `((OUTLINESTIPPLE . ,(bitmap-cache! entry)))) - (else '()))) - (draw-ink-options ink))) + (for-each + (lambda (entry) + (let ((name (car entry)) + (value (cdr entry))) + (case name + ((FILL) (set-source-rgb cr value widget))))) + (draw-ink-options ink))) + +(define (set-outline-options! cr ink widget) + (for-each + (lambda (entry) + (let ((name (car entry)) + (value (cdr entry))) + (case name + ((OUTLINE) (set-source-rgb cr value widget)) + ((LINE-WIDTH) (C-call "cairo_set_line_width" cr value))))) + (draw-ink-options ink))) (define (recache-rectangle-extent! ink) (with-fix-rect-bounds @@ -1477,7 +1395,7 @@ USA. (guarantee-positive-fixnum width 'set-rectangle-ink-width!) (without-interrupts (lambda () - (if (set-option!? ink 'LINE-WIDTH width) + (if (set-option!? ink 'LINE-WIDTH (->flonum width)) (recache-rectangle-extent! ink))))) (define (rectangle-ink-color ink) @@ -1504,36 +1422,50 @@ USA. (if (set-option!? ink 'FILL color) (drawing-damage ink))))) +(define-integrable flo:pi (flo:* 4. (flo:atan2 1. 1.))) + (define-class ( (constructor ())) () (rect define standard initializer (lambda () (make-fix-rect 0 0 0 0))) - (%start-angle define standard initial-value 0) - (%sweep-angle define standard initial-value (fix:* 64 360))) + (%start-angle define standard initial-value 0.) + (%sweep-angle define standard initial-value (flo:* 2. flo:pi))) (define-guarantee arc-ink "an ") (define-method fix-ink-expose-callback ((ink ) widget window area) - (declare (ignore area)) + (declare (ignore window area)) (%trace2 ";drawing "ink" on "widget"\n") (let ((view (fix-layout-view widget)) (rect (arc-ink-rect ink))) (with-fix-rect rect (lambda (x y width height) - (let ((x (fix:- x (fix-rect-x view))) - (y (fix:- y (fix-rect-y view)))) - (with-fill-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_arc" window gc 1 x y width height - (arc-ink-%start-angle ink) - (arc-ink-%sweep-angle ink)))) - (with-outline-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_arc" window gc 0 x y width height - (arc-ink-%start-angle ink) - (arc-ink-%sweep-angle ink))))))))) + (let ((x. (->flonum (fix:- x (fix-rect-x view)))) + (y. (->flonum (fix:- y (fix-rect-y view)))) + (width. (->flonum width)) + (height. (->flonum height)) + (start. (arc-ink-%start-angle ink)) + (end. (flo:+ (arc-ink-%start-angle ink) + (arc-ink-%sweep-angle ink))) + (cr (gdk-cairo-create (fix-widget-window widget)))) + (C-call "cairo_save" cr) + (C-call "cairo_translate" cr + (flo:+ x. (flo:/ width. 2.)) + (flo:+ y. (flo:/ height. 2.))) + (C-call "cairo_scale" cr (flo:/ width. 2.) (flo:/ height. 2.)) + (C-call "cairo_arc" cr 0. 0. 1. start. end.) + (C-call "cairo_restore" cr) + (let ((fill (get-option ink 'FILL '()))) + (if (not (null? fill)) + (begin + (set-fill-options! cr ink widget) + (C-call "cairo_fill_preserve" cr)))) + (let ((outline (get-option ink 'OUTLINE '()))) + (if (not (null? outline)) + (begin + (set-outline-options! cr ink widget) + (C-call "cairo_stroke" cr)))) + (cairo-destroy cr)))))) (define (recache-arc-extent! ink) (with-fix-rect-bounds @@ -1575,35 +1507,41 @@ USA. (drawing-damage ink))))) (define (arc-ink-start-angle arc) - (/ (arc-ink-%start-angle arc) 64)) + (guarantee-arc-ink arc 'arc-ink-start-angle) + (flo:* (flo:/ (arc-ink-%start-angle arc) flo:pi) 180.)) (define (set-arc-ink-start-angle! arc degrees) - (let ((new (modulo (round (* 64 degrees)) (fix:* 64 360)))) - (if (not (fix:= new (arc-ink-%start-angle arc))) + (guarantee-arc-ink arc 'set-arc-ink-start-angle!) + (guarantee-real degrees 'set-arc-ink-start-angle!) + (let ((new (flo:* (->flonum degrees) (flo:/ flo:pi 180.)))) + (if (not (flo:= new (arc-ink-%start-angle arc))) (begin (set-arc-ink-%start-angle! arc new) (drawing-damage arc))))) -(define-integrable (arc-ink-sweep-angle arc) - (/ (arc-ink-%sweep-angle arc) 64)) +(define (arc-ink-sweep-angle arc) + (guarantee-arc-ink arc 'arc-ink-sweep-angle) + (flo:* (flo:/ (arc-ink-%sweep-angle arc) flo:pi) 180.)) (define (set-arc-ink-sweep-angle! arc degrees) - (let ((new (fix:min (round (* 64 degrees)) (fix:* 64 360)))) - (if (not (fix:= new (arc-ink-%sweep-angle arc))) + (guarantee-arc-ink arc 'set-arc-ink-sweep-angle!) + (guarantee-real degrees 'set-arc-ink-sweep-angle!) + (let ((new (flo:* (->flonum degrees) (flo:/ flo:pi 180.)))) + (if (not (flo:= new (arc-ink-%sweep-angle arc))) (begin (set-arc-ink-%sweep-angle! arc new) (drawing-damage arc))))) (define (arc-ink-width ink) (guarantee-arc-ink ink 'arc-ink-width) - (get-option ink 'WIDTH '())) + (get-option ink 'LINE-WIDTH '())) (define (set-arc-ink-width! ink width) (guarantee-arc-ink ink 'set-arc-ink-width!) (guarantee-positive-fixnum width 'set-arc-ink-width!) (without-interrupts (lambda () - (if (set-option!? ink 'WIDTH width) + (if (set-option!? ink 'LINE-WIDTH (->flonum width)) (recache-arc-extent! ink))))) (define (arc-ink-color ink) @@ -1635,34 +1573,31 @@ USA. (define-guarantee text-ink "a ") -;; The PangoLayout for gdk_draw_layout in the expose handler. (define-generic text-ink-pango-layout (ink)) (define-method fix-ink-expose-callback ((ink ) widget window area) - (declare (ignore area)) + (declare (ignore window area)) (%trace2 ";drawing "ink" on "widget"\n") - (let ((view (fix-layout-view widget)) - (rect (fix-ink-extent ink))) - (let ((x (fix:- (fix-rect-x rect) (fix-rect-x view))) - (y (fix:- (fix-rect-y rect) (fix-rect-y view))) - (layout (text-ink-pango-layout ink))) - (if layout - (with-text-gc - ink widget - (lambda (gc) - (C-call "gdk_draw_layout" window gc x y - (gobject-alien layout)))))))) - -(define (with-text-gc ink widget receiver) - (with-gc (text-options ink widget) widget receiver)) - -(define (text-options ink widget) - (append-map! - (lambda (entry) - (case (car entry) - ((FOREGROUND) `((FOREGROUND . ,(allocate-color! widget (cdr entry))))) - (else '()))) - (draw-ink-options ink))) + (let ((layout (text-ink-pango-layout ink))) + (if layout + (let ((view (fix-layout-view widget)) + (rect (fix-ink-extent ink))) + (let ((x (fix:- (fix-rect-x rect) (fix-rect-x view))) + (y (fix:- (fix-rect-y rect) (fix-rect-y view))) + (cr (gdk-cairo-create (fix-widget-window widget)))) + (set-text-options! cr ink widget) + (C-call "cairo_move_to" cr (->flonum x) (->flonum y)) + (C-call "pango_cairo_show_layout" cr (gobject-alien layout)) + (cairo-destroy cr)))))) + +(define (set-text-options! cr ink widget) + (for-each + (lambda (entry) + (let ((name (car entry)) + (value (cdr entry))) + (case name + ((COLOR) (set-source-rgb cr value widget))))) + (draw-ink-options ink))) (define (set-text-ink-position! ink x y) (guarantee-fixnum x 'set-text-ink-position!) @@ -1697,14 +1632,14 @@ USA. (define (text-ink-color ink) (guarantee-text-ink ink 'text-ink-color) - (get-option ink 'FOREGROUND '())) + (get-option ink 'COLOR '())) (define (set-text-ink-color! ink color) (guarantee-text-ink ink 'set-text-ink-color!) (guarantee-color-spec color 'set-text-ink-color!) (without-interrupts (lambda () - (if (set-option!? ink 'FOREGROUND color) + (if (set-option!? ink 'COLOR color) (drawing-damage ink))))) (define (text-ink-xy-to-index ink x y) @@ -1865,30 +1800,20 @@ USA. unspecific)))) (define-method fix-ink-expose-callback ((ink ) widget window area) + (declare (ignore window area)) (%trace2 ";drawing "ink" on "widget"\n") (let ((pixbuf (let ((p (image-ink-pixbuf ink))) (if p (gobject-alien p) #f)))) (if (and pixbuf (not (alien-null? pixbuf))) - (let ((extent (fix-ink-extent ink)) - (view (fix-layout-view widget))) - (let ((i (fix-rect-intersection extent area)) - (view-x (fix-rect-x view)) - (view-y (fix-rect-y view))) - (with-gc '() widget - (lambda (gc) - (C-call "gdk_draw_pixbuf" window gc - pixbuf - ;; drawing->image - (fix:- (fix-rect-x i) (fix-rect-x extent)) ;src_x - (fix:- (fix-rect-y i) (fix-rect-y extent)) ;src_y - ;; drawing->window - (fix:- (fix-rect-x i) view-x) ;dest_x - (fix:- (fix-rect-y i) view-y) ;dest_y - (fix-rect-width i) (fix-rect-height i) - (C-enum "GDK_RGB_DITHER_NONE") - 0 0 ;x_dither, y_dither - )))))))) + (let ((view (fix-layout-view widget)) + (extent (fix-ink-extent ink)) + (cr (gdk-cairo-create (fix-widget-window widget)))) + (let ((x. (->flonum (fix:- (fix-rect-x extent) (fix-rect-x view)))) + (y. (->flonum (fix:- (fix-rect-y extent) (fix-rect-y view))))) + (C-call "gdk_cairo_set_source_pixbuf" cr pixbuf x. y.) + (C-call "cairo_paint" cr) + (cairo-destroy cr)))))) (define-method fix-ink-move! ((ink ) dx dy) (generic-fix-ink-move! ink dx dy)) diff --git a/src/gtk/gtk-ev.scm b/src/gtk/gtk-ev.scm index 6c0624113..ca93eb615 100644 --- a/src/gtk/gtk-ev.scm +++ b/src/gtk/gtk-ev.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -Copyright (C) 2007, 2008, 2009, 2011 Matthew Birkholz +Copyright (C) 2007, 2008, 2009, 2011, 2012 Matthew Birkholz This file is part of MIT/GNU Scheme. @@ -27,6 +27,7 @@ USA. (define (make-gtk-event-viewer-demo) (let ((window (gtk-window-new 'toplevel)) (gtk-ev (make-gtk-event-viewer))) + (gtk-window-set-default-size window 450 300) (gtk-container-add window gtk-ev) (gtk-window-set-title window "gtk-event-viewer") (gtk-container-set-border-width window 10) @@ -58,11 +59,9 @@ USA. initial-value '())) (define-method initialize-instance ((widget )) - (%trace ";\t(initialize-instance ) "widget")...\n") (call-next-method widget) + (%trace ";\t(initialize-instance ) "widget")...\n") (let ((alien (gobject-alien widget))) - (C->= alien "GtkWidget requisition width" 450) - (C->= alien "GtkWidget requisition height" 300) (C-call "gtk_widget_set_has_window" alien 1) (C-call "gtk_widget_set_can_focus" alien 1)) (set-gtk-widget-size-allocate-callback! widget size-allocate-callback) @@ -98,7 +97,7 @@ USA. (C-call "gdk_window_new" main-GdkWindow parent-GdkWindow attr (bit-ior (C-enum "GDK_WA_X") (C-enum "GDK_WA_Y"))) (error-if-null main-GdkWindow "Could not create main window:" widget) - (C->= alien "GtkWidget window" main-GdkWindow) + (C-call "gtk_widget_set_window" alien main-GdkWindow) (C-call "gdk_window_set_user_data" main-GdkWindow alien) ;; Event window @@ -147,17 +146,12 @@ USA. (define (size-allocate-callback widget GtkAllocation) (%trace2 ";size-allocate "widget" "GtkAllocation"\n") - (let ((alien (gobject-alien widget)) - (x (C-> GtkAllocation "GtkAllocation x")) + (let ((x (C-> GtkAllocation "GtkAllocation x")) (y (C-> GtkAllocation "GtkAllocation y")) (width (C-> GtkAllocation "GtkAllocation width")) (height (C-> GtkAllocation "GtkAllocation height")) (spacing 10)) (set-fix-rect! (gtk-event-viewer-geometry widget) x y width height) - (C->= alien "GtkWidget allocation x" x) - (C->= alien "GtkWidget allocation y" y) - (C->= alien "GtkWidget allocation width" width) - (C->= alien "GtkWidget allocation height" height) (let ((event-width (max (- width (* 2 spacing)) 0)) (event-height (max (- (quotient height 5) spacing) 0))) (let ((event-x (quotient (- width event-width) 2)) @@ -196,7 +190,7 @@ USA. (expose-handler widget GdkEvent) (begin (if (and (= type (C-enum "GDK_KEY_PRESS")) - (= (C-> GdkEvent "GdkEvent key keyval") (C-enum "GDK_D"))) + (= (C-> GdkEvent "GdkEvent key keyval") (C-enum "GDK_KEY_D"))) ;; Test debugging in a callback. (bkpt 'Test)) @@ -223,38 +217,30 @@ USA. (define (paint-window widget x y width height) (%trace2 ";(paint-window "widget" "x" "y" "width" "height")\n") - (let* ((alien (gobject-alien widget)) - (window (gtk-event-viewer-window widget)) - (rect (gtk-event-viewer-event-box widget)) - (style (C-> alien "GtkWidget style")) - (state (C-> alien "GtkWidget state")) - (black-gc (C-> style "GtkStyle black_gc")) - (exposed-area (gdk-rectangle x y width height))) - - ;; No longer needed in Gtk+2.0. - ;;(C-call "gdk_window_clear_area" window x y width height) - ;;(C-call "gdk_gc_set_clip_rectangle" black-gc exposed-area) - - ;; Draw a black rectangle around the event window - - (C-call "gdk_draw_rectangle" window black-gc 0 - (-1+ (fix-rect-x rect)) - (-1+ (fix-rect-y rect)) - (+ 2 (fix-rect-width rect)) - (+ 2 (fix-rect-height rect))) - (C-call "gdk_gc_set_clip_rectangle" black-gc 0) - - ;; Draw text in the description area, if applicable. - + (let ((alien (gobject-alien widget)) + (cr (gdk-cairo-create (gtk-event-viewer-window widget)))) + + ;; Draw a black rectangle around the event window. + (let ((box (gtk-event-viewer-event-box widget))) + (C-call "cairo_rectangle" cr + (->flonum (-1+ (fix-rect-x box))) + (->flonum (-1+ (fix-rect-y box))) + (->flonum (+ 2 (fix-rect-width box))) + (->flonum (+ 2 (fix-rect-height box)))) + (C-call "cairo_stroke" cr)) + + ;; Draw text in the description area. (if (gtk-event-viewer-buffer widget) - (let* ((descrip-box (gtk-event-viewer-description-box widget)) - (descrip-gdkrect (gdk-rectangle-from-rect descrip-box)) - (intersection (gdk-rectangle))) - (if (not (= 0 (C-call "gdk_rectangle_intersect" - exposed-area descrip-gdkrect intersection))) - (let ((space 2) - (desc-bottom (fix-rect-max-y descrip-box)) - (layout (make-alien '|PangoLayout|))) + (let ((descrip-box (gtk-event-viewer-description-box widget))) + (let ((space 2)) + (let ((desc-bottom (fix-rect-max-y descrip-box))) + (let ((layout (make-alien '|PangoLayout|))) + (C-call "cairo_rectangle" cr + (->flonum (fix-rect-x descrip-box)) + (->flonum (fix-rect-y descrip-box)) + (->flonum (fix-rect-width descrip-box)) + (->flonum (fix-rect-height descrip-box))) + (C-call "cairo_clip" cr) (C-call "gtk_widget_create_pango_layout" layout alien 0) (let loop ((y (fix-rect-y descrip-box)) (lines (gtk-event-viewer-buffer widget))) @@ -268,10 +254,8 @@ USA. (pangos->pixels (C-call "pango_layout_iter_get_baseline" iter)))) - (C-call "gtk_paint_layout" - style window state 1 ;; Use the text gc. - intersection alien "gtk-event-viewer" - 10 y layout) + (C-call "cairo_move_to" cr (->flonum 10) (->flonum y)) + (C-call "pango_cairo_show_layout" cr layout) (C-call "pango_layout_iter_free" iter) (alien-null! iter) (let ((new-y (+ y (+ baseline space)))) @@ -280,44 +264,44 @@ USA. (set-cdr! lines '()) unspecific) (loop new-y (cdr lines)))))))) - (C-call "g_object_unref" layout))) - (free descrip-gdkrect) - (free intersection))) + (C-call "g_object_unref" layout)))))) + (cairo-destroy cr) + ;; Draw a focus indicator around the event window. (if (gtk-widget-has-focus? widget) - (C-call "gtk_paint_focus" - style window state 0 alien "gtk-event-viewer" - x y (-1+ width) (-1+ height))) - (free exposed-area) - unspecific)) + (let ((window (gtk-event-viewer-window widget)) + (box (gtk-event-viewer-event-box widget)) + (style (C-> alien "GtkWidget style")) + (state (C-> alien "GtkWidget state"))) + (C-call "gtk_paint_focus" + style window state 0 alien "gtk-event-viewer" + (- (fix-rect-x box) 5) + (- (fix-rect-y box) 5) + (+ (fix-rect-width box) 10) + (+ (fix-rect-height box) 10)))))) (define (paint-event-window widget x y width height) (%trace2 ";(paint-event-window "widget" "x" "y" "width" "height")\n") - (let ((alien (gobject-alien widget)) - (event-window (gtk-event-viewer-event-window widget)) - (extent (pango-rectangle)) - (layout (make-alien '|PangoLayout|)) - (area (pango-rectangle x y width height))) - (C-call "gdk_window_clear_area" event-window x y width height) - (let ((title (string-append "Event Window (0x" - (alien/address-string event-window)")"))) - (C-call "gtk_widget_create_pango_layout" layout alien title)) + (let* ((event-window (gtk-event-viewer-event-window widget)) + (cr (gdk-cairo-create event-window)) + (extent (pango-rectangle)) + (layout (make-alien '|PangoLayout|)) + (title (string-append "Event Window (0x" + (alien/address-string event-window)")"))) + (C-call "pango_cairo_create_layout" layout cr) + (C-call "pango_layout_set_text" layout title -1) (C-call "pango_layout_get_pixel_extents" layout extent 0) - (C-call "gtk_paint_layout" - (C-> alien "GtkWidget style") - event-window - (C-> alien "GtkWidget state") - 1 ;; Use the text gc, not the fg gc. - area alien "gtk-event-viewer" + (C-call "cairo_move_to" cr ;;center + (->flonum (quotient (- (fix-rect-width (gtk-event-viewer-event-box widget)) (C-> extent "PangoRectangle width")) - 2) - 0 - layout) + 2)) + 0.) + (C-call "pango_cairo_show_layout" cr layout) (C-call "g_object_unref" layout) (free extent) - (free area) + (cairo-destroy cr) unspecific)) (define (push-text ev lines) diff --git a/src/gtk/gtk-object.scm b/src/gtk/gtk-object.scm index 405663ac7..71136da23 100644 --- a/src/gtk/gtk-object.scm +++ b/src/gtk/gtk-object.scm @@ -320,8 +320,8 @@ USA. (define-integrable (ref i) (round->exact (* (vector-ref spec i) 65535))) (C->= new "GdkColor red" (ref 0)) - (C->= new "GdkColor blue" (ref 1)) - (C->= new "GdkColor green" (ref 2)) + (C->= new "GdkColor green" (ref 1)) + (C->= new "GdkColor blue" (ref 2)) new)) (else #f))) diff --git a/src/gtk/gtk.pkg b/src/gtk/gtk.pkg index b25249f58..ef12d6c54 100644 --- a/src/gtk/gtk.pkg +++ b/src/gtk/gtk.pkg @@ -1,6 +1,6 @@ #| -*-Scheme-*- -Copyright (C) 2007, 2008, 2009, 2010, 2011 Matthew Birkholz +Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Matthew Birkholz This file is part of MIT/GNU Scheme. @@ -54,6 +54,14 @@ USA. gdk-window-process-updates)) +(define-package (gtk cairo) + (parent (gtk)) + (files "cairo") + (export (gtk) + gdk-cairo-create + cairo-destroy + check-cairo-status)) + (define-package (gtk gio) (parent (gtk)) (files "gio") diff --git a/src/gtk/keys.scm b/src/gtk/keys.scm index 7bcaf7260..011327a97 100644 --- a/src/gtk/keys.scm +++ b/src/gtk/keys.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -Copyright (C) 2009, 2010, 2011 Matthew Birkholz +Copyright (C) 2009, 2010, 2011, 2012 Matthew Birkholz This file is part of MIT/GNU Scheme. @@ -46,26 +46,20 @@ USA. (define-syntax translation-vector (sc-macro-transformer (lambda (form usage-env) - (let* ((overrides - `((,(C-enum "GDK_Cancel") . stop) ;originally called Cancel - )) - (keyval.name - (lambda (gdk-name.keyval) + (list->vector + (map (lambda (gdk-name.keyval) (let* ((keyval (cdr gdk-name.keyval)) (gdk-name (car gdk-name.keyval)) (string (symbol-name gdk-name)) - (name (cond ((assv keyval overrides) => cdr) - ((string-prefix? "GDK_" string) + (name (cond ((string-prefix? "GDK_KEY_" string) (intern (string-replace (string-tail string 4) #\_ #\-))) (else (warn "Unexpected GdkKeysym name:" gdk-name) gdk-name)))) - (cons keyval name))))) - (list->vector - (map keyval.name + (cons keyval name))) (c-enum-constant-values '(ENUM |GdkKeysyms|) form - (find-c-includes usage-env)))))))) + (find-c-includes usage-env))))))) (define gtk-key-translation-table (sort! (translation-vector) (lambda (a b) (< (car a) (car b))))) \ No newline at end of file diff --git a/tests/gtk/test-gtk.scm b/tests/gtk/test-gtk.scm index bd8f9fb43..bd49f5f29 100644 --- a/tests/gtk/test-gtk.scm +++ b/tests/gtk/test-gtk.scm @@ -1,4 +1,27 @@ -;;;-*-Scheme-*- +#| -*-Scheme-*- + +Copyright (C) 2012 Matthew Birkholz + +This file is part of MIT/GNU Scheme. + +MIT/GNU Scheme 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. + +MIT/GNU Scheme 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 MIT/GNU Scheme; if not, write to the Free Software +Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, +USA. + +|# + +;;;; Test the Gtks (define gcp) (define gls) @@ -45,7 +68,7 @@ (define-test 'gtk-demos (lambda () - (await-closed-demos) + (with-gc-notification! #t await-closed-demos) (gc-flip))) (define-test 'gtk-demos.callbacks