Module: LibX11

Defined in:
lib/libx11/version.rb,
ext/libx11_ruby/libx11_ruby.c

Defined Under Namespace

Classes: Display, XErrorEvent, XEvent, XKeyEvent

Constant Summary collapse

VERSION =
'0.0.4'
NONE =

reserved resource and constant definitions

LONG2NUM(None)
PARENT_RELATIVE =
LONG2NUM(ParentRelative)
COPY_FROM_PARENT =
LONG2NUM(CopyFromParent)
POINTER_WINDOW =
LONG2NUM(PointerWindow)
INPUT_FOCUS =
LONG2NUM(InputFocus)
POINTER_ROOT =
LONG2NUM(PointerRoot)
ANY_PROPERTY_TYPE =
LONG2NUM(AnyPropertyType)
ANY_KEY =
LONG2NUM(AnyKey)
ANY_BUTTON =
LONG2NUM(AnyButton)
ALL_TEMPORARY =
LONG2NUM(AllTemporary)
CURRENT_TIME =
LONG2NUM(CurrentTime)
NO_SYMBOL =
LONG2NUM(NoSymbol)
NO_EVENT_MASK =

input event masks

LONG2NUM(NoEventMask)
KEY_PRESS_MASK =
LONG2NUM(KeyPressMask)
KEY_RELEASE_MASK =
LONG2NUM(KeyReleaseMask)
BUTTON_PRESS_MASK =
LONG2NUM(ButtonPressMask)
BUTTON_RELEASE_MASK =
LONG2NUM(ButtonReleaseMask)
ENTER_WINDOW_MASK =
LONG2NUM(EnterWindowMask)
LEAVE_WINDOW_MASK =
LONG2NUM(LeaveWindowMask)
POINTER_MOTION_MASK =
LONG2NUM(PointerMotionMask)
POINTER_MOTION_HINT_MASK =
LONG2NUM(PointerMotionHintMask)
BUTTON1_MOTION_MASK =
LONG2NUM(Button1MotionMask)
BUTTON2_MOTION_MASK =
LONG2NUM(Button2MotionMask)
BUTTON3_MOTION_MASK =
LONG2NUM(Button3MotionMask)
BUTTON4_MOTION_MASK =
LONG2NUM(Button4MotionMask)
BUTTON5_MOTION_MASK =
LONG2NUM(Button5MotionMask)
BUTTON_MOTION_MASK =
LONG2NUM(ButtonMotionMask)
KEYMAP_STATE_MASK =
LONG2NUM(KeymapStateMask)
EXPOSURE_MASK =
LONG2NUM(ExposureMask)
VISIBILITY_CHANGE_MASK =
LONG2NUM(VisibilityChangeMask)
STRUCTURE_NOTIFY_MASK =
LONG2NUM(StructureNotifyMask)
RESIZE_REDIRECT_MASK =
LONG2NUM(ResizeRedirectMask)
SUBSTRUCTURE_NOTIFY_MASK =
LONG2NUM(SubstructureNotifyMask)
SUBSTRUCTURE_REDIRECT_MASK =
LONG2NUM(SubstructureRedirectMask)
FOCUS_CHANGE_MASK =
LONG2NUM(FocusChangeMask)
PROPERTY_CHANGE_MASK =
LONG2NUM(PropertyChangeMask)
COLORMAP_CHANGE_MASK =
LONG2NUM(ColormapChangeMask)
OWNER_GRAB_BUTTON_MASK =
LONG2NUM(OwnerGrabButtonMask)
BUTTON1_MASK =

button masks

LONG2NUM(Button1Mask)
BUTTON2_MASK =
LONG2NUM(Button2Mask)
BUTTON3_MASK =
LONG2NUM(Button3Mask)
BUTTON4_MASK =
LONG2NUM(Button4Mask)
BUTTON5_MASK =
LONG2NUM(Button5Mask)
ANY_MODIFIER =
LONG2NUM(AnyModifier)
XK_BackSpace =

tty functions keys

LONG2NUM(XK_BackSpace)
XK_Tab =
LONG2NUM(XK_Tab)
XK_Linefeed =
LONG2NUM(XK_Linefeed)
XK_Clear =
LONG2NUM(XK_Clear)
XK_Return =
LONG2NUM(XK_Return)
XK_Pause =
LONG2NUM(XK_Pause)
XK_Scroll_Lock =
LONG2NUM(XK_Scroll_Lock)
XK_Sys_Req =
LONG2NUM(XK_Sys_Req)
XK_Escape =
LONG2NUM(XK_Escape)
XK_Delete =
LONG2NUM(XK_Delete)
XK_space =

latin 1

LONG2NUM(XK_space)
XK_exclam =
LONG2NUM(XK_exclam)
XK_quotedbl =
LONG2NUM(XK_quotedbl)
XK_numbersign =
LONG2NUM(XK_numbersign)
XK_dollar =
LONG2NUM(XK_dollar)
XK_percent =
LONG2NUM(XK_percent)
XK_ampersand =
LONG2NUM(XK_ampersand)
XK_apostrophe =
LONG2NUM(XK_apostrophe)
XK_quoteright =
LONG2NUM(XK_quoteright)
XK_parenleft =
LONG2NUM(XK_parenleft)
XK_parenright =
LONG2NUM(XK_parenright)
XK_asterisk =
LONG2NUM(XK_asterisk)
XK_plus =
LONG2NUM(XK_plus)
XK_comma =
LONG2NUM(XK_comma)
XK_minus =
LONG2NUM(XK_minus)
XK_period =
LONG2NUM(XK_period)
XK_slash =
LONG2NUM(XK_slash)
XK_0 =
LONG2NUM(XK_0)
XK_1 =
LONG2NUM(XK_1)
XK_2 =
LONG2NUM(XK_2)
XK_3 =
LONG2NUM(XK_3)
XK_4 =
LONG2NUM(XK_4)
XK_5 =
LONG2NUM(XK_5)
XK_6 =
LONG2NUM(XK_6)
XK_7 =
LONG2NUM(XK_7)
XK_8 =
LONG2NUM(XK_8)
XK_9 =
LONG2NUM(XK_9)
XK_colon =
LONG2NUM(XK_colon)
XK_semicolon =
LONG2NUM(XK_semicolon)
XK_less =
LONG2NUM(XK_less)
XK_equal =
LONG2NUM(XK_equal)
XK_greater =
LONG2NUM(XK_greater)
XK_question =
LONG2NUM(XK_question)
XK_at =
LONG2NUM(XK_at)
XK_A =
LONG2NUM(XK_A)
XK_B =
LONG2NUM(XK_B)
XK_C =
LONG2NUM(XK_C)
XK_D =
LONG2NUM(XK_D)
XK_E =
LONG2NUM(XK_E)
XK_F =
LONG2NUM(XK_F)
XK_G =
LONG2NUM(XK_G)
XK_H =
LONG2NUM(XK_H)
XK_I =
LONG2NUM(XK_I)
XK_J =
LONG2NUM(XK_J)
XK_K =
LONG2NUM(XK_K)
XK_L =
LONG2NUM(XK_L)
XK_M =
LONG2NUM(XK_M)
XK_N =
LONG2NUM(XK_N)
XK_O =
LONG2NUM(XK_O)
XK_P =
LONG2NUM(XK_P)
XK_Q =
LONG2NUM(XK_Q)
XK_R =
LONG2NUM(XK_R)
XK_S =
LONG2NUM(XK_S)
XK_T =
LONG2NUM(XK_T)
XK_U =
LONG2NUM(XK_U)
XK_V =
LONG2NUM(XK_V)
XK_W =
LONG2NUM(XK_W)
XK_X =
LONG2NUM(XK_X)
XK_Y =
LONG2NUM(XK_Y)
XK_Z =
LONG2NUM(XK_Z)
XK_bracketleft =
LONG2NUM(XK_bracketleft)
XK_backslash =
LONG2NUM(XK_backslash)
XK_bracketright =
LONG2NUM(XK_bracketright)
XK_asciicircum =
LONG2NUM(XK_asciicircum)
XK_underscore =
LONG2NUM(XK_underscore)
XK_grave =
LONG2NUM(XK_grave)
XK_quoteleft =
LONG2NUM(XK_quoteleft)
XK_a =
LONG2NUM(XK_a)
XK_b =
LONG2NUM(XK_b)
XK_c =
LONG2NUM(XK_c)
XK_d =
LONG2NUM(XK_d)
XK_e =
LONG2NUM(XK_e)
XK_f =
LONG2NUM(XK_f)
XK_g =
LONG2NUM(XK_g)
XK_h =
LONG2NUM(XK_h)
XK_i =
LONG2NUM(XK_i)
XK_j =
LONG2NUM(XK_j)
XK_k =
LONG2NUM(XK_k)
XK_l =
LONG2NUM(XK_l)
XK_m =
LONG2NUM(XK_m)
XK_n =
LONG2NUM(XK_n)
XK_o =
LONG2NUM(XK_o)
XK_p =
LONG2NUM(XK_p)
XK_q =
LONG2NUM(XK_q)
XK_r =
LONG2NUM(XK_r)
XK_s =
LONG2NUM(XK_s)
XK_t =
LONG2NUM(XK_t)
XK_u =
LONG2NUM(XK_u)
XK_v =
LONG2NUM(XK_v)
XK_w =
LONG2NUM(XK_w)
XK_x =
LONG2NUM(XK_x)
XK_y =
LONG2NUM(XK_y)
XK_z =
LONG2NUM(XK_z)
XK_braceleft =
LONG2NUM(XK_braceleft)
XK_bar =
LONG2NUM(XK_bar)
XK_braceright =
LONG2NUM(XK_braceright)
XK_asciitilde =
LONG2NUM(XK_asciitilde)
GRAB_MODE_SYNC =

GrabPointer, GrabButton, GrabKeyboard, GrabKey Modes

INT2FIX(GrabModeSync)
GRAB_MODE_ASYNC =
INT2FIX(GrabModeAsync)
SHIFT_MASK =

Key masks

LONG2NUM(ShiftMask)
LOCK_MASK =
LONG2NUM(LockMask)
CONTROL_MASK =
LONG2NUM(ControlMask)
MOD1_MASK =
LONG2NUM(Mod1Mask)
MOD2_MASK =
LONG2NUM(Mod2Mask)
MOD3_MASK =
LONG2NUM(Mod3Mask)
MOD4_MASK =
LONG2NUM(Mod4Mask)
MOD5_MASK =
LONG2NUM(Mod5Mask)

Class Method Summary collapse

Class Method Details

.xclose_display(obj) ⇒ Object

Xlib XCloseDisplay



59
60
61
62
63
# File 'ext/libx11_ruby/display.c', line 59

static VALUE
rb_libx11_xclose_display(VALUE self, VALUE obj)
{
  return INT2FIX(XCloseDisplay(get_display_struct(obj)));
}

.xcreate_simple_window(display_obj, parent_window, x, y, width, height, border_width, border_color, background_color) ⇒ Object

Xlib XCreateSimpleWindow



9
10
11
12
13
14
15
16
# File 'ext/libx11_ruby/window.c', line 9

static VALUE
rb_libx11_xcreate_simple_window(VALUE self, VALUE display_obj, VALUE parent_window, VALUE x, VALUE y,
    VALUE width, VALUE height, VALUE border_width, VALUE border_color, VALUE background_color)
{
  Window ret = XCreateSimpleWindow(get_display_struct(display_obj), NUM2ULONG(parent_window), NUM2INT(x), NUM2INT(y),
      NUM2UINT(width), NUM2UINT(height), FIX2UINT(border_width), NUM2ULONG(border_color), NUM2ULONG(background_color));
  return ULONG2NUM(ret);
}

.xdestroy_window(display_obj, window) ⇒ Object

Xlib XDestroyWindow



21
22
23
24
25
26
# File 'ext/libx11_ruby/window.c', line 21

static VALUE
rb_libx11_xdestroy_window(VALUE self, VALUE display_obj, VALUE window)
{
  int ret = XDestroyWindow(get_display_struct(display_obj), NUM2ULONG(window));
  return INT2NUM(ret);
}

.xlookup_keysym(event_obj, index) ⇒ Object

KeySym XLookupKeysym(

XKeyEvent* key_event,
int        index

);



75
76
77
78
79
80
81
82
83
84
# File 'ext/libx11_ruby/xevent.c', line 75

static VALUE
rb_libx11_xlookup_keysym(VALUE self, VALUE event_obj, VALUE index)
{
  XEvent *event;
  unsigned long keysym;

  TypedData_Get_Struct(event_obj, XEvent, &xevent_type, event);
  keysym = XLookupKeysym(&event->xkey, NUM2INT(index));
  return ULONG2NUM(keysym);
}

.xnext_event(obj) ⇒ Object

Xlib XNextEvent



38
39
40
41
42
43
44
45
46
47
48
49
# File 'ext/libx11_ruby/xevent.c', line 38

static VALUE
rb_libx11_xnext_event(VALUE self, VALUE obj)
{
  XEvent *event = (XEvent *)malloc(sizeof(XEvent));
  XNextEvent(get_display_struct(obj), event);
  switch (event->type) {
    case KeyPress:
      return TypedData_Wrap_Struct(rb_cXKeyEvent, &xevent_type, event);
    default:
      return TypedData_Wrap_Struct(rb_cXEvent, &xevent_type, event);
  }
}

.xopen_displayObject

Xlib XOpenDisplay



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'ext/libx11_ruby/display.c', line 37

static VALUE
rb_libx11_xopen_display(int argc, VALUE *argv, RB_UNUSED_VAR(VALUE self))
{
  Display *display;

  if (argc == 0) {
    display = XOpenDisplay(NULL);
  } else {
    VALUE display_name;

    rb_check_arity(argc, 1, 1);
    rb_scan_args(argc, argv, "10", &display_name);
    Check_Type(display_name, T_STRING);
    display = XOpenDisplay(RSTRING_PTR(display_name));
  }
  if (display == NULL) return Qnil;
  return TypedData_Wrap_Struct(rb_cDisplay, &display_type, display);
}

.xset_error_handler(*args) ⇒ Object

Xlib XSetErrorHandler



48
49
50
51
52
53
54
55
56
# File 'ext/libx11_ruby/xerror_event.c', line 48

static VALUE
rb_libx11_xset_error_handler(int argc, VALUE *argv, VALUE self)
{
  rb_check_arity(argc, 0, 0);
  rb_scan_args(argc, argv, "00&", &error_handler_proc);

  XSetErrorHandler(error_handler_func);
  return Qnil;
}