diff -r 4b36933dce1d -r 23c50be687a9 cocoaTouch/SDLOverrides/SDL_uikitwindow.m --- a/cocoaTouch/SDLOverrides/SDL_uikitwindow.m Sat May 15 09:21:25 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 1997-2009 Sam Lantinga - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Sam Lantinga, mods for Hedgewars by Vittorio Giovara - slouken@libsdl.org, vittorio.giovara@gmail.com - */ -#include "SDL_config.h" - -#include "SDL_video.h" -#include "SDL_mouse.h" -#include "../SDL_sysvideo.h" -#include "../SDL_pixels_c.h" -#include "../../events/SDL_events_c.h" - -#include "SDL_uikitvideo.h" -#include "SDL_uikitevents.h" -#include "SDL_uikitwindow.h" -#import "SDL_uikitappdelegate.h" - -#import "SDL_uikitopenglview.h" -#import "SDL_renderer_sw.h" - -#include -#include - -static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created) { - SDL_WindowData *data; - - /* Allocate the window data */ - data = (SDL_WindowData *)SDL_malloc(sizeof(*data)); - if (!data) { - SDL_OutOfMemory(); - return -1; - } - data->window = window; - data->uiwindow = uiwindow; - data->view = nil; - - /* Fill in the SDL window with the window data */ - { - window->x = 0; - window->y = 0; - window->w = (int)uiwindow.frame.size.width; - window->h = (int)uiwindow.frame.size.height; - } - - window->driverdata = data; - - window->flags &= ~SDL_WINDOW_RESIZABLE; /* window is NEVER resizeable */ - window->flags |= SDL_WINDOW_OPENGL; /* window is always OpenGL */ - window->flags |= SDL_WINDOW_FULLSCREEN; /* window is always fullscreen */ - window->flags |= SDL_WINDOW_SHOWN; /* only one window on iPod touch, always shown */ - window->flags |= SDL_WINDOW_INPUT_FOCUS; /* always has input focus */ - - /* SDL_WINDOW_BORDERLESS controls whether status bar is hidden */ - if (window->flags & SDL_WINDOW_BORDERLESS) { - [UIApplication sharedApplication].statusBarHidden = YES; - } - else { - [UIApplication sharedApplication].statusBarHidden = NO; - } - - return 0; - -} - -int UIKit_CreateWindow(_THIS, SDL_Window *window) { - /* We currently only handle single window applications on iPhone - if (nil != [SDLUIKitDelegate sharedAppDelegate].window) { - SDL_SetError("Window already exists, no multi-window support."); - return -1; - }*/ - - // ignore the size user requested, and make a fullscreen window - //UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - - // since we handle the window with a NIB, we don't need the initialization above - if (SetupWindowData(_this, window, [SDLUIKitDelegate sharedAppDelegate].uiwindow, SDL_TRUE) < 0) { - SDL_SetError("SetupWindowData() failed"); - //[uiwindow release]; - return -1; - } - - // This saves the main window in the app delegate so event callbacks can do stuff on the window. - // This assumes a single window application design and needs to be fixed for multiple windows. - [SDLUIKitDelegate sharedAppDelegate].window = window; - - //[SDLUIKitDelegate sharedAppDelegate].uiwindow = uiwindow; - //[uiwindow release]; /* release the window (the app delegate has retained it) */ - - return 1; - -} - -void UIKit_DestroyWindow(_THIS, SDL_Window * window) { - /* don't worry, the delegate will automatically release the window */ - - SDL_WindowData *data = (SDL_WindowData *)window->driverdata; - if (data) { - SDL_free( window->driverdata ); - } - - /* this will also destroy the window */ - [SDLUIKitDelegate sharedAppDelegate].window = NULL; - //[SDLUIKitDelegate sharedAppDelegate].uiwindow = nil; - -} - -/* vi: set ts=4 sw=4 expandtab: */