Turn UI picker dialog into a SfxTabDialog
Prerequisite to 6fa44178cad838fe126e64c87c873a1ee181f542 Change-Id: I8612658bddc79682b9b63c60eb8e4bf72021b50e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184714 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Tested-by: Jenkins
This commit is contained in:
committed by
Heiko Tietze
parent
234cb2da35
commit
ec04856ff1
@@ -161,6 +161,7 @@ $(eval $(call gb_Library_add_exception_objects,cui,\
|
||||
cui/source/dialogs/srchxtra \
|
||||
cui/source/dialogs/thesdlg \
|
||||
cui/source/dialogs/toolbarmodedlg \
|
||||
cui/source/dialogs/uitabpage \
|
||||
cui/source/dialogs/zoom \
|
||||
cui/source/factory/cuiexp \
|
||||
cui/source/factory/cuiresmgr \
|
||||
|
||||
@@ -222,6 +222,7 @@ $(eval $(call gb_UIConfig_add_uifiles,cui,\
|
||||
cui/uiconfig/ui/textflowpage \
|
||||
cui/uiconfig/ui/thesaurus \
|
||||
cui/uiconfig/ui/toolbarmodedialog \
|
||||
cui/uiconfig/ui/uitabpage \
|
||||
cui/uiconfig/ui/transparencytabpage \
|
||||
cui/uiconfig/ui/tsaurldialog \
|
||||
cui/uiconfig/ui/twolinespage \
|
||||
|
||||
+2
-1
@@ -385,7 +385,8 @@
|
||||
#define RID_CUISTR_ADDITIONS_THEMES NC_("RID_SVXSTR_ADDITIONS_THEMES", "Extensions: Color Themes")
|
||||
#define RID_CUISTR_ADDITIONS_TEMPLATES NC_("RID_SVXSTR_ADDITIONS_TEMPLATES", "Extensions: Templates")
|
||||
|
||||
#define RID_CUISTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to %MODULE")
|
||||
#define RID_CUISTR_UI_APPLY NC_("RID_SVXSTR_UI_APPLY", "Apply to %MODULE")
|
||||
#define RID_CUISTR_UI_APPLYALL NC_("RID_SVXSTR_UI_APPLYALL", "Apply to All")
|
||||
|
||||
#define RID_CUISTR_OLE_INSERT NC_("RID_SVXSTR_OLE_INSERT", "Inserting OLE object...")
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define NC_(Context, String) TranslateId(Context, u8##String)
|
||||
|
||||
#include <rtl/ustring.hxx>
|
||||
#include <tuple>
|
||||
#include <unotools/resmgr.hxx>
|
||||
|
||||
/*
|
||||
Description, ui file name, preview file name
|
||||
*/
|
||||
const std::tuple<TranslateId, OUString, OUString> TOOLBARMODES_ARRAY[] =
|
||||
{
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface with menu, toolbar, and collapsed sidebar. Intended for users who are familiar with the classic interface."), "Default", "default.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Tabbed user interface is the most similar to the Ribbons used in Microsoft Office. It organizes functions in tabs and makes the main menu obsolete."), "notebookbar.ui", "notebookbar.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface but with single-line toolbar. Intended for use on small screens."), "Single", "single.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "Standard user interface with expanded sidebar. Expert users who want to quickly change many different properties are advised to use this UI."), "Sidebar", "sidebar.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Tabbed Compact variant aims to be familiar with the Microsoft Office interface, yet occupying less space for smaller screens."), "notebookbar_compact.ui", "notebookbar_compact.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This full variant favors functions and is slightly larger than others."), "notebookbar_groupedbar_full.ui", "notebookbar_groupedbar_full.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This compact variant favors vertical space."), "notebookbar_groupedbar_compact.ui", "notebookbar_groupedbar_compact.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Contextual Single interface shows functions in a single-line toolbar with context-dependent content."), "notebookbar_single.ui", "notebookbar_single.png" },
|
||||
{ NC_("RID_CUI_TOOLBARMODES", "The Contextual Groups interface focuses on beginners. It exposes the most frequently used functions on groups with the core action as large icon and a couple of small additional features. All functions have a label. Depending on the context, an additional section provides access to those functions."), "notebookbar_groups.ui", "notebookbar_groups.png" },
|
||||
};
|
||||
|
||||
//hide experimental UIs
|
||||
constexpr int nGroupedbarFull = 5;
|
||||
constexpr int nContextualGroups = 8;
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
@@ -0,0 +1,38 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#define NC_(Context, String) TranslateId(Context, u8##String)
|
||||
|
||||
#include <rtl/ustring.hxx>
|
||||
#include <tuple>
|
||||
#include <unotools/resmgr.hxx>
|
||||
|
||||
/*
|
||||
Description, ui file name, preview file name
|
||||
*/
|
||||
const std::tuple<TranslateId, OUString, OUString> UIMODES_ARRAY[] =
|
||||
{
|
||||
{ NC_("RID_CUI_UIMODES", "Standard user interface with menu, toolbar, and collapsed sidebar. Intended for users who are familiar with the classic interface."), "Default", "default.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Tabbed user interface is the most similar to the Ribbons used in Microsoft Office. It organizes functions in tabs and makes the main menu obsolete."), "notebookbar.ui", "notebookbar.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "Standard user interface but with single-line toolbar. Intended for use on small screens."), "Single", "single.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "Standard user interface with expanded sidebar. Expert users who want to quickly change many different properties are advised to use this UI."), "Sidebar", "sidebar.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Tabbed Compact variant aims to be familiar with the Microsoft Office interface, yet occupying less space for smaller screens."), "notebookbar_compact.ui", "notebookbar_compact.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This full variant favors functions and is slightly larger than others."), "notebookbar_groupedbar_full.ui", "notebookbar_groupedbar_full.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Groupedbar interface provides access to functions in groups, with icons for most-frequently used features, and dropdown menus for others. This compact variant favors vertical space."), "notebookbar_groupedbar_compact.ui", "notebookbar_groupedbar_compact.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Contextual Single interface shows functions in a single-line toolbar with context-dependent content."), "notebookbar_single.ui", "notebookbar_single.png" },
|
||||
{ NC_("RID_CUI_UIMODES", "The Contextual Groups interface focuses on beginners. It exposes the most frequently used functions on groups with the core action as large icon and a couple of small additional features. All functions have a label. Depending on the context, an additional section provides access to those functions."), "notebookbar_groups.ui", "notebookbar_groups.png" },
|
||||
};
|
||||
|
||||
//hide experimental UIs
|
||||
constexpr int nGroupedbarFull = 5;
|
||||
constexpr int nContextualGroups = 8;
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
||||
@@ -7,177 +7,52 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
#include <sal/config.h>
|
||||
|
||||
#include <toolbarmodedlg.hxx>
|
||||
#include <toolbarmode.hrc>
|
||||
|
||||
#include <com/sun/star/frame/ModuleManager.hpp>
|
||||
#include <comphelper/dispatchcommand.hxx>
|
||||
#include <comphelper/types.hxx>
|
||||
#include <dialmgr.hxx>
|
||||
#include <officecfg/Office/Common.hxx>
|
||||
#include <officecfg/Office/UI/ToolbarMode.hxx>
|
||||
#include <osl/file.hxx>
|
||||
#include <rtl/bootstrap.hxx>
|
||||
#include <sfx2/viewfrm.hxx>
|
||||
#include <strings.hrc>
|
||||
#include <unotools/confignode.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
#include <vcl/graphicfilter.hxx>
|
||||
#include <vcl/EnumContext.hxx>
|
||||
#include <vcl/weld.hxx>
|
||||
#include <com/sun/star/beans/PropertyValue.hpp>
|
||||
|
||||
static OUString GetCurrentApp()
|
||||
{
|
||||
OUString sResult;
|
||||
if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
|
||||
{
|
||||
const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
|
||||
const auto& xContext = comphelper::getProcessComponentContext();
|
||||
const auto xModuleManager = css::frame::ModuleManager::create(xContext);
|
||||
switch (vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xCurrentFrame)))
|
||||
{
|
||||
case vcl::EnumContext::Application::Writer:
|
||||
sResult = "Writer";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Calc:
|
||||
sResult = "Calc";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Impress:
|
||||
sResult = "Impress";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Draw:
|
||||
sResult = "Draw";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Formula:
|
||||
sResult = "Formula";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Base:
|
||||
sResult = "Base";
|
||||
break;
|
||||
default:
|
||||
sResult = "Unsupported";
|
||||
}
|
||||
}
|
||||
return sResult;
|
||||
}
|
||||
|
||||
static OUString GetCurrentMode()
|
||||
{
|
||||
OUString sResult;
|
||||
if (SfxViewFrame::Current())
|
||||
{
|
||||
const auto& xContext = comphelper::getProcessComponentContext();
|
||||
const utl::OConfigurationTreeRoot aAppNode(
|
||||
xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/" + GetCurrentApp(), true);
|
||||
if (aAppNode.isValid())
|
||||
sResult = comphelper::getString(aAppNode.getNodeValue(u"Active"_ustr));
|
||||
};
|
||||
return sResult;
|
||||
}
|
||||
|
||||
ToolbarmodeDialog::ToolbarmodeDialog(weld::Window* pParent)
|
||||
: GenericDialogController(pParent, u"cui/ui/toolbarmodedialog.ui"_ustr,
|
||||
u"ToolbarmodeDialog"_ustr)
|
||||
, m_pImage(m_xBuilder->weld_image(u"imImage"_ustr))
|
||||
, m_pApply(m_xBuilder->weld_button(u"btnApply"_ustr))
|
||||
, m_pApplyAll(m_xBuilder->weld_button(u"btnApplyAll"_ustr))
|
||||
, m_pRadioButtons{ (m_xBuilder->weld_radio_button(u"rbButton1"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton2"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton3"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton4"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton5"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton6"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton7"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton8"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton9"_ustr)) }
|
||||
, m_pInfoLabel(m_xBuilder->weld_label(u"lbInfo"_ustr))
|
||||
: SfxTabDialogController(pParent, u"cui/ui/toolbarmodedialog.ui"_ustr,
|
||||
u"ToolbarModeDialog"_ustr)
|
||||
, m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
|
||||
, m_xApplyBtn(m_xBuilder->weld_button(u"apply"_ustr)) // Apply to %Module
|
||||
, m_xCancelBtn(m_xBuilder->weld_button(u"cancel"_ustr)) // Close
|
||||
, m_xHelpBtn(m_xBuilder->weld_button(u"help"_ustr))
|
||||
, m_xResetBtn(m_xBuilder->weld_button(u"reset"_ustr)) // Apply to All
|
||||
{
|
||||
static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == std::size(TOOLBARMODES_ARRAY));
|
||||
AddTabPage("uimode", UITabPage::Create, nullptr);
|
||||
|
||||
Link<weld::Toggleable&, void> aLink = LINK(this, ToolbarmodeDialog, SelectToolbarmode);
|
||||
|
||||
const OUString sCurrentMode = GetCurrentMode();
|
||||
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
|
||||
{
|
||||
m_pRadioButtons[i]->connect_toggled(aLink);
|
||||
if (sCurrentMode == std::get<1>(TOOLBARMODES_ARRAY[i]))
|
||||
{
|
||||
m_pRadioButtons[i]->set_active(true);
|
||||
UpdateImage(std::get<2>(TOOLBARMODES_ARRAY[i]));
|
||||
m_pInfoLabel->set_label(CuiResId(std::get<0>(TOOLBARMODES_ARRAY[i])));
|
||||
}
|
||||
}
|
||||
|
||||
m_pApply->set_label(CuiResId(RID_CUISTR_UI_APPLYALL).replaceFirst("%MODULE", GetCurrentApp()));
|
||||
m_pApply->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
|
||||
m_pApplyAll->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
|
||||
|
||||
if (!officecfg::Office::Common::Misc::ExperimentalMode::get())
|
||||
{
|
||||
m_pRadioButtons[nGroupedbarFull]->set_visible(false);
|
||||
m_pRadioButtons[nContextualGroups]->set_visible(false);
|
||||
}
|
||||
m_xOKBtn->set_visible(false);
|
||||
m_xHelpBtn->set_visible(false);
|
||||
m_xCancelBtn->set_label(CuiResId(RID_CUISTR_HYPDLG_CLOSEBUT)); // "close"
|
||||
}
|
||||
|
||||
ToolbarmodeDialog::~ToolbarmodeDialog() = default;
|
||||
|
||||
static bool file_exists(const OUString& fileName)
|
||||
void ToolbarmodeDialog::ActivatePage(const OUString& rPage)
|
||||
{
|
||||
osl::File aFile(fileName);
|
||||
return aFile.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;
|
||||
}
|
||||
|
||||
int ToolbarmodeDialog::GetActiveRadioButton()
|
||||
{
|
||||
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
|
||||
if (rPage == "uimode")
|
||||
{
|
||||
if (m_pRadioButtons[i]->get_active())
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
m_xApplyBtn->set_label(
|
||||
CuiResId(RID_CUISTR_UI_APPLY).replaceFirst("%MODULE", UITabPage::GetCurrentApp()));
|
||||
m_xApplyBtn->set_from_icon_name("sw/res/sc20558.png");
|
||||
m_xResetBtn->set_label(CuiResId(RID_CUISTR_UI_APPLYALL));
|
||||
|
||||
void ToolbarmodeDialog::UpdateImage(std::u16string_view sFileName)
|
||||
{
|
||||
// load image
|
||||
OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/"_ustr);
|
||||
rtl::Bootstrap::expandMacros(aURL);
|
||||
aURL += sFileName;
|
||||
if (sFileName.empty() || !file_exists(aURL))
|
||||
return;
|
||||
// draw image
|
||||
Graphic aGraphic;
|
||||
if (GraphicFilter::LoadGraphic(aURL, OUString(), aGraphic) == ERRCODE_NONE)
|
||||
{
|
||||
ScopedVclPtr<VirtualDevice> m_pVirDev = m_pImage->create_virtual_device();
|
||||
m_pVirDev->SetOutputSizePixel(aGraphic.GetSizePixel());
|
||||
m_pVirDev->DrawBitmapEx(Point(0, 0), aGraphic.GetBitmapEx());
|
||||
m_pImage->set_image(m_pVirDev.get());
|
||||
m_pVirDev.disposeAndClear();
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(ToolbarmodeDialog, SelectToolbarmode, weld::Toggleable&, void)
|
||||
{
|
||||
const int i = GetActiveRadioButton();
|
||||
if (i > -1)
|
||||
{
|
||||
UpdateImage(std::get<2>(TOOLBARMODES_ARRAY[i]));
|
||||
m_pInfoLabel->set_label(CuiResId(std::get<0>(TOOLBARMODES_ARRAY[i])));
|
||||
m_xApplyBtn->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
|
||||
m_xResetBtn->connect_clicked(LINK(this, ToolbarmodeDialog, OnApplyClick));
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
|
||||
{
|
||||
const int i = GetActiveRadioButton();
|
||||
if (i == -1)
|
||||
return;
|
||||
const OUString sCmd = std::get<1>(TOOLBARMODES_ARRAY[i]);
|
||||
UITabPage* pUITabPage = static_cast<UITabPage*>(GetCurTabPage());
|
||||
const OUString& sCmd = pUITabPage->GetSelectedMode();
|
||||
|
||||
//apply to all except current module
|
||||
if (&rButton == m_pApplyAll.get())
|
||||
if (&rButton == m_xResetBtn.get()) // Apply to All
|
||||
{
|
||||
std::shared_ptr<comphelper::ConfigurationChanges> aBatch(
|
||||
comphelper::ConfigurationChanges::create());
|
||||
@@ -187,7 +62,7 @@ IMPL_LINK(ToolbarmodeDialog, OnApplyClick, weld::Button&, rButton, void)
|
||||
officecfg::Office::UI::ToolbarMode::ActiveDraw::set(sCmd, aBatch);
|
||||
aBatch->commit();
|
||||
|
||||
OUString sCurrentApp = GetCurrentApp();
|
||||
const OUString sCurrentApp = UITabPage::GetCurrentApp();
|
||||
if (SfxViewFrame::Current())
|
||||
{
|
||||
const auto& xContext = comphelper::getProcessComponentContext();
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
#include <uitabpage.hxx>
|
||||
|
||||
#include <com/sun/star/frame/ModuleManager.hpp>
|
||||
#include <comphelper/types.hxx>
|
||||
#include <dialmgr.hxx>
|
||||
#include <officecfg/Office/Common.hxx>
|
||||
#include <osl/file.hxx>
|
||||
#include <rtl/bootstrap.hxx>
|
||||
#include <sfx2/viewfrm.hxx>
|
||||
#include <unotools/confignode.hxx>
|
||||
#include <vcl/virdev.hxx>
|
||||
#include <vcl/graphicfilter.hxx>
|
||||
#include <vcl/EnumContext.hxx>
|
||||
|
||||
std::unique_ptr<SfxTabPage> UITabPage::Create(weld::Container* pPage,
|
||||
weld::DialogController* pController,
|
||||
const SfxItemSet* rAttr)
|
||||
{
|
||||
return std::make_unique<UITabPage>(pPage, pController, *rAttr);
|
||||
}
|
||||
|
||||
UITabPage::UITabPage(weld::Container* pPage, weld::DialogController* pController,
|
||||
const SfxItemSet& rAttr)
|
||||
: SfxTabPage(pPage, pController, u"cui/ui/uitabpage.ui"_ustr, u"UITabPage"_ustr, &rAttr)
|
||||
, m_pImage(m_xBuilder->weld_image(u"imImage"_ustr))
|
||||
, m_pApply(m_xBuilder->weld_button(u"btnApply"_ustr))
|
||||
, m_pApplyAll(m_xBuilder->weld_button(u"btnApplyAll"_ustr))
|
||||
, m_pRadioButtons{ (m_xBuilder->weld_radio_button(u"rbButton1"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton2"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton3"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton4"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton5"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton6"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton7"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton8"_ustr)),
|
||||
(m_xBuilder->weld_radio_button(u"rbButton9"_ustr)) }
|
||||
, m_pInfoLabel(m_xBuilder->weld_label(u"lbInfo"_ustr))
|
||||
{
|
||||
static_assert(SAL_N_ELEMENTS(m_pRadioButtons) == std::size(UIMODES_ARRAY));
|
||||
|
||||
Link<weld::Toggleable&, void> aLink = LINK(this, UITabPage, SelectUIMode);
|
||||
|
||||
const OUString sCurrentMode = GetCurrentMode();
|
||||
for (std::size_t i = 0; i < std::size(m_pRadioButtons); ++i)
|
||||
{
|
||||
m_pRadioButtons[i]->connect_toggled(aLink);
|
||||
if (sCurrentMode == std::get<1>(UIMODES_ARRAY[i]))
|
||||
{
|
||||
m_pRadioButtons[i]->set_active(true);
|
||||
UpdateImage(std::get<2>(UIMODES_ARRAY[i]));
|
||||
m_pInfoLabel->set_label(CuiResId(std::get<0>(UIMODES_ARRAY[i])));
|
||||
}
|
||||
}
|
||||
|
||||
if (!officecfg::Office::Common::Misc::ExperimentalMode::get())
|
||||
{
|
||||
m_pRadioButtons[nGroupedbarFull]->set_visible(false);
|
||||
m_pRadioButtons[nContextualGroups]->set_visible(false);
|
||||
}
|
||||
}
|
||||
|
||||
OUString UITabPage::GetCurrentMode()
|
||||
{
|
||||
OUString sResult;
|
||||
if (SfxViewFrame::Current())
|
||||
{
|
||||
const auto& xContext = comphelper::getProcessComponentContext();
|
||||
const utl::OConfigurationTreeRoot aAppNode(
|
||||
xContext, "org.openoffice.Office.UI.ToolbarMode/Applications/" + GetCurrentApp(), true);
|
||||
if (aAppNode.isValid())
|
||||
sResult = comphelper::getString(aAppNode.getNodeValue(u"Active"_ustr));
|
||||
};
|
||||
return sResult;
|
||||
}
|
||||
|
||||
OUString UITabPage::GetCurrentApp()
|
||||
{
|
||||
OUString sResult;
|
||||
if (SfxViewFrame* pViewFrame = SfxViewFrame::Current())
|
||||
{
|
||||
const auto xCurrentFrame = pViewFrame->GetFrame().GetFrameInterface();
|
||||
const auto& xContext = comphelper::getProcessComponentContext();
|
||||
const auto xModuleManager = css::frame::ModuleManager::create(xContext);
|
||||
switch (vcl::EnumContext::GetApplicationEnum(xModuleManager->identify(xCurrentFrame)))
|
||||
{
|
||||
case vcl::EnumContext::Application::Writer:
|
||||
sResult = "Writer";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Calc:
|
||||
sResult = "Calc";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Impress:
|
||||
sResult = "Impress";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Draw:
|
||||
sResult = "Draw";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Formula:
|
||||
sResult = "Formula";
|
||||
break;
|
||||
case vcl::EnumContext::Application::Base:
|
||||
sResult = "Base";
|
||||
break;
|
||||
default:
|
||||
sResult = "Unsupported";
|
||||
}
|
||||
}
|
||||
return sResult;
|
||||
}
|
||||
|
||||
int UITabPage::GetActiveRadioButton()
|
||||
{
|
||||
const int nSize = std::size(m_pRadioButtons);
|
||||
for (int i = 0; i < nSize; ++i)
|
||||
{
|
||||
if (m_pRadioButtons[i]->get_active())
|
||||
return i;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
const OUString& UITabPage::GetSelectedMode()
|
||||
{
|
||||
int i = GetActiveRadioButton();
|
||||
return std::get<1>(UIMODES_ARRAY[i]);
|
||||
}
|
||||
|
||||
static bool file_exists(const OUString& fileName)
|
||||
{
|
||||
osl::File aFile(fileName);
|
||||
return aFile.open(osl_File_OpenFlag_Read) == osl::FileBase::E_None;
|
||||
}
|
||||
|
||||
void UITabPage::UpdateImage(std::u16string_view sFileName)
|
||||
{
|
||||
// load image
|
||||
OUString aURL(u"$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/toolbarmode/"_ustr);
|
||||
rtl::Bootstrap::expandMacros(aURL);
|
||||
aURL += sFileName;
|
||||
if (sFileName.empty() || !file_exists(aURL))
|
||||
return;
|
||||
// draw image
|
||||
Graphic aGraphic;
|
||||
if (GraphicFilter::LoadGraphic(aURL, OUString(), aGraphic) == ERRCODE_NONE)
|
||||
{
|
||||
ScopedVclPtr<VirtualDevice> m_pVirDev = m_pImage->create_virtual_device();
|
||||
m_pVirDev->SetOutputSizePixel(aGraphic.GetSizePixel());
|
||||
m_pVirDev->DrawBitmapEx(Point(0, 0), aGraphic.GetBitmapEx());
|
||||
m_pImage->set_image(m_pVirDev.get());
|
||||
m_pVirDev.disposeAndClear();
|
||||
}
|
||||
}
|
||||
|
||||
IMPL_LINK_NOARG(UITabPage, SelectUIMode, weld::Toggleable&, void)
|
||||
{
|
||||
const int i = GetActiveRadioButton();
|
||||
if (i > -1)
|
||||
{
|
||||
UpdateImage(std::get<2>(UIMODES_ARRAY[i]));
|
||||
m_pInfoLabel->set_label(CuiResId(std::get<0>(UIMODES_ARRAY[i])));
|
||||
}
|
||||
}
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
||||
@@ -9,29 +9,24 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sal/config.h>
|
||||
#include <sfx2/tabdlg.hxx>
|
||||
#include "uitabpage.hxx"
|
||||
|
||||
#include <string_view>
|
||||
|
||||
#include <vcl/weld.hxx>
|
||||
|
||||
class ToolbarmodeDialog : public weld::GenericDialogController
|
||||
class ToolbarmodeDialog : public SfxTabDialogController
|
||||
{
|
||||
public:
|
||||
ToolbarmodeDialog(weld::Window* pWindow);
|
||||
virtual ~ToolbarmodeDialog() override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<weld::Image> m_pImage;
|
||||
std::unique_ptr<weld::Button> m_pApply;
|
||||
std::unique_ptr<weld::Button> m_pApplyAll;
|
||||
std::unique_ptr<weld::RadioButton> m_pRadioButtons[9];
|
||||
std::unique_ptr<weld::Label> m_pInfoLabel;
|
||||
std::unique_ptr<weld::Button> m_xOKBtn;
|
||||
std::unique_ptr<weld::Button> m_xApplyBtn;
|
||||
std::unique_ptr<weld::Button> m_xCancelBtn;
|
||||
std::unique_ptr<weld::Button> m_xHelpBtn;
|
||||
std::unique_ptr<weld::Button> m_xResetBtn;
|
||||
|
||||
virtual void ActivatePage(const OUString& rPage) override;
|
||||
|
||||
void UpdateImage(std::u16string_view sFileName);
|
||||
int GetActiveRadioButton();
|
||||
DECL_LINK(SelectToolbarmode, weld::Toggleable&, void);
|
||||
DECL_LINK(OnApplyClick, weld::Button&, void);
|
||||
|
||||
public:
|
||||
ToolbarmodeDialog(weld::Window* pParent);
|
||||
};
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */
|
||||
/*
|
||||
* 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/.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <sfx2/tabdlg.hxx>
|
||||
|
||||
#include <uimode.hrc>
|
||||
|
||||
class UITabPage : public SfxTabPage
|
||||
{
|
||||
private:
|
||||
std::unique_ptr<weld::Image> m_pImage;
|
||||
std::unique_ptr<weld::Button> m_pApply;
|
||||
std::unique_ptr<weld::Button> m_pApplyAll;
|
||||
std::unique_ptr<weld::RadioButton> m_pRadioButtons[std::size(UIMODES_ARRAY)];
|
||||
std::unique_ptr<weld::Label> m_pInfoLabel;
|
||||
|
||||
void UpdateImage(std::u16string_view sFileName);
|
||||
static OUString GetCurrentMode();
|
||||
int GetActiveRadioButton();
|
||||
DECL_LINK(SelectUIMode, weld::Toggleable&, void);
|
||||
|
||||
public:
|
||||
UITabPage(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet& rSet);
|
||||
static std::unique_ptr<SfxTabPage>
|
||||
Create(weld::Container* pPage, weld::DialogController* pController, const SfxItemSet* rSet);
|
||||
|
||||
const OUString& GetSelectedMode();
|
||||
static OUString GetCurrentApp();
|
||||
};
|
||||
|
||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
|
||||
@@ -2,36 +2,28 @@
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface domain="cui">
|
||||
<requires lib="gtk+" version="3.20"/>
|
||||
<object class="GtkImage" id="imgApply">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="icon-name">sw/res/sc20558.png</property>
|
||||
</object>
|
||||
<object class="GtkDialog" id="ToolbarmodeDialog">
|
||||
<object class="GtkDialog" id="ToolbarModeDialog">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="border-width">6</property>
|
||||
<property name="title" translatable="yes" context="ToolbarmodeDialog|Name">Select Your Preferred User Interface</property>
|
||||
<property name="resizable">False</property>
|
||||
<property name="title" translatable="yes" context="toolbarmodedialog|ToolbarModeDialog">Select Your Preferred User Interface</property>
|
||||
<property name="modal">True</property>
|
||||
<property name="window-position">center-on-parent</property>
|
||||
<property name="default-width">0</property>
|
||||
<property name="default-height">0</property>
|
||||
<property name="type-hint">dialog</property>
|
||||
<child internal-child="vbox">
|
||||
<object class="GtkBox" id="dialog-vbox">
|
||||
<object class="GtkBox" id="dialog-vbox1">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<child internal-child="action_area">
|
||||
<object class="GtkButtonBox" id="dialog-action_area">
|
||||
<object class="GtkButtonBox" id="dialog-action_area1">
|
||||
<property name="can-focus">False</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="layout-style">end</property>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnApplyAll">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|applyall">A_pply to All</property>
|
||||
<object class="GtkButton" id="reset">
|
||||
<property name="label" translatable="yes" context="stock">_Reset</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="has-default">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
@@ -42,16 +34,14 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="btnApply">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|applymodule">A_pply to %MODULE</property>
|
||||
<object class="GtkButton" id="ok">
|
||||
<property name="label" translatable="yes" context="stock">_OK</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="has-default">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="image">imgApply</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="always-show-image">True</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
@@ -60,12 +50,10 @@
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkButton" id="close">
|
||||
<property name="label" translatable="yes" context="stock">_Close</property>
|
||||
<object class="GtkButton" id="cancel">
|
||||
<property name="label" translatable="yes" context="stock">_Cancel</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="can-default">True</property>
|
||||
<property name="has-default">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</object>
|
||||
@@ -82,327 +70,84 @@
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
<property name="image-position">right</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">True</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
<property name="secondary">True</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<object class="GtkButton" id="apply">
|
||||
<property name="label" translatable="yes" context="stock">_Apply</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton1">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton1">Standard Toolbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</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="rbButton2">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton2">Tabbed</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton3">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton3">Single Toolbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton4">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton4">Sidebar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton5">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton5">Tabbed Compact</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton6">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton6">Groupedbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton7">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton7">Groupedbar Compact</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton8">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton8">Contextual Single</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton9">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton9">Contextual Groups</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|leftframe">UI variants</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">True</property>
|
||||
<property name="use-underline">True</property>
|
||||
</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">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="baseline-position">top</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="imImage">
|
||||
<property name="height-request">125</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="icon-name">missing-image</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="width-request">436</property>
|
||||
<property name="height-request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbInfo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="label">Information:</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<property name="max-width-chars">50</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.90000000000000002"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|rightframe">Preview</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="pack-type">end</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkNotebook" id="tabcontrol">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="hexpand">True</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="scrollable">True</property>
|
||||
<property name="enable-popup">True</property>
|
||||
<child>
|
||||
<!-- n-columns=1 n-rows=1 -->
|
||||
<object class="GtkGrid">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<placeholder/>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="tab">
|
||||
<object class="GtkLabel" id="uimode">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="toolbarmodedialog|uimode">User Interface</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="tab-fill">False</property>
|
||||
</packing>
|
||||
</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="-5">btnApplyAll</action-widget>
|
||||
<action-widget response="-5">btnApply</action-widget>
|
||||
<action-widget response="-7">close</action-widget>
|
||||
<action-widget response="101">reset</action-widget>
|
||||
<action-widget response="-5">ok</action-widget>
|
||||
<action-widget response="-6">cancel</action-widget>
|
||||
<action-widget response="-11">help</action-widget>
|
||||
<action-widget response="102">apply</action-widget>
|
||||
</action-widgets>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject" id="ToolbarModeDialog-atkobject">
|
||||
<property name="AtkObject::accessible-description" translatable="yes" context="toolbarmodedialog|extended_tip|ToolbarModeDialog">Sets the fill properties of the selected drawing object.</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
|
||||
@@ -0,0 +1,307 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- Generated with glade 3.40.0 -->
|
||||
<interface domain="cui">
|
||||
<requires lib="gtk+" version="3.20"/>
|
||||
<object class="GtkBox" id="UITabPage">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkFrame">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">3</property>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton1">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton1">Standard Toolbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</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="rbButton2">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton2">Tabbed</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkSeparator">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">2</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton3">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton3">Single Toolbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">3</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton4">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton4">Sidebar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">4</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton5">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton5">Tabbed Compact</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">5</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton6">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton6">Groupedbar</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">6</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton7">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton7">Groupedbar Compact</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">7</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton8">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton8">Contextual Single</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">8</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkRadioButton" id="rbButton9">
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|radiobutton9">Contextual Groups</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<property name="receives-default">False</property>
|
||||
<property name="halign">start</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="draw-indicator">True</property>
|
||||
<property name="group">rbButton1</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">9</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|leftframe">Options</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</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">12</property>
|
||||
<property name="margin-end">12</property>
|
||||
<property name="margin-top">12</property>
|
||||
<property name="label-xalign">0</property>
|
||||
<property name="shadow-type">none</property>
|
||||
<child>
|
||||
<object class="GtkBox">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="margin-start">12</property>
|
||||
<property name="margin-top">6</property>
|
||||
<property name="orientation">vertical</property>
|
||||
<property name="spacing">12</property>
|
||||
<property name="baseline-position">top</property>
|
||||
<child>
|
||||
<object class="GtkImage" id="imImage">
|
||||
<property name="height-request">125</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="halign">center</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="icon-name">missing-image</property>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
<property name="position">0</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child>
|
||||
<object class="GtkScrolledWindow">
|
||||
<property name="width-request">436</property>
|
||||
<property name="height-request">100</property>
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">True</property>
|
||||
<child>
|
||||
<object class="GtkViewport">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<child>
|
||||
<object class="GtkLabel" id="lbInfo">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="valign">start</property>
|
||||
<property name="vexpand">True</property>
|
||||
<property name="label">Information:</property>
|
||||
<property name="wrap">True</property>
|
||||
<property name="wrap-mode">word-char</property>
|
||||
<property name="max-width-chars">50</property>
|
||||
<property name="xalign">0</property>
|
||||
<attributes>
|
||||
<attribute name="scale" value="0.90000000000000002"/>
|
||||
</attributes>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject" id="lbInfo-atkobject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
<child internal-child="accessible">
|
||||
<object class="AtkObject">
|
||||
<property name="AtkObject::accessible-role">static</property>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
</child>
|
||||
<child type="label">
|
||||
<object class="GtkLabel">
|
||||
<property name="visible">True</property>
|
||||
<property name="can-focus">False</property>
|
||||
<property name="label" translatable="yes" context="ToolbarmodeDialog|rightframe">Preview</property>
|
||||
<attributes>
|
||||
<attribute name="weight" value="bold"/>
|
||||
</attributes>
|
||||
</object>
|
||||
</child>
|
||||
</object>
|
||||
<packing>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">True</property>
|
||||
<property name="position">1</property>
|
||||
</packing>
|
||||
</child>
|
||||
</object>
|
||||
</interface>
|
||||
@@ -200,7 +200,6 @@ cui/uiconfig/ui/textanimtabpage.ui://GtkLabel[@id='FT_DELAY'] orphan-label
|
||||
cui/uiconfig/ui/textflowpage.ui://GtkLabel[@id='labelOrphan'] orphan-label
|
||||
cui/uiconfig/ui/textflowpage.ui://GtkLabel[@id='labelWidow'] orphan-label
|
||||
cui/uiconfig/ui/thesaurus.ui://GtkLabel[@id='notfound'] orphan-label
|
||||
cui/uiconfig/ui/toolbarmodedialog.ui://GtkLabel[@id='lbInfo'] orphan-label
|
||||
cui/uiconfig/ui/tsaurldialog.ui://GtkLabel[@id='label2'] orphan-label
|
||||
cui/uiconfig/ui/tsaurldialog.ui://GtkLabel[@id='enteraurl'] orphan-label
|
||||
cui/uiconfig/ui/twolinespage.ui://GtkLabel[@id='label29'] orphan-label
|
||||
|
||||
Reference in New Issue
Block a user