| /************************************************************** |
| * |
| * 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 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| * |
| *************************************************************/ |
| |
| |
| |
| #include "precompiled_sd.hxx" |
| |
| #include "ImpressViewShellBase.hxx" |
| |
| #include "DrawDocShell.hxx" |
| #include "sdresid.hxx" |
| #include "strings.hrc" |
| #include "app.hrc" |
| #include "framework/FrameworkHelper.hxx" |
| #include "framework/ImpressModule.hxx" |
| #include "MasterPageObserver.hxx" |
| #include <sfx2/request.hxx> |
| |
| namespace sd { |
| |
| TYPEINIT1(ImpressViewShellBase, ViewShellBase); |
| |
| // We have to expand the SFX_IMPL_VIEWFACTORY macro to call LateInit() after a |
| // new ImpressViewShellBase object has been constructed. |
| |
| SfxViewFactory* ImpressViewShellBase::pFactory; |
| SfxViewShell* __EXPORT ImpressViewShellBase::CreateInstance ( |
| SfxViewFrame *pFrame, SfxViewShell *pOldView) |
| { |
| ImpressViewShellBase* pBase = new ImpressViewShellBase(pFrame, pOldView); |
| pBase->LateInit(::rtl::OUString()); |
| return pBase; |
| } |
| void ImpressViewShellBase::RegisterFactory( sal_uInt16 nPrio ) |
| { |
| pFactory = new SfxViewFactory( |
| &CreateInstance,&InitFactory,nPrio,"Default"); |
| InitFactory(); |
| } |
| void ImpressViewShellBase::InitFactory() |
| { |
| SFX_VIEW_REGISTRATION(DrawDocShell); |
| } |
| |
| |
| |
| |
| |
| |
| |
| |
| ImpressViewShellBase::ImpressViewShellBase ( |
| SfxViewFrame* _pFrame, |
| SfxViewShell* pOldShell) |
| : ViewShellBase (_pFrame, pOldShell) |
| { |
| MasterPageObserver::Instance().RegisterDocument (*GetDocShell()->GetDoc()); |
| } |
| |
| |
| |
| |
| ImpressViewShellBase::~ImpressViewShellBase (void) |
| { |
| MasterPageObserver::Instance().UnregisterDocument (*GetDocShell()->GetDoc()); |
| } |
| |
| |
| |
| |
| void ImpressViewShellBase::Execute (SfxRequest& rRequest) |
| { |
| sal_uInt16 nSlotId = rRequest.GetSlot(); |
| |
| switch (nSlotId) |
| { |
| case SID_LEFT_PANE_DRAW: |
| // Prevent a Draw-only slots from being executed. |
| rRequest.Cancel(); |
| break; |
| |
| default: |
| // The remaining requests are forwarded to our base class. |
| ViewShellBase::Execute(rRequest); |
| break; |
| } |
| } |
| |
| |
| |
| |
| void ImpressViewShellBase::InitializeFramework (void) |
| { |
| ::com::sun::star::uno::Reference<com::sun::star::frame::XController> |
| xController (GetController()); |
| sd::framework::ImpressModule::Initialize(xController); |
| } |
| |
| } // end of namespace sd |
| |