274 lines
9.4 KiB
C
274 lines
9.4 KiB
C
|
#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
|