Add <span> tag and limited support for CSS styles to wxHTML.

Parse "style" attributes of the HTML tags and honour those of them that can be
mapped to the HTML 3 attributes.

Also add a handler for <span> tag.

Closes #10631.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64443 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2010-05-30 23:12:25 +00:00
parent c9554803fa
commit f68e16c5fc
26 changed files with 590 additions and 3 deletions

View File

@@ -56,6 +56,7 @@ See mod_*.cpp and htmlwin.cpp for example :-)
FORCE_LINK(m_hline) \
FORCE_LINK(m_links) \
FORCE_LINK(m_tables) \
FORCE_LINK(m_span) \
FORCE_LINK(m_style)

View File

@@ -97,6 +97,10 @@ public:
// (or ("WhaT.jpg") if with_quotes == true)
wxString GetParam(const wxString& par, bool with_quotes = false) const;
// Return true if the string could be parsed as an HTML colour and false
// otherwise.
static bool ParseAsColour(const wxString& str, wxColour *clr);
// Convenience functions:
bool GetParamAsColour(const wxString& par, wxColour *clr) const;
bool GetParamAsInt(const wxString& par, int *clr) const;

View File

@@ -0,0 +1,53 @@
/////////////////////////////////////////////////////////////////////////////
// Name: wx/html/styleparams.h
// Purpose: wxHtml helper code for extracting style parameters
// Author: Nigel Paton
// RCS-ID: $Id$
// Copyright: wxWidgets team
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_HTML_STYLEPARAMS_H_
#define _WX_HTML_STYLEPARAMS_H_
#include "wx/defs.h"
#if wxUSE_HTML
#include "wx/arrstr.h"
class WXDLLIMPEXP_FWD_HTML wxHtmlTag;
// This is a private class used by wxHTML to parse "style" attributes of HTML
// elements. Currently both parsing and support for the parsed values is pretty
// trivial.
class WXDLLIMPEXP_HTML wxHtmlStyleParams
{
public:
// Construct a style parameters object corresponding to the style attribute
// of the given HTML tag.
wxHtmlStyleParams(const wxHtmlTag& tag);
// Check whether the named parameter is present or not.
bool HasParam(const wxString& par) const
{
return m_names.Index(par, false /* ignore case */) != wxNOT_FOUND;
}
// Get the value of the named parameter, return empty string if none.
wxString GetParam(const wxString& par) const
{
int index = m_names.Index(par, false);
return index == wxNOT_FOUND ? wxString() : m_values[index];
}
private:
// Arrays if names and values of the parameters
wxArrayString
m_names,
m_values;
};
#endif // wxUSE_HTML
#endif // _WX_HTML_STYLEPARAMS_H_

View File

@@ -107,6 +107,8 @@ public:
int GetFontSize() const {return m_FontSize;}
void SetFontSize(int s);
// Try to map a font size in points to the HTML 1-7 font size range.
void SetFontPointSize(int pt);
int GetFontBold() const {return m_FontBold;}
void SetFontBold(int x) {m_FontBold = x;}
int GetFontItalic() const {return m_FontItalic;}