diff options
author | Lluis Sanchez <lluis@xamarin.com> | 2013-10-03 11:57:33 +0400 |
---|---|---|
committer | Lluis Sanchez <lluis@xamarin.com> | 2013-10-03 11:59:04 +0400 |
commit | 2731d26aadf684e690c63389007c615f7eb70843 (patch) | |
tree | a742dc8cbbe15bb82ba0dd3a7eac240c58f581e5 /Xwt.Gtk | |
parent | 349382e4160990bf1dc50270bb60df6880ce764c (diff) |
Added Keyboard class
Also refactored conversion methods in GTK backend
Diffstat (limited to 'Xwt.Gtk')
-rw-r--r-- | Xwt.Gtk/Xwt.Gtk.csproj | 2 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/Conversion.cs | 122 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/FrameBackend.cs | 2 | ||||
-rwxr-xr-x | Xwt.Gtk/Xwt.GtkBackend/GtkEngine.cs | 1 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/GtkInterop.cs | 6 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/GtkKeyboardHandler.cs | 15 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/HeaderBox.cs | 4 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/LabelBackend.cs | 4 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs | 2 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/ScrollViewBackend.cs | 8 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/SelectColorDialogBackend.cs | 4 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/TableViewBackend.cs | 8 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs | 8 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/Util.cs | 100 | ||||
-rw-r--r-- | Xwt.Gtk/Xwt.GtkBackend/WidgetBackend.cs | 14 |
15 files changed, 167 insertions, 133 deletions
diff --git a/Xwt.Gtk/Xwt.Gtk.csproj b/Xwt.Gtk/Xwt.Gtk.csproj index f1488f7f..50ac8955 100644 --- a/Xwt.Gtk/Xwt.Gtk.csproj +++ b/Xwt.Gtk/Xwt.Gtk.csproj @@ -126,6 +126,8 @@ <Compile Include="Xwt.GtkBackend.CellViews\CustomCellRendererToggle.cs" /> <Compile Include="Xwt.GtkBackend.CellViews\CustomCellRendererImage.cs" /> <Compile Include="Xwt.GtkBackend\ScrollbarBackend.cs" /> + <Compile Include="Xwt.GtkBackend\GtkKeyboardHandler.cs" /> + <Compile Include="Xwt.GtkBackend\Conversion.cs" /> </ItemGroup> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <ItemGroup> diff --git a/Xwt.Gtk/Xwt.GtkBackend/Conversion.cs b/Xwt.Gtk/Xwt.GtkBackend/Conversion.cs new file mode 100644 index 00000000..61eec111 --- /dev/null +++ b/Xwt.Gtk/Xwt.GtkBackend/Conversion.cs @@ -0,0 +1,122 @@ +using System; +using Xwt.Drawing; + +namespace Xwt.GtkBackend +{ + public static class Conversion + { + public static Gtk.IconSize ToGtkValue (Xwt.IconSize size) + { + switch (size) { + case IconSize.Small: + return Gtk.IconSize.Menu; + case IconSize.Medium: + return Gtk.IconSize.Button; + case IconSize.Large: + return Gtk.IconSize.Dialog; + } + return Gtk.IconSize.Dialog; + } + + public static Gdk.Color ToGtkValue (this Xwt.Drawing.Color color) + { + return new Gdk.Color ((byte)(color.Red * 255), (byte)(color.Green * 255), (byte)(color.Blue * 255)); + } + + public static Color ToXwtValue (this Gdk.Color color) + { + return new Color ((double)color.Red / (double)ushort.MaxValue, (double)color.Green / (double)ushort.MaxValue, (double)color.Blue / (double)ushort.MaxValue); + } + + public static Pango.EllipsizeMode ToGtkValue (this EllipsizeMode value) + { + switch (value) { + case Xwt.EllipsizeMode.None: return Pango.EllipsizeMode.None; + case Xwt.EllipsizeMode.Start: return Pango.EllipsizeMode.Start; + case Xwt.EllipsizeMode.Middle: return Pango.EllipsizeMode.Middle; + case Xwt.EllipsizeMode.End: return Pango.EllipsizeMode.End; + } + throw new NotSupportedException (); + } + + public static EllipsizeMode ToXwtValue (this Pango.EllipsizeMode value) + { + switch (value) { + case Pango.EllipsizeMode.None: return Xwt.EllipsizeMode.None; + case Pango.EllipsizeMode.Start: return Xwt.EllipsizeMode.Start; + case Pango.EllipsizeMode.Middle: return Xwt.EllipsizeMode.Middle; + case Pango.EllipsizeMode.End: return Xwt.EllipsizeMode.End; + } + throw new NotSupportedException (); + } + + public static ScrollPolicy ToXwtValue (this Gtk.PolicyType p) + { + switch (p) { + case Gtk.PolicyType.Always: + return ScrollPolicy.Always; + case Gtk.PolicyType.Automatic: + return ScrollPolicy.Automatic; + case Gtk.PolicyType.Never: + return ScrollPolicy.Never; + } + throw new InvalidOperationException ("Invalid policy value:" + p); + } + + public static Gtk.PolicyType ToGtkValue (this ScrollPolicy p) + { + switch (p) { + case ScrollPolicy.Always: + return Gtk.PolicyType.Always; + case ScrollPolicy.Automatic: + return Gtk.PolicyType.Automatic; + case ScrollPolicy.Never: + return Gtk.PolicyType.Never; + } + throw new InvalidOperationException ("Invalid policy value:" + p); + } + + public static ScrollDirection ToXwtValue(this Gdk.ScrollDirection d) + { + switch(d) { + case Gdk.ScrollDirection.Up: + return Xwt.ScrollDirection.Up; + case Gdk.ScrollDirection.Down: + return Xwt.ScrollDirection.Down; + case Gdk.ScrollDirection.Left: + return Xwt.ScrollDirection.Left; + case Gdk.ScrollDirection.Right: + return Xwt.ScrollDirection.Right; + } + throw new InvalidOperationException("Invalid mouse scroll direction value: " + d); + } + + public static Gdk.ScrollDirection ToGtkValue(this ScrollDirection d) + { + switch (d) { + case ScrollDirection.Up: + return Gdk.ScrollDirection.Up; + case ScrollDirection.Down: + return Gdk.ScrollDirection.Down; + case ScrollDirection.Left: + return Gdk.ScrollDirection.Left; + case ScrollDirection.Right: + return Gdk.ScrollDirection.Right; + } + throw new InvalidOperationException("Invalid mouse scroll direction value: " + d); + } + + public static ModifierKeys ToXwtValue (this Gdk.ModifierType s) + { + ModifierKeys m = ModifierKeys.None; + if ((s & Gdk.ModifierType.ShiftMask) != 0) + m |= ModifierKeys.Shift; + if ((s & Gdk.ModifierType.ControlMask) != 0) + m |= ModifierKeys.Control; + if ((s & Gdk.ModifierType.Mod1Mask) != 0) + m |= ModifierKeys.Alt; + return m; + } + } +} + diff --git a/Xwt.Gtk/Xwt.GtkBackend/FrameBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/FrameBackend.cs index 1eb70127..18b948cd 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/FrameBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/FrameBackend.cs @@ -163,7 +163,7 @@ namespace Xwt.GtkBackend public Color BorderColor { get { if (borderColor == null) - return Util.ToXwtColor (Widget.Style.Dark (Gtk.StateType.Normal)); + return Widget.Style.Dark (Gtk.StateType.Normal).ToXwtValue (); else return borderColor.Value; } diff --git a/Xwt.Gtk/Xwt.GtkBackend/GtkEngine.cs b/Xwt.Gtk/Xwt.GtkBackend/GtkEngine.cs index 7576ca1c..bad937bf 100755 --- a/Xwt.Gtk/Xwt.GtkBackend/GtkEngine.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/GtkEngine.cs @@ -102,6 +102,7 @@ namespace Xwt.GtkBackend RegisterBackend<IRadioButtonBackend, RadioButtonBackend> (); RegisterBackend<IScrollbarBackend, ScrollbarBackend> (); RegisterBackend<IPasswordEntryBackend, PasswordEntryBackend> (); + RegisterBackend<KeyboardHandler, GtkKeyboardHandler> (); } public override void Dispose () diff --git a/Xwt.Gtk/Xwt.GtkBackend/GtkInterop.cs b/Xwt.Gtk/Xwt.GtkBackend/GtkInterop.cs index 50ef452d..efb651ea 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/GtkInterop.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/GtkInterop.cs @@ -69,11 +69,11 @@ namespace Xwt.GtkBackend if (attr is BackgroundTextAttribute) { var xa = (BackgroundTextAttribute)attr; - AddBackgroundAttribute (xa.Color.ToGdkColor (), start, end); + AddBackgroundAttribute (xa.Color.ToGtkValue (), start, end); } else if (attr is ColorTextAttribute) { var xa = (ColorTextAttribute)attr; - AddForegroundAttribute (xa.Color.ToGdkColor (), start, end); + AddForegroundAttribute (xa.Color.ToGtkValue (), start, end); } else if (attr is FontWeightTextAttribute) { var xa = (FontWeightTextAttribute)attr; @@ -97,7 +97,7 @@ namespace Xwt.GtkBackend } else if (attr is LinkTextAttribute) { AddUnderlineAttribute (Pango.Underline.Single, start, end); - AddForegroundAttribute (Colors.Blue.ToGdkColor (), start, end); + AddForegroundAttribute (Colors.Blue.ToGtkValue (), start, end); } } diff --git a/Xwt.Gtk/Xwt.GtkBackend/GtkKeyboardHandler.cs b/Xwt.Gtk/Xwt.GtkBackend/GtkKeyboardHandler.cs new file mode 100644 index 00000000..67b5c95a --- /dev/null +++ b/Xwt.Gtk/Xwt.GtkBackend/GtkKeyboardHandler.cs @@ -0,0 +1,15 @@ +using System; +using Xwt.Backends; + +namespace Xwt.GtkBackend +{ + public class GtkKeyboardHandler: KeyboardHandler + { + public override ModifierKeys CurrentModifiers { + get { + return GtkWorkarounds.GetCurrentKeyModifiers ().ToXwtValue (); + } + } + } +} + diff --git a/Xwt.Gtk/Xwt.GtkBackend/HeaderBox.cs b/Xwt.Gtk/Xwt.GtkBackend/HeaderBox.cs index 1a39d5ad..a4d75ab7 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/HeaderBox.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/HeaderBox.cs @@ -129,7 +129,7 @@ namespace Xwt.GtkBackend } if (GradientBackround) { - Color gcol = Util.ToXwtColor (Style.Background (Gtk.StateType.Normal)); + Color gcol = Style.Background (Gtk.StateType.Normal).ToXwtValue (); cr.NewPath (); cr.MoveTo (rect.X, rect.Y); @@ -148,7 +148,7 @@ namespace Xwt.GtkBackend } } - cr.SetSourceColor (color.HasValue ? color.Value.ToCairoColor () : Style.Dark (Gtk.StateType.Normal).ToXwtColor ().ToCairoColor ()); + cr.SetSourceColor (color.HasValue ? color.Value.ToCairoColor () : Style.Dark (Gtk.StateType.Normal).ToXwtValue ().ToCairoColor ()); cr.Rectangle (rect.X, rect.Y, rect.Width, topMargin); cr.Rectangle (rect.X, rect.Y + rect.Height - bottomMargin, rect.Width, bottomMargin); cr.Rectangle (rect.X, rect.Y, leftMargin, rect.Height); diff --git a/Xwt.Gtk/Xwt.GtkBackend/LabelBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/LabelBackend.cs index efb5a757..f05d8309 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/LabelBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/LabelBackend.cs @@ -222,10 +222,10 @@ namespace Xwt.GtkBackend public Xwt.Drawing.Color TextColor { get { - return textColor.HasValue ? textColor.Value : Util.ToXwtColor (Widget.Style.Foreground (Gtk.StateType.Normal)); + return textColor.HasValue ? textColor.Value : Widget.Style.Foreground (Gtk.StateType.Normal).ToXwtValue (); } set { - var color = value.ToGdkColor (); + var color = value.ToGtkValue (); var attr = new Pango.AttrForeground (color.Red, color.Green, color.Blue); var attrs = new Pango.AttrList (); attrs.Insert (attr); diff --git a/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs index 5642a7b7..fb1cc8ee 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/PasswordEntryBackend.cs @@ -59,7 +59,7 @@ namespace Xwt.GtkBackend } set { base.BackgroundColor = value; - Widget.ModifyBase (Gtk.StateType.Normal, value.ToGdkColor ()); + Widget.ModifyBase (Gtk.StateType.Normal, value.ToGtkValue ()); } } diff --git a/Xwt.Gtk/Xwt.GtkBackend/ScrollViewBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/ScrollViewBackend.cs index d9ceb079..726b2d13 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/ScrollViewBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/ScrollViewBackend.cs @@ -150,19 +150,19 @@ namespace Xwt.GtkBackend public ScrollPolicy VerticalScrollPolicy { get { - return Util.ConvertScrollPolicy (Widget.VscrollbarPolicy); + return Widget.VscrollbarPolicy.ToXwtValue (); } set { - Widget.VscrollbarPolicy = Util.ConvertScrollPolicy (value); + Widget.VscrollbarPolicy = value.ToGtkValue (); } } public ScrollPolicy HorizontalScrollPolicy { get { - return Util.ConvertScrollPolicy (Widget.HscrollbarPolicy); + return Widget.HscrollbarPolicy.ToXwtValue (); } set { - Widget.HscrollbarPolicy = Util.ConvertScrollPolicy (value); + Widget.HscrollbarPolicy = value.ToGtkValue (); } } } diff --git a/Xwt.Gtk/Xwt.GtkBackend/SelectColorDialogBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/SelectColorDialogBackend.cs index 5fcee294..3875bb3a 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/SelectColorDialogBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/SelectColorDialogBackend.cs @@ -45,7 +45,7 @@ namespace Xwt.GtkBackend dlg.Title = title; dlg.ColorSelection.HasOpacityControl = supportsAlpha; - dlg.ColorSelection.CurrentColor = color.ToGdkColor (); + dlg.ColorSelection.CurrentColor = color.ToGtkValue (); if (supportsAlpha) dlg.ColorSelection.CurrentAlpha = (ushort) (((double)ushort.MaxValue) * color.Alpha); @@ -53,7 +53,7 @@ namespace Xwt.GtkBackend int result = MessageService.RunCustomDialog (dlg, p != null ? p.Window : null); if (result == (int) Gtk.ResponseType.Ok) { - color = dlg.ColorSelection.CurrentColor.ToXwtColor (); + color = dlg.ColorSelection.CurrentColor.ToXwtValue (); if (supportsAlpha) color = color.WithAlpha ((double)dlg.ColorSelection.CurrentAlpha / (double)ushort.MaxValue); return true; diff --git a/Xwt.Gtk/Xwt.GtkBackend/TableViewBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/TableViewBackend.cs index bde3b89a..d03ca585 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/TableViewBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/TableViewBackend.cs @@ -63,19 +63,19 @@ namespace Xwt.GtkBackend public ScrollPolicy VerticalScrollPolicy { get { - return Util.ConvertScrollPolicy (ScrolledWindow.VscrollbarPolicy); + return ScrolledWindow.VscrollbarPolicy.ToXwtValue (); } set { - ScrolledWindow.VscrollbarPolicy = Util.ConvertScrollPolicy (value); + ScrolledWindow.VscrollbarPolicy = value.ToGtkValue (); } } public ScrollPolicy HorizontalScrollPolicy { get { - return Util.ConvertScrollPolicy (ScrolledWindow.HscrollbarPolicy); + return ScrolledWindow.HscrollbarPolicy.ToXwtValue (); } set { - ScrolledWindow.HscrollbarPolicy = Util.ConvertScrollPolicy (value); + ScrolledWindow.HscrollbarPolicy = value.ToGtkValue (); } } diff --git a/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs index f7ac887d..26d1550f 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/TextEntryBackend.cs @@ -91,7 +91,7 @@ namespace Xwt.GtkBackend } set { base.BackgroundColor = value; - Widget.ModifyBase (Gtk.StateType.Normal, value.ToGdkColor ()); + Widget.ModifyBase (Gtk.StateType.Normal, value.ToGtkValue ()); } } @@ -128,9 +128,9 @@ namespace Xwt.GtkBackend layout.GetPixelSize (out width, out height); using (var gc = new Gdk.GC (args.Event.Window)) { gc.Copy (entry.Style.TextGC (Gtk.StateType.Normal)); - Color color_a = entry.Style.Base (Gtk.StateType.Normal).ToXwtColor (); - Color color_b = entry.Style.Text (Gtk.StateType.Normal).ToXwtColor (); - gc.RgbFgColor = color_b.BlendWith (color_a, 0.5).ToGdkColor (); + Color color_a = entry.Style.Base (Gtk.StateType.Normal).ToXwtValue (); + Color color_b = entry.Style.Text (Gtk.StateType.Normal).ToXwtValue (); + gc.RgbFgColor = color_b.BlendWith (color_a, 0.5).ToGtkValue (); args.Event.Window.DrawLayout (gc, 2, (wh - height) / 2 + 1, layout); } diff --git a/Xwt.Gtk/Xwt.GtkBackend/Util.cs b/Xwt.Gtk/Xwt.GtkBackend/Util.cs index 412e995c..059e7ace 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/Util.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/Util.cs @@ -200,107 +200,7 @@ namespace Xwt.GtkBackend throw new NotSupportedException ("Unknown image: " + id); return new GtkImage (res); } - - public static Gtk.IconSize ToGtkSize (Xwt.IconSize size) - { - switch (size) { - case IconSize.Small: - return Gtk.IconSize.Menu; - case IconSize.Medium: - return Gtk.IconSize.Button; - case IconSize.Large: - return Gtk.IconSize.Dialog; - } - return Gtk.IconSize.Dialog; - } - - public static Gdk.Color ToGdkColor (this Xwt.Drawing.Color color) - { - return new Gdk.Color ((byte)(color.Red * 255), (byte)(color.Green * 255), (byte)(color.Blue * 255)); - } - - public static Color ToXwtColor (this Gdk.Color color) - { - return new Color ((double)color.Red / (double)ushort.MaxValue, (double)color.Green / (double)ushort.MaxValue, (double)color.Blue / (double)ushort.MaxValue); - } - - public static Pango.EllipsizeMode ToGtkValue (this EllipsizeMode value) - { - switch (value) { - case Xwt.EllipsizeMode.None: return Pango.EllipsizeMode.None; - case Xwt.EllipsizeMode.Start: return Pango.EllipsizeMode.Start; - case Xwt.EllipsizeMode.Middle: return Pango.EllipsizeMode.Middle; - case Xwt.EllipsizeMode.End: return Pango.EllipsizeMode.End; - } - throw new NotSupportedException (); - } - - public static EllipsizeMode ToXwtValue (this Pango.EllipsizeMode value) - { - switch (value) { - case Pango.EllipsizeMode.None: return Xwt.EllipsizeMode.None; - case Pango.EllipsizeMode.Start: return Xwt.EllipsizeMode.Start; - case Pango.EllipsizeMode.Middle: return Xwt.EllipsizeMode.Middle; - case Pango.EllipsizeMode.End: return Xwt.EllipsizeMode.End; - } - throw new NotSupportedException (); - } - - public static ScrollPolicy ConvertScrollPolicy (Gtk.PolicyType p) - { - switch (p) { - case Gtk.PolicyType.Always: - return ScrollPolicy.Always; - case Gtk.PolicyType.Automatic: - return ScrollPolicy.Automatic; - case Gtk.PolicyType.Never: - return ScrollPolicy.Never; - } - throw new InvalidOperationException ("Invalid policy value:" + p); - } - - public static Gtk.PolicyType ConvertScrollPolicy (ScrollPolicy p) - { - switch (p) { - case ScrollPolicy.Always: - return Gtk.PolicyType.Always; - case ScrollPolicy.Automatic: - return Gtk.PolicyType.Automatic; - case ScrollPolicy.Never: - return Gtk.PolicyType.Never; - } - throw new InvalidOperationException ("Invalid policy value:" + p); - } - - public static ScrollDirection ConvertScrollDirection(Gdk.ScrollDirection d) - { - switch(d) { - case Gdk.ScrollDirection.Up: - return Xwt.ScrollDirection.Up; - case Gdk.ScrollDirection.Down: - return Xwt.ScrollDirection.Down; - case Gdk.ScrollDirection.Left: - return Xwt.ScrollDirection.Left; - case Gdk.ScrollDirection.Right: - return Xwt.ScrollDirection.Right; - } - throw new InvalidOperationException("Invalid mouse scroll direction value: " + d); - } - public static Gdk.ScrollDirection ConvertScrollDirection(ScrollDirection d) - { - switch (d) { - case ScrollDirection.Up: - return Gdk.ScrollDirection.Up; - case ScrollDirection.Down: - return Gdk.ScrollDirection.Down; - case ScrollDirection.Left: - return Gdk.ScrollDirection.Left; - case ScrollDirection.Right: - return Gdk.ScrollDirection.Right; - } - throw new InvalidOperationException("Invalid mouse scroll direction value: " + d); - } public static Gtk.IconSize GetBestSizeFit (double size, Gtk.IconSize[] availablesizes = null) { diff --git a/Xwt.Gtk/Xwt.GtkBackend/WidgetBackend.cs b/Xwt.Gtk/Xwt.GtkBackend/WidgetBackend.cs index 5770bb15..92557e5a 100644 --- a/Xwt.Gtk/Xwt.GtkBackend/WidgetBackend.cs +++ b/Xwt.Gtk/Xwt.GtkBackend/WidgetBackend.cs @@ -354,12 +354,12 @@ namespace Xwt.GtkBackend public virtual Color BackgroundColor { get { - return customBackgroundColor.HasValue ? customBackgroundColor.Value : Util.ToXwtColor (Widget.Style.Background (Gtk.StateType.Normal)); + return customBackgroundColor.HasValue ? customBackgroundColor.Value : Widget.Style.Background (Gtk.StateType.Normal).ToXwtValue (); } set { customBackgroundColor = value; AllocEventBox (visibleWindow: true); - EventsRootWidget.ModifyBg (Gtk.StateType.Normal, Util.ToGdkColor (value)); + EventsRootWidget.ModifyBg (Gtk.StateType.Normal, value.ToGtkValue ()); } } @@ -695,13 +695,7 @@ namespace Xwt.GtkBackend void HandleKeyPressEvent (object o, Gtk.KeyPressEventArgs args) { Key k = (Key)args.Event.KeyValue; - ModifierKeys m = ModifierKeys.None; - if ((args.Event.State & Gdk.ModifierType.ShiftMask) != 0) - m |= ModifierKeys.Shift; - if ((args.Event.State & Gdk.ModifierType.ControlMask) != 0) - m |= ModifierKeys.Control; - if ((args.Event.State & Gdk.ModifierType.Mod1Mask) != 0) - m |= ModifierKeys.Alt; + ModifierKeys m = args.Event.State.ToXwtValue (); KeyEventArgs kargs = new KeyEventArgs (k, m, false, (long)args.Event.Time); ApplicationContext.InvokeUserCode (delegate { EventSink.OnKeyPressed (kargs); @@ -714,7 +708,7 @@ namespace Xwt.GtkBackend void HandleScrollEvent(object o, Gtk.ScrollEventArgs args) { var sc = ConvertToScreenCoordinates (new Point (0, 0)); - var direction = Util.ConvertScrollDirection(args.Event.Direction); + var direction = args.Event.Direction.ToXwtValue (); var a = new MouseScrolledEventArgs ((long) args.Event.Time, args.Event.XRoot - sc.X, args.Event.YRoot - sc.Y, direction); ApplicationContext.InvokeUserCode (delegate { |