added new wxHF_xxxx contants to control wxHtmlHelpFrame's appearance (book icons in contents)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10006 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		| @@ -51,7 +51,7 @@ wxHelpControllerBase | ||||
|  | ||||
| \membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller} | ||||
|  | ||||
| \func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULTSTYLE}} | ||||
| \func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}} | ||||
|  | ||||
| Constructor. | ||||
|  | ||||
| @@ -61,17 +61,27 @@ Constructor. | ||||
|  | ||||
| \begin{twocollist}\itemsep=0pt | ||||
| \twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.} | ||||
| \twocolitem{\windowstyle{wxHF\_FLATTOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).} | ||||
| \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\_OPENFILES}}{Allow user to open arbitrary HTML document.} | ||||
| \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} | ||||
|  | ||||
| Default value: everything but wxHF\_OPENFILES enabled. | ||||
|  | ||||
| \membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook} | ||||
|  | ||||
| \func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show\_wait\_msg}} | ||||
|   | ||||
| @@ -24,7 +24,7 @@ when you're writing your own HTML help controller. | ||||
|  | ||||
| \func{}{wxHtmlHelpFrame}{\param{wxHtmlHelpData* }{data = NULL}} | ||||
|  | ||||
| \func{}{wxHtmlHelpFrame}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULTSTYLE}, \param{wxHtmlHelpData* }{data = NULL}} | ||||
| \func{}{wxHtmlHelpFrame}{\param{wxWindow* }{parent}, \param{int }{wxWindowID}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}, \param{wxHtmlHelpData* }{data = NULL}} | ||||
|  | ||||
| Constructor. | ||||
|  | ||||
| @@ -32,33 +32,33 @@ Constructor. | ||||
|  | ||||
| \begin{twocollist}\itemsep=0pt | ||||
| \twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.} | ||||
| \twocolitem{\windowstyle{wxHF\_FLATTOOLBAR}}{Help frame has toolbar with flat buttons (aka coolbar).} | ||||
| \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\_OPENFILES}}{Allow user to open arbitrary HTML document.} | ||||
| \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} | ||||
|  | ||||
| \membersection{wxHtmlHelpFrame::Create}\label{wxhtmlhelpframecreate} | ||||
|  | ||||
| \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULTSTYLE}} | ||||
| \func{bool}{Create}{\param{wxWindow* }{parent}, \param{wxWindowID }{id}, \param{const wxString\& }{title = wxEmptyString}, \param{int }{style = wxHF\_DEFAULT\_STYLE}} | ||||
|  | ||||
| Creates the frame. | ||||
|  | ||||
| {\it style} is combination of these flags: | ||||
|  | ||||
| \begin{twocollist}\itemsep=0pt | ||||
| \twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.} | ||||
| \twocolitem{\windowstyle{wxHF\_FLATTOOLBAR}}{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\_OPENFILES}}{Allow user to open arbitrary HTML document.} | ||||
| \twocolitem{\windowstyle{wxHF\_PRINT}}{Toolbar contains "print" button.} | ||||
| \end{twocollist} | ||||
| Creates the frame. See \helpref{the constructor}{wxhtmlhelpframewxhtmlhelpframe} | ||||
| for parameters description. | ||||
|  | ||||
| \membersection{wxHtmlHelpFrame::CreateContents}\label{wxhtmlhelpframecreatecontents} | ||||
|  | ||||
|   | ||||
| @@ -23,12 +23,14 @@ | ||||
| #include "wx/html/helpfrm.h" | ||||
| #include "wx/helpbase.h" | ||||
|  | ||||
| #define wxID_HTML_HELPFRAME   (wxID_HIGHEST + 1) | ||||
|  | ||||
| class WXDLLEXPORT wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler | ||||
| { | ||||
|     DECLARE_DYNAMIC_CLASS(wxHtmlHelpController) | ||||
|  | ||||
| public: | ||||
|     wxHtmlHelpController(int style = wxHF_DEFAULTSTYLE); | ||||
|     wxHtmlHelpController(int style = wxHF_DEFAULT_STYLE); | ||||
|     virtual ~wxHtmlHelpController(); | ||||
|  | ||||
|     void SetTitleFormat(const wxString& format); | ||||
|   | ||||
| @@ -36,48 +36,25 @@ | ||||
|  | ||||
|  | ||||
| // 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_OPENFILES    0x0020 | ||||
| #define wxHF_PRINT        0x0040 | ||||
| #define wxHF_FLATTOOLBAR  0x0080 | ||||
| #define wxHF_DEFAULTSTYLE (wxHF_TOOLBAR | wxHF_CONTENTS | wxHF_INDEX | \ | ||||
|                            wxHF_SEARCH | wxHF_BOOKMARKS | wxHF_PRINT) | ||||
|  | ||||
|  | ||||
| // Command IDs : | ||||
| enum | ||||
| { | ||||
|     wxID_HTML_PANEL = wxID_HIGHEST + 1, | ||||
|     wxID_HTML_BACK, | ||||
|     wxID_HTML_FORWARD, | ||||
|     wxID_HTML_UPNODE, | ||||
|     wxID_HTML_UP, | ||||
|     wxID_HTML_DOWN, | ||||
|     wxID_HTML_PRINT, | ||||
|     wxID_HTML_OPENFILE, | ||||
|     wxID_HTML_OPTIONS, | ||||
|     wxID_HTML_BOOKMARKSLIST, | ||||
|     wxID_HTML_BOOKMARKSADD, | ||||
|     wxID_HTML_BOOKMARKSREMOVE, | ||||
|     wxID_HTML_TREECTRL, | ||||
|     wxID_HTML_INDEXPAGE, | ||||
|     wxID_HTML_INDEXLIST, | ||||
|     wxID_HTML_INDEXTEXT, | ||||
|     wxID_HTML_INDEXBUTTON, | ||||
|     wxID_HTML_INDEXBUTTONALL, | ||||
|     wxID_HTML_NOTEBOOK, | ||||
|     wxID_HTML_SEARCHPAGE, | ||||
|     wxID_HTML_SEARCHTEXT, | ||||
|     wxID_HTML_SEARCHLIST, | ||||
|     wxID_HTML_SEARCHBUTTON, | ||||
|     wxID_HTML_SEARCHCHOICE, | ||||
|     wxID_HTML_COUNTINFO, | ||||
|     wxID_HTML_HELPFRAME // the id of wxHtmlHelpController's helpframe | ||||
| }; | ||||
| #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 | ||||
| @@ -98,9 +75,9 @@ public: | ||||
|     wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); } | ||||
|     wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID, | ||||
|                     const wxString& title = wxEmptyString, | ||||
|                     int style = wxHF_DEFAULTSTYLE, wxHtmlHelpData* data = NULL); | ||||
|                     int style = wxHF_DEFAULT_STYLE, wxHtmlHelpData* data = NULL); | ||||
|     bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString, | ||||
|                 int style = wxHF_DEFAULTSTYLE); | ||||
|                 int style = wxHF_DEFAULT_STYLE); | ||||
|     ~wxHtmlHelpFrame(); | ||||
|  | ||||
|     wxHtmlHelpData* GetData() { return m_Data; } | ||||
| @@ -241,6 +218,8 @@ protected: | ||||
| #endif | ||||
|     wxHashTable *m_PagesHash; | ||||
|     wxHelpControllerBase* m_helpController; | ||||
|      | ||||
|     int m_hfStyle; | ||||
|  | ||||
|     DECLARE_EVENT_TABLE() | ||||
| }; | ||||
|   | ||||
| @@ -246,20 +246,4 @@ bool wxHtmlHelpController::Quit() | ||||
|     return TRUE; | ||||
| } | ||||
|  | ||||
| // Sets the specified book or all books to have the given base path | ||||
| void wxHtmlHelpController::SetBookBasePath(const wxString& basePath, int which) | ||||
| { | ||||
|     size_t i; | ||||
|     for (i = 0; i < m_helpData.GetBookRecArray().Count(); i++ ) | ||||
|     { | ||||
|         if (i == (size_t) which || which == -1) | ||||
|         { | ||||
|             wxHtmlBookRecord& book = m_helpData.GetBookRecArray()[i]; | ||||
|             book.SetBasePath(basePath); | ||||
|         } | ||||
|         if (i == (size_t) which) | ||||
|             return; | ||||
|     } | ||||
| } | ||||
|  | ||||
| #endif | ||||
|   | ||||
| @@ -129,6 +129,38 @@ class wxHtmlHelpHtmlWindow : public wxHtmlWindow | ||||
| // wxHtmlHelpFrame | ||||
| //--------------------------------------------------------------------------- | ||||
|  | ||||
| // Command IDs : | ||||
| enum | ||||
| { | ||||
|     //wxID_HTML_HELPFRAME = wxID_HIGHEST + 1, | ||||
|     wxID_HTML_PANEL = wxID_HIGHEST + 2, | ||||
|     wxID_HTML_BACK, | ||||
|     wxID_HTML_FORWARD, | ||||
|     wxID_HTML_UPNODE, | ||||
|     wxID_HTML_UP, | ||||
|     wxID_HTML_DOWN, | ||||
|     wxID_HTML_PRINT, | ||||
|     wxID_HTML_OPENFILE, | ||||
|     wxID_HTML_OPTIONS, | ||||
|     wxID_HTML_BOOKMARKSLIST, | ||||
|     wxID_HTML_BOOKMARKSADD, | ||||
|     wxID_HTML_BOOKMARKSREMOVE, | ||||
|     wxID_HTML_TREECTRL, | ||||
|     wxID_HTML_INDEXPAGE, | ||||
|     wxID_HTML_INDEXLIST, | ||||
|     wxID_HTML_INDEXTEXT, | ||||
|     wxID_HTML_INDEXBUTTON, | ||||
|     wxID_HTML_INDEXBUTTONALL, | ||||
|     wxID_HTML_NOTEBOOK, | ||||
|     wxID_HTML_SEARCHPAGE, | ||||
|     wxID_HTML_SEARCHTEXT, | ||||
|     wxID_HTML_SEARCHLIST, | ||||
|     wxID_HTML_SEARCHBUTTON, | ||||
|     wxID_HTML_SEARCHCHOICE, | ||||
|     wxID_HTML_COUNTINFO | ||||
| }; | ||||
|  | ||||
|  | ||||
| IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpFrame, wxFrame) | ||||
|  | ||||
| wxHtmlHelpFrame::wxHtmlHelpFrame(wxWindow* parent, wxWindowID id, const wxString& title, | ||||
| @@ -198,9 +230,11 @@ void wxHtmlHelpFrame::Init(wxHtmlHelpData* data) | ||||
| // moreover, if no contents, index or searchpage is needed, m_Splitter and | ||||
| // m_NavigPan will be NULL too (with m_HtmlWin directly connected to the frame) | ||||
|  | ||||
| bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& WXUNUSED(title), | ||||
|                              int style) | ||||
| bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id,  | ||||
|                              const wxString& WXUNUSED(title), int style) | ||||
| { | ||||
|     m_hfStyle = style; | ||||
|  | ||||
|     wxImageList *ContentsImageList = new wxImageList(16, 16); | ||||
|     ContentsImageList->Add(wxICON(wbook)); | ||||
|     ContentsImageList->Add(wxICON(wfolder)); | ||||
| @@ -223,11 +257,11 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& WX | ||||
|     CreateStatusBar(); | ||||
|  | ||||
|     // toolbar? | ||||
|     if (style & (wxHF_TOOLBAR | wxHF_FLATTOOLBAR)) | ||||
|     if (style & (wxHF_TOOLBAR | wxHF_FLAT_TOOLBAR)) | ||||
|     { | ||||
|         wxToolBar *toolBar = CreateToolBar(wxNO_BORDER | wxTB_HORIZONTAL | | ||||
|                                            wxTB_DOCKABLE | | ||||
|                                            (style & wxHF_FLATTOOLBAR ? wxTB_FLAT : 0)); | ||||
|                                            (style & wxHF_FLAT_TOOLBAR ? wxTB_FLAT : 0)); | ||||
|         toolBar->SetMargins( 2, 2 ); | ||||
|         AddToolbarButtons(toolBar, style); | ||||
|         toolBar->Realize(); | ||||
| @@ -533,10 +567,10 @@ void wxHtmlHelpFrame::AddToolbarButtons(wxToolBar *toolBar, int style) | ||||
|                        FALSE, -1, -1, (wxObject *) NULL, | ||||
|                        _("Next page")); | ||||
|  | ||||
|     if ((style & wxHF_PRINT) || (style & wxHF_OPENFILES)) | ||||
|     if ((style & wxHF_PRINT) || (style & wxHF_OPEN_FILES)) | ||||
|         toolBar->AddSeparator(); | ||||
|  | ||||
|     if (style & wxHF_OPENFILES) | ||||
|     if (style & wxHF_OPEN_FILES) | ||||
|         toolBar->AddTool(wxID_HTML_OPENFILE, wopenBitmap, wxNullBitmap, | ||||
|                            FALSE, -1, -1, (wxObject *) NULL, | ||||
|                            _("Open HTML document")); | ||||
| @@ -693,8 +727,6 @@ bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword) | ||||
|     return (foundcnt > 0); | ||||
| } | ||||
|  | ||||
| #define MAX_ROOTS 64 | ||||
|  | ||||
| void wxHtmlHelpFrame::CreateContents() | ||||
| { | ||||
|     if (! m_ContentsBox) | ||||
| @@ -708,43 +740,89 @@ void wxHtmlHelpFrame::CreateContents() | ||||
|  | ||||
|     int cnt = m_Data->GetContentsCnt(); | ||||
|     int i; | ||||
|     size_t booksCnt = m_Data->GetBookRecArray().GetCount(); | ||||
|  | ||||
|     wxHtmlContentsItem *it; | ||||
|  | ||||
|     const int MAX_ROOTS = 64; | ||||
|     wxTreeItemId roots[MAX_ROOTS]; | ||||
|     bool imaged[MAX_ROOTS]; | ||||
|  | ||||
|     // VS: this array holds information about whether we've set item icon at | ||||
|     //     given level. This is neccessary because m_Data has flat structure | ||||
|     //     and there's no way of recognizing if some item has subitems or not. | ||||
|     //     We set the icon later: when we find an item with level=n, we know | ||||
|     //     that the last item with level=n-1 was folder with subitems, so we | ||||
|     //     set its icon accordingly | ||||
|     bool imaged[MAX_ROOTS];  | ||||
|     m_ContentsBox->DeleteAllItems(); | ||||
|     roots[0] = m_ContentsBox->AddRoot(_("(Help)")); | ||||
|     m_ContentsBox->SetItemImage(roots[0], IMG_RootFolder); | ||||
|     m_ContentsBox->SetItemSelectedImage(roots[0], IMG_RootFolder); | ||||
|     imaged[0] = TRUE; | ||||
|      | ||||
|     // Don't show (Help) root if there's only one boook | ||||
|     if (booksCnt > 1) | ||||
|     { | ||||
|         roots[0] = m_ContentsBox->AddRoot(_("(Help)")); | ||||
|         m_ContentsBox->SetItemImage(roots[0], IMG_RootFolder); | ||||
|         m_ContentsBox->SetItemSelectedImage(roots[0], IMG_RootFolder); | ||||
|         imaged[0] = TRUE; | ||||
|     } | ||||
|  | ||||
|     for (it = m_Data->GetContents(), i = 0; i < cnt; i++, it++) | ||||
|     { | ||||
|         roots[it->m_Level + 1] =  m_ContentsBox->AppendItem( | ||||
|                                        roots[it->m_Level], it->m_Name, IMG_Page, -1, | ||||
|                                        new wxHtmlHelpTreeItemData(i)); | ||||
|         // Handle books: | ||||
|         if (it->m_Level == 0) | ||||
|         { | ||||
|             // special case, only one book, make it tree's root: | ||||
|             if (booksCnt == 1) | ||||
|             { | ||||
|                 roots[0] = roots[1] = m_ContentsBox->AddRoot( | ||||
|                                          it->m_Name, IMG_Page, -1, | ||||
|                                          new wxHtmlHelpTreeItemData(i)); | ||||
|             } | ||||
|             // multiple books: | ||||
|             else | ||||
|             { | ||||
|                 if (m_hfStyle & wxHF_MERGE_BOOKS) | ||||
|                     // VS: we don't want book nodes, books' content should | ||||
|                     //    appear under tree's root. This line will create "fake" | ||||
|                     //    record about book node so that the rest of this look | ||||
|                     //    will believe there really _is_ book node and will | ||||
|                     //    behave correctly. | ||||
|                     roots[1] = roots[0]; | ||||
|                 else | ||||
|                 { | ||||
|                     roots[1] = m_ContentsBox->AppendItem(roots[0], | ||||
|                                              it->m_Name, IMG_Book, -1,  | ||||
|                                              new wxHtmlHelpTreeItemData(i)); | ||||
|                     m_ContentsBox->SetItemBold(roots[1], TRUE); | ||||
|                 } | ||||
|                 imaged[1] = TRUE; | ||||
|             } | ||||
|         } | ||||
|         // ...and their contents: | ||||
|         else  | ||||
|         { | ||||
|             roots[it->m_Level + 1] = m_ContentsBox->AppendItem( | ||||
|                                      roots[it->m_Level], it->m_Name, IMG_Page,  | ||||
|                                      -1, new wxHtmlHelpTreeItemData(i)); | ||||
| 	        imaged[it->m_Level + 1] = FALSE; | ||||
|         } | ||||
|  | ||||
|         m_PagesHash->Put(it->GetFullPath(), | ||||
|                            new wxHtmlHelpHashData(i, roots[it->m_Level + 1])); | ||||
|  | ||||
|         if (it->m_Level == 0) | ||||
| 	    { | ||||
|             m_ContentsBox->SetItemBold(roots[1], TRUE); | ||||
|             m_ContentsBox->SetItemImage(roots[1], IMG_Book); | ||||
|             m_ContentsBox->SetItemSelectedImage(roots[1], IMG_Book); | ||||
|             imaged[1] = TRUE; | ||||
|         } | ||||
| 	    else | ||||
| 	        imaged[it->m_Level + 1] = FALSE; | ||||
|  | ||||
|         // Set the icon for the node one level up in the hiearachy, | ||||
|         // unless already done (see comment above imaged[] declaration) | ||||
|         if (!imaged[it->m_Level]) | ||||
| 	    { | ||||
|             m_ContentsBox->SetItemImage(roots[it->m_Level], IMG_Folder); | ||||
|             m_ContentsBox->SetItemSelectedImage(roots[it->m_Level], IMG_Folder); | ||||
|             int image = IMG_Folder; | ||||
|             if (m_hfStyle & wxHF_ICONS_BOOK) | ||||
|                 image = IMG_Book; | ||||
|             else if (m_hfStyle & wxHF_ICONS_BOOK_CHAPTER) | ||||
|                 image = (it->m_Level == 1) ? IMG_Book : IMG_Folder; | ||||
|             m_ContentsBox->SetItemImage(roots[it->m_Level], image); | ||||
|             m_ContentsBox->SetItemSelectedImage(roots[it->m_Level], image); | ||||
|             imaged[it->m_Level] = TRUE; | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     m_ContentsBox->Expand(roots[0]); | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user