git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39882 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        wx/richtext/richedithtml.h
 | 
						|
// Purpose:     HTML I/O for wxRichTextCtrl
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     2005-09-30
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_RICHTEXTHTML_H_
 | 
						|
#define _WX_RICHTEXTHTML_H_
 | 
						|
 | 
						|
/*!
 | 
						|
 * Includes
 | 
						|
 */
 | 
						|
 | 
						|
#include "wx/richtext/richtextbuffer.h"
 | 
						|
 | 
						|
/*!
 | 
						|
 * wxRichTextHTMLHandler
 | 
						|
 */
 | 
						|
 | 
						|
class WXDLLIMPEXP_RICHTEXT wxRichTextHTMLHandler: public wxRichTextFileHandler
 | 
						|
{
 | 
						|
    DECLARE_CLASS(wxRichTextHTMLHandler)
 | 
						|
public:
 | 
						|
    wxRichTextHTMLHandler(const wxString& name = wxT("HTML"), const wxString& ext = wxT("html"), int type = wxRICHTEXT_TYPE_HTML)
 | 
						|
        : wxRichTextFileHandler(name, ext, type)
 | 
						|
        { }
 | 
						|
 | 
						|
    /// Can we save using this handler?
 | 
						|
    virtual bool CanSave() const { return true; }
 | 
						|
 | 
						|
    /// Can we load using this handler?
 | 
						|
    virtual bool CanLoad() const { return false; }
 | 
						|
 | 
						|
    /// Can we handle this filename (if using files)? By default, checks the extension.
 | 
						|
    virtual bool CanHandle(const wxString& filename) const;
 | 
						|
 | 
						|
protected:
 | 
						|
 | 
						|
#if wxUSE_STREAMS
 | 
						|
    virtual bool DoLoadFile(wxRichTextBuffer *buffer, wxInputStream& stream);
 | 
						|
    virtual bool DoSaveFile(wxRichTextBuffer *buffer, wxOutputStream& stream);
 | 
						|
#endif
 | 
						|
 | 
						|
    /// Output character formatting
 | 
						|
    virtual void BeginCharacterFormatting(const wxTextAttrEx& currentStyle, const wxTextAttrEx& thisStyle, wxOutputStream& stream );
 | 
						|
    virtual void EndCharacterFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream );
 | 
						|
	
 | 
						|
	/// Output paragraph formatting
 | 
						|
    virtual void OutputParagraphFormatting(const wxTextAttrEx& WXUNUSED(currentStyle), const wxTextAttrEx& thisStyle, wxOutputStream& stream/*, bool start*/);
 | 
						|
	
 | 
						|
	/// Converts an image to its base64 equivalent
 | 
						|
	void Image_to_Base64(wxRichTextImage* image, wxOutputStream& stream);
 | 
						|
	
 | 
						|
	/// Builds required indentation 
 | 
						|
	void Indent( const wxTextAttrEx& thisStyle, wxTextOutputStream& str );
 | 
						|
	
 | 
						|
	/// Left indent
 | 
						|
	void LIndent( const wxTextAttrEx& thisStyle, wxTextOutputStream& str );
 | 
						|
	
 | 
						|
	/// Converts from pt to size property compatible height
 | 
						|
	long Pt_To_Size(long size);
 | 
						|
	
 | 
						|
	/// Typical base64 encoder
 | 
						|
	wxChar* b64enc( unsigned char* input, size_t in_len );
 | 
						|
	
 | 
						|
	/// Gets the mime type of the given wxBITMAP_TYPE
 | 
						|
    const wxChar* GetMimeType(int imageType);
 | 
						|
	
 | 
						|
	/// Gets the html equivalent of the specified value
 | 
						|
	wxString GetAlignment( const wxTextAttrEx& thisStyle );
 | 
						|
 | 
						|
	/// Generates   array for indentations
 | 
						|
	wxString SymbolicIndent(long indent);
 | 
						|
	
 | 
						|
	/// Finds the html equivalent of the specified bullet
 | 
						|
	void TypeOfList( const wxTextAttrEx& thisStyle, wxString& tag );
 | 
						|
	
 | 
						|
	/// Closes existings or Opens new tables for navigation to an item's horizontal position.
 | 
						|
	void NavigateToListPosition( const wxTextAttrEx& thisStyle, wxTextOutputStream& str );
 | 
						|
	
 | 
						|
	/// Indentation values of the table tags
 | 
						|
	wxArrayInt m_indents;
 | 
						|
	
 | 
						|
	/// Horizontal position of the current table
 | 
						|
	long m_indent;
 | 
						|
 | 
						|
	/// Is there any opened font tag 
 | 
						|
	bool m_font;
 | 
						|
 | 
						|
	/// Is there any opened ul/ol tag
 | 
						|
	bool m_list;
 | 
						|
 | 
						|
	/// type of list, ul or ol?
 | 
						|
	bool m_is_ul;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
#endif
 | 
						|
    // _WX_RICHTEXTXML_H_
 |