1*b1cdbd2cSJim Jagielski /**************************************************************
2*b1cdbd2cSJim Jagielski  *
3*b1cdbd2cSJim Jagielski  * Licensed to the Apache Software Foundation (ASF) under one
4*b1cdbd2cSJim Jagielski  * or more contributor license agreements.  See the NOTICE file
5*b1cdbd2cSJim Jagielski  * distributed with this work for additional information
6*b1cdbd2cSJim Jagielski  * regarding copyright ownership.  The ASF licenses this file
7*b1cdbd2cSJim Jagielski  * to you under the Apache License, Version 2.0 (the
8*b1cdbd2cSJim Jagielski  * "License"); you may not use this file except in compliance
9*b1cdbd2cSJim Jagielski  * with the License.  You may obtain a copy of the License at
10*b1cdbd2cSJim Jagielski  *
11*b1cdbd2cSJim Jagielski  *   http://www.apache.org/licenses/LICENSE-2.0
12*b1cdbd2cSJim Jagielski  *
13*b1cdbd2cSJim Jagielski  * Unless required by applicable law or agreed to in writing,
14*b1cdbd2cSJim Jagielski  * software distributed under the License is distributed on an
15*b1cdbd2cSJim Jagielski  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*b1cdbd2cSJim Jagielski  * KIND, either express or implied.  See the License for the
17*b1cdbd2cSJim Jagielski  * specific language governing permissions and limitations
18*b1cdbd2cSJim Jagielski  * under the License.
19*b1cdbd2cSJim Jagielski  *
20*b1cdbd2cSJim Jagielski  *************************************************************/
21*b1cdbd2cSJim Jagielski 
22*b1cdbd2cSJim Jagielski 
23*b1cdbd2cSJim Jagielski 
24*b1cdbd2cSJim Jagielski #ifndef TABITEMDESCRIPTOR_HXX
25*b1cdbd2cSJim Jagielski #define TABITEMDESCRIPTOR_HXX
26*b1cdbd2cSJim Jagielski 
27*b1cdbd2cSJim Jagielski #include "svtools/toolpanel/toolpanel.hxx"
28*b1cdbd2cSJim Jagielski #include "svtools/toolpanel/tabitemcontent.hxx"
29*b1cdbd2cSJim Jagielski 
30*b1cdbd2cSJim Jagielski #include <tools/gen.hxx>
31*b1cdbd2cSJim Jagielski #include <osl/diagnose.h>
32*b1cdbd2cSJim Jagielski 
33*b1cdbd2cSJim Jagielski #include <vector>
34*b1cdbd2cSJim Jagielski 
35*b1cdbd2cSJim Jagielski //........................................................................
36*b1cdbd2cSJim Jagielski namespace svt
37*b1cdbd2cSJim Jagielski {
38*b1cdbd2cSJim Jagielski //........................................................................
39*b1cdbd2cSJim Jagielski 
40*b1cdbd2cSJim Jagielski     //==================================================================================================================
41*b1cdbd2cSJim Jagielski 	//= ItemDescriptor
42*b1cdbd2cSJim Jagielski 	//==================================================================================================================
43*b1cdbd2cSJim Jagielski     struct ItemDescriptor
44*b1cdbd2cSJim Jagielski     {
45*b1cdbd2cSJim Jagielski         PToolPanel      pPanel;
46*b1cdbd2cSJim Jagielski         Rectangle       aCompleteArea;  // bounding area if the both text and icon are to be rendererd
47*b1cdbd2cSJim Jagielski         Rectangle       aIconOnlyArea;  // bounding area if the icon is to be rendererd
48*b1cdbd2cSJim Jagielski         Rectangle       aTextOnlyArea;  // bounding area if the text is to be rendererd
49*b1cdbd2cSJim Jagielski         TabItemContent  eContent;
50*b1cdbd2cSJim Jagielski             // content to be used for this particular item. Might differ from item content which has been set
51*b1cdbd2cSJim Jagielski             // up for the complete control, in case not the complete content fits into the available space.
52*b1cdbd2cSJim Jagielski 
ItemDescriptorsvt::ItemDescriptor53*b1cdbd2cSJim Jagielski         ItemDescriptor()
54*b1cdbd2cSJim Jagielski             :pPanel()
55*b1cdbd2cSJim Jagielski             ,aCompleteArea()
56*b1cdbd2cSJim Jagielski             ,aIconOnlyArea()
57*b1cdbd2cSJim Jagielski             ,aTextOnlyArea()
58*b1cdbd2cSJim Jagielski             ,eContent( TABITEM_IMAGE_AND_TEXT )
59*b1cdbd2cSJim Jagielski         {
60*b1cdbd2cSJim Jagielski         }
61*b1cdbd2cSJim Jagielski 
GetRectsvt::ItemDescriptor62*b1cdbd2cSJim Jagielski         const Rectangle& GetRect( const TabItemContent i_eItemContent ) const
63*b1cdbd2cSJim Jagielski         {
64*b1cdbd2cSJim Jagielski             OSL_ENSURE( i_eItemContent != TABITEM_AUTO, "ItemDescriptor::GetRect: illegal value!" );
65*b1cdbd2cSJim Jagielski 
66*b1cdbd2cSJim Jagielski             return  ( i_eItemContent == TABITEM_IMAGE_AND_TEXT )
67*b1cdbd2cSJim Jagielski                 ?   aCompleteArea
68*b1cdbd2cSJim Jagielski                 :   (   ( i_eItemContent == TABITEM_TEXT_ONLY )
69*b1cdbd2cSJim Jagielski                     ?   aTextOnlyArea
70*b1cdbd2cSJim Jagielski                     :   aIconOnlyArea
71*b1cdbd2cSJim Jagielski                     );
72*b1cdbd2cSJim Jagielski         }
73*b1cdbd2cSJim Jagielski 
GetCurrentRectsvt::ItemDescriptor74*b1cdbd2cSJim Jagielski         const Rectangle& GetCurrentRect() const
75*b1cdbd2cSJim Jagielski         {
76*b1cdbd2cSJim Jagielski             return GetRect( eContent );
77*b1cdbd2cSJim Jagielski         }
78*b1cdbd2cSJim Jagielski     };
79*b1cdbd2cSJim Jagielski 
80*b1cdbd2cSJim Jagielski     typedef ::std::vector< ItemDescriptor > ItemDescriptors;
81*b1cdbd2cSJim Jagielski 
82*b1cdbd2cSJim Jagielski 
83*b1cdbd2cSJim Jagielski //........................................................................
84*b1cdbd2cSJim Jagielski } // namespace svt
85*b1cdbd2cSJim Jagielski //........................................................................
86*b1cdbd2cSJim Jagielski 
87*b1cdbd2cSJim Jagielski #endif // TABITEMDESCRIPTOR_HXX
88