[Libreoffice-commits] core.git: basctl/source
Takeshi Abe
tabe at fixedpoint.jp
Tue Oct 25 11:27:23 UTC 2016
basctl/source/basicide/baside2.cxx | 49 ++++++++++++++++--------------------
basctl/source/basicide/baside2.hxx | 14 +++++-----
basctl/source/basicide/baside2b.cxx | 42 ++++++++----------------------
3 files changed, 42 insertions(+), 63 deletions(-)
New commits:
commit 799a3a7915e6285c8072f92c63ba7149223ac443
Author: Takeshi Abe <tabe at fixedpoint.jp>
Date: Fri Oct 14 19:13:05 2016 +0900
tdf#103209 Apply application color settings to Basic IDE
This makes the text and background colors in the editor window
follow the custom colors "Font color" and "Document background"
respectively in Options > LibreOffice > Applications Colors.
... for those who think BASIC looks cooler when written in green
text on black background.
Change-Id: I82647865f7c2915341249c2fd5ebc9bd8d617bd1
Reviewed-on: https://gerrit.libreoffice.org/29815
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: jan iversen <jani at documentfoundation.org>
Tested-by: jan iversen <jani at documentfoundation.org>
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
Tested-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/basctl/source/basicide/baside2.cxx b/basctl/source/basicide/baside2.cxx
index 9d3f9cf..351ce03 100644
--- a/basctl/source/basicide/baside2.cxx
+++ b/basctl/source/basicide/baside2.cxx
@@ -1444,14 +1444,6 @@ void ModulWindowLayout::Paint (vcl::RenderContext& rRenderContext, Rectangle con
rRenderContext.DrawText(Point(), IDEResId(RID_STR_NOMODULE).toString());
}
-// virtual
-void ModulWindowLayout::DataChanged (DataChangedEvent const& rDCEvt)
-{
- Layout::DataChanged(rDCEvt);
- if (rDCEvt.GetType() == DataChangedEventType::SETTINGS && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE))
- aSyntaxColors.SettingsChanged();
-}
-
void ModulWindowLayout::Activating (BaseWindow& rChild)
{
assert(dynamic_cast<ModulWindow*>(&rChild));
@@ -1511,11 +1503,6 @@ ModulWindowLayout::SyntaxColors::SyntaxColors () :
{
aConfig.AddListener(this);
- aColors[TokenType::Unknown] =
- aColors[TokenType::Whitespace] =
- aColors[TokenType::EOL] =
- Application::GetSettings().GetStyleSettings().GetFieldTextColor();
-
NewConfig(true);
}
@@ -1524,20 +1511,6 @@ ModulWindowLayout::SyntaxColors::~SyntaxColors ()
aConfig.RemoveListener(this);
}
-void ModulWindowLayout::SyntaxColors::SettingsChanged ()
-{
- Color const aColor = Application::GetSettings().GetStyleSettings().GetFieldTextColor();
- if (aColor != aColors[TokenType::Unknown])
- {
- aColors[TokenType::Unknown] =
- aColors[TokenType::Whitespace] =
- aColors[TokenType::EOL] =
- aColor;
- if (pEditor)
- pEditor->UpdateSyntaxHighlighting();
- }
-}
-
// virtual
void ModulWindowLayout::SyntaxColors::ConfigurationChanged (utl::ConfigurationBroadcaster*, sal_uInt32)
{
@@ -1554,15 +1527,37 @@ void ModulWindowLayout::SyntaxColors::NewConfig (bool bFirst)
}
const vIds[] =
{
+ { TokenType::Unknown, svtools::FONTCOLOR },
{ TokenType::Identifier, svtools::BASICIDENTIFIER },
+ { TokenType::Whitespace, svtools::FONTCOLOR },
{ TokenType::Number, svtools::BASICNUMBER },
{ TokenType::String, svtools::BASICSTRING },
+ { TokenType::EOL, svtools::FONTCOLOR },
{ TokenType::Comment, svtools::BASICCOMMENT },
{ TokenType::Error, svtools::BASICERROR },
{ TokenType::Operator, svtools::BASICOPERATOR },
{ TokenType::Keywords, svtools::BASICKEYWORD },
};
+ Color aDocColor = aConfig.GetColorValue(svtools::DOCCOLOR).nColor;
+ if (bFirst || aDocColor != m_aBackgroundColor)
+ {
+ m_aBackgroundColor = aDocColor;
+ if (!bFirst && pEditor)
+ {
+ pEditor->SetBackground(Wallpaper(m_aBackgroundColor));
+ pEditor->Invalidate();
+ }
+ }
+
+ Color aFontColor = aConfig.GetColorValue(svtools::FONTCOLOR).nColor;
+ if (bFirst || aFontColor != m_aFontColor)
+ {
+ m_aFontColor = aFontColor;
+ if (!bFirst && pEditor)
+ pEditor->ChangeFontColor(m_aFontColor);
+ }
+
bool bChanged = false;
for (unsigned i = 0; i != SAL_N_ELEMENTS(vIds); ++i)
{
diff --git a/basctl/source/basicide/baside2.hxx b/basctl/source/basicide/baside2.hxx
index 9a51560..6770ffb 100644
--- a/basctl/source/basicide/baside2.hxx
+++ b/basctl/source/basicide/baside2.hxx
@@ -94,8 +94,6 @@ private:
class ProgressInfo;
std::unique_ptr<ProgressInfo> pProgress;
- virtual void DataChanged(DataChangedEvent const & rDCEvt) override;
-
using Window::Notify;
virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) override;
@@ -156,6 +154,7 @@ public:
bool CanModify() { return ImpCanModify(); }
+ void ChangeFontColor( Color aColor );
void UpdateSyntaxHighlighting ();
bool GetProcedureName(OUString& rLine, OUString& rProcType, OUString& rProcName) const;
@@ -428,6 +427,8 @@ public:
public:
void BasicAddWatch (OUString const&);
void BasicRemoveWatch ();
+ Color GetBackgroundColor () const { return aSyntaxColors.GetBackgroundColor(); }
+ Color GetFontColor () const { return aSyntaxColors.GetFontColor(); }
Color GetSyntaxColor (TokenType eType) const { return aSyntaxColors.GetColor(eType); }
protected:
@@ -443,9 +444,7 @@ private:
VclPtr<WatchWindow> aWatchWindow;
VclPtr<StackWindow> aStackWindow;
ObjectCatalog& rObjectCatalog;
-private:
- virtual void DataChanged (DataChangedEvent const& rDCEvt) override;
-private:
+
// SyntaxColors -- stores Basic syntax highlighting colors
class SyntaxColors : public utl::ConfigurationListener
{
@@ -454,8 +453,9 @@ private:
virtual ~SyntaxColors () override;
public:
void SetActiveEditor (EditorWindow* pEditor_) { pEditor = pEditor_; }
- void SettingsChanged ();
public:
+ Color GetBackgroundColor () const { return m_aBackgroundColor; };
+ Color GetFontColor () const { return m_aFontColor; }
Color GetColor (TokenType eType) const { return aColors[eType]; }
private:
@@ -463,6 +463,8 @@ private:
void NewConfig (bool bFirst);
private:
+ Color m_aBackgroundColor;
+ Color m_aFontColor;
// the color values (the indexes are TokenType, see comphelper/syntaxhighlight.hxx)
o3tl::enumarray<TokenType, Color> aColors;
// the configuration
diff --git a/basctl/source/basicide/baside2b.cxx b/basctl/source/basicide/baside2b.cxx
index 64003b6..33fbf52 100644
--- a/basctl/source/basicide/baside2b.cxx
+++ b/basctl/source/basicide/baside2b.cxx
@@ -227,7 +227,7 @@ EditorWindow::EditorWindow (vcl::Window* pParent, ModulWindow* pModulWindow) :
bDelayHighlight(true),
pCodeCompleteWnd(VclPtr<CodeCompleteWindow>::Create(this))
{
- SetBackground(Wallpaper(GetSettings().GetStyleSettings().GetFieldColor()));
+ SetBackground(Wallpaper(rModulWindow.GetLayout().GetBackgroundColor()));
SetPointer( Pointer( PointerStyle::Text ) );
SetHelpId( HID_BASICIDE_EDITORWINDOW );
@@ -1033,34 +1033,6 @@ void EditorWindow::CreateEditEngine()
rModulWindow.SetReadOnly(true);
}
-// virtual
-void EditorWindow::DataChanged(DataChangedEvent const & rDCEvt)
-{
- Window::DataChanged(rDCEvt);
- if (rDCEvt.GetType() == DataChangedEventType::SETTINGS
- && (rDCEvt.GetFlags() & AllSettingsFlags::STYLE))
- {
- Color aColor(GetSettings().GetStyleSettings().GetFieldColor());
- const AllSettings* pOldSettings = rDCEvt.GetOldSettings();
- if (!pOldSettings || aColor != pOldSettings->GetStyleSettings().GetFieldColor())
- {
- SetBackground(Wallpaper(aColor));
- Invalidate();
- }
- if (pEditEngine != nullptr)
- {
- aColor = GetSettings().GetStyleSettings().GetFieldTextColor();
- if (!pOldSettings || aColor !=
- pOldSettings-> GetStyleSettings().GetFieldTextColor())
- {
- vcl::Font aFont(pEditEngine->GetFont());
- aFont.SetColor(aColor);
- pEditEngine->SetFont(aFont);
- }
- }
- }
-}
-
void EditorWindow::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
{
if (TextHint const* pTextHint = dynamic_cast<TextHint const*>(&rHint))
@@ -1206,6 +1178,16 @@ void EditorWindow::ImpDoHighlight( sal_uLong nLine )
}
}
+void EditorWindow::ChangeFontColor( Color aColor )
+{
+ if (pEditEngine)
+ {
+ vcl::Font aFont(pEditEngine->GetFont());
+ aFont.SetColor(aColor);
+ pEditEngine->SetFont(aFont);
+ }
+}
+
void EditorWindow::UpdateSyntaxHighlighting ()
{
const sal_uInt32 nCount = pEditEngine->GetParagraphCount();
@@ -1225,7 +1207,7 @@ void EditorWindow::ImplSetFont()
}
Size aFontSize(0, officecfg::Office::Common::Font::SourceViewFont::FontHeight::get());
vcl::Font aFont(sFontName, aFontSize);
- aFont.SetColor(Application::GetSettings().GetStyleSettings().GetFieldTextColor());
+ aFont.SetColor(rModulWindow.GetLayout().GetFontColor());
SetPointFont(*this, aFont); // FIXME RenderContext
aFont = GetFont();
More information about the Libreoffice-commits
mailing list