Browse Source

Add love.window.isMaximized

Alex Szpakowski 8 years ago
parent
commit
ec7565176e

+ 2 - 0
src/modules/window/Window.h

@@ -143,6 +143,8 @@ public:
 	virtual void minimize() = 0;
 	virtual void maximize() = 0;
 
+	virtual bool isMaximized() const = 0;
+
 	// default no-op implementation
 	virtual void swapBuffers();
 

+ 5 - 0
src/modules/window/sdl/Window.cpp

@@ -866,6 +866,11 @@ void Window::maximize()
 	}
 }
 
+bool Window::isMaximized() const
+{
+	return window != nullptr && (SDL_GetWindowFlags(window) & SDL_WINDOW_MAXIMIZED);
+}
+
 void Window::swapBuffers()
 {
 	SDL_GL_SwapWindow(window);

+ 2 - 0
src/modules/window/sdl/Window.h

@@ -76,6 +76,8 @@ public:
 	void minimize();
 	void maximize();
 
+	bool isMaximized() const;
+
 	void swapBuffers();
 
 	bool hasFocus() const;

+ 7 - 0
src/modules/window/wrap_Window.cpp

@@ -432,6 +432,12 @@ int w_maximize(lua_State *)
 	return 0;
 }
 
+int w_isMaximized(lua_State *L)
+{
+	luax_pushboolean(L, instance()->isMaximized());
+	return 0;
+}
+
 int w_showMessageBox(lua_State *L)
 {
 	Window::MessageBoxData data = {};
@@ -533,6 +539,7 @@ static const luaL_Reg functions[] =
 	{ "fromPixels", w_fromPixels },
 	{ "minimize", w_minimize },
 	{ "maximize", w_maximize },
+	{ "isMaximized", w_isMaximized },
 	{ "showMessageBox", w_showMessageBox },
 	{ "requestAttention", w_requestAttention },
 	{ 0, 0 }