summaryrefslogtreecommitdiff
path: root/include/vcl
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2015-05-09 16:46:56 +0100
committerMichael Meeks <michael.meeks@collabora.com>2015-05-09 20:37:54 +0100
commitcf6bfd666843c1cfc75e453e6e7f0405173a1831 (patch)
treee5e014f79b7f89861b7499e36e2eff677de14e1e /include/vcl
parentd1b7aa568ac949d55f6512add9c9ec369c3ef1db (diff)
tdf#91052 - use macros to standardize 'make' constructors for VclBuilder.
When complete - should ease the switch to VclPtr<>::Create. Change-Id: Idf876e2eeb830b36dd86e84317277cc88e1dc013
Diffstat (limited to 'include/vcl')
-rw-r--r--include/vcl/builderfactory.hxx35
1 files changed, 35 insertions, 0 deletions
diff --git a/include/vcl/builderfactory.hxx b/include/vcl/builderfactory.hxx
new file mode 100644
index 000000000000..b50a557f4065
--- /dev/null
+++ b/include/vcl/builderfactory.hxx
@@ -0,0 +1,35 @@
+/* -*- 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/.
+ */
+
+#ifndef INCLUDED_VCL_BUILDER_FACTORY_HXX
+#define INCLUDED_VCL_BUILDER_FACTORY_HXX
+
+#include <vcl/builder.hxx>
+
+#define VCL_BUILDER_DECL_FACTORY(typeName) \
+ extern "C" SAL_DLLPUBLIC_EXPORT vcl::Window* SAL_CALL \
+ make##typeName(vcl::Window *pParent, VclBuilder::stringmap &rMap)
+
+#define VCL_BUILDER_FACTORY(typeName) \
+ VCL_BUILDER_DECL_FACTORY(typeName) \
+ { \
+ (void)rMap; \
+ return new typeName(pParent); \
+ }
+
+#define VCL_BUILDER_FACTORY_ARGS(typeName,arg1) \
+ VCL_BUILDER_DECL_FACTORY(typeName) \
+ { \
+ (void)rMap; \
+ return new typeName(pParent,arg1); \
+ }
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */