summaryrefslogtreecommitdiff
path: root/starmath
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-14 14:37:23 +0900
committerTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2015-05-14 14:39:51 +0900
commitf4841c9a8acf6c0513783fb76b72843d0677117c (patch)
tree1d1ac734cd2805b8e89089facc774785b5aca258 /starmath
parent5b4408dab502ffef99e57244832a332497989e99 (diff)
more refactorings in starmath dialogs..
Change-Id: I24b6584a72b4a8db031d9bf8906d8682e32e4545
Diffstat (limited to 'starmath')
-rw-r--r--starmath/inc/dialog.hxx16
-rw-r--r--starmath/source/dialog.cxx217
2 files changed, 84 insertions, 149 deletions
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index ec70f02ca8a6..4a64ca557f4f 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 f28a9a291880..c305e066ff84 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 );
}