tdf#156925 Add Color Scheme selector to the Basic IDE
This patch implements a color scheme selector for the Basic IDE. With this new feature the user can either: 1) Choose to stick with "Application Colors", meaning that the colors defined in "Tools - Options - Application Colors" are applied. 2) Use one of the available color schemes in the dialog To access the color scheme dialog, go to View - Color Scheme. A color schema was defined in the "BasicIDE.xcs" file and six color schemes were defined in "BasicIDE.xcu" to be shipped with LibreOffice. This way, it is possible to install more color schemes via extensions; Change-Id: I5d382d19f982d02ba3c0fda5d1596aed2c38f13c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155928 Tested-by: Jenkins Tested-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de> Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com>
This commit is contained in:
parent
c5681e8d4c
commit
076e21f4e3
21 changed files with 1301 additions and 58 deletions
|
@ -99,6 +99,8 @@ $(eval $(call gb_Library_add_exception_objects,basctl,\
|
|||
basctl/source/basicide/macrodlg \
|
||||
basctl/source/basicide/moduldl2 \
|
||||
basctl/source/basicide/moduldlg \
|
||||
basctl/source/basicide/BasicColorConfig \
|
||||
basctl/source/basicide/ColorSchemeDialog \
|
||||
basctl/source/basicide/ObjectCatalog \
|
||||
basctl/source/basicide/sbxitem \
|
||||
basctl/source/basicide/scriptdocument \
|
||||
|
|
|
@ -37,6 +37,7 @@ $(eval $(call gb_UIConfig_add_uifiles,modules/BasicIDE,\
|
|||
basctl/uiconfig/basicide/ui/basicmacrodialog \
|
||||
basctl/uiconfig/basicide/ui/breakpointmenus \
|
||||
basctl/uiconfig/basicide/ui/codecomplete \
|
||||
basctl/uiconfig/basicide/ui/colorscheme \
|
||||
basctl/uiconfig/basicide/ui/combobox \
|
||||
basctl/uiconfig/basicide/ui/defaultlanguage \
|
||||
basctl/uiconfig/basicide/ui/deletelangdialog \
|
||||
|
|
|
@ -114,6 +114,15 @@
|
|||
#define RID_STR_MODULE_READONLY NC_("RID_STR_READONLY_WARNING", "This module is read-only and cannot be edited.")
|
||||
#define RID_STR_DIALOG_READONLY NC_("RID_STR_READONLY_WARNING", "This dialog is read-only and cannot be edited.")
|
||||
|
||||
// Color scheme names
|
||||
#define RID_STR_COLORSCHEME_DEFAULT NC_("RID_STR_COLORSCHEME_DEFAULT", "Default")
|
||||
#define RID_STR_COLORSCHEME_LIGHT NC_("RID_STR_COLORSCHEME_LIGHT", "%PRODUCTNAME Light")
|
||||
#define RID_STR_COLORSCHEME_DARK NC_("RID_STR_COLORSCHEME_DARK", "%PRODUCTNAME Dark")
|
||||
#define RID_STR_COLORSCHEME_BREEZE_LIGHT NC_("RID_STR_COLORSCHEME_BREEZE_LIGHT", "Breeze Light")
|
||||
#define RID_STR_COLORSCHEME_BREEZE_DARK NC_("RID_STR_COLORSCHEME_BREEZE_DARK", "Breeze Dark")
|
||||
#define RID_STR_COLORSCHEME_SOLARIZED_DARK NC_("RID_STR_COLORSCHEME_SOLARIZED_DARK", "Solarized Dark")
|
||||
#define RID_STR_COLORSCHEME_SOLARIZED_LIGHT NC_("RID_STR_COLORSCHEME_SOLARIZED_LIGHT", "Solarized Light")
|
||||
|
||||
#endif
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
|
|
|
@ -343,6 +343,12 @@ shell basctl_Shell
|
|||
StateMethod = GetState;
|
||||
]
|
||||
|
||||
SID_BASICIDE_COLOR_SCHEME_DLG
|
||||
[
|
||||
ExecMethod = ExecuteGlobal;
|
||||
StateMethod = GetState;
|
||||
]
|
||||
|
||||
SID_ATTR_ZOOMSLIDER
|
||||
[
|
||||
ExecMethod = ExecuteGlobal;
|
||||
|
|
114
basctl/source/basicide/BasicColorConfig.cxx
Normal file
114
basctl/source/basicide/BasicColorConfig.cxx
Normal file
|
@ -0,0 +1,114 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <tools/solar.h>
|
||||
#include <BasicColorConfig.hxx>
|
||||
#include <officecfg/Office/BasicIDE.hxx>
|
||||
|
||||
#include <sal/log.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
BasicColorConfig::BasicColorConfig()
|
||||
: ConfigItem("Office.BasicIDE/IDEColorSchemes")
|
||||
{
|
||||
// Innitially the active color scheme is the one defined in the registry
|
||||
m_sCurrentColorScheme = officecfg::Office::BasicIDE::EditorSettings::ColorScheme::get();
|
||||
|
||||
// Initialize all available scheme names
|
||||
m_aSchemeNames = GetNodeNames("");
|
||||
}
|
||||
|
||||
BasicColorConfig::~BasicColorConfig() {}
|
||||
|
||||
void BasicColorConfig::Notify(const css::uno::Sequence<OUString>&) {}
|
||||
|
||||
void BasicColorConfig::ImplCommit() {}
|
||||
|
||||
ColorScheme BasicColorConfig::GetColorScheme(const OUString& rScheme)
|
||||
{
|
||||
// If the default scheme is being requested or the scheme does not exist, return the Application Colors scheme
|
||||
if (rScheme == DEFAULT_SCHEME || comphelper::findValue(m_aSchemeNames, rScheme) == -1)
|
||||
{
|
||||
return GetAutomaticColorScheme();
|
||||
}
|
||||
|
||||
std::vector<OUString> aVecPropNames = {
|
||||
OUString(rScheme + "/GenericColor/Color"), OUString(rScheme + "/IdentifierColor/Color"),
|
||||
OUString(rScheme + "/NumberColor/Color"), OUString(rScheme + "/StringColor/Color"),
|
||||
OUString(rScheme + "/CommentColor/Color"), OUString(rScheme + "/ErrorColor/Color"),
|
||||
OUString(rScheme + "/OperatorColor/Color"), OUString(rScheme + "/KeywordColor/Color"),
|
||||
OUString(rScheme + "/BackgroundColor/Color")
|
||||
};
|
||||
|
||||
css::uno::Sequence<OUString> aPropNames(aVecPropNames.size());
|
||||
OUString* pPropNames = aPropNames.getArray();
|
||||
for (sal_uLong i = 0; i < aVecPropNames.size(); i++)
|
||||
{
|
||||
pPropNames[i] = aVecPropNames[i];
|
||||
}
|
||||
css::uno::Sequence<css::uno::Any> aColors = GetProperties(aPropNames);
|
||||
|
||||
ColorScheme aColorScheme;
|
||||
aColorScheme.m_sSchemeName = rScheme;
|
||||
aColorScheme.m_bIsDefault = comphelper::findValue(m_aDefaultSchemes, rScheme) != -1;
|
||||
aColors[0] >>= aColorScheme.m_aGenericFontColor;
|
||||
aColors[1] >>= aColorScheme.m_aIdentifierColor;
|
||||
aColors[2] >>= aColorScheme.m_aNumberColor;
|
||||
aColors[3] >>= aColorScheme.m_aStringColor;
|
||||
aColors[4] >>= aColorScheme.m_aCommentColor;
|
||||
aColors[5] >>= aColorScheme.m_aErrorColor;
|
||||
aColors[6] >>= aColorScheme.m_aOperatorColor;
|
||||
aColors[7] >>= aColorScheme.m_aKeywordColor;
|
||||
aColors[8] >>= aColorScheme.m_aBackgroundColor;
|
||||
|
||||
return aColorScheme;
|
||||
}
|
||||
|
||||
ColorScheme BasicColorConfig::GetAutomaticColorScheme()
|
||||
{
|
||||
ColorScheme aScheme = { DEFAULT_SCHEME,
|
||||
false,
|
||||
aColorConfig.GetColorValue(svtools::FONTCOLOR).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICIDENTIFIER).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICNUMBER).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICSTRING).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICCOMMENT).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICERROR).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICOPERATOR).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICKEYWORD).nColor,
|
||||
aColorConfig.GetColorValue(svtools::BASICEDITOR).nColor };
|
||||
return aScheme;
|
||||
}
|
||||
|
||||
OUString& BasicColorConfig::GetCurrentColorSchemeName()
|
||||
{
|
||||
// Always return from the registry to get the most up-to-date value
|
||||
m_sCurrentColorScheme = officecfg::Office::BasicIDE::EditorSettings::ColorScheme::get();
|
||||
return m_sCurrentColorScheme;
|
||||
}
|
||||
|
||||
TranslateId BasicColorConfig::GetSchemeTranslateId(const OUString& rScheme)
|
||||
{
|
||||
return m_aTranslateIdsMap.find(rScheme)->second;
|
||||
}
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
148
basctl/source/basicide/ColorSchemeDialog.cxx
Normal file
148
basctl/source/basicide/ColorSchemeDialog.cxx
Normal file
|
@ -0,0 +1,148 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#include <basidesh.hxx>
|
||||
#include <iderdll.hxx>
|
||||
#include <ColorSchemeDialog.hxx>
|
||||
#include <strings.hrc>
|
||||
#include <vcl/weld.hxx>
|
||||
#include <vcl/settings.hxx>
|
||||
#include <tools/debug.hxx>
|
||||
#include "baside2.hxx"
|
||||
#include <officecfg/Office/BasicIDE.hxx>
|
||||
#include <BasicColorConfig.hxx>
|
||||
#include <memory>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
ColorSchemeDialog::ColorSchemeDialog(weld::Window* pParent,
|
||||
VclPtr<ModulWindowLayout> pModulWinLayout)
|
||||
: GenericDialogController(pParent, "modules/BasicIDE/ui/colorscheme.ui", "ColorSchemeDialog")
|
||||
, m_pModulWinLayout(pModulWinLayout)
|
||||
, m_xSchemeList(m_xBuilder->weld_tree_view("schemelist"))
|
||||
, m_xUseAppCollors(m_xBuilder->weld_radio_button("opt_appcolors"))
|
||||
, m_xUseScheme(m_xBuilder->weld_radio_button("opt_usescheme"))
|
||||
, m_xOk(m_xBuilder->weld_button("btn_ok"))
|
||||
{
|
||||
m_pColorConfig = GetShell()->GetColorConfig();
|
||||
m_sSelectedSchemeId = m_pColorConfig->GetCurrentColorSchemeName();
|
||||
|
||||
m_xSchemeList->set_size_request(m_xSchemeList->get_approximate_digit_width() * 30,
|
||||
m_xSchemeList->get_height_rows(10));
|
||||
m_xSchemeList->set_selection_mode(SelectionMode::Single);
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
ColorSchemeDialog::~ColorSchemeDialog() {}
|
||||
|
||||
void ColorSchemeDialog::Init()
|
||||
{
|
||||
m_xOk->connect_clicked(LINK(this, ColorSchemeDialog, BtnOkHdl));
|
||||
m_xUseAppCollors->connect_toggled(LINK(this, ColorSchemeDialog, OptionHdl));
|
||||
m_xUseScheme->connect_toggled(LINK(this, ColorSchemeDialog, OptionHdl));
|
||||
m_xSchemeList->connect_changed(LINK(this, ColorSchemeDialog, SelectHdl));
|
||||
|
||||
// Populate the list with available color schemes
|
||||
for (auto const& rName : m_pColorConfig->GetColorSchemeNames())
|
||||
{
|
||||
// Default schemes (preinstalled with LO) have TranslateIds
|
||||
if (m_pColorConfig->IsDefaultScheme(rName))
|
||||
{
|
||||
m_xSchemeList->append(rName, IDEResId(m_pColorConfig->GetSchemeTranslateId(rName)));
|
||||
}
|
||||
else
|
||||
{
|
||||
m_xSchemeList->append(rName, rName);
|
||||
}
|
||||
}
|
||||
m_xSchemeList->make_sorted();
|
||||
|
||||
// Set initial selection in the dialog
|
||||
m_xUseAppCollors->set_active(true);
|
||||
if (m_sSelectedSchemeId == DEFAULT_SCHEME)
|
||||
{
|
||||
// The "Application Colors" theme is being used
|
||||
m_xSchemeList->set_sensitive(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Check if the scheme exists
|
||||
if (comphelper::findValue(m_pColorConfig->GetColorSchemeNames(), m_sSelectedSchemeId) != -1)
|
||||
{
|
||||
m_xUseScheme->set_active(true);
|
||||
m_xSchemeList->select_id(m_sSelectedSchemeId);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_xSchemeList->set_sensitive(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ColorSchemeDialog, BtnOkHdl, weld::Button&, void)
|
||||
{
|
||||
// Collect selected theme
|
||||
if (m_xUseAppCollors->get_active())
|
||||
m_sSelectedSchemeId = DEFAULT_SCHEME;
|
||||
else
|
||||
m_sSelectedSchemeId = m_xSchemeList->get_selected_id();
|
||||
|
||||
m_xDialog->response(RET_OK);
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ColorSchemeDialog, OptionHdl, weld::Toggleable&, void)
|
||||
{
|
||||
if (m_xUseAppCollors->get_active())
|
||||
{
|
||||
m_xSchemeList->set_sensitive(false);
|
||||
m_pModulWinLayout->ApplyColorSchemeToCurrentWindow(DEFAULT_SCHEME);
|
||||
m_sSelectedSchemeId = DEFAULT_SCHEME;
|
||||
}
|
||||
|
||||
if (m_xUseScheme->get_active())
|
||||
{
|
||||
m_xSchemeList->set_sensitive(true);
|
||||
// Always select a item to avoid having nothing selected
|
||||
if (m_sSelectedSchemeId == DEFAULT_SCHEME)
|
||||
{
|
||||
// If the default color scheme was selected, then choose first entry in the list
|
||||
m_xSchemeList->select_id(m_xSchemeList->get_id(0));
|
||||
m_pModulWinLayout->ApplyColorSchemeToCurrentWindow(m_xSchemeList->get_id(0));
|
||||
}
|
||||
else
|
||||
{
|
||||
// If a color scheme was active, select it in the list
|
||||
m_xSchemeList->select_id(m_sSelectedSchemeId);
|
||||
m_pModulWinLayout->ApplyColorSchemeToCurrentWindow(m_sSelectedSchemeId);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ColorSchemeDialog, SelectHdl, weld::TreeView&, void)
|
||||
{
|
||||
// Apply the selected scheme only for the current ModulWinLayout for preview
|
||||
// Only if the user presses OK the scheme will be applied to all ModulWinLayout(s)
|
||||
m_sSelectedSchemeId = m_xSchemeList->get_selected_id();
|
||||
m_pModulWinLayout->ApplyColorSchemeToCurrentWindow(m_sSelectedSchemeId);
|
||||
}
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -26,6 +26,7 @@
|
|||
#include <iderid.hxx>
|
||||
#include "moduldlg.hxx"
|
||||
#include <docsignature.hxx>
|
||||
#include <colorscheme.hxx>
|
||||
#include <officecfg/Office/BasicIDE.hxx>
|
||||
|
||||
#include <helpids.h>
|
||||
|
@ -69,6 +70,7 @@
|
|||
#include <cassert>
|
||||
#include <osl/diagnose.h>
|
||||
#include <officecfg/Office/Common.hxx>
|
||||
#include <BasicColorConfig.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
|
@ -201,6 +203,9 @@ ModulWindow::ModulWindow (ModulWindowLayout* pParent, ScriptDocument const& rDoc
|
|||
, m_aXEditorWindow(VclPtr<ComplexEditorWindow>::Create(this))
|
||||
, m_aModule(std::move(aModule))
|
||||
{
|
||||
// Active editor color scheme
|
||||
m_sWinColorScheme = GetShell()->GetColorConfig()->GetCurrentColorSchemeName();
|
||||
|
||||
m_aXEditorWindow->Show();
|
||||
SetBackground();
|
||||
}
|
||||
|
@ -1428,13 +1433,32 @@ void ModulWindow::UpdateModule ()
|
|||
MarkDocumentModified(m_aDocument);
|
||||
}
|
||||
|
||||
void ModulWindow::SetEditorColorScheme(OUString aColorScheme)
|
||||
{
|
||||
m_sWinColorScheme = aColorScheme;
|
||||
EditorWindow& rEditWindow = GetEditorWindow();
|
||||
Wallpaper aBackgroundColor(GetLayout().GetSyntaxBackgroundColor());
|
||||
rEditWindow.SetBackground(aBackgroundColor);
|
||||
rEditWindow.GetWindow(GetWindowType::Border)->SetBackground(aBackgroundColor);
|
||||
|
||||
// The EditEngine is created only when the module is actually opened for the first time,
|
||||
// therefore we need to check if it actually exists before updating its syntax highlighting
|
||||
ExtTextEngine* pEditEngine = GetEditEngine();
|
||||
if (pEditEngine)
|
||||
rEditWindow.UpdateSyntaxHighlighting();
|
||||
}
|
||||
|
||||
ModulWindowLayout::ModulWindowLayout (vcl::Window* pParent, ObjectCatalog& rObjectCatalog_) :
|
||||
Layout(pParent),
|
||||
pChild(nullptr),
|
||||
aWatchWindow(VclPtr<WatchWindow>::Create(this)),
|
||||
aStackWindow(VclPtr<StackWindow>::Create(this)),
|
||||
rObjectCatalog(rObjectCatalog_)
|
||||
{ }
|
||||
{
|
||||
// Get active color scheme from the registry
|
||||
m_sColorSchemeId = GetShell()->GetColorConfig()->GetCurrentColorSchemeName();
|
||||
aSyntaxColors.ApplyColorScheme(m_sColorSchemeId, true);
|
||||
}
|
||||
|
||||
ModulWindowLayout::~ModulWindowLayout()
|
||||
{
|
||||
|
@ -1471,6 +1495,7 @@ void ModulWindowLayout::Activating (BaseWindow& rChild)
|
|||
rObjectCatalog.UpdateEntries();
|
||||
Layout::Activating(rChild);
|
||||
aSyntaxColors.SetActiveEditor(&pChild->GetEditorWindow());
|
||||
aSyntaxColors.SetActiveColorSchemeId(m_sColorSchemeId);
|
||||
}
|
||||
|
||||
void ModulWindowLayout::Deactivating ()
|
||||
|
@ -1526,12 +1551,19 @@ void ModulWindowLayout::OnFirstSize (tools::Long const nWidth, tools::Long const
|
|||
AddToBottom(aStackWindow.get(), Size(nWidth * 0.33, nHeight * 0.25));
|
||||
}
|
||||
|
||||
ModulWindowLayout::SyntaxColors::SyntaxColors () :
|
||||
pEditor(nullptr)
|
||||
// Applies the color scheme to the current window and updates color definitions;
|
||||
// note that other ModulWindow instances are not affected by calling this method
|
||||
void ModulWindowLayout::ApplyColorSchemeToCurrentWindow(OUString aSchemeId)
|
||||
{
|
||||
// Apply new color scheme to the UI
|
||||
m_sColorSchemeId = aSchemeId;
|
||||
aSyntaxColors.ApplyColorScheme(m_sColorSchemeId, false);
|
||||
}
|
||||
|
||||
ModulWindowLayout::SyntaxColors::SyntaxColors ()
|
||||
: pEditor(nullptr)
|
||||
{
|
||||
aConfig.AddListener(this);
|
||||
|
||||
NewConfig(true);
|
||||
}
|
||||
|
||||
ModulWindowLayout::SyntaxColors::~SyntaxColors ()
|
||||
|
@ -1542,62 +1574,87 @@ ModulWindowLayout::SyntaxColors::~SyntaxColors ()
|
|||
// virtual
|
||||
void ModulWindowLayout::SyntaxColors::ConfigurationChanged (utl::ConfigurationBroadcaster*, ConfigurationHints)
|
||||
{
|
||||
NewConfig(false);
|
||||
// The color scheme only needs to be applied when configuration changed if the "default" color
|
||||
// scheme (based on Application Colors) is being used
|
||||
if (m_sActiveSchemeId == DEFAULT_SCHEME)
|
||||
ApplyColorScheme(DEFAULT_SCHEME, false);
|
||||
}
|
||||
|
||||
// when a new configuration has to be set
|
||||
void ModulWindowLayout::SyntaxColors::NewConfig (bool bFirst)
|
||||
// Applies an entire new color scheme; when bFirst is true, then the checks to see if the color scheme
|
||||
// has changed are ignored to make sure the color scheme is applied
|
||||
void ModulWindowLayout::SyntaxColors::ApplyColorScheme(OUString aSchemeId, bool bFirst)
|
||||
{
|
||||
static struct
|
||||
const TokenType vTokenTypes[] =
|
||||
{
|
||||
TokenType eTokenType;
|
||||
svtools::ColorConfigEntry eEntry;
|
||||
}
|
||||
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 },
|
||||
TokenType::Unknown,
|
||||
TokenType::Identifier,
|
||||
TokenType::Whitespace,
|
||||
TokenType::Number,
|
||||
TokenType::String,
|
||||
TokenType::EOL,
|
||||
TokenType::Comment,
|
||||
TokenType::Error,
|
||||
TokenType::Operator,
|
||||
TokenType::Keywords
|
||||
};
|
||||
|
||||
Color aDocColor = aConfig.GetColorValue(svtools::BASICEDITOR).nColor;
|
||||
if (bFirst || aDocColor != m_aBackgroundColor)
|
||||
m_sActiveSchemeId = aSchemeId;
|
||||
ColorScheme aColorScheme = GetShell()->GetColorConfig()->GetColorScheme(aSchemeId);
|
||||
Color aFontColor = aColorScheme.m_aGenericFontColor;
|
||||
m_aFontColor = aFontColor;
|
||||
Color aDocColor = aColorScheme.m_aBackgroundColor;
|
||||
m_aBackgroundColor = aDocColor;
|
||||
if (!bFirst && pEditor)
|
||||
{
|
||||
m_aBackgroundColor = aDocColor;
|
||||
if (!bFirst && pEditor)
|
||||
{
|
||||
pEditor->SetBackground(Wallpaper(m_aBackgroundColor));
|
||||
pEditor->Invalidate();
|
||||
}
|
||||
pEditor->ChangeFontColor(aFontColor);
|
||||
pEditor->SetBackground(Wallpaper(aDocColor));
|
||||
pEditor->Invalidate();
|
||||
}
|
||||
|
||||
Color aFontColor = aConfig.GetColorValue(svtools::FONTCOLOR).nColor;
|
||||
if (bFirst || aFontColor != m_aFontColor)
|
||||
for (const auto& aToken: vTokenTypes)
|
||||
{
|
||||
m_aFontColor = aFontColor;
|
||||
if (!bFirst && pEditor)
|
||||
pEditor->ChangeFontColor(m_aFontColor);
|
||||
// Retrieves the new color to be set from the color scheme
|
||||
Color aNewColor;
|
||||
switch (aToken)
|
||||
{
|
||||
case TokenType::EOL:
|
||||
case TokenType::Whitespace:
|
||||
case TokenType::Unknown:
|
||||
aNewColor = aColorScheme.m_aGenericFontColor;
|
||||
break;
|
||||
case TokenType::Identifier:
|
||||
aNewColor = aColorScheme.m_aIdentifierColor;
|
||||
break;
|
||||
case TokenType::Number:
|
||||
aNewColor = aColorScheme.m_aNumberColor;
|
||||
break;
|
||||
case TokenType::String:
|
||||
aNewColor = aColorScheme.m_aStringColor;
|
||||
break;
|
||||
case TokenType::Comment:
|
||||
aNewColor = aColorScheme.m_aCommentColor;
|
||||
break;
|
||||
case TokenType::Error:
|
||||
aNewColor = aColorScheme.m_aErrorColor;
|
||||
break;
|
||||
case TokenType::Operator:
|
||||
aNewColor = aColorScheme.m_aOperatorColor;
|
||||
break;
|
||||
case TokenType::Keywords:
|
||||
aNewColor = aColorScheme.m_aKeywordColor;
|
||||
break;
|
||||
default:
|
||||
SAL_WARN("basctl.basicide", "Unexpected token type for color scheme");
|
||||
aNewColor = aColorScheme.m_aGenericFontColor;
|
||||
}
|
||||
|
||||
Color& rCurrentColor = aColors[aToken];
|
||||
rCurrentColor = aNewColor;
|
||||
}
|
||||
|
||||
bool bChanged = false;
|
||||
for (const auto& vId: vIds)
|
||||
{
|
||||
Color const aColor = aConfig.GetColorValue(vId.eEntry).nColor;
|
||||
Color& rMyColor = aColors[vId.eTokenType];
|
||||
if (bFirst || aColor != rMyColor)
|
||||
{
|
||||
rMyColor = aColor;
|
||||
bChanged = true;
|
||||
}
|
||||
}
|
||||
if (bChanged && !bFirst && pEditor)
|
||||
// This check is needed because the EditEngine will only exist in the EditorWindow when the
|
||||
// module is actually opened
|
||||
if (!bFirst && pEditor)
|
||||
pEditor->UpdateSyntaxHighlighting();
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@
|
|||
#include <layout.hxx>
|
||||
#include "breakpoint.hxx"
|
||||
#include "linenumberwindow.hxx"
|
||||
#include <colorscheme.hxx>
|
||||
|
||||
#include <basic/sbmod.hxx>
|
||||
#include <basic/sbstar.hxx>
|
||||
|
@ -37,6 +38,7 @@
|
|||
#include <rtl/ustrbuf.hxx>
|
||||
|
||||
#include <set>
|
||||
#include <map>
|
||||
#include <string_view>
|
||||
|
||||
#include <vcl/textdata.hxx>
|
||||
|
@ -290,6 +292,7 @@ private:
|
|||
BasicStatus m_aStatus;
|
||||
SbModuleRef m_xModule;
|
||||
OUString m_aModule;
|
||||
OUString m_sWinColorScheme;
|
||||
|
||||
void CheckCompileBasic();
|
||||
void BasicExecute();
|
||||
|
@ -392,6 +395,8 @@ public:
|
|||
virtual bool HasActiveEditor () const override;
|
||||
|
||||
void UpdateModule ();
|
||||
OUString GetEditorColorScheme() { return m_sWinColorScheme; }
|
||||
void SetEditorColorScheme(OUString aColorScheme);
|
||||
};
|
||||
|
||||
class ModulWindowLayout: public Layout
|
||||
|
@ -416,6 +421,8 @@ public:
|
|||
Color const & GetSyntaxBackgroundColor () const { return aSyntaxColors.GetBackgroundColor(); }
|
||||
Color const & GetFontColor () const { return aSyntaxColors.GetFontColor(); }
|
||||
Color const & GetSyntaxColor (TokenType eType) const { return aSyntaxColors.GetColor(eType); }
|
||||
OUString GetActiveColorSchemeId() { return m_sColorSchemeId; }
|
||||
void ApplyColorSchemeToCurrentWindow (OUString aSchemeId);
|
||||
|
||||
protected:
|
||||
// Window:
|
||||
|
@ -430,6 +437,8 @@ private:
|
|||
VclPtr<WatchWindow> aWatchWindow;
|
||||
VclPtr<StackWindow> aStackWindow;
|
||||
ObjectCatalog& rObjectCatalog;
|
||||
// Active color scheme ID
|
||||
OUString m_sColorSchemeId;
|
||||
|
||||
// SyntaxColors -- stores Basic syntax highlighting colors
|
||||
class SyntaxColors : public utl::ConfigurationListener
|
||||
|
@ -439,25 +448,26 @@ private:
|
|||
virtual ~SyntaxColors () override;
|
||||
public:
|
||||
void SetActiveEditor (EditorWindow* pEditor_) { pEditor = pEditor_; }
|
||||
void SetActiveColorSchemeId(OUString aColorSchemeId) { m_sActiveSchemeId = aColorSchemeId; }
|
||||
public:
|
||||
Color const & GetBackgroundColor () const { return m_aBackgroundColor; };
|
||||
Color const & GetFontColor () const { return m_aFontColor; }
|
||||
Color const & GetColor(TokenType eType) const { return aColors[eType]; }
|
||||
void ApplyColorScheme(OUString aSchemeId, bool bFirst);
|
||||
|
||||
private:
|
||||
virtual void ConfigurationChanged (utl::ConfigurationBroadcaster*, ConfigurationHints) override;
|
||||
void NewConfig (bool bFirst);
|
||||
|
||||
private:
|
||||
Color m_aBackgroundColor;
|
||||
Color m_aFontColor;
|
||||
OUString m_sActiveSchemeId;
|
||||
// the color values (the indexes are TokenType, see comphelper/syntaxhighlight.hxx)
|
||||
o3tl::enumarray<TokenType, Color> aColors;
|
||||
// the configuration
|
||||
svtools::ColorConfig aConfig;
|
||||
// the active editor
|
||||
VclPtr<EditorWindow> pEditor;
|
||||
|
||||
} aSyntaxColors;
|
||||
};
|
||||
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
#include "iderdll2.hxx"
|
||||
#include <localizationmgr.hxx>
|
||||
#include <managelang.hxx>
|
||||
#include <ColorSchemeDialog.hxx>
|
||||
|
||||
#include <basic/basmgr.hxx>
|
||||
#include <com/sun/star/script/ModuleType.hpp>
|
||||
|
@ -59,6 +60,7 @@
|
|||
#include <svx/zoomsliderctrl.hxx>
|
||||
#include <svx/zoomslideritem.hxx>
|
||||
#include <basegfx/utils/zoomtools.hxx>
|
||||
#include <officecfg/Office/BasicIDE.hxx>
|
||||
|
||||
constexpr sal_Int32 TAB_HEIGHT_MARGIN = 10;
|
||||
|
||||
|
@ -789,6 +791,50 @@ void Shell::ExecuteGlobal( SfxRequest& rReq )
|
|||
}
|
||||
break;
|
||||
|
||||
case SID_BASICIDE_COLOR_SCHEME_DLG:
|
||||
{
|
||||
ModulWindowLayout* pMyLayout = dynamic_cast<ModulWindowLayout*>(pLayout.get());
|
||||
if (!pMyLayout)
|
||||
return;
|
||||
|
||||
OUString curScheme = pMyLayout->GetActiveColorSchemeId();
|
||||
auto xDlg = std::make_shared<ColorSchemeDialog>(pCurWin ? pCurWin->GetFrameWeld() : nullptr,
|
||||
pMyLayout);
|
||||
weld::DialogController::runAsync(xDlg, [xDlg, pMyLayout, curScheme](sal_Int32 nResult){
|
||||
OUString sNewScheme(xDlg->GetColorSchemeId());
|
||||
// If the user canceled the dialog, restores the original color scheme
|
||||
if (nResult != RET_OK)
|
||||
{
|
||||
if (curScheme != sNewScheme)
|
||||
pMyLayout->ApplyColorSchemeToCurrentWindow(curScheme);
|
||||
}
|
||||
|
||||
// If the user selects OK, apply the color scheme to all open ModulWindow
|
||||
if (nResult == RET_OK)
|
||||
{
|
||||
// Set the global color scheme in ModulWindowLayout and update definitions in SyntaxColors
|
||||
pMyLayout->ApplyColorSchemeToCurrentWindow(sNewScheme);
|
||||
|
||||
// Update color scheme for all windows
|
||||
for (auto const& window : GetShell()->GetWindowTable())
|
||||
{
|
||||
ModulWindow* pModuleWindow = dynamic_cast<ModulWindow*>(window.second.get());
|
||||
if (pModuleWindow)
|
||||
{
|
||||
// We need to set the current scheme for each window
|
||||
pModuleWindow->SetEditorColorScheme(sNewScheme);
|
||||
}
|
||||
}
|
||||
|
||||
// Update registry with the new color scheme ID
|
||||
std::shared_ptr<comphelper::ConfigurationChanges> batch(comphelper::ConfigurationChanges::create());
|
||||
officecfg::Office::BasicIDE::EditorSettings::ColorScheme::set(sNewScheme, batch);
|
||||
batch->commit();
|
||||
}
|
||||
});
|
||||
}
|
||||
break;
|
||||
|
||||
case SID_BASICIDE_MANAGE_LANG:
|
||||
{
|
||||
auto xRequest = std::make_shared<SfxRequest>(rReq);
|
||||
|
@ -1231,6 +1277,13 @@ void Shell::GetState(SfxItemSet &rSet)
|
|||
}
|
||||
break;
|
||||
|
||||
case SID_BASICIDE_COLOR_SCHEME_DLG:
|
||||
{
|
||||
if (!dynamic_cast<ModulWindowLayout*>(pLayout.get()))
|
||||
rSet.DisableItem(nWh);
|
||||
}
|
||||
break;
|
||||
|
||||
case SID_ATTR_ZOOMSLIDER:
|
||||
{
|
||||
// The zoom slider is only visible in a module window
|
||||
|
|
|
@ -74,6 +74,7 @@
|
|||
#include <vcl/settings.hxx>
|
||||
#include <vcl/svapp.hxx>
|
||||
#include <cppuhelper/implbase.hxx>
|
||||
#include <BasicColorConfig.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
|
@ -196,6 +197,9 @@ void Shell::Init()
|
|||
GetViewFrame().GetWindow().GetSettings().GetStyleSettings().GetWindowColor()
|
||||
);
|
||||
|
||||
// Used to access color settings of the Basic code editor
|
||||
m_aColorConfig = std::make_shared<BasicColorConfig>();
|
||||
|
||||
pCurWin = nullptr;
|
||||
m_aCurDocument = ScriptDocument::getApplicationScriptDocument();
|
||||
bCreatingWindow = false;
|
||||
|
|
99
basctl/source/inc/BasicColorConfig.hxx
Normal file
99
basctl/source/inc/BasicColorConfig.hxx
Normal file
|
@ -0,0 +1,99 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <rtl/ustring.hxx>
|
||||
#include <strings.hrc>
|
||||
#include <com/sun/star/uno/Sequence.hxx>
|
||||
#include <comphelper/sequence.hxx>
|
||||
#include <unotools/configitem.hxx>
|
||||
#include <svtools/colorcfg.hxx>
|
||||
#include "colorscheme.hxx"
|
||||
#include "iderid.hxx"
|
||||
#include <map>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
// Name used to refer to the application color scheme (the one defined in Application Colors)
|
||||
inline constexpr OUString DEFAULT_SCHEME = u"COLORSCHEME_DEFAULT"_ustr;
|
||||
|
||||
typedef std::map<OUString, TranslateId> SchemeTranslateIdMap;
|
||||
|
||||
class BasicColorConfig : public utl::ConfigItem
|
||||
{
|
||||
private:
|
||||
// Name of the color scheme that is currently active
|
||||
OUString m_sCurrentColorScheme;
|
||||
|
||||
// Names of all available scheme names
|
||||
css::uno::Sequence<OUString> m_aSchemeNames;
|
||||
|
||||
// Names of default color schemes shipped with LibreOffice
|
||||
css::uno::Sequence<OUString> m_aDefaultSchemes
|
||||
= { "COLORSCHEME_LIBREOFFICE_LIGHT", "COLORSCHEME_LIBREOFFICE_DARK",
|
||||
"COLORSCHEME_BREEZE_LIGHT", "COLORSCHEME_BREEZE_DARK",
|
||||
"COLORSCHEME_SOLARIZED_LIGHT", "COLORSCHEME_SOLARIZED_DARK" };
|
||||
|
||||
// Maps the scheme names to their TranslateId
|
||||
SchemeTranslateIdMap m_aTranslateIdsMap = {
|
||||
{ "COLORSCHEME_LIBREOFFICE_LIGHT", RID_STR_COLORSCHEME_LIGHT },
|
||||
{ "COLORSCHEME_LIBREOFFICE_DARK", RID_STR_COLORSCHEME_DARK },
|
||||
{ "COLORSCHEME_BREEZE_LIGHT", RID_STR_COLORSCHEME_BREEZE_LIGHT },
|
||||
{ "COLORSCHEME_BREEZE_DARK", RID_STR_COLORSCHEME_BREEZE_DARK },
|
||||
{ "COLORSCHEME_SOLARIZED_LIGHT", RID_STR_COLORSCHEME_SOLARIZED_LIGHT },
|
||||
{ "COLORSCHEME_SOLARIZED_DARK", RID_STR_COLORSCHEME_SOLARIZED_DARK },
|
||||
};
|
||||
|
||||
// Used to get colors defined in the Appliation Colors dialog
|
||||
const svtools::ColorConfig aColorConfig;
|
||||
|
||||
virtual void ImplCommit() override;
|
||||
|
||||
public:
|
||||
BasicColorConfig();
|
||||
virtual ~BasicColorConfig() override;
|
||||
|
||||
virtual void Notify(const css::uno::Sequence<OUString>& aPropertyNames) override;
|
||||
|
||||
ColorScheme GetColorScheme(const OUString& rScheme);
|
||||
css::uno::Sequence<OUString> GetColorSchemeNames() { return m_aSchemeNames; }
|
||||
|
||||
// Returns the color scheme defined by the current Application Colors
|
||||
ColorScheme GetAutomaticColorScheme();
|
||||
|
||||
// Returns the name of the currently active color scheme
|
||||
OUString& GetCurrentColorSchemeName();
|
||||
|
||||
// Returns the current color scheme
|
||||
ColorScheme GetCurrentColorScheme() { return GetColorScheme(GetCurrentColorSchemeName()); }
|
||||
|
||||
// Returns true if the scheme is a scheme preinstalled with LO
|
||||
bool IsDefaultScheme(const OUString& rScheme)
|
||||
{
|
||||
return comphelper::findValue(m_aDefaultSchemes, rScheme) != -1;
|
||||
}
|
||||
|
||||
// Returns the TranslateId of the scheme name
|
||||
TranslateId GetSchemeTranslateId(const OUString& rScheme);
|
||||
};
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
57
basctl/source/inc/ColorSchemeDialog.hxx
Normal file
57
basctl/source/inc/ColorSchemeDialog.hxx
Normal file
|
@ -0,0 +1,57 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <utility>
|
||||
#include <vcl/weld.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
class ModulWindowLayout;
|
||||
class BasicColorConfig;
|
||||
|
||||
class ColorSchemeDialog : public weld::GenericDialogController
|
||||
{
|
||||
private:
|
||||
VclPtr<ModulWindowLayout> m_pModulWinLayout;
|
||||
OUString m_sSelectedSchemeId;
|
||||
|
||||
std::unique_ptr<weld::TreeView> m_xSchemeList;
|
||||
std::unique_ptr<weld::RadioButton> m_xUseAppCollors;
|
||||
std::unique_ptr<weld::RadioButton> m_xUseScheme;
|
||||
std::unique_ptr<weld::Button> m_xOk;
|
||||
std::shared_ptr<BasicColorConfig> m_pColorConfig;
|
||||
|
||||
void Init();
|
||||
|
||||
DECL_LINK(BtnOkHdl, weld::Button&, void);
|
||||
DECL_LINK(OptionHdl, weld::Toggleable&, void);
|
||||
DECL_LINK(SelectHdl, weld::TreeView&, void);
|
||||
|
||||
public:
|
||||
ColorSchemeDialog(weld::Window* pParent, VclPtr<ModulWindowLayout> pModulWinLayout);
|
||||
virtual ~ColorSchemeDialog() override;
|
||||
|
||||
const OUString& GetColorSchemeId() { return m_sSelectedSchemeId; }
|
||||
};
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -54,6 +54,7 @@ class DialogWindowLayout;
|
|||
class TabBar;
|
||||
class BaseWindow;
|
||||
class LocalizationMgr;
|
||||
class BasicColorConfig;
|
||||
|
||||
class Shell :
|
||||
public SfxViewShell,
|
||||
|
@ -81,6 +82,9 @@ private:
|
|||
VclPtr<TabBar> pTabBar; // basctl::TabBar
|
||||
bool bCreatingWindow;
|
||||
|
||||
// Basic editor color configuration
|
||||
std::shared_ptr<BasicColorConfig> m_aColorConfig;
|
||||
|
||||
// layout windows
|
||||
VclPtr<ModulWindowLayout> pModulLayout;
|
||||
VclPtr<DialogWindowLayout> pDialogLayout;
|
||||
|
@ -220,6 +224,8 @@ public:
|
|||
void UpdateObjectCatalog () { aObjectCatalog->UpdateEntries(); }
|
||||
|
||||
void RemoveWindow (BaseWindow* pWindow, bool bDestroy, bool bAllowChangeCurWindow = true);
|
||||
|
||||
const std::shared_ptr<BasicColorConfig>& GetColorConfig() const { return m_aColorConfig; }
|
||||
};
|
||||
|
||||
} // namespace basctl
|
||||
|
|
44
basctl/source/inc/colorscheme.hxx
Normal file
44
basctl/source/inc/colorscheme.hxx
Normal file
|
@ -0,0 +1,44 @@
|
|||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
||||
/*
|
||||
* This file is part of the LibreOffice project.
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*
|
||||
* This file incorporates work covered by the following license notice:
|
||||
*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed
|
||||
* with this work for additional information regarding copyright
|
||||
* ownership. The ASF licenses this file to you under the Apache
|
||||
* License, Version 2.0 (the "License"); you may not use this file
|
||||
* except in compliance with the License. You may obtain a copy of
|
||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <tools/color.hxx>
|
||||
|
||||
namespace basctl
|
||||
{
|
||||
// Defines a single color scheme
|
||||
typedef struct
|
||||
{
|
||||
OUString m_sSchemeName;
|
||||
bool m_bIsDefault;
|
||||
Color m_aGenericFontColor;
|
||||
Color m_aIdentifierColor;
|
||||
Color m_aNumberColor;
|
||||
Color m_aStringColor;
|
||||
Color m_aCommentColor;
|
||||
Color m_aErrorColor;
|
||||
Color m_aOperatorColor;
|
||||
Color m_aKeywordColor;
|
||||
Color m_aBackgroundColor;
|
||||
} ColorScheme;
|
||||
|
||||
} // namespace basctl
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@ -65,6 +65,7 @@
|
|||
<menu:menupopup>
|
||||
<menu:menuitem menu:id=".uno:AvailableToolbars"/>
|
||||
<menu:menuitem menu:id=".uno:StatusBarVisible"/>
|
||||
<menu:menuitem menu:id=".uno:BasicColorSchemeDialog"/>
|
||||
<menu:menuseparator/>
|
||||
<menu:menuitem menu:id=".uno:ShowLines"/>
|
||||
<menu:menuitem menu:id=".uno:ShowPropBrowser"/>
|
||||
|
|
214
basctl/uiconfig/basicide/ui/colorscheme.ui
Normal file
214
basctl/uiconfig/basicide/ui/colorscheme.ui
Normal file
|
@ -0,0 +1,214 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface domain="basctl">
|
||||
<requires lib="gtk+" version="3.24"/>
|
||||
<object class="GtkListStore" id="liststore1">
|
||||
<columns>
|
||||
<!-- column-name id -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name scheme -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkDialog" id="ColorSchemeDialog">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">6</property>
|
||||
<property name="title" translatable="yes" context="colorscheme|ColorSchemeDialog">Color Scheme</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="layout-style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_help">
|
||||
<property name="label" translatable="yes" context="stock">_Help</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_ok">
|
||||
<property name="label" translatable="yes" context="stock">_OK</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btn_cancel">
|
||||
<property name="label" translatable="yes" context="stock">_Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFrame" id="options">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkAlignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="left-padding">12</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="opt_appcolors">
|
||||
<property name="label" translatable="yes" context="colorscheme|opt_appcolors">Use Application Colors</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="opt_usescheme">
|
||||
<property name="label" translatable="yes" context="colorscheme|opt_usescheme">Choose Color Scheme</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="active">True</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">opt_appcolors</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="lb_title">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="colorscheme|lb_title">Basic IDE Color Options</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">6</property>
|
||||
<property name="margin-end">6</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkAlignment">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="left-padding">12</property>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="shadow-type">in</property>
|
||||
<child>
|
||||
<object class="GtkTreeView" id="schemelist">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="model">liststore1</property>
|
||||
<property name="headers-visible">False</property>
|
||||
<property name="headers-clickable">False</property>
|
||||
<property name="search-column">0</property>
|
||||
<property name="show-expanders">False</property>
|
||||
<child internal-child="selection">
|
||||
<object class="GtkTreeSelection"/>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkTreeViewColumn">
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="rendertext"/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel" id="lb_schemes">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-bottom">6</property>
|
||||
<property name="label" translatable="yes" context="colorscheme|lb_schemes">Color Schemes</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<action-widgets>
|
||||
<action-widget response="-11">btn_help</action-widget>
|
||||
<action-widget response="-5">btn_ok</action-widget>
|
||||
<action-widget response="-6">btn_cancel</action-widget>
|
||||
</action-widgets>
|
||||
</object>
|
||||
</interface>
|
|
@ -669,6 +669,7 @@ class SvxZoomItem;
|
|||
#define SID_BASICIDE_CURRENT_ZOOM TypedWhichId<SfxStringItem>( SID_BASICIDE_START + 54 )
|
||||
#define SID_BASICIDE_WATCH TypedWhichId<SfxBoolItem>( SID_BASICIDE_START + 55 )
|
||||
#define SID_BASICIDE_STACK TypedWhichId<SfxBoolItem>( SID_BASICIDE_START + 56 )
|
||||
#define SID_BASICIDE_COLOR_SCHEME_DLG ( SID_BASICIDE_START + 57 )
|
||||
#define SID_OPTIONS_TREEDIALOG ( SID_BASICIDE_START + 862)
|
||||
|
||||
// SlotIds for Apps --------------------------------------------------------
|
||||
|
|
|
@ -18,4 +18,288 @@
|
|||
-->
|
||||
<!DOCTYPE oor:component-data SYSTEM "../../../../component-update.dtd">
|
||||
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:install="http://openoffice.org/2004/installation" oor:name="BasicIDE" oor:package="org.openoffice.Office">
|
||||
<node oor:name="IDEColorSchemes">
|
||||
<node oor:name="COLORSCHEME_LIBREOFFICE_LIGHT" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>0</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>32768</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16711680</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16711680</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8421504</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16711680</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>128</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>128</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16777215</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="COLORSCHEME_LIBREOFFICE_DARK" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16777215</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>14543051</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16754342</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16754342</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>15658734</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16726072</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>11847644</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>11847644</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>0</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="COLORSCHEME_BREEZE_LIGHT" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2038811</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2038811</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>11567104</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>12518147</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>9144455</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>12518147</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>13263050</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>22446</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16777215</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="COLORSCHEME_BREEZE_DARK" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>11974316</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>13619134</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>15822859</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>15814479</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8358783</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>15814479</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>4161624</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2719383</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2303529</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="COLORSCHEME_SOLARIZED_LIGHT" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>6650755</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>6650755</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>3252632</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>3252632</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>9675169</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>14430772</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8755456</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8755456</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>16643811</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="COLORSCHEME_SOLARIZED_DARK" oor:op="replace">
|
||||
<node oor:name="GenericColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8623254</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="IdentifierColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8623254</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="NumberColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2793880</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="StringColor">
|
||||
<prop oor:name="Color">
|
||||
<value>2793880</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="CommentColor">
|
||||
<prop oor:name="Color">
|
||||
<value>5664373</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="ErrorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>14430767</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="OperatorColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8755456</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="KeywordColor">
|
||||
<prop oor:name="Color">
|
||||
<value>8755456</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name="BackgroundColor">
|
||||
<prop oor:name="Color">
|
||||
<value>11062</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</oor:component-data>
|
||||
|
|
|
@ -99,6 +99,14 @@
|
|||
<value xml:lang="en-US">Hide</value>
|
||||
</prop>
|
||||
</node>
|
||||
<node oor:name=".uno:BasicColorSchemeDialog" oor:op="replace">
|
||||
<prop oor:name="Label" oor:type="xs:string">
|
||||
<value xml:lang="en-US">Color Scheme...</value>
|
||||
</prop>
|
||||
<prop oor:name="Properties" oor:type="xs:int">
|
||||
<value>1</value>
|
||||
</prop>
|
||||
</node>
|
||||
</node>
|
||||
<node oor:name="Popups">
|
||||
<node oor:name=".uno:RunMenu" oor:op="replace">
|
||||
|
|
|
@ -21,6 +21,103 @@
|
|||
<info>
|
||||
<desc>Contains configuration for the BASIC IDE.</desc>
|
||||
</info>
|
||||
<templates>
|
||||
<group oor:name="IDEColorScheme">
|
||||
<info>
|
||||
<desc>Defines the templates for color schemes used in the Basic IDE code editor.</desc>
|
||||
</info>
|
||||
<group oor:name="GenericColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for unknown tokens.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for unknown tokens.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="IdentifierColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for identifier tokens.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for identifier tokens.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="NumberColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for numbers.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for numbers.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="StringColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for strings.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for strings.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="CommentColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for comments.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for comments.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="ErrorColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for errors.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for errors.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="OperatorColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for operators.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for operators.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="KeywordColor">
|
||||
<info>
|
||||
<desc>Specifies the formatting used for keywords.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for keywords.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
<group oor:name="BackgroundColor">
|
||||
<info>
|
||||
<desc>Specifies the settings for the editor's background color.</desc>
|
||||
</info>
|
||||
<prop oor:name="Color" oor:type="xs:int">
|
||||
<info>
|
||||
<desc>Specifies the color used for the editor's background.</desc>
|
||||
</info>
|
||||
</prop>
|
||||
</group>
|
||||
</group>
|
||||
</templates>
|
||||
<component>
|
||||
<group oor:name="Autocomplete">
|
||||
<info>
|
||||
|
@ -64,15 +161,26 @@
|
|||
</prop>
|
||||
</group>
|
||||
<group oor:name="EditorSettings">
|
||||
<info>
|
||||
<desc>Contains user configuration.</desc>
|
||||
</info>
|
||||
<prop oor:name="LineNumbering" oor:type="xs:boolean" oor:nillable="false">
|
||||
<info>
|
||||
<desc>Contains user configuration.</desc>
|
||||
<desc>Sets the line numbering on/off. Default is true.</desc>
|
||||
</info>
|
||||
<prop oor:name="LineNumbering" oor:type="xs:boolean" oor:nillable="false">
|
||||
<info>
|
||||
<desc>Sets the line numbering on/off. Default is true.</desc>
|
||||
</info>
|
||||
<value>true</value>
|
||||
</prop>
|
||||
<value>true</value>
|
||||
</prop>
|
||||
<prop oor:name="ColorScheme" oor:type="xs:string" oor:nillable="false">
|
||||
<info>
|
||||
<desc>Name of the selected color scheme used in the Basic IDE.</desc>
|
||||
</info>
|
||||
<value>COLORSCHEME_DEFAULT</value>
|
||||
</prop>
|
||||
</group>
|
||||
<set oor:name="IDEColorSchemes" oor:node-type="IDEColorScheme">
|
||||
<info>
|
||||
<desc>Lists entries with color settings.</desc>
|
||||
</info>
|
||||
</set>
|
||||
</component>
|
||||
</oor:component-schema>
|
||||
|
|
|
@ -11197,6 +11197,23 @@ SfxVoidItem InsertNarrowNobreakSpace FN_INSERT_NNBSP
|
|||
GroupId = SfxGroupId::Insert;
|
||||
]
|
||||
|
||||
SfxVoidItem BasicColorSchemeDialog SID_BASICIDE_COLOR_SCHEME_DLG
|
||||
()
|
||||
[
|
||||
AutoUpdate = FALSE,
|
||||
FastCall = FALSE,
|
||||
ReadOnlyDoc = TRUE,
|
||||
Toggle = FALSE,
|
||||
Container = FALSE,
|
||||
RecordAbsolute = FALSE,
|
||||
RecordPerSet;
|
||||
|
||||
AccelConfig = TRUE,
|
||||
MenuConfig = TRUE,
|
||||
ToolBoxConfig = TRUE,
|
||||
GroupId = SfxGroupId::Controls;
|
||||
]
|
||||
|
||||
SfxVoidItem ManageLanguage SID_BASICIDE_MANAGE_LANG
|
||||
()
|
||||
[
|
||||
|
|
Loading…
Reference in a new issue