Add support for CSS "color", "size" and "font" to wxHTML <font>
Simply map them to the existing HTML parameters, just as we already do for a few other styles. Closes #16773.
This commit is contained in:
committed by
Vadim Zeitlin
parent
0ed580f451
commit
d3931ea660
@@ -98,6 +98,7 @@ All (GUI):
|
|||||||
- Make results of wxDC::DrawEllipticArc() consistent across all platforms.
|
- Make results of wxDC::DrawEllipticArc() consistent across all platforms.
|
||||||
- XRC handler for wxAuiToolBar added (Kinaou Hervé, David Hart).
|
- XRC handler for wxAuiToolBar added (Kinaou Hervé, David Hart).
|
||||||
- Improve wxLIST_AUTOSIZE_XXX support in generic wxListCtrl (Kinaou Hervé).
|
- Improve wxLIST_AUTOSIZE_XXX support in generic wxListCtrl (Kinaou Hervé).
|
||||||
|
- Support "color", "size" and "font" CSS for fonts in wxHTML (Kinaou Hervé).
|
||||||
- Add wxCursor::GetHotSpot().
|
- Add wxCursor::GetHotSpot().
|
||||||
- Add wxFD_NO_FOLLOW style for wxFileDialog (Luca Bacci).
|
- Add wxFD_NO_FOLLOW style for wxFileDialog (Luca Bacci).
|
||||||
- Add support for embedding bitmaps in generated SVG in wxSVGFileDC (iwbnwif).
|
- Add support for embedding bitmaps in generated SVG in wxSVGFileDC (iwbnwif).
|
||||||
|
@@ -464,6 +464,9 @@ wxHtmlTag::wxHtmlTag(wxHtmlTag *parent,
|
|||||||
{ "vertical-align", "VALIGN" },
|
{ "vertical-align", "VALIGN" },
|
||||||
{ "background", "BGCOLOR" },
|
{ "background", "BGCOLOR" },
|
||||||
{ "background-color", "BGCOLOR" },
|
{ "background-color", "BGCOLOR" },
|
||||||
|
{ "color", "COLOR" },
|
||||||
|
{ "size", "SIZE" },
|
||||||
|
{ "face", "FACE" },
|
||||||
};
|
};
|
||||||
|
|
||||||
wxHtmlStyleParams styleParams(*this);
|
wxHtmlStyleParams styleParams(*this);
|
||||||
@@ -613,6 +616,10 @@ wxHtmlTag::GetParamAsIntOrPercent(const wxString& par,
|
|||||||
{
|
{
|
||||||
isPercent = true;
|
isPercent = true;
|
||||||
}
|
}
|
||||||
|
else if ( param.EndsWith("px", &num) )
|
||||||
|
{
|
||||||
|
isPercent = false;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
isPercent = false;
|
isPercent = false;
|
||||||
|
@@ -21,6 +21,7 @@
|
|||||||
#include "wx/html/m_templ.h"
|
#include "wx/html/m_templ.h"
|
||||||
#include "wx/fontenum.h"
|
#include "wx/fontenum.h"
|
||||||
#include "wx/tokenzr.h"
|
#include "wx/tokenzr.h"
|
||||||
|
#include "wx/html/styleparams.h"
|
||||||
|
|
||||||
FORCE_LINK_ME(m_fonts)
|
FORCE_LINK_ME(m_fonts)
|
||||||
|
|
||||||
@@ -35,9 +36,19 @@ TAG_HANDLER_BEGIN(FONT, "FONT" )
|
|||||||
TAG_HANDLER_PROC(tag)
|
TAG_HANDLER_PROC(tag)
|
||||||
{
|
{
|
||||||
wxColour oldclr = m_WParser->GetActualColor();
|
wxColour oldclr = m_WParser->GetActualColor();
|
||||||
|
wxColour oldbackclr = m_WParser->GetActualBackgroundColor();
|
||||||
|
int oldbackmode = m_WParser->GetActualBackgroundMode();
|
||||||
int oldsize = m_WParser->GetFontSize();
|
int oldsize = m_WParser->GetFontSize();
|
||||||
|
int oldbold = m_WParser->GetFontBold();
|
||||||
|
int olditalic = m_WParser->GetFontItalic();
|
||||||
|
int oldunderlined = m_WParser->GetFontUnderlined();
|
||||||
wxString oldface = m_WParser->GetFontFace();
|
wxString oldface = m_WParser->GetFontFace();
|
||||||
|
|
||||||
|
// Load any style parameters
|
||||||
|
wxHtmlStyleParams styleParams(tag);
|
||||||
|
|
||||||
|
ApplyStyle(styleParams);
|
||||||
|
|
||||||
{
|
{
|
||||||
wxColour clr;
|
wxColour clr;
|
||||||
if (tag.GetParamAsColour(wxT("COLOR"), &clr))
|
if (tag.GetParamAsColour(wxT("COLOR"), &clr))
|
||||||
@@ -45,6 +56,11 @@ TAG_HANDLER_BEGIN(FONT, "FONT" )
|
|||||||
m_WParser->SetActualColor(clr);
|
m_WParser->SetActualColor(clr);
|
||||||
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
|
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr));
|
||||||
}
|
}
|
||||||
|
if (tag.GetParamAsColour(wxT("BGCOLOR"), &clr))
|
||||||
|
{
|
||||||
|
m_WParser->SetActualBackgroundColor(clr);
|
||||||
|
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(clr, wxHTML_CLR_BACKGROUND));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -84,14 +100,33 @@ TAG_HANDLER_BEGIN(FONT, "FONT" )
|
|||||||
|
|
||||||
ParseInner(tag);
|
ParseInner(tag);
|
||||||
|
|
||||||
if (oldface != m_WParser->GetFontFace())
|
if ((oldface != m_WParser->GetFontFace()) ||
|
||||||
|
(oldunderlined != m_WParser->GetFontUnderlined()) ||
|
||||||
|
(olditalic != m_WParser->GetFontItalic()) ||
|
||||||
|
(oldbold != m_WParser->GetFontBold()) ||
|
||||||
|
(oldsize != m_WParser->GetFontSize()))
|
||||||
{
|
{
|
||||||
m_WParser->SetFontFace(oldface);
|
|
||||||
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
|
if (oldface != m_WParser->GetFontFace())
|
||||||
}
|
{
|
||||||
if (oldsize != m_WParser->GetFontSize())
|
m_WParser->SetFontFace(oldface);
|
||||||
{
|
}
|
||||||
m_WParser->SetFontSize(oldsize);
|
if (oldunderlined != m_WParser->GetFontUnderlined())
|
||||||
|
{
|
||||||
|
m_WParser->SetFontUnderlined(oldunderlined);
|
||||||
|
}
|
||||||
|
if (olditalic != m_WParser->GetFontItalic())
|
||||||
|
{
|
||||||
|
m_WParser->SetFontItalic(olditalic);
|
||||||
|
}
|
||||||
|
if (oldbold != m_WParser->GetFontBold())
|
||||||
|
{
|
||||||
|
m_WParser->SetFontBold(oldbold);
|
||||||
|
}
|
||||||
|
if (oldsize != m_WParser->GetFontSize())
|
||||||
|
{
|
||||||
|
m_WParser->SetFontSize(oldsize);
|
||||||
|
}
|
||||||
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
|
m_WParser->GetContainer()->InsertCell(new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
|
||||||
}
|
}
|
||||||
if (oldclr != m_WParser->GetActualColor())
|
if (oldclr != m_WParser->GetActualColor())
|
||||||
@@ -99,6 +134,15 @@ TAG_HANDLER_BEGIN(FONT, "FONT" )
|
|||||||
m_WParser->SetActualColor(oldclr);
|
m_WParser->SetActualColor(oldclr);
|
||||||
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr));
|
m_WParser->GetContainer()->InsertCell(new wxHtmlColourCell(oldclr));
|
||||||
}
|
}
|
||||||
|
if (oldbackmode != m_WParser->GetActualBackgroundMode() ||
|
||||||
|
oldbackclr != m_WParser->GetActualBackgroundColor())
|
||||||
|
{
|
||||||
|
m_WParser->SetActualBackgroundMode(oldbackmode);
|
||||||
|
m_WParser->SetActualBackgroundColor(oldbackclr);
|
||||||
|
m_WParser->GetContainer()->InsertCell(
|
||||||
|
new wxHtmlColourCell(oldbackclr, oldbackmode == wxTRANSPARENT ? wxHTML_CLR_TRANSPARENT_BACKGROUND : wxHTML_CLR_BACKGROUND));
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user