Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ root_geomet(3x) — HP-UX 9.10

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

XtMakeGeometryRequest(1)

XtMakeResizeRequest(1)

Shell(3)

geometry_manager(4)

 

NAME

root_geometry_manager − Shell class method called to negotiate shell geometry requests with a window manager. 

Synopsis

typedef XtGeometryResult (*XtGeometryHandler)(Widget, XtWidgetGeometry *,
XtWidgetGeometry *);

      Widget w;
      XtWidgetGeometry *request;
      XtWidgetGeometry *geometry_return;

Inputs

wSpecifies the shell widget making the request. 

requestSpecifies the requested geometry. 

Outputs

geometry_return
Specifies the reply geometry.

Returns

The window manager’s reply: XtGeometryYes, XtGeometryNo, XtGeometryAlmost, or XtGeometryDone. 

Availability

Release 4 and later. 

Description

The root_geometry_manager() method is registered on the root_geometry_manager field of a ShellClassExtensionRec structure with record_type NULLQUARK, which is itself registered on the extension field of the Shell class part structure.  The root_geometry_manager() method will be called when a shell widget calls XtMakeGeometryRequest() or XtMakeResizeRequest(), and should negotiate the requested size with the window manager.  The arguments to this method are the same as those passed to the geometry_manager() method.  The root_geometry_manager() method should pass the geometry request on to the window manager.  If the window manager permits the new geometry, the root_geometry_manager() should return XtGeometryYes; if the window manager denies the geometry request or it does not change the window geometry within some timeout interval (the XtNwmTimeout resource for WMShell, for example), the root_geometry_manager() should return XtGeometryNo.  If the window manager makes some alternative geometry change, the root_geometry_manager() method may either return XtGeometryNo and handle the new geometry as a resize, or may return XtGeometryAlmost in anticipation that the shell will accept the compromise.  If the compromise is not accepted, the new size must then be handled as a resize.  Communication with a window manager is an asynchronous process, but the root_geometry_manager() procedure must return its answer synchronously.  It will have to issue its request and then block until the reply arrives.  The root_geometry_manager() method is not chained.  It can be inherited by specifying XtInheritRootGeometryManager in the Shell extension record.  If there is no Shell extension record with record_type equal to NULLQUARK, then the Intrinsics will behave as if an extension was specified with XtInheritRootGeometryManager.  See the Inter-Client Communications Conventions Manual for information on communicating with window managers.  See geometry_manager(4) for a description of the structures and the possible return values of this method. 

Usage

The root_geometry_manager() method of the Shell class itself handles communication with ICCCM-compliant window managers.  It sets the appropriate properties to make the geometry request, then uses XCheckIfEvent() to block until an ConfigureNotify event arrives in reply.  This method also uses private functions internal to the Intrinsics in order to correctly handle the events.  Because of the complexity and implementation-specific nature of this method, classes that want to define a custom root_geometry_manager() method should make their requests to the window manager, and then call their superclass’s method to make additional requests, block, and get the response. 

See Also

XtMakeGeometryRequest(1), XtMakeResizeRequest(1),
Shell(3),
geometry_manager(4). 

Copyright O’Reilly & Assoc.  —  X Toolkit Intrinsics Reference Manual © O’Reilly & Associates

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026