Moved wxHtmlHelpFrame functionality to wxHtmlHelpWindow to allow

for embedded and modal help


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@36802 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2006-01-09 13:42:57 +00:00
parent 1737dac20a
commit 3755cfa64d
18 changed files with 3072 additions and 1953 deletions

View File

@@ -1135,7 +1135,9 @@ HTMLDLL_OBJECTS = \
$(__HTML_SRC_PLATFORM_OBJECTS_2) \
htmldll_helpctrl.o \
htmldll_helpdata.o \
htmldll_helpdlg.o \
htmldll_helpfrm.o \
htmldll_helpwin.o \
htmldll_htmlcell.o \
htmldll_htmlfilt.o \
htmldll_htmlpars.o \
@@ -1164,7 +1166,9 @@ HTMLLIB_OBJECTS = \
$(__HTML_SRC_PLATFORM_OBJECTS_3) \
htmllib_helpctrl.o \
htmllib_helpdata.o \
htmllib_helpdlg.o \
htmllib_helpfrm.o \
htmllib_helpwin.o \
htmllib_htmlcell.o \
htmllib_htmlfilt.o \
htmllib_htmlpars.o \
@@ -2958,7 +2962,9 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS = \
$(__HTML_SRC_PLATFORM_OBJECTS) \
monodll_helpctrl.o \
monodll_helpdata.o \
monodll_helpdlg.o \
monodll_helpfrm.o \
monodll_helpwin.o \
monodll_htmlcell.o \
monodll_htmlfilt.o \
monodll_htmlpars.o \
@@ -4440,7 +4446,9 @@ COND_USE_GUI_1___MONOLIB_GUI_SRC_OBJECTS_1 = \
$(__HTML_SRC_PLATFORM_OBJECTS_1) \
monolib_helpctrl.o \
monolib_helpdata.o \
monolib_helpdlg.o \
monolib_helpfrm.o \
monolib_helpwin.o \
monolib_htmlcell.o \
monolib_htmlfilt.o \
monolib_htmlpars.o \
@@ -10869,6 +10877,9 @@ monodll_helpctrl.o: $(srcdir)/src/html/helpctrl.cpp $(MONODLL_ODEP)
monodll_helpdata.o: $(srcdir)/src/html/helpdata.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/helpdata.cpp
monodll_helpdlg.o: $(srcdir)/src/html/helpdlg.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/helpdlg.cpp
monodll_helpfrm.o: $(srcdir)/src/html/helpfrm.cpp $(MONODLL_ODEP)
$(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/helpfrm.cpp
@@ -12375,6 +12386,9 @@ monodll_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1_WXUNIV_0@monodll_helpwin.o: $(srcdir)/src/os2/helpwin.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/os2/helpwin.cpp
@COND_USE_GUI_1@monodll_helpwin.o: $(srcdir)/src/html/helpwin.cpp $(MONODLL_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/html/helpwin.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monodll_automtn.o: $(srcdir)/src/msw/ole/automtn.cpp $(MONODLL_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONODLL_CXXFLAGS) $(srcdir)/src/msw/ole/automtn.cpp
@@ -14364,6 +14378,9 @@ monolib_helpctrl.o: $(srcdir)/src/html/helpctrl.cpp $(MONOLIB_ODEP)
monolib_helpdata.o: $(srcdir)/src/html/helpdata.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/helpdata.cpp
monolib_helpdlg.o: $(srcdir)/src/html/helpdlg.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/helpdlg.cpp
monolib_helpfrm.o: $(srcdir)/src/html/helpfrm.cpp $(MONOLIB_ODEP)
$(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/helpfrm.cpp
@@ -15870,6 +15887,9 @@ monolib_sound_sdl.o: $(srcdir)/src/unix/sound_sdl.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1_WXUNIV_0@monolib_helpwin.o: $(srcdir)/src/os2/helpwin.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_PM_USE_GUI_1_WXUNIV_0@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/os2/helpwin.cpp
@COND_USE_GUI_1@monolib_helpwin.o: $(srcdir)/src/html/helpwin.cpp $(MONOLIB_ODEP)
@COND_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/html/helpwin.cpp
@COND_TOOLKIT_MSW_USE_GUI_1@monolib_automtn.o: $(srcdir)/src/msw/ole/automtn.cpp $(MONOLIB_ODEP)
@COND_TOOLKIT_MSW_USE_GUI_1@ $(CXXC) -c -o $@ $(MONOLIB_CXXFLAGS) $(srcdir)/src/msw/ole/automtn.cpp
@@ -24051,9 +24071,15 @@ htmldll_helpctrl.o: $(srcdir)/src/html/helpctrl.cpp $(HTMLDLL_ODEP)
htmldll_helpdata.o: $(srcdir)/src/html/helpdata.cpp $(HTMLDLL_ODEP)
$(CXXC) -c -o $@ $(HTMLDLL_CXXFLAGS) $(srcdir)/src/html/helpdata.cpp
htmldll_helpdlg.o: $(srcdir)/src/html/helpdlg.cpp $(HTMLDLL_ODEP)
$(CXXC) -c -o $@ $(HTMLDLL_CXXFLAGS) $(srcdir)/src/html/helpdlg.cpp
htmldll_helpfrm.o: $(srcdir)/src/html/helpfrm.cpp $(HTMLDLL_ODEP)
$(CXXC) -c -o $@ $(HTMLDLL_CXXFLAGS) $(srcdir)/src/html/helpfrm.cpp
htmldll_helpwin.o: $(srcdir)/src/html/helpwin.cpp $(HTMLDLL_ODEP)
$(CXXC) -c -o $@ $(HTMLDLL_CXXFLAGS) $(srcdir)/src/html/helpwin.cpp
htmldll_htmlcell.o: $(srcdir)/src/html/htmlcell.cpp $(HTMLDLL_ODEP)
$(CXXC) -c -o $@ $(HTMLDLL_CXXFLAGS) $(srcdir)/src/html/htmlcell.cpp
@@ -24123,9 +24149,15 @@ htmllib_helpctrl.o: $(srcdir)/src/html/helpctrl.cpp $(HTMLLIB_ODEP)
htmllib_helpdata.o: $(srcdir)/src/html/helpdata.cpp $(HTMLLIB_ODEP)
$(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/helpdata.cpp
htmllib_helpdlg.o: $(srcdir)/src/html/helpdlg.cpp $(HTMLLIB_ODEP)
$(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/helpdlg.cpp
htmllib_helpfrm.o: $(srcdir)/src/html/helpfrm.cpp $(HTMLLIB_ODEP)
$(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/helpfrm.cpp
htmllib_helpwin.o: $(srcdir)/src/html/helpwin.cpp $(HTMLLIB_ODEP)
$(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/helpwin.cpp
htmllib_htmlcell.o: $(srcdir)/src/html/htmlcell.cpp $(HTMLLIB_ODEP)
$(CXXC) -c -o $@ $(HTMLLIB_CXXFLAGS) $(srcdir)/src/html/htmlcell.cpp

View File

@@ -2545,7 +2545,9 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
$(HTML_SRC_PLATFORM)
src/html/helpctrl.cpp
src/html/helpdata.cpp
src/html/helpdlg.cpp
src/html/helpfrm.cpp
src/html/helpwin.cpp
src/html/htmlcell.cpp
src/html/htmlfilt.cpp
src/html/htmlpars.cpp

View File

@@ -770,7 +770,9 @@ HTMLDLL_OBJECTS = \
$(OBJS)\htmldll_helpbest.obj \
$(OBJS)\htmldll_helpctrl.obj \
$(OBJS)\htmldll_helpdata.obj \
$(OBJS)\htmldll_helpdlg.obj \
$(OBJS)\htmldll_helpfrm.obj \
$(OBJS)\htmldll_helpwin.obj \
$(OBJS)\htmldll_htmlcell.obj \
$(OBJS)\htmldll_htmlfilt.obj \
$(OBJS)\htmldll_htmlpars.obj \
@@ -801,7 +803,9 @@ HTMLLIB_OBJECTS = \
$(OBJS)\htmllib_helpbest.obj \
$(OBJS)\htmllib_helpctrl.obj \
$(OBJS)\htmllib_helpdata.obj \
$(OBJS)\htmllib_helpdlg.obj \
$(OBJS)\htmllib_helpfrm.obj \
$(OBJS)\htmllib_helpwin.obj \
$(OBJS)\htmllib_htmlcell.obj \
$(OBJS)\htmllib_htmlfilt.obj \
$(OBJS)\htmllib_htmlpars.obj \
@@ -1062,7 +1066,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_helpbest.obj \
$(OBJS)\monodll_helpctrl.obj \
$(OBJS)\monodll_helpdata.obj \
$(OBJS)\monodll_helpdlg.obj \
$(OBJS)\monodll_helpfrm.obj \
$(OBJS)\monodll_helpwin.obj \
$(OBJS)\monodll_htmlcell.obj \
$(OBJS)\monodll_htmlfilt.obj \
$(OBJS)\monodll_htmlpars.obj \
@@ -1588,7 +1594,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_helpbest.obj \
$(OBJS)\monolib_helpctrl.obj \
$(OBJS)\monolib_helpdata.obj \
$(OBJS)\monolib_helpdlg.obj \
$(OBJS)\monolib_helpfrm.obj \
$(OBJS)\monolib_helpwin.obj \
$(OBJS)\monolib_htmlcell.obj \
$(OBJS)\monolib_htmlfilt.obj \
$(OBJS)\monolib_htmlpars.obj \
@@ -4419,6 +4427,9 @@ $(OBJS)\monodll_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\monodll_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -4862,6 +4873,11 @@ $(OBJS)\monodll_helpwin.obj: ..\..\src\msw\helpwin.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_automtn.obj: ..\..\src\msw\ole\automtn.cpp
$(CXX) -q -c -P -o$@ $(MONODLL_CXXFLAGS) $**
@@ -6143,6 +6159,9 @@ $(OBJS)\monolib_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\monolib_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -6586,6 +6605,11 @@ $(OBJS)\monolib_helpwin.obj: ..\..\src\msw\helpwin.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_automtn.obj: ..\..\src\msw\ole\automtn.cpp
$(CXX) -q -c -P -o$@ $(MONOLIB_CXXFLAGS) $**
@@ -10493,9 +10517,15 @@ $(OBJS)\htmldll_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\htmldll_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) -q -c -P -o$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) -q -c -P -o$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) -q -c -P -o$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) -q -c -P -o$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_htmlcell.obj: ..\..\src\html\htmlcell.cpp
$(CXX) -q -c -P -o$@ $(HTMLDLL_CXXFLAGS) $**
@@ -10562,9 +10592,15 @@ $(OBJS)\htmllib_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\htmllib_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) -q -c -P -o$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) -q -c -P -o$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) -q -c -P -o$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) -q -c -P -o$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_htmlcell.obj: ..\..\src\html\htmlcell.cpp
$(CXX) -q -c -P -o$@ $(HTMLLIB_CXXFLAGS) $**

View File

@@ -767,7 +767,9 @@ HTMLDLL_OBJECTS = \
$(OBJS)\htmldll_helpbest.o \
$(OBJS)\htmldll_helpctrl.o \
$(OBJS)\htmldll_helpdata.o \
$(OBJS)\htmldll_helpdlg.o \
$(OBJS)\htmldll_helpfrm.o \
$(OBJS)\htmldll_helpwin.o \
$(OBJS)\htmldll_htmlcell.o \
$(OBJS)\htmldll_htmlfilt.o \
$(OBJS)\htmldll_htmlpars.o \
@@ -799,7 +801,9 @@ HTMLLIB_OBJECTS = \
$(OBJS)\htmllib_helpbest.o \
$(OBJS)\htmllib_helpctrl.o \
$(OBJS)\htmllib_helpdata.o \
$(OBJS)\htmllib_helpdlg.o \
$(OBJS)\htmllib_helpfrm.o \
$(OBJS)\htmllib_helpwin.o \
$(OBJS)\htmllib_htmlcell.o \
$(OBJS)\htmllib_htmlfilt.o \
$(OBJS)\htmllib_htmlpars.o \
@@ -1071,7 +1075,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_helpbest.o \
$(OBJS)\monodll_helpctrl.o \
$(OBJS)\monodll_helpdata.o \
$(OBJS)\monodll_helpdlg.o \
$(OBJS)\monodll_helpfrm.o \
$(OBJS)\monodll_helpwin.o \
$(OBJS)\monodll_htmlcell.o \
$(OBJS)\monodll_htmlfilt.o \
$(OBJS)\monodll_htmlpars.o \
@@ -1603,7 +1609,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_helpbest.o \
$(OBJS)\monolib_helpctrl.o \
$(OBJS)\monolib_helpdata.o \
$(OBJS)\monolib_helpdlg.o \
$(OBJS)\monolib_helpfrm.o \
$(OBJS)\monolib_helpwin.o \
$(OBJS)\monolib_htmlcell.o \
$(OBJS)\monolib_htmlfilt.o \
$(OBJS)\monolib_htmlpars.o \
@@ -4514,6 +4522,9 @@ $(OBJS)\monodll_helpctrl.o: ../../src/html/helpctrl.cpp
$(OBJS)\monodll_helpdata.o: ../../src/html/helpdata.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_helpdlg.o: ../../src/html/helpdlg.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monodll_helpfrm.o: ../../src/html/helpfrm.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -4957,6 +4968,11 @@ $(OBJS)\monodll_helpwin.o: ../../src/msw/helpwin.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_helpwin.o: ../../src/html/helpwin.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monodll_automtn.o: ../../src/msw/ole/automtn.cpp
$(CXX) -c -o $@ $(MONODLL_CXXFLAGS) $(CPPDEPS) $<
@@ -6338,6 +6354,9 @@ $(OBJS)\monolib_helpctrl.o: ../../src/html/helpctrl.cpp
$(OBJS)\monolib_helpdata.o: ../../src/html/helpdata.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_helpdlg.o: ../../src/html/helpdlg.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\monolib_helpfrm.o: ../../src/html/helpfrm.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -6781,6 +6800,11 @@ $(OBJS)\monolib_helpwin.o: ../../src/msw/helpwin.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_helpwin.o: ../../src/html/helpwin.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
endif
ifeq ($(USE_GUI),1)
$(OBJS)\monolib_automtn.o: ../../src/msw/ole/automtn.cpp
$(CXX) -c -o $@ $(MONOLIB_CXXFLAGS) $(CPPDEPS) $<
@@ -10988,9 +11012,15 @@ $(OBJS)\htmldll_helpctrl.o: ../../src/html/helpctrl.cpp
$(OBJS)\htmldll_helpdata.o: ../../src/html/helpdata.cpp
$(CXX) -c -o $@ $(HTMLDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmldll_helpdlg.o: ../../src/html/helpdlg.cpp
$(CXX) -c -o $@ $(HTMLDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmldll_helpfrm.o: ../../src/html/helpfrm.cpp
$(CXX) -c -o $@ $(HTMLDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmldll_helpwin.o: ../../src/html/helpwin.cpp
$(CXX) -c -o $@ $(HTMLDLL_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmldll_htmlcell.o: ../../src/html/htmlcell.cpp
$(CXX) -c -o $@ $(HTMLDLL_CXXFLAGS) $(CPPDEPS) $<
@@ -11057,9 +11087,15 @@ $(OBJS)\htmllib_helpctrl.o: ../../src/html/helpctrl.cpp
$(OBJS)\htmllib_helpdata.o: ../../src/html/helpdata.cpp
$(CXX) -c -o $@ $(HTMLLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmllib_helpdlg.o: ../../src/html/helpdlg.cpp
$(CXX) -c -o $@ $(HTMLLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmllib_helpfrm.o: ../../src/html/helpfrm.cpp
$(CXX) -c -o $@ $(HTMLLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmllib_helpwin.o: ../../src/html/helpwin.cpp
$(CXX) -c -o $@ $(HTMLLIB_CXXFLAGS) $(CPPDEPS) $<
$(OBJS)\htmllib_htmlcell.o: ../../src/html/htmlcell.cpp
$(CXX) -c -o $@ $(HTMLLIB_CXXFLAGS) $(CPPDEPS) $<

View File

@@ -831,7 +831,9 @@ HTMLDLL_OBJECTS = \
$(OBJS)\htmldll_helpbest.obj \
$(OBJS)\htmldll_helpctrl.obj \
$(OBJS)\htmldll_helpdata.obj \
$(OBJS)\htmldll_helpdlg.obj \
$(OBJS)\htmldll_helpfrm.obj \
$(OBJS)\htmldll_helpwin.obj \
$(OBJS)\htmldll_htmlcell.obj \
$(OBJS)\htmldll_htmlfilt.obj \
$(OBJS)\htmldll_htmlpars.obj \
@@ -865,7 +867,9 @@ HTMLLIB_OBJECTS = \
$(OBJS)\htmllib_helpbest.obj \
$(OBJS)\htmllib_helpctrl.obj \
$(OBJS)\htmllib_helpdata.obj \
$(OBJS)\htmllib_helpdlg.obj \
$(OBJS)\htmllib_helpfrm.obj \
$(OBJS)\htmllib_helpwin.obj \
$(OBJS)\htmllib_htmlcell.obj \
$(OBJS)\htmllib_htmlfilt.obj \
$(OBJS)\htmllib_htmlpars.obj \
@@ -1220,7 +1224,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = \
$(OBJS)\monodll_helpbest.obj \
$(OBJS)\monodll_helpctrl.obj \
$(OBJS)\monodll_helpdata.obj \
$(OBJS)\monodll_helpdlg.obj \
$(OBJS)\monodll_helpfrm.obj \
$(OBJS)\monodll_helpwin.obj \
$(OBJS)\monodll_htmlcell.obj \
$(OBJS)\monodll_htmlfilt.obj \
$(OBJS)\monodll_htmlpars.obj \
@@ -1752,7 +1758,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = \
$(OBJS)\monolib_helpbest.obj \
$(OBJS)\monolib_helpctrl.obj \
$(OBJS)\monolib_helpdata.obj \
$(OBJS)\monolib_helpdlg.obj \
$(OBJS)\monolib_helpfrm.obj \
$(OBJS)\monolib_helpwin.obj \
$(OBJS)\monolib_htmlcell.obj \
$(OBJS)\monolib_htmlfilt.obj \
$(OBJS)\monolib_htmlpars.obj \
@@ -4727,6 +4735,9 @@ $(OBJS)\monodll_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\monodll_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
$(OBJS)\monodll_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -5170,6 +5181,11 @@ $(OBJS)\monodll_helpwin.obj: ..\..\src\msw\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monodll_automtn.obj: ..\..\src\msw\ole\automtn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONODLL_CXXFLAGS) $**
@@ -6451,6 +6467,9 @@ $(OBJS)\monolib_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\monolib_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
$(OBJS)\monolib_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -6894,6 +6913,11 @@ $(OBJS)\monolib_helpwin.obj: ..\..\src\msw\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
!endif
!if "$(USE_GUI)" == "1"
$(OBJS)\monolib_automtn.obj: ..\..\src\msw\ole\automtn.cpp
$(CXX) /c /nologo /TP /Fo$@ $(MONOLIB_CXXFLAGS) $**
@@ -10801,9 +10825,15 @@ $(OBJS)\htmldll_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\htmldll_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLDLL_CXXFLAGS) $**
$(OBJS)\htmldll_htmlcell.obj: ..\..\src\html\htmlcell.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLDLL_CXXFLAGS) $**
@@ -10870,9 +10900,15 @@ $(OBJS)\htmllib_helpctrl.obj: ..\..\src\html\helpctrl.cpp
$(OBJS)\htmllib_helpdata.obj: ..\..\src\html\helpdata.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpdlg.obj: ..\..\src\html\helpdlg.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpfrm.obj: ..\..\src\html\helpfrm.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_helpwin.obj: ..\..\src\html\helpwin.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLLIB_CXXFLAGS) $**
$(OBJS)\htmllib_htmlcell.obj: ..\..\src\html\htmlcell.cpp
$(CXX) /c /nologo /TP /Fo$@ $(HTMLLIB_CXXFLAGS) $**

View File

@@ -106,7 +106,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_OBJECTS = &
$(OBJS)\monodll_helpbest.obj &
$(OBJS)\monodll_helpctrl.obj &
$(OBJS)\monodll_helpdata.obj &
$(OBJS)\monodll_helpdlg.obj &
$(OBJS)\monodll_helpfrm.obj &
$(OBJS)\monodll_helpwin.obj &
$(OBJS)\monodll_htmlcell.obj &
$(OBJS)\monodll_htmlfilt.obj &
$(OBJS)\monodll_htmlpars.obj &
@@ -642,7 +644,9 @@ ____MONOLIB_GUI_SRC_FILENAMES_1_OBJECTS = &
$(OBJS)\monolib_helpbest.obj &
$(OBJS)\monolib_helpctrl.obj &
$(OBJS)\monolib_helpdata.obj &
$(OBJS)\monolib_helpdlg.obj &
$(OBJS)\monolib_helpfrm.obj &
$(OBJS)\monolib_helpwin.obj &
$(OBJS)\monolib_htmlcell.obj &
$(OBJS)\monolib_htmlfilt.obj &
$(OBJS)\monolib_htmlpars.obj &
@@ -3156,7 +3160,9 @@ HTMLDLL_OBJECTS = &
$(OBJS)\htmldll_helpbest.obj &
$(OBJS)\htmldll_helpctrl.obj &
$(OBJS)\htmldll_helpdata.obj &
$(OBJS)\htmldll_helpdlg.obj &
$(OBJS)\htmldll_helpfrm.obj &
$(OBJS)\htmldll_helpwin.obj &
$(OBJS)\htmldll_htmlcell.obj &
$(OBJS)\htmldll_htmlfilt.obj &
$(OBJS)\htmldll_htmlpars.obj &
@@ -3188,7 +3194,9 @@ HTMLLIB_OBJECTS = &
$(OBJS)\htmllib_helpbest.obj &
$(OBJS)\htmllib_helpctrl.obj &
$(OBJS)\htmllib_helpdata.obj &
$(OBJS)\htmllib_helpdlg.obj &
$(OBJS)\htmllib_helpfrm.obj &
$(OBJS)\htmllib_helpwin.obj &
$(OBJS)\htmllib_htmlcell.obj &
$(OBJS)\htmllib_htmlfilt.obj &
$(OBJS)\htmllib_htmlpars.obj &
@@ -4714,6 +4722,9 @@ $(OBJS)\monodll_helpctrl.obj : .AUTODEPEND ..\..\src\html\helpctrl.cpp
$(OBJS)\monodll_helpdata.obj : .AUTODEPEND ..\..\src\html\helpdata.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_helpdlg.obj : .AUTODEPEND ..\..\src\html\helpdlg.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
$(OBJS)\monodll_helpfrm.obj : .AUTODEPEND ..\..\src\html\helpfrm.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -5157,6 +5168,11 @@ $(OBJS)\monodll_helpwin.obj : .AUTODEPEND ..\..\src\msw\helpwin.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_helpwin.obj : .AUTODEPEND ..\..\src\html\helpwin.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monodll_automtn.obj : .AUTODEPEND ..\..\src\msw\ole\automtn.cpp
$(CXX) -zq -fo=$^@ $(MONODLL_CXXFLAGS) $<
@@ -6538,6 +6554,9 @@ $(OBJS)\monolib_helpctrl.obj : .AUTODEPEND ..\..\src\html\helpctrl.cpp
$(OBJS)\monolib_helpdata.obj : .AUTODEPEND ..\..\src\html\helpdata.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_helpdlg.obj : .AUTODEPEND ..\..\src\html\helpdlg.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
$(OBJS)\monolib_helpfrm.obj : .AUTODEPEND ..\..\src\html\helpfrm.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -6981,6 +7000,11 @@ $(OBJS)\monolib_helpwin.obj : .AUTODEPEND ..\..\src\msw\helpwin.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_helpwin.obj : .AUTODEPEND ..\..\src\html\helpwin.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
!endif
!ifeq USE_GUI 1
$(OBJS)\monolib_automtn.obj : .AUTODEPEND ..\..\src\msw\ole\automtn.cpp
$(CXX) -zq -fo=$^@ $(MONOLIB_CXXFLAGS) $<
@@ -11188,9 +11212,15 @@ $(OBJS)\htmldll_helpctrl.obj : .AUTODEPEND ..\..\src\html\helpctrl.cpp
$(OBJS)\htmldll_helpdata.obj : .AUTODEPEND ..\..\src\html\helpdata.cpp
$(CXX) -zq -fo=$^@ $(HTMLDLL_CXXFLAGS) $<
$(OBJS)\htmldll_helpdlg.obj : .AUTODEPEND ..\..\src\html\helpdlg.cpp
$(CXX) -zq -fo=$^@ $(HTMLDLL_CXXFLAGS) $<
$(OBJS)\htmldll_helpfrm.obj : .AUTODEPEND ..\..\src\html\helpfrm.cpp
$(CXX) -zq -fo=$^@ $(HTMLDLL_CXXFLAGS) $<
$(OBJS)\htmldll_helpwin.obj : .AUTODEPEND ..\..\src\html\helpwin.cpp
$(CXX) -zq -fo=$^@ $(HTMLDLL_CXXFLAGS) $<
$(OBJS)\htmldll_htmlcell.obj : .AUTODEPEND ..\..\src\html\htmlcell.cpp
$(CXX) -zq -fo=$^@ $(HTMLDLL_CXXFLAGS) $<
@@ -11257,9 +11287,15 @@ $(OBJS)\htmllib_helpctrl.obj : .AUTODEPEND ..\..\src\html\helpctrl.cpp
$(OBJS)\htmllib_helpdata.obj : .AUTODEPEND ..\..\src\html\helpdata.cpp
$(CXX) -zq -fo=$^@ $(HTMLLIB_CXXFLAGS) $<
$(OBJS)\htmllib_helpdlg.obj : .AUTODEPEND ..\..\src\html\helpdlg.cpp
$(CXX) -zq -fo=$^@ $(HTMLLIB_CXXFLAGS) $<
$(OBJS)\htmllib_helpfrm.obj : .AUTODEPEND ..\..\src\html\helpfrm.cpp
$(CXX) -zq -fo=$^@ $(HTMLLIB_CXXFLAGS) $<
$(OBJS)\htmllib_helpwin.obj : .AUTODEPEND ..\..\src\html\helpwin.cpp
$(CXX) -zq -fo=$^@ $(HTMLLIB_CXXFLAGS) $<
$(OBJS)\htmllib_htmlcell.obj : .AUTODEPEND ..\..\src\html\htmlcell.cpp
$(CXX) -zq -fo=$^@ $(HTMLLIB_CXXFLAGS) $<

View File

@@ -545,10 +545,18 @@ SOURCE=..\..\src\html\helpdata.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\html\helpdlg.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\html\helpfrm.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\html\helpwin.cpp
# End Source File
# Begin Source File
SOURCE=..\..\src\html\htmlcell.cpp
# End Source File
# Begin Source File

View File

@@ -5,10 +5,6 @@
\section{\class{wxHtmlHelpController}}\label{wxhtmlhelpcontroller}
{\bf WARNING!} Although this class has an API compatible with other wxWidgets
help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it
is recommended that you use the enhanced capabilities of wxHtmlHelpController's API.
This help controller provides an easy way of displaying HTML help in your
application (see {\it test} sample). The help system is based on {\bf books}
(see \helpref{AddBook}{wxhtmlhelpcontrolleraddbook}). A book is a logical
@@ -16,12 +12,16 @@ section of documentation (for example "User's Guide" or "Programmer's Guide" or
"C++ Reference" or "wxWidgets Reference"). The help controller can handle as
many books as you want.
Although this class has an API compatible with other wxWidgets
help controllers as documented by \helpref{wxHelpController}{wxhelpcontroller}, it
is recommended that you use the enhanced capabilities of wxHtmlHelpController's API.
wxHTML uses Microsoft's HTML Help Workshop project files (.hhp, .hhk, .hhc) as its
native format. The file format is described \helpref{here}{helpformat}.
Have a look at docs/html/ directory where sample project files are stored.
You can use Tex2RTF to produce these files when generating HTML, if you set {\bf htmlWorkshopFiles} to {\bf true} in
your tex2rtf.ini file.
your tex2rtf.ini file. The commercial tool HelpBlocks (www.helpblocks.com) can also create these files.
\wxheading{Note}
@@ -34,7 +34,11 @@ sample for demonstration of its use.
\wxheading{See also}
\helpref{Information about wxBestHelpController}{wxhelpcontroller}
\helpref{Information about wxBestHelpController}{wxhelpcontroller},
\helpref{wxHtmlHelpFrame}{wxhtmlhelpframe},
\helpref{wxHtmlHelpDialog}{wxhtmlhelpdialog},
\helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow},
\helpref{wxHtmlModalHelp}{wxhtmlmodalhelp}
\wxheading{Derived from}
@@ -48,24 +52,24 @@ wxHelpControllerBase
\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}}
\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxWindow* }{parentWindow = NULL}}
Constructor.
\wxheading{Parameters}
{\it style} is combination of these flags:
{\it style} is a combination of these flags:
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{Help frame has contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allow user to open arbitrary HTML document.}
\twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.}
\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{Contents pane does not show
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{The help window has a toolbar.}
\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{The help window has a toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{The help window has a contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{The help window has an index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{The help window has a search panel.}
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{The help window has bookmarks controls.}
\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allows user to open arbitrary HTML document.}
\twocolitem{\windowstyle{wxHF\_PRINT}}{The toolbar contains "print" button.}
\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{The contents pane does not show
book nodes. All books are merged together and appear as single book to the
user.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane
@@ -75,32 +79,38 @@ a book icon, book's sections have a folder icon. This is the default.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and
nodes of top-level sections of a book (i.e. chapters) have a book icon,
all other sections (sections, subsections, ...) have a folder icon.}
\twocolitem{\windowstyle{wxHF\_EMBEDDED}}{Specifies that the help controller controls an embedded window of class \helpref{wxHtmlHelpWindow}{wxhtmlhelpwindow} that
should not be destroyed when the controller is destroyed.}
\twocolitem{\windowstyle{wxHF\_DIALOG}}{Specifies that the help controller should create a dialog containing the help window.}
\twocolitem{\windowstyle{wxHF\_FRAME}}{Specifies that the help controller should create a frame containing the help window. This is the default if neither wxHF\_DIALOG nor wxHF\_EMBEDDED is specified.}
\twocolitem{\windowstyle{wxHF\_MODAL}}{Specifies that the help controller should create a modal dialog containing the help window (used with the wxHF\_DIALOG style).}
\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS
| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}}
\end{twocollist}
{\it parentWindow} is an optional window to be used as the parent for the help window.
\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
\func{bool}{AddBook}{\param{const wxFileName\& }{book\_file}, \param{bool }{show\_wait\_msg}}
\func{bool}{AddBook}{\param{const wxFileName\& }{bookFile}, \param{bool }{showWaitMsg}}
\func{bool}{AddBook}{\param{const wxString\& }{book\_url}, \param{bool }{show\_wait\_msg}}
\func{bool}{AddBook}{\param{const wxString\& }{bookUrl}, \param{bool }{showWaitMsg}}
Adds book (\helpref{.hhp file}{helpformat} - HTML Help Workshop project file) into the list of loaded books.
This must be called at least once before displaying any help.
{\it book\_file} or {\it book\_url} may be either .hhp file or ZIP archive
{\it bookFile} or {\it bookUrl} may be either .hhp file or ZIP archive
that contains arbitrary number of .hhp files in
top-level directory. This ZIP archive must have .zip or .htb extension
(the latter stands for "HTML book"). In other words,
{\tt AddBook(wxFileName("help.zip"))}
is possible and, in fact, recommended way.
(the latter stands for "HTML book"). In other words, {\tt AddBook(wxFileName("help.zip"))}
is possible and is the recommended way.
\wxheading{Parameters}
\docparam{show\_wait\_msg}{If true then a decoration-less window with progress message is displayed.}
\docparam{book\_file}{Help book filename. It is recommended to use this prototype
\docparam{showWaitMsg}{If true then a decoration-less window with progress message is displayed.}
\docparam{bookFile}{Help book filename. It is recommended to use this prototype
instead of the one taking URL, because it is less error-prone.}
\docparam{book\_url}{Help book URL (note that syntax of filename and URL is
\docparam{bookUrl}{Help book URL (note that syntax of filename and URL is
different on most platforms)}
\wxheading{Note}
@@ -109,13 +119,19 @@ Don't forget to install wxFileSystem ZIP handler with
{\tt wxFileSystem::AddHandler(new wxZipFSHandler);} before calling this method
on a .zip or .htb file!
\membersection{wxHtmlHelpController::CreateHelpDialog}\label{wxhtmlhelpcontrollercreatehelpdialog}
\func{virtual wxHtmlHelpDialog*}{CreateHelpDialog}{\param{wxHtmlHelpData * }{data}}
This protected virtual method may be overridden so that when specifying the wxHF\_DIALOG style, the controller
uses a different dialog.
\membersection{wxHtmlHelpController::CreateHelpFrame}\label{wxhtmlhelpcontrollercreatehelpframe}
\func{virtual wxHtmlHelpFrame*}{CreateHelpFrame}{\param{wxHtmlHelpData * }{data}}
This protected virtual method may be overridden so that the controller
uses slightly different frame. See {\it samples/html/helpview} sample for
an example.
uses a different frame.
\membersection{wxHtmlHelpController::Display}\label{wxhtmlhelpcontrollerdisplay}

View File

@@ -3,6 +3,79 @@
% helpfrm.h at 24/Oct/99 18:03:10
%
\section{\class{wxHtmlHelpDialog}}\label{wxhtmlhelpdialog}
This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
to display help.
It is an internal class and should not be used directly - except for the case
when you're writing your own HTML help controller.
\wxheading{Derived from}
\helpref{wxFrame}{wxframe}
\wxheading{Include files}
<wx/html/helpdlg.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpDialog::wxHtmlHelpDialog}\label{wxhtmlhelpdialogwxhtmlhelpdialog}
\func{}{wxHtmlHelpDialog}{\param{wxHtmlHelpData* }{data = NULL}}
\func{}{wxHtmlHelpDialog}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}}
Constructor. For the values of {\it style}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}.
\membersection{wxHtmlHelpDialog::AddToolbarButtons}\label{wxhtmlhelpdialogaddtoolbarbuttons}
\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}}
You may override this virtual method to add more buttons to the help window's
toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style
flag as passed to the Create method.
wxToolBar::Realize is called immediately after returning from this function.
\membersection{wxHtmlHelpDialog::Create}\label{wxhtmlhelpdialogcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}}
Creates the dialog. See \helpref{the constructor}{wxhtmlhelpdialogwxhtmlhelpdialog}
for a description of the parameters.
\membersection{wxHtmlHelpDialog::GetController}\label{wxhtmlhelpdialoggetcontroller}
\constfunc{wxHtmlHelpController* }{GetController}{\void}
Returns the help controller associated with the dialog.
\membersection{wxHtmlHelpDialog::ReadCustomization}\label{wxhtmlhelpdialogreadcustomization}
\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Reads the user's settings for this dialog see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization})
\membersection{wxHtmlHelpDialog::SetController}\label{wxhtmlhelpdialogsetcontroller}
\func{void}{SetController}{\param{wxHtmlHelpController* }{contoller}}
Sets the help controller associated with the dialog.
\membersection{wxHtmlHelpDialog::SetTitleFormat}\label{wxhtmlhelpdialogsettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
Sets the dialog's title format. {\it format} must contain exactly one "\%s"
(it will be replaced by the page title).
\membersection{wxHtmlHelpDialog::WriteCustomization}\label{wxhtmlhelpdialogwritecustomization}
\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Saves the user's settings for this dialog (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}).
\section{\class{wxHtmlHelpFrame}}\label{wxhtmlhelpframe}
This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
@@ -26,41 +99,107 @@ when you're writing your own HTML help controller.
\func{}{wxHtmlHelpFrame}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}}
Constructor.
Constructor. For the values of {\it style}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}.
{\it style} is combination of these flags:
\membersection{wxHtmlHelpFrame::AddToolbarButtons}\label{wxhtmlhelpframeaddtoolbarbuttons}
\begin{twocollist}\itemsep=0pt
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
\twocolitem{\windowstyle{wxHF\_FLAT\_TOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).}
\twocolitem{\windowstyle{wxHF\_CONTENTS}}{Help frame has contents panel.}
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
\twocolitem{\windowstyle{wxHF\_OPEN\_FILES}}{Allow user to open arbitrary HTML document.}
\twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.}
\twocolitem{\windowstyle{wxHF\_MERGE\_BOOKS}}{Contents pane does not show
book nodes. All books are merged together and appear as single book to the
user.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK}}{All nodes in contents pane
have a book icon. This is how Microsoft's HTML help viewer behaves.}
\twocolitem{\windowstyle{wxHF\_ICONS\_FOLDER}}{Book nodes in contents pane have
a book icon, book's sections have a folder icon. This is the default.}
\twocolitem{\windowstyle{wxHF\_ICONS\_BOOK\_CHAPTER}}{Both book nodes and
nodes of top-level sections of a book (i.e. chapters) have a book icon,
all other sections (sections, subsections, ...) have a folder icon.}
\twocolitem{\windowstyle{wxHF\_DEFAULT\_STYLE}}{{\tt wxHF\_TOOLBAR | wxHF\_CONTENTS
| wxHF\_INDEX | wxHF\_SEARCH | wxHF\_BOOKMARKS | wxHF\_PRINT}}
\end{twocollist}
\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}}
You may override this virtual method to add more buttons to the help window's
toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style
flag as passed to the Create method.
wxToolBar::Realize is called immediately after returning from this function.
\membersection{wxHtmlHelpFrame::Create}\label{wxhtmlhelpframecreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}}
Creates the frame. See \helpref{the constructor}{wxhtmlhelpframewxhtmlhelpframe}
for parameters description.
for a description of the parameters.
\membersection{wxHtmlHelpFrame::CreateContents}\label{wxhtmlhelpframecreatecontents}
\membersection{wxHtmlHelpFrame::GetController}\label{wxhtmlhelpframegetcontroller}
\constfunc{wxHtmlHelpController* }{GetController}{\void}
Returns the help controller associated with the frame.
\membersection{wxHtmlHelpFrame::ReadCustomization}\label{wxhtmlhelpframereadcustomization}
\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Reads the user's settings for this frame see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization})
\membersection{wxHtmlHelpFrame::SetController}\label{wxhtmlhelpframesetcontroller}
\func{void}{SetController}{\param{wxHtmlHelpController* }{contoller}}
Sets the help controller associated with the frame.
\membersection{wxHtmlHelpFrame::SetTitleFormat}\label{wxhtmlhelpframesettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
Sets the frame's title format. {\it format} must contain exactly one "\%s"
(it will be replaced by the page title).
\membersection{wxHtmlHelpFrame::WriteCustomization}\label{wxhtmlhelpframewritecustomization}
\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Saves the user's settings for this frame (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}).
\section{\class{wxHtmlHelpWindow}}\label{wxhtmlhelpwindow}
This class is used by \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
to display help within a frame or dialog, but you can use it yourself to create an embedded HTML help window.
For example:
\begin{verbatim}
// m_embeddedHelpWindow is a wxHtmlHelpWindow
// m_embeddedHtmlHelp is a wxHtmlHelpController
// Create embedded HTML Help window
m_embeddedHelpWindow = new wxHtmlHelpWindow;
m_embeddedHtmlHelp.UseConfig(config, rootPath); // Set your own config object here
m_embeddedHtmlHelp.SetHelpWindow(m_embeddedHelpWindow);
m_embeddedHelpWindow->Create(this,
wxID_ANY, wxDefaultPosition, GetClientSize(), wxTAB_TRAVERSAL|wxNO_BORDER, wxHF_DEFAULT_STYLE);
m_embeddedHtmlHelp.AddBook(wxFileName(_T("doc.zip")));
\end{verbatim}
You should pass the style wxHF\_EMBEDDED to the style parameter of wxHtmlHelpController to allow
the embedded window to be destroyed independently of the help controller.
\wxheading{Derived from}
\helpref{wxWindow}{wxwindow}
\wxheading{Include files}
<wx/html/helpwin.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlHelpWindow::wxHtmlHelpWindow}\label{wxhtmlhelpwindowwxhtmlhelpwindow}
\func{}{wxHtmlHelpWindow}{\param{wxHtmlHelpData* }{data = NULL}}
\func{}{wxHtmlHelpWindow}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}}
Constructor.
Constructor. For the values of {\it style}, please see the documentation for \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}.
\membersection{wxHtmlHelpWindow::Create}\label{wxhtmlhelpwindowcreate}
\func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}}
Creates the frame. See \helpref{the constructor}{wxhtmlhelpwindowwxhtmlhelpwindow}
for a description of the parameters.
\membersection{wxHtmlHelpWindow::CreateContents}\label{wxhtmlhelpwindowcreatecontents}
\func{void}{CreateContents}{\void}
@@ -68,7 +207,7 @@ Creates contents panel. (May take some time.)
Protected.
\membersection{wxHtmlHelpFrame::CreateIndex}\label{wxhtmlhelpframecreateindex}
\membersection{wxHtmlHelpWindow::CreateIndex}\label{wxhtmlhelpwindowcreateindex}
\func{void}{CreateIndex}{\void}
@@ -76,13 +215,13 @@ Creates index panel. (May take some time.)
Protected.
\membersection{wxHtmlHelpFrame::CreateSearch}\label{wxhtmlhelpframecreatesearch}
\membersection{wxHtmlHelpWindow::CreateSearch}\label{wxhtmlhelpwindowcreatesearch}
\func{void}{CreateSearch}{\void}
Creates search panel.
\membersection{wxHtmlHelpFrame::Display}\label{wxhtmlhelpframedisplay}
\membersection{wxHtmlHelpWindow::Display}\label{wxhtmlhelpwindowdisplay}
\func{bool}{Display}{\param{const wxString\& }{x}}
@@ -105,38 +244,38 @@ The second form takes numeric ID as the parameter.
\pythonnote{The second form of this method is named DisplayId in
wxPython.}
\membersection{wxHtmlHelpFrame::DisplayContents}\label{wxhtmlhelpframedisplaycontents}
\membersection{wxHtmlHelpWindow::DisplayContents}\label{wxhtmlhelpwindowdisplaycontents}
\func{bool}{DisplayContents}{\void}
Displays contents panel.
\membersection{wxHtmlHelpFrame::DisplayIndex}\label{wxhtmlhelpframedisplayindex}
\membersection{wxHtmlHelpWindow::DisplayIndex}\label{wxhtmlhelpwindowdisplayindex}
\func{bool}{DisplayIndex}{\void}
Displays index panel.
\membersection{wxHtmlHelpFrame::GetData}\label{wxhtmlhelpframegetdata}
\membersection{wxHtmlHelpWindow::GetData}\label{wxhtmlhelpwindowgetdata}
\func{wxHtmlHelpData*}{GetData}{\void}
Return wxHtmlHelpData object.
Returns the wxHtmlHelpData object, which is usually a pointer to the controller's data.
\membersection{wxHtmlHelpFrame::KeywordSearch}\label{wxhtmlhelpframekeywordsearch}
\membersection{wxHtmlHelpWindow::KeywordSearch}\label{wxhtmlhelpwindowkeywordsearch}
\func{bool}{KeywordSearch}{\param{const wxString\& }{keyword}, \param{wxHelpSearchMode }{mode = wxHELP\_SEARCH\_ALL}}
Search for given keyword. Optionally it searches through the index (mode =
wxHELP\_SEARCH\_INDEX), default the content (mode = wxHELP\_SEARCH\_ALL).
\membersection{wxHtmlHelpFrame::ReadCustomization}\label{wxhtmlhelpframereadcustomization}
\membersection{wxHtmlHelpWindow::ReadCustomization}\label{wxhtmlhelpwindowreadcustomization}
\func{void}{ReadCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Reads user's settings for this frame (see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization})
Reads the user's settings for this window (see \helpref{wxHtmlHelpController::ReadCustomization}{wxhtmlhelpcontrollerreadcustomization})
\membersection{wxHtmlHelpFrame::RefreshLists}\label{wxhtmlhelpframerefreshlists}
\membersection{wxHtmlHelpWindow::RefreshLists}\label{wxhtmlhelpwindowrefreshlists}
\func{void}{RefreshLists}{\void}
@@ -144,34 +283,75 @@ Refresh all panels. This is necessary if a new book was added.
Protected.
\membersection{wxHtmlHelpFrame::SetTitleFormat}\label{wxhtmlhelpframesettitleformat}
\membersection{wxHtmlHelpWindow::SetTitleFormat}\label{wxhtmlhelpwindowsettitleformat}
\func{void}{SetTitleFormat}{\param{const wxString\& }{format}}
Sets the frame's title format. {\it format} must contain exactly one "\%s"
(it will be replaced by the page title).
\membersection{wxHtmlHelpFrame::UseConfig}\label{wxhtmlhelpframeuseconfig}
\membersection{wxHtmlHelpWindow::UseConfig}\label{wxhtmlhelpwindowuseconfig}
\func{void}{UseConfig}{\param{wxConfigBase* }{config}, \param{const wxString\& }{rootpath = wxEmptyString}}
Add books to search choice panel.
Associates a wxConfig object with the help window. It is recommended that you use \helpref{wxHtmlHelpController::UseConfig}{wxhtmlhelpcontrolleruseconfig} instead.
\membersection{wxHtmlHelpFrame::WriteCustomization}\label{wxhtmlhelpframewritecustomization}
\membersection{wxHtmlHelpWindow::WriteCustomization}\label{wxhtmlhelpwindowwritecustomization}
\func{void}{WriteCustomization}{\param{wxConfigBase* }{cfg}, \param{const wxString\& }{path = wxEmptyString}}
Saves user's settings for this frame (see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}).
Saves the user's settings for this window(see \helpref{wxHtmlHelpController::WriteCustomization}{wxhtmlhelpcontrollerwritecustomization}).
\membersection{wxHtmlHelpFrame::AddToolbarButtons}\label{wxhtmlhelpframeaddtoolbarbuttons}
\membersection{wxHtmlHelpWindow::AddToolbarButtons}\label{wxhtmlhelpwindowaddtoolbarbuttons}
\func{virtual void}{AddToolbarButtons}{\param{wxToolBar *}{toolBar}, \param{int }{style}}
You may override this virtual method to add more buttons into help frame's
You may override this virtual method to add more buttons to the help window's
toolbar. {\it toolBar} is a pointer to the toolbar and {\it style} is the style
flag as passed to Create method.
flag as passed to the Create method.
wxToolBar::Realize is called immediately after returning from this function.
See {\it samples/html/helpview} for an example.
\section{\class{wxHtmlModalHelp}}\label{wxhtmlmodalhelp}
This class uses \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller}
to display help in a modal dialog. This is useful on platforms such as wxMac
where if you display help from a modal dialog, the help window must itself be a modal
dialog.
Create objects of this class on the stack, for example:
\begin{verbatim}
// The help can be browsed during the lifetime of this object; when the user quits
// the help, program execution will continue.
wxHtmlModalHelp help(parent, wxT("help"), wxT("My topic"));
\end{verbatim}
\wxheading{Derived from}
None
\wxheading{Include files}
<wx/html/helpctrl.h>
\latexignore{\rtfignore{\wxheading{Members}}}
\membersection{wxHtmlModalHelp::wxHtmlModalHelp}\label{wxhtmlmodalhelpctor}
\func{}{wxHtmlModalHelp}{\param{wxWindow* }{parent}, \param{const wxString\& }{helpFile}, \param{const wxString\& }{topic = wxEmptyString},
\param{int }{style = wxHF\_DEFAULT\_STYLE | wxHF\_DIALOG | wxHF\_MODAL}}
\wxheading{Parameters}
{\it parent} is the parent of the dialog.
{\it helpFile} is the HTML help file to show.
{\it topic} is an optional topic. If this is empty, the help contents will be shown.
{\it style} is a combination of the flags described in the \helpref{wxHtmlHelpController}{wxhtmlhelpcontroller} documentation.

View File

@@ -21,6 +21,23 @@
#define wxID_HTML_HELPFRAME (wxID_HIGHEST + 1)
// This style indicates that the window is
// embedded in the application and must not be
// destroyed by the help controller.
#define wxHF_EMBEDDED 0x00008000
// Create a dialog for the help window.
#define wxHF_DIALOG 0x00010000
// Create a frame for the help window.
#define wxHF_FRAME 0x00020000
// Make the dialog modal when displaying help.
#define wxHF_MODAL 0x00040000
class WXDLLIMPEXP_HTML wxHtmlHelpDialog;
class WXDLLIMPEXP_HTML wxHtmlHelpWindow;
class WXDLLIMPEXP_HTML wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
@@ -41,7 +58,9 @@ public:
bool KeywordSearch(const wxString& keyword,
wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
wxHtmlHelpFrame* GetFrame() { return m_helpFrame; }
wxHtmlHelpWindow* GetHelpWindow() { return m_helpWindow; }
void SetHelpWindow(wxHtmlHelpWindow* helpWindow);
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString);
// Assigns config object to the Ctrl. This config is then
@@ -81,16 +100,19 @@ public:
// Make the help controller's frame 'modal' if
// needed
void AddGrabIfNeeded();
void MakeModalIfNeeded();
// Find the top-most parent window
wxWindow* FindTopLevelWindow();
protected:
virtual wxWindow* CreateHelpWindow();
virtual wxHtmlHelpFrame* CreateHelpFrame(wxHtmlHelpData *data);
virtual void CreateHelpWindow();
virtual wxHtmlHelpDialog* CreateHelpDialog(wxHtmlHelpData *data);
virtual void DestroyHelpWindow();
wxHtmlHelpData m_helpData;
wxHtmlHelpFrame* m_helpFrame;
wxHtmlHelpWindow* m_helpWindow;
wxConfigBase * m_Config;
wxString m_ConfigRoot;
wxString m_titleFormat;
@@ -100,6 +122,26 @@ protected:
DECLARE_NO_COPY_CLASS(wxHtmlHelpController)
};
/*
* wxHtmlModalHelp
* A convenience class particularly for use on wxMac,
* where you can only show modal dialogs from a modal
* dialog.
*
* Use like this:
*
* wxHtmlModalHelp help(parent, filename, topic);
*
* If topic is empty, the help contents is displayed.
*/
class WXDLLIMPEXP_HTML wxHtmlModalHelp
{
public:
wxHtmlModalHelp(wxWindow* parent, const wxString& helpFile, const wxString& topic = wxEmptyString,
int style = wxHF_DEFAULT_STYLE | wxHF_DIALOG | wxHF_MODAL);
};
#endif // wxUSE_WXHTML_HELP
#endif // _WX_HELPCTRL_H_

94
include/wx/html/helpdlg.h Normal file
View File

@@ -0,0 +1,94 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpdlg.h
// Purpose: wxHtmlHelpDialog
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden, Vaclav Slavik, Julian Smart
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden, Vaclav Slavik, Julian Smart
// Licence: wxWidgets licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HELPDLG_H_
#define _WX_HELPDLG_H_
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma interface "helpdlgex.h"
#endif
#include "wx/defs.h"
#if wxUSE_WXHTML_HELP
#include "wx/html/helpdata.h"
#include "wx/window.h"
#include "wx/frame.h"
#include "wx/config.h"
#include "wx/splitter.h"
#include "wx/notebook.h"
#include "wx/listbox.h"
#include "wx/choice.h"
#include "wx/combobox.h"
#include "wx/checkbox.h"
#include "wx/stattext.h"
#include "wx/html/htmlwin.h"
#include "wx/html/helpwin.h"
#include "wx/html/htmprint.h"
class WXDLLIMPEXP_HTML wxHtmlHelpController;
class WXDLLIMPEXP_HTML wxHtmlHelpWindow;
class WXDLLIMPEXP_HTML wxHtmlHelpDialog : public wxDialog
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpDialog)
public:
wxHtmlHelpDialog(wxHtmlHelpData* data = NULL) { Init(data); }
wxHtmlHelpDialog(wxWindow* parent, wxWindowID wxWindowID,
const wxString& title = wxEmptyString,
int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL);
~wxHtmlHelpDialog();
bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,
int style = wxHF_DEFAULT_STYLE);
/// Returns the data associated with this dialog.
wxHtmlHelpData* GetData() { return m_Data; }
/// Returns the controller that created this dialog.
wxHtmlHelpController* GetController() const { return m_helpController; }
/// Sets the controller associated with this dialog.
void SetController(wxHtmlHelpController* controller) { m_helpController = controller; }
/// Returns the help window.
wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; }
// Sets format of title of the frame. Must contain exactly one "%s"
// (for title of displayed HTML page)
void SetTitleFormat(const wxString& format);
// Override to add custom buttons to the toolbar
virtual void AddToolbarButtons(wxToolBar* WXUNUSED(toolBar), int WXUNUSED(style)) {};
protected:
void Init(wxHtmlHelpData* data = NULL);
void OnCloseWindow(wxCloseEvent& event);
protected:
// Temporary pointer to pass to window
wxHtmlHelpData* m_Data;
wxString m_TitleFormat; // title of the help frame
wxHtmlHelpWindow *m_HtmlHelpWin;
wxHtmlHelpController* m_helpController;
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlHelpDialog)
};
#endif
// wxUSE_WXHTML_HELP
#endif

View File

@@ -29,6 +29,7 @@
#include "wx/checkbox.h"
#include "wx/stattext.h"
#include "wx/html/htmlwin.h"
#include "wx/html/helpwin.h"
#include "wx/html/htmprint.h"
class WXDLLIMPEXP_CORE wxButton;
@@ -58,18 +59,12 @@ class WXDLLIMPEXP_CORE wxTreeCtrl;
#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR
#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE
struct wxHtmlHelpFrameCfg
{
int x, y, w, h;
long sashpos;
bool navig_on;
};
struct wxHtmlHelpMergedIndexItem;
class wxHtmlHelpMergedIndex;
class WXDLLIMPEXP_CORE wxHelpControllerBase;
class WXDLLIMPEXP_HTML wxHtmlHelpController;
class WXDLLIMPEXP_CORE wxHtmlHelpWindow;
class WXDLLIMPEXP_HTML wxHtmlHelpFrame : public wxFrame
{
@@ -84,93 +79,35 @@ public:
int style = wxHF_DEFAULT_STYLE);
~wxHtmlHelpFrame();
/// Returns the data associated with the window.
wxHtmlHelpData* GetData() { return m_Data; }
wxHelpControllerBase* GetController() const { return m_helpController; }
void SetController(wxHelpControllerBase* controller) { m_helpController = controller; }
/// Returns the help controller associated with the window.
wxHtmlHelpController* GetController() const { return m_helpController; }
/// Sets the help controller associated with the window.
void SetController(wxHtmlHelpController* controller) { m_helpController = controller; }
/// Returns the help window.
wxHtmlHelpWindow* GetHelpWindow() const { return m_HtmlHelpWin; }
// Sets format of title of the frame. Must contain exactly one "%s"
// (for title of displayed HTML page)
void SetTitleFormat(const wxString& format);
// Displays page x. If not found it will offect the user a choice of
// searching books.
// Looking for the page runs in these steps:
// 1. try to locate file named x (if x is for example "doc/howto.htm")
// 2. try to open starting page of book x
// 3. try to find x in contents (if x is for example "How To ...")
// 4. try to find x in index (if x is for example "How To ...")
bool Display(const wxString& x);
// For compatibility
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString);
// Alternative version that works with numeric ID.
// (uses extension to MS format, <param name="ID" value=id>, see docs)
bool Display(const int id);
// Make the help controller's frame 'modal' if
// needed
void AddGrabIfNeeded();
// Displays help window and focuses contents.
bool DisplayContents();
// Displays help window and focuses index.
bool DisplayIndex();
// Searches for keyword. Returns true and display page if found, return
// false otherwise
// Syntax of keyword is Altavista-like:
// * words are separated by spaces
// (but "\"hello world\"" is only one world "hello world")
// * word may be pretended by + or -
// (+ : page must contain the word ; - : page can't contain the word)
// * if there is no + or - before the word, + is default
bool KeywordSearch(const wxString& keyword,
wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
{
m_Config = config;
m_ConfigRoot = rootpath;
ReadCustomization(config, rootpath);
}
// Saves custom settings into cfg config. it will use the path 'path'
// if given, otherwise it will save info into currently selected path.
// saved values : things set by SetFonts, SetBorders.
void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
// call this to let wxHtmlHelpFrame know page changed
void NotifyPageChanged();
// Refreshes Contents and Index tabs
void RefreshLists();
// Override to add custom buttons to the toolbar
virtual void AddToolbarButtons(wxToolBar* WXUNUSED(toolBar), int WXUNUSED(style)) {};
protected:
void Init(wxHtmlHelpData* data = NULL);
// Adds items to m_Contents tree control
void CreateContents();
// Adds items to m_IndexList
void CreateIndex();
// Add books to search choice panel
void CreateSearch();
// Updates "merged index" structure that combines indexes of all books
// into better searchable structure
void UpdateMergedIndex();
// Add custom buttons to toolbar
virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
// Displays options dialog (fonts etc.)
virtual void OptionsDialog();
void OnToolbar(wxCommandEvent& event);
void OnContentsSel(wxTreeEvent& event);
void OnIndexSel(wxCommandEvent& event);
void OnIndexFind(wxCommandEvent& event);
void OnIndexAll(wxCommandEvent& event);
void OnSearchSel(wxCommandEvent& event);
void OnSearch(wxCommandEvent& event);
void OnBookmarksSel(wxCommandEvent& event);
void OnCloseWindow(wxCloseEvent& event);
void OnActivate(wxActivateEvent& event);
@@ -190,55 +127,10 @@ protected:
wxHtmlHelpData* m_Data;
bool m_DataCreated; // m_Data created by frame, or supplied?
wxString m_TitleFormat; // title of the help frame
// below are various pointers to GUI components
wxHtmlWindow *m_HtmlWin;
wxSplitterWindow *m_Splitter;
wxPanel *m_NavigPan;
wxNotebook *m_NavigNotebook;
wxTreeCtrl *m_ContentsBox;
wxTextCtrl *m_IndexText;
wxButton *m_IndexButton;
wxButton *m_IndexButtonAll;
wxListBox *m_IndexList;
wxTextCtrl *m_SearchText;
wxButton *m_SearchButton;
wxListBox *m_SearchList;
wxChoice *m_SearchChoice;
wxStaticText *m_IndexCountInfo;
wxCheckBox *m_SearchCaseSensitive;
wxCheckBox *m_SearchWholeWords;
wxComboBox *m_Bookmarks;
wxArrayString m_BookmarksNames, m_BookmarksPages;
wxHtmlHelpFrameCfg m_Cfg;
wxConfigBase *m_Config;
wxString m_ConfigRoot;
// pagenumbers of controls in notebook (usually 0,1,2)
int m_ContentsPage;
int m_IndexPage;
int m_SearchPage;
// lists of available fonts (used in options dialog)
wxArrayString *m_NormalFonts, *m_FixedFonts;
int m_FontSize; // 0,1,2 = small,medium,big
wxString m_NormalFace, m_FixedFace;
bool m_UpdateContents;
#if wxUSE_PRINTING_ARCHITECTURE
wxHtmlEasyPrinting *m_Printer;
#endif
wxHashTable *m_PagesHash;
wxHelpControllerBase* m_helpController;
int m_hfStyle;
wxHtmlHelpWindow *m_HtmlHelpWin;
wxHtmlHelpController* m_helpController;
private:
void DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it);
wxHtmlHelpMergedIndex *m_mergedIndex;
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlHelpFrame)

286
include/wx/html/helpwin.h Normal file
View File

@@ -0,0 +1,286 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpwin.h
// Purpose: wxHtmlHelpWindow
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden and Vaclav Slavik
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden and Vaclav Slavik
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HELPWIN_H_
#define _WX_HELPWIN_H_
#include "wx/defs.h"
#if wxUSE_WXHTML_HELP
#include "wx/helpbase.h"
#include "wx/html/helpdata.h"
#include "wx/window.h"
#include "wx/frame.h"
#include "wx/config.h"
#include "wx/splitter.h"
#include "wx/notebook.h"
#include "wx/listbox.h"
#include "wx/choice.h"
#include "wx/combobox.h"
#include "wx/checkbox.h"
#include "wx/stattext.h"
#include "wx/html/htmlwin.h"
#include "wx/html/htmprint.h"
class WXDLLIMPEXP_CORE wxButton;
class WXDLLIMPEXP_CORE wxTextCtrl;
class WXDLLIMPEXP_CORE wxTreeEvent;
class WXDLLIMPEXP_CORE wxTreeCtrl;
// style flags for the Help Frame
#define wxHF_TOOLBAR 0x0001
#define wxHF_CONTENTS 0x0002
#define wxHF_INDEX 0x0004
#define wxHF_SEARCH 0x0008
#define wxHF_BOOKMARKS 0x0010
#define wxHF_OPEN_FILES 0x0020
#define wxHF_PRINT 0x0040
#define wxHF_FLAT_TOOLBAR 0x0080
#define wxHF_MERGE_BOOKS 0x0100
#define wxHF_ICONS_BOOK 0x0200
#define wxHF_ICONS_BOOK_CHAPTER 0x0400
#define wxHF_ICONS_FOLDER 0x0000 // this is 0 since it is default
#define wxHF_DEFAULT_STYLE (wxHF_TOOLBAR | wxHF_CONTENTS | \
wxHF_INDEX | wxHF_SEARCH | \
wxHF_BOOKMARKS | wxHF_PRINT)
//compatibility:
#define wxHF_OPENFILES wxHF_OPEN_FILES
#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR
#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE
struct wxHtmlHelpFrameCfg
{
int x, y, w, h;
long sashpos;
bool navig_on;
};
struct wxHtmlHelpMergedIndexItem;
class wxHtmlHelpMergedIndex;
class WXDLLIMPEXP_CORE wxHelpControllerBase;
class WXDLLIMPEXP_HTML wxHtmlHelpController;
class WXDLLIMPEXP_HTML wxHtmlHelpWindow : public wxWindow
{
DECLARE_DYNAMIC_CLASS(wxHtmlHelpWindow)
public:
wxHtmlHelpWindow(wxHtmlHelpData* data = NULL) { Init(data); }
wxHtmlHelpWindow(wxWindow* parent, wxWindowID wxWindowID,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int style = wxTAB_TRAVERSAL|wxNO_BORDER,
int helpStyle = wxHF_DEFAULT_STYLE,
wxHtmlHelpData* data = NULL);
bool Create(wxWindow* parent, wxWindowID id,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
int style = wxTAB_TRAVERSAL|wxNO_BORDER,
int helpStyle = wxHF_DEFAULT_STYLE);
~wxHtmlHelpWindow();
wxHtmlHelpData* GetData() { return m_Data; }
wxHtmlHelpController* GetController() const { return m_helpController; }
void SetController(wxHtmlHelpController* controller);
// Displays page x. If not found it will offect the user a choice of
// searching books.
// Looking for the page runs in these steps:
// 1. try to locate file named x (if x is for example "doc/howto.htm")
// 2. try to open starting page of book x
// 3. try to find x in contents (if x is for example "How To ...")
// 4. try to find x in index (if x is for example "How To ...")
bool Display(const wxString& x);
// Alternative version that works with numeric ID.
// (uses extension to MS format, <param name="ID" value=id>, see docs)
bool Display(const int id);
// Displays help window and focuses contents.
bool DisplayContents();
// Displays help window and focuses index.
bool DisplayIndex();
// Searches for keyword. Returns true and display page if found, return
// false otherwise
// Syntax of keyword is Altavista-like:
// * words are separated by spaces
// (but "\"hello world\"" is only one world "hello world")
// * word may be pretended by + or -
// (+ : page must contain the word ; - : page can't contain the word)
// * if there is no + or - before the word, + is default
bool KeywordSearch(const wxString& keyword,
wxHelpSearchMode mode = wxHELP_SEARCH_ALL);
void UseConfig(wxConfigBase *config, const wxString& rootpath = wxEmptyString)
{
m_Config = config;
m_ConfigRoot = rootpath;
ReadCustomization(config, rootpath);
}
// Saves custom settings into cfg config. it will use the path 'path'
// if given, otherwise it will save info into currently selected path.
// saved values : things set by SetFonts, SetBorders.
void ReadCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
void WriteCustomization(wxConfigBase *cfg, const wxString& path = wxEmptyString);
// call this to let wxHtmlHelpWindow know page changed
void NotifyPageChanged();
// Refreshes Contents and Index tabs
void RefreshLists();
// Gets the HTML window
wxHtmlWindow* GetHtmlWindow() const { return m_HtmlWin; }
// Gets the splitter window
wxSplitterWindow* GetSplitterWindow() const { return m_Splitter; }
// Gets the toolbar
wxToolBar* GetToolBar() const { return m_toolBar; }
// Gets the configuration data
wxHtmlHelpFrameCfg& GetCfgData() { return m_Cfg; }
// Gets the tree control
wxTreeCtrl *GetTreeCtrl() const { return m_ContentsBox; }
protected:
void Init(wxHtmlHelpData* data = NULL);
// Adds items to m_Contents tree control
void CreateContents();
// Adds items to m_IndexList
void CreateIndex();
// Add books to search choice panel
void CreateSearch();
// Updates "merged index" structure that combines indexes of all books
// into better searchable structure
void UpdateMergedIndex();
// Add custom buttons to toolbar
virtual void AddToolbarButtons(wxToolBar *toolBar, int style);
// Displays options dialog (fonts etc.)
virtual void OptionsDialog();
void OnToolbar(wxCommandEvent& event);
void OnContentsSel(wxTreeEvent& event);
void OnIndexSel(wxCommandEvent& event);
void OnIndexFind(wxCommandEvent& event);
void OnIndexAll(wxCommandEvent& event);
void OnSearchSel(wxCommandEvent& event);
void OnSearch(wxCommandEvent& event);
void OnBookmarksSel(wxCommandEvent& event);
void OnSize(wxSizeEvent& event);
// Images:
enum {
IMG_Book = 0,
IMG_Folder,
IMG_Page
};
protected:
wxHtmlHelpData* m_Data;
bool m_DataCreated; // m_Data created by frame, or supplied?
wxString m_TitleFormat; // title of the help frame
// below are various pointers to GUI components
wxHtmlWindow *m_HtmlWin;
wxSplitterWindow *m_Splitter;
wxPanel *m_NavigPan;
wxNotebook *m_NavigNotebook;
wxTreeCtrl *m_ContentsBox;
wxTextCtrl *m_IndexText;
wxButton *m_IndexButton;
wxButton *m_IndexButtonAll;
wxListBox *m_IndexList;
wxTextCtrl *m_SearchText;
wxButton *m_SearchButton;
wxListBox *m_SearchList;
wxChoice *m_SearchChoice;
wxStaticText *m_IndexCountInfo;
wxCheckBox *m_SearchCaseSensitive;
wxCheckBox *m_SearchWholeWords;
wxToolBar* m_toolBar;
wxComboBox *m_Bookmarks;
wxArrayString m_BookmarksNames, m_BookmarksPages;
wxHtmlHelpFrameCfg m_Cfg;
wxConfigBase *m_Config;
wxString m_ConfigRoot;
// pagenumbers of controls in notebook (usually 0,1,2)
int m_ContentsPage;
int m_IndexPage;
int m_SearchPage;
// lists of available fonts (used in options dialog)
wxArrayString *m_NormalFonts, *m_FixedFonts;
int m_FontSize; // 0,1,2 = small,medium,big
wxString m_NormalFace, m_FixedFace;
bool m_UpdateContents;
#if wxUSE_PRINTING_ARCHITECTURE
wxHtmlEasyPrinting *m_Printer;
#endif
wxHashTable *m_PagesHash;
wxHtmlHelpController* m_helpController;
int m_hfStyle;
private:
void DisplayIndexItem(const wxHtmlHelpMergedIndexItem *it);
wxHtmlHelpMergedIndex *m_mergedIndex;
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxHtmlHelpWindow)
};
class WXDLLIMPEXP_HTML wxHtmlWindowEvent: public wxNotifyEvent
{
public:
wxHtmlWindowEvent(wxEventType commandType = wxEVT_NULL, int id = 0):
wxNotifyEvent(commandType, id)
{
}
void SetURL(const wxString& url) { m_url = url; }
const wxString& GetURL() const { return m_url; }
private:
wxString m_url;
DECLARE_DYNAMIC_CLASS(wxHtmlWindowEvent);
};
typedef void (wxEvtHandler::*wxHtmlWindowEventFunction)(wxHtmlWindowEvent&);
BEGIN_DECLARE_EVENT_TYPES()
DECLARE_EVENT_TYPE(wxEVT_COMMAND_HTMLWINDOW_URL_CLICKED, 1000)
END_DECLARE_EVENT_TYPES()
#define EVT_HTMLWINDOW_URL_CLICKED(id, fn) DECLARE_EVENT_TABLE_ENTRY( wxEVT_COMMAND_HTMLWINDOW_URL_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxHtmlWindowEventFunction) & fn, (wxObject *) NULL ),
#endif // wxUSE_WXHTML_HELP
#endif

View File

@@ -126,6 +126,9 @@ public:
#if wxUSE_MS_HTML_HELP && wxUSE_WXHTML_HELP && !defined(__WXUNIVERSAL__)
void OnBestHelp(wxCommandEvent& event);
#endif
#if USE_HTML_HELP
void OnModalHtmlHelp(wxCommandEvent& event);
#endif
void OnShowContextHelp(wxCommandEvent& event);
void OnShowDialogContextHelp(wxCommandEvent& event);
@@ -137,6 +140,8 @@ private:
#if USE_HTML_HELP
wxHtmlHelpController m_advancedHtmlHelp;
wxHtmlHelpController m_embeddedHtmlHelp;
wxHtmlHelpWindow* m_embeddedHelpWindow;
#endif
#if wxUSE_MS_HTML_HELP && !defined(__WXUNIVERSAL__)
@@ -190,6 +195,7 @@ enum
HelpDemo_Advanced_Html_Help_Functions,
HelpDemo_Advanced_Html_Help_Help,
HelpDemo_Advanced_Html_Help_Search,
HelpDemo_Advanced_Html_Help_Modal,
HelpDemo_MS_Html_Help_Index,
HelpDemo_MS_Html_Help_Classes,
@@ -232,6 +238,9 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame)
EVT_MENU(HelpDemo_Advanced_Html_Help_Functions, MyFrame::OnAdvancedHtmlHelp)
EVT_MENU(HelpDemo_Advanced_Html_Help_Help, MyFrame::OnAdvancedHtmlHelp)
EVT_MENU(HelpDemo_Advanced_Html_Help_Search, MyFrame::OnAdvancedHtmlHelp)
#if USE_HTML_HELP
EVT_MENU(HelpDemo_Advanced_Html_Help_Modal, MyFrame::OnModalHtmlHelp)
#endif
#if wxUSE_MS_HTML_HELP && !defined(__WXUNIVERSAL__)
EVT_MENU(HelpDemo_MS_Html_Help_Index, MyFrame::OnMSHtmlHelp)
@@ -370,6 +379,9 @@ int MyApp::OnExit()
// frame constructor
MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
: wxFrame((wxFrame *)NULL, 300, title, pos, size)
#if USE_HTML_HELP
, m_embeddedHtmlHelp(wxHF_EMBEDDED|wxHF_DEFAULT_STYLE)
#endif
{
// set the frame icon
SetIcon(wxICON(mondrian));
@@ -391,6 +403,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
menuFile->Append(HelpDemo_Advanced_Html_Help_Functions, _T("Advanced HTML &Help on Functions..."));
menuFile->Append(HelpDemo_Advanced_Html_Help_Help, _T("Advanced HTML &About Help Demo..."));
menuFile->Append(HelpDemo_Advanced_Html_Help_Search, _T("Advanced HTML &Search help..."));
menuFile->Append(HelpDemo_Advanced_Html_Help_Modal, _T("Advanced HTML Help &Modal Dialog..."));
#endif
#if wxUSE_MS_HTML_HELP && !defined(__WXUNIVERSAL__)
@@ -431,6 +444,18 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
SetStatusText(_T("Welcome to wxWidgets!"));
#endif // wxUSE_STATUSBAR
#if USE_HTML_HELP
// Create embedded HTML Help window
m_embeddedHelpWindow = new wxHtmlHelpWindow;
// m_embeddedHtmlHelp.UseConfig(config, rootPath); // Can set your own config object here
m_embeddedHtmlHelp.SetHelpWindow(m_embeddedHelpWindow);
m_embeddedHelpWindow->Create(this,
wxID_ANY, wxDefaultPosition, GetClientSize(), wxTAB_TRAVERSAL|wxNO_BORDER, wxHF_DEFAULT_STYLE);
m_embeddedHtmlHelp.AddBook(wxFileName(_T("doc.zip")));
m_embeddedHtmlHelp.Display(_T("Introduction"));
#else
// now create some controls
// a panel first - if there were several controls, it would allow us to
@@ -442,6 +467,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
// and a static control whose parent is the panel
wxStaticText* staticText = new wxStaticText(panel, 302, _T("Hello, world!"), wxPoint(10, 10));
staticText->SetHelpText(_("This static text control isn't doing a lot right now."));
#endif
}
@@ -492,6 +518,13 @@ void MyFrame::OnBestHelp(wxCommandEvent& event)
}
#endif
#if USE_HTML_HELP
void MyFrame::OnModalHtmlHelp(wxCommandEvent& WXUNUSED(event))
{
wxHtmlModalHelp modalHelp(this, wxT("doc.zip"), wxT("Introduction"));
}
#endif
/*
Notes: ShowHelp uses section ids for displaying particular topics,
but you might want to use a unique keyword to display a topic, instead.

View File

@@ -23,19 +23,16 @@
#include "wx/intl.h"
#endif // WX_PRECOMP
#include "wx/html/helpctrl.h"
#include "wx/busyinfo.h"
#ifdef __WXGTK__
// for the hack in AddGrabIfNeeded()
#include "wx/dialog.h"
#endif // __WXGTK__
#include "wx/html/helpctrl.h"
#include "wx/html/helpwin.h"
#include "wx/html/helpfrm.h"
#include "wx/html/helpdlg.h"
#if wxUSE_HELP
#include "wx/tipwin.h"
#endif
#if wxUSE_LIBMSPACK
#include "wx/html/forcelnk.h"
FORCE_LINK(wxhtml_chm_support)
@@ -46,7 +43,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpController, wxHelpControllerBase)
wxHtmlHelpController::wxHtmlHelpController(int style, wxWindow* parentWindow):
wxHelpControllerBase(parentWindow)
{
m_helpFrame = NULL;
m_helpWindow = NULL;
m_Config = NULL;
m_ConfigRoot = wxEmptyString;
m_titleFormat = _("Help: %s");
@@ -57,35 +54,67 @@ wxHtmlHelpController::~wxHtmlHelpController()
{
if (m_Config)
WriteCustomization(m_Config, m_ConfigRoot);
if (m_helpFrame)
if (m_helpWindow)
DestroyHelpWindow();
}
void wxHtmlHelpController::DestroyHelpWindow()
{
//if (m_Config) WriteCustomization(m_Config, m_ConfigRoot);
if (m_helpFrame)
m_helpFrame->Destroy();
if (m_FrameStyle & wxHF_EMBEDDED)
return;
// Find top-most parent window
// If a modal dialog
wxWindow* parent = FindTopLevelWindow();
if (parent)
{
wxDialog* dialog = wxDynamicCast(parent, wxDialog);
if (dialog && dialog->IsModal())
{
dialog->EndModal(wxID_OK);
}
parent->Destroy();
m_helpWindow = NULL;
}
}
void wxHtmlHelpController::OnCloseFrame(wxCloseEvent& evt)
{
if (m_Config)
WriteCustomization(m_Config, m_ConfigRoot);
evt.Skip();
OnQuit();
m_helpFrame->SetController((wxHelpControllerBase*) NULL);
m_helpFrame = NULL;
m_helpWindow->SetController(NULL);
m_helpWindow = NULL;
}
void wxHtmlHelpController::SetTitleFormat(const wxString& title)
{
m_titleFormat = title;
if (m_helpFrame)
m_helpFrame->SetTitleFormat(title);
wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
if (frame)
{
frame->SetTitleFormat(title);
}
else if (dialog)
dialog->SetTitleFormat(title);
}
// Find the top-most parent window
wxWindow* wxHtmlHelpController::FindTopLevelWindow()
{
wxWindow* parent = m_helpWindow;
while (parent && !parent->IsTopLevel())
{
parent = parent->GetParent();
}
return parent;
}
bool wxHtmlHelpController::AddBook(const wxFileName& book_file, bool show_wait_msg)
{
@@ -111,25 +140,40 @@ bool wxHtmlHelpController::AddBook(const wxString& book, bool show_wait_msg)
#else
wxUnusedVar(show_wait_msg);
#endif
if (m_helpFrame)
m_helpFrame->RefreshLists();
if (m_helpWindow)
m_helpWindow->RefreshLists();
return retval;
}
wxHtmlHelpFrame *wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
wxHtmlHelpFrame* wxHtmlHelpController::CreateHelpFrame(wxHtmlHelpData *data)
{
return new wxHtmlHelpFrame(data);
wxHtmlHelpFrame* frame = new wxHtmlHelpFrame(data);
frame->SetController(this);
frame->SetTitleFormat(m_titleFormat);
frame->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle);
return frame;
}
void wxHtmlHelpController::CreateHelpWindow()
wxHtmlHelpDialog* wxHtmlHelpController::CreateHelpDialog(wxHtmlHelpData *data)
{
if (m_helpFrame)
wxHtmlHelpDialog* dialog = new wxHtmlHelpDialog(data);
dialog->SetController(this);
dialog->SetTitleFormat(m_titleFormat);
dialog->Create(m_parentWindow, -1, wxEmptyString, m_FrameStyle);
return dialog;
}
wxWindow* wxHtmlHelpController::CreateHelpWindow()
{
if (m_helpWindow)
{
m_helpFrame->Raise();
return ;
if (m_FrameStyle & wxHF_EMBEDDED)
return m_helpWindow;
wxWindow* topLevelWindow = FindTopLevelWindow();
if (topLevelWindow)
topLevelWindow->Raise();
return m_helpWindow;
}
if (m_Config == NULL)
@@ -139,38 +183,46 @@ void wxHtmlHelpController::CreateHelpWindow()
m_ConfigRoot = _T("wxWindows/wxHtmlHelpController");
}
m_helpFrame = CreateHelpFrame(&m_helpData);
m_helpFrame->SetController(this);
if (m_FrameStyle & wxHF_DIALOG)
{
wxHtmlHelpDialog* dialog = CreateHelpDialog(&m_helpData);
m_helpWindow = dialog->GetHelpWindow();
}
else if ((m_FrameStyle & wxHF_EMBEDDED) && m_parentWindow)
{
m_helpWindow = new wxHtmlHelpWindow(m_parentWindow, -1, wxDefaultPosition, wxDefaultSize,
wxTAB_TRAVERSAL|wxNO_BORDER, m_FrameStyle, &m_helpData);
}
else // wxHF_FRAME
{
wxHtmlHelpFrame* frame = CreateHelpFrame(&m_helpData);
m_helpWindow = frame->GetHelpWindow();
frame->Show(true);
}
if (m_Config)
m_helpFrame->UseConfig(m_Config, m_ConfigRoot);
m_helpFrame->Create(GetParentWindow(), wxID_HTML_HELPFRAME, wxEmptyString, m_FrameStyle);
m_helpFrame->SetTitleFormat(m_titleFormat);
m_helpFrame->Show(true);
return m_helpWindow;
}
void wxHtmlHelpController::ReadCustomization(wxConfigBase* cfg, const wxString& path)
{
/* should not be called by the user; call UseConfig, and the controller
* will do the rest */
if (m_helpFrame && cfg)
m_helpFrame->ReadCustomization(cfg, path);
if (m_helpWindow && cfg)
m_helpWindow->ReadCustomization(cfg, path);
}
void wxHtmlHelpController::WriteCustomization(wxConfigBase* cfg, const wxString& path)
{
/* typically called by the controllers OnCloseFrame handler */
if (m_helpFrame && cfg)
m_helpFrame->WriteCustomization(cfg, path);
if (m_helpWindow && cfg)
m_helpWindow->WriteCustomization(cfg, path);
}
void wxHtmlHelpController::UseConfig(wxConfigBase *config, const wxString& rootpath)
{
m_Config = config;
m_ConfigRoot = rootpath;
if (m_helpFrame) m_helpFrame->UseConfig(config, rootpath);
if (m_helpWindow) m_helpWindow->UseConfig(config, rootpath);
ReadCustomization(config, rootpath);
}
@@ -243,16 +295,25 @@ bool wxHtmlHelpController::DisplayTextPopup(const wxString& text, const wxPoint&
return false;
}
void wxHtmlHelpController::SetHelpWindow(wxHtmlHelpWindow* helpWindow)
{
m_helpWindow = helpWindow;
if (helpWindow)
helpWindow->SetController(this);
}
void wxHtmlHelpController::SetFrameParameters(const wxString& title,
const wxSize& size,
const wxPoint& pos,
bool WXUNUSED(newFrameEachTime))
{
SetTitleFormat(title);
if (m_helpFrame)
{
m_helpFrame->SetSize(pos.x, pos.y, size.x, size.y);
}
wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
if (frame)
frame->SetSize(pos.x, pos.y, size.x, size.y);
else if (dialog)
dialog->SetSize(pos.x, pos.y, size.x, size.y);
}
wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size,
@@ -261,11 +322,26 @@ wxFrame* wxHtmlHelpController::GetFrameParameters(wxSize *size,
{
if (newFrameEachTime)
(* newFrameEachTime) = false;
if (size && m_helpFrame)
(* size) = m_helpFrame->GetSize();
if (pos && m_helpFrame)
(* pos) = m_helpFrame->GetPosition();
return m_helpFrame;
wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
if (frame)
{
if (size)
(* size) = frame->GetSize();
if (pos)
(* pos) = frame->GetPosition();
return frame;
}
else if (dialog)
{
if (size)
(* size) = dialog->GetSize();
if (pos)
(* pos) = dialog->GetPosition();
return NULL;
}
return NULL;
}
bool wxHtmlHelpController::Quit()
@@ -276,59 +352,50 @@ bool wxHtmlHelpController::Quit()
// Make the help controller's frame 'modal' if
// needed
void wxHtmlHelpController::AddGrabIfNeeded()
void wxHtmlHelpController::MakeModalIfNeeded()
{
// So far, wxGTK only
#ifdef __WXGTK__
bool needGrab = false;
// Check if there are any modal windows present,
// in which case we need to add a grab.
for ( wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
node;
node = node->GetNext() )
if ((m_FrameStyle & wxHF_EMBEDDED) == 0)
{
wxWindow *win = node->GetData();
wxDialog *dialog = wxDynamicCast(win, wxDialog);
if (dialog && dialog->IsModal())
needGrab = true;
wxHtmlHelpFrame* frame = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpFrame);
wxHtmlHelpDialog* dialog = wxDynamicCast(FindTopLevelWindow(), wxHtmlHelpDialog);
if (frame)
frame->AddGrabIfNeeded();
else if (dialog && (m_FrameStyle & wxHF_MODAL))
{
dialog->ShowModal();
}
}
if (needGrab && m_helpFrame)
m_helpFrame->AddGrab();
#endif // __WXGTK__
}
bool wxHtmlHelpController::Display(const wxString& x)
{
CreateHelpWindow();
bool success = m_helpFrame->Display(x);
AddGrabIfNeeded();
bool success = m_helpWindow->Display(x);
MakeModalIfNeeded();
return success;
}
bool wxHtmlHelpController::Display(int id)
{
CreateHelpWindow();
bool success = m_helpFrame->Display(id);
AddGrabIfNeeded();
bool success = m_helpWindow->Display(id);
MakeModalIfNeeded();
return success;
}
bool wxHtmlHelpController::DisplayContents()
{
CreateHelpWindow();
bool success = m_helpFrame->DisplayContents();
AddGrabIfNeeded();
bool success = m_helpWindow->DisplayContents();
MakeModalIfNeeded();
return success;
}
bool wxHtmlHelpController::DisplayIndex()
{
CreateHelpWindow();
bool success = m_helpFrame->DisplayIndex();
AddGrabIfNeeded();
bool success = m_helpWindow->DisplayIndex();
MakeModalIfNeeded();
return success;
}
@@ -336,10 +403,31 @@ bool wxHtmlHelpController::KeywordSearch(const wxString& keyword,
wxHelpSearchMode mode)
{
CreateHelpWindow();
bool success = m_helpFrame->KeywordSearch(keyword, mode);
AddGrabIfNeeded();
bool success = m_helpWindow->KeywordSearch(keyword, mode);
MakeModalIfNeeded();
return success;
}
/*
* wxHtmlModalHelp
* A convenience class, to use like this:
*
* wxHtmlModalHelp help(parent, helpFile, topic);
*/
wxHtmlModalHelp::wxHtmlModalHelp(wxWindow* parent, const wxString& helpFile, const wxString& topic, int style)
{
// Force some mandatory styles
style |= wxHF_DIALOG | wxHF_MODAL;
wxHtmlHelpController controller(style, parent);
controller.Initialize(helpFile);
if (topic.IsEmpty())
controller.DisplayContents();
else
controller.DisplaySection(topic);
}
#endif // wxUSE_WXHTML_HELP

140
src/html/helpdlg.cpp Normal file
View File

@@ -0,0 +1,140 @@
/////////////////////////////////////////////////////////////////////////////
// Name: helpdlg.cpp
// Purpose: wxHtmlHelpDialog
// Notes: Based on htmlhelp.cpp, implementing a monolithic
// HTML Help controller class, by Vaclav Slavik
// Author: Harm van der Heijden, Vaclav Slavik and Julian Smart
// RCS-ID: $Id$
// Copyright: (c) Harm van der Heijden, Vaclav Slavik and Julian Smart
// Licence: wxWidgets licence
/////////////////////////////////////////////////////////////////////////////
#if defined(__GNUG__) && !defined(__APPLE__)
#pragma implementation "helpdlgex.h"
#endif
// For compilers that support precompilation, includes "wx.h"
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
#if wxUSE_WXHTML_HELP
#ifndef WXPRECOMP
#include "wx/intl.h"
#include "wx/log.h"
#include "wx/object.h"
#include "wx/sizer.h"
#include "wx/bmpbuttn.h"
#include "wx/statbox.h"
#include "wx/radiobox.h"
#endif // WXPRECOMP
#ifdef __WXMAC__
#include "wx/menu.h"
#include "wx/msgdlg.h"
#endif
#include "wx/html/htmlwin.h"
#include "wx/html/helpdlg.h"
#include "wx/html/helpctrl.h"
#include "wx/artprov.h"
IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpDialog, wxDialog)
BEGIN_EVENT_TABLE(wxHtmlHelpDialog, wxDialog)
EVT_CLOSE(wxHtmlHelpDialog::OnCloseWindow)
END_EVENT_TABLE()
wxHtmlHelpDialog::wxHtmlHelpDialog(wxWindow* parent, wxWindowID id, const wxString& title,
int style, wxHtmlHelpData* data)
{
Init(data);
Create(parent, id, title, style);
}
void wxHtmlHelpDialog::Init(wxHtmlHelpData* data)
{
// Simply pass the pointer on to the help window
m_Data = data;
m_HtmlHelpWin = NULL;
m_helpController = NULL;
}
// Create: builds the GUI components.
bool wxHtmlHelpDialog::Create(wxWindow* parent, wxWindowID id,
const wxString& WXUNUSED(title), int style)
{
m_HtmlHelpWin = new wxHtmlHelpWindow(m_Data);
wxDialog::Create(parent, id, _("Help"),
wxPoint(m_HtmlHelpWin->GetCfgData().x, m_HtmlHelpWin->GetCfgData().y),
wxSize(m_HtmlHelpWin->GetCfgData().w, m_HtmlHelpWin->GetCfgData().h),
wxDEFAULT_FRAME_STYLE|wxRESIZE_BORDER, wxT("wxHtmlHelp"));
m_HtmlHelpWin->Create(this, -1, wxDefaultPosition, GetClientSize(),
wxTAB_TRAVERSAL|wxNO_BORDER, style);
GetPosition(& (m_HtmlHelpWin->GetCfgData().x), & (m_HtmlHelpWin->GetCfgData()).y);
SetIcon(wxArtProvider::GetIcon(wxART_HELP, wxART_HELP_BROWSER));
wxWindow* item1 = this;
wxBoxSizer* item2 = new wxBoxSizer(wxVERTICAL);
item1->SetSizer(item2);
item1->SetAutoLayout(true);
wxWindow* item3 = m_HtmlHelpWin;
item2->Add(item3, 1, wxGROW|wxALL, 5);
wxBoxSizer* item4 = new wxBoxSizer(wxHORIZONTAL);
item2->Add(item4, 0, wxGROW, 5);
item4->Add(5, 5, 1, wxALIGN_CENTER_VERTICAL|wxALL, 5);
wxButton* item6 = new wxButton(item1, wxID_OK, _("&Close"), wxDefaultPosition, wxDefaultSize, 0);
item4->Add(item6, 0, wxALIGN_CENTER_VERTICAL|wxALL, 10);
#ifdef __WXMAC__
// Add some space for the resize handle
item4->Add(5, 5, 0, wxALIGN_CENTER_VERTICAL, 0);
#endif
Layout();
Centre();
return true;
}
wxHtmlHelpDialog::~wxHtmlHelpDialog()
{
}
void wxHtmlHelpDialog::SetTitleFormat(const wxString& format)
{
m_TitleFormat = format;
}
void wxHtmlHelpDialog::OnCloseWindow(wxCloseEvent& evt)
{
if (!IsIconized())
{
GetSize(& (m_HtmlHelpWin->GetCfgData().w), &(m_HtmlHelpWin->GetCfgData().h));
GetPosition(& (m_HtmlHelpWin->GetCfgData().x), & (m_HtmlHelpWin->GetCfgData().y));
}
if (m_HtmlHelpWin->GetSplitterWindow() && m_HtmlHelpWin->GetCfgData().navig_on)
m_HtmlHelpWin->GetCfgData().sashpos = m_HtmlHelpWin->GetSplitterWindow()->GetSashPosition();
if (m_helpController)
{
m_helpController->OnCloseFrame(evt);
}
evt.Skip();
}
#endif // wxUSE_WXHTML_HELP

File diff suppressed because it is too large Load Diff

1757
src/html/helpwin.cpp Normal file

File diff suppressed because it is too large Load Diff