xref: /AOO41X/main/sfx2/source/sidebar/SidebarPanelBase.cxx (revision b9e67834aa136f0c8550ba8a880ab75deaeb26df)
1*b9e67834SAndre Fischer /**************************************************************
2*b9e67834SAndre Fischer  *
3*b9e67834SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
4*b9e67834SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
5*b9e67834SAndre Fischer  * distributed with this work for additional information
6*b9e67834SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
7*b9e67834SAndre Fischer  * to you under the Apache License, Version 2.0 (the
8*b9e67834SAndre Fischer  * "License"); you may not use this file except in compliance
9*b9e67834SAndre Fischer  * with the License.  You may obtain a copy of the License at
10*b9e67834SAndre Fischer  *
11*b9e67834SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
12*b9e67834SAndre Fischer  *
13*b9e67834SAndre Fischer  * Unless required by applicable law or agreed to in writing,
14*b9e67834SAndre Fischer  * software distributed under the License is distributed on an
15*b9e67834SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b9e67834SAndre Fischer  * KIND, either express or implied.  See the License for the
17*b9e67834SAndre Fischer  * specific language governing permissions and limitations
18*b9e67834SAndre Fischer  * under the License.
19*b9e67834SAndre Fischer  *
20*b9e67834SAndre Fischer  *************************************************************/
21*b9e67834SAndre Fischer 
22*b9e67834SAndre Fischer #include "precompiled_sfx2.hxx"
23*b9e67834SAndre Fischer 
24*b9e67834SAndre Fischer #include "sfx2/sidebar/SidebarPanelBase.hxx"
25*b9e67834SAndre Fischer #include "sfx2/sidebar/Theme.hxx"
26*b9e67834SAndre Fischer #include "sfx2/imagemgr.hxx"
27*b9e67834SAndre Fischer #include <com/sun/star/ui/ContextChangeEventMultiplexer.hpp>
28*b9e67834SAndre Fischer #include <com/sun/star/ui/UIElementType.hpp>
29*b9e67834SAndre Fischer 
30*b9e67834SAndre Fischer using namespace css;
31*b9e67834SAndre Fischer using namespace cssu;
32*b9e67834SAndre Fischer 
33*b9e67834SAndre Fischer 
34*b9e67834SAndre Fischer namespace sfx2 { namespace sidebar {
35*b9e67834SAndre Fischer 
36*b9e67834SAndre Fischer SidebarPanelBase::SidebarPanelBase (
37*b9e67834SAndre Fischer     const ::rtl::OUString& rsResourceURL,
38*b9e67834SAndre Fischer     Window* pParentWindow,
39*b9e67834SAndre Fischer     const cssu::Reference<css::frame::XFrame>& rxFrame,
40*b9e67834SAndre Fischer     const ResId& rResId)
41*b9e67834SAndre Fischer     : SidebarPanelBaseInterfaceBase(m_aMutex),
42*b9e67834SAndre Fischer       msResourceURL(rsResourceURL),
43*b9e67834SAndre Fischer       Control(pParentWindow, rResId),
44*b9e67834SAndre Fischer       mxFrame(rxFrame),
45*b9e67834SAndre Fischer       meFontUnderline(UNDERLINE_SINGLE)
46*b9e67834SAndre Fischer {
47*b9e67834SAndre Fischer     // Let the Pane draw the background.
48*b9e67834SAndre Fischer     SetBackground(Wallpaper());
49*b9e67834SAndre Fischer 
50*b9e67834SAndre Fischer     cssu::Reference<css::ui::XContextChangeEventMultiplexer> xMultiplexer (
51*b9e67834SAndre Fischer         css::ui::ContextChangeEventMultiplexer::get(
52*b9e67834SAndre Fischer             ::comphelper::getProcessComponentContext()));
53*b9e67834SAndre Fischer     if (xMultiplexer.is())
54*b9e67834SAndre Fischer         xMultiplexer->addContextChangeEventListener(this, mxFrame->getController());
55*b9e67834SAndre Fischer }
56*b9e67834SAndre Fischer 
57*b9e67834SAndre Fischer 
58*b9e67834SAndre Fischer 
59*b9e67834SAndre Fischer 
60*b9e67834SAndre Fischer SidebarPanelBase::~SidebarPanelBase (void)
61*b9e67834SAndre Fischer {
62*b9e67834SAndre Fischer }
63*b9e67834SAndre Fischer 
64*b9e67834SAndre Fischer 
65*b9e67834SAndre Fischer 
66*b9e67834SAndre Fischer 
67*b9e67834SAndre Fischer void SAL_CALL SidebarPanelBase::disposing (void)
68*b9e67834SAndre Fischer     throw (cssu::RuntimeException)
69*b9e67834SAndre Fischer {
70*b9e67834SAndre Fischer     if (mxFrame.is())
71*b9e67834SAndre Fischer     {
72*b9e67834SAndre Fischer         cssu::Reference<css::ui::XContextChangeEventMultiplexer> xMultiplexer (
73*b9e67834SAndre Fischer             css::ui::ContextChangeEventMultiplexer::get(
74*b9e67834SAndre Fischer                 ::comphelper::getProcessComponentContext()));
75*b9e67834SAndre Fischer         if (xMultiplexer.is())
76*b9e67834SAndre Fischer             xMultiplexer->removeAllContextChangeEventListeners(this);
77*b9e67834SAndre Fischer         mxFrame = NULL;
78*b9e67834SAndre Fischer     }
79*b9e67834SAndre Fischer }
80*b9e67834SAndre Fischer 
81*b9e67834SAndre Fischer 
82*b9e67834SAndre Fischer 
83*b9e67834SAndre Fischer 
84*b9e67834SAndre Fischer // XContextChangeEventListener
85*b9e67834SAndre Fischer void SAL_CALL SidebarPanelBase::notifyContextChangeEvent (
86*b9e67834SAndre Fischer     const ui::ContextChangeEventObject& rEvent)
87*b9e67834SAndre Fischer {
88*b9e67834SAndre Fischer     HandleContextChange (
89*b9e67834SAndre Fischer         EnumContext(
90*b9e67834SAndre Fischer             EnumContext::GetApplicationEnum(rEvent.ApplicationName),
91*b9e67834SAndre Fischer             EnumContext::GetContextEnum(rEvent.ContextName)));
92*b9e67834SAndre Fischer }
93*b9e67834SAndre Fischer 
94*b9e67834SAndre Fischer 
95*b9e67834SAndre Fischer 
96*b9e67834SAndre Fischer 
97*b9e67834SAndre Fischer void SAL_CALL SidebarPanelBase::disposing (
98*b9e67834SAndre Fischer     const css::lang::EventObject& rEvent)
99*b9e67834SAndre Fischer     throw (cssu::RuntimeException)
100*b9e67834SAndre Fischer {
101*b9e67834SAndre Fischer }
102*b9e67834SAndre Fischer 
103*b9e67834SAndre Fischer 
104*b9e67834SAndre Fischer 
105*b9e67834SAndre Fischer 
106*b9e67834SAndre Fischer cssu::Reference<css::frame::XFrame> SAL_CALL SidebarPanelBase::getFrame (void)
107*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
108*b9e67834SAndre Fischer {
109*b9e67834SAndre Fischer     return mxFrame;
110*b9e67834SAndre Fischer }
111*b9e67834SAndre Fischer 
112*b9e67834SAndre Fischer 
113*b9e67834SAndre Fischer 
114*b9e67834SAndre Fischer 
115*b9e67834SAndre Fischer ::rtl::OUString SAL_CALL SidebarPanelBase::getResourceURL (void)
116*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
117*b9e67834SAndre Fischer {
118*b9e67834SAndre Fischer     return msResourceURL;
119*b9e67834SAndre Fischer }
120*b9e67834SAndre Fischer 
121*b9e67834SAndre Fischer 
122*b9e67834SAndre Fischer 
123*b9e67834SAndre Fischer 
124*b9e67834SAndre Fischer sal_Int16 SAL_CALL SidebarPanelBase::getType (void)
125*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
126*b9e67834SAndre Fischer {
127*b9e67834SAndre Fischer     return ui::UIElementType::TOOLPANEL;
128*b9e67834SAndre Fischer }
129*b9e67834SAndre Fischer 
130*b9e67834SAndre Fischer 
131*b9e67834SAndre Fischer 
132*b9e67834SAndre Fischer 
133*b9e67834SAndre Fischer Reference<XInterface> SAL_CALL SidebarPanelBase::getRealInterface (void)
134*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
135*b9e67834SAndre Fischer {
136*b9e67834SAndre Fischer     return Reference<XInterface>(static_cast<XWeak*>(this));
137*b9e67834SAndre Fischer }
138*b9e67834SAndre Fischer 
139*b9e67834SAndre Fischer 
140*b9e67834SAndre Fischer 
141*b9e67834SAndre Fischer 
142*b9e67834SAndre Fischer Reference<accessibility::XAccessible> SAL_CALL SidebarPanelBase::createAccessible (
143*b9e67834SAndre Fischer     const Reference<accessibility::XAccessible>& rxParentAccessible)
144*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
145*b9e67834SAndre Fischer {
146*b9e67834SAndre Fischer     // Not yet implemented.
147*b9e67834SAndre Fischer     return NULL;
148*b9e67834SAndre Fischer }
149*b9e67834SAndre Fischer 
150*b9e67834SAndre Fischer 
151*b9e67834SAndre Fischer 
152*b9e67834SAndre Fischer 
153*b9e67834SAndre Fischer Reference<awt::XWindow> SAL_CALL SidebarPanelBase::getWindow (void)
154*b9e67834SAndre Fischer     throw(cssu::RuntimeException)
155*b9e67834SAndre Fischer {
156*b9e67834SAndre Fischer     return Reference<awt::XWindow>(
157*b9e67834SAndre Fischer         Control::GetComponentInterface(),
158*b9e67834SAndre Fischer         UNO_QUERY);
159*b9e67834SAndre Fischer }
160*b9e67834SAndre Fischer 
161*b9e67834SAndre Fischer 
162*b9e67834SAndre Fischer 
163*b9e67834SAndre Fischer 
164*b9e67834SAndre Fischer FontUnderline SidebarPanelBase::GetDefaultUnderline (void) const
165*b9e67834SAndre Fischer {
166*b9e67834SAndre Fischer     return meFontUnderline;
167*b9e67834SAndre Fischer }
168*b9e67834SAndre Fischer 
169*b9e67834SAndre Fischer 
170*b9e67834SAndre Fischer 
171*b9e67834SAndre Fischer 
172*b9e67834SAndre Fischer Image SidebarPanelBase::GetIcon (const ::rtl::OUString& rsURL)
173*b9e67834SAndre Fischer {
174*b9e67834SAndre Fischer     return GetImage(mxFrame, rsURL, sal_False, Theme::IsHighContrastMode());
175*b9e67834SAndre Fischer }
176*b9e67834SAndre Fischer 
177*b9e67834SAndre Fischer 
178*b9e67834SAndre Fischer 
179*b9e67834SAndre Fischer 
180*b9e67834SAndre Fischer void SidebarPanelBase::SetDefaultUnderline (const FontUnderline eFontUnderline)
181*b9e67834SAndre Fischer {
182*b9e67834SAndre Fischer     meFontUnderline = eFontUnderline;
183*b9e67834SAndre Fischer }
184*b9e67834SAndre Fischer 
185*b9e67834SAndre Fischer 
186*b9e67834SAndre Fischer 
187*b9e67834SAndre Fischer } } // end of namespace sfx2::sidebar
188