Jump to content

GreFullArcBoth: Difference between revisions

From EDM2
Created page with "GreFullArcBoth draws and fills a full arc centered on the current (X,Y) position. The current line attributes apply to the boundary line, and the current pattern attributes ap..."
 
Ak120 (talk | contribs)
mNo edit summary
 
Line 1: Line 1:
GreFullArcBoth draws and fills a full arc centered on the current (X,Y) position. The current line attributes apply to the boundary line, and the current pattern attributes apply to the interior. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcBoth does not affect the current position. When the COM_PATH or the COM_AREA flag is set, this function must raise an error.  
GreFullArcBoth draws and fills a full arc centered on the current (X,Y) position. The current line attributes apply to the boundary line, and the current pattern attributes apply to the interior. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcBoth does not affect the current position. When the COM_PATH or the COM_AREA flag is set, this function must raise an error.


When correlating, the handling routine must return a hit when the pick aperture intersects the boundary, or is completely within the interior, even when the mix is LEAVEALONE. See Mix Modes.  
When correlating, the handling routine must return a hit when the pick aperture intersects the boundary, or is completely within the interior, even when the mix is LEAVEALONE. 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==
  GreFullArcBoth(hdc, fxMultiplier, pInstance, lFunction);
  GreFullArcBoth(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=NGreFullArcBoth.
 
: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=NGreFullArcBoth.  


==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_ALREADY_IN_AREA
:*GPI_ERROR Error  
:*PMERR_BASE_ERROR
 
:*PMERR_BITMAP_NOT_SELECTED
: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_COORDINATE_OVERFLOW
 
:*PMERR_DEV_FUNC_NOT_INSTALLED
:*PMERR_ALREADY_IN_AREA  
:*PMERR_EXCEEDS_MAX_SEG_LENGTH
:*PMERR_BASE_ERROR  
:*PMERR_HDC_BUSY
:*PMERR_BITMAP_NOT_SELECTED  
:*PMERR_HRGN_BUSY
:*PMERR_COORDINATE_OVERFLOW  
:*PMERR_HUGE_FONTS_NOT_SUPPORTED
:*PMERR_DEV_FUNC_NOT_INSTALLED  
:*PMERR_INSUFFICIENT_MEMORY
:*PMERR_EXCEEDS_MAX_SEG_LENGTH  
:*PMERR_INV_AREA_CONTROL
:*PMERR_HDC_BUSY  
:*PMERR_INV_BACKGROUND_COL_ATTR
:*PMERR_HRGN_BUSY  
:*PMERR_INV_BACKGROUND_MIX_ATTR
:*PMERR_HUGE_FONTS_NOT_SUPPORTED  
:*PMERR_INV_CHAR_DIRECTION_ATTR
:*PMERR_INSUFFICIENT_MEMORY  
:*PMERR_INV_CHAR_MODE_ATTR
:*PMERR_INV_AREA_CONTROL  
:*PMERR_INV_CODEPAGE
:*PMERR_INV_BACKGROUND_COL_ATTR  
:*PMERR_INV_COLOR_ATTR
:*PMERR_INV_BACKGROUND_MIX_ATTR  
:*PMERR_INV_COLOR_DATA
:*PMERR_INV_CHAR_DIRECTION_ATTR  
:*PMERR_INV_COLOR_INDEX
:*PMERR_INV_CHAR_MODE_ATTR  
:*PMERR_INV_COORD_SPACE
:*PMERR_INV_CODEPAGE  
:*PMERR_INV_COORDINATE
:*PMERR_INV_COLOR_ATTR  
:*PMERR_INV_HDC
:*PMERR_INV_COLOR_DATA  
:*PMERR_INV_HRGN
:*PMERR_INV_COLOR_INDEX  
:*PMERR_INV_IN_AREA
:*PMERR_INV_COORD_SPACE  
:*PMERR_INV_IN_PATH
:*PMERR_INV_COORDINATE  
:*PMERR_INV_LENGTH_OR_COUNT
:*PMERR_INV_HDC  
:*PMERR_INV_LINE_TYPE_ATTR
:*PMERR_INV_HRGN  
:*PMERR_INV_MIX_ATTR
:*PMERR_INV_IN_AREA  
:*PMERR_INV_MULTIPLIER
:*PMERR_INV_IN_PATH  
:*PMERR_INV_NESTED_FIGURES
:*PMERR_INV_LENGTH_OR_COUNT  
:*PMERR_INV_PATTERN_REF_PT_ATTR
:*PMERR_INV_LINE_TYPE_ATTR  
:*PMERR_INV_PATTERN_SET_ATTR
:*PMERR_INV_MIX_ATTR  
:*PMERR_INV_PATTERN_SET_FONT
:*PMERR_INV_MULTIPLIER  
:*PMERR_INV_PICK_APERTURE_POSN
:*PMERR_INV_NESTED_FIGURES  
:*PMERR_INV_RECT
:*PMERR_INV_PATTERN_REF_PT_ATTR  
:*PMERR_INV_REGION_CONTROL
:*PMERR_INV_PATTERN_SET_ATTR  
:*PMERR_NOT_IN_AREA
:*PMERR_INV_PATTERN_SET_FONT  
:*PMERR_NOT_IN_PATH
:*PMERR_INV_PICK_APERTURE_POSN  
:*PMERR_PATH_LIMIT_EXCEEDED
:*PMERR_INV_RECT  
:*PMERR_PATH_UNKNOWN
:*PMERR_INV_REGION_CONTROL  
:*PMERR_REGION_IS_CLIP_REGION
:*PMERR_NOT_IN_AREA  
:Refer to the "Error Explanations" section in the ''Presentation Manager Programming Reference'' for further explanation.
:*PMERR_NOT_IN_PATH  
:*PMERR_PATH_LIMIT_EXCEEDED  
:*PMERR_PATH_UNKNOWN  
:*PMERR_REGION_IS_CLIP_REGION  
 
:Refer to the "Error Explanations" section in the Presentation Manager Programming Reference for further explanation.  


==Sample Code==
==Sample Code==
Line 92: Line 78:
LONG    rc;            /*  Return codes. */
LONG    rc;            /*  Return codes. */


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


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

Latest revision as of 04:24, 24 March 2020

GreFullArcBoth draws and fills a full arc centered on the current (X,Y) position. The current line attributes apply to the boundary line, and the current pattern attributes apply to the interior. The dimensions of the arc are defined as a multiplier that is applied to the current arc parameters. GreFullArcBoth does not affect the current position. When the COM_PATH or the COM_AREA flag is set, this function must raise an error.

When correlating, the handling routine must return a hit when the pick aperture intersects the boundary, or is completely within the interior, even when the mix is LEAVEALONE. 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

GreFullArcBoth(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=NGreFullArcBoth.

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_ALREADY_IN_AREA
  • PMERR_BASE_ERROR
  • PMERR_BITMAP_NOT_SELECTED
  • PMERR_COORDINATE_OVERFLOW
  • PMERR_DEV_FUNC_NOT_INSTALLED
  • PMERR_EXCEEDS_MAX_SEG_LENGTH
  • PMERR_HDC_BUSY
  • PMERR_HRGN_BUSY
  • PMERR_HUGE_FONTS_NOT_SUPPORTED
  • PMERR_INSUFFICIENT_MEMORY
  • PMERR_INV_AREA_CONTROL
  • PMERR_INV_BACKGROUND_COL_ATTR
  • PMERR_INV_BACKGROUND_MIX_ATTR
  • PMERR_INV_CHAR_DIRECTION_ATTR
  • PMERR_INV_CHAR_MODE_ATTR
  • PMERR_INV_CODEPAGE
  • PMERR_INV_COLOR_ATTR
  • PMERR_INV_COLOR_DATA
  • PMERR_INV_COLOR_INDEX
  • PMERR_INV_COORD_SPACE
  • PMERR_INV_COORDINATE
  • PMERR_INV_HDC
  • PMERR_INV_HRGN
  • PMERR_INV_IN_AREA
  • PMERR_INV_IN_PATH
  • PMERR_INV_LENGTH_OR_COUNT
  • PMERR_INV_LINE_TYPE_ATTR
  • PMERR_INV_MIX_ATTR
  • PMERR_INV_MULTIPLIER
  • PMERR_INV_NESTED_FIGURES
  • PMERR_INV_PATTERN_REF_PT_ATTR
  • PMERR_INV_PATTERN_SET_ATTR
  • PMERR_INV_PATTERN_SET_FONT
  • PMERR_INV_PICK_APERTURE_POSN
  • PMERR_INV_RECT
  • PMERR_INV_REGION_CONTROL
  • PMERR_NOT_IN_AREA
  • PMERR_NOT_IN_PATH
  • PMERR_PATH_LIMIT_EXCEEDED
  • PMERR_PATH_UNKNOWN
  • PMERR_REGION_IS_CLIP_REGION
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=NGreFullArcBoth. */
LONG     rc;            /*  Return codes. */

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