Kaydet (Commit) 5b4408da authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl

SmShowFont: change to save the font and use it in Paint + HiDPI

No painting should be performed outside of Paint hierarchy.

Change-Id: I97a8d6429abcd6022e9bf89295dc2944485984eb
üst e42cc880
...@@ -81,6 +81,8 @@ class SmShowFont : public vcl::Window ...@@ -81,6 +81,8 @@ class SmShowFont : public vcl::Window
{ {
virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle&) SAL_OVERRIDE; virtual void Paint(vcl::RenderContext& rRenderContext, const Rectangle&) SAL_OVERRIDE;
vcl::Font maFont;
public: public:
SmShowFont(vcl::Window *pParent, WinBits nStyle) SmShowFont(vcl::Window *pParent, WinBits nStyle)
: Window(pParent, nStyle) : Window(pParent, nStyle)
......
...@@ -64,15 +64,15 @@ public: ...@@ -64,15 +64,15 @@ public:
SmFontStyles(); SmFontStyles();
static sal_uInt16 GetCount() { return 4; } static sal_uInt16 GetCount() { return 4; }
const OUString& GetStyleName( const vcl::Font &rFont ) const; const OUString& GetStyleName(const vcl::Font& rFont) const;
const OUString& GetStyleName( sal_uInt16 nIdx ) const; const OUString& GetStyleName(sal_uInt16 nIdx) const;
}; };
SmFontStyles::SmFontStyles() : SmFontStyles::SmFontStyles() :
aNormal ( ResId( RID_FONTREGULAR, *SM_MOD()->GetResMgr() ) ), aNormal (ResId(RID_FONTREGULAR, *SM_MOD()->GetResMgr())),
aBold ( ResId( RID_FONTBOLD, *SM_MOD()->GetResMgr() ) ), aBold (ResId(RID_FONTBOLD, *SM_MOD()->GetResMgr())),
aItalic ( ResId( RID_FONTITALIC, *SM_MOD()->GetResMgr() ) ) aItalic (ResId(RID_FONTITALIC, *SM_MOD()->GetResMgr()))
{ {
aBoldItalic = aBold; aBoldItalic = aBold;
...@@ -81,7 +81,7 @@ SmFontStyles::SmFontStyles() : ...@@ -81,7 +81,7 @@ SmFontStyles::SmFontStyles() :
} }
const OUString& SmFontStyles::GetStyleName( const vcl::Font &rFont ) const const OUString& SmFontStyles::GetStyleName(const vcl::Font& rFont) const
{ {
//! compare also SmSpecialNode::Prepare //! compare also SmSpecialNode::Prepare
bool bBold = IsBold( rFont ), bool bBold = IsBold( rFont ),
...@@ -146,16 +146,13 @@ void SetFontStyle(const OUString &rStyleName, vcl::Font &rFont) ...@@ -146,16 +146,13 @@ void SetFontStyle(const OUString &rStyleName, vcl::Font &rFont)
rFont.SetWeight((nIndex & 0x2) ? WEIGHT_BOLD : WEIGHT_NORMAL); rFont.SetWeight((nIndex & 0x2) ? WEIGHT_BOLD : WEIGHT_NORMAL);
} }
/**************************************************************************/
IMPL_LINK( SmPrintOptionsTabPage, SizeButtonClickHdl, Button *,/*pButton*/ ) IMPL_LINK( SmPrintOptionsTabPage, SizeButtonClickHdl, Button *,/*pButton*/ )
{ {
m_pZoom->Enable(m_pSizeZoomed->IsChecked()); m_pZoom->Enable(m_pSizeZoomed->IsChecked());
return 0; return 0;
} }
SmPrintOptionsTabPage::SmPrintOptionsTabPage(vcl::Window *pParent, const SfxItemSet &rOptions) SmPrintOptionsTabPage::SmPrintOptionsTabPage(vcl::Window* pParent, const SfxItemSet& rOptions)
: SfxTabPage(pParent, "SmathSettings", "modules/smath/ui/smathsettings.ui", &rOptions) : SfxTabPage(pParent, "SmathSettings", "modules/smath/ui/smathsettings.ui", &rOptions)
{ {
get( m_pTitle, "title"); get( m_pTitle, "title");
...@@ -241,15 +238,24 @@ VclPtr<SfxTabPage> SmPrintOptionsTabPage::Create(vcl::Window* pWindow, const Sfx ...@@ -241,15 +238,24 @@ VclPtr<SfxTabPage> SmPrintOptionsTabPage::Create(vcl::Window* pWindow, const Sfx
return VclPtr<SmPrintOptionsTabPage>::Create(pWindow, rSet).get(); return VclPtr<SmPrintOptionsTabPage>::Create(pWindow, rSet).get();
} }
void SmShowFont::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect ) void SmShowFont::Paint(vcl::RenderContext& rRenderContext, const Rectangle& rRect)
{ {
Window::Paint(rRenderContext, rRect); Window::Paint(rRenderContext, rRect);
Color aTxtColor(rRenderContext.GetTextColor());
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);
OUString sText(rRenderContext.GetFont().GetName()); OUString sText(rRenderContext.GetFont().GetName());
Size TextSize(rRenderContext.GetTextWidth(sText), rRenderContext.GetTextHeight()); Size aTextSize(rRenderContext.GetTextWidth(sText), rRenderContext.GetTextHeight());
rRenderContext.DrawText(Point((GetOutputSize().Width() - TextSize.Width()) / 2, rRenderContext.DrawText(Point((rRenderContext.GetOutputSize().Width() - aTextSize.Width()) / 2,
(GetOutputSize().Height() - TextSize.Height()) / 2), sText); (rRenderContext.GetOutputSize().Height() - aTextSize.Height()) / 2), sText);
} }
VCL_BUILDER_DECL_FACTORY(SmShowFont) VCL_BUILDER_DECL_FACTORY(SmShowFont)
...@@ -270,16 +276,8 @@ Size SmShowFont::GetOptimalSize() const ...@@ -270,16 +276,8 @@ Size SmShowFont::GetOptimalSize() const
void SmShowFont::SetFont(const vcl::Font& rFont) void SmShowFont::SetFont(const vcl::Font& rFont)
{ {
Color aTxtColor( GetTextColor() ); maFont = rFont;
vcl::Font aFont (rFont);
Invalidate(); Invalidate();
aFont.SetSize(Size(0, 24));
aFont.SetAlign(ALIGN_TOP);
Window::SetFont(aFont);
// keep old text color (new font may have different color)
SetTextColor( aTxtColor );
} }
IMPL_LINK( SmFontDialog, FontSelectHdl, ComboBox *, pComboBox ) IMPL_LINK( SmFontDialog, FontSelectHdl, ComboBox *, pComboBox )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment