mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-06 01:45:36 +00:00
app,io/pointer: [API] remove CursorNameOp and rename CursorName -> Cursor
It's now possible to directly user pointer.Cursor to add to the ops. pointer.CursorText.Add(gtx.Ops) This is an API change. Use pointer.Cursor directly instead of CursorNameOp. Signed-off-by: Egon Elbre <egonelbre@gmail.com>
This commit is contained in:
@@ -163,7 +163,7 @@ type driver interface {
|
||||
// Configure the window.
|
||||
Configure([]Option)
|
||||
// SetCursor updates the current cursor to name.
|
||||
SetCursor(name pointer.CursorName)
|
||||
SetCursor(cursor pointer.Cursor)
|
||||
// Raise the window at the top.
|
||||
Raise()
|
||||
// Close the window.
|
||||
|
||||
+4
-4
@@ -1338,9 +1338,9 @@ func (w *window) Perform(system.Action) {}
|
||||
|
||||
func (w *window) Raise() {}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
runInJVM(javaVM(), func(env *C.JNIEnv) {
|
||||
setCursor(env, w.view, name)
|
||||
setCursor(env, w.view, cursor)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -1379,8 +1379,8 @@ var androidCursor = [...]uint16{
|
||||
pointer.CursorNorthWestSouthEastResize: 1017, // TYPE_TOP_LEFT_DIAGONAL_DOUBLE_ARROW
|
||||
}
|
||||
|
||||
func setCursor(env *C.JNIEnv, view C.jobject, name pointer.CursorName) {
|
||||
curID := androidCursor[name]
|
||||
func setCursor(env *C.JNIEnv, view C.jobject, cursor pointer.Cursor) {
|
||||
curID := androidCursor[cursor]
|
||||
callVoidMethod(env, view, gioView.setCursor, jvalue(curID))
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -243,7 +243,7 @@ var macosCursorID = [...]byte{
|
||||
|
||||
// windowSetCursor updates the cursor from the current one to a new one
|
||||
// and returns the new one.
|
||||
func windowSetCursor(from, to pointer.CursorName) pointer.CursorName {
|
||||
func windowSetCursor(from, to pointer.Cursor) pointer.Cursor {
|
||||
if from == to {
|
||||
return to
|
||||
}
|
||||
|
||||
+3
-3
@@ -97,7 +97,7 @@ type window struct {
|
||||
displayLink *displayLink
|
||||
|
||||
visible bool
|
||||
cursor pointer.CursorName
|
||||
cursor pointer.Cursor
|
||||
config Config
|
||||
|
||||
pointerMap []C.CFTypeRef
|
||||
@@ -301,8 +301,8 @@ func (w *window) SetAnimating(anim bool) {
|
||||
}
|
||||
}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
w.cursor = windowSetCursor(w.cursor, name)
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
w.cursor = windowSetCursor(w.cursor, cursor)
|
||||
}
|
||||
|
||||
func (w *window) onKeyCommand(name string) {
|
||||
|
||||
+2
-2
@@ -574,9 +574,9 @@ var webCursor = [...]string{
|
||||
pointer.CursorNorthWestSouthEastResize: "nwse-resize",
|
||||
}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
style := w.cnv.Get("style")
|
||||
style.Set("cursor", webCursor[name])
|
||||
style.Set("cursor", webCursor[cursor])
|
||||
}
|
||||
|
||||
func (w *window) Wakeup() {
|
||||
|
||||
+3
-3
@@ -205,7 +205,7 @@ type window struct {
|
||||
w *callbacks
|
||||
stage system.Stage
|
||||
displayLink *displayLink
|
||||
cursor pointer.CursorName
|
||||
cursor pointer.Cursor
|
||||
|
||||
scale float32
|
||||
config Config
|
||||
@@ -368,8 +368,8 @@ func (w *window) setTitle(prev, cnf Config) {
|
||||
|
||||
func (w *window) Perform(system.Action) {}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
w.cursor = windowSetCursor(w.cursor, name)
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
w.cursor = windowSetCursor(w.cursor, cursor)
|
||||
}
|
||||
|
||||
func (w *window) EditorStateChanged(old, new editorState) {
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ func newWindow(window *callbacks, options []Option) error {
|
||||
return errors.New("app: no window driver available")
|
||||
}
|
||||
|
||||
// xCursor contains mapping from pointer.CursorName to XCursor.
|
||||
// xCursor contains mapping from pointer.Cursor to XCursor.
|
||||
var xCursor = [...]string{
|
||||
pointer.CursorDefault: "left_ptr",
|
||||
pointer.CursorNone: "",
|
||||
|
||||
+3
-3
@@ -1086,17 +1086,17 @@ func (w *window) Raise() {
|
||||
// https://wayland.app/protocols/xdg-shell#xdg_toplevel:request:set_minimized
|
||||
}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
ptr := w.disp.seat.pointer
|
||||
if ptr == nil {
|
||||
return
|
||||
}
|
||||
if name == pointer.CursorNone {
|
||||
if cursor == pointer.CursorNone {
|
||||
C.wl_pointer_set_cursor(ptr, w.serial, nil, 0, 0)
|
||||
return
|
||||
}
|
||||
|
||||
xcursor := xCursor[name]
|
||||
xcursor := xCursor[cursor]
|
||||
cname := C.CString(xcursor)
|
||||
defer C.free(unsafe.Pointer(cname))
|
||||
c := C.wl_cursor_theme_get_cursor(w.cursor.theme, cname)
|
||||
|
||||
+6
-6
@@ -704,8 +704,8 @@ func (w *window) writeClipboard(s string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (w *window) SetCursor(name pointer.CursorName) {
|
||||
c, err := loadCursor(name)
|
||||
func (w *window) SetCursor(cursor pointer.Cursor) {
|
||||
c, err := loadCursor(cursor)
|
||||
if err != nil {
|
||||
c = resources.cursor
|
||||
}
|
||||
@@ -715,7 +715,7 @@ func (w *window) SetCursor(name pointer.CursorName) {
|
||||
}
|
||||
}
|
||||
|
||||
// windowsCursor contains mapping from CursorName to an IDC.
|
||||
// windowsCursor contains mapping from pointer.Cursor to an IDC.
|
||||
var windowsCursor = [...]uint16{
|
||||
pointer.CursorDefault: windows.IDC_ARROW,
|
||||
pointer.CursorNone: 0,
|
||||
@@ -745,14 +745,14 @@ var windowsCursor = [...]uint16{
|
||||
pointer.CursorNorthWestSouthEastResize: windows.IDC_SIZENWSE,
|
||||
}
|
||||
|
||||
func loadCursor(name pointer.CursorName) (syscall.Handle, error) {
|
||||
switch name {
|
||||
func loadCursor(cursor pointer.Cursor) (syscall.Handle, error) {
|
||||
switch cursor {
|
||||
case pointer.CursorDefault:
|
||||
return resources.cursor, nil
|
||||
case pointer.CursorNone:
|
||||
return 0, nil
|
||||
default:
|
||||
return windows.LoadCursor(windowsCursor[name])
|
||||
return windows.LoadCursor(windowsCursor[cursor])
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+8
-8
@@ -107,7 +107,7 @@ type x11Window struct {
|
||||
clipboard struct {
|
||||
content []byte
|
||||
}
|
||||
cursor pointer.CursorName
|
||||
cursor pointer.Cursor
|
||||
config Config
|
||||
|
||||
wakeups chan struct{}
|
||||
@@ -295,22 +295,22 @@ func (w *x11Window) Raise() {
|
||||
C.XMapRaised(w.display(), w.xw)
|
||||
}
|
||||
|
||||
func (w *x11Window) SetCursor(name pointer.CursorName) {
|
||||
if name == pointer.CursorNone {
|
||||
w.cursor = name
|
||||
func (w *x11Window) SetCursor(cursor pointer.Cursor) {
|
||||
if cursor == pointer.CursorNone {
|
||||
w.cursor = cursor
|
||||
C.XFixesHideCursor(w.x, w.xw)
|
||||
return
|
||||
}
|
||||
|
||||
xcursor := xCursor[name]
|
||||
xcursor := xCursor[cursor]
|
||||
cname := C.CString(xcursor)
|
||||
defer C.free(unsafe.Pointer(cname))
|
||||
c := C.XcursorLibraryLoadCursor(w.x, cname)
|
||||
if c == 0 {
|
||||
name = pointer.CursorDefault
|
||||
cursor = pointer.CursorDefault
|
||||
}
|
||||
w.cursor = name
|
||||
// If c if null (i.e. name was not found),
|
||||
w.cursor = cursor
|
||||
// If c if null (i.e. cursor was not found),
|
||||
// XDefineCursor will use the default cursor.
|
||||
C.XDefineCursor(w.x, w.xw, c)
|
||||
}
|
||||
|
||||
+1
-8
@@ -69,7 +69,7 @@ type Window struct {
|
||||
delayedDraw *time.Timer
|
||||
|
||||
queue queue
|
||||
cursor pointer.CursorName
|
||||
cursor pointer.Cursor
|
||||
decorations struct {
|
||||
op.Ops
|
||||
Config
|
||||
@@ -334,13 +334,6 @@ func (w *Window) WriteClipboard(s string) {
|
||||
})
|
||||
}
|
||||
|
||||
// SetCursorName changes the current window cursor to name.
|
||||
func (w *Window) SetCursorName(name pointer.CursorName) {
|
||||
w.driverDefer(func(d driver) {
|
||||
d.SetCursor(name)
|
||||
})
|
||||
}
|
||||
|
||||
// Run f in the same thread as the native window event loop, and wait for f to
|
||||
// return or the window to close. Run is guaranteed not to deadlock if it is
|
||||
// invoked during the handling of a ViewEvent, system.FrameEvent,
|
||||
|
||||
Reference in New Issue
Block a user