Jump to content

GreFullArcBoundary: Difference between revisions

From EDM2
Created page with "GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are define..."
 
Ak120 (talk | contribs)
mNo edit summary
 
Line 1: Line 1:
GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcxxx functions do not affect the current position.  
GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcxxx functions do not affect the current position.


When correlating, the handling routine must return a hit when the pick aperture intersects the boundary. See Mix Modes.  
When correlating, the handling routine must return a hit when the pick aperture intersects the boundary. See Mix Modes.


This function can be hooked by the presentation driver.  
This function can be hooked by the presentation driver.


; Simulation support: This function is simulated by a handling routine in the graphics engine.  
;Simulation support: This function is simulated by a handling routine in the graphics engine.


==Syntax==
==Syntax==
  GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction);
  GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction)


==Parameters==
==Parameters==
;hdc (HDC) - input  
;hdc (HDC) - input:Device context handle.
:Device context handle.  
;fxMultiplier (FIXED) - input:Multiplier.
 
:The value of this parameter defines the size of the required arc in relation to an arc drawn with the current arc parameters. The multiplier is a fixed-point value. The high-order WORD contains the integer portion; the low-order WORD contains the fractional portion. A value of 64KB gives a multiplier of 1. The implementation limit of the multiplier is 255. This value must not be negative.
;fxMultiplier (FIXED) - input  
;pInstance (PVOID) - input:Pointer to instance data.
:Multiplier.  
;lFunction (ULONG) - input:High-order WORD=flags; low-order WORD=NGreFullArcBoundary.
 
:The value of this parameter defines the size of the required arc in relation to an arc drawn with the current arc parameters. The multiplier is a fixed-point value. The high-order WORD contains the integer portion; the low-order WORD contains the fractional portion. A value of 64KB gives a multiplier of 1. The implementation limit of the multiplier is 255. This value must not be negative.  
 
;pInstance (PVOID) - input  
:Pointer to instance data.  
 
;lFunction (ULONG) - input  
:High-order WORD=flags; low-order WORD=NGreFullArcBoundary.  


==Return Code==
==Return Code==
;rc (LONG) - returns  
;rc (LONG) - returns:Return codes.
:Return codes.  
:This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
 
:*GPI_OK Successful
:This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:  
:*GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
 
:*GPI_ERROR Error
:*GPI_OK Successful  
:Possible Errors Detected: When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
:*GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)  
:*PMERR_BASE_ERROR
:*GPI_ERROR Error  
:*PMERR_BITMAP_NOT_SELECTED
 
:*PMERR_COORDINATE_OVERFLOW
:Possible Errors Detected:   When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:  
:*PMERR_DEV_FUNC_NOT_INSTALLED
 
:*PMERR_HDC_BUSY
:*PMERR_BASE_ERROR  
:*PMERR_INV_COLOR_DATA
:*PMERR_BITMAP_NOT_SELECTED  
:*PMERR_INV_COLOR_INDEX
:*PMERR_COORDINATE_OVERFLOW  
:*PMERR_INV_COORD_SPACE
:*PMERR_DEV_FUNC_NOT_INSTALLED  
:*PMERR_INV_HDC
:*PMERR_HDC_BUSY  
:*PMERR_INV_IN_AREA
:*PMERR_INV_COLOR_DATA  
:*PMERR_INV_IN_PATH
:*PMERR_INV_COLOR_INDEX  
:*PMERR_INV_LENGTH_OR_COUNT
:*PMERR_INV_COORD_SPACE  
:*PMERR_INV_MULTIPLIER
:*PMERR_INV_HDC  
:*PMERR_INV_NESTED_FIGURES
:*PMERR_INV_IN_AREA  
:*PMERR_INV_PICK_APERTURE_POSN
:*PMERR_INV_IN_PATH  
:*PMERR_INV_RECT
:*PMERR_INV_LENGTH_OR_COUNT  
:*PMERR_NOT_IN_PATH
:*PMERR_INV_MULTIPLIER  
:*PMERR_PATH_LIMIT_EXCEEDED
:*PMERR_INV_NESTED_FIGURES  
:*PMERR_PATH_UNKNOWN
:*PMERR_INV_PICK_APERTURE_POSN  
:Refer to the "Error Explanations" section in the ''Presentation Manager Programming Reference'' for further explanation.
:*PMERR_INV_RECT  
:*PMERR_NOT_IN_PATH  
:*PMERR_PATH_LIMIT_EXCEEDED  
:*PMERR_PATH_UNKNOWN  
 
:Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.


==Sample Code==
==Sample Code==
Line 70: Line 56:
LONG    rc;            /*  Return codes. */
LONG    rc;            /*  Return codes. */


rc = GreFullArcBoundary(hdc, fxMultiplier,
rc = GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction);
      pInstance, lFunction);
</PRE>
</PRE>


[[Category:Gre]]
[[Category:Gre]]

Latest revision as of 04:26, 24 March 2020

GreFullArcBoundary draws a line by using the current line attributes around the edge of a full arc centered on the current (X,Y) position. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcxxx functions do not affect the current position.

When correlating, the handling routine must return a hit when the pick aperture intersects the boundary. See Mix Modes.

This function can be hooked by the presentation driver.

Simulation support
This function is simulated by a handling routine in the graphics engine.

Syntax

GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction)

Parameters

hdc (HDC) - input
Device context handle.
fxMultiplier (FIXED) - input
Multiplier.
The value of this parameter defines the size of the required arc in relation to an arc drawn with the current arc parameters. The multiplier is a fixed-point value. The high-order WORD contains the integer portion; the low-order WORD contains the fractional portion. A value of 64KB gives a multiplier of 1. The implementation limit of the multiplier is 255. This value must not be negative.
pInstance (PVOID) - input
Pointer to instance data.
lFunction (ULONG) - input
High-order WORD=flags; low-order WORD=NGreFullArcBoundary.

Return Code

rc (LONG) - returns
Return codes.
This function returns an integer (cHits) indicating, where appropriate, whether correlation hits were detected:
  • GPI_OK Successful
  • GPI_HITS Successful with correlate hit (returned by display drivers when the correlate flag is ON, and a hit is detected)
  • GPI_ERROR Error
Possible Errors Detected: When an error is detected, the handling routine must call WinSetErrorInfo to post the condition. Error codes for conditions that the handling routine is expected to check include:
  • PMERR_BASE_ERROR
  • PMERR_BITMAP_NOT_SELECTED
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_DEV_FUNC_NOT_INSTALLED
  • PMERR_HDC_BUSY
  • PMERR_INV_COLOR_DATA
  • PMERR_INV_COLOR_INDEX
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_HDC
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
  • PMERR_INV_LENGTH_OR_COUNT
  • PMERR_INV_MULTIPLIER
  • PMERR_INV_NESTED_FIGURES
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT
  • PMERR_NOT_IN_PATH
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_PATH_UNKNOWN
Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.

Sample Code

#define INCL_GRE_ARCS
#include <os2.h>

HDC      hdc;           /*  Device context handle. */
FIXED    fxMultiplier;  /*  Multiplier. */
PVOID    pInstance;     /*  Pointer to instance data. */
ULONG    lFunction;     /*  High-order WORD=flags; low-order WORD=NGreFullArcBoundary. */
LONG     rc;            /*  Return codes. */

rc = GreFullArcBoundary(hdc, fxMultiplier, pInstance, lFunction);