1package X11::Xlib::XEvent;
2use strict;
3use warnings;
4use X11::Xlib; # need constants loaded
5use parent 'X11::Xlib::Struct';
6
7# All modules in dist share a version
8BEGIN { our $VERSION= $X11::Xlib::VERSION; }
9
10=head1 NAME
11
12X11::Xlib::XEvent - Polymorphic class for XEvent structures
13
14=head1 DESCRiPTION
15
16This object wraps an XEvent.  XEvent is a union of many different C structs,
17though they all share a few common fields.  The storage space of an XEvent is
18constant regardless of type, and so this class is backed by a simple scalar
19ref.
20
21The active struct of the union is determined by the L</type> field.  This object
22heirarchy attempts to help you make correct usage of the union with respect to
23the current C<type>, so as you change the value of C<type> the object will
24automatically re-bless itself into the appropriate subclass, giving you access
25to new struct fields.
26
27Most of the "magic" occurs from Perl code, not XS, so it is possible to define
28new event types if this module lacks any in your local copy of Xlib.  You can
29also access the L</bytes> directly any time you want.  And, you don't even have
30to use this object at all; any scalar or scalarref of the correct length can be
31passed to the L<X11::Xlib> methods that expect an XEvent pointer.
32
33=head1 METHODS
34
35=head2 new
36
37  my $xevent= X11::Xlib::XEvent->new();
38  my $xevent= X11::Xlib::XEvent->new( %fields );
39  my $xevent= X11::Xlib::XEvent->new( \%fields );
40
41You can construct XEvent as an empty buffer, or initialize it with a hash or
42hashref of fields.  Initialization is performed via L</pack>.  Un-set fields
43are initialized to zero, and the L</bytes> is always padded to the length
44of an XEvent.
45
46=head2 bytes
47
48Direct access to the bytes of the XEvent.
49
50=head2 apply
51
52  $xevent->apply( %fields );
53
54Alias for C< pack( \%fields, 1, 1 ) >
55
56=head2 pack
57
58  $xevent->pack( \%fields, $consume, $warn );
59
60Assign a set of fields to the packed struct, optionally removing them from
61the hashref (C<$consume>) and warning about un-known names (C<$warn>).
62If you supply a new value for L</type>, the XEvent will get re-blessed to
63the appropriate type and all union-specific fields will be zeroed before
64applying the rest of the supplied fields.
65
66=head2 unpack
67
68  my $field_hashref= $xevent->unpack;
69
70Unpack the fields of an XEvent into a hashref.  The Display field gets
71inflated to an X11::Xlib object.
72
73=head2 summarize
74
75Return a human-readable string describing the Event.  The format is intended
76to be readable by humans, and is subject to change.
77
78=head1 COMMON ATTRIBUTES
79
80All XEvent subclasses have the following attributes:
81
82=head2 type
83
84This is the key attribute that determines all the rest.  Setting this value
85will re-bless the object to the relevant sub-class.  If the type is unknown,
86it becomes C<X11::Xlib::XEvent>.
87
88=head2 display
89
90The handle to the X11 connection that this message came from.
91
92=head2 serial
93
94The X11 serial number
95
96=head2 send_event
97
98Boolean indicating whether the event was sent with C<XSendEvent>
99
100=head1 SUBCLASS ATTRIBUTES
101
102For detailed information about these structures, consult the
103L<official documentation|https://www.x.org/releases/X11R7.7/doc/libX11/libX11/libX11.html>
104
105=cut
106
107sub pack {
108    my $self= shift;
109    # As a special case, convert type enum codes into numeric values
110    if (my $type= $_[0]{type}) {
111        unless ($type =~ /^[0-9]+$/) {
112            # Look up the symbolic constant
113            if (grep { $_ eq $type } @{ $X11::Xlib::EXPORT_TAGS{const_event} }) {
114                $_[0]{type}= X11::Xlib->$type();
115            } else {
116                Carp::croak "Unknown XEvent type '$type'";
117            }
118        }
119    }
120    $self->SUPER::pack(@_);
121}
122
123sub summarize {
124    my $self= shift;
125    my $fields= $self->unpack;
126    my $str= (split '::', ref($self))[-1];
127    my $dpy= delete $fields->{display};
128    $str .= ' display:conn'.$dpy->ConnectionNumber if $dpy;
129    join(' ', $str, map { "$_:$fields->{$_}" } sort keys %$fields);
130}
131
132sub X11::Xlib::XErrorEvent::summarize {
133    my $self= shift;
134    if (my $dpy= $self->display) {
135        my $err= $self->error_code;
136        my $major= $self->request_code;
137        my $minor= $self->minor_code;
138        my $res= $self->resourceid;
139        return sprintf("XErrorEvent display:conn%d error:%d (%s) request:%d.%d (%s) resource:0x%X (%d) serial:%d",
140            $dpy->ConnectionNumber, $err,
141            $dpy->XGetErrorDatabaseText("XProtoError", $err, $err),
142            $major, $minor,
143            ($major < 128? $dpy->XGetErrorDatabaseText("XRequest", $major)
144                : $dpy->XGetErrorDatabaseText("XRequest", $dpy->_extension_for_opcode($major).'.'.$minor)
145                || $dpy->_extension_for_opcode($major).' method '.$minor
146            ),
147            $res, $res, $self->serial);
148    }
149    $self->SUPER::summarize();
150}
151
152# ----------------------------------------------------------------------------
153# BEGIN GENERATED X11_Xlib_XEvent
154
155
156
157@X11::Xlib::XButtonEvent::ISA= ( __PACKAGE__ );
158*X11::Xlib::XButtonEvent::button= *_button;
159*X11::Xlib::XButtonEvent::root= *_root;
160*X11::Xlib::XButtonEvent::same_screen= *_same_screen;
161*X11::Xlib::XButtonEvent::state= *_state;
162*X11::Xlib::XButtonEvent::subwindow= *_subwindow;
163*X11::Xlib::XButtonEvent::time= *_time;
164*X11::Xlib::XButtonEvent::window= *_window;
165*X11::Xlib::XButtonEvent::x= *_x;
166*X11::Xlib::XButtonEvent::x_root= *_x_root;
167*X11::Xlib::XButtonEvent::y= *_y;
168*X11::Xlib::XButtonEvent::y_root= *_y_root;
169
170
171@X11::Xlib::XCirculateEvent::ISA= ( __PACKAGE__ );
172*X11::Xlib::XCirculateEvent::event= *_event;
173*X11::Xlib::XCirculateEvent::place= *_place;
174*X11::Xlib::XCirculateEvent::window= *_window;
175
176
177@X11::Xlib::XCirculateRequestEvent::ISA= ( __PACKAGE__ );
178*X11::Xlib::XCirculateRequestEvent::parent= *_parent;
179*X11::Xlib::XCirculateRequestEvent::place= *_place;
180*X11::Xlib::XCirculateRequestEvent::window= *_window;
181
182
183@X11::Xlib::XClientMessageEvent::ISA= ( __PACKAGE__ );
184*X11::Xlib::XClientMessageEvent::b= *_b;
185*X11::Xlib::XClientMessageEvent::l= *_l;
186*X11::Xlib::XClientMessageEvent::s= *_s;
187*X11::Xlib::XClientMessageEvent::format= *_format;
188*X11::Xlib::XClientMessageEvent::message_type= *_message_type;
189*X11::Xlib::XClientMessageEvent::window= *_window;
190
191
192@X11::Xlib::XColormapEvent::ISA= ( __PACKAGE__ );
193*X11::Xlib::XColormapEvent::colormap= *_colormap;
194*X11::Xlib::XColormapEvent::new= *_new;
195*X11::Xlib::XColormapEvent::state= *_state;
196*X11::Xlib::XColormapEvent::window= *_window;
197
198
199@X11::Xlib::XConfigureEvent::ISA= ( __PACKAGE__ );
200*X11::Xlib::XConfigureEvent::above= *_above;
201*X11::Xlib::XConfigureEvent::border_width= *_border_width;
202*X11::Xlib::XConfigureEvent::event= *_event;
203*X11::Xlib::XConfigureEvent::height= *_height;
204*X11::Xlib::XConfigureEvent::override_redirect= *_override_redirect;
205*X11::Xlib::XConfigureEvent::width= *_width;
206*X11::Xlib::XConfigureEvent::window= *_window;
207*X11::Xlib::XConfigureEvent::x= *_x;
208*X11::Xlib::XConfigureEvent::y= *_y;
209
210
211@X11::Xlib::XConfigureRequestEvent::ISA= ( __PACKAGE__ );
212*X11::Xlib::XConfigureRequestEvent::above= *_above;
213*X11::Xlib::XConfigureRequestEvent::border_width= *_border_width;
214*X11::Xlib::XConfigureRequestEvent::detail= *_detail;
215*X11::Xlib::XConfigureRequestEvent::height= *_height;
216*X11::Xlib::XConfigureRequestEvent::parent= *_parent;
217*X11::Xlib::XConfigureRequestEvent::value_mask= *_value_mask;
218*X11::Xlib::XConfigureRequestEvent::width= *_width;
219*X11::Xlib::XConfigureRequestEvent::window= *_window;
220*X11::Xlib::XConfigureRequestEvent::x= *_x;
221*X11::Xlib::XConfigureRequestEvent::y= *_y;
222
223
224@X11::Xlib::XCreateWindowEvent::ISA= ( __PACKAGE__ );
225*X11::Xlib::XCreateWindowEvent::border_width= *_border_width;
226*X11::Xlib::XCreateWindowEvent::height= *_height;
227*X11::Xlib::XCreateWindowEvent::override_redirect= *_override_redirect;
228*X11::Xlib::XCreateWindowEvent::parent= *_parent;
229*X11::Xlib::XCreateWindowEvent::width= *_width;
230*X11::Xlib::XCreateWindowEvent::window= *_window;
231*X11::Xlib::XCreateWindowEvent::x= *_x;
232*X11::Xlib::XCreateWindowEvent::y= *_y;
233
234
235@X11::Xlib::XCrossingEvent::ISA= ( __PACKAGE__ );
236*X11::Xlib::XCrossingEvent::detail= *_detail;
237*X11::Xlib::XCrossingEvent::focus= *_focus;
238*X11::Xlib::XCrossingEvent::mode= *_mode;
239*X11::Xlib::XCrossingEvent::root= *_root;
240*X11::Xlib::XCrossingEvent::same_screen= *_same_screen;
241*X11::Xlib::XCrossingEvent::state= *_state;
242*X11::Xlib::XCrossingEvent::subwindow= *_subwindow;
243*X11::Xlib::XCrossingEvent::time= *_time;
244*X11::Xlib::XCrossingEvent::window= *_window;
245*X11::Xlib::XCrossingEvent::x= *_x;
246*X11::Xlib::XCrossingEvent::x_root= *_x_root;
247*X11::Xlib::XCrossingEvent::y= *_y;
248*X11::Xlib::XCrossingEvent::y_root= *_y_root;
249
250
251@X11::Xlib::XDestroyWindowEvent::ISA= ( __PACKAGE__ );
252*X11::Xlib::XDestroyWindowEvent::event= *_event;
253*X11::Xlib::XDestroyWindowEvent::window= *_window;
254
255
256@X11::Xlib::XErrorEvent::ISA= ( __PACKAGE__ );
257*X11::Xlib::XErrorEvent::error_code= *_error_code;
258*X11::Xlib::XErrorEvent::minor_code= *_minor_code;
259*X11::Xlib::XErrorEvent::request_code= *_request_code;
260*X11::Xlib::XErrorEvent::resourceid= *_resourceid;
261
262
263@X11::Xlib::XExposeEvent::ISA= ( __PACKAGE__ );
264*X11::Xlib::XExposeEvent::count= *_count;
265*X11::Xlib::XExposeEvent::height= *_height;
266*X11::Xlib::XExposeEvent::width= *_width;
267*X11::Xlib::XExposeEvent::window= *_window;
268*X11::Xlib::XExposeEvent::x= *_x;
269*X11::Xlib::XExposeEvent::y= *_y;
270
271
272@X11::Xlib::XFocusChangeEvent::ISA= ( __PACKAGE__ );
273*X11::Xlib::XFocusChangeEvent::detail= *_detail;
274*X11::Xlib::XFocusChangeEvent::mode= *_mode;
275*X11::Xlib::XFocusChangeEvent::window= *_window;
276
277
278@X11::Xlib::XGenericEvent::ISA= ( __PACKAGE__ );
279*X11::Xlib::XGenericEvent::evtype= *_evtype;
280*X11::Xlib::XGenericEvent::extension= *_extension;
281
282
283@X11::Xlib::XGraphicsExposeEvent::ISA= ( __PACKAGE__ );
284*X11::Xlib::XGraphicsExposeEvent::count= *_count;
285*X11::Xlib::XGraphicsExposeEvent::drawable= *_drawable;
286*X11::Xlib::XGraphicsExposeEvent::height= *_height;
287*X11::Xlib::XGraphicsExposeEvent::major_code= *_major_code;
288*X11::Xlib::XGraphicsExposeEvent::minor_code= *_minor_code;
289*X11::Xlib::XGraphicsExposeEvent::width= *_width;
290*X11::Xlib::XGraphicsExposeEvent::x= *_x;
291*X11::Xlib::XGraphicsExposeEvent::y= *_y;
292
293
294@X11::Xlib::XGravityEvent::ISA= ( __PACKAGE__ );
295*X11::Xlib::XGravityEvent::event= *_event;
296*X11::Xlib::XGravityEvent::window= *_window;
297*X11::Xlib::XGravityEvent::x= *_x;
298*X11::Xlib::XGravityEvent::y= *_y;
299
300
301@X11::Xlib::XKeyEvent::ISA= ( __PACKAGE__ );
302*X11::Xlib::XKeyEvent::keycode= *_keycode;
303*X11::Xlib::XKeyEvent::root= *_root;
304*X11::Xlib::XKeyEvent::same_screen= *_same_screen;
305*X11::Xlib::XKeyEvent::state= *_state;
306*X11::Xlib::XKeyEvent::subwindow= *_subwindow;
307*X11::Xlib::XKeyEvent::time= *_time;
308*X11::Xlib::XKeyEvent::window= *_window;
309*X11::Xlib::XKeyEvent::x= *_x;
310*X11::Xlib::XKeyEvent::x_root= *_x_root;
311*X11::Xlib::XKeyEvent::y= *_y;
312*X11::Xlib::XKeyEvent::y_root= *_y_root;
313
314
315@X11::Xlib::XKeymapEvent::ISA= ( __PACKAGE__ );
316*X11::Xlib::XKeymapEvent::key_vector= *_key_vector;
317*X11::Xlib::XKeymapEvent::window= *_window;
318
319
320@X11::Xlib::XMapEvent::ISA= ( __PACKAGE__ );
321*X11::Xlib::XMapEvent::event= *_event;
322*X11::Xlib::XMapEvent::override_redirect= *_override_redirect;
323*X11::Xlib::XMapEvent::window= *_window;
324
325
326@X11::Xlib::XMapRequestEvent::ISA= ( __PACKAGE__ );
327*X11::Xlib::XMapRequestEvent::parent= *_parent;
328*X11::Xlib::XMapRequestEvent::window= *_window;
329
330
331@X11::Xlib::XMappingEvent::ISA= ( __PACKAGE__ );
332*X11::Xlib::XMappingEvent::count= *_count;
333*X11::Xlib::XMappingEvent::first_keycode= *_first_keycode;
334*X11::Xlib::XMappingEvent::request= *_request;
335*X11::Xlib::XMappingEvent::window= *_window;
336
337
338@X11::Xlib::XMotionEvent::ISA= ( __PACKAGE__ );
339*X11::Xlib::XMotionEvent::is_hint= *_is_hint;
340*X11::Xlib::XMotionEvent::root= *_root;
341*X11::Xlib::XMotionEvent::same_screen= *_same_screen;
342*X11::Xlib::XMotionEvent::state= *_state;
343*X11::Xlib::XMotionEvent::subwindow= *_subwindow;
344*X11::Xlib::XMotionEvent::time= *_time;
345*X11::Xlib::XMotionEvent::window= *_window;
346*X11::Xlib::XMotionEvent::x= *_x;
347*X11::Xlib::XMotionEvent::x_root= *_x_root;
348*X11::Xlib::XMotionEvent::y= *_y;
349*X11::Xlib::XMotionEvent::y_root= *_y_root;
350
351
352@X11::Xlib::XNoExposeEvent::ISA= ( __PACKAGE__ );
353*X11::Xlib::XNoExposeEvent::drawable= *_drawable;
354*X11::Xlib::XNoExposeEvent::major_code= *_major_code;
355*X11::Xlib::XNoExposeEvent::minor_code= *_minor_code;
356
357
358@X11::Xlib::XPropertyEvent::ISA= ( __PACKAGE__ );
359*X11::Xlib::XPropertyEvent::atom= *_atom;
360*X11::Xlib::XPropertyEvent::state= *_state;
361*X11::Xlib::XPropertyEvent::time= *_time;
362*X11::Xlib::XPropertyEvent::window= *_window;
363
364
365@X11::Xlib::XReparentEvent::ISA= ( __PACKAGE__ );
366*X11::Xlib::XReparentEvent::event= *_event;
367*X11::Xlib::XReparentEvent::override_redirect= *_override_redirect;
368*X11::Xlib::XReparentEvent::parent= *_parent;
369*X11::Xlib::XReparentEvent::window= *_window;
370*X11::Xlib::XReparentEvent::x= *_x;
371*X11::Xlib::XReparentEvent::y= *_y;
372
373
374@X11::Xlib::XResizeRequestEvent::ISA= ( __PACKAGE__ );
375*X11::Xlib::XResizeRequestEvent::height= *_height;
376*X11::Xlib::XResizeRequestEvent::width= *_width;
377*X11::Xlib::XResizeRequestEvent::window= *_window;
378
379
380@X11::Xlib::XSelectionClearEvent::ISA= ( __PACKAGE__ );
381*X11::Xlib::XSelectionClearEvent::selection= *_selection;
382*X11::Xlib::XSelectionClearEvent::time= *_time;
383*X11::Xlib::XSelectionClearEvent::window= *_window;
384
385
386@X11::Xlib::XSelectionEvent::ISA= ( __PACKAGE__ );
387*X11::Xlib::XSelectionEvent::property= *_property;
388*X11::Xlib::XSelectionEvent::requestor= *_requestor;
389*X11::Xlib::XSelectionEvent::selection= *_selection;
390*X11::Xlib::XSelectionEvent::target= *_target;
391*X11::Xlib::XSelectionEvent::time= *_time;
392
393
394@X11::Xlib::XSelectionRequestEvent::ISA= ( __PACKAGE__ );
395*X11::Xlib::XSelectionRequestEvent::owner= *_owner;
396*X11::Xlib::XSelectionRequestEvent::property= *_property;
397*X11::Xlib::XSelectionRequestEvent::requestor= *_requestor;
398*X11::Xlib::XSelectionRequestEvent::selection= *_selection;
399*X11::Xlib::XSelectionRequestEvent::target= *_target;
400*X11::Xlib::XSelectionRequestEvent::time= *_time;
401
402
403@X11::Xlib::XUnmapEvent::ISA= ( __PACKAGE__ );
404*X11::Xlib::XUnmapEvent::event= *_event;
405*X11::Xlib::XUnmapEvent::from_configure= *_from_configure;
406*X11::Xlib::XUnmapEvent::window= *_window;
407
408
409@X11::Xlib::XVisibilityEvent::ISA= ( __PACKAGE__ );
410*X11::Xlib::XVisibilityEvent::state= *_state;
411*X11::Xlib::XVisibilityEvent::window= *_window;
412
413=head2 XButtonEvent
414
415Used for event type: ButtonPress, ButtonRelease
416
417  button            - unsigned int
418  root              - Window
419  same_screen       - Bool
420  state             - unsigned int
421  subwindow         - Window
422  time              - Time
423  window            - Window
424  x                 - int
425  x_root            - int
426  y                 - int
427  y_root            - int
428
429=head2 XCirculateEvent
430
431Used for event type: CirculateNotify
432
433  event             - Window
434  place             - int
435  window            - Window
436
437=head2 XCirculateRequestEvent
438
439Used for event type: CirculateRequest
440
441  parent            - Window
442  place             - int
443  window            - Window
444
445=head2 XClientMessageEvent
446
447Used for event type: ClientMessage
448
449  b                 - char [ 20 ]
450  l                 - long [ 5 ]
451  s                 - short [ 10 ]
452  format            - int
453  message_type      - Atom
454  window            - Window
455
456=head2 XColormapEvent
457
458Used for event type: ColormapNotify
459
460  colormap          - Colormap
461  new               - Bool
462  state             - int
463  window            - Window
464
465=head2 XConfigureEvent
466
467Used for event type: ConfigureNotify
468
469  above             - Window
470  border_width      - int
471  event             - Window
472  height            - int
473  override_redirect - Bool
474  width             - int
475  window            - Window
476  x                 - int
477  y                 - int
478
479=head2 XConfigureRequestEvent
480
481Used for event type: ConfigureRequest
482
483  above             - Window
484  border_width      - int
485  detail            - int
486  height            - int
487  parent            - Window
488  value_mask        - unsigned long
489  width             - int
490  window            - Window
491  x                 - int
492  y                 - int
493
494=head2 XCreateWindowEvent
495
496Used for event type: CreateNotify
497
498  border_width      - int
499  height            - int
500  override_redirect - Bool
501  parent            - Window
502  width             - int
503  window            - Window
504  x                 - int
505  y                 - int
506
507=head2 XCrossingEvent
508
509Used for event type: EnterNotify, LeaveNotify
510
511  detail            - int
512  focus             - Bool
513  mode              - int
514  root              - Window
515  same_screen       - Bool
516  state             - unsigned int
517  subwindow         - Window
518  time              - Time
519  window            - Window
520  x                 - int
521  x_root            - int
522  y                 - int
523  y_root            - int
524
525=head2 XDestroyWindowEvent
526
527Used for event type: DestroyNotify
528
529  event             - Window
530  window            - Window
531
532=head2 XErrorEvent
533
534Used for event type: 0
535
536  error_code        - unsigned char
537  minor_code        - unsigned char
538  request_code      - unsigned char
539  resourceid        - XID
540
541=head2 XExposeEvent
542
543Used for event type: Expose
544
545  count             - int
546  height            - int
547  width             - int
548  window            - Window
549  x                 - int
550  y                 - int
551
552=head2 XFocusChangeEvent
553
554Used for event type: FocusIn, FocusOut
555
556  detail            - int
557  mode              - int
558  window            - Window
559
560=head2 XGenericEvent
561
562Used for event type: GenericEvent
563
564  evtype            - int
565  extension         - int
566
567=head2 XGraphicsExposeEvent
568
569Used for event type: GraphicsExpose
570
571  count             - int
572  drawable          - Drawable
573  height            - int
574  major_code        - int
575  minor_code        - int
576  width             - int
577  x                 - int
578  y                 - int
579
580=head2 XGravityEvent
581
582Used for event type: GravityNotify
583
584  event             - Window
585  window            - Window
586  x                 - int
587  y                 - int
588
589=head2 XKeyEvent
590
591Used for event type: KeyPress, KeyRelease
592
593  keycode           - unsigned int
594  root              - Window
595  same_screen       - Bool
596  state             - unsigned int
597  subwindow         - Window
598  time              - Time
599  window            - Window
600  x                 - int
601  x_root            - int
602  y                 - int
603  y_root            - int
604
605=head2 XKeymapEvent
606
607Used for event type: KeymapNotify
608
609  key_vector        - char [ 32 ]
610  window            - Window
611
612=head2 XMapEvent
613
614Used for event type: MapNotify
615
616  event             - Window
617  override_redirect - Bool
618  window            - Window
619
620=head2 XMapRequestEvent
621
622Used for event type: MapRequest
623
624  parent            - Window
625  window            - Window
626
627=head2 XMappingEvent
628
629Used for event type: MappingNotify
630
631  count             - int
632  first_keycode     - int
633  request           - int
634  window            - Window
635
636=head2 XMotionEvent
637
638Used for event type: MotionNotify
639
640  is_hint           - char
641  root              - Window
642  same_screen       - Bool
643  state             - unsigned int
644  subwindow         - Window
645  time              - Time
646  window            - Window
647  x                 - int
648  x_root            - int
649  y                 - int
650  y_root            - int
651
652=head2 XNoExposeEvent
653
654Used for event type: NoExpose
655
656  drawable          - Drawable
657  major_code        - int
658  minor_code        - int
659
660=head2 XPropertyEvent
661
662Used for event type: PropertyNotify
663
664  atom              - Atom
665  state             - int
666  time              - Time
667  window            - Window
668
669=head2 XReparentEvent
670
671Used for event type: ReparentNotify
672
673  event             - Window
674  override_redirect - Bool
675  parent            - Window
676  window            - Window
677  x                 - int
678  y                 - int
679
680=head2 XResizeRequestEvent
681
682Used for event type: ResizeRequest
683
684  height            - int
685  width             - int
686  window            - Window
687
688=head2 XSelectionClearEvent
689
690Used for event type: SelectionClear
691
692  selection         - Atom
693  time              - Time
694  window            - Window
695
696=head2 XSelectionEvent
697
698Used for event type: SelectionNotify
699
700  property          - Atom
701  requestor         - Window
702  selection         - Atom
703  target            - Atom
704  time              - Time
705
706=head2 XSelectionRequestEvent
707
708Used for event type: SelectionRequest
709
710  owner             - Window
711  property          - Atom
712  requestor         - Window
713  selection         - Atom
714  target            - Atom
715  time              - Time
716
717=head2 XUnmapEvent
718
719Used for event type: UnmapNotify
720
721  event             - Window
722  from_configure    - Bool
723  window            - Window
724
725=head2 XVisibilityEvent
726
727Used for event type: VisibilityNotify
728
729  state             - int
730  window            - Window
731
732=cut
733
734# END GENERATED X11_Xlib_XEvent
735# ----------------------------------------------------------------------------
736
7371;
738
739__END__
740
741=head1 AUTHOR
742
743Olivier Thauvin, E<lt>nanardon@nanardon.zarb.orgE<gt>
744
745Michael Conrad, E<lt>mike@nrdvana.netE<gt>
746
747=head1 COPYRIGHT AND LICENSE
748
749Copyright (C) 2009-2010 by Olivier Thauvin
750
751Copyright (C) 2017 by Michael Conrad
752
753This library is free software; you can redistribute it and/or modify
754it under the same terms as Perl itself, either Perl version 5.10.0 or,
755at your option, any later version of Perl 5 you may have available.
756
757=cut
758