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