From f85d68d58047726587a85b0ba513b88a71fbb0b2 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Sun, 13 Dec 2015 02:23:16 +0300 Subject: [PATCH] Added some sizing cursors --- src/Gtk/Perspex.Gtk/CursorFactory.cs | 32 ++++++++++------- src/Perspex.Input/Cursors.cs | 10 +++++- src/Windows/Perspex.Win32/CursorFactory.cs | 40 +++++++++++++--------- 3 files changed, 53 insertions(+), 29 deletions(-) diff --git a/src/Gtk/Perspex.Gtk/CursorFactory.cs b/src/Gtk/Perspex.Gtk/CursorFactory.cs index 80e6b7b1e6..6a250024bf 100644 --- a/src/Gtk/Perspex.Gtk/CursorFactory.cs +++ b/src/Gtk/Perspex.Gtk/CursorFactory.cs @@ -21,20 +21,28 @@ namespace Perspex.Gtk private static readonly Dictionary CursorTypeMapping = new Dictionary { - { StandardCursorType.AppStarting, CursorType.Watch }, - { StandardCursorType.Arrow, CursorType.LeftPtr }, - { StandardCursorType.Cross, CursorType.Cross }, - { StandardCursorType.Hand, CursorType.Hand1 }, - { StandardCursorType.Ibeam, CursorType.Xterm }, - { StandardCursorType.No, Gtk.Stock.Cancel}, - { StandardCursorType.SizeAll, CursorType.Sizing }, + {StandardCursorType.AppStarting, CursorType.Watch}, + {StandardCursorType.Arrow, CursorType.LeftPtr}, + {StandardCursorType.Cross, CursorType.Cross}, + {StandardCursorType.Hand, CursorType.Hand1}, + {StandardCursorType.Ibeam, CursorType.Xterm}, + {StandardCursorType.No, Gtk.Stock.Cancel}, + {StandardCursorType.SizeAll, CursorType.Sizing}, //{ StandardCursorType.SizeNorthEastSouthWest, 32643 }, - { StandardCursorType.SizeNorthSouth, CursorType.SbVDoubleArrow}, + {StandardCursorType.SizeNorthSouth, CursorType.SbVDoubleArrow}, //{ StandardCursorType.SizeNorthWestSouthEast, 32642 }, - { StandardCursorType.SizeWestEast, CursorType.SbHDoubleArrow }, - { StandardCursorType.UpArrow, CursorType.BasedArrowUp }, - { StandardCursorType.Wait, CursorType.Watch }, - { StandardCursorType.Help, Gtk.Stock.Help } + {StandardCursorType.SizeWestEast, CursorType.SbHDoubleArrow}, + {StandardCursorType.UpArrow, CursorType.BasedArrowUp}, + {StandardCursorType.Wait, CursorType.Watch}, + {StandardCursorType.Help, Gtk.Stock.Help}, + {StandardCursorType.TopSide, CursorType.TopSide}, + {StandardCursorType.BottomSize, CursorType.BottomSide}, + {StandardCursorType.LeftSide, CursorType.LeftSide}, + {StandardCursorType.RightSide, CursorType.RightSide}, + {StandardCursorType.TopLeftCorner, CursorType.TopLeftCorner}, + {StandardCursorType.TopRightCorner, CursorType.TopRightCorner}, + {StandardCursorType.BottomLeftCorner, CursorType.BottomLeftCorner}, + {StandardCursorType.BottomRightCorner, CursorType.BottomRightCorner} }; private static readonly Dictionary Cache = diff --git a/src/Perspex.Input/Cursors.cs b/src/Perspex.Input/Cursors.cs index 889cc68774..34f97fe0a6 100644 --- a/src/Perspex.Input/Cursors.cs +++ b/src/Perspex.Input/Cursors.cs @@ -30,7 +30,15 @@ namespace Perspex.Input No, Hand, AppStarting, - Help + Help, + TopSide, + BottomSize, + LeftSide, + RightSide, + TopLeftCorner, + TopRightCorner, + BottomLeftCorner, + BottomRightCorner // Not available in GTK directly, see http://www.pixelbeat.org/programming/x_cursors/ // We might enable them later, preferably, by loading pixmax direclty from theme with fallback image diff --git a/src/Windows/Perspex.Win32/CursorFactory.cs b/src/Windows/Perspex.Win32/CursorFactory.cs index ad2defac35..fd117f6814 100644 --- a/src/Windows/Perspex.Win32/CursorFactory.cs +++ b/src/Windows/Perspex.Win32/CursorFactory.cs @@ -23,22 +23,30 @@ namespace Perspex.Win32 private static readonly Dictionary CursorTypeMapping = new Dictionary { - { StandardCursorType.AppStarting, 32650 }, - { StandardCursorType.Arrow, 32512 }, - { StandardCursorType.Cross, 32515 }, - { StandardCursorType.Hand, 32649 }, - { StandardCursorType.Help, 32651 }, - { StandardCursorType.Ibeam, 32513 }, - { StandardCursorType.No, 32648 }, - { StandardCursorType.SizeAll, 32646 }, - - // { StandardCursorType.SizeNorthEastSouthWest, 32643 }, - { StandardCursorType.SizeNorthSouth, 32645 }, - - // { StandardCursorType.SizeNorthWestSouthEast, 32642 }, - { StandardCursorType.SizeWestEast, 32644 }, - { StandardCursorType.UpArrow, 32516 }, - { StandardCursorType.Wait, 32514 } + {StandardCursorType.AppStarting, 32650}, + {StandardCursorType.Arrow, 32512}, + {StandardCursorType.Cross, 32515}, + {StandardCursorType.Hand, 32649}, + {StandardCursorType.Help, 32651}, + {StandardCursorType.Ibeam, 32513}, + {StandardCursorType.No, 32648}, + {StandardCursorType.SizeAll, 32646}, + {StandardCursorType.UpArrow, 32516}, + {StandardCursorType.SizeNorthSouth, 32645}, + {StandardCursorType.SizeWestEast, 32644}, + {StandardCursorType.Wait, 32514}, + //Same as SizeNorthSouth + {StandardCursorType.TopSide, 32645}, + {StandardCursorType.BottomSize, 32645}, + //Same as SizeWestEast + {StandardCursorType.LeftSide, 32644}, + {StandardCursorType.RightSide, 32644}, + //Using SizeNorthWestSouthEast + {StandardCursorType.TopLeftCorner, 32642}, + {StandardCursorType.BottomRightCorner, 32642}, + //Using SizeNorthEastSouthWest + {StandardCursorType.TopRightCorner, 32643}, + {StandardCursorType.BottomLeftCorner, 32643}, }; private static readonly Dictionary Cache =