The structure pointed to by mgrPtr contains information about the geometry manager:
typedef struct { const char *name; Tk_GeomRequestProc *requestProc; Tk_GeomLostSlaveProc *lostSlaveProc; } Tk_GeomMgr;The name field is the textual name for the geometry manager, such as pack or place; this value will be returned by the command winfo manager.
requestProc is a procedure in the geometry manager that will be invoked whenever Tk_GeometryRequest is called by the slave to change its desired geometry. requestProc should have arguments and results that match the type Tk_GeomRequestProc:
typedef void Tk_GeomRequestProc( ClientData clientData, Tk_Window tkwin);The parameters to requestProc will be identical to the corresponding parameters passed to Tk_ManageGeometry. clientData usually points to a data structure containing application-specific information about how to manage tkwin's geometry.
The lostSlaveProc field of mgrPtr points to another procedure in the geometry manager. Tk will invoke lostSlaveProc if some other manager calls Tk_ManageGeometry to claim tkwin away from the current geometry manager. lostSlaveProc is not invoked if Tk_ManageGeometry is called with a NULL value for mgrPtr (presumably the current geometry manager has made this call, so it already knows that the window is no longer managed), nor is it called if mgrPtr is the same as the window's current geometry manager. lostSlaveProc should have arguments and results that match the following prototype:
typedef void Tk_GeomLostSlaveProc( ClientData clientData, Tk_Window tkwin);The parameters to lostSlaveProc will be identical to the corresponding parameters passed to Tk_ManageGeometry.