xref: /trunk/main/sfx2/source/sidebar/CustomImageRadioButton.cxx (revision 549760eabef7046a021eb562805aa3542b2e9b62)
1721f296aSOliver-Rainer Wittmann /**************************************************************
2721f296aSOliver-Rainer Wittmann  *
3721f296aSOliver-Rainer Wittmann  * Licensed to the Apache Software Foundation (ASF) under one
4721f296aSOliver-Rainer Wittmann  * or more contributor license agreements.  See the NOTICE file
5721f296aSOliver-Rainer Wittmann  * distributed with this work for additional information
6721f296aSOliver-Rainer Wittmann  * regarding copyright ownership.  The ASF licenses this file
7721f296aSOliver-Rainer Wittmann  * to you under the Apache License, Version 2.0 (the
8721f296aSOliver-Rainer Wittmann  * "License"); you may not use this file except in compliance
9721f296aSOliver-Rainer Wittmann  * with the License.  You may obtain a copy of the License at
10721f296aSOliver-Rainer Wittmann  *
11721f296aSOliver-Rainer Wittmann  *   http://www.apache.org/licenses/LICENSE-2.0
12721f296aSOliver-Rainer Wittmann  *
13721f296aSOliver-Rainer Wittmann  * Unless required by applicable law or agreed to in writing,
14721f296aSOliver-Rainer Wittmann  * software distributed under the License is distributed on an
15721f296aSOliver-Rainer Wittmann  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16721f296aSOliver-Rainer Wittmann  * KIND, either express or implied.  See the License for the
17721f296aSOliver-Rainer Wittmann  * specific language governing permissions and limitations
18721f296aSOliver-Rainer Wittmann  * under the License.
19721f296aSOliver-Rainer Wittmann  *
20721f296aSOliver-Rainer Wittmann  *************************************************************/
21721f296aSOliver-Rainer Wittmann 
22721f296aSOliver-Rainer Wittmann #include "precompiled_sfx2.hxx"
23721f296aSOliver-Rainer Wittmann 
24721f296aSOliver-Rainer Wittmann #include "CustomImageRadioButton.hxx"
25721f296aSOliver-Rainer Wittmann 
26721f296aSOliver-Rainer Wittmann #include "DrawHelper.hxx"
27721f296aSOliver-Rainer Wittmann #include "Paint.hxx"
28f35c6d02SAndre Fischer #include "sfx2/sidebar/Tools.hxx"
29721f296aSOliver-Rainer Wittmann 
30721f296aSOliver-Rainer Wittmann using namespace ::com::sun::star;
31721f296aSOliver-Rainer Wittmann using namespace ::com::sun::star::uno;
32721f296aSOliver-Rainer Wittmann 
33721f296aSOliver-Rainer Wittmann namespace sfx2 { namespace sidebar {
34721f296aSOliver-Rainer Wittmann 
CustomImageRadioButton(Window * pParentWindow,const ResId & rResId)35721f296aSOliver-Rainer Wittmann CustomImageRadioButton::CustomImageRadioButton (
36721f296aSOliver-Rainer Wittmann     Window* pParentWindow,
37721f296aSOliver-Rainer Wittmann     const ResId& rResId )
38721f296aSOliver-Rainer Wittmann     : ImageRadioButton( pParentWindow, rResId )
39721f296aSOliver-Rainer Wittmann {
40721f296aSOliver-Rainer Wittmann     SetStyle( GetStyle() | WB_NOPOINTERFOCUS );
41721f296aSOliver-Rainer Wittmann }
42721f296aSOliver-Rainer Wittmann 
~CustomImageRadioButton(void)43721f296aSOliver-Rainer Wittmann CustomImageRadioButton::~CustomImageRadioButton (void)
44721f296aSOliver-Rainer Wittmann {
45721f296aSOliver-Rainer Wittmann }
46721f296aSOliver-Rainer Wittmann 
Paint(const Rectangle &)472b1fe8a9SPavel Janík void CustomImageRadioButton::Paint (const Rectangle& /* rUpdateArea */)
48721f296aSOliver-Rainer Wittmann {
49721f296aSOliver-Rainer Wittmann     Rectangle aPaintRect( Rectangle(Point(0,0), GetSizePixel() ) );
50721f296aSOliver-Rainer Wittmann     SetMouseRect( aPaintRect );
51721f296aSOliver-Rainer Wittmann     SetStateRect( aPaintRect );
52721f296aSOliver-Rainer Wittmann 
53721f296aSOliver-Rainer Wittmann     const Theme::ThemeItem eBackground =
5437fee4fdSAndre Fischer         IsMouseOver()
55721f296aSOliver-Rainer Wittmann             ? Theme::Paint_TabItemBackgroundHighlight
56721f296aSOliver-Rainer Wittmann             : Theme::Paint_PanelBackground;
57721f296aSOliver-Rainer Wittmann     DrawHelper::DrawRoundedRectangle(
58721f296aSOliver-Rainer Wittmann         *this,
59721f296aSOliver-Rainer Wittmann         aPaintRect,
6037fee4fdSAndre Fischer         Theme::GetInteger(Theme::Int_ButtonCornerRadius),
6137fee4fdSAndre Fischer         IsChecked() || IsMouseOver() ? Theme::GetColor(Theme::Color_TabItemBorder) : Color(0xffffffff),
62721f296aSOliver-Rainer Wittmann         Theme::GetPaint( eBackground ) );
63721f296aSOliver-Rainer Wittmann 
64721f296aSOliver-Rainer Wittmann     const Image aIcon (GetModeRadioImage(Theme::IsHighContrastMode()
65721f296aSOliver-Rainer Wittmann             ? BMP_COLOR_HIGHCONTRAST
66721f296aSOliver-Rainer Wittmann             : BMP_COLOR_NORMAL));
67721f296aSOliver-Rainer Wittmann     const Size aIconSize (aIcon.GetSizePixel());
68721f296aSOliver-Rainer Wittmann     const Point aIconLocation(
69721f296aSOliver-Rainer Wittmann         (GetSizePixel().Width() - aIconSize.Width())/2,
70721f296aSOliver-Rainer Wittmann         (GetSizePixel().Height() - aIconSize.Height())/2 );
71721f296aSOliver-Rainer Wittmann     DrawImage(
72721f296aSOliver-Rainer Wittmann         aIconLocation,
73721f296aSOliver-Rainer Wittmann         aIcon,
74721f296aSOliver-Rainer Wittmann         IsEnabled() ? 0 : IMAGE_DRAW_DISABLE );
75721f296aSOliver-Rainer Wittmann }
76721f296aSOliver-Rainer Wittmann 
77721f296aSOliver-Rainer Wittmann } } // end of namespace sfx2::sidebar
78*549760eaSmseidel 
79*549760eaSmseidel /* vim: set noet sw=4 ts=4: */
80