summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorJulien Nabet <serval2412@yahoo.fr>2023-11-27 15:04:55 +0100
committerJulien Nabet <serval2412@yahoo.fr>2023-11-27 20:20:55 +0100
commit8c3e4dba01fa3bac6ddf16ebe75f3e169e458068 (patch)
treea6902c068ddef0f1e4060b12d529e24170d08fea /cui
parent468c5110226c7f5b3079852a27adde45dc32dc76 (diff)
Move a cui header inside the module
+ fix building issues about "cuidllapi.h" + remove #include <cui/dlgname.hxx> in some cxx since their corresponding hxx already contains the include Change-Id: I2396104fbcbca2e1aca29cdb2324ae0f4daf63cd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/159996 Tested-by: Jenkins Reviewed-by: Julien Nabet <serval2412@yahoo.fr>
Diffstat (limited to 'cui')
-rw-r--r--cui/inc/dlgname.hxx187
-rw-r--r--cui/source/customize/SvxMenuConfigPage.cxx2
-rw-r--r--cui/source/customize/SvxToolbarConfigPage.cxx2
-rw-r--r--cui/source/dialogs/dlgname.cxx2
-rw-r--r--cui/source/factory/dlgfact.cxx1
-rw-r--r--cui/source/factory/dlgfact.hxx2
-rw-r--r--cui/source/options/optaboutconfig.cxx1
-rw-r--r--cui/source/options/optaboutconfig.hxx2
8 files changed, 192 insertions, 7 deletions
diff --git a/cui/inc/dlgname.hxx b/cui/inc/dlgname.hxx
new file mode 100644
index 000000000000..3876585e1947
--- /dev/null
+++ b/cui/inc/dlgname.hxx
@@ -0,0 +1,187 @@
+/* -*- 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 <cui/cuidllapi.h>
+
+#include <vcl/formatter.hxx>
+#include <vcl/weld.hxx>
+#include <sal/log.hxx>
+
+/// Dialog for editing a name
+class CUI_DLLPUBLIC SvxNameDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::Entry> m_xEdtName;
+ std::unique_ptr<weld::Label> m_xFtDescription;
+ std::unique_ptr<weld::Button> m_xBtnOK;
+
+ Link<SvxNameDialog&, bool> m_aCheckNameHdl;
+ Link<SvxNameDialog&, OUString> m_aCheckNameTooltipHdl;
+
+ DECL_LINK(ModifyHdl, weld::Entry&, void);
+
+public:
+ SvxNameDialog(weld::Window* pWindow, const OUString& rName, const OUString& rDesc,
+ const OUString& rTitle = "");
+
+ OUString GetName() const { return m_xEdtName->get_text(); }
+
+ /** add a callback Link that is called whenever the content of the edit
+ field is changed. The Link result determines whether the OK
+ Button is enabled (> 0) or disabled (== 0).
+
+ @param rLink a Callback declared with DECL_DLLPRIVATE_LINK and implemented with
+ IMPL_LINK, that is executed on modification.
+ */
+ void SetCheckNameHdl(const Link<SvxNameDialog&, bool>& rLink)
+ {
+ m_aCheckNameHdl = rLink;
+ ModifyHdl(*m_xEdtName);
+ }
+
+ void SetCheckNameTooltipHdl(const Link<SvxNameDialog&, OUString>& rLink)
+ {
+ m_aCheckNameTooltipHdl = rLink;
+ m_xBtnOK->set_tooltip_text(rLink.Call(*this));
+ }
+
+ void SetEditHelpId(const OUString& aHelpId) { m_xEdtName->set_help_id(aHelpId); }
+};
+
+/// Dialog for editing a number
+class CUI_DLLPUBLIC SvxNumberDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::SpinButton> m_xEdtNumber;
+ std::unique_ptr<weld::Label> m_xFtDescription;
+
+public:
+ SvxNumberDialog(weld::Window* pWindow, const OUString& rDesc, sal_Int64 nValue, sal_Int64 nMin,
+ sal_Int64 nMax);
+
+ sal_Int64 GetNumber() const { return m_xEdtNumber->get_value(); }
+};
+
+class CUI_DLLPUBLIC SvxDecimalNumberDialog final : public weld::GenericDialogController
+{
+private:
+ std::unique_ptr<weld::FormattedSpinButton> m_xEdtNumber;
+ std::unique_ptr<weld::Label> m_xFtDescription;
+
+public:
+ SvxDecimalNumberDialog(weld::Window* pWindow, const OUString& rDesc, double fValue);
+
+ double GetNumber() const { return m_xEdtNumber->GetFormatter().GetValue(); }
+};
+
+/** #i68101#
+ Dialog for editing Object name
+ plus uniqueness-callback-linkHandler */
+class SvxObjectNameDialog final : public weld::GenericDialogController
+{
+private:
+ // name
+ std::unique_ptr<weld::Entry> m_xEdtName;
+
+ // buttons
+ std::unique_ptr<weld::Button> m_xBtnOK;
+
+ // callback link for name uniqueness
+ Link<SvxObjectNameDialog&, bool> aCheckNameHdl;
+
+ DECL_LINK(ModifyHdl, weld::Entry&, void);
+
+public:
+ // constructor
+ SvxObjectNameDialog(weld::Window* pWindow, const OUString& rName);
+
+ // data access
+ OUString GetName() const { return m_xEdtName->get_text(); }
+
+ // set handler
+ void SetCheckNameHdl(const Link<SvxObjectNameDialog&, bool>& rLink) { aCheckNameHdl = rLink; }
+};
+
+/** #i68101#
+ Dialog for editing Object Title and Description */
+class SvxObjectTitleDescDialog final : public weld::GenericDialogController
+{
+private:
+ // title
+ std::unique_ptr<weld::Label> m_xTitleFT;
+ std::unique_ptr<weld::Entry> m_xEdtTitle;
+
+ // description
+ std::unique_ptr<weld::Label> m_xDescriptionFT;
+ std::unique_ptr<weld::TextView> m_xEdtDescription;
+
+ std::unique_ptr<weld::CheckButton> m_xDecorativeCB;
+
+ DECL_LINK(DecorativeHdl, weld::Toggleable&, void);
+
+public:
+ // constructor
+ SvxObjectTitleDescDialog(weld::Window* pWindow, const OUString& rTitle, const OUString& rDesc,
+ bool isDecorative);
+ // data access
+ OUString GetTitle() const { return m_xEdtTitle->get_text(); }
+ OUString GetDescription() const { return m_xEdtDescription->get_text(); }
+ bool IsDecorative() const { return m_xDecorativeCB->get_active(); }
+};
+
+enum class ListMode
+{
+ String,
+ Int64,
+ Int32,
+ Int16,
+ Double
+};
+
+/** Generic dialog to edit lists */
+class SvxListDialog : public weld::GenericDialogController
+{
+private:
+ ListMode m_aMode;
+ Link<SvxListDialog&, OUString> m_aEditHdl;
+ std::unique_ptr<weld::TreeView> m_xList;
+ std::unique_ptr<weld::Button> m_xAddBtn;
+ std::unique_ptr<weld::Button> m_xRemoveBtn;
+ std::unique_ptr<weld::Button> m_xEditBtn;
+
+ DECL_LINK(SelectHdl_Impl, weld::TreeView&, void);
+ DECL_LINK(DblClickHdl_Impl, weld::TreeView&, bool);
+ DECL_LINK(AddHdl_Impl, weld::Button&, void);
+ DECL_LINK(RemoveHdl_Impl, weld::Button&, void);
+ DECL_LINK(EditHdl_Impl, weld::Button&, void);
+
+ void SelectionChanged();
+
+public:
+ explicit SvxListDialog(weld::Window* pParent);
+ virtual ~SvxListDialog() override;
+
+ std::vector<OUString> GetEntries();
+ void SetEntries(std::vector<OUString> const& rParams);
+ void EditEntry();
+ void SetMode(ListMode aMode);
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/cui/source/customize/SvxMenuConfigPage.cxx b/cui/source/customize/SvxMenuConfigPage.cxx
index 3ec1f2a531e1..4ee5ce9be0ca 100644
--- a/cui/source/customize/SvxMenuConfigPage.cxx
+++ b/cui/source/customize/SvxMenuConfigPage.cxx
@@ -20,7 +20,7 @@
#include <sal/config.h>
#include <sal/log.hxx>
-#include <cui/dlgname.hxx>
+#include <dlgname.hxx>
#include <vcl/weld.hxx>
#include <vcl/svapp.hxx>
#include <vcl/commandevent.hxx>
diff --git a/cui/source/customize/SvxToolbarConfigPage.cxx b/cui/source/customize/SvxToolbarConfigPage.cxx
index be34445cf19f..035059ea8e83 100644
--- a/cui/source/customize/SvxToolbarConfigPage.cxx
+++ b/cui/source/customize/SvxToolbarConfigPage.cxx
@@ -38,7 +38,7 @@
#include <SvxConfigPageHelper.hxx>
#include <dialmgr.hxx>
-#include <cui/dlgname.hxx>
+#include <dlgname.hxx>
#include <comphelper/processfactory.hxx>
SvxToolbarConfigPage::SvxToolbarConfigPage(weld::Container* pPage,
diff --git a/cui/source/dialogs/dlgname.cxx b/cui/source/dialogs/dlgname.cxx
index 8164bf1c2b40..09b6158fde00 100644
--- a/cui/source/dialogs/dlgname.cxx
+++ b/cui/source/dialogs/dlgname.cxx
@@ -17,7 +17,7 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
-#include <cui/dlgname.hxx>
+#include <dlgname.hxx>
#include <comphelper/string.hxx>
diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx
index 42a2b19fbaee..fbdea49672ef 100644
--- a/cui/source/factory/dlgfact.cxx
+++ b/cui/source/factory/dlgfact.cxx
@@ -33,7 +33,6 @@
#include <splitcelldlg.hxx>
#include <cuiimapwnd.hxx>
#include <cui/cuicharmap.hxx>
-#include <cui/dlgname.hxx>
#include <srchxtra.hxx>
#include <textanim.hxx>
#include <autocdlg.hxx>
diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx
index 137a5a033294..b6120dcfb2ef 100644
--- a/cui/source/factory/dlgfact.hxx
+++ b/cui/source/factory/dlgfact.hxx
@@ -27,7 +27,7 @@
#include <cfgutil.hxx>
#include <cui/cuicharmap.hxx>
-#include <cui/dlgname.hxx>
+#include <dlgname.hxx>
#include <cuifmsearch.hxx>
#include <cuigaldlg.hxx>
#include <cuigrfflt.hxx>
diff --git a/cui/source/options/optaboutconfig.cxx b/cui/source/options/optaboutconfig.cxx
index f191a59bd2ee..885ea189a8c5 100644
--- a/cui/source/options/optaboutconfig.cxx
+++ b/cui/source/options/optaboutconfig.cxx
@@ -33,7 +33,6 @@
#include <comphelper/processfactory.hxx>
#include <comphelper/sequence.hxx>
#include <cppu/unotype.hxx>
-#include <cui/dlgname.hxx>
#include <rtl/ustrbuf.hxx>
#include <sal/log.hxx>
#include <unotools/textsearch.hxx>
diff --git a/cui/source/options/optaboutconfig.hxx b/cui/source/options/optaboutconfig.hxx
index 17aea23a997e..7bfce2ab85aa 100644
--- a/cui/source/options/optaboutconfig.hxx
+++ b/cui/source/options/optaboutconfig.hxx
@@ -11,7 +11,7 @@
#include <com/sun/star/container/XNameAccess.hpp>
-#include <cui/dlgname.hxx>
+#include <dlgname.hxx>
#include <i18nutil/searchopt.hxx>
#include <vcl/weld.hxx>