Add application.removeWindow, window.close, and fixes for using an empty config

This commit is contained in:
Joshua Granick
2015-01-29 15:34:18 -08:00
parent d1159824bd
commit 05ce36188b
14 changed files with 255 additions and 59 deletions

View File

@@ -461,6 +461,16 @@ namespace lime {
}
value lime_window_close (value window) {
Window* targetWindow = (Window*)(intptr_t)val_float (window);
targetWindow->Close ();
delete targetWindow;
return alloc_null ();
}
value lime_window_create (value application, value width, value height, value flags, value title) {
Window* window = CreateWindow ((Application*)(intptr_t)val_float (application), val_int (width), val_int (height), val_int (flags), val_string (title));
@@ -537,6 +547,7 @@ namespace lime {
DEFINE_PRIM (lime_text_from_string, 4);
DEFINE_PRIM (lime_touch_event_manager_register, 2);
DEFINE_PRIM (lime_update_event_manager_register, 2);
DEFINE_PRIM (lime_window_close, 1);
DEFINE_PRIM (lime_window_create, 5);
DEFINE_PRIM (lime_window_event_manager_register, 2);
DEFINE_PRIM (lime_window_move, 3);

View File

@@ -70,6 +70,17 @@ namespace lime {
}
void SDLWindow::Close () {
if (sdlWindow) {
SDL_DestroyWindow (sdlWindow);
}
}
void SDLWindow::Move (int x, int y) {
SDL_SetWindowPosition (sdlWindow, x, y);

View File

@@ -17,6 +17,7 @@ namespace lime {
SDLWindow (Application* application, int width, int height, int flags, const char* title);
~SDLWindow ();
virtual void Close ();
virtual void Move (int x, int y);
virtual void Resize (int width, int height);
virtual void SetIcon (ImageBuffer *imageBuffer);