xref: /aoo41x/main/sfx2/source/sidebar/Panel.cxx (revision 22de8995)
1*22de8995SAndre Fischer /**************************************************************
2*22de8995SAndre Fischer  *
3*22de8995SAndre Fischer  * Licensed to the Apache Software Foundation (ASF) under one
4*22de8995SAndre Fischer  * or more contributor license agreements.  See the NOTICE file
5*22de8995SAndre Fischer  * distributed with this work for additional information
6*22de8995SAndre Fischer  * regarding copyright ownership.  The ASF licenses this file
7*22de8995SAndre Fischer  * to you under the Apache License, Version 2.0 (the
8*22de8995SAndre Fischer  * "License"); you may not use this file except in compliance
9*22de8995SAndre Fischer  * with the License.  You may obtain a copy of the License at
10*22de8995SAndre Fischer  *
11*22de8995SAndre Fischer  *   http://www.apache.org/licenses/LICENSE-2.0
12*22de8995SAndre Fischer  *
13*22de8995SAndre Fischer  * Unless required by applicable law or agreed to in writing,
14*22de8995SAndre Fischer  * software distributed under the License is distributed on an
15*22de8995SAndre Fischer  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*22de8995SAndre Fischer  * KIND, either express or implied.  See the License for the
17*22de8995SAndre Fischer  * specific language governing permissions and limitations
18*22de8995SAndre Fischer  * under the License.
19*22de8995SAndre Fischer  *
20*22de8995SAndre Fischer  *************************************************************/
21*22de8995SAndre Fischer 
22*22de8995SAndre Fischer #include "precompiled_sfx2.hxx"
23*22de8995SAndre Fischer 
24*22de8995SAndre Fischer #include "Panel.hxx"
25*22de8995SAndre Fischer #include "TitleBar.hxx"
26*22de8995SAndre Fischer #include "ContentPanelDescriptor.hxx"
27*22de8995SAndre Fischer 
28*22de8995SAndre Fischer #include <tools/svborder.hxx>
29*22de8995SAndre Fischer 
30*22de8995SAndre Fischer 
31*22de8995SAndre Fischer using namespace css;
32*22de8995SAndre Fischer using namespace cssu;
33*22de8995SAndre Fischer 
34*22de8995SAndre Fischer namespace {
35*22de8995SAndre Fischer     static const char* VerticalStackLayouterName("vertical-stack");
36*22de8995SAndre Fischer }
37*22de8995SAndre Fischer 
38*22de8995SAndre Fischer 
39*22de8995SAndre Fischer namespace sfx2 {
40*22de8995SAndre Fischer 
41*22de8995SAndre Fischer Panel::Panel (
42*22de8995SAndre Fischer     const ContentPanelDescriptor& rPanelDescriptor,
43*22de8995SAndre Fischer     Window* pParentWindow)
44*22de8995SAndre Fischer     : Window(pParentWindow),
45*22de8995SAndre Fischer       msLayoutHint(rPanelDescriptor.msLayout),
46*22de8995SAndre Fischer       mpTitleBar(new TitleBar(rPanelDescriptor.msTitle, false, pParentWindow)),
47*22de8995SAndre Fischer       mbIsTitleBarOptional(rPanelDescriptor.mbIsTitleBarOptional),
48*22de8995SAndre Fischer       mxElement(),
49*22de8995SAndre Fischer       mxVerticalStackLayoutElement()
50*22de8995SAndre Fischer {
51*22de8995SAndre Fischer     SetBackground(Wallpaper(Color(0xff4500)));
52*22de8995SAndre Fischer 
53*22de8995SAndre Fischer }
54*22de8995SAndre Fischer 
55*22de8995SAndre Fischer 
56*22de8995SAndre Fischer 
57*22de8995SAndre Fischer 
58*22de8995SAndre Fischer Panel::~Panel (void)
59*22de8995SAndre Fischer {
60*22de8995SAndre Fischer }
61*22de8995SAndre Fischer 
62*22de8995SAndre Fischer 
63*22de8995SAndre Fischer 
64*22de8995SAndre Fischer 
65*22de8995SAndre Fischer const ::rtl::OUString& Panel::GetLayoutHint (void) const
66*22de8995SAndre Fischer {
67*22de8995SAndre Fischer     return msLayoutHint;
68*22de8995SAndre Fischer }
69*22de8995SAndre Fischer 
70*22de8995SAndre Fischer 
71*22de8995SAndre Fischer 
72*22de8995SAndre Fischer 
73*22de8995SAndre Fischer TitleBar* Panel::GetTitleBar (void) const
74*22de8995SAndre Fischer {
75*22de8995SAndre Fischer     return mpTitleBar;
76*22de8995SAndre Fischer }
77*22de8995SAndre Fischer 
78*22de8995SAndre Fischer 
79*22de8995SAndre Fischer 
80*22de8995SAndre Fischer 
81*22de8995SAndre Fischer bool Panel::IsTitleBarOptional (void) const
82*22de8995SAndre Fischer {
83*22de8995SAndre Fischer     return mbIsTitleBarOptional;
84*22de8995SAndre Fischer }
85*22de8995SAndre Fischer 
86*22de8995SAndre Fischer 
87*22de8995SAndre Fischer 
88*22de8995SAndre Fischer 
89*22de8995SAndre Fischer void Panel::SetUIElement (const Reference<ui::XUIElement>& rxElement)
90*22de8995SAndre Fischer {
91*22de8995SAndre Fischer     mxElement = rxElement;
92*22de8995SAndre Fischer     if (mxElement.is())
93*22de8995SAndre Fischer     {
94*22de8995SAndre Fischer         SetBackground(Wallpaper());
95*22de8995SAndre Fischer 
96*22de8995SAndre Fischer         if (msLayoutHint.equalsAscii(VerticalStackLayouterName))
97*22de8995SAndre Fischer             mxVerticalStackLayoutElement.set(mxElement->getRealInterface(), UNO_QUERY);
98*22de8995SAndre Fischer     }
99*22de8995SAndre Fischer }
100*22de8995SAndre Fischer 
101*22de8995SAndre Fischer 
102*22de8995SAndre Fischer 
103*22de8995SAndre Fischer 
104*22de8995SAndre Fischer void Panel::Paint (const Rectangle& rUpdateArea)
105*22de8995SAndre Fischer {
106*22de8995SAndre Fischer     Window::Paint(rUpdateArea);
107*22de8995SAndre Fischer }
108*22de8995SAndre Fischer 
109*22de8995SAndre Fischer 
110*22de8995SAndre Fischer 
111*22de8995SAndre Fischer 
112*22de8995SAndre Fischer Reference<ui::XVerticalStackLayoutElement> Panel::GetVerticalStackElement (void) const
113*22de8995SAndre Fischer {
114*22de8995SAndre Fischer     return mxVerticalStackLayoutElement;
115*22de8995SAndre Fischer }
116*22de8995SAndre Fischer 
117*22de8995SAndre Fischer 
118*22de8995SAndre Fischer } // end of namespace sfx2
119