1 /**************************************************************
2 *
3 * Licensed to the Apache Software Foundation (ASF) under one
4 * or more contributor license agreements. See the NOTICE file
5 * distributed with this work for additional information
6 * regarding copyright ownership. The ASF licenses this file
7 * to you under the Apache License, Version 2.0 (the
8 * "License"); you may not use this file except in compliance
9 * with the License. You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing,
14 * software distributed under the License is distributed on an
15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16 * KIND, either express or implied. See the License for the
17 * specific language governing permissions and limitations
18 * under the License.
19 *
20 *************************************************************/
21
22 #include "SidebarDialControlBmp.hxx"
23
24 #include <sfx2/sidebar/Theme.hxx>
25
26 #include <vcl/svapp.hxx>
27
28 #include "PosSizePropertyPanel.hrc"
29 #include <svx/dialogs.hrc>
30 #include <svx/dialmgr.hxx>
31 #include <svx/svdstr.hrc>
32
33 namespace svx { namespace sidebar {
34
SidebarDialControlBmp(Window & rParent)35 SidebarDialControlBmp::SidebarDialControlBmp (Window& rParent)
36 : DialControlBmp(rParent)
37 {
38 }
39
40
41
42
~SidebarDialControlBmp(void)43 SidebarDialControlBmp::~SidebarDialControlBmp (void)
44 {
45 }
46
47
48
49
DrawElements(const String &,sal_Int32 nAngle)50 void SidebarDialControlBmp::DrawElements (
51 const String& /*rText*/,
52 sal_Int32 nAngle)
53 {
54 if (Application::GetSettings().GetLayoutRTL())
55 nAngle = 18000 - nAngle;
56 double fAngle = nAngle * F_PI180 / 100.0;
57 double fSin = sin( fAngle );
58 double fCos = cos( fAngle );
59 DrawText( maRect, String(), mbEnabled ? 0 : TEXT_DRAW_DISABLE );
60 const sal_Int32 nDx (fCos * (maRect.GetWidth()-4) / 2);
61 const sal_Int32 nDy (-fSin * (maRect.GetHeight()-4) / 2);
62 Point pt1( maRect.Center() );
63 Point pt2( pt1.X() + nDx, pt1.Y() + nDy);
64 if ( ! sfx2::sidebar::Theme::IsHighContrastMode())
65 SetLineColor( Color( 60, 93, 138 ) );
66 else
67 SetLineColor(COL_BLACK);//Application::GetSettings().GetStyleSettings().GetFieldTextColor()
68 DrawLine( pt1, pt2 );
69 }
70
71
72
73
DrawBackground()74 void SidebarDialControlBmp::DrawBackground()
75 {
76 SetLineColor();
77 SetFillColor(sfx2::sidebar::Theme::GetColor(sfx2::sidebar::Theme::Paint_PanelBackground));
78 DrawRect(maRect);
79
80 const BitmapEx aBitmapEx(
81 sfx2::sidebar::Theme::IsHighContrastMode()
82 ? SVX_RES(IMG_DIACONTROL_H)
83 : SVX_RES(IMG_DIACONTROL_NORMAL));
84 // Size aImageSize(aBitmapEx.GetSizePixel());
85 // aImageSize.Width() -= 1;
86 // aImageSize.Height() -= 1;
87 SetAntialiasing(ANTIALIASING_ENABLE_B2DDRAW | ANTIALIASING_PIXELSNAPHAIRLINE);
88 DrawBitmapEx(maRect.TopLeft(), /*aImageSize,*/ aBitmapEx);
89 }
90
91
92 } } // end of namespace svx::sidebar
93
94 // eof
95