Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/xwt.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs')
-rw-r--r--Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs27
1 files changed, 22 insertions, 5 deletions
diff --git a/Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs b/Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs
index 3033dea5..39f28bf9 100644
--- a/Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs
+++ b/Xwt.WPF/Xwt.WPFBackend/WidgetBackend.cs
@@ -439,7 +439,7 @@ namespace Xwt.WPFBackend
Widget.Cursor = Cursors.Arrow;
else if (cursor == CursorType.Crosshair)
Widget.Cursor = Cursors.Cross;
- else if (cursor == CursorType.Hand)
+ else if (cursor == CursorType.Hand || cursor == CursorType.Hand2)
Widget.Cursor = Cursors.Hand;
else if (cursor == CursorType.IBeam)
Widget.Cursor = Cursors.IBeam;
@@ -455,6 +455,10 @@ namespace Xwt.WPFBackend
Widget.Cursor = Cursors.SizeWE;
else if (cursor == CursorType.ResizeLeftRight)
widget.Cursor = Cursors.SizeWE;
+ else if (cursor == CursorType.ResizeNE || cursor == CursorType.ResizeSW)
+ widget.Cursor = Cursors.SizeNESW;
+ else if (cursor == CursorType.ResizeNW || cursor == CursorType.ResizeSE)
+ widget.Cursor = Cursors.SizeNWSE;
else if (cursor == CursorType.Move)
widget.Cursor = Cursors.SizeAll;
else if (cursor == CursorType.Wait)
@@ -463,6 +467,8 @@ namespace Xwt.WPFBackend
widget.Cursor = Cursors.Help;
else if (cursor == CursorType.Invisible)
widget.Cursor = Cursors.None;
+ else if (cursor == CursorType.NotAllowed)
+ widget.Cursor = Cursors.No;
else
Widget.Cursor = Cursors.Arrow;
}
@@ -645,6 +651,11 @@ namespace Xwt.WPFBackend
e.Handled = true;
}
+ internal void WidgetMouseDownForDragHandler(object o, MouseButtonEventArgs e)
+ {
+ SetupDragRect(e);
+ }
+
void WidgetMouseUpHandler (object o, MouseButtonEventArgs e)
{
var args = e.ToXwtButtonArgs (Widget);
@@ -684,6 +695,11 @@ namespace Xwt.WPFBackend
return Widget.GetParentWindow ();
}
+ private SW.Window GetParentOrMainWindow ()
+ {
+ return Widget.GetParentOrMainWindow ();
+ }
+
public void DragStart (DragStartData data)
{
if (data.Data == null)
@@ -692,7 +708,7 @@ namespace Xwt.WPFBackend
DataObject dataObj = data.Data.ToDataObject();
if (data.ImageBackend != null) {
- AdornedWindow = GetParentWindow ();
+ AdornedWindow = GetParentOrMainWindow ();
AdornedWindow.AllowDrop = true;
var e = (UIElement)AdornedWindow.Content;
@@ -742,6 +758,7 @@ namespace Xwt.WPFBackend
DragDropInfo.TargetTypes = types == null ? new TransferDataType [0] : types;
Widget.MouseUp += WidgetMouseUpForDragHandler;
Widget.MouseMove += WidgetMouseMoveForDragHandler;
+ Widget.MouseDown += WidgetMouseDownForDragHandler;
}
private void SetupDragRect (MouseEventArgs e)
@@ -752,7 +769,7 @@ namespace Xwt.WPFBackend
DragDropInfo.DragRect = new Rect (loc.X - width / 2, loc.Y - height / 2, width, height);
}
- void WidgetMouseUpForDragHandler (object o, EventArgs e)
+ internal void WidgetMouseUpForDragHandler (object o, EventArgs e)
{
DragDropInfo.DragRect = Rect.Empty;
}
@@ -765,7 +782,7 @@ namespace Xwt.WPFBackend
return;
if (DragDropInfo.DragRect.IsEmpty)
- SetupDragRect (e);
+ return;
if (DragDropInfo.DragRect.Contains (e.GetPosition (Widget)))
return;
@@ -858,7 +875,7 @@ namespace Xwt.WPFBackend
void WidgetDragOverHandler (object sender, System.Windows.DragEventArgs e)
{
if (Adorner != null) {
- var w = GetParentWindow ();
+ var w = GetParentOrMainWindow ();
var v = (UIElement)w.Content;
if (w != AdornedWindow) {