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> 287a32b0c8SAndre Fischer #include <com/sun/star/ui/XSidebarPanel.hpp> 2922de8995SAndre Fischer 30ff12d537SAndre Fischer #include <boost/function.hpp> 317a32b0c8SAndre Fischer #include <boost/scoped_ptr.hpp> 32*f120fe41SAndre Fischer #include <boost/shared_ptr.hpp> 33*f120fe41SAndre Fischer #include <vector> 34ff12d537SAndre Fischer 3522de8995SAndre Fischer namespace css = ::com::sun::star; 3622de8995SAndre Fischer namespace cssu = ::com::sun::star::uno; 3722de8995SAndre Fischer 38ff12d537SAndre Fischer namespace sfx2 { namespace sidebar { 3922de8995SAndre Fischer 40ff12d537SAndre Fischer class PanelDescriptor; 4122de8995SAndre Fischer class TitleBar; 4222de8995SAndre Fischer 4322de8995SAndre Fischer 4422de8995SAndre Fischer class Panel 4522de8995SAndre Fischer : public Window 4622de8995SAndre Fischer { 4722de8995SAndre Fischer public: 4822de8995SAndre Fischer Panel ( 49ff12d537SAndre Fischer const PanelDescriptor& rPanelDescriptor, 50ff12d537SAndre Fischer Window* pParentWindow, 51*f120fe41SAndre Fischer const ::boost::function<void(void)>& rDeckLayoutTrigger, 52*f120fe41SAndre Fischer const ::boost::function<void(void)>& rShowMenuFunctor); 5322de8995SAndre Fischer virtual ~Panel (void); 5422de8995SAndre Fischer 55ff12d537SAndre Fischer void Dispose (void); 56ff12d537SAndre Fischer 5722de8995SAndre Fischer TitleBar* GetTitleBar (void) const; 5822de8995SAndre Fischer bool IsTitleBarOptional (void) const; 5922de8995SAndre Fischer void SetUIElement (const cssu::Reference<css::ui::XUIElement>& rxElement); 607a32b0c8SAndre Fischer cssu::Reference<css::ui::XSidebarPanel> GetPanelComponent (void) const; 61ff12d537SAndre Fischer void SetExpanded (const bool bIsExpanded); 62ff12d537SAndre Fischer bool IsExpanded (void) const; 6395a18594SAndre Fischer bool HasIdPredicate (const ::rtl::OUString& rsId) const; 6402c50d82SAndre Fischer const ::rtl::OUString& GetId (void) const; 6522de8995SAndre Fischer 6622de8995SAndre Fischer virtual void Paint (const Rectangle& rUpdateArea); 677a32b0c8SAndre Fischer virtual void Resize (void); 68b9e67834SAndre Fischer virtual void DataChanged (const DataChangedEvent& rEvent); 69b9e67834SAndre Fischer virtual void Activate (void); 7022de8995SAndre Fischer 717a32b0c8SAndre Fischer void PrintWindowTree (void); 727a32b0c8SAndre Fischer 7322de8995SAndre Fischer private: 7495a18594SAndre Fischer const ::rtl::OUString msPanelId; 757a32b0c8SAndre Fischer ::boost::scoped_ptr<TitleBar> mpTitleBar; 7622de8995SAndre Fischer const bool mbIsTitleBarOptional; 7722de8995SAndre Fischer cssu::Reference<css::ui::XUIElement> mxElement; 787a32b0c8SAndre Fischer cssu::Reference<css::ui::XSidebarPanel> mxPanelComponent; 79ff12d537SAndre Fischer bool mbIsExpanded; 80ff12d537SAndre Fischer const ::boost::function<void(void)> maDeckLayoutTrigger; 81b9e67834SAndre Fischer Rectangle maBoundingBox; 82b9e67834SAndre Fischer 837a32b0c8SAndre Fischer void ShowMenu (void); 847a32b0c8SAndre Fischer cssu::Reference<css::awt::XWindow> GetElementWindow (void); 8522de8995SAndre Fischer }; 86*f120fe41SAndre Fischer typedef ::boost::shared_ptr<Panel> SharedPanel; 87*f120fe41SAndre Fischer typedef ::std::vector<SharedPanel> SharedPanelContainer; 8895a18594SAndre Fischer 8922de8995SAndre Fischer 90ff12d537SAndre Fischer } } // end of namespace sfx2::sidebar 9122de8995SAndre Fischer 9222de8995SAndre Fischer #endif 93