if ( toSelection )
{
- dc.SetBackgroundMode(wxBRUSHSTYLE_SOLID);
+ dc.SetBackgroundMode(wxSOLID);
dc.SetTextForeground(info.GetStyle().GetSelectedTextColour(fg));
dc.SetTextBackground(info.GetStyle().GetSelectedTextBgColour(bg));
dc.SetBackground(wxBrush(info.GetStyle().GetSelectedTextBgColour(bg),
}
else
{
- dc.SetBackgroundMode(wxBRUSHSTYLE_TRANSPARENT);
+ const int mode = info.GetState().GetBgMode();
+ dc.SetBackgroundMode(mode);
dc.SetTextForeground(fg);
dc.SetTextBackground(bg);
- dc.SetBackground(wxBrush(bg, wxBRUSHSTYLE_SOLID));
+ if ( mode != wxTRANSPARENT )
+ dc.SetBackground(wxBrush(bg, mode));
}
}
{
wxHtmlSelectionState selstate = info.GetState().GetSelectionState();
// Not changing selection state, draw the word in single mode:
- if ( selstate != wxHTML_SEL_OUT &&
- dc.GetBackgroundMode() != wxBRUSHSTYLE_SOLID )
- {
- SwitchSelState(dc, info, true);
- }
- else if ( selstate == wxHTML_SEL_OUT &&
- dc.GetBackgroundMode() == wxBRUSHSTYLE_SOLID )
- {
- SwitchSelState(dc, info, false);
- }
+ SwitchSelState(dc, info, selstate != wxHTML_SEL_OUT);
dc.DrawText(m_Word, x + m_PosX, y + m_PosY);
drawSelectionAfterCell = (selstate != wxHTML_SEL_OUT);
}
if (m_Flags & wxHTML_CLR_BACKGROUND)
{
state.SetBgColour(m_Colour);
- if (state.GetSelectionState() != wxHTML_SEL_IN)
- {
- dc.SetTextBackground(m_Colour);
- dc.SetBackground(wxBrush(m_Colour, wxBRUSHSTYLE_SOLID));
- }
- else
- {
- wxColour c = info.GetStyle().GetSelectedTextBgColour(m_Colour);
- dc.SetTextBackground(c);
- dc.SetBackground(wxBrush(c, wxBRUSHSTYLE_SOLID));
- }
+ state.SetBgMode(wxSOLID);
+ const wxColour c = state.GetSelectionState() == wxHTML_SEL_IN
+ ? info.GetStyle().GetSelectedTextBgColour(m_Colour)
+ : m_Colour;
+ dc.SetTextBackground(c);
+ dc.SetBackground(c);
+ dc.SetBackgroundMode(wxSOLID);
+ }
+ if (m_Flags & wxHTML_CLR_TRANSPARENT_BACKGROUND)
+ {
+ state.SetBgColour(m_Colour);
+ state.SetBgMode(wxTRANSPARENT);
+ const wxColour c = state.GetSelectionState() == wxHTML_SEL_IN
+ ? info.GetStyle().GetSelectedTextBgColour(m_Colour)
+ : m_Colour;
+ dc.SetTextBackground(c);
+ dc.SetBackgroundMode(wxTRANSPARENT);
}
}