github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/android/window.go (about) 1 //go:build android 2 3 package android 4 5 import ( 6 "unsafe" 7 8 "github.com/rajveermalviya/gamen/cursors" 9 "github.com/rajveermalviya/gamen/dpi" 10 "github.com/rajveermalviya/gamen/events" 11 ) 12 13 /* 14 15 #include <game-activity/native_app_glue/android_native_app_glue.h> 16 17 */ 18 import "C" 19 20 type Window struct{} 21 22 func NewWindow() (*Window, error) { return &Window{}, nil } 23 24 func (*Window) ANativeWindow() unsafe.Pointer { 25 if app := androidApp.Load(); app != nil { 26 return unsafe.Pointer(app.window) 27 } 28 return nil 29 } 30 31 func (*Window) InnerSize() dpi.PhysicalSize[uint32] { 32 if app := androidApp.Load(); app != nil && app.window != nil { 33 return dpi.PhysicalSize[uint32]{ 34 Width: uint32(C.ANativeWindow_getWidth(app.window)), 35 Height: uint32(C.ANativeWindow_getHeight(app.window)), 36 } 37 } 38 39 return dpi.PhysicalSize[uint32]{} 40 } 41 42 func (*Window) EnableIme() { 43 if app := androidApp.Load(); app != nil && app.activity != nil { 44 C.GameActivity_showSoftInput(app.activity, 0) 45 } 46 } 47 48 func (*Window) DisableIme() { 49 if app := androidApp.Load(); app != nil && app.activity != nil { 50 C.GameActivity_hideSoftInput(app.activity, 0) 51 } 52 } 53 54 func (*Window) SetTitle(string) {} 55 func (*Window) Destroy() {} 56 func (*Window) SetInnerSize(dpi.Size[uint32]) {} 57 func (*Window) SetMinInnerSize(dpi.Size[uint32]) {} 58 func (*Window) SetMaxInnerSize(dpi.Size[uint32]) {} 59 func (*Window) Maximized() bool { return false } 60 func (*Window) SetMinimized() {} 61 func (*Window) SetMaximized(bool) {} 62 func (*Window) SetCursorIcon(cursors.Icon) {} 63 func (*Window) SetCursorVisible(bool) {} 64 func (*Window) SetFullscreen(bool) {} 65 func (*Window) Fullscreen() bool { return false } 66 func (*Window) DragWindow() {} 67 func (*Window) SetDecorations(bool) {} 68 func (*Window) Decorated() bool { return false } 69 70 func (w *Window) SetSurfaceCreatedCallback(cb events.WindowSurfaceCreatedCallback) { 71 windowSurfaceCreatedCb.Store(&cb) 72 } 73 func (w *Window) SetSurfaceDestroyedCallback(cb events.WindowSurfaceDestroyedCallback) { 74 windowSurfaceDestroyedCb.Store(&cb) 75 } 76 func (w *Window) SetResizedCallback(cb events.WindowResizedCallback) { 77 windowResizedCallback.Store(&cb) 78 } 79 func (w *Window) SetFocusedCallback(cb events.WindowFocusedCallback) { 80 windowFocusedCb.Store(&cb) 81 } 82 func (w *Window) SetUnfocusedCallback(cb events.WindowUnfocusedCallback) { 83 windowUnfocusedCb.Store(&cb) 84 } 85 func (w *Window) SetTouchInputCallback(cb events.WindowTouchInputCallback) { 86 windowTouchInputCb.Store(&cb) 87 } 88 func (w *Window) SetKeyboardInputCallback(cb events.WindowKeyboardInputCallback) { 89 windowKeyboardInputCb.Store(&cb) 90 } 91 func (w *Window) SetReceivedCharacterCallback(cb events.WindowReceivedCharacterCallback) { 92 windowReceivedCharacterCallback.Store(&cb) 93 } 94 95 func (w *Window) SetCloseRequestedCallback(cb events.WindowCloseRequestedCallback) {} 96 func (w *Window) SetCursorEnteredCallback(cb events.WindowCursorEnteredCallback) {} 97 func (w *Window) SetCursorLeftCallback(cb events.WindowCursorLeftCallback) {} 98 func (w *Window) SetCursorMovedCallback(cb events.WindowCursorMovedCallback) {} 99 func (w *Window) SetMouseScrollCallback(cb events.WindowMouseScrollCallback) {} 100 func (w *Window) SetMouseInputCallback(cb events.WindowMouseInputCallback) {} 101 func (w *Window) SetModifiersChangedCallback(cb events.WindowModifiersChangedCallback) {}