LPFNIG_ART_TEXTOVERFLOWNOTIFYFUNC
This callback function is called after the text mark is resized by mouse dragging and before the mark is repainted.
Declaration:
|
Copy Code
|
typedef AT_BOOL (ACCUAPI *LPFNIG_ART_TEXTOVERFLOWNOTIFYFUNC)(
HIGEAR hIGear,
LPVOID lpPrivate,
ART_MARK_INDEX hMarkIndex,
DWORD dwMarkType,
const LPAT_RECT lprcPreferableBounds,
DWORD dwTextLength,
DWORD dwReserved
);
|
Arguments:
Name |
Type |
Description |
hIGear |
HIGEAR |
HIGEAR handle of an image. |
lpPrivate |
LPVOID |
A pointer to the private callback data. |
hMarkIndex |
ART_MARK_INDEX |
The index for the selected mark. |
dwMarkType |
DWORD |
The type of selected mark. Currently it can be ART_MARK_TYPED_TEXT, ART_MARK_ATTACH_A_NOTE, ART_MARK_TEXT_FROM_FILE. |
lprcPreferableBounds |
const LPAT_RECT |
Preferable mark bounds to draw whole mark text (cut to clip bounds). |
dwTextLength |
DWORD |
The length of overflowed text (the last NULL is not included). If the text is not overflowed must be set to 0. |
dwReserved |
DWORD |
Reserved for future use. Currently should be set to 0. |
Return Value:
Returns FALSE for the mark's selection state to remain unchanged; returns TRUE to allow the mark's selection state to change.
Supported Raster Image Formats:
All pixel formats supported by ImageGear for C and C++.
Sample:
Annotation
Example:
|
Copy Code
|
HIGEAR hIGear;
HWND hWnd;
ART_MARK_INDEX markIndexes[3]; /* array of processed mark indexes*/
/* ... */
/* Initialize the markIndexes array anywhere*/
/* and call */
/* ART_callback_register(hIGear,ART_CALLBACK_TEXT_OVERFLOW_NOTIFY, TextOverflowNotify,
lpPrivate);*/
/* to register TextOverflowNotify callback function*/
/* ... */
HIGEAR hIGear;
HWND hWnd;
ART_MARK_INDEX markIndexes[3]; /* array of processed mark indexes*/
/* ... */
/* Initialize the markIndexes array anywhere*/
/* and call */
/* ART_callback_register(hIGear,ART_CALLBACK_TEXT_OVERFLOW_NOTIFY, TextOverflowNotify,
lpPrivate);*/
/* to register TextOverflowNotify callback function*/
/* ... */
AT_BOOL ACCUAPI TextOverflowNotify1(
HIGEAR hIGear,
LPVOID lpPrivate,
ART_MARK_INDEX hMarkIndex,
DWORD dwMarkType,
const LPAT_RECT lprcPreferedBounds,
DWORD dwOverflowedTextLength,
DWORD dwReserved
)
{
AT_ERRCOUNT nErrCount;
ART_MARK_ATTRIBUTES ma;
UNREFERENCED_PARAMETER(lpPrivate);
UNREFERENCED_PARAMETER(lprcPreferedBounds);
UNREFERENCED_PARAMETER(dwOverflowedTextLength);
UNREFERENCED_PARAMETER(dwReserved);
if (dwMarkType != ART_MARK_TYPED_TEXT &&
dwMarkType != ART_MARK_ATTACH_A_NOTE)
return FALSE;
if ( hMarkIndex != markIndexes[2])
{
ART_GUI_mark_paint( hIGear, IG_GRP_DEFAULT, markIndexes[2], hWnd,FALSE );
nErrCount = ART_mark_query( hIGear, markIndexes[2], &ma );
if ( nErrCount == 0 )
{
// Change the bounds if needed...
// For example, ma.rcBounds.right = ma.rcBounds.right / 2;
ma.rcBounds.right = ma.rcBounds.right / 2;
ART_mark_modify( hIGear, markIndexes[2], &ma );
//Repaint the mark
ART_GUI_mark_paint( hIGear, IG_GRP_DEFAULT, markIndexes[2], hWnd, TRUE );
return TRUE;
}
}
return FALSE;
}
|
Remarks:
This callback function is called independently on whether the text overflows the mark bounds or not. It is applied for ART_MARK_TYPED_TEXT, ART_MARK_ATTACH_A_NOTE and ART_MARK_TEXT_FROM_FILE marks.
The return value is ignored at this time. Using this callback function, the customer can possibly change the mark bounds or apply ART_GUI_text_flow() after resizing of the text mark bounds.
In order to use this callback, it must be registered with ART using the function
ART_callback_register().