1*c45d927aSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*c45d927aSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*c45d927aSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*c45d927aSAndrew Rist * distributed with this work for additional information 6*c45d927aSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*c45d927aSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*c45d927aSAndrew Rist * "License"); you may not use this file except in compliance 9*c45d927aSAndrew Rist * with the License. You may obtain a copy of the License at 10*c45d927aSAndrew Rist * 11*c45d927aSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*c45d927aSAndrew Rist * 13*c45d927aSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*c45d927aSAndrew Rist * software distributed under the License is distributed on an 15*c45d927aSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*c45d927aSAndrew Rist * KIND, either express or implied. See the License for the 17*c45d927aSAndrew Rist * specific language governing permissions and limitations 18*c45d927aSAndrew Rist * under the License. 19*c45d927aSAndrew Rist * 20*c45d927aSAndrew Rist *************************************************************/ 21*c45d927aSAndrew Rist 22*c45d927aSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef SD_PANE_DOCKING_WINDOW_HXX 25cdf0e10cSrcweir #define SD_PANE_DOCKING_WINDOW_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <sfx2/titledockwin.hxx> 28cdf0e10cSrcweir #include <sfx2/viewfrm.hxx> 29cdf0e10cSrcweir 30cdf0e10cSrcweir #include <boost/scoped_ptr.hpp> 31cdf0e10cSrcweir #include <boost/shared_ptr.hpp> 32cdf0e10cSrcweir 33cdf0e10cSrcweir class ToolBox; 34cdf0e10cSrcweir class SplitWindow; 35cdf0e10cSrcweir 36cdf0e10cSrcweir namespace sd { 37cdf0e10cSrcweir 38cdf0e10cSrcweir class PaneDockingWindow : public ::sfx2::TitledDockingWindow 39cdf0e10cSrcweir { 40cdf0e10cSrcweir public: 41cdf0e10cSrcweir /** Create a new docking window. 42cdf0e10cSrcweir @param pBindings 43cdf0e10cSrcweir Used, among others, to determine the ViewShellBase and 44cdf0e10cSrcweir PaneManager that manage the new docking window. 45cdf0e10cSrcweir @param pChildWindow 46cdf0e10cSrcweir This child window is the logical container for the new docking 47cdf0e10cSrcweir window. 48cdf0e10cSrcweir @param pParent 49cdf0e10cSrcweir The parent window of the new docking window. 50cdf0e10cSrcweir @param rResId 51cdf0e10cSrcweir The resource is used to determine initial size and attributes. 52cdf0e10cSrcweir @param rsTitle 53cdf0e10cSrcweir the initial title 54cdf0e10cSrcweir */ 55cdf0e10cSrcweir PaneDockingWindow ( 56cdf0e10cSrcweir SfxBindings *pBindings, 57cdf0e10cSrcweir SfxChildWindow *pChildWindow, 58cdf0e10cSrcweir ::Window* pParent, 59cdf0e10cSrcweir const ResId& rResId, 60cdf0e10cSrcweir const ::rtl::OUString& rsTitle); 61cdf0e10cSrcweir 62cdf0e10cSrcweir virtual ~PaneDockingWindow (void); 63cdf0e10cSrcweir virtual void StateChanged( StateChangedType nType ); 64cdf0e10cSrcweir virtual void MouseButtonDown (const MouseEvent& rEvent); 65cdf0e10cSrcweir /** When docked the given range is passed to the parent SplitWindow. 66cdf0e10cSrcweir */ 67cdf0e10cSrcweir void SetValidSizeRange (const Range aValidSizeRange); 68cdf0e10cSrcweir 69cdf0e10cSrcweir enum Orientation { HorizontalOrientation, VerticalOrientation, UnknownOrientation }; 70cdf0e10cSrcweir /** When the PaneDockingWindow is docked and managed by a split window 71cdf0e10cSrcweir it can derive its orientation from the orientation of the split 72cdf0e10cSrcweir window and return either HorizontalOrientation or 73cdf0e10cSrcweir VerticalOrientation. 74cdf0e10cSrcweir Otherwise UnknownOrientation is returned. 75cdf0e10cSrcweir */ 76cdf0e10cSrcweir Orientation GetOrientation (void) const; 77cdf0e10cSrcweir 78cdf0e10cSrcweir /** The current height of the title bar. 79cdf0e10cSrcweir */ 80cdf0e10cSrcweir sal_Int32 mnTitleBarHeight; 81cdf0e10cSrcweir 82cdf0e10cSrcweir }; 83cdf0e10cSrcweir 84cdf0e10cSrcweir } // end of namespace ::sd 85cdf0e10cSrcweir 86cdf0e10cSrcweir #endif 87