xref: /AOO41X/main/sfx2/source/sidebar/CustomImageRadioButton.cxx (revision 721f296a170e66b8d7a6e8cb983bf3648589f2f6)
1*721f296aSOliver-Rainer Wittmann /**************************************************************
2*721f296aSOliver-Rainer Wittmann  *
3*721f296aSOliver-Rainer Wittmann  * Licensed to the Apache Software Foundation (ASF) under one
4*721f296aSOliver-Rainer Wittmann  * or more contributor license agreements.  See the NOTICE file
5*721f296aSOliver-Rainer Wittmann  * distributed with this work for additional information
6*721f296aSOliver-Rainer Wittmann  * regarding copyright ownership.  The ASF licenses this file
7*721f296aSOliver-Rainer Wittmann  * to you under the Apache License, Version 2.0 (the
8*721f296aSOliver-Rainer Wittmann  * "License"); you may not use this file except in compliance
9*721f296aSOliver-Rainer Wittmann  * with the License.  You may obtain a copy of the License at
10*721f296aSOliver-Rainer Wittmann  *
11*721f296aSOliver-Rainer Wittmann  *   http://www.apache.org/licenses/LICENSE-2.0
12*721f296aSOliver-Rainer Wittmann  *
13*721f296aSOliver-Rainer Wittmann  * Unless required by applicable law or agreed to in writing,
14*721f296aSOliver-Rainer Wittmann  * software distributed under the License is distributed on an
15*721f296aSOliver-Rainer Wittmann  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*721f296aSOliver-Rainer Wittmann  * KIND, either express or implied.  See the License for the
17*721f296aSOliver-Rainer Wittmann  * specific language governing permissions and limitations
18*721f296aSOliver-Rainer Wittmann  * under the License.
19*721f296aSOliver-Rainer Wittmann  *
20*721f296aSOliver-Rainer Wittmann  *************************************************************/
21*721f296aSOliver-Rainer Wittmann 
22*721f296aSOliver-Rainer Wittmann #include "precompiled_sfx2.hxx"
23*721f296aSOliver-Rainer Wittmann 
24*721f296aSOliver-Rainer Wittmann #include "CustomImageRadioButton.hxx"
25*721f296aSOliver-Rainer Wittmann 
26*721f296aSOliver-Rainer Wittmann #include "DrawHelper.hxx"
27*721f296aSOliver-Rainer Wittmann #include "Paint.hxx"
28*721f296aSOliver-Rainer Wittmann #include "Tools.hxx"
29*721f296aSOliver-Rainer Wittmann 
30*721f296aSOliver-Rainer Wittmann using namespace ::com::sun::star;
31*721f296aSOliver-Rainer Wittmann using namespace ::com::sun::star::uno;
32*721f296aSOliver-Rainer Wittmann 
33*721f296aSOliver-Rainer Wittmann 
34*721f296aSOliver-Rainer Wittmann namespace sfx2 { namespace sidebar {
35*721f296aSOliver-Rainer Wittmann 
36*721f296aSOliver-Rainer Wittmann 
37*721f296aSOliver-Rainer Wittmann CustomImageRadioButton::CustomImageRadioButton (
38*721f296aSOliver-Rainer Wittmann     Window* pParentWindow,
39*721f296aSOliver-Rainer Wittmann     const ResId& rResId )
40*721f296aSOliver-Rainer Wittmann     : ImageRadioButton( pParentWindow, rResId )
41*721f296aSOliver-Rainer Wittmann {
42*721f296aSOliver-Rainer Wittmann     SetStyle( GetStyle() | WB_NOPOINTERFOCUS );
43*721f296aSOliver-Rainer Wittmann }
44*721f296aSOliver-Rainer Wittmann 
45*721f296aSOliver-Rainer Wittmann 
46*721f296aSOliver-Rainer Wittmann CustomImageRadioButton::~CustomImageRadioButton (void)
47*721f296aSOliver-Rainer Wittmann {
48*721f296aSOliver-Rainer Wittmann }
49*721f296aSOliver-Rainer Wittmann 
50*721f296aSOliver-Rainer Wittmann 
51*721f296aSOliver-Rainer Wittmann void CustomImageRadioButton::Paint (const Rectangle& rUpdateArea)
52*721f296aSOliver-Rainer Wittmann {
53*721f296aSOliver-Rainer Wittmann     Rectangle aPaintRect( Rectangle(Point(0,0), GetSizePixel() ) );
54*721f296aSOliver-Rainer Wittmann     SetMouseRect( aPaintRect );
55*721f296aSOliver-Rainer Wittmann     SetStateRect( aPaintRect );
56*721f296aSOliver-Rainer Wittmann 
57*721f296aSOliver-Rainer Wittmann     const Theme::ThemeItem eBackground =
58*721f296aSOliver-Rainer Wittmann         IsChecked()
59*721f296aSOliver-Rainer Wittmann         ? Theme::Paint_PanelTitleBarBackground
60*721f296aSOliver-Rainer Wittmann         : IsMouseOver()
61*721f296aSOliver-Rainer Wittmann           ? Theme::Paint_TabItemBackgroundHighlight
62*721f296aSOliver-Rainer Wittmann           : Theme::Paint_PanelBackground;
63*721f296aSOliver-Rainer Wittmann     DrawHelper::DrawRoundedRectangle(
64*721f296aSOliver-Rainer Wittmann         *this,
65*721f296aSOliver-Rainer Wittmann         aPaintRect,
66*721f296aSOliver-Rainer Wittmann         2,
67*721f296aSOliver-Rainer Wittmann         IsChecked() ? Theme::GetColor(Theme::Color_TabItemBorder) : Color(0xffffffff),
68*721f296aSOliver-Rainer Wittmann         Theme::GetPaint( eBackground ) );
69*721f296aSOliver-Rainer Wittmann 
70*721f296aSOliver-Rainer Wittmann     //const Image aIcon (Button::GetModeImage(Theme::IsHighContrastMode()
71*721f296aSOliver-Rainer Wittmann     const Image aIcon (GetModeRadioImage(Theme::IsHighContrastMode()
72*721f296aSOliver-Rainer Wittmann             ? BMP_COLOR_HIGHCONTRAST
73*721f296aSOliver-Rainer Wittmann             : BMP_COLOR_NORMAL));
74*721f296aSOliver-Rainer Wittmann     const Size aIconSize (aIcon.GetSizePixel());
75*721f296aSOliver-Rainer Wittmann     const Point aIconLocation(
76*721f296aSOliver-Rainer Wittmann         (GetSizePixel().Width() - aIconSize.Width())/2,
77*721f296aSOliver-Rainer Wittmann         (GetSizePixel().Height() - aIconSize.Height())/2 );
78*721f296aSOliver-Rainer Wittmann     DrawImage(
79*721f296aSOliver-Rainer Wittmann         aIconLocation,
80*721f296aSOliver-Rainer Wittmann         aIcon,
81*721f296aSOliver-Rainer Wittmann         IsEnabled() ? 0 : IMAGE_DRAW_DISABLE );
82*721f296aSOliver-Rainer Wittmann }
83*721f296aSOliver-Rainer Wittmann 
84*721f296aSOliver-Rainer Wittmann 
85*721f296aSOliver-Rainer Wittmann } } // end of namespace sfx2::sidebar
86