In System.Windows.Forms:
[mono-project.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ProgressBarRenderer.cs
blob8c06a934d4545aaf92fc199ea93446051ab46e50
1 //
2 // ProgressBarRenderer.cs
3 //
4 // Permission is hereby granted, free of charge, to any person obtaining
5 // a copy of this software and associated documentation files (the
6 // "Software"), to deal in the Software without restriction, including
7 // without limitation the rights to use, copy, modify, merge, publish,
8 // distribute, sublicense, and/or sell copies of the Software, and to
9 // permit persons to whom the Software is furnished to do so, subject to
10 // the following conditions:
11 //
12 // The above copyright notice and this permission notice shall be
13 // included in all copies or substantial portions of the Software.
14 //
15 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 // Copyright (c) 2006 Novell, Inc.
25 // Authors:
26 // Jonathan Pobst (monkey@jpobst.com)
29 #if NET_2_0
30 using System.Drawing;
31 using System.Windows.Forms.VisualStyles;
33 namespace System.Windows.Forms
35 public sealed class ProgressBarRenderer
37 #region Private Constructor
38 private ProgressBarRenderer () { }
39 #endregion
41 #region Public Static Methods
42 public static void DrawHorizontalBar (Graphics g, Rectangle bounds)
44 if (!IsSupported)
45 throw new InvalidOperationException ();
47 VisualStyleRenderer vsr = new VisualStyleRenderer(VisualStyleElement.ProgressBar.Bar.Normal);
49 vsr.DrawBackground(g, bounds);
52 public static void DrawHorizontalChunks (Graphics g, Rectangle bounds)
54 if (!IsSupported)
55 throw new InvalidOperationException ();
57 VisualStyleRenderer vsr = new VisualStyleRenderer (VisualStyleElement.ProgressBar.Chunk.Normal);
59 vsr.DrawBackground (g, bounds);
62 public static void DrawVerticalBar (Graphics g, Rectangle bounds)
64 if (!IsSupported)
65 throw new InvalidOperationException ();
67 VisualStyleRenderer vsr = new VisualStyleRenderer (VisualStyleElement.ProgressBar.BarVertical.Normal);
69 vsr.DrawBackground (g, bounds);
72 public static void DrawVerticalChunks (Graphics g, Rectangle bounds)
74 if (!IsSupported)
75 throw new InvalidOperationException ();
77 VisualStyleRenderer vsr = new VisualStyleRenderer (VisualStyleElement.ProgressBar.ChunkVertical.Normal);
79 vsr.DrawBackground (g, bounds);
81 #endregion
83 #region Public Static Properties
84 public static bool IsSupported {
85 get { return VisualStyleInformation.IsEnabledByUser && (Application.VisualStyleState == VisualStyleState.ClientAndNonClientAreasEnabled || Application.VisualStyleState == VisualStyleState.ClientAreaEnabled); }
88 public static int ChunkSpaceThickness {
89 get {
90 if (!IsSupported)
91 throw new InvalidOperationException();
93 VisualStyleRenderer vsr = new VisualStyleRenderer(VisualStyleElement.ProgressBar.Chunk.Normal);
95 return vsr.GetInteger(IntegerProperty.ProgressSpaceSize);
99 public static int ChunkThickness {
100 get {
101 if (!IsSupported)
102 throw new InvalidOperationException ();
104 VisualStyleRenderer vsr = new VisualStyleRenderer (VisualStyleElement.ProgressBar.Chunk.Normal);
106 return vsr.GetInteger (IntegerProperty.ProgressChunkSize);
109 #endregion
112 #endif