122de8995SAndre Fischer /************************************************************** 222de8995SAndre Fischer * 322de8995SAndre Fischer * Licensed to the Apache Software Foundation (ASF) under one 422de8995SAndre Fischer * or more contributor license agreements. See the NOTICE file 522de8995SAndre Fischer * distributed with this work for additional information 622de8995SAndre Fischer * regarding copyright ownership. The ASF licenses this file 722de8995SAndre Fischer * to you under the Apache License, Version 2.0 (the 822de8995SAndre Fischer * "License"); you may not use this file except in compliance 922de8995SAndre Fischer * with the License. You may obtain a copy of the License at 1022de8995SAndre Fischer * 1122de8995SAndre Fischer * http://www.apache.org/licenses/LICENSE-2.0 1222de8995SAndre Fischer * 1322de8995SAndre Fischer * Unless required by applicable law or agreed to in writing, 1422de8995SAndre Fischer * software distributed under the License is distributed on an 1522de8995SAndre Fischer * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1622de8995SAndre Fischer * KIND, either express or implied. See the License for the 1722de8995SAndre Fischer * specific language governing permissions and limitations 1822de8995SAndre Fischer * under the License. 1922de8995SAndre Fischer * 2022de8995SAndre Fischer *************************************************************/ 2122de8995SAndre Fischer 2222de8995SAndre Fischer #ifndef SFX_SIDEBAR_PANEL_HXX 2322de8995SAndre Fischer #define SFX_SIDEBAR_PANEL_HXX 2422de8995SAndre Fischer 25ff12d537SAndre Fischer #include <vcl/window.hxx> 26ff12d537SAndre Fischer 2722de8995SAndre Fischer #include <com/sun/star/ui/XUIElement.hpp> 28*7a32b0c8SAndre Fischer #include <com/sun/star/ui/XSidebarPanel.hpp> 2922de8995SAndre Fischer 30ff12d537SAndre Fischer #include <boost/function.hpp> 31*7a32b0c8SAndre Fischer #include <boost/scoped_ptr.hpp> 32ff12d537SAndre Fischer 3322de8995SAndre Fischer namespace css = ::com::sun::star; 3422de8995SAndre Fischer namespace cssu = ::com::sun::star::uno; 3522de8995SAndre Fischer 36ff12d537SAndre Fischer namespace sfx2 { namespace sidebar { 3722de8995SAndre Fischer 38ff12d537SAndre Fischer class PanelDescriptor; 3922de8995SAndre Fischer class TitleBar; 4022de8995SAndre Fischer 4122de8995SAndre Fischer 4222de8995SAndre Fischer class Panel 4322de8995SAndre Fischer : public Window 4422de8995SAndre Fischer { 4522de8995SAndre Fischer public: 4622de8995SAndre Fischer Panel ( 47ff12d537SAndre Fischer const PanelDescriptor& rPanelDescriptor, 48ff12d537SAndre Fischer Window* pParentWindow, 49ff12d537SAndre Fischer const ::boost::function<void(void)>& rDeckLayoutTrigger); 5022de8995SAndre Fischer virtual ~Panel (void); 5122de8995SAndre Fischer 52ff12d537SAndre Fischer void Dispose (void); 53ff12d537SAndre Fischer 5422de8995SAndre Fischer TitleBar* GetTitleBar (void) const; 5522de8995SAndre Fischer bool IsTitleBarOptional (void) const; 5622de8995SAndre Fischer void SetUIElement (const cssu::Reference<css::ui::XUIElement>& rxElement); 57*7a32b0c8SAndre Fischer cssu::Reference<css::ui::XSidebarPanel> GetPanelComponent (void) const; 58ff12d537SAndre Fischer void SetExpanded (const bool bIsExpanded); 59ff12d537SAndre Fischer bool IsExpanded (void) const; 6095a18594SAndre Fischer bool HasIdPredicate (const ::rtl::OUString& rsId) const; 6122de8995SAndre Fischer 6222de8995SAndre Fischer virtual void Paint (const Rectangle& rUpdateArea); 63*7a32b0c8SAndre Fischer virtual void Resize (void); 64b9e67834SAndre Fischer virtual void DataChanged (const DataChangedEvent& rEvent); 65b9e67834SAndre Fischer virtual void Activate (void); 6622de8995SAndre Fischer 67*7a32b0c8SAndre Fischer void PrintWindowTree (void); 68*7a32b0c8SAndre Fischer 6922de8995SAndre Fischer private: 7095a18594SAndre Fischer const ::rtl::OUString msPanelId; 71*7a32b0c8SAndre Fischer ::boost::scoped_ptr<TitleBar> mpTitleBar; 7222de8995SAndre Fischer const bool mbIsTitleBarOptional; 7322de8995SAndre Fischer cssu::Reference<css::ui::XUIElement> mxElement; 74*7a32b0c8SAndre Fischer cssu::Reference<css::ui::XSidebarPanel> mxPanelComponent; 75ff12d537SAndre Fischer bool mbIsExpanded; 76ff12d537SAndre Fischer const ::boost::function<void(void)> maDeckLayoutTrigger; 77b9e67834SAndre Fischer Rectangle maBoundingBox; 78b9e67834SAndre Fischer 79*7a32b0c8SAndre Fischer void ShowMenu (void); 80*7a32b0c8SAndre Fischer cssu::Reference<css::awt::XWindow> GetElementWindow (void); 8122de8995SAndre Fischer }; 8222de8995SAndre Fischer 8395a18594SAndre Fischer 8422de8995SAndre Fischer 85ff12d537SAndre Fischer } } // end of namespace sfx2::sidebar 8622de8995SAndre Fischer 8722de8995SAndre Fischer #endif 88