Added the ability to query the safe area (#404)
This commit is contained in:
parent
493e9c63af
commit
eacd88bf3f
3 changed files with 35 additions and 0 deletions
|
@ -11,12 +11,18 @@ from os.path import basename
|
|||
|
||||
cdef extern from "ios_wrapper.h":
|
||||
ctypedef void (*ios_send_email_cb)(char *, void *)
|
||||
ctypedef struct padding:
|
||||
float top
|
||||
float bottom
|
||||
float right
|
||||
float left
|
||||
int ios_send_email(char *subject, char *text, char *mimetype, char
|
||||
*filename, char *filename_alias, ios_send_email_cb cb, void *userdata)
|
||||
void ios_open_url(char *url)
|
||||
void load_url_webview(char *url, int width, int height)
|
||||
float ios_uiscreen_get_scale()
|
||||
int ios_uiscreen_get_dpi()
|
||||
padding ios_get_safe_area()
|
||||
|
||||
cdef void _send_email_done(char *status, void *data):
|
||||
cdef object callback = <object>data
|
||||
|
@ -206,6 +212,10 @@ def get_dpi():
|
|||
'''
|
||||
return ios_uiscreen_get_dpi()
|
||||
|
||||
def get_safe_area():
|
||||
'''Return the safe area bounds
|
||||
'''
|
||||
return ios_get_safe_area()
|
||||
|
||||
from pyobjus import autoclass, selector, protocol
|
||||
from pyobjus.protocols import protocols
|
||||
|
|
|
@ -127,3 +127,20 @@ int ios_uiscreen_get_dpi() {
|
|||
}
|
||||
return dpi;
|
||||
}
|
||||
|
||||
padding ios_get_safe_area() {
|
||||
padding safearea;
|
||||
if (@available(iOS 11.0, *)){
|
||||
UIWindow *window = UIApplication.sharedApplication.windows[0];
|
||||
safearea.top = window.safeAreaInsets.top;
|
||||
safearea.bottom = window.safeAreaInsets.bottom;
|
||||
safearea.left = window.safeAreaInsets.left;
|
||||
safearea.right = window.safeAreaInsets.right;
|
||||
} else {
|
||||
safearea.top = 0;
|
||||
safearea.bottom = 0;
|
||||
safearea.left = 0;
|
||||
safearea.right = 0;
|
||||
}
|
||||
return safearea;
|
||||
}
|
|
@ -1,8 +1,16 @@
|
|||
#ifndef __IOS_WRAPPER
|
||||
#define __IOS_WRAPPER
|
||||
|
||||
typedef struct {
|
||||
float top;
|
||||
float bottom;
|
||||
float right;
|
||||
float left;
|
||||
} padding;
|
||||
|
||||
float ios_uiscreen_get_scale(void);
|
||||
int ios_uiscreen_get_dpi(void);
|
||||
padding ios_get_safe_area(void);
|
||||
void ios_open_url(char *url);
|
||||
void load_url_webview(char *url, int width, int height);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue