PCE version 4C man_modulenamespaceid_tablemodified current_idOIxN class/windowN referenceC hash_tablerefersizeOIxNbothIPsNV.window.popupCman_variable_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsOIxNV.window.popupRICdateOIx*¦0XNpopupnCstringOIx¹Popup menu associated with this window. It is activated through the global object @_popup_gesture when all other attempts to handle the button-event have failed. See `window ->event'.CchainsizeOIxIeNM.window.S.eventEN$class/popup$C.popupXnnsN V.window.tileOIxN V.window.tileRIOIx@ãæÃNtilenOI xTile object associated with this window. The associated tile negotiates the layout of windows in the frame with the frame and finally dictates the size and position of the window. If the window has no tile, a this method creates a tile object for the window and returns the new tile.OI xIeNV.window.display_areaENM.window.S.borderXnnsNM.window.S.scroll_verticalCman_method_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherit diagnosticsdefaultsbugsOI xNM.window.S.scroll_verticalRIOI x*¦*DNscroll_verticalnOI x-Trap scroll-request from vertical scroll_bar.OIxIENM.window.S.scroll_horizontalXOIxIeNM.window.S.scroll_horizontalXnnnsNM.window.S.normaliseOIxNM.window.S.normaliseRIOIx:®AlN normalisenOIx(Try to make `object' visible by scrolling the window. Object is either an area, a graphical or a chain of graphicals. The area that is made visible is the area itself, the area of the graphical or the union of the areas of the graphicals in the chain. If it is not possible to make the entire area visible, it is ensured the top-left corner of the area is visible. If `mode' is x, the window is only scrolled horizontally. Likewise if `mode' is y the window is only scrolled vertically. In all other cases scrolling is performed in both directions.OIxIeNM.window.S.scroll_toENM.window.G.visibleXnnnnsNM.window.S.modified_itemOIxNM.window.S.modified_itemRIOIx,@N modified_itemnOIxÚDialog_item objects that are modified by the user send the message ->modified_item to their <-device. This method is defined as a virtual method on class window. See `dialog->modified_item' for a real implementation.nnnnnsNM.window.S.scroll_toOIxNM.window.S.scroll_toRIOIx1®N scroll_tonOIxÖPoint is in the coordinate system of the graphicals displayed in the window. Makes this point the top-left corner of the window. Windows can scroll both the positive and negative coordinates. See also <-visible.OIxIENM.window.S.normaliseXnnnnsNM.window.S.leftOIxNM.window.S.leftRIOIx*¦ENleftnOIxDSimilar to ->above, but rhe receiver is placed left of the argument.OIxIeN $topics$135ENM.window.S.aboveXnnnnsNV.window.bounding_boxOIxNV.window.bounding_boxRIOI x0µ¥ON bounding_boxnOI!xJUnion of graphicals in this window in the coordinate system of the window.nnnsNV.window.scroll_offsetOI"xNV.window.scroll_offsetRIOI#x*¦/ÆN scroll_offsetnOI$x,Indicates how much the window is scrolled. The top-left corner of the window is -in the coordinate system of the displayed graphicals- negative the x- and y- parameters of this point. `window <-visible' is the proper way to get information on the current location of the visible area of the window.nnnsNM.window.S.exposeOI%xNM.window.S.exposeRIOI&x,@ §NexposenOI'x]Exposes (take to the front) the frame of the window on its screen. Invokes `frame ->expose'.nnnnnsNV.window.resize_messageOI(xNV.window.resize_messageRIOI)x<ÍIÿNresize_messagenOI*xÉThe message is executed after the window has been resized by its frame. It allows the programmer to reorganise the contents of the frame such that they better fit the new size. The arguments are: @receiver The window @arg1 The window @arg2 New size of the window This message is always sent when the associated frame is created. Resizing a window may also be specified by redefining the ->geometry method. See also <-visible and `dialog->layout'.OI+xIeN$class/frame$M.frame.S.setENM.window.S.resize_messageXnnsNM.window.S.rightOI,xNM.window.S.rightRIOI-x*¦KNrightnOI.xESimilar to ->above, but rhe receiver is placed right of the argument.OI/xIeN $topics$135ENM.window.S.aboveXnnnnsNM.window.G.confirm_centeredOI0xNM.window.G.confirm_centeredRIOI1x*¤ë6Nconfirm_centerednOI2xšSimilar to `window <-confirm', but centers the frame of the window around the given position instead of putting the top-left corner at the given position.OI3xIeNM.window.S.open_centeredeN'$class/frame$M.frame.G.confirm_centeredENM.window.G.confirmXnnnnsNV.window.focus_cursorOI4xNV.window.focus_cursorRIOI5x*¦ÑN focus_cursornOI6xEWhen not @nil and <-focus is not @nil, this cursor will be displayed.OI7xIeNM.window.S.focus_cursorENV.window.displayed_cursorXnnsNM.window.S.freeOI8xNM.window.S.freeRIOI9x,?H$NfreenOI:x´`window ->free' causes the entire frame and possible other windows that are part of the frame to be freed. If a window is just to be deleted from its <-frame use `frame ->delete'.nnnnnsNM.window.S.moveOI;xNM.window.S.moveRIOIxNM.window.S.hideRIOI?x*¦ ¤NhidenOI@x\Hides (put at the back) the frame of the window on its screen. Redefines `graphical ->hide'.nnnnnsN M.window.S.xOIAxN M.window.S.xRIOIBx,Æ­ÑNxnnnOICxIENM.window.S.moveXnnnsNM.window.S.belowOIDxNM.window.S.belowRIOIEx*¦=NbelownOIFxBSimilar to ->above, but rhe receiver is placed below the argument.OIGxIeN $topics$135ENM.window.S.aboveXnnnnsNM.window.G.contained_inOIHxNM.window.G.contained_inRIOIIx*¤÷N contained_innOIJx^Implements `visual <-contained_in' for class window. Windows are always contained in a frame.OIKxIEN%$class/visual$M.visual.G.contained_inXnnnnsNV.window.displayed_cursorOILxNV.window.displayed_cursorRIOIMx,}EúNdisplayed_cursornOINxÊCurrently visible cursor. This attribute is computed dynamically. The actually displayed cursor of a window is: # If there is a focus and a <->focus_cursor: the <->focus_cursor # If there is a focus and the object in focus has a <->cursor the cursor of the object in focus # If the mouse is a a graphical with a cursor: the cursor of the most local and exposed graphical with a cursor defined. # In all other cases the <->cursor of the window.OIOxIeNM.window.S.eventeNV.window.focus_cursoreN%$class/graphical$M.graphical.S.cursoreNM.window.S.focusXnnsNM.window.S.pointerOIPxNM.window.S.pointerRIOIQx,@ 0NpointernOIRxYMove the pointer to the indicated position, which is in the same coordinate system as the graphicals displayed in the window. The pointer needs not be in the window, nor need the indicated coordinate be inside the window. This method should be used with care. Users tend not to like jumping mice. It is generally better to place a UI component close to the pointer location (see `event <-position') than to place the UI component far away and jump the pointer towards it. Class resize_gesture uses it to position the pointer *exactly* on the border of a graphical if it was depressed close to it.OISxIEN&$class/graphical$M.graphical.S.pointerXnOITx=Succeeds without side-effects if the window is not displayed.nnsNM.window.S.scroll_horizontalOIUxNM.window.S.scroll_horizontalRIOIVx:î|úNscroll_horizontalnOIWxoTraps a scroll-request from the horizontal scrollbar or a wheel-mouse. See class scroll_bar for details. If the `force' argument is @on, the scroll actions is performed unconditionally. Otherwise it is only performed if the window has the associated scroll_bar object. This ensures no scrolling is performed based on a wheel-mouse if the window has no scroll_bar.OIXxIeNM.window.S.scroll_verticaleN$class/scroll_bar$C.scroll_barEN%$class/scroll_bar$V.scroll_bar.objectXnnnnsNM.window.S.flashOIYxNM.window.S.flashRIOIZx5}V`NflashnOI[xÒFlashes the window by temporary inverting it. Normally, applications should invoke `graphical ->alert', which depending on the setting of the `window.visual_bell' will either ring the bell or flash the object.OI\xIeN1$class/graphical$R.graphical.visual_bell_durationeN($class/graphical$R.graphical.visual_belleN#$class/graphical$M.graphical.S.bellEN$$class/graphical$M.graphical.S.alertXnnnnsNM.window.S.openOI]xNM.window.S.openRIOI^x*¥öCNopennOI_xªWhen not created, invokes `window->create' to create the X-counterpart and then opens it on the X-display with the top-left corner or the frame at the specified location.OI`xIeN$class/frame$M.frame.S.openeNM.window.G.confirmeNM.window.S.open_centeredENM.window.S.createXnnOIaxÁIf no position is specified, this defaults to the `Pce.Frame.geometry' resource of the associated frame. If this is not specified either, the position is determined by the window manager used.nsN M.window.S._compute_desired_sizeOIbxN M.window.S._compute_desired_sizeRIOIcx,?L_N_compute_desired_sizenOIdxÛThis method is invoked by class frame to as part of `frame ->fit'. It allows the window to resize itself to fit with its contents. By default this method is only active for class dialog. This method may be redefined.nnnnnsNM.window.S.open_centeredOIexNM.window.S.open_centeredRIOIfx*¥÷N open_centerednOIgxPEquivalent to `window ->open', but the frame is centered around the given point.OIhxIeN$$class/frame$M.frame.S.open_centeredeNM.window.G.confirm_centeredENM.window.S.openXnnOIixMIf no point is specified, tahe window is opened at the center of the display.nsNC.windowCman_class_card identifiermodule last_modifiednamesummary descriptionsee_alsoinherituser_interfacebugsOIjxNC.windowRIOIkx;%ÚjNwindownOIlxyA window is a subwindow of a frame object. It appears on the screen as a rectangular area inside a frame. It defines an infinite two-dimensional drawing plane of which a rectangular sub-area is <-visible. A window optionally has ->scrollbars attached that allows the user to move the visible rectangle over the infinite plane. Class window takes care of the communication with a frame and the X-window window it uses for it's graphical representation. As defined in class device, a window can display graphical objects (i.e. instances of one of the subclasses of graphical). There are several kinds of windows: # picture Normally used for representing drawings or diagrams. Can contain all types of graphical objects. By default has scrollbars. # dialog Normally used for defining dialog boxes. Normally contains instances of one of the subclasses of `dialog_item'. Does automatic layout. By defaults no scrollbars. # browser Displays a single list_browser to examine a list of objects. # view Displays a single editor to edit/browse a text. DRAG AND DROP Windows provide an interface for accepting dropped files from other applications. On Windows this is based DragAcceptFiles() and on Unix/X11 on the XDND protocol (http://www.newplanetsoftware.com/xdnd/), supported by Gnome, KDE and many other X11 toolkits. It supports version 3 of the XDND protocol accepting only the action COPY and type text/uri-list. The implementation is based on the free source xdnd.c by Paul Sheer. To enable accepting dropped files, the user must define the method ->drop_files: chain, point. An example implementation is in the PceEmacs sources. :- pce_begin_class(drop_window, window). drop_files(W, Files:chain, At:point) :-> .... :- pce_end_class(drop_window). The XPCE library contains the library(dragdrop) providing more advanced dragging and dropping inside XPCE applications.OImxIeN$class/picture$C.pictureeN $topics$135eN$class/tile$C.tileeN$class/graphical$C.graphicaleN$class/frame$C.frameEN$class/event$C.eventXnnnsNV.window.keyboard_focusOInxNV.window.keyboard_focusRIOIox,@ ªNkeyboard_focusnOIpxAGraphical object in the window to which keyboard events should be posted. When @nil, keyboard events are dispatched the same way as pointer events. A graphical getting the keyboard focus will be sent an `obtain_keyboard_focus' event. Graphicals loosing the keyboard focus will be sent a `release_keybaord_focus' event.OIqxIeNM.window.S.eventeNV.window.focusENM.window.S.keyboard_focusXnnsNM.window.S.penOIrxNM.window.S.penRIOIsx,Æ­…NpennOItx-Thickness of the line surrounding the window.OIuxIENM.window.S.borderXnnOIvx1nsNM.window.S.keyboard_focusOIwxNM.window.S.keyboard_focusRIOIxx,@ ¹Nkeyboard_focusnnOIyxIeNV.window.keyboard_focuseN $class/device$M.device.S.advanceENM.window.S.focusXnnnnsNM.window.S.initialiseOIzxNM.window.S.initialiseRIOI{x,AcŒN initialisenOI|xÅCreate a window object from its label, size and the display on which is has to be displayed. This will create a default frame for this window. When two windows are related using `window ->above', `window->below', `window->left' or `window->right', both windows will be made part of the same frame. The frame of the receiver of the `window ->above', etc. method will be destroyed and this window will be made part of the frame of the argument window.OI}xIEN$class/frame$C.frameXnnOI~xN label `untitled' size resource defined (see size resource) display @displaynsNM.window.S.flushOIxNM.window.S.flushRIOI€x*¥ú¢NflushnOIxiUpdates all graphicals in this window and flushes the connection to the X-server (see `display ->flush').OI‚xIeN$$class/graphical$M.graphical.S.flushEN $class/display$M.display.S.flushXnnnnsN#M.window.S.update_scroll_bar_valuesOIƒxN#M.window.S.update_scroll_bar_valuesRIOI„xA+f‰Nupdate_scroll_bar_valuesnOI…xhThis message is sent to the window object if either the window is resized (see ->resize), the bounding box of the content changed (see ->changed_union) or the window was scrolled (see ->scroll_to). It can be redefined to constrain other objects to these actions. The redefined method must call this method to ensure proper update of the windows ->scrollbars.nnnnnsNM.window.S.grab_pointerOI†xNM.window.S.grab_pointerRIOI‡x:Š…XN grab_pointernOIˆxWIf @on is specified, all subsequent events will be reported as if they happened on this window. @off should be used to resume normal event-processing. The normal XPCE event-processing ensures the window in which a mouse-down event occurrs grabs the pointer until the mouse-button is released (see also class gesture). Be careful using this method as it is easy to lock the screen if the application `hangs' before processing the ->grab_pointer: @off message. If this happens on a networked Unix machine, you may kill the XPCE process from another terminal. See also ->focus and ->grab_keyboard.OI‰xIeNV.window.grab_pointereNM.window.S.grab_keyboardeN!$class/display$M.display.S.informENM.window.S.focusXnnnnsNM.window.G.convertOIŠxNM.window.G.convertRIOI‹x,?HµNconvertnOIŒx~Convert a graphical to it's window using `graphical <-window'. Simplifies activating methods that accept a window as argument.nnnnnsNM.window.S.resize_messageOIxNM.window.S.resize_messageRIOIŽx1ˆÒ>Nresize_messagenOIxÃSet the variable <-resize_message and executes it if the window has already been created. Arguments: @receiver: The WIndow @arg1 Same as @receiver @arg2 Size object reflecting the new sizeOIxIENV.window.resize_messageXnnnnsNV.window.focus_recogniserOI‘xNV.window.focus_recogniserRIOI’x*¦.­Nfocus_recognisernOI“xRWhen not @nil and <-focus is not @nil, events are given to this recogniser object.OI”xIeN$class/gesture$C.gestureeNM.window.S.eventENV.window.focusXnnsNM.window.S.geometryOI•xNM.window.S.geometryRIOI–x4öäNgeometrynOI—xsTraps the ->set, ->size, ->position and other methods to manipulate the geometry that are inherited from class graphical. It sets the `<-area' of the window. Note that the size and position of a window is dictated by its associated <-tile. To change the layout of windows in a frame, please examine the behaviour defined on class tile. Windows delegate to their tile.nnnnnsNM.window.S.eventOI˜xNM.window.S.eventRIOI™x,@ kNeventnOIšxProcess an X-event. This method is normally invoked from the X-callback function called by the X `intrinsic' layer. It may also be called from `event->post' when events are forwarded to other windows. It performs the following steps: 1) If `window <-sensitive' equals @off, return failure 2) Set `window <-current_event' to this event 3) Determine objects entered and left and generate `area_enter', `area_exit' or `area_cancel' events for them. 4) Check for `display <-inspect_handlers' and process them 5) If there is a <-keyboard_focus and the event is a keyboard related event, ->post it to the object in focus 6) If there is a <-focus, post the event to this focus. If the event is a button-up-event with the same button as <-focus_button, release the event-focus. 7) Invoke the device's ->event method. If this fails, check whether there is a <->popup associated with the window and the event is suitable to be handled by this popup. If so, send it to the popup. 8) If nothing worked and the event is a keyboard event, invoke ->typed with the `event<-id' of the event. 9) Update the cursor according to the changed status 10) reset <-current_event to @nil. This method succeeds if one of the event-postings succeeds and fails otherwise.OI›xI eNV.window.sensitiveeNV.window.current_eventeNV.window.popupeN$class/event$M.event.S.posteNV.window.displayed_cursoreNV.window.keyboard_focuseNV.window.focus_recognisereNV.window.focus_buttonENV.window.focusXnnnnsNM.window.S.post_eventOIœxNM.window.S.post_eventRIOIx?ey}N post_eventnOIžxŸHandle events comming from the underlying windowing system. This method deals with focus handling, cursor managements, etc. For normal unfocussed events is calls ->event with the same event, similar to the ->event routine on normal graphical objects. The distinction makes the function of ->event the same on all graphical classes, simplifying code reuse. Redefinition of ->post_event should rarely be necessary.nnnnnsNM.window.G.visibleOIŸxNM.window.G.visibleRIOI x0µ¤™NvisiblenOI¡x%New area object reflecting the visible area of the drawing plane. The <-position of this area is the coordinate of the top-left corner of the window. Its value is initially (0,0), but may be changed if the window is scrolled. The <-size is the size of the visible area of the drawing plane.OI¢xIeNM.window.G.display_sizeENM.window.S.normaliseXnnnnsNM.window.S.bubble_scroll_barOI£xNM.window.S.bubble_scroll_barRIOI¤x,Æ®·Nbubble_scroll_barnOI¥xLUpdate bubble of given scroll_bar object. Called by `scroll_bar ->compute'.nnnnnsNM.window.S.resizeOI¦xNM.window.S.resizeRIOI§x<ÍIÖNresizenOI¨xkInvoked from the low-level window interface after the window has been resized for any reason. If <-resize_message is specified, this message is executed with the following arguments: @receiver The window @arg1 The window (i.e. same) @arg2 The new size of the window The new size is the `area<-size' of the <-area. See also <-visible and `dialog->layout'.nnnnnsNV.window.backgroundOI©xNV.window.backgroundRIOIªx*¦1©N backgroundnOI«x Background colour of the window.nnnsNM.window.S.colourOI¬xNM.window.S.colourRIOI­x*¤íãNcolournOI®xÒSet the default colour for all graphicals displayed on this window: each graphical that has its colour set to @default will be displayed in the colour specified. If the window is displayed, it will be redrawn.OI¯xIENM.window.S.foregroundeN-$class/graphical$M.graphical.G.display_coloureNM.window.G.foregroundeN$class/colour$C.colourXnnOI°x:When @default is provided, `display <-foreground' is used.nsNV.window.focus_buttonOI±xNV.window.focus_buttonRIOI²x,}EøN focus_buttonnOI³x»When a focus is set (<-focus is not @nil), this focus remains active until a button-up-event is received with this button. When @nil, the focus remains set till it is explicitly cleared.OI´xIeNM.window.S.eventENM.window.S.focusXnnsNV.window.selection_feedbackOIµxNV.window.selection_feedbackRIOI¶x5}RòNselection_feedbacknOI·xíThe value of this variable determines how graphicals with <-selected: @on are visualised. Values: # invert Paint the graphical and then invert the area inside the bounding box of the graphical object. Suitable for monochrome displays or colour windows using a white background and black foreground on most servers. # handles Paint inverted blobs at positions defined by the graphical.selection_handles. Used (for example) in PceDraw. # an elevation object Paint the graphical and then elevate the bounding box according the the elevation object. Only suitable for colour windows with a non-white background. Using a light-grey background is a good choice. # a colour object Ignore the `graphical <-colour' attribute, drawing the graphical using the colour specified here. Suitable on colour devices only. Using a light-grey or otherwise coloured `window <-background' generally improves the result. See also `graphical ->paint_selected' and Pce.Graphical.selection_handles.nnnsNM.window.G.frameOI¸xNM.window.G.frameRIOI¹x*¤ñ(NframennnnnnnsNM.window.S.createOIºxNM.window.S.createRIOI»x,?INcreatenOI¼x_`Window ->create' creates the X-counterpart of the frame and all other windows part of this frame. `window ->create' is a no-op when the window is already created. This method may be used to create a window without immediately opening it at the X-display. This method may be redefined, but it should be aware that it might be called more then once.OI½xIeN$class/frame$M.frame.S.createENM.window.S.openXnnnnsNM.window.S.backgroundOI¾xNM.window.S.backgroundRIOI¿x*¤ûØN backgroundnOIÀxFColour of the drawing plane. Changing the colour will force a redraw.OIÁxIeNM.window.S.foregroundEN#$class/display$V.display.backgroundXnnOIÂx2The <-background of the associated display object.nsNM.window.S.uncreateOIÃxNM.window.S.uncreateRIOIÄx,ƬûNuncreatenOIÅxDestroy associated X-window structure. This method is used internally when a window is deleted from another window or its frame.nnnnnsNV.window.decorationOIÆxNV.window.decorationRIOIÇx,Æ­tN decorationnOIÈxpWindow displaying me and my decorations. This slot will normally contain an instance of class window_decorator.nnnsNM.window.S.typedOIÉxNM.window.S.typedRIOIÊx0µ™NtypednOIËx”Handle accelerator bindings. This method is normally invoked from ->event if no graphical object in the window accepted the typed key. The window will forward the typed key to the frame using `frame ->typed.' The frame in turn will check for another window (generally a dialog object) that is capable of handling the typed key. If delegate = @on (as invoked from ->event) it invokes ->typed on <-frame.nnnnnsNM.window.S.foregroundOIÌxNM.window.S.foregroundRIOIÍx,?I¼N foregroundnnOIÎxIENM.window.S.coloureNM.window.S.backgroundXOIÏxIENM.window.S.colourXnnnsNM.window.S.focus_cursorOIÐxNM.window.S.focus_cursorRIOIÑx*¢#&N focus_cursornOIÒx Changes the <-focus_cursor variable and displayed cursor if the window has <->focus not equal to @nil. The cursor is automatically reset if the focus of the window is set to @nil. This method is often used by gestures to change the cursor while the gesture is active.OIÓxIeN$class/cursor$C.cursoreNV.window.focus_cursoreN+$class/graphical$M.graphical.S.focus_cursoreNM.window.S.focusXnnnnsNV.window.focusOIÔxNV.window.focusRIOIÕx,@šNfocusnOIÖxGraphical object in focus of events. When not @nil, events will be sent to this graphical. When <-focus_recogniser too is not @nil the event will be posted to this recogniser only. Note that keyboard events will be send to the <-keyboard_focus when this is not @nil.OI×xIeNM.window.S.eventeNV.window.keyboard_focuseNM.window.S.focusENV.window.focus_recogniserXnnsNM.window.S.changed_unionOIØxNM.window.S.changed_unionRIOIÙxA+fªN changed_unionnOIÚx©This method is invoked from class `device' when the union of all graphicals has changed. Used to update the scrollbars accordingly. See also ->update_scroll_bar_values.nnnnnsNM.window.S.unlinkOIÛxNM.window.S.unlinkRIOIÜx5}O‡NunlinknOIÝxuIn addition to `device ->unlink', this method takes care of the <-decoration and the associated window-system window.nnnnnsNM.window.S.grab_keyboardOIÞxNM.window.S.grab_keyboardRIOIßxevent'. This is not necessarily the same as @event. Consider the case were the window has opened a popup. In this case `window <-current_event' will point to the event that caused the popup to open (generally an ms_right_down event), while @event will point to the various events that are processed during the opened state of the popup window.OIåxIeN $objects$18ENM.window.S.eventXnnsNM.window.G.confirmOIæxNM.window.G.confirmRIOIçx*¤ãJNconfirmnOIèxCCreates the window and then invokes `frame <-confirm' on its frame.OIéxIeNM.window.S.openeNM.window.G.confirm_centeredEN$class/frame$M.frame.G.confirmXnnnnsNM.window.S.catch_allOIêxNM.window.S.catch_allRIOIëx,ƬÆN catch_allnOIìx…Handle delegation to <-decoration, <-frame and <-tile while these slots are not yet filled. If the selector is found on any of these classes, the corresponding object is associated to the window and the message is delegated. This implementation ensures that messages like `window_decorator ->scrollbars', `frame ->kind' and `tile ->hor_stretch' may always be send directly to the window.nnnnnsNV.window.has_pointerOIíxNV.window.has_pointerRIOIîx.’¹uN has_pointernOIïx”If @on, pointer (mouse) is in window. The method is invoked from ->event and may be redefined, but should always invoke the primary implementation.nnnsN M.window.S.yOIðxN M.window.S.yRIOIñx,Æ­ÔNynnnOIòxIENM.window.S.moveXnnnsNV.window.sensitiveOIóxNV.window.sensitiveRIOIôx,@ ÝN sensitivenOIõxnDetermines whether or not the window is sensitive for events. When @off, all events are ignored. Rarely used.OIöxIENM.window.S.eventXnnsNM.window.S.positionOI÷xNM.window.S.positionRIOIøx,Æ­ÏNpositionnnnOIùxIENM.window.S.moveXnnnsNM.window.S.sizeOIúxNM.window.S.sizeRIOIûx,}EøNsizenOIüxœArgument is the desired size in pixels. This method enlarges the requested size with the <->border and offset caused by possible scrollbars and then invokes `tile ->set: @default, @default, Width, Height' Which will change the *desired* size. The associated frame then decides on the actual size. If the associated frame is already created, only the distribution of the windows inside the frame may be changed. The frame itself won't be resized. The method `frame ->fit' requests the frame to resize its contents *and* itself to the most desirable value. Various subclasses of window redefined this method to make the unit of the size dependent on their font.OIýxIeNV.window.display_areaeN$class/frame$M.frame.S.fitENM.window.S.display_sizeXnnnnsNM.window.G.display_positionOIþxNM.window.G.display_positionRIOIÿx*¤ïGNdisplay_positionnOIxMNew point reflecting the top-left corner of the window relative to its frame.nnnnnsNV.window.input_focusOIxNV.window.input_focusRIOIx.’º‡N input_focusnOIxWhen @on, this window is the window receiving keyboard input. See also `frame ->input_focus'. When modified, and the <-keyboard_focus is not @nil, the method will generate either an activate_keyboard_focus or a deactivate_keyboard_focus event to <-keyboard_focus.OIxIeN"$class/frame$M.frame.G.input_focusEN"$class/frame$M.frame.S.input_focusXnnsNM.window.S.aboveOIxNM.window.S.aboveRIOIx4L² NabovenOIxgPart of the definition of the layout of windows inside a frame. Requests the receiver to be placed above the argument window. Depending on whether or not the argument is a window or a tile, the behaviour of this method is rather different. Using window argument is intended for initial creation of windows, while using a tile argument is intended for adding windows to an already open frame object: # window object argument If the window is part of a `vertical' stack, place the new window at the top of the stack. If the window is part of a `horizontal' stack, create a vertical stack holding the receiver and stack of the argument window. If the window is not part of a stack, create a vertical stack holding both windows. # tile object argument Align the receiver immediately above the argument tile, giving it the same width. If the argument is part of a vertical stack, insert the receiver at the proper location in the stack. If the argument is part of a horizontal stack, create a vertical stack holding the argument and the receiver, and let this new tile object replace the argument tile in the tile hierarchy. To align a window nicely above another window, use: send(NewWindow, above, Old?tile). To align a window above two horizontally aligned windows, use: send(NewWindow, above, Old?tile?super). If the receiver window is not already part of the same frame as the argument window it will be made part of this frame. Thus method may be used after one or both windows have been created. The `techniques' chapter in the Users's Guide contains a section on generation window layout in a frame.OIxIeN$class/frame$M.frame.S.appendeNV.window.frameeN $topics$135eNM.window.S.righteNM.window.S.leftENM.window.S.belowXnnnnsNM.window.S.destroyOI xNM.window.S.destroyRIOI x*¥å¾NdestroynOI xDDestroys the associated window. See `visual ->destroy' for details.OI xIEN $class/visual$M.visual.S.destroyXnnnnsNM.window.S.redrawOI xNM.window.S.redrawRIOIx,}EùNredrawnOIx÷Redraw the entire window or some area of it. This method is normally invoked automatically if the window is opened on the display or part of it is exposed after it has been obscured by other windows. PCE is designed to take care of all visual side-effects automatically, so the user should never have to invoke methods explicitly. An exception on this rule are the decorations (scrollbars and label) of the window. If these are changed this method needs to be called explicitly to update the window.nnnnnsNM.window.G.foregroundOIxNM.window.G.foregroundRIOIx,?JN foregroundnOIxEquivalent to <-colour.OIxIENM.window.S.colourXnnnnsNM.window.S.decorateOIxNM.window.S.decorateRIOIx,Æ­NNdecoratenOIx–Attach a window_decorator object to this window for displaying scroll_bar objects or a label. This method is used by `window_decorator ->initialise'.nnnnnsNV.window.buffered_updateOIxNV.window.buffered_updateRIOIx<¸{Nbuffered_updatenOIxãNormally, if a window needs repainting, a background image is created which is than mapped to the window. We call this `buffered update'. It avoids screen-flicker for the user, generally at only a very modest performance handicap. In some cases however it works out quite badly for performance and, especially if the displayed object takes the whole window and is opaque (see `graphical<->solid') it is sometimes wise to switch this parameter to @off. See also `display<->cache'.nnnsN R.window.sizeCman_resource_card identifiermodule last_modifiednamesummary descriptionsee_alsoinheritdefaultsO IxN R.window.sizeRIOIx*¦ žNsizenOIx‹Default size of a window. Normally applications have several windows and decide on the size and placement of each of these windows itself.nnnsNM.window.S.resetOIxNM.window.S.resetRIOIx*¥÷ÂNresetnOIxœAssigns `window <-current_event' to @nil and releases a possible event-focus. Then invokes `visual ->reset' to take care of the graphicals displayed on it.OI xIEN$class/visual$M.visual.S.resetXnnnnsNV.window.frameOI!xNV.window.frameRIOI"x<ÐuNframenOI#xÖFrame object of which the window is a `frame<-member'. If the window has no frame and is not displayed on another graphical and create is @on or @default a default frame is attached to the window which is returned.OI$xIeN$class/frame$M.frame.G.frameENM.window.S.aboveXnnsNM.window.S.focusOI%xNM.window.S.focusRIOI&x:Š…wNfocusnOI'xÜForward events arriving on this window to some graphical. This method is normally used only by class gesture to process all events starting with a mouse-down and ending with the mouse-up of the same mouse-button. `Graphical' is the graphical object in focus. If `Recogniser' is not @nil, events are given to this particular recogniser object. If `Cursor' is not @nil, the cursor is set to this value until the focus is released. The `Name' argument indicates the button that initiated the focus. If a button-up event is received of this button, the focus will be released automatically. If the value is @nil, the focus remains active until a new `Window ->focus' message is received. See also ->grab_pointer and ->grab_keyboard.OI(xI eN$$class/graphical$M.graphical.S.focuseNV.window.focus_buttoneNV.window.focuseNV.window.displayed_cursoreNM.window.S.grab_pointereN$class/gesture$C.gestureeNM.window.S.keyboard_focuseN$class/event$M.event.S.postENM.window.S.focus_cursorXnnOI)x±The following defaults apply: Recogniser: @nil (None) Cursor @nil (Cursor is not changed) Button Button of the current event, computed with: Window?current_event?buttonnXaCnumber O I*xx