1 // Permission is hereby granted, free of charge, to any person obtaining
2 // a copy of this software and associated documentation files (the
3 // "Software"), to deal in the Software without restriction, including
4 // without limitation the rights to use, copy, modify, merge, publish,
5 // distribute, sublicense, and/or sell copies of the Software, and to
6 // permit persons to whom the Software is furnished to do so, subject to
7 // the following conditions:
9 // The above copyright notice and this permission notice shall be
10 // included in all copies or substantial portions of the Software.
12 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
13 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
14 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
15 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
16 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
17 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
18 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
20 // Copyright (c) 2004 Novell, Inc.
23 // Miguel de Icaza (miguel@novell.com).
24 // Peter Bartok (pbartok@novell.com)
32 namespace System.Windows.Forms {
33 public class SystemInformation {
35 internal SystemInformation() {
39 #region Public Static Properties
40 public static ArrangeDirection ArrangeDirection {
42 return ThemeEngine.Current.ArrangeDirection;
46 public static ArrangeStartingPosition ArrangeStartingPosition {
48 return ThemeEngine.Current.ArrangeStartingPosition;
52 public static BootMode BootMode {
54 return BootMode.Normal;
58 public static Size Border3DSize {
60 return ThemeEngine.Current.Border3DSize;
64 public static Size BorderSize {
66 return ThemeEngine.Current.Border3DSize;
70 public static Size CaptionButtonSize {
72 return ThemeEngine.Current.CaptionButtonSize;
76 public static int CaptionHeight {
78 return ThemeEngine.Current.CaptionHeight;
82 public static string ComputerName {
84 return Environment.MachineName;
88 public static Size CursorSize {
90 return XplatUI.CursorSize;
94 public static bool DbcsEnabled {
100 public static bool DebugOS {
106 public static Size DoubleClickSize {
108 return ThemeEngine.Current.DoubleClickSize;
112 public static int DoubleClickTime {
114 return ThemeEngine.Current.DoubleClickTime;
118 public static bool DragFullWindows {
120 return XplatUI.DragFullWindows;
124 public static Size DragSize {
126 return XplatUI.DragSize;
130 public static Size FixedFrameBorderSize {
132 return ThemeEngine.Current.FixedFrameBorderSize;
136 public static Size FrameBorderSize {
138 return ThemeEngine.Current.FrameBorderSize;
142 public static bool HighContrast {
148 public static int HorizontalScrollBarArrowWidth {
150 return ThemeEngine.Current.HorizontalScrollBarArrowWidth;
154 public static int HorizontalScrollBarHeight {
156 return ThemeEngine.Current.HorizontalScrollBarHeight;
160 public static int HorizontalScrollBarThumbWidth {
162 return ThemeEngine.Current.HorizontalScrollBarThumbWidth;
166 public static Size IconSize {
168 return XplatUI.IconSize;
172 public static Size IconSpacingSize {
174 return ThemeEngine.Current.IconSpacingSize;
178 public static int KanjiWindowHeight {
184 public static Size MaxWindowTrackSize {
186 return XplatUI.MaxWindowTrackSize;
190 public static Size MenuButtonSize {
192 return ThemeEngine.Current.MenuButtonSize;
196 public static Size MenuCheckSize {
198 return ThemeEngine.Current.MenuCheckSize;
202 public static Font MenuFont {
204 return ThemeEngine.Current.MenuFont;
208 public static int MenuHeight {
210 return ThemeEngine.Current.MenuHeight;
214 public static bool MidEastEnabled {
216 return false; // ??? how do we decide?
220 public static Size MinimizedWindowSize {
222 return XplatUI.MinimizedWindowSize;
226 public static Size MinimizedWindowSpacingSize {
228 return XplatUI.MinimizedWindowSpacingSize;
232 public static Size MinimumWindowSize {
234 return XplatUI.MinimumWindowSize;
238 public static Size MinWindowTrackSize {
240 return XplatUI.MinWindowTrackSize;
244 public static int MonitorCount {
246 return 1; // Why bother...
250 public static bool MonitorsSameDisplayFormat {
256 public static int MouseButtons {
258 return XplatUI.MouseButtonCount;
262 public static bool MouseButtonsSwapped {
264 return XplatUI.MouseButtonsSwapped;
268 public static bool MousePresent {
274 public static bool MouseWheelPresent {
276 return XplatUI.MouseWheelPresent;
280 public static int MouseWheelScrollLines {
282 return ThemeEngine.Current.MouseWheelScrollLines;
286 public static bool NativeMouseWheelSupport {
288 return MouseWheelPresent;
292 public static bool Network {
298 public static bool PenWindows {
304 public static Size PrimaryMonitorMaximizedWindowSize {
306 return new Size(WorkingArea.Width, WorkingArea.Height);
310 public static Size PrimaryMonitorSize {
312 return new Size(WorkingArea.Width, WorkingArea.Height);
316 public static bool RightAlignedMenus {
318 return ThemeEngine.Current.RightAlignedMenus;
322 public static bool Secure {
324 return true; // FIXME - figure out if we're running 98/Me and return false
328 public static bool ShowSounds {
334 public static Size SmallIconSize {
336 return XplatUI.SmallIconSize;
340 public static Size ToolWindowCaptionButtonSize {
342 return ThemeEngine.Current.ToolWindowCaptionButtonSize;
346 public static int ToolWindowCaptionHeight {
348 return ThemeEngine.Current.ToolWindowCaptionHeight;
352 public static string UserDomainName {
354 return Environment.UserDomainName;
358 public static bool UserInteractive {
360 return Environment.UserInteractive;
364 public static string UserName {
366 return Environment.UserName;
370 public static int VerticalScrollBarArrowHeight {
372 return ThemeEngine.Current.VerticalScrollBarArrowHeight;
376 public static int VerticalScrollBarThumbHeight {
378 return ThemeEngine.Current.VerticalScrollBarThumbHeight;
382 public static int VerticalScrollBarWidth {
384 return ThemeEngine.Current.VerticalScrollBarWidth;
388 public static Rectangle VirtualScreen {
390 return XplatUI.VirtualScreen;
394 public static Rectangle WorkingArea {
396 return XplatUI.WorkingArea;
399 #endregion // Public Static Properties
401 #region Internal Static Properties
402 internal static int KeyboardSpeed {
404 return XplatUI.KeyboardSpeed;
408 internal static int KeyboardDelay {
410 return XplatUI.KeyboardDelay;
413 #endregion // Internal Static Properties