123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514 |
- /*
- * CDE - Common Desktop Environment
- *
- * Copyright (c) 1993-2012, The Open Group. All rights reserved.
- *
- * These libraries and programs are free software; you can
- * redistribute them and/or modify them under the terms of the GNU
- * Lesser General Public License as published by the Free Software
- * Foundation; either version 2 of the License, or (at your option)
- * any later version.
- *
- * These libraries and programs are distributed in the hope that
- * they will be useful, but WITHOUT ANY WARRANTY; without even the
- * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE. See the GNU Lesser General Public License for more
- * details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with these libraries and programs; if not, write
- * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
- * Floor, Boston, MA 02110-1301 USA
- */
- /* $TOG: CanvasP.h /main/17 1999/10/14 13:19:41 mgreess $ */
- /*************************************<+>*************************************
- *****************************************************************************
- **
- ** File: CanvasP.h
- **
- ** Project: Cde Help System
- **
- ** Description: Private Header file for the UI independent core engine
- ** of the help system. It contains function prototypes,
- ** structure definitions, typedefs, etc.
- **
- ** (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 Hewlett-Packard Company
- **
- ** (c) Copyright 1993, 1994 Hewlett-Packard Company
- ** (c) Copyright 1993, 1994 International Business Machines Corp.
- ** (c) Copyright 1993, 1994 Sun Microsystems, Inc.
- ** (c) Copyright 1993, 1994 Novell, Inc.
- *****************************************************************************
- *************************************<+>*************************************/
- #ifndef _DtCanvasP_h
- #define _DtCanvasP_h
- #ifdef __cplusplus
- extern "C" {
- #endif
- /******** Public Re-defines ********/
- #if !defined(_AIX)
- #define _DtCvStrCaseCmp(s1,s2) strcasecmp(s1,s2)
- #define _DtCvStrNCaseCmp(s1,s2, n) strncasecmp(s1,s2,n)
- #else
- #define _DtCvStrCaseCmp(s1,s2) _DtHelpCeStrCaseCmp(s1,s2)
- #define _DtCvStrNCaseCmp(s1,s2,n) _DtHelpCeStrNCaseCmp(s1,s2, n)
- #endif /* _AIX */
- /******** Public Defines Declarations ********/
- /*
- * true, false and null
- */
- #ifndef Null
- #define Null 0
- #endif
- #ifndef NULL
- #define NULL 0
- #endif
- #ifndef False
- #define False 0
- #endif
- #ifndef True
- #define True 1
- #endif
- #ifndef FALSE
- #define FALSE 0
- #endif
- #ifndef TRUE
- #define TRUE 1
- #endif
- /*
- * Get Selection Type Declarations
- */
- #define _DtCvSELECTED_TEXT (1 << 0)
- #define _DtCvSELECTED_REGION (1 << 1)
- #define _DtCvSELECTED_ALL (~((unsigned int) 0))
- /*
- * hypertext link types
- */
- #define _DtCvLinkType_Execute 3
- #define _DtCvLinkType_ManPage 4
- #define _DtCvLinkType_AppDefine 5
- #define _DtCvLinkType_SameVolume 6
- #define _DtCvLinkType_CrossLink 7
- #define _DtCvLinkType_TextFile 8
- /*
- * hypertext window hints
- */
- #define _DtCvWindowHint_PopupWindow 1
- #define _DtCvWindowHint_CurrentWindow 2
- #define _DtCvWindowHint_NewWindow 3
- #define _DtCvWindowHint_Original 4
- /*********************
- * Rendering flags
- *********************/
- /*
- * Rendering flags - Link
- */
- #define _DtCvLINK_FLAG (0x01 << 0)
- #define _DtCvLINK_BEGIN (0x01 << 1)
- #define _DtCvLINK_END (0x01 << 2)
- #define _DtCvLINK_POP_UP (0x01 << 3)
- #define _DtCvLINK_NEW_WINDOW (0x01 << 4)
- /*
- * Rendering flags - Search
- *
- * a gap is left for the search flags on a segment in CanvasSegP.h. If these
- * change value, the other values must move to accommodate it. */
- #define _DtCvSEARCH_FLAG (0x01 << 5)
- #define _DtCvSEARCH_BEGIN (0x01 << 6)
- #define _DtCvSEARCH_END (0x01 << 7)
- #define _DtCvSEARCH_CURR (0x01 << 8)
- /*
- * Rendering flags - Mark
- */
- #define _DtCvMARK_FLAG (0x01 << 9)
- #define _DtCvMARK_BEGIN (0x01 << 10)
- #define _DtCvMARK_END (0x01 << 11)
- #define _DtCvMARK_ON (0x01 << 12)
- /*
- * Rendering flags - Traversal
- */
- #define _DtCvTRAVERSAL_FLAG (0x01 << 13)
- #define _DtCvTRAVERSAL_BEGIN (0x01 << 14)
- #define _DtCvTRAVERSAL_END (0x01 << 15)
- /*
- * Rendering flags - Application defined flags.
- */
- #define _DtCvAPP_FIELD_OFFSET (16)
- #define _DtCvAPP_FIELD_MASK (0x0f << _DtCvAPP_FIELD_OFFSET)
- #define _DtCvAPP_FIELD_S_MASK (0x03 << _DtCvAPP_FIELD_OFFSET)
- #define _DtCvAPP_FLAG1 (0x01 << (_DtCvAPP_FIELD_OFFSET + 0))
- #define _DtCvAPP_FLAG2 (0x01 << (_DtCvAPP_FIELD_OFFSET + 1))
- #define _DtCvAPP_FLAG3 (0x01 << (_DtCvAPP_FIELD_OFFSET + 2))
- #define _DtCvAPP_FLAG4 (0x01 << (_DtCvAPP_FIELD_OFFSET + 3))
- /*
- * Rendering flags - Selection
- */
- #define _DtCvSELECTED_FLAG (0x01 << 20)
- #define _DtCvEND_OF_LINE (0x01 << 21)
- /*
- * Activation masks
- */
- #define _DtCvACTIVATE_SELECTION (0x01 << 0)
- #define _DtCvACTIVATE_MARK (0x01 << 1)
- #define _DtCvDEACTIVATE (0x01 << 2)
- #define _DtCvACTIVATE_MARK_ON (0x01 << 3)
- #define _DtCvACTIVATE_MARK_OFF (0x01 << 4)
- /******** Public Enum Declarations ********/
- /*
- * Element types
- */
- enum _dtCvElemType
- {
- _DtCvBAD_TYPE,
- _DtCvCANVAS_TYPE,
- _DtCvLINE_TYPE,
- _DtCvLINK_TYPE,
- _DtCvLOCALE_TYPE,
- _DtCvMARK_TYPE,
- _DtCvREGION_TYPE,
- _DtCvSTRING_TYPE,
- _DtCvTRAVERSAL_TYPE
- };
- typedef enum _dtCvElemType _DtCvElemType;
- /*
- * Canvas Engine values. Either parameters or return values.
- */
- enum _dtCvValue
- {
- /*
- * status types. i.e. True/False, Ok/Bad, etc.
- */
- _DtCvFALSE = False,
- _DtCvSTATUS_OK = False,
- _DtCvTRUE = True,
- _DtCvSTATUS_BAD = True,
- _DtCvSTATUS_ID_BAD,
- _DtCvSTATUS_NONE,
- _DtCvSTATUS_LINK,
- _DtCvSTATUS_MARK,
- /*
- * Render types
- */
- _DtCvRENDER_PARTIAL,
- _DtCvRENDER_COMPLETE,
- /*
- * Traversal defines
- */
- _DtCvTRAVERSAL_OFF,
- _DtCvTRAVERSAL_ON,
- _DtCvTRAVERSAL_TOP,
- _DtCvTRAVERSAL_NEXT,
- _DtCvTRAVERSAL_PREV,
- _DtCvTRAVERSAL_BOTTOM,
- _DtCvTRAVERSAL_ID,
- _DtCvTRAVERSAL_MARK,
- /*
- * processing a selection types
- */
- _DtCvSELECTION_CLEAR,
- _DtCvSELECTION_START,
- _DtCvSELECTION_UPDATE,
- _DtCvSELECTION_END,
- /*
- * honor the right boundary when laying out information
- */
- _DtCvUSE_BOUNDARY,
- _DtCvUSE_BOUNDARY_MOVE,
- _DtCvIGNORE_BOUNDARY
- };
- typedef enum _dtCvValue _DtCvValue;
- typedef enum _dtCvValue _DtCvStatus;
- typedef enum _dtCvValue _DtCvRenderType;
- typedef enum _dtCvValue _DtCvTraversalCmd;
- typedef enum _dtCvValue _DtCvSelectMode;
- /*
- * line wrap mode types.
- */
- enum _dtCvModeType
- {
- _DtCvModeWrapNone,
- _DtCvModeWrapDown,
- _DtCvModeWrapUp
- };
- typedef enum _dtCvModeType _DtCvModeType;
- /******** Public Typedef Declarations ********/
- typedef void* _DtCvPointer;
- typedef void* _DtCvHandle;
- typedef int _DtCvUnit;
- typedef unsigned long _DtCvFlags;
- typedef struct _dtCvSegPts _DtCvSegPts;
- typedef struct _dtCvSegment _DtCvSegment;
- /******** Public Structures Declarations ********/
- typedef struct _dtCvMetrics {
- _DtCvUnit width; /* max width of canvas area */
- _DtCvUnit height; /* max height of canvas area */
- _DtCvUnit top_margin; /* top margin to allow for */
- _DtCvUnit side_margin; /* left margin to allow for */
- _DtCvUnit line_height; /* the height of an average line of */
- /* text */
- _DtCvUnit horiz_pad_hint; /* the optimul spacing to use if */
- /* lines have to be squeezed for */
- /* _DtCvUSE_BOUNDARY */
- } _DtCvMetrics;
- typedef struct _dtCvSpaceMetrics {
- _DtCvUnit space_before;
- _DtCvUnit space_after;
- _DtCvUnit space_above;
- _DtCvUnit space_below;
- } _DtCvSpaceMetrics;
- typedef struct _dtCvLocale {
- _DtCvModeType line_wrap_mode; /* specifies the wrap mode */
- const wchar_t *cant_begin_chars; /* specifies the characters */
- /* that can't begin a line */
- const wchar_t *cant_end_chars; /* specifies the characters */
- /* that can't end a line */
- } _DtCvLocale;
- typedef struct _dtCvStringInfo {
- const void *string;
- int byte_len;
- int wc;
- _DtCvPointer font_ptr;
- _DtCvPointer csd;
- } _DtCvStringInfo;
- typedef struct _dtCvLineInfo {
- _DtCvUnit x2;
- _DtCvUnit y2;
- _DtCvUnit width;
- _DtCvPointer data;
- } _DtCvLineInfo;
- typedef struct _dtCvRenderInfo {
- _DtCvPointer info;
- _DtCvUnit box_x;
- _DtCvUnit box_y;
- _DtCvUnit box_height;
- _DtCvUnit box_width;
- } _DtCvRenderInfo;
- typedef struct _dtCvLinkInfo {
- char *specification;
- char *description;
- int hyper_type;
- int win_hint;
- _DtCvUnit offset_x;
- _DtCvUnit offset_y;
- } _DtCvLinkInfo;
- typedef struct _dtCvPointInfo {
- _DtCvPointer client_data;
- _DtCvSegPts **segs;
- } _DtCvPointInfo;
- /******** Public Structure Typedef Declarations ********/
- typedef struct _dtCvTopicInfo* _DtCvTopicPtr;
- /******** Public Prototyped Procedures ********/
- typedef void (*_DtCvGetMetrics)(
- _DtCvPointer /* client_data */,
- _DtCvElemType /* elem_type */,
- _DtCvPointer /* ret_metrics */
- );
- typedef void (*_DtCvRenderElem)(
- _DtCvPointer /* client_data */,
- _DtCvElemType /* elem_type */,
- _DtCvUnit /* x */,
- _DtCvUnit /* y */,
- int /* link_type */,
- _DtCvFlags /* old_flags */,
- _DtCvFlags /* new_flags */,
- _DtCvElemType /* trav_type */,
- _DtCvPointer /* trav_data */,
- _DtCvPointer /* data */
- );
- typedef _DtCvUnit (*_DtCvGetElemWidth)(
- _DtCvPointer /* client_data */,
- _DtCvElemType /* elem_type */,
- _DtCvPointer /* data */
- );
- typedef void (*_DtCvGetFontMetrics)(
- _DtCvPointer /* client_data */,
- _DtCvPointer /* font_ptr */,
- _DtCvUnit* /* *ret_ascent */,
- _DtCvUnit* /* *ret_descent */,
- _DtCvUnit* /* *ret_width */,
- _DtCvUnit* /* *ret_super */,
- _DtCvUnit* /* *ret_sub */
- );
- typedef _DtCvStatus (*_DtCvBuildSelection)(
- _DtCvPointer /* client_data */,
- _DtCvElemType /* elem_type */,
- unsigned int /* mask */,
- _DtCvPointer* /* prev_info */,
- _DtCvUnit /* space */,
- _DtCvUnit /* width */,
- _DtCvFlags /* flags */,
- _DtCvPointer /* data */
- );
- typedef int (*_DtCvFilterExecCmd)(
- _DtCvPointer /* client_data */,
- const char* /* cmd */,
- char** /* ret_cmd */
- );
- /******** Public Structures Declarations ********/
- typedef struct _dtCvVirtualInfo {
- _DtCvGetMetrics get_metrics;
- _DtCvRenderElem render_elem;
- _DtCvGetElemWidth get_width;
- _DtCvGetFontMetrics get_font_metrics;
- _DtCvBuildSelection build_selection;
- _DtCvFilterExecCmd exec_cmd_filter;
- } _DtCvVirtualInfo;
- typedef struct _dtCvMarkPos {
- _DtCvPointer client_data;
- _DtCvUnit x1;
- _DtCvUnit y1;
- _DtCvUnit baseline1;
- _DtCvUnit x2;
- _DtCvUnit y2;
- _DtCvUnit baseline2;
- } _DtCvMarkPos;
- /******** Public Macro Declarations ********/
- /******** Semi-Public Function Declarations ********/
- extern int _DtCvGetSearchLineMetrics(
- _DtCvHandle canvas_handle,
- int search_hit_index,
- _DtCvUnit* baseline,
- _DtCvUnit* descent,
- _DtCvUnit* ascent);
- /******** Public Function Declarations ********/
- extern _DtCvStatus _DtCanvasActivatePts(
- _DtCvHandle canvas_handle,
- unsigned int mask,
- _DtCvPointInfo *info,
- _DtCvUnit *ret_y1,
- _DtCvUnit *ret_y2);
- extern void _DtCanvasClean(
- _DtCvHandle canvas_handle);
- extern _DtCvHandle _DtCanvasCreate(
- _DtCvVirtualInfo virt_info,
- _DtCvPointer client_data);
- extern void _DtCanvasDestroy(
- _DtCvHandle canvas_handle);
- extern _DtCvStatus _DtCanvasGetCurLink(
- _DtCvHandle canvas_handle,
- _DtCvLinkInfo *ret_info);
- extern _DtCvStatus _DtCanvasGetCurTraversal(
- _DtCvHandle canvas_handle,
- _DtCvLinkInfo *ret_info,
- _DtCvPointer *ret_data);
- extern _DtCvStatus _DtCanvasGetMarkPositions(
- _DtCvHandle canvas_handle,
- _DtCvMarkPos ***ret_pos);
- extern _DtCvStatus _DtCanvasGetPosLink(
- _DtCvHandle canvas_handle,
- _DtCvUnit x1,
- _DtCvUnit y1,
- _DtCvUnit x2,
- _DtCvUnit y2,
- _DtCvLinkInfo *ret_info);
- extern _DtCvStatus _DtCanvasGetSelection(
- _DtCvHandle canvas_handle,
- unsigned int mask,
- _DtCvPointer *ret_select);
- extern _DtCvStatus _DtCanvasGetSelectionPoints(
- _DtCvHandle canvas_handle,
- _DtCvSegPts ***ret_segs,
- _DtCvUnit *ret_y1,
- _DtCvUnit *ret_y2);
- extern _DtCvStatus _DtCanvasGetSpotInfo(
- _DtCvHandle canvas_handle,
- _DtCvUnit x,
- _DtCvUnit y,
- _DtCvSegment **ret_seg,
- _DtCvUnit *ret_offx,
- _DtCvUnit *ret_offy,
- _DtCvElemType *ret_element);
- extern _DtCvStatus _DtCanvasMoveTraversal(
- _DtCvHandle canvas_handle,
- _DtCvTraversalCmd cmd,
- _DtCvValue wrap,
- _DtCvValue render,
- _DtCvPointer rid,
- _DtCvUnit *ret_x,
- _DtCvUnit *ret_y,
- _DtCvUnit *ret_baseline,
- _DtCvUnit *ret_height);
- extern void _DtCanvasProcessSelection (
- _DtCvHandle canvas_handle,
- _DtCvUnit x,
- _DtCvUnit y,
- _DtCvSelectMode mode);
- extern void _DtCanvasRender(
- _DtCvHandle canvas_handle,
- _DtCvUnit x1,
- _DtCvUnit y1,
- _DtCvUnit x2,
- _DtCvUnit y2,
- _DtCvRenderType flag,
- _DtCvValue pg_break,
- _DtCvUnit *max_y,
- _DtCvUnit *next_y);
- extern _DtCvStatus _DtCanvasResize(
- _DtCvHandle canvas_handle,
- _DtCvValue force,
- _DtCvUnit *ret_width,
- _DtCvUnit *ret_height);
- extern _DtCvStatus _DtCanvasSetTopic(
- _DtCvHandle canvas_handle,
- _DtCvTopicPtr topic_handle,
- _DtCvValue honor_size,
- _DtCvUnit *ret_width,
- _DtCvUnit *ret_height,
- _DtCvUnit *ret_y);
- extern void _DtCanvasLoadMetrics(
- _DtCvHandle canvas_handle);
- #ifdef __cplusplus
- } /* Close scope of 'extern "C"' declaration which encloses file. */
- #endif
- #endif /* _DtCanvasP_h */
- /* DON'T ADD ANYTHING AFTER THIS #endif */
|