⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chmhtmlwindow.h

📁 一个CHM在LINUX下的使用工具
💻 H
字号:
/*  Copyright (C) 2003  Razvan Cojocaru <razvanco@gmx.net>   This program is free software; you can redistribute it and/or modify  it under the terms of the GNU General Public License as published by  the Free Software Foundation; either version 2 of the License, or  (at your option) any later version.    This program is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  GNU General Public License for more details.    You should have received a copy of the GNU General Public License  along with this program; if not, write to the Free Software  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.*/#ifndef __CHMHTMLWINDOW_H_#define __CHMHTMLWINDOW_H_#include <wx/html/htmlwin.h>#include <wx/treectrl.h>#include <wx/menu.h>#include <chmfinddialog.h>//! Event IDs.enum {	ID_CopySel = 1216,	ID_CopyLink,	ID_PopupForward,	ID_PopupBack,	ID_PopupFind,};//! Minimize dependencies. Forward declaration.class CHMFrame;/*!  \class wxHtmlWindow  \brief wxWidgets HTML widget class.*//*!   \brief Custom HTML widget class. Needed for sychnronization between  the topics tree control and the currently displayed page.*/class CHMHtmlWindow : public wxHtmlWindow {public:	/*!	  \brief Initializes the widget.	  \param parent The parent widget.	  \param tc Pointer to the tree control we want to synchronize	  with.	  \param frame Outer frame.	 */	CHMHtmlWindow(wxWindow *parent, wxTreeCtrl *tc, CHMFrame* frame);	//! Destructor. Deletes heap objects allocated in the constructor.	~CHMHtmlWindow();	//! Override. Looks up the wanted page in the tree and selects it.	bool LoadPage(const wxString& location);	/*!	  \brief Dictates the behaviour of LoadPage(). If SetSync()	  has been called with a true parameter, the tree control will	  be updated by LoadPage(). Otherwise, it will not be updated.	  \param value Synchronize the tree widget on load?	 */	void SetSync(bool value) { _syncTree = value; }		/*!	  Returns true if the tree control's EVT_TREE_SEL_CHANGED	  event happened as a result of the CHMHtmlWindow calling	  SelectItem() on it.	*/	bool IsCaller() const { return _found; }	/*! 	  \brief Let the htmlWindow know the next param to LoadPage() will 	  be an absolute path.	*/	void AbsoluteFollows() { _absolute = true; }public:	/*!	  \brief Finds the first occurence of word in the displayed page.	  \param parent Root of the wxHtmlCell tree where the search should	  begin.	  \param word The word we're looking for. If more words separated	  by spaces are typed in, only the first one is taken into	  account.	  \param wholeWords If true, will search for words that match	  word exactly.	  \param caseSensitive If true, the search will be performed	  case sensitive.	  \return A valid cell if the result was found, NULL otherwise.	 */	wxHtmlCell* FindFirst(wxHtmlCell* parent, const wxString& word, 			      bool wholeWords, bool caseSensitive);		/*! 	  \brief Same as FindFirst(), but continues the search from start	  (start is considered in the search process).	*/	wxHtmlCell* FindNext(wxHtmlCell *start, 			     const wxString& word, bool wholeWords,			     bool caseSensitive);	//! Clears the current selection.	void ClearSelection();		// Needs to be public, cause I call it from CHMHtmlFrame.	//! Called when the user selects 'Find' from the popup menu.	void OnFind(wxCommandEvent& event);protected:		//! Called when the user selects 'Copy' from the popup menu.	void OnCopy(wxCommandEvent& event);		//! Called when the user selects 'Forward' from the popup menu.	void OnForward(wxCommandEvent& event);	//! Called when the user selects 'Back' from the popup menu.	void OnBack(wxCommandEvent& event);		//! Called when the user selects 'Copy link' from the popup menu.	void OnCopyLink(wxCommandEvent& event);protected:		//! Called when the user right clicks the HTML window.	void OnRightClick(wxMouseEvent& event);#ifdef __WXMAC__	//! Handles scrollwheel support.	void HandleOnMouseWheel(wxMouseEvent& event);#endif 	//! Overridden to correct relative images paths.	wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type,					 const wxString& url,					 wxString *redirect) const;	//! Overridden. Called when the user clicks on a link.	void OnLinkClicked(const wxHtmlLinkInfo& link);private:	//! Helper. Recursively looks for the opened page in the tree.	void Sync(wxTreeItemId root, const wxString& page);	//! Helper. Returns the prefix of the currently loaded page.	wxString GetPrefix(const wxString& location) const;	//! Helper. Fixes ../dir/file locations.	bool FixRelativePath(wxString& location, const wxString& prefix) const;	private:	wxTreeCtrl* _tcl;	bool _syncTree;	bool _found;	wxMenu *_menu;	wxString _prefix;	bool _absolute;	CHMFrame *_frame;	wxHtmlLinkInfo *_link;	CHMFindDialog* _fdlg;private:	DECLARE_EVENT_TABLE()};#endif // __CHMHTMLWINDOW_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -