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) {}