LibreOffice Module scripting (master) 1
dlgprov.hxx
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 */
19
20#pragma once
21
22#include <com/sun/star/awt/XControl.hpp>
23#include <com/sun/star/awt/XDialog.hpp>
24#include <com/sun/star/awt/XDialogProvider2.hpp>
25#include <com/sun/star/awt/XContainerWindowProvider.hpp>
26#include <com/sun/star/awt/XUnoControlDialog.hpp>
27#include <com/sun/star/beans/XIntrospectionAccess.hpp>
28#include <com/sun/star/container/XNameContainer.hpp>
29#include <com/sun/star/frame/XModel.hpp>
30#include <com/sun/star/lang/XServiceInfo.hpp>
31#include <com/sun/star/lang/XInitialization.hpp>
32#include <com/sun/star/io/XInputStream.hpp>
33#include <com/sun/star/resource/XStringResourceManager.hpp>
34#include <com/sun/star/script/XScriptListener.hpp>
35#include <com/sun/star/uno/XComponentContext.hpp>
36
38#include <osl/mutex.hxx>
39#include <memory>
40
41
42namespace dlgprov
43{
44
45
46 // mutex
47
48
49 ::osl::Mutex& getMutex();
50
51
52
53 css::uno::Reference< css::container::XNameContainer > lcl_createControlModel(const css::uno::Reference< css::uno::XComponentContext >& i_xContext);
54 css::uno::Reference< css::resource::XStringResourceManager > lcl_getStringResourceManager(const css::uno::Reference< css::uno::XComponentContext >& i_xContext, std::u16string_view i_sURL);
56 css::uno::Reference< css::container::XNameContainer > lcl_createDialogModel(
57 const css::uno::Reference< css::uno::XComponentContext >& i_xContext,
58 const css::uno::Reference< css::io::XInputStream >& xInput,
59 const css::uno::Reference< css::frame::XModel >& xModel,
60 const css::uno::Reference< css::resource::XStringResourceManager >& xStringResourceManager,
61 const css::uno::Any &aDialogSourceURL);
62
63 typedef ::cppu::WeakImplHelper<
64 css::lang::XServiceInfo,
65 css::lang::XInitialization,
66 css::awt::XDialogProvider2,
67 css::awt::XContainerWindowProvider > DialogProviderImpl_BASE;
68
70 {
71 private:
73 {
74 css::uno::Reference< css::io::XInputStream > mxInput;
75 css::uno::Reference< css::container::XNameContainer > mxDlgLib;
76 css::uno::Reference< css::script::XScriptListener > mxBasicRTLListener;
77 };
78 std::unique_ptr< BasicRTLParams > m_BasicInfo;
79 css::uno::Reference< css::uno::XComponentContext > m_xContext;
80 css::uno::Reference< css::frame::XModel > m_xModel;
81
83 css::uno::Reference< css::awt::XControlModel > createDialogModel( const OUString& sURL );
84
85 css::uno::Reference< css::awt::XUnoControlDialog > createDialogControl(
86 const css::uno::Reference< css::awt::XControlModel >& rxDialogModel,
87 const css::uno::Reference< css::awt::XWindowPeer >& xParent );
88
89 void attachControlEvents( const css::uno::Reference< css::awt::XControl >& rxControlContainer,
90 const css::uno::Reference< css::uno::XInterface >& rxHandler,
91 const css::uno::Reference< css::beans::XIntrospectionAccess >& rxIntrospectionAccess,
92 bool bDialogProviderMode );
93 css::uno::Reference< css::beans::XIntrospectionAccess > inspectHandler(
94 const css::uno::Reference< css::uno::XInterface >& rxHandler );
95 // helper methods
97 css::uno::Reference< css::container::XNameContainer > createDialogModel(
98 const css::uno::Reference< css::io::XInputStream >& xInput,
99 const css::uno::Reference< css::resource::XStringResourceManager >& xStringResourceManager,
100 const css::uno::Any &aDialogSourceURL);
102 css::uno::Reference< css::awt::XControlModel > createDialogModelForBasic();
103
104 // XDialogProvider / XDialogProvider2 impl method
107 css::uno::Reference < css::awt::XControl > createDialogImpl(
108 const OUString& URL,
109 const css::uno::Reference< css::uno::XInterface >& xHandler,
110 const css::uno::Reference< css::awt::XWindowPeer >& xParent,
111 bool bDialogProviderMode );
112
113 public:
114 explicit DialogProviderImpl(
115 const css::uno::Reference< css::uno::XComponentContext >& rxContext );
116 virtual ~DialogProviderImpl() override;
117
118 // XServiceInfo
119 virtual OUString SAL_CALL getImplementationName( ) override;
120 virtual sal_Bool SAL_CALL supportsService( const OUString& ServiceName ) override;
121 virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames( ) override;
122
123 // XInitialization
124 virtual void SAL_CALL initialize( const css::uno::Sequence< css::uno::Any >& aArguments ) override;
125
126 // XDialogProvider
127 virtual css::uno::Reference < css::awt::XDialog > SAL_CALL createDialog(
128 const OUString& URL ) override;
129
130 // XDialogProvider2
131 virtual css::uno::Reference < css::awt::XDialog > SAL_CALL createDialogWithHandler(
132 const OUString& URL,
133 const css::uno::Reference< css::uno::XInterface >& xHandler ) override;
134
135 virtual css::uno::Reference < css::awt::XDialog > SAL_CALL createDialogWithArguments(
136 const OUString& URL,
137 const css::uno::Sequence< css::beans::NamedValue >& Arguments ) override;
138
139 virtual css::uno::Reference< css::awt::XWindow > SAL_CALL createContainerWindow(
140 const OUString& URL, const OUString& WindowType,
141 const css::uno::Reference< css::awt::XWindowPeer >& xParent,
142 const css::uno::Reference< css::uno::XInterface >& xHandler ) override;
143 };
144
145
146} // namespace dlgprov
147
148/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
virtual css::uno::Reference< css::awt::XDialog > SAL_CALL createDialogWithHandler(const OUString &URL, const css::uno::Reference< css::uno::XInterface > &xHandler) override
Definition: dlgprov.cxx:634
virtual css::uno::Reference< css::awt::XDialog > SAL_CALL createDialogWithArguments(const OUString &URL, const css::uno::Sequence< css::beans::NamedValue > &Arguments) override
Definition: dlgprov.cxx:649
virtual css::uno::Reference< css::awt::XWindow > SAL_CALL createContainerWindow(const OUString &URL, const OUString &WindowType, const css::uno::Reference< css::awt::XWindowPeer > &xParent, const css::uno::Reference< css::uno::XInterface > &xHandler) override
Definition: dlgprov.cxx:673
css::uno::Reference< css::awt::XControlModel > createDialogModelForBasic()
Definition: dlgprov.cxx:186
css::uno::Reference< css::awt::XControlModel > createDialogModel(const OUString &sURL)
Definition: dlgprov.cxx:198
DialogProviderImpl(const css::uno::Reference< css::uno::XComponentContext > &rxContext)
Definition: dlgprov.cxx:148
css::uno::Reference< css::awt::XControl > createDialogImpl(const OUString &URL, const css::uno::Reference< css::uno::XInterface > &xHandler, const css::uno::Reference< css::awt::XWindowPeer > &xParent, bool bDialogProviderMode)
Definition: dlgprov.cxx:559
virtual void SAL_CALL initialize(const css::uno::Sequence< css::uno::Any > &aArguments) override
Definition: dlgprov.cxx:519
virtual OUString SAL_CALL getImplementationName() override
Definition: dlgprov.cxx:498
css::uno::Reference< css::awt::XUnoControlDialog > createDialogControl(const css::uno::Reference< css::awt::XControlModel > &rxDialogModel, const css::uno::Reference< css::awt::XWindowPeer > &xParent)
Definition: dlgprov.cxx:385
void attachControlEvents(const css::uno::Reference< css::awt::XControl > &rxControlContainer, const css::uno::Reference< css::uno::XInterface > &rxHandler, const css::uno::Reference< css::beans::XIntrospectionAccess > &rxIntrospectionAccess, bool bDialogProviderMode)
Definition: dlgprov.cxx:428
virtual css::uno::Reference< css::awt::XDialog > SAL_CALL createDialog(const OUString &URL) override
Definition: dlgprov.cxx:625
css::uno::Reference< css::uno::XComponentContext > m_xContext
Definition: dlgprov.hxx:79
css::uno::Reference< css::frame::XModel > m_xModel
Definition: dlgprov.hxx:80
virtual css::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() override
Definition: dlgprov.cxx:508
css::uno::Reference< css::beans::XIntrospectionAccess > inspectHandler(const css::uno::Reference< css::uno::XInterface > &rxHandler)
Definition: dlgprov.cxx:466
virtual sal_Bool SAL_CALL supportsService(const OUString &ServiceName) override
Definition: dlgprov.cxx:503
virtual ~DialogProviderImpl() override
Definition: dlgprov.cxx:154
css::uno::Reference< css::container::XNameContainer > createDialogModel(const css::uno::Reference< css::io::XInputStream > &xInput, const css::uno::Reference< css::resource::XStringResourceManager > &xStringResourceManager, const css::uno::Any &aDialogSourceURL)
std::unique_ptr< BasicRTLParams > m_BasicInfo
Definition: dlgprov.hxx:78
anonymous implementation namespace
Reference< container::XNameContainer > lcl_createControlModel(const Reference< XComponentContext > &i_xContext)
Definition: dlgprov.cxx:96
Reference< resource::XStringResourceManager > lcl_getStringResourceManager(const Reference< XComponentContext > &i_xContext, std::u16string_view i_sURL)
Definition: dlgprov.cxx:66
::osl::Mutex & getMutex()
Definition: dlgprov.cxx:137
::cppu::WeakImplHelper< css::lang::XServiceInfo, css::lang::XInitialization, css::awt::XDialogProvider2, css::awt::XContainerWindowProvider > DialogProviderImpl_BASE
Definition: dlgprov.hxx:67
Reference< container::XNameContainer > lcl_createDialogModel(const Reference< XComponentContext > &i_xContext, const Reference< io::XInputStream > &xInput, const Reference< frame::XModel > &xModel, const Reference< resource::XStringResourceManager > &xStringResourceManager, const Any &aDialogSourceURL)
Definition: dlgprov.cxx:102
css::uno::Reference< css::container::XNameContainer > mxDlgLib
Definition: dlgprov.hxx:75
css::uno::Reference< css::io::XInputStream > mxInput
Definition: dlgprov.hxx:74
css::uno::Reference< css::script::XScriptListener > mxBasicRTLListener
Definition: dlgprov.hxx:76
unsigned char sal_Bool
WindowType