From 5db89e99cbb110466f604db74e9435e2b18b998a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karsten=20Ball=C3=BCder?= Date: Thu, 13 May 1999 17:18:32 +0000 Subject: [PATCH] some changes, untested git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2452 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- user/wxLayout/wxllist.cpp | 40 ++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/user/wxLayout/wxllist.cpp b/user/wxLayout/wxllist.cpp index 89b8c26112..d0a3bc05a5 100644 --- a/user/wxLayout/wxllist.cpp +++ b/user/wxLayout/wxllist.cpp @@ -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