<BLOCKQUOTE><font size="1" face="Arial, Verdana">code:</font><HR><pre>&ANALYZE-SUSPEND _VERSION-NUMBER UIB_v9r12
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Method-Library
/*------------------------------------------------------------------------
Library : pubwin.i
Purpose : Get a Widgets Procedure Handle
Syntax : Include as a method library
Author(s) : Mike Carroll
Created : August 1999
----------------------------------------------------------------------*/
/* This .W file was created with the Progress AppBuilder. */
/*----------------------------------------------------------------------*/
/* *************************** Definitions ************************** */
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
/* ******************** Preprocessor Definitions ******************** */
/* _UIB-PREPROCESSOR-BLOCK-END */
&ANALYZE-RESUME
/* ************************ Function Prototypes ********************** */
&IF DEFINED(EXCLUDE-FRAME-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD FRAME-OF Method-Library
FUNCTION FRAME-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PROCEDURE-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD PROCEDURE-OF Method-Library
FUNCTION PROCEDURE-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-WINDOW-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WINDOW-OF Method-Library
FUNCTION WINDOW-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* *********************** Procedure Settings ************************ */
&ANALYZE-SUSPEND _PROCEDURE-SETTINGS
/* Settings for THIS-PROCEDURE
Type: Method-Library
Allow:
Frames: 0
Add Fields to: Neither
Other Settings: INCLUDE-ONLY
*/
&ANALYZE-RESUME _END-PROCEDURE-SETTINGS
/* ************************* Create Window ************************** */
&ANALYZE-SUSPEND _CREATE-WINDOW
/* DESIGN Window definition (used by the UIB)
CREATE WINDOW Method-Library ASSIGN
HEIGHT = 15
WIDTH = 60.
/* END WINDOW DEFINITION */
*/
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB Method-Library
/* ************************* Included-Libraries *********************** */
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Method-Library
/* *************************** Main Block *************************** */
&IF "{&PROCEDURE-TYPE}" = "SmartWindow"
&THEN
SUBSCRIBE PROCEDURE THIS-PROCEDURE TO "PublishWindowOwner" ANYWHERE.
&ENDIF
SUBSCRIBE PROCEDURE THIS-PROCEDURE TO "PublishFrameOwner" ANYWHERE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
/* ********************** Internal Procedures *********************** */
&IF DEFINED(EXCLUDE-PublishFrameOwner) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PublishFrameOwner Method-Library
PROCEDURE PublishFrameOwner :
/*------------------------------------------------------------------------------
Purpose: Returns THIS-PROCEDURE if the handle matches the current frame
Parameters: Handle of the Window to compare
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER hFrame AS HANDLE NO-UNDO.
&IF "{&FRAME-NAME}" <> ""
&THEN
IF hFrame = FRAME {&FRAME-NAME}:HANDLE
THEN
RETURN STRING(THIS-PROCEDURE:HANDLE).
&ENDIF
END PROCEDURE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PublishWindowOwner) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PublishWindowOwner Method-Library
PROCEDURE PublishWindowOwner :
/*------------------------------------------------------------------------------
Purpose: Returns THIS-PROCEDURE if the handle matches the current window
Parameters: Handle of the Window to compare
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER hWindow AS HANDLE NO-UNDO.
&IF DEFINED(WINDOW-NAME)
&THEN
IF hWindow = {&WINDOW-NAME}:HANDLE
THEN
RETURN STRING(THIS-PROCEDURE:HANDLE).
&ENDIF
END PROCEDURE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* ************************ Function Implementations ***************** */
&IF DEFINED(EXCLUDE-FRAME-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION FRAME-OF Method-Library
FUNCTION FRAME-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Return the handle of the window containing the widget
Notes:
------------------------------------------------------------------------------*/
DO WHILE VALID-HANDLE(hWidget) AND hWidget:TYPE <> "FRAME":U:
ASSIGN hWidget = hWidgetARENT.
END.
RETURN hWidget.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PROCEDURE-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION PROCEDURE-OF Method-Library
FUNCTION PROCEDURE-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Returns the handle of the procedure that owns widget hWidget.
Notes:
------------------------------------------------------------------------------*/
PUBLISH "PublishFrameOwner" (FRAME-OF(hWidget)).
IF RETURN-VALUE = ""
THEN
PUBLISH "PublishWindowOwner" (WINDOW-OF(hWidget)).
RETURN WIDGET-HANDLE(RETURN-VALUE).
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-WINDOW-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WINDOW-OF Method-Library
FUNCTION WINDOW-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Return the handle of the window containing the widget
Notes:
------------------------------------------------------------------------------*/
DO WHILE VALID-HANDLE(hWidget) AND hWidget:TYPE <> "WINDOW":U:
ASSIGN hWidget = hWidgetARENT.
END.
RETURN hWidget.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
[/code]
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS Method-Library
/*------------------------------------------------------------------------
Library : pubwin.i
Purpose : Get a Widgets Procedure Handle
Syntax : Include as a method library
Author(s) : Mike Carroll
Created : August 1999
----------------------------------------------------------------------*/
/* This .W file was created with the Progress AppBuilder. */
/*----------------------------------------------------------------------*/
/* *************************** Definitions ************************** */
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
/* ******************** Preprocessor Definitions ******************** */
/* _UIB-PREPROCESSOR-BLOCK-END */
&ANALYZE-RESUME
/* ************************ Function Prototypes ********************** */
&IF DEFINED(EXCLUDE-FRAME-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD FRAME-OF Method-Library
FUNCTION FRAME-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PROCEDURE-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD PROCEDURE-OF Method-Library
FUNCTION PROCEDURE-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-WINDOW-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION-FORWARD WINDOW-OF Method-Library
FUNCTION WINDOW-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) FORWARD.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* *********************** Procedure Settings ************************ */
&ANALYZE-SUSPEND _PROCEDURE-SETTINGS
/* Settings for THIS-PROCEDURE
Type: Method-Library
Allow:
Frames: 0
Add Fields to: Neither
Other Settings: INCLUDE-ONLY
*/
&ANALYZE-RESUME _END-PROCEDURE-SETTINGS
/* ************************* Create Window ************************** */
&ANALYZE-SUSPEND _CREATE-WINDOW
/* DESIGN Window definition (used by the UIB)
CREATE WINDOW Method-Library ASSIGN
HEIGHT = 15
WIDTH = 60.
/* END WINDOW DEFINITION */
*/
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB Method-Library
/* ************************* Included-Libraries *********************** */
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK Method-Library
/* *************************** Main Block *************************** */
&IF "{&PROCEDURE-TYPE}" = "SmartWindow"
&THEN
SUBSCRIBE PROCEDURE THIS-PROCEDURE TO "PublishWindowOwner" ANYWHERE.
&ENDIF
SUBSCRIBE PROCEDURE THIS-PROCEDURE TO "PublishFrameOwner" ANYWHERE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
/* ********************** Internal Procedures *********************** */
&IF DEFINED(EXCLUDE-PublishFrameOwner) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PublishFrameOwner Method-Library
PROCEDURE PublishFrameOwner :
/*------------------------------------------------------------------------------
Purpose: Returns THIS-PROCEDURE if the handle matches the current frame
Parameters: Handle of the Window to compare
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER hFrame AS HANDLE NO-UNDO.
&IF "{&FRAME-NAME}" <> ""
&THEN
IF hFrame = FRAME {&FRAME-NAME}:HANDLE
THEN
RETURN STRING(THIS-PROCEDURE:HANDLE).
&ENDIF
END PROCEDURE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PublishWindowOwner) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE PublishWindowOwner Method-Library
PROCEDURE PublishWindowOwner :
/*------------------------------------------------------------------------------
Purpose: Returns THIS-PROCEDURE if the handle matches the current window
Parameters: Handle of the Window to compare
Notes:
------------------------------------------------------------------------------*/
DEFINE INPUT PARAMETER hWindow AS HANDLE NO-UNDO.
&IF DEFINED(WINDOW-NAME)
&THEN
IF hWindow = {&WINDOW-NAME}:HANDLE
THEN
RETURN STRING(THIS-PROCEDURE:HANDLE).
&ENDIF
END PROCEDURE.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
/* ************************ Function Implementations ***************** */
&IF DEFINED(EXCLUDE-FRAME-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION FRAME-OF Method-Library
FUNCTION FRAME-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Return the handle of the window containing the widget
Notes:
------------------------------------------------------------------------------*/
DO WHILE VALID-HANDLE(hWidget) AND hWidget:TYPE <> "FRAME":U:
ASSIGN hWidget = hWidgetARENT.
END.
RETURN hWidget.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-PROCEDURE-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION PROCEDURE-OF Method-Library
FUNCTION PROCEDURE-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Returns the handle of the procedure that owns widget hWidget.
Notes:
------------------------------------------------------------------------------*/
PUBLISH "PublishFrameOwner" (FRAME-OF(hWidget)).
IF RETURN-VALUE = ""
THEN
PUBLISH "PublishWindowOwner" (WINDOW-OF(hWidget)).
RETURN WIDGET-HANDLE(RETURN-VALUE).
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
&IF DEFINED(EXCLUDE-WINDOW-OF) = 0 &THEN
&ANALYZE-SUSPEND _UIB-CODE-BLOCK _FUNCTION WINDOW-OF Method-Library
FUNCTION WINDOW-OF RETURNS HANDLE
( INPUT hWidget AS HANDLE ) :
/*------------------------------------------------------------------------------
Purpose: Return the handle of the window containing the widget
Notes:
------------------------------------------------------------------------------*/
DO WHILE VALID-HANDLE(hWidget) AND hWidget:TYPE <> "WINDOW":U:
ASSIGN hWidget = hWidgetARENT.
END.
RETURN hWidget.
END FUNCTION.
/* _UIB-CODE-BLOCK-END */
&ANALYZE-RESUME
&ENDIF
[/code]