Paul,
Here's my test code. The Hypertext file is needed (too long to post) and the code needs the book1 and book2 icons - although I had to draw 2 more as the ones used in the demo program look too small on my system (the help file says 16x16, although the open and closed book icons in the demo only take up the 16x16 area, they are 32x32 icons!). I drew open and closed books at 32x32 and they work quite nicely.
This whole lot is written in Fortran-77 style except for the multiple statements on one line that I closed up when originally preparing this to post. My list of help topics is very long - 53 items - so I have cut this down, and assumed you could find a 5-item hypertext file to use.
Regards
Eddie
OPTIONS (INTL)
WINAPP 300000, 500000, 'SS_icon.RC'
PROGRAM TEST
INCLUDE <WINDOWS.INS>
EXTERNAL NUDGE_TOPIC_FN, HelpNext_FN, HelpPrev_FN
CHARACTER*(35) TOPIC
CHARACTER*(35) OPTIONS(60), TOPICNAMES(60)
COMMON/HYP/IHelpHandle,IOPT,OPTIONS,TOPICNAMES,TOPIC
COMMON/HELPBUTTON/ NoNext, NoPrev, MAXTOPICS
CALL PRESET
CALL ADD_HYPERTEXT_RESOURCE@('SSHelp')
TOPIC=TOPICNAMES(1); L=LEN_TRIM(TOPIC)
NoNext=1; NoPrev=0; MAXTOPICS = 5
IA=WINIO@('%ca[Branch view with Help]%hw&',IHelpHandle)
IA=WINIO@('%mi[ICON_1]&')
IA=WINIO@('%sy[3d_thin,thin_border]&')
IA=WINIO@('%bg[btnface]&')
IA=WINIO@('%ob&')
IA=WINIO@('%^`bv[has_lines,has_buttons,paired_bitmaps,
& lines_at_root,show_selection_always]&',250,320,
& OPTIONS,52,IOPT,'BOOK1,BOOK2',NUDGE_TOPIC_FN)
IA=WINIO@('%cb&')
IA=WINIO@('%ob%`bg[white]%ob[invisible]&')
IA=WINIO@('%`bg[white]%60.20ht['//TOPIC(1:L)//']%cb%cb&')
IA=WINIO@('%ff%nl%cn%6bt[Close] &')
IA=WINIO@('%6~^bt[Previous] &',NoPrev,HelpPrev_FN)
IA=WINIO@('%6~^bt[Next]',NoNext,HelpNext_FN)
END
INTEGER FUNCTION NUDGE_TOPIC_FN()
INCLUDE <WINDOWS.INS>
CHARACTER*(35) OPTIONS(60), TOPICNAMES(60), TOPIC
COMMON/HYP/IHelpHandle,IOPT,OPTIONS,TOPICNAMES,TOPIC
TOPIC = TOPICNAMES (IOPT); L = LEN_TRIM (TOPIC)
CALL CHANGE_HYPERTEXT@(IHelpHandle,TOPIC(1:L))
NUDGE_TOPIC_FN = 1
RETURN
END
SUBROUTINE PRESET
CHARACTER*(35) OPTIONS(60), TOPICNAMES(60), TOPIC
COMMON/HYP/IHelpHandle,IOPT,OPTIONS,TOPICNAMES,TOPIC
OPTIONS( 1)='ACAIntroduction '
OPTIONS( 2)='BCAOptions '
OPTIONS( 3)='ACAColour '
OPTIONS( 4)='BCALines '
OPTIONS( 5)='BCAAreas '
TOPICNAMES( 1)='HELPINTRO '
TOPICNAMES( 2)='OPTIONS '
TOPICNAMES( 3)='COLOUR '
TOPICNAMES( 4)='LINES '
TOPICNAMES( 5)='AREAS '
RETURN
END
INTEGER FUNCTION HelpPrev_FN()
CHARACTER*(35) TOPIC
CHARACTER*(35) OPTIONS(60), TOPICNAMES(60)
COMMON/HYP/IHelpHandle,IOPT,OPTIONS,TOPICNAMES,TOPIC
COMMON/HELPBUTTON/ NoNext, NoPrev, MAXTOPICS
INCLUDE <WINDOWS.INS>
IOPT = MAX(1, IOPT-1)
IF (IOPT .EQ. 1) THEN
NoPrev = 0
NoNext = 1
Else
NoPrev = 1
NoNext = 1
ENDIF
TOPIC = TOPICNAMES (IOPT); L = LEN_TRIM (TOPIC)
CALL CHANGE_HYPERTEXT@(IHelpHandle,TOPIC(1:L))
CALL WINDOW_UPDATE@(IOPT)
HELPPREV_FN = 1
RETURN
END
INTEGER FUNCTION HelpNext_FN()
CHARACTER*(35) TOPIC
CHARACTER*(35) OPTIONS(60), TOPICNAMES(60)
COMMON/HYP/IHelpHandle,IOPT,OPTIONS,TOPICNAMES,TOPIC
COMMON/HELPBUTTON/ NoNext, NoPrev, MAXTOPICS
INCLUDE <WINDOWS.INS>
IOPT = MIN(MAXTOPICS, IOPT+1)
IF (IOPT .EQ. MAXTOPICS) THEN
NoNext = 0
NoPrev = 1
Else
NoNext = 1
NoPrev = 1
ENDIF
TOPIC = TOPICNAMES (IOPT); L = LEN_TRIM (TOPIC)
CALL CHANGE_HYPERTEXT@(IHelpHandle,TOPIC(1:L))
CALL WINDOW_UPDATE@(IOPT)
HELPNext_FN = 1
RETURN
END