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:
parent
bdb6e206f1
commit
576507e276
@ -51,7 +51,7 @@ wxHelpControllerBase
|
|||||||
|
|
||||||
\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
|
\membersection{wxHtmlHelpController::wxHtmlHelpController}\label{wxhtmlhelpcontrollerwxhtmlhelpcontroller}
|
||||||
|
|
||||||
\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULTSTYLE}}
|
\func{}{wxHtmlHelpController}{\param{int }{style = wxHF\_DEFAULT\_STYLE}}
|
||||||
|
|
||||||
Constructor.
|
Constructor.
|
||||||
|
|
||||||
@ -61,17 +61,27 @@ Constructor.
|
|||||||
|
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
|
\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\_CONTENTS}}{Help frame has contents panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
|
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
|
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
|
\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\_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}
|
\end{twocollist}
|
||||||
|
|
||||||
Default value: everything but wxHF\_OPENFILES enabled.
|
|
||||||
|
|
||||||
\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
|
\membersection{wxHtmlHelpController::AddBook}\label{wxhtmlhelpcontrolleraddbook}
|
||||||
|
|
||||||
\func{bool}{AddBook}{\param{const wxString\& }{book}, \param{bool }{show\_wait\_msg}}
|
\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{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.
|
Constructor.
|
||||||
|
|
||||||
@ -32,33 +32,33 @@ Constructor.
|
|||||||
|
|
||||||
\begin{twocollist}\itemsep=0pt
|
\begin{twocollist}\itemsep=0pt
|
||||||
\twocolitem{\windowstyle{wxHF\_TOOLBAR}}{Help frame has toolbar.}
|
\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\_CONTENTS}}{Help frame has contents panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
|
\twocolitem{\windowstyle{wxHF\_INDEX}}{Help frame has index panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
|
\twocolitem{\windowstyle{wxHF\_SEARCH}}{Help frame has search panel.}
|
||||||
\twocolitem{\windowstyle{wxHF\_BOOKMARKS}}{Help frame has bookmarks controls.}
|
\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\_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}
|
\end{twocollist}
|
||||||
|
|
||||||
\membersection{wxHtmlHelpFrame::Create}\label{wxhtmlhelpframecreate}
|
\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.
|
Creates the frame. See \helpref{the constructor}{wxhtmlhelpframewxhtmlhelpframe}
|
||||||
|
for parameters description.
|
||||||
{\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}
|
|
||||||
|
|
||||||
\membersection{wxHtmlHelpFrame::CreateContents}\label{wxhtmlhelpframecreatecontents}
|
\membersection{wxHtmlHelpFrame::CreateContents}\label{wxhtmlhelpframecreatecontents}
|
||||||
|
|
||||||
|
@ -23,12 +23,14 @@
|
|||||||
#include "wx/html/helpfrm.h"
|
#include "wx/html/helpfrm.h"
|
||||||
#include "wx/helpbase.h"
|
#include "wx/helpbase.h"
|
||||||
|
|
||||||
|
#define wxID_HTML_HELPFRAME (wxID_HIGHEST + 1)
|
||||||
|
|
||||||
class WXDLLEXPORT wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler
|
class WXDLLEXPORT wxHtmlHelpController : public wxHelpControllerBase // wxEvtHandler
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
|
DECLARE_DYNAMIC_CLASS(wxHtmlHelpController)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
wxHtmlHelpController(int style = wxHF_DEFAULTSTYLE);
|
wxHtmlHelpController(int style = wxHF_DEFAULT_STYLE);
|
||||||
virtual ~wxHtmlHelpController();
|
virtual ~wxHtmlHelpController();
|
||||||
|
|
||||||
void SetTitleFormat(const wxString& format);
|
void SetTitleFormat(const wxString& format);
|
||||||
|
@ -36,48 +36,25 @@
|
|||||||
|
|
||||||
|
|
||||||
// style flags for the Help Frame
|
// style flags for the Help Frame
|
||||||
#define wxHF_TOOLBAR 0x0001
|
#define wxHF_TOOLBAR 0x0001
|
||||||
#define wxHF_CONTENTS 0x0002
|
#define wxHF_CONTENTS 0x0002
|
||||||
#define wxHF_INDEX 0x0004
|
#define wxHF_INDEX 0x0004
|
||||||
#define wxHF_SEARCH 0x0008
|
#define wxHF_SEARCH 0x0008
|
||||||
#define wxHF_BOOKMARKS 0x0010
|
#define wxHF_BOOKMARKS 0x0010
|
||||||
#define wxHF_OPENFILES 0x0020
|
#define wxHF_OPEN_FILES 0x0020
|
||||||
#define wxHF_PRINT 0x0040
|
#define wxHF_PRINT 0x0040
|
||||||
#define wxHF_FLATTOOLBAR 0x0080
|
#define wxHF_FLAT_TOOLBAR 0x0080
|
||||||
#define wxHF_DEFAULTSTYLE (wxHF_TOOLBAR | wxHF_CONTENTS | wxHF_INDEX | \
|
#define wxHF_MERGE_BOOKS 0x0100
|
||||||
wxHF_SEARCH | wxHF_BOOKMARKS | wxHF_PRINT)
|
#define wxHF_ICONS_BOOK 0x0200
|
||||||
|
#define wxHF_ICONS_BOOK_CHAPTER 0x0400
|
||||||
|
#define wxHF_ICONS_FOLDER 0x0000 // this is 0 since it is default
|
||||||
// Command IDs :
|
#define wxHF_DEFAULT_STYLE (wxHF_TOOLBAR | wxHF_CONTENTS | \
|
||||||
enum
|
wxHF_INDEX | wxHF_SEARCH | \
|
||||||
{
|
wxHF_BOOKMARKS | wxHF_PRINT)
|
||||||
wxID_HTML_PANEL = wxID_HIGHEST + 1,
|
//compatibility:
|
||||||
wxID_HTML_BACK,
|
#define wxHF_OPENFILES wxHF_OPEN_FILES
|
||||||
wxID_HTML_FORWARD,
|
#define wxHF_FLATTOOLBAR wxHF_FLAT_TOOLBAR
|
||||||
wxID_HTML_UPNODE,
|
#define wxHF_DEFAULTSTYLE wxHF_DEFAULT_STYLE
|
||||||
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
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
struct wxHtmlHelpFrameCfg
|
struct wxHtmlHelpFrameCfg
|
||||||
@ -98,9 +75,9 @@ public:
|
|||||||
wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
|
wxHtmlHelpFrame(wxHtmlHelpData* data = NULL) { Init(data); }
|
||||||
wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
|
wxHtmlHelpFrame(wxWindow* parent, wxWindowID wxWindowID,
|
||||||
const wxString& title = wxEmptyString,
|
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,
|
bool Create(wxWindow* parent, wxWindowID id, const wxString& title = wxEmptyString,
|
||||||
int style = wxHF_DEFAULTSTYLE);
|
int style = wxHF_DEFAULT_STYLE);
|
||||||
~wxHtmlHelpFrame();
|
~wxHtmlHelpFrame();
|
||||||
|
|
||||||
wxHtmlHelpData* GetData() { return m_Data; }
|
wxHtmlHelpData* GetData() { return m_Data; }
|
||||||
@ -241,6 +218,8 @@ protected:
|
|||||||
#endif
|
#endif
|
||||||
wxHashTable *m_PagesHash;
|
wxHashTable *m_PagesHash;
|
||||||
wxHelpControllerBase* m_helpController;
|
wxHelpControllerBase* m_helpController;
|
||||||
|
|
||||||
|
int m_hfStyle;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
@ -246,20 +246,4 @@ bool wxHtmlHelpController::Quit()
|
|||||||
return TRUE;
|
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
|
#endif
|
||||||
|
@ -129,6 +129,38 @@ class wxHtmlHelpHtmlWindow : public wxHtmlWindow
|
|||||||
// wxHtmlHelpFrame
|
// 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)
|
IMPLEMENT_DYNAMIC_CLASS(wxHtmlHelpFrame, wxFrame)
|
||||||
|
|
||||||
wxHtmlHelpFrame::wxHtmlHelpFrame(wxWindow* parent, wxWindowID id, const wxString& title,
|
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
|
// 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)
|
// 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),
|
bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id,
|
||||||
int style)
|
const wxString& WXUNUSED(title), int style)
|
||||||
{
|
{
|
||||||
|
m_hfStyle = style;
|
||||||
|
|
||||||
wxImageList *ContentsImageList = new wxImageList(16, 16);
|
wxImageList *ContentsImageList = new wxImageList(16, 16);
|
||||||
ContentsImageList->Add(wxICON(wbook));
|
ContentsImageList->Add(wxICON(wbook));
|
||||||
ContentsImageList->Add(wxICON(wfolder));
|
ContentsImageList->Add(wxICON(wfolder));
|
||||||
@ -223,11 +257,11 @@ bool wxHtmlHelpFrame::Create(wxWindow* parent, wxWindowID id, const wxString& WX
|
|||||||
CreateStatusBar();
|
CreateStatusBar();
|
||||||
|
|
||||||
// toolbar?
|
// toolbar?
|
||||||
if (style & (wxHF_TOOLBAR | wxHF_FLATTOOLBAR))
|
if (style & (wxHF_TOOLBAR | wxHF_FLAT_TOOLBAR))
|
||||||
{
|
{
|
||||||
wxToolBar *toolBar = CreateToolBar(wxNO_BORDER | wxTB_HORIZONTAL |
|
wxToolBar *toolBar = CreateToolBar(wxNO_BORDER | wxTB_HORIZONTAL |
|
||||||
wxTB_DOCKABLE |
|
wxTB_DOCKABLE |
|
||||||
(style & wxHF_FLATTOOLBAR ? wxTB_FLAT : 0));
|
(style & wxHF_FLAT_TOOLBAR ? wxTB_FLAT : 0));
|
||||||
toolBar->SetMargins( 2, 2 );
|
toolBar->SetMargins( 2, 2 );
|
||||||
AddToolbarButtons(toolBar, style);
|
AddToolbarButtons(toolBar, style);
|
||||||
toolBar->Realize();
|
toolBar->Realize();
|
||||||
@ -533,10 +567,10 @@ void wxHtmlHelpFrame::AddToolbarButtons(wxToolBar *toolBar, int style)
|
|||||||
FALSE, -1, -1, (wxObject *) NULL,
|
FALSE, -1, -1, (wxObject *) NULL,
|
||||||
_("Next page"));
|
_("Next page"));
|
||||||
|
|
||||||
if ((style & wxHF_PRINT) || (style & wxHF_OPENFILES))
|
if ((style & wxHF_PRINT) || (style & wxHF_OPEN_FILES))
|
||||||
toolBar->AddSeparator();
|
toolBar->AddSeparator();
|
||||||
|
|
||||||
if (style & wxHF_OPENFILES)
|
if (style & wxHF_OPEN_FILES)
|
||||||
toolBar->AddTool(wxID_HTML_OPENFILE, wopenBitmap, wxNullBitmap,
|
toolBar->AddTool(wxID_HTML_OPENFILE, wopenBitmap, wxNullBitmap,
|
||||||
FALSE, -1, -1, (wxObject *) NULL,
|
FALSE, -1, -1, (wxObject *) NULL,
|
||||||
_("Open HTML document"));
|
_("Open HTML document"));
|
||||||
@ -693,8 +727,6 @@ bool wxHtmlHelpFrame::KeywordSearch(const wxString& keyword)
|
|||||||
return (foundcnt > 0);
|
return (foundcnt > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MAX_ROOTS 64
|
|
||||||
|
|
||||||
void wxHtmlHelpFrame::CreateContents()
|
void wxHtmlHelpFrame::CreateContents()
|
||||||
{
|
{
|
||||||
if (! m_ContentsBox)
|
if (! m_ContentsBox)
|
||||||
@ -708,43 +740,89 @@ void wxHtmlHelpFrame::CreateContents()
|
|||||||
|
|
||||||
int cnt = m_Data->GetContentsCnt();
|
int cnt = m_Data->GetContentsCnt();
|
||||||
int i;
|
int i;
|
||||||
|
size_t booksCnt = m_Data->GetBookRecArray().GetCount();
|
||||||
|
|
||||||
wxHtmlContentsItem *it;
|
wxHtmlContentsItem *it;
|
||||||
|
|
||||||
|
const int MAX_ROOTS = 64;
|
||||||
wxTreeItemId roots[MAX_ROOTS];
|
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();
|
m_ContentsBox->DeleteAllItems();
|
||||||
roots[0] = m_ContentsBox->AddRoot(_("(Help)"));
|
|
||||||
m_ContentsBox->SetItemImage(roots[0], IMG_RootFolder);
|
// Don't show (Help) root if there's only one boook
|
||||||
m_ContentsBox->SetItemSelectedImage(roots[0], IMG_RootFolder);
|
if (booksCnt > 1)
|
||||||
imaged[0] = TRUE;
|
{
|
||||||
|
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++)
|
for (it = m_Data->GetContents(), i = 0; i < cnt; i++, it++)
|
||||||
{
|
{
|
||||||
roots[it->m_Level + 1] = m_ContentsBox->AppendItem(
|
// Handle books:
|
||||||
roots[it->m_Level], it->m_Name, IMG_Page, -1,
|
if (it->m_Level == 0)
|
||||||
new wxHtmlHelpTreeItemData(i));
|
{
|
||||||
|
// 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(),
|
m_PagesHash->Put(it->GetFullPath(),
|
||||||
new wxHtmlHelpHashData(i, roots[it->m_Level + 1]));
|
new wxHtmlHelpHashData(i, roots[it->m_Level + 1]));
|
||||||
|
|
||||||
if (it->m_Level == 0)
|
// Set the icon for the node one level up in the hiearachy,
|
||||||
{
|
// unless already done (see comment above imaged[] declaration)
|
||||||
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;
|
|
||||||
|
|
||||||
if (!imaged[it->m_Level])
|
if (!imaged[it->m_Level])
|
||||||
{
|
{
|
||||||
m_ContentsBox->SetItemImage(roots[it->m_Level], IMG_Folder);
|
int image = IMG_Folder;
|
||||||
m_ContentsBox->SetItemSelectedImage(roots[it->m_Level], 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;
|
imaged[it->m_Level] = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ContentsBox->Expand(roots[0]);
|
m_ContentsBox->Expand(roots[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user