diff options
| author | Michael VanOverbeek <[email protected]> | 2016-07-25 12:57:52 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2016-07-25 12:57:52 -0400 |
| commit | 46c1c31302f111a1f3ec23a70e6f3986a9aa2a27 (patch) | |
| tree | f00af7ea3f6ad2641fb26fa1d310fd8b7179b39c /source/ShiftUI/Internal/SystemInformation.cs | |
| parent | af48e774189596b8d7a058c564a7d6d75205ca03 (diff) | |
| parent | 6fa16209519896de09949a27425dff00ebf2970a (diff) | |
| download | shiftos-c--46c1c31302f111a1f3ec23a70e6f3986a9aa2a27.tar.gz shiftos-c--46c1c31302f111a1f3ec23a70e6f3986a9aa2a27.tar.bz2 shiftos-c--46c1c31302f111a1f3ec23a70e6f3986a9aa2a27.zip | |
Merge pull request #17 from MichaelTheShifter/shiftui_integration
Shiftui integration
Diffstat (limited to 'source/ShiftUI/Internal/SystemInformation.cs')
| -rw-r--r-- | source/ShiftUI/Internal/SystemInformation.cs | 611 |
1 files changed, 611 insertions, 0 deletions
diff --git a/source/ShiftUI/Internal/SystemInformation.cs b/source/ShiftUI/Internal/SystemInformation.cs new file mode 100644 index 0000000..a27f039 --- /dev/null +++ b/source/ShiftUI/Internal/SystemInformation.cs @@ -0,0 +1,611 @@ +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +// +// Copyright (c) 2004,2006 Novell, Inc. (http://www.novell.com) +// +// Authors: +// Miguel de Icaza ([email protected]). +// Peter Bartok ([email protected]) +// + +// NOT COMPLETE + +using System; +using System.Drawing; +using System.ComponentModel; + +namespace ShiftUI +{ + public class SystemInformation + { + private SystemInformation () + { + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int ActiveWindowTrackingDelay { get { return XplatUI.ActiveWindowTrackingDelay; } } + + public static ArrangeDirection ArrangeDirection { + get { + return ThemeEngine.Current.ArrangeDirection; + } + } + + public static ArrangeStartingPosition ArrangeStartingPosition { + get { + return ThemeEngine.Current.ArrangeStartingPosition; + } + } + + public static BootMode BootMode { + get { + return BootMode.Normal; + } + } + + public static Size Border3DSize { + get { + return ThemeEngine.Current.Border3DSize; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int BorderMultiplierFactor { get { return ThemeEngine.Current.BorderMultiplierFactor; } } + + public static Size BorderSize { + get { + return ThemeEngine.Current.BorderSize; + } + } + + public static Size CaptionButtonSize { + get { + return ThemeEngine.Current.CaptionButtonSize; + } + } + + public static int CaptionHeight { + get { + return ThemeEngine.Current.CaptionHeight; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int CaretBlinkTime { get { return XplatUI.CaretBlinkTime; } } + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int CaretWidth { get { return XplatUI.CaretWidth; } } + + public static string ComputerName { + get { + return Environment.MachineName; + } + } + + public static Size CursorSize { + get { + return XplatUI.CursorSize; + } + } + + public static bool DbcsEnabled { + get { + return false; + } + } + + public static bool DebugOS { + get { + return false; + } + } + + public static Size DoubleClickSize { + get { + return ThemeEngine.Current.DoubleClickSize; + } + } + + public static int DoubleClickTime { + get { + return ThemeEngine.Current.DoubleClickTime; + } + } + + public static bool DragFullWindows { + get { + return XplatUI.DragFullWindows; + } + } + + public static Size DragSize { + get { + return XplatUI.DragSize; + } + } + + public static Size FixedFrameBorderSize { + get { + return ThemeEngine.Current.FixedFrameBorderSize; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int FontSmoothingContrast { get { return XplatUI.FontSmoothingContrast; } } + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int FontSmoothingType { get { return XplatUI.FontSmoothingType; } } + + public static Size FrameBorderSize { + get { + return ThemeEngine.Current.FrameBorderSize; + } + } + + public static bool HighContrast { + get { + return false; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int HorizontalFocusThickness { get { return ThemeEngine.Current.HorizontalFocusThickness; } } + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int HorizontalResizeBorderThickness { get { return XplatUI.HorizontalResizeBorderThickness; } } + + public static int HorizontalScrollBarArrowWidth { + get { + return ThemeEngine.Current.HorizontalScrollBarArrowWidth; + } + } + + public static int HorizontalScrollBarHeight { + get { + return ThemeEngine.Current.HorizontalScrollBarHeight; + } + } + + public static int HorizontalScrollBarThumbWidth { + get { + return ThemeEngine.Current.HorizontalScrollBarThumbWidth; + } + } + + public static Size IconSize { + get { + return XplatUI.IconSize; + } + } + + public static int IconHorizontalSpacing { + get { + return IconSpacingSize.Width; + } + } + + public static int IconVerticalSpacing { + get { + return IconSpacingSize.Height; + } + } + + public static Size IconSpacingSize { + get { + return ThemeEngine.Current.IconSpacingSize; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsActiveWindowTrackingEnabled { + get { return XplatUI.IsActiveWindowTrackingEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsComboBoxAnimationEnabled { + get { return XplatUI.IsComboBoxAnimationEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsDropShadowEnabled { + get { return XplatUI.IsDropShadowEnabled; } + } + + public static bool IsFlatMenuEnabled { + get { return false; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsFontSmoothingEnabled { + get { return XplatUI.IsFontSmoothingEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsHotTrackingEnabled { + get { return XplatUI.IsHotTrackingEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsIconTitleWrappingEnabled { + get { return XplatUI.IsIconTitleWrappingEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsKeyboardPreferred { + get { return XplatUI.IsKeyboardPreferred; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsListBoxSmoothScrollingEnabled { + get { return XplatUI.IsListBoxSmoothScrollingEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsMenuAnimationEnabled { + get { return XplatUI.IsMenuAnimationEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsMenuFadeEnabled { + get { return XplatUI.IsMenuFadeEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsMinimizeRestoreAnimationEnabled { + get { return XplatUI.IsMinimizeRestoreAnimationEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsSelectionFadeEnabled { + get { return XplatUI.IsSelectionFadeEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsSnapToDefaultEnabled { + get { return XplatUI.IsSnapToDefaultEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsTitleBarGradientEnabled { + get { return XplatUI.IsTitleBarGradientEnabled; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool IsToolTipAnimationEnabled { + get { return XplatUI.IsToolTipAnimationEnabled; } + } + + public static int KanjiWindowHeight { + get { + return 0; + } + } + + public static int KeyboardDelay { + get { + return XplatUI.KeyboardDelay; + } + } + + public static int KeyboardSpeed { + get { + return XplatUI.KeyboardSpeed; + } + } + + public static Size MaxWindowTrackSize { + get { + return XplatUI.MaxWindowTrackSize; + } + } + + public static bool MenuAccessKeysUnderlined { + get { + return ThemeEngine.Current.MenuAccessKeysUnderlined; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static Size MenuBarButtonSize { + get { return ThemeEngine.Current.MenuBarButtonSize; } + } + + public static Size MenuButtonSize { + get { + return ThemeEngine.Current.MenuButtonSize; + } + } + + public static Size MenuCheckSize { + get { + return ThemeEngine.Current.MenuCheckSize; + } + } + + public static Font MenuFont { + get { + // note: we MUST return a clone of the Font instance as anyone + // can dispose it. However we shouldn't expect the theme to do + // the cloning for performance reason + return (Font) ThemeEngine.Current.MenuFont.Clone (); + } + } + + public static int MenuHeight { + get { + return ThemeEngine.Current.MenuHeight; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int MenuShowDelay { get { return XplatUI.MenuShowDelay; } } + + public static bool MidEastEnabled { + get { + return false; // ??? how do we decide? + } + } + + public static Size MinimizedWindowSize { + get { + return XplatUI.MinimizedWindowSize; + } + } + + public static Size MinimizedWindowSpacingSize { + get { + return XplatUI.MinimizedWindowSpacingSize; + } + } + + public static Size MinimumWindowSize { + get { + return XplatUI.MinimumWindowSize; + } + } + + public static Size MinWindowTrackSize { + get { + return XplatUI.MinWindowTrackSize; + } + } + + public static int MonitorCount { + get { + return Screen.AllScreens.Length; + } + } + + public static bool MonitorsSameDisplayFormat { + get { + return true; + } + } + + public static int MouseButtons { + get { + return XplatUI.MouseButtonCount; + } + } + + public static bool MouseButtonsSwapped { + get { + return XplatUI.MouseButtonsSwapped; + } + } + + public static Size MouseHoverSize { + get { + return XplatUI.MouseHoverSize; + } + } + + public static int MouseHoverTime { + get { + return XplatUI.MouseHoverTime; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int MouseSpeed { + get { return XplatUI.MouseSpeed; } + } + + public static int MouseWheelScrollDelta { + get { + return XplatUI.MouseWheelScrollDelta; + } + } + + //[EditorBrowsable (EditorBrowsableState.Never)] + public static bool MousePresent { + get { + return true; + } + } + + public static bool MouseWheelPresent { + get { + return XplatUI.MouseWheelPresent; + } + } + + public static int MouseWheelScrollLines { + get { + return ThemeEngine.Current.MouseWheelScrollLines; + } + } + + public static bool NativeMouseWheelSupport { + get { + return MouseWheelPresent; + } + } + + public static bool Network { + get { + return true; + } + } + + public static bool PenWindows { + get { + return false; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static LeftRightAlignment PopupMenuAlignment { + get { return XplatUI.PopupMenuAlignment; } + } + + [MonoTODO ("Only implemented for Win32.")] + public static PowerStatus PowerStatus { + get { return XplatUI.PowerStatus; } + } + + public static Size PrimaryMonitorMaximizedWindowSize { + get { + var workingArea = Screen.PrimaryScreen.WorkingArea; + return new Size (workingArea.Width, workingArea.Height); + } + } + + public static Size PrimaryMonitorSize { + get { + var bounds = Screen.PrimaryScreen.Bounds; + return new Size (bounds.Width, bounds.Height); + } + } + + public static bool RightAlignedMenus { + get { + return ThemeEngine.Current.RightAlignedMenus; + } + } + + public static ScreenOrientation ScreenOrientation { + get { return ScreenOrientation.Angle0; } + } + + public static bool Secure { + get { + return true; + } + } + + public static bool ShowSounds { + get { + return false; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int SizingBorderWidth { + get { return XplatUI.SizingBorderWidth; } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static Size SmallCaptionButtonSize { + get { return XplatUI.SmallCaptionButtonSize; } + } + + public static Size SmallIconSize { + get { + return XplatUI.SmallIconSize; + } + } + + public static bool TerminalServerSession { + get { + return false; + } + } + + public static Size ToolWindowCaptionButtonSize { + get { + return ThemeEngine.Current.ToolWindowCaptionButtonSize; + } + } + + public static int ToolWindowCaptionHeight { + get { + return ThemeEngine.Current.ToolWindowCaptionHeight; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static bool UIEffectsEnabled { + get { return XplatUI.UIEffectsEnabled; } + } + + public static string UserDomainName { + get { + return Environment.UserDomainName; + } + } + + public static bool UserInteractive { + get { + return Environment.UserInteractive; + } + } + + public static string UserName { + get { + return Environment.UserName; + } + } + + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int VerticalFocusThickness { get { return ThemeEngine.Current.VerticalFocusThickness; } } + [MonoInternalNote ("Determine if we need an X11 implementation or if defaults are good.")] + public static int VerticalResizeBorderThickness { get { return XplatUI.VerticalResizeBorderThickness; } } + + public static int VerticalScrollBarArrowHeight { + get { + return ThemeEngine.Current.VerticalScrollBarArrowHeight; + } + } + + public static int VerticalScrollBarThumbHeight { + get { + return ThemeEngine.Current.VerticalScrollBarThumbHeight; + } + } + + public static int VerticalScrollBarWidth { + get { + return ThemeEngine.Current.VerticalScrollBarWidth; + } + } + + public static Rectangle VirtualScreen { + get { + var rect = new Rectangle (); + foreach (var screen in Screen.AllScreens) + rect = Rectangle.Union (rect, screen.Bounds); + return rect; + } + } + + public static Rectangle WorkingArea { + get { + return Screen.PrimaryScreen.WorkingArea; + } + } + } +} |
