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 25*ff12d537SAndre Fischer #include <vcl/window.hxx> 26*ff12d537SAndre Fischer 2722de8995SAndre Fischer #include <com/sun/star/ui/XUIElement.hpp> 2822de8995SAndre Fischer #include <com/sun/star/ui/XVerticalStackLayoutElement.hpp> 2922de8995SAndre Fischer 30*ff12d537SAndre Fischer #include <boost/function.hpp> 31*ff12d537SAndre Fischer 3222de8995SAndre Fischer namespace css = ::com::sun::star; 3322de8995SAndre Fischer namespace cssu = ::com::sun::star::uno; 3422de8995SAndre Fischer 35*ff12d537SAndre Fischer namespace sfx2 { namespace sidebar { 3622de8995SAndre Fischer 37*ff12d537SAndre Fischer class PanelDescriptor; 3822de8995SAndre Fischer class TitleBar; 3922de8995SAndre Fischer 4022de8995SAndre Fischer 4122de8995SAndre Fischer class Panel 4222de8995SAndre Fischer : public Window 4322de8995SAndre Fischer { 4422de8995SAndre Fischer public: 4522de8995SAndre Fischer Panel ( 46*ff12d537SAndre Fischer const PanelDescriptor& rPanelDescriptor, 47*ff12d537SAndre Fischer Window* pParentWindow, 48*ff12d537SAndre Fischer const ::boost::function<void(void)>& rDeckLayoutTrigger); 4922de8995SAndre Fischer virtual ~Panel (void); 5022de8995SAndre Fischer 51*ff12d537SAndre Fischer void Dispose (void); 52*ff12d537SAndre Fischer 5322de8995SAndre Fischer const ::rtl::OUString& GetLayoutHint (void) const; 5422de8995SAndre Fischer TitleBar* GetTitleBar (void) const; 5522de8995SAndre Fischer bool IsTitleBarOptional (void) const; 5622de8995SAndre Fischer void SetUIElement (const cssu::Reference<css::ui::XUIElement>& rxElement); 57*ff12d537SAndre Fischer cssu::Reference<css::ui::XVerticalStackLayoutElement> GetVerticalStackElement (void) const; 58*ff12d537SAndre Fischer void SetExpanded (const bool bIsExpanded); 59*ff12d537SAndre Fischer bool IsExpanded (void) const; 6022de8995SAndre Fischer 6122de8995SAndre Fischer virtual void Paint (const Rectangle& rUpdateArea); 62*ff12d537SAndre Fischer virtual void SetPosSizePixel ( 63*ff12d537SAndre Fischer long nX, 64*ff12d537SAndre Fischer long nY, 65*ff12d537SAndre Fischer long nWidth, 66*ff12d537SAndre Fischer long nHeight, 67*ff12d537SAndre Fischer sal_uInt16 nFlags = WINDOW_POSSIZE_ALL); 6822de8995SAndre Fischer 6922de8995SAndre Fischer private: 7022de8995SAndre Fischer const ::rtl::OUString msLayoutHint; 7122de8995SAndre Fischer TitleBar* mpTitleBar; 7222de8995SAndre Fischer const bool mbIsTitleBarOptional; 7322de8995SAndre Fischer cssu::Reference<css::ui::XUIElement> mxElement; 74*ff12d537SAndre Fischer cssu::Reference<css::awt::XWindow> mxElementWindow; 7522de8995SAndre Fischer cssu::Reference<css::ui::XVerticalStackLayoutElement> mxVerticalStackLayoutElement; 76*ff12d537SAndre Fischer bool mbIsExpanded; 77*ff12d537SAndre Fischer const ::boost::function<void(void)> maDeckLayoutTrigger; 7822de8995SAndre Fischer }; 7922de8995SAndre Fischer 8022de8995SAndre Fischer 81*ff12d537SAndre Fischer } } // end of namespace sfx2::sidebar 8222de8995SAndre Fischer 8322de8995SAndre Fischer #endif 84