starmath/inc/dialog.hxx | 16 +-- starmath/source/dialog.cxx | 217 +++++++++++++++------------------------------ 2 files changed, 84 insertions(+), 149 deletions(-)
New commits: commit f4841c9a8acf6c0513783fb76b72843d0677117c Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk> Date: Thu May 14 14:37:23 2015 +0900 more refactorings in starmath dialogs.. Change-Id: I24b6584a72b4a8db031d9bf8906d8682e32e4545 diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx index ec70f02..4a64ca5 100644 --- a/starmath/inc/dialog.hxx +++ b/starmath/inc/dialog.hxx @@ -100,23 +100,24 @@ class SmFontDialog : public ModalDialog VclPtr<CheckBox> m_pItalicCheckBox; VclPtr<SmShowFont> m_pShowFont; - vcl::Font Face; + vcl::Font maFont; DECL_LINK(FontSelectHdl, ComboBox *); DECL_LINK(FontModifyHdl, ComboBox *); DECL_LINK(AttrChangeHdl, CheckBox *); - void InitColor_Impl(); - - virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; + virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; public: SmFontDialog(vcl::Window * pParent, OutputDevice *pFntListDevice, bool bHideCheckboxes); virtual ~SmFontDialog(); virtual void dispose() SAL_OVERRIDE; - const vcl::Font& GetFont() const { return Face; } - void SetFont(const vcl::Font &rFont); + const vcl::Font& GetFont() const + { + return maFont; + } + void SetFont(const vcl::Font &rFont); }; /**************************************************************************/ @@ -372,7 +373,6 @@ class SmSymbolDialog : public ModalDialog void FillSymbolSets(bool bDeleteText = true); void SetSymbolSetManager(SmSymbolManager &rMgr); const SmSym *GetSymbol() const; - void InitColor_Impl(); virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; @@ -467,8 +467,6 @@ class SmSymDefineDialog : public ModalDialog return const_cast<SmSymDefineDialog *>(this)->GetSymbol(rComboBox); } - void InitColor_Impl(); - virtual void DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE; public: diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx index f28a9a2..c305e06 100644 --- a/starmath/source/dialog.cxx +++ b/starmath/source/dialog.cxx @@ -37,7 +37,6 @@ #include <osl/diagnose.h> #include <svx/ucsubset.hxx> - #include "dialog.hxx" #include "starmath.hrc" #include "config.hxx" @@ -48,6 +47,26 @@ #include "unomodel.hxx" +namespace +{ + +void lclGetSettingColors(Color& rBackgroundColor, Color& rTextColor) +{ + const StyleSettings& rStyleSettings = Application::GetSettings().GetStyleSettings(); + if (rStyleSettings.GetHighContrastMode()) + { + rBackgroundColor = rStyleSettings.GetFieldColor().GetColor(); + rTextColor = rStyleSettings.GetFieldTextColor().GetColor(); + } + else + { + rBackgroundColor = COL_WHITE; + rTextColor = COL_BLACK; + } +} + +} // end anonymous namespace + // Since it's better to set/query the FontStyle via its attributes rather // than via the StyleName we create a way to translate // Attribute <-> StyleName @@ -68,7 +87,6 @@ public: const OUString& GetStyleName(sal_uInt16 nIdx) const; }; - SmFontStyles::SmFontStyles() : aNormal (ResId(RID_FONTREGULAR, *SM_MOD()->GetResMgr())), aBold (ResId(RID_FONTBOLD, *SM_MOD()->GetResMgr())), @@ -80,7 +98,6 @@ SmFontStyles::SmFontStyles() : aBoldItalic += aItalic; } - const OUString& SmFontStyles::GetStyleName(const vcl::Font& rFont) const { //! compare also SmSpecialNode::Prepare @@ -96,7 +113,6 @@ const OUString& SmFontStyles::GetStyleName(const vcl::Font& rFont) const return aNormal; } - const OUString& SmFontStyles::GetStyleName( sal_uInt16 nIdx ) const { // 0 = "normal", 1 = "italic", @@ -115,15 +131,12 @@ const OUString& SmFontStyles::GetStyleName( sal_uInt16 nIdx ) const return aEmpty; } - const SmFontStyles & GetFontStyles() { static const SmFontStyles aImpl; return aImpl; } - - void SetFontStyle(const OUString &rStyleName, vcl::Font &rFont) { // Find index related to StyleName. For an empty StyleName it's assumed to be @@ -242,14 +255,17 @@ void SmShowFont::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRec { Window::Paint(rRenderContext, rRect); - Color aTxtColor(rRenderContext.GetTextColor()); + Color aBackColor; + Color aTextColor; + lclGetSettingColors(aBackColor, aTextColor); + + rRenderContext.SetBackground(Wallpaper(aBackColor)); + vcl::Font aFont(maFont); aFont.SetSize(Size(0, 24 * rRenderContext.GetDPIScaleFactor())); aFont.SetAlign(ALIGN_TOP); rRenderContext.SetFont(aFont); - - // keep old text color (new font may have different color) - rRenderContext.SetTextColor(aTxtColor); + rRenderContext.SetTextColor(aTextColor); OUString sText(rRenderContext.GetFont().GetName()); Size aTextSize(rRenderContext.GetTextWidth(sText), rRenderContext.GetTextHeight()); @@ -282,8 +298,8 @@ void SmShowFont::SetFont(const vcl::Font& rFont) IMPL_LINK( SmFontDialog, FontSelectHdl, ComboBox *, pComboBox ) { - Face.SetName(pComboBox->GetText()); - m_pShowFont->SetFont(Face); + maFont.SetName(pComboBox->GetText()); + m_pShowFont->SetFont(maFont); return 0; } @@ -298,32 +314,30 @@ IMPL_LINK( SmFontDialog, FontModifyHdl, ComboBox *, pComboBox ) return 0; } - IMPL_LINK( SmFontDialog, AttrChangeHdl, CheckBox *, /*pCheckBox*/ ) { if (m_pBoldCheckBox->IsChecked()) - Face.SetWeight(FontWeight(WEIGHT_BOLD)); + maFont.SetWeight(FontWeight(WEIGHT_BOLD)); else - Face.SetWeight(FontWeight(WEIGHT_NORMAL)); + maFont.SetWeight(FontWeight(WEIGHT_NORMAL)); if (m_pItalicCheckBox->IsChecked()) - Face.SetItalic(ITALIC_NORMAL); + maFont.SetItalic(ITALIC_NORMAL); else - Face.SetItalic(ITALIC_NONE); + maFont.SetItalic(ITALIC_NONE); - m_pShowFont->SetFont(Face); + m_pShowFont->SetFont(maFont); return 0; } void SmFontDialog::SetFont(const vcl::Font &rFont) { - Face = rFont; - - m_pFontBox->SetText( Face.GetName() ); - m_pBoldCheckBox->Check( IsBold( Face ) ); - m_pItalicCheckBox->Check( IsItalic( Face ) ); + maFont = rFont; - m_pShowFont->SetFont(Face); + m_pFontBox->SetText(maFont.GetName()); + m_pBoldCheckBox->Check(IsBold(maFont)); + m_pItalicCheckBox->Check(IsItalic(maFont)); + m_pShowFont->SetFont(maFont); } SmFontDialog::SmFontDialog(vcl::Window * pParent, OutputDevice *pFntListDevice, bool bHideCheckboxes) @@ -343,17 +357,16 @@ SmFontDialog::SmFontDialog(vcl::Window * pParent, OutputDevice *pFntListDevice, sal_uInt16 nCount = aFontList.GetFontNameCount(); for (sal_uInt16 i = 0; i < nCount; ++i) + { m_pFontBox->InsertEntry( aFontList.GetFontName(i).GetName() ); - - Face.SetSize(Size(0, 24)); - Face.SetWeight(WEIGHT_NORMAL); - Face.SetItalic(ITALIC_NONE); - Face.SetFamily(FAMILY_DONTKNOW); - Face.SetPitch(PITCH_DONTKNOW); - Face.SetCharSet(RTL_TEXTENCODING_DONTKNOW); - Face.SetTransparent(true); - - InitColor_Impl(); + } + maFont.SetSize(Size(0, 24)); + maFont.SetWeight(WEIGHT_NORMAL); + maFont.SetItalic(ITALIC_NONE); + maFont.SetFamily(FAMILY_DONTKNOW); + maFont.SetPitch(PITCH_DONTKNOW); + maFont.SetCharSet(RTL_TEXTENCODING_DONTKNOW); + maFont.SetTransparent(true); // preview like controls should have a 2D look m_pShowFont->SetBorderStyle( WindowBorderStyle::MONO ); @@ -389,41 +402,10 @@ void SmFontDialog::dispose() ModalDialog::dispose(); } -namespace -{ - void getColors(vcl::RenderContext &rRef, ColorData &rBgCol, ColorData &rTxtCol) - { - const StyleSettings &rS = rRef.GetSettings().GetStyleSettings(); - if (rS.GetHighContrastMode()) - { - rBgCol = rS.GetFieldColor().GetColor(); - rTxtCol = rS.GetFieldTextColor().GetColor(); - } - else - { - rBgCol = COL_WHITE; - rTxtCol = COL_BLACK; - } - } -} - -void SmFontDialog::InitColor_Impl() -{ - ColorData nBgCol, nTxtCol; - getColors(*this, nBgCol, nTxtCol); - - Color aTmpColor( nBgCol ); - Wallpaper aWall( aTmpColor ); - Color aTxtColor( nTxtCol ); - m_pShowFont->SetBackground( aWall ); - m_pShowFont->SetTextColor( aTxtColor ); -} - void SmFontDialog::DataChanged( const DataChangedEvent& rDCEvt ) { - if ( rDCEvt.GetType() == DataChangedEventType::SETTINGS && - (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) ) - InitColor_Impl(); + if (rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) + m_pShowFont->Invalidate(); ModalDialog::DataChanged( rDCEvt ); } @@ -513,10 +495,6 @@ void SmFontSizeDialog::WriteTo(SmFormat &rFormat) const rFormat.RequestApplyChanges(); } - -/**************************************************************************/ - - IMPL_LINK( SmFontTypeDialog, MenuSelectHdl, Menu *, pMenu ) { SmFontPickListBox *pActiveListBox; @@ -1134,14 +1112,6 @@ SmShowSymbolSetWindow::SmShowSymbolSetWindow(vcl::Window *pParent, WinBits nStyl , nYOffset(0) , nSelectSymbol(SYMBOL_NONE) { - ColorData nBgCol, nTxtCol; - getColors(*this, nBgCol, nTxtCol); - - Color aTmpColor( nBgCol ); - Wallpaper aWall( aTmpColor ); - Color aTxtColor( nTxtCol ); - SetBackground( aWall ); - SetTextColor( aTxtColor ); } SmShowSymbolSetWindow::~SmShowSymbolSetWindow() @@ -1162,6 +1132,13 @@ Point SmShowSymbolSetWindow::OffsetPoint(const Point &rPoint) const void SmShowSymbolSetWindow::Paint(vcl::RenderContext& rRenderContext, const Rectangle&) { + Color aBackgroundColor; + Color aTextColor; + lclGetSettingColors(aBackgroundColor, aTextColor); + + rRenderContext.SetBackground(Wallpaper(aBackgroundColor)); + rRenderContext.SetTextColor(aTextColor); + rRenderContext.Push(PushFlags::MAPMODE); // set MapUnit for which 'nLen' has been calculated @@ -1416,18 +1393,23 @@ void SmShowSymbol::Paint(vcl::RenderContext& rRenderContext, const Rectangle &rR { Control::Paint(rRenderContext, rRect); + Color aBackgroundColor; + Color aTextColor; + lclGetSettingColors(aBackgroundColor, aTextColor); + SetBackground(Wallpaper(aBackgroundColor)); + SetTextColor(aTextColor); + vcl::Font aFont(rRenderContext.GetFont()); setFontSize(aFont); rRenderContext.SetFont(aFont); const OUString &rText = GetText(); - Size aTextSize(GetTextWidth(rText), GetTextHeight()); + Size aTextSize(rRenderContext.GetTextWidth(rText), rRenderContext.GetTextHeight()); - rRenderContext.DrawText(Point((GetOutputSize().Width() - aTextSize.Width()) / 2, - (GetOutputSize().Height() * 7/10)), rText); + rRenderContext.DrawText(Point((rRenderContext.GetOutputSize().Width() - aTextSize.Width()) / 2, + (rRenderContext.GetOutputSize().Height() * 7 / 10)), rText); } - void SmShowSymbol::MouseButtonDown(const MouseEvent& rMEvt) { if (rMEvt.GetClicks() > 1) @@ -1436,7 +1418,6 @@ void SmShowSymbol::MouseButtonDown(const MouseEvent& rMEvt) Control::MouseButtonDown (rMEvt); } - void SmShowSymbol::SetSymbol(const SmSym *pSymbol) { if (pSymbol) @@ -1580,8 +1561,6 @@ SmSymbolDialog::SmSymbolDialog(vcl::Window *pParent, OutputDevice *pFntListDevic if (m_pSymbolSets->GetEntryCount() > 0) SelectSymbolSet(m_pSymbolSets->GetEntry(0)); - InitColor_Impl(); - // preview like controls should have a 2D look m_pSymbolDisplay->SetBorderStyle( WindowBorderStyle::MONO ); @@ -1609,35 +1588,21 @@ void SmSymbolDialog::dispose() ModalDialog::dispose(); } -void SmSymbolDialog::InitColor_Impl() -{ - ColorData nBgCol, nTxtCol; - getColors(*this, nBgCol, nTxtCol); - - Color aTmpColor( nBgCol ); - Wallpaper aWall( aTmpColor ); - Color aTxtColor( nTxtCol ); - m_pSymbolDisplay->SetBackground( aWall ); - m_pSymbolDisplay->SetTextColor( aTxtColor ); - m_pSymbolSetDisplay->SetBackground( aWall ); - m_pSymbolSetDisplay->SetTextColor( aTxtColor ); -} - - void SmSymbolDialog::DataChanged( const DataChangedEvent& rDCEvt ) { - if ( rDCEvt.GetType() == DataChangedEventType::SETTINGS && - (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) ) - InitColor_Impl(); + if (rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) + { + m_pSymbolDisplay->Invalidate(); + m_pSymbolSetDisplay->Invalidate(); + } ModalDialog::DataChanged( rDCEvt ); } - bool SmSymbolDialog::SelectSymbolSet(const OUString &rSymbolSetName) { - bool bRet = false; - sal_Int32 nPos = m_pSymbolSets->GetEntryPos(rSymbolSetName); + bool bRet = false; + sal_Int32 nPos = m_pSymbolSets->GetEntryPos(rSymbolSetName); aSymbolSetName.clear(); aSymbolSet.clear(); @@ -1663,7 +1628,6 @@ bool SmSymbolDialog::SelectSymbolSet(const OUString &rSymbolSetName) return bRet; } - void SmSymbolDialog::SelectSymbol(sal_uInt16 nSymbolNo) { const SmSym *pSym = NULL; @@ -1675,8 +1639,7 @@ void SmSymbolDialog::SelectSymbol(sal_uInt16 nSymbolNo) m_pSymbolName->SetText(pSym ? pSym->GetName() : OUString()); } - -const SmSym * SmSymbolDialog::GetSymbol() const +const SmSym* SmSymbolDialog::GetSymbol() const { sal_uInt16 nSymbolNo = m_pSymbolSetDisplay->GetSelectSymbol(); bool bValid = !aSymbolSetName.isEmpty() && nSymbolNo < static_cast< sal_uInt16 >(aSymbolSet.size()); @@ -2128,8 +2091,6 @@ SmSymDefineDialog::SmSymDefineDialog(vcl::Window * pParent, if (pFonts->GetEntryCount() > 0) SelectFont(pFonts->GetEntry(0)); - InitColor_Impl(); - SetSymbolSetManager(rSymbolMgr); pOldSymbols ->SetSelectHdl(LINK(this, SmSymDefineDialog, OldSymbolChangeHdl)); @@ -2182,36 +2143,12 @@ void SmSymDefineDialog::dispose() ModalDialog::dispose(); } -void SmSymDefineDialog::InitColor_Impl() +void SmSymDefineDialog::DataChanged( const DataChangedEvent& rDCEvt ) { - ColorData nBgCol = COL_WHITE, - nTxtCol = COL_BLACK; - bool bHighContrast = GetSettings().GetStyleSettings().GetHighContrastMode(); - if (bHighContrast) + if (rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE)) { - const StyleSettings &rS = GetSettings().GetStyleSettings(); - nBgCol = rS.GetFieldColor().GetColor(); - nTxtCol = rS.GetFieldTextColor().GetColor(); + Invalidate(); } - - Color aTmpColor( nBgCol ); - Wallpaper aWall( aTmpColor ); - Color aTxtColor( nTxtCol ); - pCharsetDisplay ->SetBackground( aWall ); - pCharsetDisplay ->SetTextColor( aTxtColor ); - pOldSymbolDisplay->SetBackground( aWall ); - pOldSymbolDisplay->SetTextColor( aTxtColor ); - pSymbolDisplay ->SetBackground( aWall ); - pSymbolDisplay ->SetTextColor( aTxtColor ); -} - - -void SmSymDefineDialog::DataChanged( const DataChangedEvent& rDCEvt ) -{ - if ( rDCEvt.GetType() == DataChangedEventType::SETTINGS && - (rDCEvt.GetFlags() & AllSettingsFlags::STYLE) ) - InitColor_Impl(); - ModalDialog::DataChanged( rDCEvt ); }
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits