new methods is_maximize and toggle_maximize
parent
c9ee8af20c
commit
3d3a3521df
|
@ -50,12 +50,24 @@ static int toggle_fullscreen(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
static int isFullScreen(lua_State* L) {
|
||||
bool isFullScreen = defos_isFullScreen();
|
||||
static int is_fullscreen(lua_State* L) {
|
||||
bool isFullScreen = defos_is_fullscreen();
|
||||
lua_pushboolean(L, isFullScreen);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int toggle_maximize(lua_State* L) {
|
||||
defos_toggle_maximize();
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int is_maximize(lua_State* L) {
|
||||
bool isMaximize = defos_is_maximize();
|
||||
lua_pushboolean(L, isMaximize);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
static const luaL_reg Module_methods[] =
|
||||
{
|
||||
{"disable_maximize_button", disable_maximize_button},
|
||||
|
@ -66,7 +78,9 @@ static const luaL_reg Module_methods[] =
|
|||
{"set_window_size", set_window_size},
|
||||
{"set_window_title", set_window_title},
|
||||
{"toggle_fullscreen", toggle_fullscreen},
|
||||
{"is_fullscreen", isFullScreen},
|
||||
{"is_fullscreen", is_fullscreen},
|
||||
{"toggle_maximize", toggle_maximize},
|
||||
{"is_maximize", is_maximize},
|
||||
{0, 0}
|
||||
};
|
||||
|
||||
|
|
|
@ -7,6 +7,9 @@
|
|||
|
||||
NSWindow* window;
|
||||
|
||||
bool is_maximize = false;
|
||||
CGRect previous_state;
|
||||
|
||||
void init_window(){
|
||||
if (window == NULL) {
|
||||
window = dmGraphics::GetNativeOSXNSWindow();
|
||||
|
@ -37,17 +40,40 @@ void defos_enable_mouse_cursor() {
|
|||
}
|
||||
|
||||
void defos_toggle_fullscreen() {
|
||||
if (is_maximize){
|
||||
defos_toggle_maximize();
|
||||
}
|
||||
init_window();
|
||||
[window setCollectionBehavior:NSWindowCollectionBehaviorFullScreenPrimary];
|
||||
[window toggleFullScreen:window];
|
||||
}
|
||||
|
||||
bool defos_isFullScreen() {
|
||||
void defos_toggle_maximize() {
|
||||
if (defos_is_fullscreen()){
|
||||
defos_toggle_fullscreen();
|
||||
}
|
||||
if (is_maximize){
|
||||
is_maximize = false;
|
||||
[window setFrame:previous_state display:YES];
|
||||
}
|
||||
else
|
||||
{
|
||||
is_maximize = true;
|
||||
previous_state = [window frame];
|
||||
[window setFrame:[[NSScreen mainScreen] visibleFrame] display:YES];
|
||||
}
|
||||
}
|
||||
|
||||
bool defos_is_fullscreen() {
|
||||
init_window();
|
||||
BOOL fullscreen = (([window styleMask] & NSFullScreenWindowMask) == NSFullScreenWindowMask);
|
||||
return fullscreen == YES;
|
||||
}
|
||||
|
||||
bool defos_is_maximize() {
|
||||
return is_maximize;
|
||||
}
|
||||
|
||||
void defos_set_window_size(lua_State* L) {
|
||||
init_window();
|
||||
int x = luaL_checkint(L, 1);
|
||||
|
|
|
@ -8,10 +8,12 @@ extern void defos_disable_window_resize();
|
|||
extern void defos_disable_mouse_cursor();
|
||||
extern void defos_enable_mouse_cursor();
|
||||
extern void defos_toggle_fullscreen();
|
||||
extern void defos_toggle_maximize();
|
||||
|
||||
extern void defos_set_window_size(lua_State* L);
|
||||
extern void defos_set_window_title(lua_State* L);
|
||||
|
||||
extern bool defos_isFullScreen();
|
||||
extern bool defos_is_fullscreen();
|
||||
extern bool defos_is_maximize();
|
||||
|
||||
void init_window();
|
||||
|
|
|
@ -8,6 +8,8 @@ function init(self)
|
|||
defos.enable_mouse_cursor()
|
||||
defos.set_window_size(-1,-1,800,600)
|
||||
defos.set_window_title("I set this title using Defos")
|
||||
defos.toggle_maximize()
|
||||
print(defos.is_maximize())
|
||||
defos.toggle_fullscreen()
|
||||
print(defos.is_fullscreen())
|
||||
|
||||
|
|
Loading…
Reference in New Issue