|
|
#include "fc.h"
#ifndef _NAV_H
#define _NAV_H
#define RAWHIDE
/*****************************************************************************
* * NAV.H * * Copyright (C) Microsoft Corporation 1990. * All Rights reserved. * ****************************************************************************** * * Module Intent: Exports functionality from NAV * ****************************************************************************** * * Testing Notes * ****************************************************************************** * * Current Owner: * ****************************************************************************** * * Released by Development: (date) * ****************************************************************************** * * Revision History: * * 07/11/90 RobertBu prototype for function FShowTitles() added. * 07/19/90 RobertBu Added prototypes for FShowBrowseButtons(), * Index(), Search(), Back(), Next(), and Prev(). * 07/22/90 RobertBu Added FPopupCtx(), FJumpId(), and FPopupId() * 07/23/90 RobertBu Added FPopupHash() and FJumpHash(). Added * wBTN_IFJUMP and wBTN_IFPOPUP for interfile jumps and popups. * 08/10/90 RobertBu Added prototype for GetDETypeHde() * 10/19/90 LeoN HdeCreate no longer takes an hwnd, add SetHdeHwnd * 10/25/90 LeoN JumpButton takes a LPVOID * 10/28/90 JohnSc Removed wBTN_*: use #defines from objects.h instead; * cleaned up some macros * 11/04/90 RobertBu Added prototypes for macro binding functions for * menu functionality. * 11/04/90 Tomsn Use new VA address type (enabling zeck compression) * 12/08/90 RobertBu Added/changed prototypes for dealing with help-on files * 12/11/90 RobertBu GhGetHoh() -> FGetHohQch() * 12/18/90 RobertBu Added prototypes for functions to implement the Mark * macros and the conditional macros. * 01/04/90 LeoN Added FIsNSRHde * 90/01/10 kevynct Added Jump Descriptor * 02/04/91 Maha changed ints to INT * 05/16/91 LeoN HELP31 #1063: Add FmGetHde * 05/20/91 LeoN Add DiscardDLLList * 08/08/91 LeoN Add HelpOnTop() * 17-Dec-1991 RussPJ 3.1 #1285 - Added FRaiseMacroFlag(), etc. * *****************************************************************************/
/*****************************************************************************
* * Defines * *****************************************************************************/
/* CONSTANTS */
#define iINDEX 0L
#define nilCTX 0L
/* Possible vals for SCRLAMT */ #define SCROLL_PAGEUP 1
#define SCROLL_PAGEDN 2
#define SCROLL_LINEUP 3
#define SCROLL_LINEDN 4
#define SCROLL_HOME 5
#define SCROLL_END 6
/* Possible values for SCRLDIR (Scroll direction). Also specifies
which scroll bar is referred to in some Navigator calls. */ #define SCROLL_HORZ 1 /* Bit flags */
#define SCROLL_VERT 2
/* Constants for MouseInFrame() */ #define NAV_MOUSEMOVED WM_MOUSEMOVE
#define NAV_MOUSEDOWN WM_LBUTTONDOWN
#define NAV_MOUSEUP WM_LBUTTONUP
#define NAV_UNINITIALIZED 1 /* Internal to nav package */
#define NAV_NEXTABLE 2
#define NAV_PREVABLE 4
#define NAV_BACKABLE 8 /* If backtracking is possible */
#define NAV_FORWARDABLE 16 /* If not viewing the index */
#define NAV_INDEX 32
#define NAV_UDH 64
#define NAV_SEARCHABLE 128 /* Are there any keywords? */
#define NAV_TOPICFLAGS (NAV_NEXTABLE|NAV_PREVABLE|NAV_BACKABLE|NAV_FORWARDABLE \
|NAV_INDEX|NAV_UDH|NAV_SEARCHABLE)
#define NAV_ALLFLAGS (NAV_TOPICFLAGS)
/*
The value of bAnnoHotspot must differ from all valid hotspot types in objects.h because it is passed to JumpButton() as a parameter. */ #define bAnnoHotspot 0xB0
/* Messages to pass to NAV (via WNavMsgHde) */ #define NAV_NEXTHS 0 /* Move highlight to next hot spot */
#define NAV_PREVHS 1 /* Move highlight to prev hot spot */
#define NAV_HITHS 2 /* "Hit" highlighted hot spot */
#define NAV_TOTALHILITEON 3 /* Turn on all screen hotspots if off */
#define NAV_TOTALHILITEOFF 4 /* Turn off all screen hotspots if on */
/* Return values for passing message to NAV (via WNavMsgHde) */ #define wNavFailure 0
#define wNavSuccess 1
#define wNavNoHotspotsExist 2
#define wNavNoMoreHotspots 3
const int cchMAXBINDING = 512; // Maximum size of a macro string
/* Match manager navigation commands */ #define wNavSrchInit 1
#define wNavSrchFini 2
#define wNavSrchCurrTopic 3
#define wNavSrchFirstTopic 4
#define wNavSrchLastTopic 5
#define wNavSrchPrevTopic 6
#define wNavSrchNextTopic 7
#define wNavSrchPrevMatch 8
#define wNavSrchNextMatch 9
#define wNavSrchQuerySearchable 10
#define wNavSrchQueryHasMatches 11
#define wNavSrchHiliteOn 12
#define wNavSrchHiliteOff 13
#define VaFirstQde(qde) ((qde)->deType == deNSR ? \
((qde)->top.mtop.vaNSR) : ((qde)->top.mtop.vaSR))
#define VaMarkTopQde(qde) VaLayoutBoundsQde(qde, TRUE)
#define VaMarkBottomQde(qde) VaLayoutBoundsQde(qde, FALSE)
#define DwFirstSeqTopic(qde) ((DWORD)13) /* HACK!! This is sizeof(MBHD) */
#define DwNextSeqTopic(qde) ((qde)->top.mtop.vaNextSeqTopic.dword)
#define FIsNoteHde( hde ) ( deNote == GetDETypeHde( hde ) )
#define FIsTopicHde( hde ) ( deTopic == GetDETypeHde( hde ) )
#define FIsPrintHde( hde ) ( dePrint == GetDETypeHde( hde ) )
#define FIsCopyHde( hde ) ( deCopy == GetDETypeHde( hde ) )
#define FIsNSRHde( hde ) ( deNSR == GetDETypeHde( hde ) )
#define JumpQLA(hde, qla) JumpGeneric((hde), FALSE, (qla), NULL)
#define JumpTLP(hde, tlp) JumpGeneric((hde), TRUE, NULL, &(tlp))
#define JumpNextTopic(hde) \
do { LA la; INT ito; \ (FNextTopicHde(hde, TRUE, &ito, &la)) ? \ TopicGoto(fGOTO_ITO, &ito) : TopicGoto(fGOTO_LA, &la); \ } while ( 0 ) #define JumpPrevTopic(hde) \
do { LA la; INT ito; \ (FNextTopicHde(hde, FALSE, &ito, &la)) ? \ TopicGoto(fGOTO_ITO, &ito) : TopicGoto(fGOTO_LA, &la); \ } while ( 0 )
#define GetTLPNSRStartHde(hde, qtlp) FGetTLPStartInfo(hde, qtlp, TRUE)
#define GetTLPTopicStartHde(hde, qtlp) FGetTLPStartInfo(hde, qtlp, FALSE)
#define FTopicHasNSR(hde) FGetTLPStartInfo(hde, (QTLP) NULL, TRUE)
#define FTopicHasSR(hde) FGetTLPStartInfo(hde, (QTLP) NULL, FALSE)
/*****************************************************************************
* * Prototypes * *****************************************************************************/
#ifdef RAWHIDE
BOOL FAR PASCAL FRawhideSearchableHde(HDE); BOOL FAR PASCAL FSearchSetEmptyHde(HDE); RC_TYPE FAR PASCAL RcProcessNavSrchCmd(HDE, WORD, QLA); RC_TYPE FAR PASCAL RcCallSearch(HDE, HWND); RC_TYPE FAR PASCAL RcResetCurrMatchFile(HDE); #endif
VOID PASCAL About(VOID); VOID PASCAL Action(WORD); VOID PASCAL Annotate(VOID); VOID PASCAL Back(VOID); VOID PASCAL BacktrackHde( HDE, BOOL ); VOID PASCAL BookmarkDefine(VOID); VOID PASCAL BookmarkMore(VOID); VOID PASCAL BrowseButtons(VOID); DWORD PASCAL CbTopicQde(QDE); void PASCAL ClearMacroFlag( void ); VOID PASCAL CloseNav( VOID ); VOID PASCAL Command(WORD); VOID PASCAL ConfigMacrosHde(HDE); VOID PASCAL CopySpecial(VOID); VOID PASCAL DeleteMark(LPSTR); VOID PASCAL DestroyHde( HDE ); VOID PASCAL DiscardDLLList(VOID); VOID PASCAL doCopy(VOID); INT PASCAL DyGetLayoutHeightHde(HDE); VOID PASCAL Exit(VOID); BOOL PASCAL FActivateHelp(HDE, BOOL); BOOL PASCAL FDisplayAnnoHde(HDE); BOOL PASCAL FGetHohQch(HDE, LPSTR, WORD); BOOL PASCAL FGetStateHde( HDE, QSTATE, QSTATE ); BOOL PASCAL FGetTLPStartInfo(HDE, QTLP, BOOL); VOID PASCAL FileOpen(VOID); BOOL PASCAL FInitNav( VOID ); BOOL PASCAL FJumpContext(LPCSTR, DWORD); BOOL PASCAL FJumpHash(LPSTR, DWORD); BOOL PASCAL FJumpHOH(VOID); BOOL PASCAL FJumpId(LPSTR, LPSTR); BOOL PASCAL FJumpIndex(LPCSTR); BOOL PASCAL FMark(LPSTR); BOOL PASCAL FNextTopicHde(HDE, BOOL, int*, QLA); BOOL PASCAL FNot(BOOL); BOOL PASCAL FPopupCtx(LPCSTR, DWORD); BOOL PASCAL FPopupHash(LPSTR, DWORD); BOOL PASCAL FPopupId(LPSTR, LPSTR); BOOL PASCAL FRaiseMacroFlag( void ); BOOL PASCAL FSameFile(HDE, FM); BOOL PASCAL FSetIndex(LPSTR, DWORD); BOOL PASCAL FShowKey(LPSTR, LPSTR); BOOL PASCAL FTestMacroFlag( void ); BOOL PASCAL FWinHelp(LPCSTR, UINT, DWORD); VOID PASCAL GetCurrentTitleQde(QDE, LPSTR, INT); WORD PASCAL GetDETypeHde(HDE); VOID PASCAL GotoMark(LPSTR); HDE PASCAL HdeCreate(FM, HDE, short); VOID PASCAL HelpOn(VOID); VOID PASCAL HelpOnTop(VOID); VOID PASCAL History(VOID); VOID PASCAL IfThen(BOOL, LPSTR); VOID PASCAL IfThenElse(BOOL, LPSTR, LPSTR); VOID PASCAL Index(VOID); VOID PASCAL JumpButton (LPVOID, WORD, WORD); BOOL PASCAL JumpCtx(HDE, CTX); VOID PASCAL JumpGeneric(HDE, BOOL, QLA, QTLP); BOOL PASCAL JumpHash(HDE, int); VOID PASCAL JumpITO(HDE, int); VOID PASCAL JumpSS(HDE, GH); VOID PASCAL MouseInFrame( HDE, LPPOINT, INT ); VOID PASCAL Next(VOID); VOID PASCAL Prev(VOID); VOID PASCAL Print(VOID); VOID PASCAL Print(VOID); VOID PASCAL PrinterSetup(VOID); POINT PASCAL PtGetLayoutSizeHde(HDE); RECT PASCAL RctLastHotspotHde(HDE); VOID PASCAL RefreshHde( HDE, LPRECT ); VOID PASCAL SaveMark(LPSTR); VOID PASCAL Search(VOID); VOID PASCAL SetHdeCoBack (HDE, DWORD); VOID PASCAL SetHdeHwnd (HDE, HWND); VOID PASCAL SetHds( HDE, HDC ); VOID PASCAL SetHelpOn(LPSTR); VOID PASCAL SetIndex(HDE, CTX); VOID PASCAL SetSizeHdeQrct( HDE, LPRECT, BOOL ); STATE PASCAL StateGetHde(HDE); TLP PASCAL TLPCurrentHde(HDE); VA PASCAL VaLayoutBoundsQde(QDE, BOOL); WORD PASCAL WNavMsgHde(HDE, WORD); #endif
|