diff --git a/objects/glue/xlib.primMaker.hh b/objects/glue/xlib.primMaker.hh index c61bcc32..18d489d9 100644 --- a/objects/glue/xlib.primMaker.hh +++ b/objects/glue/xlib.primMaker.hh @@ -616,6 +616,18 @@ false, /* can be constant folded */ \ true, /* cannot be moved or cut */ \ true, /* can walk stack */ \ true, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XSendEventxSendEventToWindow:Propogate:EventMask:Event:", \ +fntype(&XSendEvent_XSendEventToWindow_Propogate_EventMask_Event__glue), \ +ExternalPrimitive, \ +IntegerPrimType, \ +true, /* can fail */ \ +true, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +true, /* can walk stack */ \ +true, /* can abort process */ \ "Generated by the primitive maker" },\ \ { "XSetWMProtocol_wrapxSetWMProtocolOfWindow:Protocol:", \ @@ -2686,6 +2698,126 @@ false, /* can be constant folded */ \ true, /* cannot be moved or cut */ \ false, /* can walk stack */ \ false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_newnewResultProxy", \ +fntype(&XClientMessageEvent_new_New_glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_typetype:", \ +fntype(&XClientMessageEvent_type_Type__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_serialserial", \ +fntype(&XClientMessageEvent_serial_Serial_glue), \ +ExternalPrimitive, \ +IntegerPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_serialserial:", \ +fntype(&XClientMessageEvent_serial_Serial__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_send_eventsendEvent", \ +fntype(&XClientMessageEvent_send_event_SendEvent_glue), \ +ExternalPrimitive, \ +BooleanPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_send_eventsendEvent:", \ +fntype(&XClientMessageEvent_send_event_SendEvent__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_displaydisplayResultProxy:", \ +fntype(&XClientMessageEvent_display_Display_glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_displaydisplay:", \ +fntype(&XClientMessageEvent_display_Display__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_windowwindowResultProxy:", \ +fntype(&XClientMessageEvent_window_Window_glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_windowwindow:", \ +fntype(&XClientMessageEvent_window_Window__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ "Generated by the primitive maker" },\ \ { "XClientMessageEvent_message_typemessage_typeResultProxy:", \ @@ -2698,6 +2830,18 @@ false, /* can be constant folded */ \ true, /* cannot be moved or cut */ \ false, /* can walk stack */ \ false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_message_typemessage_type:", \ +fntype(&XClientMessageEvent_message_type_Message_type__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ "Generated by the primitive maker" },\ \ { "XClientMessageEvent_formatformat", \ @@ -2710,6 +2854,18 @@ false, /* can be constant folded */ \ true, /* cannot be moved or cut */ \ false, /* can walk stack */ \ false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_formatformat:", \ +fntype(&XClientMessageEvent_format_Format__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ "Generated by the primitive maker" },\ \ { "XClientMessageEvent_atomAt_wrapatomAt:ResultProxy:", \ @@ -2724,8 +2880,32 @@ false, /* can walk stack */ \ false, /* can abort process */ \ "Generated by the primitive maker" },\ \ -{ "XClientMessageEvent_windowwindowResultProxy:", \ -fntype(&XClientMessageEvent_window_Window_glue), \ +{ "XClientMessageEvent_at_Atom_wrapat:Atom:", \ +fntype(&XClientMessageEvent_at_Atom_wrap_At_Atom__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_at_Long_wrapat:Long:", \ +fntype(&XClientMessageEvent_at_Long_wrap_At_Long__glue), \ +ExternalPrimitive, \ +UnknownPrimType, \ +true, /* can fail */ \ +false, /* can scavenge */ \ +false, /* can be constant folded */ \ +true, /* cannot be moved or cut */ \ +false, /* can walk stack */ \ +false, /* can abort process */ \ +"Generated by the primitive maker" },\ + \ +{ "XClientMessageEvent_deletebasicDelete", \ +fntype(&XClientMessageEvent_delete_BasicDelete_glue), \ ExternalPrimitive, \ UnknownPrimType, \ true, /* can fail */ \ @@ -4430,6 +4610,7 @@ Please do not change it manually. -- dmu 12/91 */\ C_func_9( proxy,(Window,Window_seal), XCreateSimpleWindow, XCreateSimpleWindow_XCreateSimpleWindowIn_X_Y_Width_Height_BorderWidth_Border_Background__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), int,, int,, unsigned_int,, unsigned_int,, unsigned_int,, long,, long,) \ C_func_3( void,, XChangeWindowAttributes_wrap, XChangeWindowAttributes_wrap_XChangeWindowAttributesIn_Attributes__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), proxy,(XSetWindowAttributesWrap*,XSetWindowAttributesWrap_seal)) \ C_func_2( proxy,(XWindowAttributes*,XWindowAttributes_seal), XGetWindowAttributes_wrap, XGetWindowAttributes_wrap_XGetWindowAttributesIn__glue, fail, proxy,(Display*,Display_seal), proxy,(Window,Window_seal)) \ + C_func_5( int,, XSendEvent, XSendEvent_XSendEventToWindow_Propogate_EventMask_Event__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), bool,, unsigned_long,, proxy,(XEvent*,XEvent_seal)) \ C_func_3( int,, XSetWMProtocol_wrap, XSetWMProtocol_wrap_XSetWMProtocolOfWindow_Protocol__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), proxy,(Atom,Atom_seal)) \ C_func_3( void,, XSetWMName, XSetWMName_XSetWMNameOfWindow_To__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), proxy,(XTextProperty*,XTextProperty_seal)) \ C_func_3( void,, XSetWMIconName, XSetWMIconName_XSetWMIconNameOfWindow_To__glue, , proxy,(Display*,Display_seal), proxy,(Window,Window_seal), proxy,(XTextProperty*,XTextProperty_seal)) \ @@ -4619,10 +4800,24 @@ Please do not change it manually. -- dmu 12/91 */\ C_get_comp( unsigned_int,, proxy,(XButtonEvent*,XButtonEvent_seal), .state, XButtonEvent_state_State_glue) \ C_get_comp( unsigned_int,, proxy,(XButtonEvent*,XButtonEvent_seal), .button, XButtonEvent_button_Button_glue) \ C_get_comp( proxy,(Window,Window_seal), proxy,(XButtonEvent*,XButtonEvent_seal), .window, XButtonEvent_window_Window_glue) \ + CC_new_0( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), XClientMessageEvent, XClientMessageEvent_new_New_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .type, int,, XClientMessageEvent_type_Type__glue) \ + C_get_comp( unsigned_int,, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .serial, XClientMessageEvent_serial_Serial_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .serial, unsigned_int,, XClientMessageEvent_serial_Serial__glue) \ + C_get_comp( bool,, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .send_event, XClientMessageEvent_send_event_SendEvent_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .send_event, bool,, XClientMessageEvent_send_event_SendEvent__glue) \ + C_get_comp( proxy,(Display*,Display_seal), proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .display, XClientMessageEvent_display_Display_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .display, proxy,(Display*,Display_seal), XClientMessageEvent_display_Display__glue) \ + C_get_comp( proxy,(Window,Window_seal), proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .window, XClientMessageEvent_window_Window_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .window, proxy,(Window,Window_seal), XClientMessageEvent_window_Window__glue) \ C_get_comp( proxy,(Atom,Atom_seal), proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .message_type, XClientMessageEvent_message_type_Message_type_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .message_type, proxy,(Atom,Atom_seal), XClientMessageEvent_message_type_Message_type__glue) \ C_get_comp( int,, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .format, XClientMessageEvent_format_Format_glue) \ + C_set_comp( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .format, int,, XClientMessageEvent_format_Format__glue) \ C_func_2( proxy,(Atom,Atom_seal), XClientMessageEvent_atomAt_wrap, XClientMessageEvent_atomAt_wrap_AtomAt__glue, fail, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), unsigned_int,) \ - C_get_comp( proxy,(Window,Window_seal), proxy,(XClientMessageEvent*,XClientMessageEvent_seal), .window, XClientMessageEvent_window_Window_glue) \ + C_func_3( void,, XClientMessageEvent_at_Atom_wrap, XClientMessageEvent_at_Atom_wrap_At_Atom__glue, fail, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), unsigned_int,, proxy,(Atom,Atom_seal)) \ + C_func_3( void,, XClientMessageEvent_at_Long_wrap, XClientMessageEvent_at_Long_wrap_At_Long__glue, fail, proxy,(XClientMessageEvent*,XClientMessageEvent_seal), unsigned_int,, long,) \ + CC_delete( proxy,(XClientMessageEvent*,XClientMessageEvent_seal), XClientMessageEvent_delete_BasicDelete_glue) \ C_get_comp( bool,, proxy,(XColormapEvent*,XColormapEvent_seal), .c_new, XColormapEvent_c_new_C_new_glue) \ C_get_comp( unsigned_int,, proxy,(XColormapEvent*,XColormapEvent_seal), .state, XColormapEvent_state_State_glue) \ C_get_comp( proxy,(Window,Window_seal), proxy,(XColormapEvent*,XColormapEvent_seal), .window, XColormapEvent_window_Window_glue) \ diff --git a/objects/glue/xlibTemplates.self b/objects/glue/xlibTemplates.self index 18892102..b03fc6aa 100644 --- a/objects/glue/xlibTemplates.self +++ b/objects/glue/xlibTemplates.self @@ -196,6 +196,12 @@ traits: traits xlib display = XWindowAttributes {xlib xWindowAttributes deadCopy} \ call XGetWindowAttributes_wrap passFailHandle canAWS + Display xSendEventToWindow: proxy Window Window_seal \ + Propogate: bool \ + EventMask: unsigned_long \ + Event: XEvent \ + = int call XSendEvent canAWS + Display xSetWMProtocolOfWindow: proxy Window Window_seal \ Protocol: proxy Atom Atom_seal \ = int call XSetWMProtocol_wrap canAWS @@ -786,7 +792,6 @@ traits: traits xlib events xEvent visibility: publicSlot XEvent type = int getMember type - traits: traits xlib events xButtonEvent visibility: publicSlot XButtonEvent rawTime = oop call xButtonEvent_time @@ -803,15 +808,32 @@ traits: traits xlib events xButtonEvent traits: traits xlib events xClientMessageEvent visibility: publicSlot + void new = XClientMessageEvent {xlib events xClientMessageEvent deadCopy} new + XClientMessageEvent type: int = void setMember type + XClientMessageEvent serial = unsigned_int getMember serial + XClientMessageEvent serial: unsigned_int = void setMember serial + XClientMessageEvent sendEvent = bool getMember send_event + XClientMessageEvent sendEvent: bool = void setMember send_event + XClientMessageEvent display = Display {xlib display deadCopy} getMember display + XClientMessageEvent display: Display = void setMember display + XClientMessageEvent window \ + = proxy Window Window_seal {xlib window deadCopy} getMember window + XClientMessageEvent window: proxy Window Window_seal = void setMember window XClientMessageEvent message_type \ = proxy Atom Atom_seal {xlib atom deadCopy} getMember message_type + XClientMessageEvent message_type: proxy Atom Atom_seal \ + = void setMember message_type XClientMessageEvent format = int getMember format + XClientMessageEvent format: int = void setMember format XClientMessageEvent atomAt: unsigned_int \ = proxy Atom Atom_seal {xlib atom deadCopy} \ call XClientMessageEvent_atomAt_wrap passFailHandle - XClientMessageEvent window \ - = proxy Window Window_seal {xlib window deadCopy} getMember window - + XClientMessageEvent at: unsigned_int Atom: proxy Atom Atom_seal \ + = void call XClientMessageEvent_at_Atom_wrap passFailHandle + XClientMessageEvent at: unsigned_int Long: long \ + = void call XClientMessageEvent_at_Long_wrap passFailHandle + visibility: privateSlot + XClientMessageEvent basicDelete = void delete traits: traits xlib events xColormapEvent diff --git a/objects/glue/xlib_glue.cpp b/objects/glue/xlib_glue.cpp index 528b5e54..5dda3164 100644 --- a/objects/glue/xlib_glue.cpp +++ b/objects/glue/xlib_glue.cpp @@ -243,9 +243,6 @@ XWindowAttributes *XGetWindowAttributes_wrap(Display *display, return attrs; } - - - void XMoveWindowBy_wrap(Display* display, Window win, int x, int y) { int old_x, old_y; @@ -441,6 +438,29 @@ Atom XClientMessageEvent_atomAt_wrap(XClientMessageEvent* rcvr, return rcvr->data.l[index]; } +void XClientMessageEvent_at_Atom_wrap(XClientMessageEvent* rcvr, + unsigned int index, + Atom atom, void* FH) { + if ( sizeof(rcvr->data.l[0]) * index + >= sizeof(rcvr->data.l)) { + prim_failure(FH, BADINDEXERROR); + return; + } + rcvr->data.l[index] = atom; +} + +void XClientMessageEvent_at_Long_wrap(XClientMessageEvent* rcvr, + unsigned int index, + long l, void* FH) { + if ( sizeof(rcvr->data.l[0]) * index + >= sizeof(rcvr->data.l)) { + prim_failure(FH, BADINDEXERROR); + return; + } + rcvr->data.l[index] = l; +} + + int XStringToTextProperty_wrap(XTextProperty* textProperty, char* string) { return XStringListToTextProperty(&string, 1, textProperty); } diff --git a/objects/glue/xlib_wrappers.self b/objects/glue/xlib_wrappers.self index 3ba8cb41..6c360f91 100644 --- a/objects/glue/xlib_wrappers.self +++ b/objects/glue/xlib_wrappers.self @@ -1213,6 +1213,35 @@ traits xlib display _AddSlots: ( | ]] ). + xSendEventToWindow: t0 Propogate: t1 EventMask: t2 Event: + t3 = ( + + xSendEventToWindow: t0 Propogate: t1 EventMask: t2 Event: + t3 IfFail: + [|:e| ^error: 'xSendEventToWindow:Propogate:EventMask:Event: failed: ', e] ). + + xSendEventToWindow: t0 Propogate: t1 EventMask: t2 Event: + t3 IfFail: fb = ( + | + + | + + _XSendEventxSendEventToWindow: t0 Propogate: t1 EventMask: + t2 Event: t3 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XSendEventxSendEventToWindow: + (t0 reviveIfFail: [|:e| ^ fb value: e]) + Propogate: t1 EventMask: + t2 asSmallInteger Event: + (t3 reviveIfFail: [|:e| ^ fb value: e]) + IfFail: fb + ]] ). + + xSetWMProtocolOfWindow: t0 Protocol: t1 = ( xSetWMProtocolOfWindow: t0 Protocol: t1 IfFail: @@ -5246,6 +5275,204 @@ traits xlib events xClientMessageEvent _AddSlots: ( | } { 'Category: generated by primitiveMaker\x7fModuleInfo: Module: xlib_wrappers InitialContents: FollowSlot\x7fVisibility: public' + new = ( + + newIfFail: [|:e| ^error: 'new failed: ', e] ). + + newIfFail: fb = ( + | + + | + + xlib events xClientMessageEvent deadCopy _XClientMessageEvent_newnewResultProxyIfFail: fb ). + + + type: t0 = ( + + type: t0 IfFail: [|:e| ^error: 'type: failed: ', e] ). + + type: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_typetype: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_typetype: t0 asSmallInteger IfFail: fb + ]] . + self). + + + serial = ( + + serialIfFail: [|:e| ^error: 'serial failed: ', e] ). + + serialIfFail: fb = ( + | + + | + + _XClientMessageEvent_serialserialIfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_serialserialIfFail: fb + ]] ). + + + serial: t0 = ( + + serial: t0 IfFail: [|:e| ^error: 'serial: failed: ', e] ). + + serial: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_serialserial: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_serialserial: t0 asSmallInteger + IfFail: fb + ]] . + self). + + + sendEvent = ( + + sendEventIfFail: [|:e| ^error: 'sendEvent failed: ', e] ). + + sendEventIfFail: fb = ( + | + + | + + _XClientMessageEvent_send_eventsendEventIfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_send_eventsendEventIfFail: fb + ]] ). + + + sendEvent: t0 = ( + + sendEvent: t0 IfFail: + [|:e| ^error: 'sendEvent: failed: ', e] ). + + sendEvent: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_send_eventsendEvent: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_send_eventsendEvent: t0 IfFail: fb + ]] . + self). + + + display = ( + + displayIfFail: [|:e| ^error: 'display failed: ', e] ). + + displayIfFail: fb = ( + | + + | + + _XClientMessageEvent_displaydisplayResultProxy: + xlib display deadCopy IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_displaydisplayResultProxy: + xlib display deadCopy IfFail: fb + ]] ). + + + display: t0 = ( + + display: t0 IfFail: [|:e| ^error: 'display: failed: ', e] ). + + display: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_displaydisplay: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_displaydisplay: + (t0 reviveIfFail: [|:e| ^ fb value: e]) + IfFail: fb + ]] . + self). + + + window = ( + + windowIfFail: [|:e| ^error: 'window failed: ', e] ). + + windowIfFail: fb = ( + | + + | + + _XClientMessageEvent_windowwindowResultProxy: + xlib window deadCopy IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_windowwindowResultProxy: + xlib window deadCopy IfFail: fb + ]] ). + + + window: t0 = ( + + window: t0 IfFail: [|:e| ^error: 'window: failed: ', e] ). + + window: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_windowwindow: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_windowwindow: + (t0 reviveIfFail: [|:e| ^ fb value: e]) + IfFail: fb + ]] . + self). + + message_type = ( message_typeIfFail: @@ -5268,6 +5495,29 @@ traits xlib events xClientMessageEvent _AddSlots: ( | ]] ). + message_type: t0 = ( + + message_type: t0 IfFail: + [|:e| ^error: 'message_type: failed: ', e] ). + + message_type: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_message_typemessage_type: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_message_typemessage_type: + (t0 reviveIfFail: [|:e| ^ fb value: e]) + IfFail: fb + ]] . + self). + + format = ( formatIfFail: [|:e| ^error: 'format failed: ', e] ). @@ -5287,6 +5537,27 @@ traits xlib events xClientMessageEvent _AddSlots: ( | ]] ). + format: t0 = ( + + format: t0 IfFail: [|:e| ^error: 'format: failed: ', e] ). + + format: t0 IfFail: fb = ( + | + + | + + _XClientMessageEvent_formatformat: t0 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_formatformat: t0 asSmallInteger + IfFail: fb + ]] . + self). + + atomAt: t0 = ( atomAt: t0 IfFail: [|:e| ^error: 'atomAt: failed: ', e] ). @@ -5309,25 +5580,73 @@ traits xlib events xClientMessageEvent _AddSlots: ( | ]] ). - window = ( + at: t0 Atom: t1 = ( - windowIfFail: [|:e| ^error: 'window failed: ', e] ). + at: t0 Atom: t1 IfFail: + [|:e| ^error: 'at:Atom: failed: ', e] ). - windowIfFail: fb = ( + at: t0 Atom: t1 IfFail: fb = ( | | - _XClientMessageEvent_windowwindowResultProxy: - xlib window deadCopy IfFail: + _XClientMessageEvent_at_Atom_wrapat: t0 Atom: t1 IfFail: [|:e| ('badTypeError' isPrefixOf: e) || ['deadProxyError' isPrefixOf: e] ifFalse: [^fb value: e] True: [ - ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_windowwindowResultProxy: - xlib window deadCopy IfFail: fb - ]] ). + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_at_Atom_wrapat: t0 asSmallInteger + Atom: + (t1 reviveIfFail: [|:e| ^ fb value: e]) + IfFail: fb + ]] . + self). + + + at: t0 Long: t1 = ( + + at: t0 Long: t1 IfFail: + [|:e| ^error: 'at:Long: failed: ', e] ). + + at: t0 Long: t1 IfFail: fb = ( + | + + | + + _XClientMessageEvent_at_Long_wrapat: t0 Long: t1 IfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_at_Long_wrapat: t0 asSmallInteger + Long: t1 asSmallInteger IfFail: fb + ]] . + self). + + + } +{ 'Category: generated by primitiveMaker\x7fModuleInfo: Module: xlib_wrappers InitialContents: FollowSlot\x7fVisibility: private' + + basicDelete = ( + + basicDeleteIfFail: [|:e| ^error: 'basicDelete failed: ', e] ). + + basicDeleteIfFail: fb = ( + | + + | + + _XClientMessageEvent_deletebasicDeleteIfFail: + + [|:e| ('badTypeError' isPrefixOf: e) + || ['deadProxyError' isPrefixOf: e] + ifFalse: [^fb value: e] + True: [ + ( reviveIfFail: [|:e| ^ fb value: e]) _XClientMessageEvent_deletebasicDeleteIfFail: fb + ]] . + self). } diff --git a/objects/graphics/window.self b/objects/graphics/window.self index 347a3e66..d53fcbba 100644 --- a/objects/graphics/window.self +++ b/objects/graphics/window.self @@ -1,7 +1,7 @@ 'Sun-$Revision: 30.14 $' ' -Copyright 1992-2012 AUTHORS. -See the LICENSE file for license information. +Copyright 1992-2011 AUTHORS. +See the legal/LICENSE file for license information and legal/AUTHORS for authors. ' @@ -593,6 +593,7 @@ for UI2 windows\x7fModuleInfo: Module: window InitialContents: FollowSlot\x7fVis icon: createIcon: iconFilename. xwin iconified: false Icon: icon Input: true. xwin catchWMDelete. + xwin initFullscreenAtoms. xwin eventMask: handler eventsToCatch. display gc graphics_exposures: false. @@ -626,6 +627,7 @@ for UI2 windows\x7fModuleInfo: Module: window InitialContents: FollowSlot\x7fVis icon: createIcon: iconFilename. xwin iconified: false Icon: icon Input: true. xwin catchWMDelete. + xwin initFullscreenAtoms. xwin eventMask: handler eventsToCatch. display gc graphics_exposures: false. diff --git a/objects/graphics/xlib.self b/objects/graphics/xlib.self index cdcb3d68..f6404360 100644 --- a/objects/graphics/xlib.self +++ b/objects/graphics/xlib.self @@ -1,7 +1,7 @@ '$Revision: 30.16 $' ' -Copyright 1992-2012 AUTHORS. -See the LICENSE file for license information. +Copyright 1992-2011 AUTHORS. +See the legal/LICENSE file for license information and legal/AUTHORS for authors. ' @@ -2721,6 +2721,18 @@ window.\x7fModuleInfo: Module: xlib InitialContents: InitializeToExpression: (tr wmProtocols <- bootstrap stub -> 'globals' -> 'xlib' -> 'atom' -> (). } | ) + bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'xlib' -> () From: ( | { + 'ModuleInfo: Module: xlib InitialContents: InitializeToExpression: (xlib atom)\x7fVisibility: public' + + wmState <- bootstrap stub -> 'globals' -> 'xlib' -> 'atom' -> (). + } | ) + + bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'xlib' -> () From: ( | { + 'ModuleInfo: Module: xlib InitialContents: InitializeToExpression: (xlib atom)\x7fVisibility: public' + + wmStateFullscreen <- bootstrap stub -> 'globals' -> 'xlib' -> 'atom' -> (). + } | ) + bootstrap addSlotsTo: bootstrap stub -> 'globals' -> 'xlib' -> () From: ( | { 'ModuleInfo: Module: xlib InitialContents: FollowSlot\x7fVisibility: public' @@ -5411,6 +5423,15 @@ an object with these slots: self). } | ) + bootstrap addSlotsTo: bootstrap stub -> 'traits' -> 'xlib' -> 'window' -> () From: ( | { + 'Category: creating\x7fModuleInfo: Module: xlib InitialContents: FollowSlot\x7fVisibility: public' + + initFullscreenAtoms = ( | + | + xlib wmState: display internAtom: '_NET_WM_STATE'. + xlib wmStateFullscreen: display internAtom: '_NET_WM_STATE_FULLSCREEN'). + } | ) + bootstrap addSlotsTo: bootstrap stub -> 'traits' -> 'xlib' -> 'window' -> () From: ( | { 'Category: constants\x7fCategory: window classes\x7fModuleInfo: Module: xlib InitialContents: FollowSlot' diff --git a/objects/ui2/canvas.self b/objects/ui2/canvas.self index e1ca2124..0264ec9a 100644 --- a/objects/ui2/canvas.self +++ b/objects/ui2/canvas.self @@ -1,7 +1,7 @@ '$Revision: 30.17 $' ' -Copyright 1992-2012 AUTHORS. -See the LICENSE file for license information. +Copyright 1992-2011 AUTHORS. +See the legal/LICENSE file for license information and legal/AUTHORS for authors. ' @@ -2395,6 +2395,7 @@ the pixmapCache some day. platformWindow: xlib window createOnDisplay: display At: pt Size: w@h. platformWindow name: wld name. platformWindow catchWMDelete. + platformWindow initFullscreenAtoms. platformWindow eventMask: eventsToCatch. platformWindow selectInput. platformWindow map. @@ -2481,6 +2482,36 @@ the pixmapCache some day. | x11Globals scalableFont). } | ) + bootstrap addSlotsTo: bootstrap stub -> 'traits' -> 'xWindowCanvas' -> () From: ( | { + 'Category: events\x7fModuleInfo: Module: canvas InitialContents: FollowSlot\x7fVisibility: public' + + sendEvent: event Propogate: propogate Mask: mask = ( | + root. + | + root: display screen rootWindowOfScreen. + display xSendEventToWindow: root Propogate: propogate EventMask: mask Event: event). + } | ) + + bootstrap addSlotsTo: bootstrap stub -> 'traits' -> 'xWindowCanvas' -> () From: ( | { + 'Category: basics\x7fModuleInfo: Module: canvas InitialContents: FollowSlot\x7fVisibility: public' + + toggleFullscreen = ( | + event. + | + event: xlib events xClientMessageEvent new. + event type: 33. + event serial: 0. + event sendEvent: false. + event display: display. + event window: window. + event message_type: xlib wmState. + event format: 32. + event at: 0 Long: 2. + event at: 1 Atom: xlib wmStateFullscreen. + event at: 2 Long: 0. + sendEvent: event Propogate: false Mask: 1572864). + } | ) + bootstrap addSlotsTo: bootstrap stub -> 'traits' -> 'xWindowCanvas' -> () From: ( | { 'Category: portable access\x7fModuleInfo: Module: canvas InitialContents: FollowSlot\x7fVisibility: public'