some changes, untested

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Karsten Ballüder 1999-05-13 17:18:32 +00:00
parent 67df978396
commit 5db89e99cb

View File

@ -340,7 +340,7 @@ wxLayoutObjectCmd::wxLayoutObjectCmd(int size, int family, int style, int
{
m_StyleInfo = new
wxLayoutStyleInfo(size,family,style,weight,underline,fg,bg);
m_font = m_StyleInfo->GetFont(NULL);
m_font = NULL;
}
wxLayoutObject *
@ -374,7 +374,7 @@ wxLayoutObjectCmd::Copy(void)
wxLayoutObjectCmd::~wxLayoutObjectCmd()
{
delete m_StyleInfo;
delete m_font;
if(m_font) delete m_font;
}
wxLayoutStyleInfo *
@ -396,6 +396,10 @@ wxLayoutObjectCmd::Draw(wxDC &dc, wxPoint const & /* coords */,
void
wxLayoutObjectCmd::Layout(wxDC &dc, class wxLayoutList * llist)
{
if(m_font) delete m_font;
m_font = m_StyleInfo->GetFont(llist->GetStyleInfo());
// this get called, so that recalculation uses right font sizes
Draw(dc, wxPoint(0,0), llist);
}
@ -1199,14 +1203,32 @@ wxLayoutList::SetFont(int family, int size, int style, int weight,
int underline, wxColour *fg,
wxColour *bg)
{
if(family != -1) m_FontFamily = family;
if(size != -1) m_FontPtSize = size;
if(style != -1) m_FontStyle = style;
if(weight != -1) m_FontWeight = weight;
if(underline != -1) m_FontUnderline = underline != 0;
if(family != -1) m_CurrentSetting.family = family;
if(size != -1) m_CurrentSetting.size = size;
if(style != -1) m_CurrentSetting.style = style;
if(weight != -1) m_CurrentSetting.weight = weight;
if(underline != -1) m_CurrentSetting.underline = underline != 0;
if(fg)
{
m_CurrentSetting.fg_valid = true;
m_CurrentSetting.fg_red = fg->Red();
m_CurrentSetting.fg_blue = fg->Blue();
m_CurrentSetting.fg_green = fg->Green();
}
if(bg)
{
m_CurrentSetting.bg_valid = true;
m_CurrentSetting.bg_red = bg->Red();
m_CurrentSetting.bg_blue = bg->Blue();
m_CurrentSetting.bg_green = bg->Green();
}
Insert(
new wxLayoutObjectCmd(m_FontPtSize,m_FontFamily,m_FontStyle,m_FontWeight,m_FontUnderline,
fg, bg));
new wxLayoutObjectCmd(
m_CurrentSetting.size,
m_CurrentSetting.family,
m_CurrentSetting.style,
m_CurrentSetting.weight,
m_CurrentSetting.underline, fg, bg));
}
void