mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-07 02:15:34 +00:00
io/pointer: added the grab cursor
Signed-off-by: pierre <pierre.curto@gmail.com>
This commit is contained in:
@@ -198,6 +198,8 @@ func windowSetCursor(from, to pointer.CursorName) pointer.CursorName {
|
|||||||
curID = 5
|
curID = 5
|
||||||
case pointer.CursorRowResize:
|
case pointer.CursorRowResize:
|
||||||
curID = 6
|
curID = 6
|
||||||
|
case pointer.CursorGrab:
|
||||||
|
curID = 7
|
||||||
case pointer.CursorNone:
|
case pointer.CursorNone:
|
||||||
runOnMain(func() {
|
runOnMain(func() {
|
||||||
C.gio_hideCursor()
|
C.gio_hideCursor()
|
||||||
|
|||||||
@@ -119,6 +119,9 @@ void gio_setCursor(NSUInteger curID) {
|
|||||||
case 6:
|
case 6:
|
||||||
[NSCursor.resizeUpDownCursor set];
|
[NSCursor.resizeUpDownCursor set];
|
||||||
break;
|
break;
|
||||||
|
case 7:
|
||||||
|
[NSCursor.openHandCursor set];
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
[NSCursor.arrowCursor set];
|
[NSCursor.arrowCursor set];
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -930,6 +930,8 @@ func (w *window) SetCursor(name pointer.CursorName) {
|
|||||||
name = "top_side"
|
name = "top_side"
|
||||||
case pointer.CursorColResize:
|
case pointer.CursorColResize:
|
||||||
name = "left_side"
|
name = "left_side"
|
||||||
|
case pointer.CursorGrab:
|
||||||
|
name = "hand1"
|
||||||
}
|
}
|
||||||
cname := C.CString(string(name))
|
cname := C.CString(string(name))
|
||||||
defer C.free(unsafe.Pointer(cname))
|
defer C.free(unsafe.Pointer(cname))
|
||||||
|
|||||||
@@ -606,6 +606,8 @@ func loadCursor(name pointer.CursorName) (syscall.Handle, error) {
|
|||||||
curID = windows.IDC_SIZEWE
|
curID = windows.IDC_SIZEWE
|
||||||
case pointer.CursorRowResize:
|
case pointer.CursorRowResize:
|
||||||
curID = windows.IDC_SIZENS
|
curID = windows.IDC_SIZENS
|
||||||
|
case pointer.CursorGrab:
|
||||||
|
curID = windows.IDC_SIZEALL
|
||||||
case pointer.CursorNone:
|
case pointer.CursorNone:
|
||||||
return 0, nil
|
return 0, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,10 +118,13 @@ func (w *x11Window) WriteClipboard(s string) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (w *x11Window) SetCursor(name pointer.CursorName) {
|
func (w *x11Window) SetCursor(name pointer.CursorName) {
|
||||||
if name == pointer.CursorNone {
|
switch name {
|
||||||
|
case pointer.CursorNone:
|
||||||
w.cursor = name
|
w.cursor = name
|
||||||
C.XFixesHideCursor(w.x, w.xw)
|
C.XFixesHideCursor(w.x, w.xw)
|
||||||
return
|
return
|
||||||
|
case pointer.CursorGrab:
|
||||||
|
name = "hand1"
|
||||||
}
|
}
|
||||||
if w.cursor == pointer.CursorNone {
|
if w.cursor == pointer.CursorNone {
|
||||||
C.XFixesShowCursor(w.x, w.xw)
|
C.XFixesShowCursor(w.x, w.xw)
|
||||||
|
|||||||
@@ -65,12 +65,13 @@ const (
|
|||||||
|
|
||||||
HTCLIENT = 1
|
HTCLIENT = 1
|
||||||
|
|
||||||
IDC_ARROW = 32512
|
IDC_ARROW = 32512
|
||||||
IDC_IBEAM = 32513
|
IDC_IBEAM = 32513
|
||||||
IDC_HAND = 32649
|
IDC_HAND = 32649
|
||||||
IDC_CROSS = 32515
|
IDC_CROSS = 32515
|
||||||
IDC_SIZENS = 32645
|
IDC_SIZENS = 32645
|
||||||
IDC_SIZEWE = 32644
|
IDC_SIZEWE = 32644
|
||||||
|
IDC_SIZEALL = 32646
|
||||||
|
|
||||||
INFINITE = 0xFFFFFFFF
|
INFINITE = 0xFFFFFFFF
|
||||||
|
|
||||||
|
|||||||
@@ -103,6 +103,8 @@ const (
|
|||||||
CursorColResize CursorName = "col-resize"
|
CursorColResize CursorName = "col-resize"
|
||||||
// CursorRowResize is the cursor for horizontal resize.
|
// CursorRowResize is the cursor for horizontal resize.
|
||||||
CursorRowResize CursorName = "row-resize"
|
CursorRowResize CursorName = "row-resize"
|
||||||
|
// CursorGrab is the cursor for moving object in any direction.
|
||||||
|
CursorGrab CursorName = "grab"
|
||||||
// CursorNone hides the cursor. To show it again, use any other cursor.
|
// CursorNone hides the cursor. To show it again, use any other cursor.
|
||||||
CursorNone CursorName = "none"
|
CursorNone CursorName = "none"
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user