forked from Mirrors/openclonk
Mac: Add Cocoa port
parent
0876e89f3a
commit
a22d5ee35c
|
@ -58,6 +58,8 @@ planet/cmake_install.cmake
|
||||||
planet/clonk.sln
|
planet/clonk.sln
|
||||||
planet/clonk.ilk
|
planet/clonk.ilk
|
||||||
planet/CMakeCache.txt
|
planet/CMakeCache.txt
|
||||||
|
build
|
||||||
|
planet/clonk.app
|
||||||
Release
|
Release
|
||||||
RelWithDebInfo
|
RelWithDebInfo
|
||||||
MinSizeRel
|
MinSizeRel
|
||||||
|
@ -100,9 +102,14 @@ xcode/build
|
||||||
.anjuta*
|
.anjuta*
|
||||||
|
|
||||||
# Binaries
|
# Binaries
|
||||||
planet/Clonk.app
|
*.app
|
||||||
*.exe
|
*.exe
|
||||||
|
|
||||||
# Development files explicitely excluded
|
# Development files explicitely excluded
|
||||||
planet/nohg*
|
planet/nohg*
|
||||||
|
|
||||||
|
# Eclipse project file
|
||||||
|
planet/.project
|
||||||
|
|
||||||
|
# MacOSX saved searches
|
||||||
|
*.savedSearch
|
||||||
|
|
141
CMakeLists.txt
141
CMakeLists.txt
|
@ -16,11 +16,8 @@ separate_arguments(OC_CXX_FLAGS_DEBUG)
|
||||||
############################################################################
|
############################################################################
|
||||||
option(PROJECT_FOLDERS "Put source files into subfolders in project file" ON)
|
option(PROJECT_FOLDERS "Put source files into subfolders in project file" ON)
|
||||||
option(USE_GL "Enable OpenGL support" ON)
|
option(USE_GL "Enable OpenGL support" ON)
|
||||||
if(APPLE)
|
SET(INITIAL_USE_SDL_MAINLOOP_VALUE OFF)
|
||||||
SET(INITIAL_USE_SDL_MAINLOOP_VALUE ON)
|
SET(INITIAL_USE_OPEN_AL OFF)
|
||||||
else()
|
|
||||||
SET(INITIAL_USE_SDL_MAINLOOP_VALUE OFF)
|
|
||||||
endif()
|
|
||||||
option(USE_SDL_MAINLOOP "Use SDL to create windows etc." ${INITIAL_USE_SDL_MAINLOOP_VALUE})
|
option(USE_SDL_MAINLOOP "Use SDL to create windows etc." ${INITIAL_USE_SDL_MAINLOOP_VALUE})
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
option(USE_DIRECTX "Enable DirectX support" ON)
|
option(USE_DIRECTX "Enable DirectX support" ON)
|
||||||
|
@ -38,7 +35,7 @@ else()
|
||||||
SET(USE_DIRECTX OFF)
|
SET(USE_DIRECTX OFF)
|
||||||
SET(HAVE_FMOD OFF)
|
SET(HAVE_FMOD OFF)
|
||||||
endif()
|
endif()
|
||||||
if(UNIX AND NOT USE_SDL_MAINLOOP)
|
if(UNIX AND NOT USE_SDL_MAINLOOP AND NOT APPLE)
|
||||||
option(USE_X11 "Use X11 to create windows etc." ON)
|
option(USE_X11 "Use X11 to create windows etc." ON)
|
||||||
option(USE_GTK "Use GTK for the developer mode" ON)
|
option(USE_GTK "Use GTK for the developer mode" ON)
|
||||||
option(USE_GTK3 "Use GTK3 instead of GTK2" OFF)
|
option(USE_GTK3 "Use GTK3 instead of GTK2" OFF)
|
||||||
|
@ -47,10 +44,17 @@ else()
|
||||||
SET(USE_GTK OFF)
|
SET(USE_GTK OFF)
|
||||||
SET(USE_GTK3 OFF)
|
SET(USE_GTK3 OFF)
|
||||||
endif()
|
endif()
|
||||||
|
if(APPLE)
|
||||||
|
option(USE_COCOA "Use Apple Cocoa for the developer mode and the windows." ON)
|
||||||
|
SET(INITIAL_USE_OPEN_AL ON)
|
||||||
|
else()
|
||||||
|
option(USE_COCOA OFF)
|
||||||
|
endif()
|
||||||
if(NOT USE_GL AND NOT USE_DIRECTX)
|
if(NOT USE_GL AND NOT USE_DIRECTX)
|
||||||
message(STATUS "No graphics display enabled; building dedicated server")
|
message(STATUS "No graphics display enabled; building dedicated server")
|
||||||
SET(USE_CONSOLE ON CACHE INTERNAL "Build dedicated server")
|
SET(USE_CONSOLE ON CACHE INTERNAL "Build dedicated server")
|
||||||
endif()
|
endif()
|
||||||
|
option(USE_OPEN_AL "Use OpenAL to play sounds" ${INITIAL_USE_OPEN_AL})
|
||||||
option(BUILD_TO_PLANET "Put build files to ./planet/" OFF)
|
option(BUILD_TO_PLANET "Put build files to ./planet/" OFF)
|
||||||
option(DEBUGREC "Debug records" OFF)
|
option(DEBUGREC "Debug records" OFF)
|
||||||
option(OC_BUILD_MULTIPROCESSOR "Use all processor cores to build" OFF)
|
option(OC_BUILD_MULTIPROCESSOR "Use all processor cores to build" OFF)
|
||||||
|
@ -144,7 +148,6 @@ set(OC_CLONK_SOURCES
|
||||||
src/C4Include.h
|
src/C4Include.h
|
||||||
src/C4Prototypes.h
|
src/C4Prototypes.h
|
||||||
src/C4Version.h
|
src/C4Version.h
|
||||||
src/C4WinMain.cpp
|
|
||||||
src/config/C4Config.cpp
|
src/config/C4Config.cpp
|
||||||
src/config/C4Config.h
|
src/config/C4Config.h
|
||||||
src/config/C4ConfigShareware.cpp
|
src/config/C4ConfigShareware.cpp
|
||||||
|
@ -559,12 +562,32 @@ elseif(USE_X11)
|
||||||
src/platform/StdXPrivate.h
|
src/platform/StdXPrivate.h
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(NOT APPLE)
|
||||||
|
list(APPEND OC_SYSTEM_SOURCES src/C4WinMain.cpp)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(APPLE)
|
if(APPLE)
|
||||||
list(APPEND OC_SYSTEM_SOURCES
|
list(APPEND OC_SYSTEM_SOURCES
|
||||||
src/platform/MacUtility.mm
|
|
||||||
src/platform/StdMacApp.mm
|
src/platform/StdMacApp.mm
|
||||||
src/platform/C4FileMonitorMac.mm
|
src/platform/C4FileMonitorMac.mm
|
||||||
|
src/platform/StdMacWindow.mm
|
||||||
|
src/platform/ClonkAppDelegate.h
|
||||||
|
src/platform/ClonkAppDelegate.mm
|
||||||
)
|
)
|
||||||
|
if(USE_COCOA)
|
||||||
|
list(APPEND OC_SYSTEM_SOURCES
|
||||||
|
src/platform/ConsoleWindowController.h
|
||||||
|
src/platform/ConsoleWindowController.mm
|
||||||
|
src/platform/ClonkWindowController.h
|
||||||
|
src/platform/ClonkWindowController.mm
|
||||||
|
src/platform/ClonkOpenGLView.h
|
||||||
|
src/platform/ClonkOpenGLView.mm
|
||||||
|
src/platform/CocoaKeycodeMap.h
|
||||||
|
src/editor/C4ConsoleCocoa.mm
|
||||||
|
src/platform/ClonkMainMenuActions.mm
|
||||||
|
)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(USE_GTK)
|
if(USE_GTK)
|
||||||
list(APPEND OC_CLONK_SOURCES
|
list(APPEND OC_CLONK_SOURCES
|
||||||
|
@ -745,6 +768,25 @@ if(APPLE)
|
||||||
src/res/Clonk.icns
|
src/res/Clonk.icns
|
||||||
src/res/C4D.icns src/res/C4F.icns src/res/C4G.icns src/res/C4K.icns
|
src/res/C4D.icns src/res/C4F.icns src/res/C4G.icns src/res/C4K.icns
|
||||||
src/res/C4P.icns src/res/C4S.icns src/res/C4U.icns
|
src/res/C4P.icns src/res/C4S.icns src/res/C4U.icns
|
||||||
|
src/res/MainMenu.xib
|
||||||
|
src/res/FullscreenWindow.xib
|
||||||
|
src/res/ConsoleGUIWindow.xib
|
||||||
|
src/res/ClonkWindow.xib
|
||||||
|
src/res/ConsoleWindow.xib
|
||||||
|
src/res/Mouse_Trans.png
|
||||||
|
src/res/Cursor_Trans.png
|
||||||
|
src/res/Brush_Trans.png
|
||||||
|
src/res/Play_Trans.png
|
||||||
|
src/res/Halt_Trans.png
|
||||||
|
src/res/Dynamic_Trans.png
|
||||||
|
src/res/Static_Trans.png
|
||||||
|
src/res/Exact_Trans.png
|
||||||
|
src/res/Line_Trans.png
|
||||||
|
src/res/Rect_Trans.png
|
||||||
|
src/res/Fill_Trans.png
|
||||||
|
src/res/Picker_Trans.png
|
||||||
|
src/res/Ift_Trans.png
|
||||||
|
src/res/NoIft_Trans.png
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add icon resources
|
# Add icon resources
|
||||||
|
@ -776,6 +818,12 @@ if(USE_GTK)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(USE_OPEN_AL)
|
||||||
|
FINDLIB(VORBIS_LIBRARY NAMES vorbis)
|
||||||
|
FINDLIB(VORBISFILE_LIBRARY NAMES vorbisfile)
|
||||||
|
FINDLIB(OGG_LIBRARY NAMES ogg)
|
||||||
|
endif()
|
||||||
|
|
||||||
add_definitions(-DHAVE_CONFIG_H)
|
add_definitions(-DHAVE_CONFIG_H)
|
||||||
add_executable(clonk WIN32 MACOSX_BUNDLE
|
add_executable(clonk WIN32 MACOSX_BUNDLE
|
||||||
${OC_SYSTEM_SOURCES}
|
${OC_SYSTEM_SOURCES}
|
||||||
|
@ -807,6 +855,9 @@ target_link_libraries(clonk
|
||||||
${JPEG_LIBRARIES}
|
${JPEG_LIBRARIES}
|
||||||
${OPENSSL_LIBRARIES}
|
${OPENSSL_LIBRARIES}
|
||||||
${ICONV_LIBRARY}
|
${ICONV_LIBRARY}
|
||||||
|
${VORBIS_LIBRARY}
|
||||||
|
${VORBISFILE_LIBRARY}
|
||||||
|
${OGG_LIBRARY}
|
||||||
)
|
)
|
||||||
target_link_libraries(c4group
|
target_link_libraries(c4group
|
||||||
${ZLIB_LIBRARIES}
|
${ZLIB_LIBRARIES}
|
||||||
|
@ -815,25 +866,39 @@ target_link_libraries(c4group
|
||||||
set_property(TARGET clonk APPEND PROPERTY COMPILE_DEFINITIONS GLEW_STATIC)
|
set_property(TARGET clonk APPEND PROPERTY COMPILE_DEFINITIONS GLEW_STATIC)
|
||||||
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG _DEBUG)
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG _DEBUG)
|
||||||
|
|
||||||
|
if (APPLE)
|
||||||
|
add_custom_command(TARGET clonk
|
||||||
|
POST_BUILD COMMAND "/bin/sh" "${CMAKE_CURRENT_SOURCE_DIR}/tools/osx_bundle_libs.sh"
|
||||||
|
)
|
||||||
|
SET_TARGET_PROPERTIES(clonk PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||||
|
SET_TARGET_PROPERTIES(clonk PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||||
|
SET_TARGET_PROPERTIES(clonk PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||||
|
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER YES)
|
||||||
|
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "${CMAKE_CURRENT_SOURCE_DIR}/src/C4Include.h")
|
||||||
|
SET_TARGET_PROPERTIES(c4group PROPERTIES XCODE_ATTRIBUTE_GCC_PFE_FILE_C_DIALECTS "c++ objective-c++")
|
||||||
|
endif()
|
||||||
|
|
||||||
# This expands some variables in Info.plist as a side-effect. XCode might then
|
# This expands some variables in Info.plist as a side-effect. XCode might then
|
||||||
# expand a second time, using the same syntax. Try not to get confused by this!
|
# expand a second time, using the same syntax. Try not to get confused by this!
|
||||||
set_target_properties(clonk PROPERTIES MACOSX_BUNDLE_INFO_PLIST "src/res/Info.plist")
|
set_target_properties(clonk PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/src/res/Info.plist")
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
# build to planet
|
# build to planet
|
||||||
############################################################################
|
############################################################################
|
||||||
if(BUILD_TO_PLANET)
|
if(BUILD_TO_PLANET)
|
||||||
if(MSVC) #get the files out of the Build folders
|
if(CMAKE_VERSION VERSION_LESS "2.8")
|
||||||
if(CMAKE_VERSION VERSION_LESS "2.8")
|
message(SEND_ERROR "You need CMake 2.8 or higher for BUILD_TO_PLANET to get the builds out of the sub folders. You have ${CMAKE_VERSION}")
|
||||||
message(SEND_ERROR "You need CMake 2.8 or higher for BUILD_TO_PLANET to get the builds out of MSVCs folders. You have ${CMAKE_VERSION}")
|
else()
|
||||||
else()
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
||||||
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_RELEASE "../Clonk")
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
||||||
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_DEBUG "../ClonkD")
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
||||||
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_MINSIZEREL "../ClonkMSR")
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
||||||
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_RELWITHDEBINFO "../ClonkRD")
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_RELEASE "Clonk")
|
||||||
endif()
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_DEBUG "ClonkD")
|
||||||
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_MINSIZEREL "ClonkMSR")
|
||||||
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_NAME_RELWITHDEBINFO "ClonkRD")
|
||||||
|
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
||||||
endif()
|
endif()
|
||||||
set_target_properties(clonk PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/planet)
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
|
@ -933,6 +998,10 @@ if(USE_X11)
|
||||||
${XRANDR_LIBRARIES}
|
${XRANDR_LIBRARIES}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
if(USE_COCOA)
|
||||||
|
#stupid fix: just link to iconv that way
|
||||||
|
TARGET_LINK_LIBRARIES(clonk "-framework Cocoa -framework AppKit -framework Quartz -framework OpenAL -framework AudioToolBox -liconv")
|
||||||
|
endif()
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
# CMake is too incompetent to check whether these libraries can be linked to
|
# CMake is too incompetent to check whether these libraries can be linked to
|
||||||
# So just pretend that everything is fine
|
# So just pretend that everything is fine
|
||||||
|
@ -948,25 +1017,27 @@ if (WIN32)
|
||||||
target_link_libraries(clonk ws2_32 winmm)
|
target_link_libraries(clonk ws2_32 winmm)
|
||||||
target_link_libraries(c4group ws2_32)
|
target_link_libraries(c4group ws2_32)
|
||||||
|
|
||||||
if(MSVC_VERSION)
|
if(NOT USE_OPEN_AL)
|
||||||
if(CMAKE_CL_64)
|
if(MSVC_VERSION)
|
||||||
FINDLIB(FMOD_LIBRARIES fmod64vc)
|
if(CMAKE_CL_64)
|
||||||
else()
|
FINDLIB(FMOD_LIBRARIES fmod64vc)
|
||||||
FINDLIB(FMOD_LIBRARIES fmodvc)
|
else()
|
||||||
|
FINDLIB(FMOD_LIBRARIES fmodvc)
|
||||||
|
endif()
|
||||||
|
elseif(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
FINDLIB(FMOD_LIBRARIES fmod)
|
||||||
|
endif()
|
||||||
|
if(FMOD_LIBRARIES)
|
||||||
|
set(HAVE_FMOD TRUE)
|
||||||
|
target_link_libraries(clonk
|
||||||
|
${FMOD_LIBRARIES}
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
set(HAVE_FMOD FALSE)
|
||||||
endif()
|
endif()
|
||||||
elseif(CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
FINDLIB(FMOD_LIBRARIES fmod)
|
|
||||||
endif()
|
|
||||||
if(FMOD_LIBRARIES)
|
|
||||||
set(HAVE_FMOD TRUE)
|
|
||||||
target_link_libraries(clonk
|
|
||||||
${FMOD_LIBRARIES}
|
|
||||||
)
|
|
||||||
else()
|
|
||||||
set(HAVE_FMOD FALSE)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if(NOT HAVE_FMOD OR USE_SDL_MAINLOOP)
|
if((NOT HAVE_FMOD OR USE_SDL_MAINLOOP) AND NOT USE_OPEN_AL)
|
||||||
include(FindSDL)
|
include(FindSDL)
|
||||||
SET(HAVE_SDL ${SDL_FOUND})
|
SET(HAVE_SDL ${SDL_FOUND})
|
||||||
if(SDL_FOUND)
|
if(SDL_FOUND)
|
||||||
|
|
|
@ -34,6 +34,9 @@
|
||||||
/* Define to 1 if FMOD is available */
|
/* Define to 1 if FMOD is available */
|
||||||
#cmakedefine HAVE_FMOD 1
|
#cmakedefine HAVE_FMOD 1
|
||||||
|
|
||||||
|
/* Use OpenAL for playing sounds */
|
||||||
|
#cmakedefine USE_OPEN_AL 1
|
||||||
|
|
||||||
/* Define to 1 if you have the <locale.h> header file. */
|
/* Define to 1 if you have the <locale.h> header file. */
|
||||||
#cmakedefine HAVE_LOCALE_H 1
|
#cmakedefine HAVE_LOCALE_H 1
|
||||||
|
|
||||||
|
@ -194,3 +197,5 @@
|
||||||
/* Define to 1 if you have support for nullptr. */
|
/* Define to 1 if you have support for nullptr. */
|
||||||
#cmakedefine HAVE_NULLPTR 1
|
#cmakedefine HAVE_NULLPTR 1
|
||||||
|
|
||||||
|
/* Use Apple Cocoa for the UI */
|
||||||
|
#cmakedefine USE_COCOA 1
|
|
@ -52,6 +52,8 @@ public:
|
||||||
virtual void HandleMessage (XEvent &e);
|
virtual void HandleMessage (XEvent &e);
|
||||||
#elif defined(USE_SDL_MAINLOOP)
|
#elif defined(USE_SDL_MAINLOOP)
|
||||||
virtual void HandleMessage (SDL_Event &e);
|
virtual void HandleMessage (SDL_Event &e);
|
||||||
|
#elif defined(USE_COCOA)
|
||||||
|
virtual void HandleMessage (/*NSEvent*/void* event);
|
||||||
#endif
|
#endif
|
||||||
virtual void PerformUpdate();
|
virtual void PerformUpdate();
|
||||||
};
|
};
|
||||||
|
|
|
@ -77,6 +77,7 @@ public:
|
||||||
bool ToggleShowVertices();
|
bool ToggleShowVertices();
|
||||||
bool ToggleShowAction();
|
bool ToggleShowAction();
|
||||||
bool ToggleShowHelp();
|
bool ToggleShowHelp();
|
||||||
|
friend class C4FullScreen;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern C4GraphicsSystem GraphicsSystem;
|
extern C4GraphicsSystem GraphicsSystem;
|
||||||
|
|
|
@ -32,8 +32,6 @@
|
||||||
#include <C4Version.h>
|
#include <C4Version.h>
|
||||||
#include "C4Network2.h"
|
#include "C4Network2.h"
|
||||||
|
|
||||||
#include "MacUtility.h"
|
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <shellapi.h>
|
#include <shellapi.h>
|
||||||
|
|
||||||
|
@ -193,12 +191,6 @@ static void crash_handler(int signo)
|
||||||
}
|
}
|
||||||
#endif // HAVE_SIGNAL_H
|
#endif // HAVE_SIGNAL_H
|
||||||
|
|
||||||
#ifdef __APPLE__
|
|
||||||
void restart(char* args[])
|
|
||||||
{
|
|
||||||
MacUtility::restart(args);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static void restart(char * argv[])
|
static void restart(char * argv[])
|
||||||
{
|
{
|
||||||
// Close all file descriptors except stdin, stdout, stderr
|
// Close all file descriptors except stdin, stdout, stderr
|
||||||
|
@ -208,7 +200,6 @@ static void restart(char * argv[])
|
||||||
// Execute the new engine
|
// Execute the new engine
|
||||||
execlp(argv[0], argv[0], static_cast<char *>(0));
|
execlp(argv[0], argv[0], static_cast<char *>(0));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
int main (int argc, char * argv[])
|
int main (int argc, char * argv[])
|
||||||
{
|
{
|
||||||
|
|
|
@ -0,0 +1,491 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4Console.h>
|
||||||
|
#include <C4Application.h>
|
||||||
|
|
||||||
|
#include <C4GameSave.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
#include <C4MessageInput.h>
|
||||||
|
#include <C4UserMessages.h>
|
||||||
|
#include <C4Version.h>
|
||||||
|
#include <C4Language.h>
|
||||||
|
#include <C4Player.h>
|
||||||
|
#include <C4Landscape.h>
|
||||||
|
#include <C4GraphicsSystem.h>
|
||||||
|
#include <C4PlayerList.h>
|
||||||
|
#include <C4GameControl.h>
|
||||||
|
#include <C4Texture.h>
|
||||||
|
|
||||||
|
#include <StdFile.h>
|
||||||
|
#include <StdRegistry.h>
|
||||||
|
#include <StdGL.h>
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import "ClonkAppDelegate.h"
|
||||||
|
#import "ConsoleWindowController.h"
|
||||||
|
#import "ClonkOpenGLView.h"
|
||||||
|
|
||||||
|
// implementation of C4Console GUI for Mac OS X
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
inline ConsoleWindowController* ctrler(C4ConsoleGUI* gui) {return (ConsoleWindowController*)gui->GetController();}
|
||||||
|
}
|
||||||
|
|
||||||
|
class C4ConsoleGUI::State: public C4ConsoleGUI::InternalState<class C4ConsoleGUI>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
State(C4ConsoleGUI *console): Super(console) {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class C4ToolsDlg::State: public C4ConsoleGUI::InternalState<class C4ToolsDlg>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
State(C4ToolsDlg *toolsDlg): Super(toolsDlg) {}
|
||||||
|
~State()
|
||||||
|
{
|
||||||
|
[ctrler(&Console).toolsPanel orderOut:nil];
|
||||||
|
}
|
||||||
|
CGImageRef CreatePreviewImage();
|
||||||
|
void Default() {}
|
||||||
|
void Clear() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class C4PropertyDlg::State: public C4ConsoleGUI::InternalState<class C4PropertyDlg>
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
State(C4PropertyDlg *dlg): Super(dlg) {}
|
||||||
|
void Default() {}
|
||||||
|
void Clear() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
CStdWindow* C4ConsoleGUI::CreateConsoleWindow(CStdApp *application)
|
||||||
|
{
|
||||||
|
ClonkWindowController* controller = [ConsoleWindowController new];
|
||||||
|
this->controller = controller;
|
||||||
|
[NSBundle loadNibNamed:@"ConsoleWindow" owner:controller];
|
||||||
|
[controller setStdWindow:this];
|
||||||
|
this->Active = true;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::Out(const char* message)
|
||||||
|
{
|
||||||
|
ConsoleWindowController* controller;
|
||||||
|
if (controller = ctrler(this))
|
||||||
|
{
|
||||||
|
NSTextStorage* textStorage = controller.outputTextView.textStorage;
|
||||||
|
[textStorage appendAttributedString:[[[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%s\n", message]] autorelease]];
|
||||||
|
[controller.outputTextView scrollRangeToVisible:NSMakeRange([textStorage length]-1, 1)];
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::ClearLog()
|
||||||
|
{
|
||||||
|
[ctrler(this).outputTextView.textStorage
|
||||||
|
replaceCharactersInRange:NSMakeRange(0, ctrler(this).outputTextView.textStorage.length)
|
||||||
|
withAttributedString:[[NSAttributedString alloc] initWithString:@""]];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::DisplayInfoText(C4ConsoleGUI::InfoTextType type, StdStrBuf& text)
|
||||||
|
{
|
||||||
|
NSTextField* label;
|
||||||
|
switch (type)
|
||||||
|
{
|
||||||
|
case CONSOLE_FrameCounter:
|
||||||
|
label = ctrler(this).frameLabel;
|
||||||
|
break;
|
||||||
|
case CONSOLE_ScriptCounter:
|
||||||
|
label = ctrler(this).scriptLabel;
|
||||||
|
break;
|
||||||
|
case CONSOLE_TimeFPS:
|
||||||
|
label = ctrler(this).timeLabel;
|
||||||
|
break;
|
||||||
|
case CONSOLE_Cursor:
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
[label setStringValue:[NSString stringWithUTF8String:text.getData()]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::SetCaptionToFileName(const char* file_name)
|
||||||
|
{
|
||||||
|
[ctrler(this).window setRepresentedFilename:[NSString stringWithUTF8String:file_name]];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::FileSelect(char *sFilename, int iSize, const char * szFilter, DWORD dwFlags, bool fSave)
|
||||||
|
{
|
||||||
|
NSSavePanel* savePanel = fSave ? [NSSavePanel savePanel] : [NSOpenPanel openPanel];
|
||||||
|
if (!fSave)
|
||||||
|
{
|
||||||
|
[(NSOpenPanel*)savePanel setCanChooseFiles:YES];
|
||||||
|
[(NSOpenPanel*)savePanel setCanChooseDirectories:YES];
|
||||||
|
}
|
||||||
|
if ([savePanel runModal] == NSFileHandlingPanelOKButton && [[savePanel URL] isFileURL])
|
||||||
|
{
|
||||||
|
strncpy(sFilename, [[savePanel URL].path cStringUsingEncoding:NSUTF8StringEncoding], iSize);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::AddMenuItemForPlayer(C4Player* player, StdStrBuf& player_text)
|
||||||
|
{
|
||||||
|
NSMenuItem* item = [
|
||||||
|
[ClonkAppDelegate instance].newViewportForPlayerMenuItem.submenu
|
||||||
|
addItemWithTitle:[NSString stringWithUTF8String:player_text.getData()] action:@selector(newViewportForPlayer:) keyEquivalent:@""
|
||||||
|
];
|
||||||
|
[item setTag:player->Number];
|
||||||
|
[item setTarget: ClonkAppDelegate.instance];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ClearViewportMenu()
|
||||||
|
{
|
||||||
|
[[ClonkAppDelegate instance].newViewportForPlayerMenuItem.submenu removeAllItems];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::Message(const char *message, bool query)
|
||||||
|
{
|
||||||
|
NSAlert* alert = [NSAlert
|
||||||
|
alertWithMessageText:[NSString stringWithUTF8String:C4ENGINECAPTION]
|
||||||
|
defaultButton:query ? @"Yes" : nil
|
||||||
|
alternateButton:query ? @"No" : nil
|
||||||
|
otherButton:nil
|
||||||
|
informativeTextWithFormat:[NSString stringWithUTF8String:message]
|
||||||
|
];
|
||||||
|
[alert runModal];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::PropertyDlgOpen(C4PropertyDlg* dlg)
|
||||||
|
{
|
||||||
|
[ctrler(this).objectsPanel orderFront:nil];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::PropertyDlgUpdate(C4PropertyDlg *dlg, StdStrBuf &text)
|
||||||
|
{
|
||||||
|
[ctrler(this).objectPropertiesText.textStorage setAttributedString:[[[NSAttributedString alloc] initWithString:[NSString stringWithUTF8String:text.getData()]] autorelease]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ClearDlg(void *dlg)
|
||||||
|
{
|
||||||
|
if (dlg == &Console.PropertyDlg)
|
||||||
|
[ctrler(this).objectsPanel orderOut:nil];
|
||||||
|
else if (dlg == &Console.ToolsDlg)
|
||||||
|
[ctrler(this).toolsPanel orderOut:nil];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::ToolsDlgOpen(C4ToolsDlg *dlg)
|
||||||
|
{
|
||||||
|
[ctrler(this).toolsPanel orderFront:nil];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgInitMaterialCtrls(class C4ToolsDlg *dlg)
|
||||||
|
{
|
||||||
|
NSPopUpButton* materialsPopup = ctrler(this).materialsPopup;
|
||||||
|
[materialsPopup removeAllItems];
|
||||||
|
[materialsPopup addItemWithTitle:[NSString stringWithUTF8String:C4TLS_MatSky]];
|
||||||
|
NSMutableArray* ary = [[NSMutableArray alloc] initWithCapacity:MaterialMap.Num+1];
|
||||||
|
[ary addObject:[NSString stringWithUTF8String:C4TLS_MatSky]];
|
||||||
|
for (int32_t cnt = 0; cnt < ::MaterialMap.Num; cnt++)
|
||||||
|
{
|
||||||
|
[ary addObject:[NSString stringWithUTF8String: ::MaterialMap.Map[cnt].Name]];
|
||||||
|
}
|
||||||
|
[ary sortUsingComparator:^(id a, id b) {return [a compare:b];}];
|
||||||
|
for (NSString* s in ary)
|
||||||
|
{
|
||||||
|
[materialsPopup addItemWithTitle:s];
|
||||||
|
}
|
||||||
|
[ary release];
|
||||||
|
[materialsPopup selectItemWithTitle:[NSString stringWithUTF8String:dlg->Material]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::UpdateToolCtrls()
|
||||||
|
{
|
||||||
|
[ctrler(&Console).toolSelector setSelectedSegment:Tool];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::UpdateTextures()
|
||||||
|
{
|
||||||
|
// Refill dlg
|
||||||
|
NSPopUpButton* texturesPopup = ctrler(&Console).texturesPopup;
|
||||||
|
[texturesPopup removeAllItems];
|
||||||
|
// bottom-most: any invalid textures
|
||||||
|
bool fAnyEntry = false; int32_t cnt; const char *szTexture;
|
||||||
|
if (::Landscape.Mode!=C4LSC_Exact)
|
||||||
|
for (cnt=0; (szTexture=::TextureMap.GetTexture(cnt)); cnt++)
|
||||||
|
{
|
||||||
|
if (!::TextureMap.GetIndex(Material, szTexture, false))
|
||||||
|
{
|
||||||
|
fAnyEntry = true;
|
||||||
|
[texturesPopup insertItemWithTitle:[NSString stringWithUTF8String:szTexture] atIndex:0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// separator
|
||||||
|
if (fAnyEntry)
|
||||||
|
{
|
||||||
|
[texturesPopup insertItemWithTitle:@"-------" atIndex:0];
|
||||||
|
}
|
||||||
|
|
||||||
|
// atop: valid textures
|
||||||
|
for (cnt=0; (szTexture=::TextureMap.GetTexture(cnt)); cnt++)
|
||||||
|
{
|
||||||
|
// Current material-texture valid? Always valid for exact mode
|
||||||
|
if (::TextureMap.GetIndex(Material,szTexture,false) || ::Landscape.Mode==C4LSC_Exact)
|
||||||
|
{
|
||||||
|
[texturesPopup insertItemWithTitle:[NSString stringWithUTF8String:szTexture] atIndex:0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// reselect current
|
||||||
|
[texturesPopup selectItemWithTitle:[NSString stringWithUTF8String:Texture]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgSetTexture(class C4ToolsDlg *dlg, const char *texture)
|
||||||
|
{
|
||||||
|
[ctrler(this).texturesPopup selectItemWithTitle:[NSString stringWithUTF8String:texture]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::NeedPreviewUpdate()
|
||||||
|
{
|
||||||
|
CGImageRef image = state->CreatePreviewImage();
|
||||||
|
[ctrler(&Console).previewView setImage:image imageProperties:[NSDictionary dictionary]];
|
||||||
|
CGImageRelease(image);
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
// copy-pasta from http://stackoverflow.com/questions/2395650/fastest-way-to-draw-a-screen-buffer-on-the-iphone
|
||||||
|
const void* GetBytePointer(void* info)
|
||||||
|
{
|
||||||
|
// this is currently only called once
|
||||||
|
return info; // info is a pointer to the buffer
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReleaseBytePointer(void*info, const void* pointer)
|
||||||
|
{
|
||||||
|
// don't care, just using the one static buffer at the moment
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
size_t GetBytesAtPosition(void* info, void* buffer, off_t position, size_t count)
|
||||||
|
{
|
||||||
|
// I don't think this ever gets called
|
||||||
|
memcpy(buffer, ((char*)info) + position, count);
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CGImageRef C4ToolsDlg::State::CreatePreviewImage()
|
||||||
|
{
|
||||||
|
SURFACE sfcPreview;
|
||||||
|
int32_t iPrvWdt,iPrvHgt;
|
||||||
|
RECT rect;
|
||||||
|
|
||||||
|
rect.left = rect.top = 0;
|
||||||
|
rect.bottom = [ctrler(&Console).previewView frame].size.height;
|
||||||
|
rect.right = [ctrler(&Console).previewView frame].size.width;
|
||||||
|
|
||||||
|
iPrvWdt=rect.right-rect.left;
|
||||||
|
iPrvHgt=rect.bottom-rect.top;
|
||||||
|
|
||||||
|
if (!(sfcPreview=new CSurface(iPrvWdt,iPrvHgt))) return NULL;
|
||||||
|
|
||||||
|
// fill bg
|
||||||
|
BYTE bCol = 0;
|
||||||
|
CPattern Pattern;
|
||||||
|
// Sky material: sky as pattern only
|
||||||
|
if (SEqual(GetOwner()->Material,C4TLS_MatSky))
|
||||||
|
{
|
||||||
|
Pattern.Set(::Landscape.Sky.Surface, 0);
|
||||||
|
}
|
||||||
|
// Material-Texture
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bCol=Mat2PixColDefault(::MaterialMap.Get(GetOwner()->Material));
|
||||||
|
// Get/Create TexMap entry
|
||||||
|
BYTE iTex = ::TextureMap.GetIndex(GetOwner()->Material, GetOwner()->Texture, true);
|
||||||
|
if (iTex)
|
||||||
|
{
|
||||||
|
// Define texture pattern
|
||||||
|
const C4TexMapEntry *pTex = ::TextureMap.GetEntry(iTex);
|
||||||
|
// Security
|
||||||
|
if (pTex)
|
||||||
|
{
|
||||||
|
// Set drawing pattern
|
||||||
|
Pattern = pTex->GetPattern();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
lpDDraw->DrawPatternedCircle(
|
||||||
|
sfcPreview,
|
||||||
|
iPrvWdt/2,iPrvHgt/2,
|
||||||
|
GetOwner()->Grade,
|
||||||
|
bCol, Pattern, *::Landscape.GetPal()
|
||||||
|
);
|
||||||
|
//Application.DDraw->AttachPrimaryPalette(sfcPreview);
|
||||||
|
|
||||||
|
DWORD *pixels = new DWORD[iPrvWdt*iPrvHgt];
|
||||||
|
for (int x = 0; x < iPrvWdt; x++) for (int y = 0; y < iPrvHgt; y++)
|
||||||
|
{
|
||||||
|
pixels[x+y*iPrvWdt] = sfcPreview->GetPixDw(x, y, true);
|
||||||
|
}
|
||||||
|
CGDataProviderDirectCallbacks callbacks = {0, ::GetBytePointer, ::ReleaseBytePointer, ::GetBytesAtPosition, 0};
|
||||||
|
CGDataProviderRef pixelData = CGDataProviderCreateDirect(pixels, iPrvWdt*iPrvHgt*sizeof(DWORD), &callbacks);
|
||||||
|
CGImageRef image = CGImageCreate(iPrvWdt, iPrvHgt, 8, 4*8, iPrvWdt*4, [[NSColorSpace deviceRGBColorSpace] CGColorSpace], kCGBitmapByteOrder32Little, pixelData, NULL, true, kCGRenderingIntentDefault);
|
||||||
|
CGDataProviderRelease(pixelData);
|
||||||
|
delete sfcPreview;
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgSetMaterial(class C4ToolsDlg *dlg, const char *material)
|
||||||
|
{
|
||||||
|
[ctrler(this).texturesPopup selectItemWithTitle:[NSString stringWithUTF8String:material]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::InitGradeCtrl()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ToolsDlg::PopMaterial()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ShowAboutWithCopyright(StdStrBuf ©right)
|
||||||
|
{
|
||||||
|
StdStrBuf strMessage; strMessage.Format("%s %s\n\n%s", C4ENGINECAPTION, C4VERSION, copyright.getData());
|
||||||
|
Message(strMessage.getData(), false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgSelectTexture(C4ToolsDlg *dlg, const char *texture)
|
||||||
|
{
|
||||||
|
[ctrler(this).texturesPopup selectItemWithTitle:[NSString stringWithUTF8String:texture]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgSelectMaterial(C4ToolsDlg *dlg, const char *material)
|
||||||
|
{
|
||||||
|
[ctrler(this).materialsPopup selectItemWithTitle:[NSString stringWithUTF8String:material]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::UpdateIFTControls()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::SetCursor(C4ConsoleGUI::Cursor cursor)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::RecordingEnabled()
|
||||||
|
{
|
||||||
|
[[[ClonkAppDelegate instance] recordMenuItem] setEnabled:NO];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::UpdateNetMenu(Stage stage)
|
||||||
|
{
|
||||||
|
switch (stage)
|
||||||
|
{
|
||||||
|
case C4ConsoleGUI::STAGE_Start:
|
||||||
|
[ClonkAppDelegate.instance.netMenu setHidden:NO];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ClearNetMenu(Stage stage)
|
||||||
|
{
|
||||||
|
switch (stage)
|
||||||
|
{
|
||||||
|
case C4ConsoleGUI::STAGE_Start:
|
||||||
|
[ClonkAppDelegate.instance.netMenu setHidden:YES];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::DoEnableControls(bool fEnable)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::DoUpdateHaltCtrls(bool fHalt)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ToolsDlgEnableControls(C4ToolsDlg *dlg)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ClearInput()
|
||||||
|
{
|
||||||
|
[ctrler(this).consoleCombo setStringValue:[NSString string]];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::ClearPlayerMenu()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::AddNetMenuItemForPlayer(int32_t index, StdStrBuf &text)
|
||||||
|
{
|
||||||
|
NSMenuItem *item = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:text.getData() encoding:NSUTF8StringEncoding] action:@selector(kickPlayer:) keyEquivalent:[NSString string]];
|
||||||
|
[item setTarget:ctrler(this)];
|
||||||
|
[ClonkAppDelegate.instance.netMenu.submenu addItem:item];
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::SetInputFunctions(std::vector<char*> &functions)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::PropertyDlgSetFunctions(C4PropertyDlg *dlg, std::vector<char*> &functions)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ConsoleGUI::AddKickPlayerMenuItem(C4Player *player, StdStrBuf& player_text, bool enabled)
|
||||||
|
{
|
||||||
|
NSMenuItem* item = [
|
||||||
|
[ClonkAppDelegate instance].kickPlayerMenuItem.submenu
|
||||||
|
addItemWithTitle:[NSString stringWithUTF8String:player_text.getData()] action:@selector(kickPlayer:) keyEquivalent:@""
|
||||||
|
];
|
||||||
|
[item setEnabled:enabled];
|
||||||
|
[item setTag:player->Number];
|
||||||
|
[item setTarget: ctrler(this)];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ToolsDlg::PopTextures()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void C4ToolsDlg::UpdateLandscapeModeCtrls()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4ConsoleGUI::UpdateModeCtrls(int iMode)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#define CONSOLEGUICOMMONINCLUDE
|
||||||
|
#include "C4ConsoleGUICommon.h"
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
#include <C4Game.h>
|
#include <C4Game.h>
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifdef USE_X11
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <X11/Xutil.h> // XConvertCase
|
#include <X11/Xutil.h> // XConvertCase
|
||||||
#endif
|
#endif
|
||||||
|
@ -325,6 +325,8 @@ const C4KeyCodeMapEntry KeyCodeMap [] =
|
||||||
{ KEY_Default, "None", NULL},
|
{ KEY_Default, "None", NULL},
|
||||||
{ KEY_Undefined, NULL, NULL }
|
{ KEY_Undefined, NULL, NULL }
|
||||||
};
|
};
|
||||||
|
#elif defined(USE_COCOA)
|
||||||
|
#include "CocoaKeycodeMap.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
C4KeyCode C4KeyCodeEx::String2KeyCode(const StdStrBuf &sName)
|
C4KeyCode C4KeyCodeEx::String2KeyCode(const StdStrBuf &sName)
|
||||||
|
@ -429,7 +431,7 @@ C4KeyCode C4KeyCodeEx::String2KeyCode(const StdStrBuf &sName)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
#ifdef _WIN32
|
#if defined(_WIN32) || defined(USE_COCOA)
|
||||||
// query map
|
// query map
|
||||||
const C4KeyCodeMapEntry *pCheck = KeyCodeMap;
|
const C4KeyCodeMapEntry *pCheck = KeyCodeMap;
|
||||||
while (pCheck->szName)
|
while (pCheck->szName)
|
||||||
|
@ -527,7 +529,7 @@ StdStrBuf C4KeyCodeEx::KeyCode2String(C4KeyCode wCode, bool fHumanReadable, bool
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#if defined(_WIN32) || defined(USE_COCOA)
|
||||||
|
|
||||||
// TODO: Works?
|
// TODO: Works?
|
||||||
// StdStrBuf Name; Name.SetLength(1000);
|
// StdStrBuf Name; Name.SetLength(1000);
|
||||||
|
|
|
@ -59,7 +59,7 @@ static void FSEvents_Callback(
|
||||||
// FSEvents only tells us about directories in which some files were modified
|
// FSEvents only tells us about directories in which some files were modified
|
||||||
char** paths = (char**)eventPaths;
|
char** paths = (char**)eventPaths;
|
||||||
C4FileMonitor* mon = (C4FileMonitor*)clientCallBackInfo;
|
C4FileMonitor* mon = (C4FileMonitor*)clientCallBackInfo;
|
||||||
for (int i = 0; i < numEvents; i++)
|
for (unsigned int i = 0; i < numEvents; i++)
|
||||||
{
|
{
|
||||||
NSString* dir = [NSString stringWithUTF8String:paths[i]];
|
NSString* dir = [NSString stringWithUTF8String:paths[i]];
|
||||||
NSArray* filesInDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dir error:NULL];
|
NSArray* filesInDir = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:dir error:NULL];
|
||||||
|
|
|
@ -41,7 +41,6 @@ public:
|
||||||
C4Viewport * cvp;
|
C4Viewport * cvp;
|
||||||
C4ViewportWindow(C4Viewport * cvp): cvp(cvp) { }
|
C4ViewportWindow(C4Viewport * cvp): cvp(cvp) { }
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
virtual CStdWindow * Init(CStdWindow::WindowKind windowKind, CStdApp * pApp, const char * Title, CStdWindow * pParent, bool);
|
|
||||||
static bool RegisterViewportClass(HINSTANCE hInst);
|
static bool RegisterViewportClass(HINSTANCE hInst);
|
||||||
#elif defined(WITH_DEVELOPER_MODE)
|
#elif defined(WITH_DEVELOPER_MODE)
|
||||||
virtual GtkWidget* InitGUI();
|
virtual GtkWidget* InitGUI();
|
||||||
|
@ -67,6 +66,9 @@ public:
|
||||||
GtkWidget* drawing_area;
|
GtkWidget* drawing_area;
|
||||||
#elif defined(USE_X11) && !defined(WITH_DEVELOPER_MODE)
|
#elif defined(USE_X11) && !defined(WITH_DEVELOPER_MODE)
|
||||||
virtual void HandleMessage (XEvent &);
|
virtual void HandleMessage (XEvent &);
|
||||||
|
#endif
|
||||||
|
#if defined(USE_COCOA) || defined(_WIN32)
|
||||||
|
virtual CStdWindow * Init(CStdWindow::WindowKind windowKind, CStdApp * pApp, const char * Title, CStdWindow * pParent, bool);
|
||||||
#endif
|
#endif
|
||||||
void EditCursorMove(int X, int Y, uint16_t);
|
void EditCursorMove(int X, int Y, uint16_t);
|
||||||
virtual void Close();
|
virtual void Close();
|
||||||
|
|
|
@ -0,0 +1,59 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
/* SDLMain.m - main entry point for our Cocoa-ized SDL app
|
||||||
|
Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
|
||||||
|
Non-NIB-Code & other changes: Max Horn <max@quendi.de>
|
||||||
|
|
||||||
|
Feel free to customize this file to suit your needs
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
#import "ConsoleWindowController.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@interface ClonkAppDelegate: NSObject
|
||||||
|
{
|
||||||
|
NSMutableArray *gatheredArguments;
|
||||||
|
NSString *clonkDirectory;
|
||||||
|
NSString *addonSupplied;
|
||||||
|
ConsoleWindowController *consoleController;
|
||||||
|
// declared here since ConsoleWindow.xib can't refer to objects in MainMenu.xib -.-
|
||||||
|
IBOutlet NSMenuItem *newViewportForPlayerMenuItem;
|
||||||
|
IBOutlet NSMenuItem *kickPlayerMenuItem;
|
||||||
|
IBOutlet NSMenuItem *recordMenuItem;
|
||||||
|
IBOutlet NSMenuItem *netMenu;
|
||||||
|
|
||||||
|
BOOL running;
|
||||||
|
char** argv;
|
||||||
|
int argc;
|
||||||
|
}
|
||||||
|
- (NSString*) clonkDirectory;
|
||||||
|
- (BOOL) argsLookLikeItShouldBeInstallation;
|
||||||
|
- (void)makeFakeArgs:(char***)argv argc:(int*)argc;
|
||||||
|
- (BOOL)installAddOn;
|
||||||
|
- (void)terminate:(NSApplication*)sender;
|
||||||
|
|
||||||
|
+ (ClonkAppDelegate*) instance;
|
||||||
|
+ (BOOL) isConsoleAndGameRunning;
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
@property(readonly) NSMenuItem* newViewportForPlayerMenuItem;
|
||||||
|
@property(readonly) NSMenuItem* kickPlayerMenuItem;
|
||||||
|
@property(readwrite, retain) ConsoleWindowController* consoleController;
|
||||||
|
@property(readonly) NSMenuItem* recordMenuItem;
|
||||||
|
@property(readonly) NSMenuItem* netMenu;
|
||||||
|
#endif
|
||||||
|
@end
|
|
@ -1,18 +1,53 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
// Roughly adapted from the original ClonkAppDelegate.m; haxxed to death by teh Gurkendoktor.
|
// Roughly adapted from the original ClonkAppDelegate.m; haxxed to death by teh Gurkendoktor.
|
||||||
// Look at main() to get an idea for what happens here.
|
// Look at main() to get an idea for what happens here.
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4Application.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
|
||||||
#import "ClonkAppDelegate.h"
|
#import "ClonkAppDelegate.h"
|
||||||
|
#ifdef USE_SDL_MAINLOOP
|
||||||
#import "SDL/SDL.h"
|
#import "SDL/SDL.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/* The main class of the application, the appl¤ication's delegate */
|
/* The main class of the application, the appl¤ication's delegate */
|
||||||
@implementation ClonkAppDelegate
|
@implementation ClonkAppDelegate
|
||||||
|
|
||||||
|
+ (ClonkAppDelegate*) instance;
|
||||||
|
{
|
||||||
|
return (ClonkAppDelegate*)[[NSApplication sharedApplication] delegate];
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (BOOL) isConsoleAndGameRunning
|
||||||
|
{
|
||||||
|
return Application.isEditor && Game.IsRunning;
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
@synthesize newViewportForPlayerMenuItem, consoleController, kickPlayerMenuItem, recordMenuItem, netMenu;
|
||||||
|
#endif
|
||||||
|
|
||||||
- (id) init
|
- (id) init
|
||||||
{
|
{
|
||||||
if (self = [super init]) {
|
self = [super init];
|
||||||
|
if (self)
|
||||||
|
{
|
||||||
NSArray* args = [[NSProcessInfo processInfo] arguments];
|
NSArray* args = [[NSProcessInfo processInfo] arguments];
|
||||||
gatheredArguments = [args copy];
|
gatheredArguments = [args copy];
|
||||||
gameState = GS_NotYetStarted;
|
|
||||||
}
|
}
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
@ -33,7 +68,7 @@
|
||||||
{
|
{
|
||||||
// later decide whether to install or run
|
// later decide whether to install or run
|
||||||
addonSupplied = filename;
|
addonSupplied = filename;
|
||||||
if (gameState == GS_Running)
|
if (running)
|
||||||
{
|
{
|
||||||
// if application is already running install immediately
|
// if application is already running install immediately
|
||||||
[self installAddOn];
|
[self installAddOn];
|
||||||
|
@ -48,49 +83,78 @@
|
||||||
[gatheredArguments addObject:url];
|
[gatheredArguments addObject:url];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)gameLoop
|
- (void) quitAndMaybeRestart
|
||||||
{
|
{
|
||||||
[[NSFileManager defaultManager] changeCurrentDirectoryPath:[self clonkDirectory]];
|
// free app stuff
|
||||||
|
Application.Clear();
|
||||||
[NSApp activateIgnoringOtherApps:YES];
|
if (Application.restartAtEnd)
|
||||||
|
{
|
||||||
// Hand off to Clonk code
|
NSString* filename = [[NSBundle mainBundle] bundlePath];
|
||||||
char** newArgv;
|
NSString* cmd = [@"open " stringByAppendingString: filename];
|
||||||
int newArgc;
|
system([cmd UTF8String]);
|
||||||
[self makeFakeArgs:&newArgv argc:&newArgc];
|
}
|
||||||
int status = SDL_main(newArgc, newArgv);
|
|
||||||
for (int i = newArgc-1; i >= 0; i--) {free (newArgv[i]);}
|
|
||||||
free(newArgv);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Called when the internal event loop has just started running */
|
|
||||||
- (void) applicationDidFinishLaunching: (NSNotification *) note
|
- (void) applicationDidFinishLaunching: (NSNotification *) note
|
||||||
{
|
{
|
||||||
if (!([self argsLookLikeItShouldBeInstallation] && [self installAddOn]))
|
if (!([self argsLookLikeItShouldBeInstallation] && [self installAddOn]))
|
||||||
{
|
{
|
||||||
gameState = GS_Running;
|
[[NSFileManager defaultManager] changeCurrentDirectoryPath:[self clonkDirectory]];
|
||||||
[self gameLoop];
|
[NSApp activateIgnoringOtherApps:YES];
|
||||||
gameState = GS_Finished;
|
|
||||||
|
[self makeFakeArgs];
|
||||||
|
|
||||||
|
#ifdef USE_SDL_MAINLOOP
|
||||||
|
running = true;
|
||||||
|
SDL_main(newArgc, newArgv);
|
||||||
|
running = NO;
|
||||||
|
[self quitAndMaybeRestart];
|
||||||
|
[NSApp terminate:self];
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
// Init application
|
||||||
|
if (!Application.Init(argc, argv))
|
||||||
|
{
|
||||||
|
Application.Clear();
|
||||||
|
[NSApp terminate:self];
|
||||||
|
}
|
||||||
|
[[NSRunLoop currentRunLoop] performSelector:@selector(delayedRun:) target:self argument:self order:0 modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) delayedRun:(id)sender
|
||||||
|
{
|
||||||
|
running = YES;
|
||||||
|
while (!Application.fQuitMsgReceived)
|
||||||
|
Application.ScheduleProcs();
|
||||||
|
running = NO;
|
||||||
|
[self quitAndMaybeRestart];
|
||||||
[NSApp terminate:self];
|
[NSApp terminate:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)application
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication*)application
|
||||||
{
|
{
|
||||||
if (gameState == GS_Running)
|
if (running)
|
||||||
{
|
{
|
||||||
[self terminate:application];
|
[self terminate:application];
|
||||||
return NSTerminateCancel; // cancels logoff but it's the only way that does not interrupt the lifecycle of the application
|
return NSTerminateCancel;
|
||||||
}
|
}
|
||||||
return NSTerminateNow;
|
return NSTerminateNow;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)terminate:(NSApplication*)sender
|
- (void)terminate:(NSApplication*)sender
|
||||||
{
|
{
|
||||||
|
#ifdef USE_SDL_MAINLOOP
|
||||||
// Post an SDL_QUIT event
|
// Post an SDL_QUIT event
|
||||||
SDL_Event event;
|
SDL_Event event;
|
||||||
event.type = SDL_QUIT;
|
event.type = SDL_QUIT;
|
||||||
SDL_PushEvent(&event);
|
SDL_PushEvent(&event);
|
||||||
|
#endif
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
Application.Quit();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// arguments that should be converted to a c char* array and then passed on to SDL_main
|
// arguments that should be converted to a c char* array and then passed on to SDL_main
|
||||||
|
@ -139,7 +203,6 @@
|
||||||
// Already installed?
|
// Already installed?
|
||||||
if ([destPath isEqualToString:addonSupplied])
|
if ([destPath isEqualToString:addonSupplied])
|
||||||
{
|
{
|
||||||
[gatheredArguments addObject:@"/fullscreen"];
|
|
||||||
return NO; // run scenarios when they are already in the clonk directory
|
return NO; // run scenarios when they are already in the clonk directory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,7 +210,7 @@
|
||||||
if ([fileManager fileExistsAtPath:destPath])
|
if ([fileManager fileExistsAtPath:destPath])
|
||||||
// better to throw it into the trash. everything else seems so dangerously destructive
|
// better to throw it into the trash. everything else seems so dangerously destructive
|
||||||
[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:[self clonkDirectory] destination:@"" files:[NSArray arrayWithObject:justFileName] tag:0];
|
[[NSWorkspace sharedWorkspace] performFileOperation:NSWorkspaceRecycleOperation source:[self clonkDirectory] destination:@"" files:[NSArray arrayWithObject:justFileName] tag:0];
|
||||||
if ([fileManager copyPath:addonSupplied toPath:destPath handler:nil])
|
if ([fileManager copyItemAtPath:addonSupplied toPath:destPath error:NULL])
|
||||||
formatString = NSLocalizedString(@"AddOnInstallationSuccess", nil);
|
formatString = NSLocalizedString(@"AddOnInstallationSuccess", nil);
|
||||||
else
|
else
|
||||||
formatString = NSLocalizedString(@"AddOnInstallationFailure", nil);
|
formatString = NSLocalizedString(@"AddOnInstallationFailure", nil);
|
||||||
|
@ -160,16 +223,15 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// convert gatheredArguments to c array
|
// convert gatheredArguments to c array
|
||||||
- (void)makeFakeArgs:(char***)argv argc:(int*)argc
|
- (void)makeFakeArgs
|
||||||
{
|
{
|
||||||
int argCount = [gatheredArguments count];
|
int argCount = [gatheredArguments count];
|
||||||
char** args = (char**)malloc(sizeof(char*) * argCount);
|
argv = (char**)malloc(sizeof(char*) * argCount);
|
||||||
for (int i = 0; i < argCount; i++)
|
for (int i = 0; i < argCount; i++)
|
||||||
{
|
{
|
||||||
args[i] = strdup([[gatheredArguments objectAtIndex:i] cStringUsingEncoding:NSUTF8StringEncoding]);
|
argv[i] = strdup([[gatheredArguments objectAtIndex:i] cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
}
|
}
|
||||||
*argv = args;
|
argc = argCount;
|
||||||
*argc = argCount;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
|
@ -0,0 +1,25 @@
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import "ClonkAppDelegate.h"
|
||||||
|
|
||||||
|
@interface ClonkAppDelegate (ClonkMainMenuActions)
|
||||||
|
- (IBAction) openScenario:(id)sender;
|
||||||
|
- (IBAction) openScenarioWithPlayers:(id)sender;
|
||||||
|
- (IBAction) closeScenario:(id)sender;
|
||||||
|
- (IBAction) saveGame:(id)sender;
|
||||||
|
- (IBAction) saveGameAs:(id)sender;
|
||||||
|
- (IBAction) saveScenario:(id)sender;
|
||||||
|
- (IBAction) saveScenarioAs:(id)sender;
|
||||||
|
- (IBAction) record:(id)sender;
|
||||||
|
- (IBAction) newViewport:(id)sender;
|
||||||
|
- (IBAction) openPropTools:(id)sender;
|
||||||
|
- (IBAction) newViewportForPlayer:(id)sender;
|
||||||
|
- (IBAction) joinPlayer:(id)sender;
|
||||||
|
- (IBAction) showAbout:(id)sender;
|
||||||
|
- (IBAction) toggleFullscreen:(id)sender;
|
||||||
|
- (IBAction) togglePause:(id)sender;
|
||||||
|
- (IBAction) setConsoleMode:(id)sender;
|
||||||
|
- (IBAction) setDrawingTool:(id)sender;
|
||||||
|
- (IBAction) suggestQuitting:(id)sender;
|
||||||
|
- (IBAction) simulateKeyPressed:(C4KeyCode)key;
|
||||||
|
- (IBAction) visitWebsite:(id)sender;
|
||||||
|
@end
|
|
@ -0,0 +1,195 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4Fullscreen.h>
|
||||||
|
#include <C4GraphicsSystem.h>
|
||||||
|
#include <C4Viewport.h>
|
||||||
|
#include <C4Console.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
|
||||||
|
#import <StdGL.h>
|
||||||
|
|
||||||
|
#import "ClonkMainMenuActions.h"
|
||||||
|
#import "ClonkOpenGLView.h"
|
||||||
|
#import "ConsoleWindowController.h"
|
||||||
|
|
||||||
|
@implementation ClonkAppDelegate (ClonkMainMenuActions)
|
||||||
|
|
||||||
|
- (IBAction) openScenario:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileOpen();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) openScenarioWithPlayers:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileOpenWPlrs();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) closeScenario:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileClose();
|
||||||
|
[consoleController.window setRepresentedFilename:@""];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) saveGame:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileSave(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) saveGameAs:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileSaveAs(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) saveScenario:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileSave(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) saveScenarioAs:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileSaveAs(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) record:(id)sender
|
||||||
|
{
|
||||||
|
Console.FileRecord();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) newViewport:(id)sender
|
||||||
|
{
|
||||||
|
Console.ViewportNew();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) newViewportForPlayer:(id)sender
|
||||||
|
{
|
||||||
|
::Viewports.CreateViewport([sender tag]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) joinPlayer:(id)sender
|
||||||
|
{
|
||||||
|
Console.PlayerJoin();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) openPropTools:(id)sender;
|
||||||
|
{
|
||||||
|
Console.EditCursor.OpenPropTools();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) showAbout:(id)sender;
|
||||||
|
{
|
||||||
|
Console.HelpAbout();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) toggleFullscreen:(id)sender
|
||||||
|
{
|
||||||
|
if (Application.isEditor)
|
||||||
|
{
|
||||||
|
NSBeep();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Config.Graphics.Windowed = !Config.Graphics.Windowed;
|
||||||
|
Application.SetVideoMode(Config.Graphics.ResX, Config.Graphics.ResY, Config.Graphics.BitDepth, Config.Graphics.Monitor, !Config.Graphics.Windowed);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) simulateKeyPressed:(C4KeyCode)key
|
||||||
|
{
|
||||||
|
Game.DoKeyboardInput(
|
||||||
|
key,
|
||||||
|
KEYEV_Down,
|
||||||
|
false, false, false,
|
||||||
|
false, NULL
|
||||||
|
);
|
||||||
|
Game.DoKeyboardInput(
|
||||||
|
key,
|
||||||
|
KEYEV_Up,
|
||||||
|
false, false, false,
|
||||||
|
false, NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) togglePause:(id)sender
|
||||||
|
{
|
||||||
|
[self simulateKeyPressed:K_PAUSE];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) setConsoleMode:(id)sender
|
||||||
|
{
|
||||||
|
[consoleController selectMode:sender];
|
||||||
|
[consoleController.modeSelector selectSegmentWithTag:[sender tag]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) setDrawingTool:(id)sender
|
||||||
|
{
|
||||||
|
[consoleController selectTool:sender];
|
||||||
|
[consoleController.toolSelector selectSegmentWithTag:[sender tag]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) suggestQuitting:(id)sender;
|
||||||
|
{
|
||||||
|
// don't directly quit when running in fullscreen mode but rather just send escape
|
||||||
|
// which will quit the game when in the startup menu and ask whether to leave the round when playing a round
|
||||||
|
if (Application.isEditor)
|
||||||
|
[NSApp terminate:self];
|
||||||
|
else
|
||||||
|
Application.fQuitMsgReceived = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item
|
||||||
|
{
|
||||||
|
// enabled when running in fullscreen
|
||||||
|
if ([item action] == @selector(toggleFullscreen:))
|
||||||
|
return !Application.isEditor;
|
||||||
|
|
||||||
|
// game running no matter whether console or fullscreen
|
||||||
|
if ([item action] == @selector(togglePause:))
|
||||||
|
return Game.IsRunning;
|
||||||
|
|
||||||
|
// enabled when game running and console mode
|
||||||
|
SEL gameRunningInConsoleModeSelectors[] =
|
||||||
|
{
|
||||||
|
@selector(saveScenario:),
|
||||||
|
@selector(saveScenarioAs:),
|
||||||
|
@selector(saveGame:),
|
||||||
|
@selector(saveGameAs:),
|
||||||
|
@selector(record:),
|
||||||
|
@selector(closeScenario:),
|
||||||
|
@selector(newViewport:),
|
||||||
|
@selector(newViewportForPlayer:),
|
||||||
|
@selector(joinPlayer:),
|
||||||
|
@selector(openPropTools:),
|
||||||
|
@selector(setConsoleMode:),
|
||||||
|
nil
|
||||||
|
};
|
||||||
|
int i = 0;
|
||||||
|
SEL s;
|
||||||
|
while (s = gameRunningInConsoleModeSelectors[i++])
|
||||||
|
{
|
||||||
|
if (s == [item action])
|
||||||
|
return Application.isEditor && Game.IsRunning;
|
||||||
|
}
|
||||||
|
|
||||||
|
// always enabled
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) visitWebsite:(id)sender;
|
||||||
|
{
|
||||||
|
OpenURL("http://wiki.openclonk.org");
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
|
@ -1,12 +1,6 @@
|
||||||
/*
|
/*
|
||||||
* OpenClonk, http://www.openclonk.org
|
* OpenClonk, http://www.openclonk.org
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2000 Matthes Bender
|
|
||||||
* Copyright (c) 2004, 2007 Günther Brammer
|
|
||||||
* Copyright (c) 2008 Peter Wortmann
|
|
||||||
* Copyright (c) 2009 Mortimer
|
|
||||||
* Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de
|
|
||||||
*
|
|
||||||
* Portions might be copyrighted by other authors who have contributed
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
* to OpenClonk.
|
* to OpenClonk.
|
||||||
*
|
*
|
||||||
|
@ -19,15 +13,25 @@
|
||||||
* See clonk_trademark_license.txt for full license.
|
* See clonk_trademark_license.txt for full license.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#import <Cocoa/Cocoa.h>
|
||||||
namespace MacUtility
|
#include <StdWindow.h>
|
||||||
{
|
|
||||||
bool isGerman();
|
|
||||||
bool sendFileToTrash(const char* szFilename);
|
|
||||||
void restart(char*[]);
|
|
||||||
int keyRepeatDelay(int defaultValue);
|
|
||||||
int keyRepeatInterval(int defaultValue);
|
|
||||||
|
|
||||||
void ensureWindowInFront();
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
@class ClonkWindowController;
|
||||||
|
|
||||||
|
@interface ClonkOpenGLView : NSView {
|
||||||
|
@private
|
||||||
|
NSOpenGLContext* context;
|
||||||
}
|
}
|
||||||
#endif
|
- (ClonkWindowController*) controller;
|
||||||
|
- (void)update;
|
||||||
|
- (void) enableEvents;
|
||||||
|
- (void) showCursor;
|
||||||
|
- (void) hideCursor;
|
||||||
|
- (BOOL) shouldHideMouseCursor;
|
||||||
|
|
||||||
|
@property(readwrite, retain) NSOpenGLContext* context;
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,539 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4GraphicsSystem.h>
|
||||||
|
#include <C4MouseControl.h>
|
||||||
|
#include <C4GUI.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
#include <C4Viewport.h>
|
||||||
|
#include <C4ViewportWindow.h>
|
||||||
|
#include <C4Console.h>
|
||||||
|
#include <C4Fullscreen.h>
|
||||||
|
#include <C4PlayerList.h>
|
||||||
|
#include <C4Gui.h>
|
||||||
|
#include <C4Landscape.h>
|
||||||
|
|
||||||
|
#include <StdGL.h>
|
||||||
|
|
||||||
|
#import "ClonkOpenGLView.h"
|
||||||
|
#import "ClonkWindowController.h"
|
||||||
|
#import "ClonkMainMenuActions.h"
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
@implementation ClonkOpenGLView
|
||||||
|
|
||||||
|
@synthesize context;
|
||||||
|
|
||||||
|
- (BOOL) isOpaque {return YES;}
|
||||||
|
- (NSOpenGLContext*) context {return context;}
|
||||||
|
|
||||||
|
- (void) dealloc
|
||||||
|
{
|
||||||
|
[context release];
|
||||||
|
[super dealloc];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (id) initWithFrame:(NSRect)frameRect
|
||||||
|
{
|
||||||
|
self = [super initWithFrame:frameRect];
|
||||||
|
if (self != nil) {
|
||||||
|
[[NSNotificationCenter defaultCenter]
|
||||||
|
addObserver:self
|
||||||
|
selector:@selector(_surfaceNeedsUpdate:)
|
||||||
|
name:NSViewGlobalFrameDidChangeNotification
|
||||||
|
object:self];
|
||||||
|
}
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) awakeFromNib
|
||||||
|
{
|
||||||
|
[self enableEvents];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) enableEvents
|
||||||
|
{
|
||||||
|
[[self window] makeFirstResponder:self];
|
||||||
|
[[self window] setAcceptsMouseMovedEvents:YES];
|
||||||
|
|
||||||
|
[self registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, nil]];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) acceptsFirstResponder {return YES;}
|
||||||
|
|
||||||
|
- (void) resetCursorRects
|
||||||
|
{
|
||||||
|
[super resetCursorRects];
|
||||||
|
if ([self shouldHideMouseCursor])
|
||||||
|
{
|
||||||
|
static NSCursor* cursor;
|
||||||
|
if (!cursor)
|
||||||
|
{
|
||||||
|
cursor = [[NSCursor alloc] initWithImage:[[NSImage alloc] initWithSize:NSMakeSize(1, 1)] hotSpot:NSMakePoint(0, 0)];
|
||||||
|
}
|
||||||
|
[self addCursorRect:self.bounds cursor:cursor];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) _surfaceNeedsUpdate:(NSNotification*)notification
|
||||||
|
{
|
||||||
|
[self update];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) lockFocus
|
||||||
|
{
|
||||||
|
NSOpenGLContext* ctx = [self context];
|
||||||
|
[super lockFocus];
|
||||||
|
if ([ctx view] != self) {
|
||||||
|
[ctx setView:self];
|
||||||
|
}
|
||||||
|
[ctx makeCurrentContext];
|
||||||
|
if (!Application.isEditor)
|
||||||
|
{
|
||||||
|
/*int swapInterval = 1;
|
||||||
|
[ctx setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval]; */
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) viewDidMoveToWindow
|
||||||
|
{
|
||||||
|
[super viewDidMoveToWindow];
|
||||||
|
if ([self window] == nil)
|
||||||
|
[context clearDrawable];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) drawRect:(NSRect)rect
|
||||||
|
{
|
||||||
|
// better not to draw anything when the game has already finished
|
||||||
|
if (Application.fQuitMsgReceived)
|
||||||
|
return;
|
||||||
|
// don't draw if tab-switched away from fullscreen
|
||||||
|
if ([self.controller isFullscreen] && ![NSApp isActive]) // ugh - no way to find out if window is hidden due hidesondeactivate?
|
||||||
|
return;
|
||||||
|
[self.context update];
|
||||||
|
CStdWindow* stdWindow = self.controller.stdWindow;
|
||||||
|
|
||||||
|
if (stdWindow)
|
||||||
|
{
|
||||||
|
stdWindow->PerformUpdate();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (ClonkWindowController*) controller {return (ClonkWindowController*)[self.window delegate];}
|
||||||
|
|
||||||
|
int32_t mouseButtonFromEvent(NSEvent* event, DWORD& modifierFlags)
|
||||||
|
{
|
||||||
|
modifierFlags = [event modifierFlags]; // should be compatible since MK_* constants mirror the NS* constants
|
||||||
|
switch (event.type)
|
||||||
|
{
|
||||||
|
case NSLeftMouseDown:
|
||||||
|
return [event clickCount] > 1 ? C4MC_Button_LeftDouble : C4MC_Button_LeftDown;
|
||||||
|
case NSLeftMouseUp:
|
||||||
|
return C4MC_Button_LeftUp;
|
||||||
|
case NSRightMouseDown:
|
||||||
|
return [event clickCount] > 1 ? C4MC_Button_RightDouble : C4MC_Button_RightDown;
|
||||||
|
case NSRightMouseUp:
|
||||||
|
return C4MC_Button_RightUp;
|
||||||
|
case NSLeftMouseDragged: case NSRightMouseDragged:
|
||||||
|
return C4MC_Button_None; // sending mouse downs all the time when dragging is not the right thing to do
|
||||||
|
case NSOtherMouseDown:
|
||||||
|
return C4MC_Button_MiddleDown;
|
||||||
|
case NSOtherMouseUp:
|
||||||
|
return C4MC_Button_MiddleUp;
|
||||||
|
case NSScrollWheel:
|
||||||
|
return C4MC_Button_Wheel;
|
||||||
|
}
|
||||||
|
return C4MC_Button_None;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) shouldHideMouseCursor
|
||||||
|
{
|
||||||
|
return !Application.isEditor || (self.controller.viewport && Console.EditCursor.GetMode() == C4CNS_ModePlay && ValidPlr(self.controller.viewport->GetPlayer()));
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) showCursor
|
||||||
|
{
|
||||||
|
if ([self shouldHideMouseCursor])
|
||||||
|
[NSCursor unhide];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) hideCursor
|
||||||
|
{
|
||||||
|
if ([self shouldHideMouseCursor])
|
||||||
|
[NSCursor hide];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) mouseEvent:(NSEvent*)event
|
||||||
|
{
|
||||||
|
DWORD flags = 0;
|
||||||
|
int32_t button = mouseButtonFromEvent(event, flags);
|
||||||
|
NSPoint point = [self convertPoint:[self.window mouseLocationOutsideOfEventStream] fromView:nil];
|
||||||
|
int actualSizeX = Config.Graphics.ResX;
|
||||||
|
int actualSizeY = Config.Graphics.ResY;
|
||||||
|
if (!Application.isEditor)
|
||||||
|
{
|
||||||
|
point.x *= Config.Graphics.ResX/[self bounds].size.width;
|
||||||
|
point.y *= Config.Graphics.ResY/[self bounds].size.height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
actualSizeX = self.frame.size.width;
|
||||||
|
actualSizeY = self.frame.size.height;
|
||||||
|
}
|
||||||
|
int x = fmin(fmax(point.x, 0), actualSizeX);
|
||||||
|
int y = fmin(fmax(actualSizeY - point.y, 0), actualSizeY);
|
||||||
|
|
||||||
|
{
|
||||||
|
C4Viewport* viewport = self.controller.viewport;
|
||||||
|
if (::MouseControl.IsViewport(viewport) && Console.EditCursor.GetMode() == C4CNS_ModePlay)
|
||||||
|
{
|
||||||
|
::C4GUI::MouseMove(button, x, y, [event type] == NSScrollWheel ? ((int)[event deltaY] << 16) : 0, viewport);
|
||||||
|
}
|
||||||
|
else if (viewport)
|
||||||
|
{
|
||||||
|
switch (button)
|
||||||
|
{
|
||||||
|
case C4MC_Button_LeftDown:
|
||||||
|
Console.EditCursor.Move(viewport->ViewX+x/viewport->GetZoom(), viewport->ViewY+y/viewport->GetZoom(), 0);
|
||||||
|
Console.EditCursor.LeftButtonDown(!!(flags & MK_CONTROL));
|
||||||
|
break;
|
||||||
|
case C4MC_Button_LeftUp:
|
||||||
|
Console.EditCursor.LeftButtonUp();
|
||||||
|
break;
|
||||||
|
case C4MC_Button_RightDown:
|
||||||
|
Console.EditCursor.RightButtonDown(!!(flags & MK_CONTROL));
|
||||||
|
break;
|
||||||
|
case C4MC_Button_RightUp:
|
||||||
|
Console.EditCursor.RightButtonUp();
|
||||||
|
break;
|
||||||
|
case C4MC_Button_None:
|
||||||
|
Console.EditCursor.Move(viewport->ViewX+x/viewport->GetZoom(),viewport->ViewY+y/viewport->GetZoom(), 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) magnifyWithEvent:(NSEvent *)event
|
||||||
|
{
|
||||||
|
// NSLog(@"%f", [event magnification]);
|
||||||
|
C4Viewport* viewport = self.controller.viewport;
|
||||||
|
if (viewport)
|
||||||
|
{
|
||||||
|
// float x = viewport->ViewX+ ::pGUI->Mouse.x/viewport->GetZoom();
|
||||||
|
// float y = viewport->ViewY+ ::pGUI->Mouse.y/viewport->GetZoom();
|
||||||
|
viewport->SetZoom(viewport->GetZoom()+[event magnification], true);
|
||||||
|
// viewport->ViewX = x - ::pGUI->Mouse.x/viewport->GetZoom();
|
||||||
|
// viewport->ViewY = y - ::pGUI->Mouse.y/viewport->GetZoom();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) swipeWithEvent:(NSEvent*)event
|
||||||
|
{
|
||||||
|
// swiping left triggers going back in startup dialogs
|
||||||
|
if (event.deltaX > 0)
|
||||||
|
[ClonkAppDelegate.instance simulateKeyPressed:K_LEFT];
|
||||||
|
else
|
||||||
|
[ClonkAppDelegate.instance simulateKeyPressed:K_RIGHT];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)insertText:(id)insertString
|
||||||
|
{
|
||||||
|
if (::pGUI)
|
||||||
|
{
|
||||||
|
NSString* str = [insertString isKindOfClass:[NSAttributedString class]] ? [(NSAttributedString*)insertString string] : (NSString*)insertString;
|
||||||
|
for (unsigned int i = 0; i < [str length]; i++)
|
||||||
|
{
|
||||||
|
unichar c = [str characterAtIndex:i];
|
||||||
|
::pGUI->CharIn((const char*)&c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)doCommandBySelector:(SEL)selector
|
||||||
|
{
|
||||||
|
// ignore to not trigger the annoying beep sound
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)keyEvent:(NSEvent*)event withKeyEventType:(C4KeyEventType)type
|
||||||
|
{
|
||||||
|
Game.DoKeyboardInput(
|
||||||
|
[event keyCode]+CocoaKeycodeOffset, // offset keycode by some value to distinguish between those special key defines
|
||||||
|
type,
|
||||||
|
[event modifierFlags] & NSAlternateKeyMask,
|
||||||
|
[event modifierFlags] & NSControlKeyMask,
|
||||||
|
[event modifierFlags] & NSShiftKeyMask,
|
||||||
|
false, NULL
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)keyDown:(NSEvent*)event
|
||||||
|
{
|
||||||
|
[self interpretKeyEvents:[NSArray arrayWithObject:event]]; // call this to route character input to insertText:
|
||||||
|
[self keyEvent:event withKeyEventType:KEYEV_Down];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)keyUp:(NSEvent*)event
|
||||||
|
{
|
||||||
|
[self keyEvent:event withKeyEventType:KEYEV_Up];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDragOperation) draggingEntered:(id<NSDraggingInfo>)sender
|
||||||
|
{
|
||||||
|
return NSDragOperationCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (NSDragOperation) draggingUpdated:(id<NSDraggingInfo>)sender
|
||||||
|
{
|
||||||
|
return NSDragOperationCopy;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) prepareForDragOperation:(id<NSDraggingInfo>)sender
|
||||||
|
{
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) performDragOperation:(id<NSDraggingInfo>)sender
|
||||||
|
{
|
||||||
|
NSPasteboard* pasteboard = [sender draggingPasteboard];
|
||||||
|
if ([[pasteboard types] containsObject:NSFilenamesPboardType])
|
||||||
|
{
|
||||||
|
NSArray* files = [pasteboard propertyListForType:NSFilenamesPboardType];
|
||||||
|
C4Viewport* viewport = self.controller.viewport;
|
||||||
|
if (viewport)
|
||||||
|
{
|
||||||
|
for (NSString* fileName in files)
|
||||||
|
{
|
||||||
|
viewport->DropFile([fileName cStringUsingEncoding:NSUTF8StringEncoding], [sender draggingLocation].x, [sender draggingLocation].y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void )concludeDragOperation:(id<NSDraggingInfo>)sender
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// respaghettisize :D
|
||||||
|
|
||||||
|
- (void) scrollWheel:(NSEvent *)event
|
||||||
|
{
|
||||||
|
if (!Application.isEditor)
|
||||||
|
[self mouseEvent:event];
|
||||||
|
else
|
||||||
|
{
|
||||||
|
C4Viewport* viewport = self.controller.viewport;
|
||||||
|
if (viewport)
|
||||||
|
{
|
||||||
|
NSScrollView* scrollView = self.controller.scrollView;
|
||||||
|
NSPoint p = NSMakePoint(2*-[event deltaX]/(GBackWdt-viewport->ViewWdt), 2*-[event deltaY]/(GBackHgt-viewport->ViewHgt));
|
||||||
|
[scrollView.horizontalScroller setDoubleValue:scrollView.horizontalScroller.doubleValue+p.x];
|
||||||
|
[scrollView.verticalScroller setDoubleValue:scrollView.verticalScroller.doubleValue+p.y];
|
||||||
|
viewport->ViewPositionByScrollBars();
|
||||||
|
[self display];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) mouseDown: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) rightMouseDown: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) rightMouseUp: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) otherMouseDown: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) otherMouseUp: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) mouseUp: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) mouseMoved: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) mouseDragged: (NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
- (void) rightMouseDragged:(NSEvent *)event {[self mouseEvent:event];}
|
||||||
|
|
||||||
|
- (void) update
|
||||||
|
{
|
||||||
|
[context update];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// Implementation of some CStdGLCtx methods - fits here, more or less
|
||||||
|
|
||||||
|
void* CStdGLCtx::GetNativeCtx()
|
||||||
|
{
|
||||||
|
return ctx;
|
||||||
|
}
|
||||||
|
|
||||||
|
CStdGLCtx::CStdGLCtx(): pWindow(0), ctx(nil), cx(0), cy(0) {}
|
||||||
|
|
||||||
|
void CStdGLCtx::Clear()
|
||||||
|
{
|
||||||
|
Deselect();
|
||||||
|
if (ctx)
|
||||||
|
{
|
||||||
|
[(NSOpenGLContext*)ctx release];
|
||||||
|
ctx = nil;
|
||||||
|
}
|
||||||
|
pWindow = 0;
|
||||||
|
cx = cy = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSOpenGLContext* CreateCocoaContext(CStdGLCtx* pMainCtx, NSOpenGLPixelFormat* format)
|
||||||
|
{
|
||||||
|
if (!format)
|
||||||
|
{
|
||||||
|
NSOpenGLPixelFormatAttribute attrs[] = {
|
||||||
|
NSOpenGLPFADepthSize, 16,
|
||||||
|
0
|
||||||
|
};
|
||||||
|
format = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attrs] autorelease];
|
||||||
|
}
|
||||||
|
NSOpenGLContext* result = [[NSOpenGLContext alloc] initWithFormat:format shareContext:pMainCtx ? (NSOpenGLContext*)pMainCtx->GetNativeCtx() : nil];
|
||||||
|
if (!Application.isEditor)
|
||||||
|
{
|
||||||
|
// Make back buffer size fixed ( http://developer.apple.com/library/mac/#documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_contexts/opengl_contexts.html )
|
||||||
|
GLint dim[2] = {Config.Graphics.ResX, Config.Graphics.ResY};
|
||||||
|
CGLContextObj ctx = (CGLContextObj)result.CGLContextObj;
|
||||||
|
CGLSetParameter(ctx, kCGLCPSurfaceBackingSize, dim);
|
||||||
|
CGLEnable (ctx, kCGLCESurfaceBackingSize);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdGLCtx::Init(CStdWindow * pWindow, CStdApp *)
|
||||||
|
{
|
||||||
|
// safety
|
||||||
|
if (!pGL) return false;
|
||||||
|
// store window
|
||||||
|
this->pWindow = pWindow;
|
||||||
|
// Create Context with sharing (if this is the main context, our ctx will be 0, so no sharing)
|
||||||
|
// try direct rendering first
|
||||||
|
NSOpenGLContext* ctx = CreateCocoaContext(pGL->pMainCtx, nil);//[NSOpenGLView defaultPixelFormat]);
|
||||||
|
this->ctx = (void*)ctx;
|
||||||
|
// No luck at all?
|
||||||
|
if (!Select(true)) return pGL->Error(" gl: Unable to select context");
|
||||||
|
// init extensions
|
||||||
|
GLenum err = glewInit();
|
||||||
|
if (GLEW_OK != err)
|
||||||
|
{
|
||||||
|
// Problem: glewInit failed, something is seriously wrong.
|
||||||
|
return pGL->Error(reinterpret_cast<const char*>(glewGetErrorString(err)));
|
||||||
|
}
|
||||||
|
// set the openglview's context
|
||||||
|
ClonkWindowController* controller = (ClonkWindowController*)pWindow->GetController();
|
||||||
|
if (controller && controller.openGLView)
|
||||||
|
{
|
||||||
|
[controller.openGLView setContext:ctx];
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdGLCtx::Select(bool verbose)
|
||||||
|
{
|
||||||
|
if (ctx)
|
||||||
|
[(NSOpenGLContext*)ctx makeCurrentContext];
|
||||||
|
SelectCommon();
|
||||||
|
// update clipper - might have been done by UpdateSize
|
||||||
|
// however, the wrong size might have been assumed
|
||||||
|
if (!pGL->UpdateClipper())
|
||||||
|
{
|
||||||
|
if (verbose) pGL->Error(" gl: UpdateClipper failed");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
// success
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdGLCtx::Deselect()
|
||||||
|
{
|
||||||
|
if (pGL && pGL->pCurrCtx == this)
|
||||||
|
{
|
||||||
|
pGL->pCurrCtx = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
bool CStdGLCtx::UpdateSize()
|
||||||
|
{
|
||||||
|
// safety
|
||||||
|
if (!pWindow) return false;
|
||||||
|
// get size
|
||||||
|
RECT rc;
|
||||||
|
pWindow->GetSize(&rc);
|
||||||
|
int width = rc.right - rc.left, height = rc.bottom - rc.top;
|
||||||
|
// assign if different
|
||||||
|
if (cx!=width || cy!=height)
|
||||||
|
{
|
||||||
|
cx=width; cy=height;
|
||||||
|
if (pGL) pGL->UpdateClipper();
|
||||||
|
}
|
||||||
|
// success
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool CStdGLCtx::PageFlip()
|
||||||
|
{
|
||||||
|
// flush GL buffer
|
||||||
|
glFlush();
|
||||||
|
if (!pWindow) return false;
|
||||||
|
//SDL_GL_SwapBuffers();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace
|
||||||
|
{
|
||||||
|
class GammaRampConversionTable
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
CGGammaValue red[65535];
|
||||||
|
CGGammaValue green[65535];
|
||||||
|
CGGammaValue blue[65535];
|
||||||
|
GammaRampConversionTable()
|
||||||
|
{
|
||||||
|
for (int i = 0; i < 65535; i++)
|
||||||
|
{
|
||||||
|
red[i] = static_cast<float>(i)/65535;
|
||||||
|
green[i] = static_cast<float>(i)/65535;
|
||||||
|
blue[i] = static_cast<float>(i)/65535;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
static GammaRampConversionTable singleton;
|
||||||
|
};
|
||||||
|
|
||||||
|
GammaRampConversionTable GammaRampConversionTable::singleton;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdGL::ApplyGammaRamp(_D3DGAMMARAMP& ramp, bool fForce)
|
||||||
|
{
|
||||||
|
CGGammaValue r[256];
|
||||||
|
CGGammaValue g[256];
|
||||||
|
CGGammaValue b[256];
|
||||||
|
for (int i = 0; i < 256; i++)
|
||||||
|
{
|
||||||
|
r[i] = GammaRampConversionTable::singleton.red[ramp.red[i]];
|
||||||
|
g[i] = GammaRampConversionTable::singleton.green[ramp.green[i]];
|
||||||
|
b[i] = GammaRampConversionTable::singleton.blue[ramp.blue[i]];
|
||||||
|
}
|
||||||
|
CGSetDisplayTransferByTable((CGDirectDisplayID)[[[[[NSApp keyWindow] screen] deviceDescription] valueForKey:@"NSScreenNumber"] intValue], 256, r, g, b);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdGL::SaveDefaultGammaRamp(CStdWindow * pWindow)
|
||||||
|
{
|
||||||
|
return false;//return SDL_GetGammaRamp(DefRamp.ramp.red, DefRamp.ramp.green, DefRamp.ramp.blue) != -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,42 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
|
||||||
|
class CStdWindow;
|
||||||
|
class C4ViewportWindow;
|
||||||
|
class C4Viewport;
|
||||||
|
|
||||||
|
@class ClonkOpenGLView;
|
||||||
|
@class NSTextView;
|
||||||
|
@class ConsoleWindowController;
|
||||||
|
|
||||||
|
@interface ClonkWindowController : NSWindowController<NSWindowDelegate> {
|
||||||
|
IBOutlet ClonkOpenGLView* openGLView;
|
||||||
|
IBOutlet NSScrollView* scrollView;
|
||||||
|
CStdWindow* stdWindow;
|
||||||
|
NSWindow* fullscreenWindow;
|
||||||
|
}
|
||||||
|
- (C4Viewport*) viewport;
|
||||||
|
- (void) setFullscreen:(BOOL)fullscreen;
|
||||||
|
- (BOOL) isFullscreen;
|
||||||
|
|
||||||
|
- (IBAction) scroll:(id)sender;
|
||||||
|
|
||||||
|
@property (readwrite) CStdWindow* stdWindow;
|
||||||
|
@property (readonly) ClonkOpenGLView* openGLView;
|
||||||
|
@property (readonly) NSScrollView* scrollView;
|
||||||
|
@property (readonly) BOOL isLiveResizing;
|
||||||
|
@end
|
|
@ -0,0 +1,225 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4Fullscreen.h>
|
||||||
|
#include <C4GraphicsSystem.h>
|
||||||
|
#include <C4Viewport.h>
|
||||||
|
#include <C4ViewportWindow.h>
|
||||||
|
#include <C4Console.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
#include <C4Landscape.h>
|
||||||
|
|
||||||
|
#import <StdGL.h>
|
||||||
|
|
||||||
|
#import "ClonkWindowController.h"
|
||||||
|
#import "ClonkOpenGLView.h"
|
||||||
|
#import "ConsoleWindowController.h"
|
||||||
|
#import "ClonkAppDelegate.h"
|
||||||
|
#import "AppKit/NSOpenGL.h"
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
// Turns out, it is necessary to derive a NSWindow class after all - or else the screen-filling window won't be able to become the key window
|
||||||
|
|
||||||
|
@interface ClonkScreenfillingWindow: NSWindow
|
||||||
|
{}
|
||||||
|
- (BOOL) canBecomeKeyWindow;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation ClonkScreenfillingWindow
|
||||||
|
- (BOOL) canBecomeKeyWindow;
|
||||||
|
{
|
||||||
|
return YES; // a resounding one
|
||||||
|
}
|
||||||
|
@end
|
||||||
|
|
||||||
|
|
||||||
|
@implementation ClonkWindowController
|
||||||
|
|
||||||
|
@synthesize stdWindow, openGLView, scrollView;
|
||||||
|
|
||||||
|
- (void) fadeOut:(CGDisplayFadeReservationToken*)token
|
||||||
|
{
|
||||||
|
if (CGAcquireDisplayFadeReservation(15, token) == 0)
|
||||||
|
CGDisplayFade(*token, 0.2, 0.0, 1.0, 0, 0, 0, YES);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) fadeIn:(CGDisplayFadeReservationToken)token
|
||||||
|
{
|
||||||
|
CGDisplayFade(token, 0.2, 1.0, 0.0, 0, 0, 0, YES);
|
||||||
|
CGReleaseDisplayFadeReservation(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) isFullscreen
|
||||||
|
{
|
||||||
|
return fullscreenWindow != nil;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) setFullscreen:(BOOL)fullscreen
|
||||||
|
{
|
||||||
|
if (fullscreen != [self isFullscreen])
|
||||||
|
{
|
||||||
|
// fade out
|
||||||
|
CGDisplayFadeReservationToken token;
|
||||||
|
[self fadeOut:&token];
|
||||||
|
if (![self isFullscreen])
|
||||||
|
{
|
||||||
|
NSRect fullscreenRect = NSScreen.mainScreen.frame;
|
||||||
|
fullscreenWindow = [[ClonkScreenfillingWindow alloc] initWithContentRect:fullscreenRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:YES];
|
||||||
|
[fullscreenWindow setLevel:NSMainMenuWindowLevel+1];
|
||||||
|
[fullscreenWindow setOpaque:YES];
|
||||||
|
[fullscreenWindow setHidesOnDeactivate:YES];
|
||||||
|
[fullscreenWindow setContentView:openGLView];
|
||||||
|
[fullscreenWindow setReleasedWhenClosed:YES];
|
||||||
|
//[openGLView setFrame:fullscreenRect];
|
||||||
|
[fullscreenWindow setDelegate:self];
|
||||||
|
[self.window orderOut:self];
|
||||||
|
[fullscreenWindow setInitialFirstResponder:openGLView];
|
||||||
|
[fullscreenWindow makeKeyAndOrderFront:self];
|
||||||
|
[openGLView enableEvents];
|
||||||
|
// hide cursor completely
|
||||||
|
[NSCursor hide];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// unhide and rely on cursor rects again
|
||||||
|
[NSCursor unhide];
|
||||||
|
|
||||||
|
[openGLView retain];
|
||||||
|
[fullscreenWindow close];
|
||||||
|
fullscreenWindow = nil;
|
||||||
|
[self.window.contentView addSubview:openGLView];
|
||||||
|
[self.window orderFront:self];
|
||||||
|
[openGLView setFrame:[self.window.contentView frame]];
|
||||||
|
[openGLView enableEvents];
|
||||||
|
[openGLView display];
|
||||||
|
}
|
||||||
|
// fade in again
|
||||||
|
[self fadeIn:token];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) setStdWindow:(CStdWindow*)window
|
||||||
|
{
|
||||||
|
stdWindow = window;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) windowShouldClose:(id)sender
|
||||||
|
{
|
||||||
|
if (sender == self.window && self.stdWindow)
|
||||||
|
{
|
||||||
|
[self.openGLView showCursor];
|
||||||
|
self.stdWindow->Close();
|
||||||
|
}
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (C4Viewport*) viewport
|
||||||
|
{
|
||||||
|
for (C4Viewport* v = ::Viewports.GetFirstViewport(); v; v = v->GetNext())
|
||||||
|
if (v->GetWindow() == stdWindow || v->GetWindow() == NULL && stdWindow == &FullScreen)
|
||||||
|
return v;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) scroll:(id)sender
|
||||||
|
{
|
||||||
|
C4Viewport* viewport = self.viewport;
|
||||||
|
if (viewport)
|
||||||
|
{
|
||||||
|
viewport->ViewPositionByScrollBars();
|
||||||
|
viewport->Execute();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) windowDidResize:(NSNotification *)notification
|
||||||
|
{
|
||||||
|
C4Viewport* viewport = self.viewport;
|
||||||
|
if (viewport && Application.isEditor)
|
||||||
|
{
|
||||||
|
viewport->ScrollBarsByViewPosition();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL) isLiveResizing
|
||||||
|
{
|
||||||
|
return self.window.inLiveResize;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
// C4Fullscreen
|
||||||
|
|
||||||
|
void C4FullScreen::HandleMessage (void* event)
|
||||||
|
{
|
||||||
|
[NSApp sendEvent:(NSEvent*)event];
|
||||||
|
}
|
||||||
|
|
||||||
|
// C4ViewportWindow
|
||||||
|
|
||||||
|
CStdWindow * C4ViewportWindow::Init(CStdWindow::WindowKind windowKind, CStdApp * pApp, const char * Title, CStdWindow * pParent, bool b)
|
||||||
|
{
|
||||||
|
CStdWindow* result = CStdWindow::Init(windowKind, pApp, Title, pParent, b);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4Viewport::ScrollBarsByViewPosition()
|
||||||
|
{
|
||||||
|
if (PlayerLock) return false;
|
||||||
|
NSScrollView* scrollView = ((ConsoleWindowController*)pWindow->GetController()).scrollView;
|
||||||
|
[scrollView.horizontalScroller setFloatValue:ViewX/(GBackWdt-ViewWdt)*GetZoom()];
|
||||||
|
[scrollView.verticalScroller setFloatValue:ViewY/(GBackHgt-ViewHgt)*GetZoom()];
|
||||||
|
[scrollView.horizontalScroller setKnobProportion:(float)ViewWdt/(float)GBackWdt/GetZoom()];
|
||||||
|
[scrollView.verticalScroller setKnobProportion:(float)ViewHgt/(float)GBackHgt/GetZoom()];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4Viewport::ViewPositionByScrollBars()
|
||||||
|
{
|
||||||
|
NSScrollView* scrollView = ((ConsoleWindowController*)pWindow->GetController()).scrollView;
|
||||||
|
ViewX = [scrollView.horizontalScroller floatValue] * (GBackWdt-ViewWdt) / GetZoom();
|
||||||
|
ViewY = [scrollView.verticalScroller floatValue] * (GBackHgt-ViewHgt) / GetZoom();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool C4Viewport::TogglePlayerLock()
|
||||||
|
{
|
||||||
|
NSScrollView* scrollView = ((ConsoleWindowController*)pWindow->GetController()).scrollView;
|
||||||
|
if (PlayerLock)
|
||||||
|
{
|
||||||
|
PlayerLock = false;
|
||||||
|
if (scrollView)
|
||||||
|
{
|
||||||
|
[scrollView.verticalScroller setEnabled:YES];
|
||||||
|
[scrollView.horizontalScroller setEnabled:YES];
|
||||||
|
[scrollView setAutohidesScrollers:NO];
|
||||||
|
}
|
||||||
|
ScrollBarsByViewPosition();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
PlayerLock = true;
|
||||||
|
if (scrollView)
|
||||||
|
{
|
||||||
|
[scrollView.verticalScroller setEnabled:NO];
|
||||||
|
[scrollView.horizontalScroller setEnabled:NO];
|
||||||
|
[scrollView setAutohidesScrollers:YES];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,217 @@
|
||||||
|
#define K(k,s,a) {k+CocoaKeycodeOffset,s,a}
|
||||||
|
const C4KeyCodeMapEntry KeyCodeMap [] =
|
||||||
|
{
|
||||||
|
{ K_BACK , "Backspace" , NULL },
|
||||||
|
{ K_TAB , "Tab" , NULL },
|
||||||
|
//{ VK_CLEAR , "Clear" , NULL },
|
||||||
|
{ K_RETURN , "Return" , NULL },
|
||||||
|
|
||||||
|
/*K( VK_SHIFT , "KeyShift" , "Shift" ),
|
||||||
|
K( VK_CONTROL , "KeyControl" , "Control" ),
|
||||||
|
K( VK_MENU , "Menu" , NULL ),
|
||||||
|
K( VK_PAUSE , "Pause" , NULL ),*/
|
||||||
|
|
||||||
|
/* K( VK_CAPITAL , "Capital" , NULL ),
|
||||||
|
K( VK_KANA , "Kana" , NULL ),
|
||||||
|
K( VK_HANGEUL , "Hangeul" , NULL ),
|
||||||
|
K( VK_HANGUL , "Hangul" , NULL ),
|
||||||
|
K( VK_JUNJA , "Junja" , NULL ),
|
||||||
|
K( VK_FINAL , "Final" , NULL ),
|
||||||
|
K( VK_HANJA , "Hanja" , NULL ),
|
||||||
|
K( VK_KANJI , "Kanji" , NULL ),
|
||||||
|
K( VK_ESCAPE , "Escape" , "Esc" ),
|
||||||
|
K( VK_ESCAPE , "Esc" ,NULL ),
|
||||||
|
K( VK_CONVERT , "Convert" , NULL ),
|
||||||
|
K( VK_NONCONVERT , "Noconvert" , NULL ),
|
||||||
|
K( VK_ACCEPT , "Accept" , NULL ),
|
||||||
|
K( VK_MODECHANGE , "Modechange" , NULL ),*/
|
||||||
|
|
||||||
|
{ K_SPACE , "Space" , "Sp" },
|
||||||
|
|
||||||
|
{ K_END , "End" , NULL },
|
||||||
|
{ K_HOME , "Home" , NULL },
|
||||||
|
{ K_LEFT , "Left" , NULL },
|
||||||
|
{ K_UP , "Up" , NULL },
|
||||||
|
{ K_RIGHT , "Right" , NULL },
|
||||||
|
{ K_DOWN , "Down" , NULL },
|
||||||
|
/*{ VK_SELECT , "Select" , NULL },
|
||||||
|
{ VK_PRINT , "Print" , NULL },
|
||||||
|
{ VK_EXECUTE , "Execute" , NULL },
|
||||||
|
{ VK_SNAPSHOT , "Snapshot" , NULL },
|
||||||
|
{ VK_INSERT , "Insert" , "Ins" },*/
|
||||||
|
{ K_DELETE , "Delete" , "Del" },
|
||||||
|
// { VK_HELP , "Help" , NULL },
|
||||||
|
|
||||||
|
K( 29 , "0" , NULL ),
|
||||||
|
K( 18 , "1" , NULL ),
|
||||||
|
K( 19 , "2" , NULL ),
|
||||||
|
K( 20 , "3" , NULL ),
|
||||||
|
K( 21 , "4" , NULL ),
|
||||||
|
K( 23 , "5" , NULL ),
|
||||||
|
K( 22 , "6" , NULL ),
|
||||||
|
K( 26 , "7" , NULL ),
|
||||||
|
K( 28 , "8" , NULL ),
|
||||||
|
K( 25 , "9" , NULL ),
|
||||||
|
|
||||||
|
K( 0 , "A" , NULL ),
|
||||||
|
K( 11 , "B" , NULL ),
|
||||||
|
K( 8 , "C" , NULL ),
|
||||||
|
K( 2 , "D" , NULL ),
|
||||||
|
K( 14 , "E" , NULL ),
|
||||||
|
K( 3 , "F" , NULL ),
|
||||||
|
K( 5 , "G" , NULL ),
|
||||||
|
K( 4 , "H" , NULL ),
|
||||||
|
K( 34 , "I" , NULL ),
|
||||||
|
K( 38 , "J" , NULL ),
|
||||||
|
K( 40 , "K" , NULL ),
|
||||||
|
K( 37 , "L" , NULL ),
|
||||||
|
K( 46 , "M" , NULL ),
|
||||||
|
K( 45 , "N" , NULL ),
|
||||||
|
K( 31 , "O" , NULL ),
|
||||||
|
K( 35 , "P" , NULL ),
|
||||||
|
K( 12 , "Q" , NULL ),
|
||||||
|
K( 15 , "R" , NULL ),
|
||||||
|
K( 1 , "S" , NULL ),
|
||||||
|
K( 17 , "T" , NULL ),
|
||||||
|
K( 32 , "U" , NULL ),
|
||||||
|
K( 9 , "V" , NULL ),
|
||||||
|
K( 13 , "W" , NULL ),
|
||||||
|
K( 7 , "X" , NULL ),
|
||||||
|
K( 6 , "Y" , NULL ),
|
||||||
|
K( 16 , "Z" , NULL ),
|
||||||
|
K( 43 , "Comma" , NULL ),
|
||||||
|
K( 47 , "Period" , NULL ),
|
||||||
|
K( 43 , "Apostrophe", NULL ),
|
||||||
|
|
||||||
|
/*K( VK_LWIN , "WinLeft" , NULL ),
|
||||||
|
K( VK_RWIN , "WinRight" , NULL ),*/
|
||||||
|
//K( VK_APPS , "Apps" , NULL ),
|
||||||
|
|
||||||
|
K( 82 , "Num0" , "N0" ),
|
||||||
|
K( 83 , "Num1" , "N1" ),
|
||||||
|
K( 84 , "Num2" , "N2" ),
|
||||||
|
K( 85 , "Num3" , "N3" ),
|
||||||
|
K( 86 , "Num4" , "N4" ),
|
||||||
|
K( 87 , "Num5" , "N5" ),
|
||||||
|
K( 88 , "Num6" , "N6" ),
|
||||||
|
K( 89 , "Num7" , "N7" ),
|
||||||
|
K( 91 , "Num8" , "N8" ),
|
||||||
|
K( 92 , "Num9" , "N9" ),
|
||||||
|
K( 67 , "Multiply" , "N*" ),
|
||||||
|
K( 69 , "Add" , "N+" ),
|
||||||
|
//K( 65 , "Separator" , "NSep" ),
|
||||||
|
K( 78 , "Subtract" , "N-" ),
|
||||||
|
K( 65 , "Decimal" , "N," ),
|
||||||
|
K( 75 , "Divide" , "N/" ),
|
||||||
|
{ K_F1 , "F1" , NULL },
|
||||||
|
{ K_F2 , "F2" , NULL },
|
||||||
|
{ K_F3 , "F3" , NULL },
|
||||||
|
{ K_F4 , "F4" , NULL },
|
||||||
|
{ K_F5 , "F5" , NULL },
|
||||||
|
{ K_F6 , "F6" , NULL },
|
||||||
|
{ K_F7 , "F7" , NULL },
|
||||||
|
{ K_F8 , "F8" , NULL },
|
||||||
|
{ K_F9 , "F9" , NULL },
|
||||||
|
{ K_F10 , "F10" , NULL },
|
||||||
|
{ K_F11 , "F11" , NULL },
|
||||||
|
{ K_F12 , "F12" , NULL },
|
||||||
|
/*
|
||||||
|
{ K_F13 , "F13" , NULL },
|
||||||
|
{ K_F14 , "F14" , NULL },
|
||||||
|
{ K_F15 , "F15" , NULL },
|
||||||
|
{ K_F16 , "F16" , NULL },
|
||||||
|
{ K_F17 , "F17" , NULL },
|
||||||
|
{ K_F18 , "F18" , NULL },
|
||||||
|
{ K_F19 , "F19" , NULL },
|
||||||
|
{ K_F20 , "F20" , NULL },
|
||||||
|
{ K_F21 , "F21" , NULL },
|
||||||
|
{ K_F22 , "F22" , NULL },
|
||||||
|
{ K_F23 , "F23" , NULL },
|
||||||
|
{ K_F24 , "F24" , NULL },*/
|
||||||
|
K( 71 , "NumLock" , "NLock" ),
|
||||||
|
//K( K_SCROLL , "Scroll" , NULL ),
|
||||||
|
|
||||||
|
//K( VK_PROCESSKEY , "PROCESSKEY" , NULL ),
|
||||||
|
|
||||||
|
/*#if defined VK_SLEEP && defined VK_OEM_NEC_EQUAL
|
||||||
|
K( VK_SLEEP , "Sleep" , NULL ),
|
||||||
|
|
||||||
|
K( VK_OEM_NEC_EQUAL , "OEM_NEC_EQUAL" , NULL ),
|
||||||
|
|
||||||
|
K( VK_OEM_FJ_JISHO , "OEM_FJ_JISHO" , NULL ),
|
||||||
|
K( VK_OEM_FJ_MASSHOU , "OEM_FJ_MASSHOU" , NULL ),
|
||||||
|
K( VK_OEM_FJ_TOUROKU , "OEM_FJ_TOUROKU" , NULL ),
|
||||||
|
K( VK_OEM_FJ_LOYA , "OEM_FJ_LOYA" , NULL ),
|
||||||
|
K( VK_OEM_FJ_ROYA , "OEM_FJ_ROYA" , NULL ),
|
||||||
|
|
||||||
|
K( VK_BROWSER_BACK , "BROWSER_BACK" , NULL ),
|
||||||
|
K( VK_BROWSER_FORWARD , "BROWSER_FORWARD" , NULL ),
|
||||||
|
K( VK_BROWSER_REFRESH , "BROWSER_REFRESH" , NULL ),
|
||||||
|
K( VK_BROWSER_STOP , "BROWSER_STOP" , NULL ),
|
||||||
|
K( VK_BROWSER_SEARCH , "BROWSER_SEARCH" , NULL ),
|
||||||
|
K( VK_BROWSER_FAVORITES , "BROWSER_FAVORITES" , NULL ),
|
||||||
|
K( VK_BROWSER_HOME , "BROWSER_HOME" , NULL ),
|
||||||
|
|
||||||
|
K( VK_VOLUME_MUTE , "VOLUME_MUTE" , NULL ),
|
||||||
|
K( VK_VOLUME_DOWN , "VOLUME_DOWN" , NULL ),
|
||||||
|
K( VK_VOLUME_UP , "VOLUME_UP" , NULL ),
|
||||||
|
K( VK_MEDIA_NEXT_TRACK , "MEDIA_NEXT_TRACK" , NULL ),
|
||||||
|
K( VK_MEDIA_PREV_TRACK , "MEDIA_PREV_TRACK" , NULL ),
|
||||||
|
K( VK_MEDIA_STOP , "MEDIA_STOP" , NULL ),
|
||||||
|
K( VK_MEDIA_PLAY_PAUSE , "MEDIA_PLAY_PAUSE" , NULL ),
|
||||||
|
K( VK_LAUNCH_MAIL , "LAUNCH_MAIL" , NULL ),
|
||||||
|
K( VK_LAUNCH_MEDIA_SELECT , "LAUNCH_MEDIA_SELECT" , NULL ),
|
||||||
|
K( VK_LAUNCH_APP1 , "LAUNCH_APP1" , NULL ),
|
||||||
|
K( VK_LAUNCH_APP2 , "LAUNCH_APP2" , NULL ),
|
||||||
|
|
||||||
|
K( VK_OEM_1 , "OEM Ü" , "Ü" ), // German hax
|
||||||
|
K( VK_OEM_PLUS , "OEM +" , "+" ),
|
||||||
|
K( VK_OEM_COMMA , "OEM ," , "," ),
|
||||||
|
K( VK_OEM_MINUS , "OEM -" , "-" ),
|
||||||
|
K( VK_OEM_PERIOD , "OEM ." , "." ),
|
||||||
|
K( VK_OEM_2 , "OEM 2" , "2" ),
|
||||||
|
K( VK_OEM_3 , "OEM Ö" , "Ö" ), // German hax
|
||||||
|
K( VK_OEM_4 , "OEM 4" , "4" ),
|
||||||
|
K( VK_OEM_5 , "OEM 5" , "5" ),
|
||||||
|
K( VK_OEM_6 , "OEM 6" , "6" ),
|
||||||
|
K( VK_OEM_7 , "OEM Ä" , "Ä" ), // German hax
|
||||||
|
K( VK_OEM_8 , "OEM 8" , "8" ),
|
||||||
|
K( VK_OEM_AX , "AX" , "AX" ),
|
||||||
|
K( VK_OEM_102 , "< > |" , "<" ), // German hax
|
||||||
|
K( VK_ICO_HELP , "Help" , "Help" ),
|
||||||
|
K( VK_ICO_00 , "ICO_00" , "00" ),
|
||||||
|
|
||||||
|
K( VK_ICO_CLEAR , "ICO_CLEAR" , NULL ),
|
||||||
|
|
||||||
|
K( VK_PACKET , "PACKET" , NULL ),
|
||||||
|
|
||||||
|
K( VK_OEM_RESET , "OEM_RESET" , NULL ),
|
||||||
|
K( VK_OEM_JUMP , "OEM_JUMP" , NULL ),
|
||||||
|
K( VK_OEM_PA1 , "OEM_PA1" , NULL ),
|
||||||
|
K( VK_OEM_PA2 , "OEM_PA2" , NULL ),
|
||||||
|
K( VK_OEM_PA3 , "OEM_PA3" , NULL ),
|
||||||
|
K( VK_OEM_WSCTRL , "OEM_WSCTRL" , NULL ),
|
||||||
|
K( VK_OEM_CUSEL , "OEM_CUSEL" , NULL ),
|
||||||
|
K( VK_OEM_ATTN , "OEM_ATTN" , NULL ),
|
||||||
|
K( VK_OEM_FINISH , "OEM_FINISH" , NULL ),
|
||||||
|
K( VK_OEM_COPY , "OEM_COPY" , NULL ),
|
||||||
|
K( VK_OEM_AUTO , "OEM_AUTO" , NULL ),
|
||||||
|
K( VK_OEM_ENLW , "OEM_ENLW" , NULL ),
|
||||||
|
K( VK_OEM_BACKTAB , "OEM_BACKTAB" , NULL ),
|
||||||
|
#endif
|
||||||
|
|
||||||
|
K( VK_ATTN , "ATTN" , NULL ),
|
||||||
|
K( VK_CRSEL , "CRSEL" , NULL ),
|
||||||
|
K( VK_EXSEL , "EXSEL" , NULL ),
|
||||||
|
K( VK_EREOF , "EREOF" , NULL ),
|
||||||
|
K( VK_PLAY , "PLAY" , NULL ),
|
||||||
|
K( VK_ZOOM , "ZOOM" , NULL ),
|
||||||
|
K( VK_NONAME , "NONAME" , NULL ),
|
||||||
|
K( VK_PA1 , "PA1" , NULL ),
|
||||||
|
K( VK_OEM_CLEAR , "OEM_CLEAR" , NULL ),*/
|
||||||
|
|
||||||
|
{ KEY_Any, "Any" , NULL},
|
||||||
|
{ KEY_Default, "None", NULL},
|
||||||
|
{ KEY_Undefined, NULL, NULL}
|
||||||
|
};
|
||||||
|
#undef K
|
|
@ -0,0 +1,74 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <AppKit/AppKit.h>
|
||||||
|
#import <Quartz/Quartz.h>
|
||||||
|
#import <ClonkWindowController.h>
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
@class ClonkOpenGLView;
|
||||||
|
@class ClonkAppDelegate;
|
||||||
|
|
||||||
|
@interface ConsoleWindowController : ClonkWindowController<NSUserInterfaceValidations> {
|
||||||
|
IBOutlet NSTextView* outputTextView;
|
||||||
|
IBOutlet NSComboBox* consoleCombo;
|
||||||
|
IBOutlet NSComboBox* objectCombo;
|
||||||
|
IBOutlet NSPopUpButton* materialsPopup;
|
||||||
|
IBOutlet NSPopUpButton* texturesPopup;
|
||||||
|
IBOutlet NSTextField* frameLabel;
|
||||||
|
IBOutlet NSTextField* scriptLabel;
|
||||||
|
IBOutlet NSTextField* timeLabel;
|
||||||
|
IBOutlet NSTextView* objectPropertiesText;
|
||||||
|
IBOutlet NSScrollView* outputScrollView;
|
||||||
|
IBOutlet IKImageView* previewView;
|
||||||
|
IBOutlet NSPanel* toolsPanel;
|
||||||
|
IBOutlet NSPanel* objectsPanel;
|
||||||
|
IBOutlet NSSegmentedControl* toolSelector;
|
||||||
|
IBOutlet NSSegmentedControl* modeSelector;
|
||||||
|
}
|
||||||
|
@property(readonly) NSTextField* frameLabel;
|
||||||
|
@property(readonly) NSTextField* scriptLabel;
|
||||||
|
@property(readonly) NSTextField* timeLabel;
|
||||||
|
@property(readonly) NSTextView* outputTextView;
|
||||||
|
@property(readonly) NSTextView* objectPropertiesText;
|
||||||
|
@property(readonly) NSPopUpButton* materialsPopup;
|
||||||
|
@property(readonly) NSPopUpButton* texturesPopup;
|
||||||
|
@property(readonly) NSScrollView* outputScrollView;
|
||||||
|
@property(readonly) IKImageView* previewView;
|
||||||
|
@property(readonly) NSWindow* toolsPanel;
|
||||||
|
@property(readonly) NSWindow* objectsPanel;
|
||||||
|
@property(readonly) NSSegmentedControl* toolSelector;
|
||||||
|
@property(readonly) NSSegmentedControl* modeSelector;
|
||||||
|
@property(readonly) NSComboBox* objectCombo;
|
||||||
|
@property(readonly) NSComboBox* consoleCombo;
|
||||||
|
|
||||||
|
- (IBAction) consoleIn:(id)sender;
|
||||||
|
- (IBAction) objectIn:(id)sender;
|
||||||
|
- (IBAction) selectMode:(id)sender;
|
||||||
|
- (IBAction) play:(id)sender;
|
||||||
|
- (IBAction) halt:(id)sender;
|
||||||
|
- (IBAction) selectMaterial:(id)sender;
|
||||||
|
- (IBAction) selectTexture:(id)sender;
|
||||||
|
- (IBAction) selectTool:(id)sender;
|
||||||
|
- (IBAction) selectIFT:(id)sender;
|
||||||
|
- (IBAction) selectMode:(id)sender;
|
||||||
|
- (IBAction) selectLandscapeMode:(id)sender;
|
||||||
|
- (IBAction) setGrade:(id)sender;
|
||||||
|
- (IBAction) kickPlayer:(id)sender;
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,168 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <C4Console.h>
|
||||||
|
#include <C4Player.h>
|
||||||
|
#include <C4PlayerList.h>
|
||||||
|
#include <C4Game.h>
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import <ConsoleWindowController.h>
|
||||||
|
#import <ClonkOpenGLView.h>
|
||||||
|
#import <ClonkAppDelegate.h>
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
@implementation ConsoleWindowController
|
||||||
|
|
||||||
|
@synthesize
|
||||||
|
frameLabel, scriptLabel, timeLabel, outputTextView, objectPropertiesText,
|
||||||
|
materialsPopup, texturesPopup, outputScrollView, previewView,
|
||||||
|
objectsPanel, toolsPanel, toolSelector, modeSelector, objectCombo, consoleCombo;
|
||||||
|
|
||||||
|
- (void) awakeFromNib
|
||||||
|
{
|
||||||
|
[super awakeFromNib];
|
||||||
|
ClonkAppDelegate.instance.consoleController = self;
|
||||||
|
NSWindow* window = self.window;
|
||||||
|
[window makeKeyAndOrderFront:self];
|
||||||
|
[window makeMainWindow];
|
||||||
|
[toolsPanel setBecomesKeyOnlyIfNeeded:YES];
|
||||||
|
[objectsPanel setBecomesKeyOnlyIfNeeded:YES];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void) windowWillClose:(NSNotification*)notification
|
||||||
|
{
|
||||||
|
if (notification.object == objectsPanel)
|
||||||
|
{
|
||||||
|
Console.PropertyDlg.Clear();
|
||||||
|
}
|
||||||
|
else if (notification.object == toolsPanel)
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.Clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int indexFromSender(id sender)
|
||||||
|
{
|
||||||
|
if ([sender respondsToSelector:@selector(selectedSegment)])
|
||||||
|
return [sender selectedSegment];
|
||||||
|
else if ([sender respondsToSelector:@selector(tag)])
|
||||||
|
return [sender tag];
|
||||||
|
else
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectMode:(id)sender
|
||||||
|
{
|
||||||
|
Console.EditCursor.SetMode(indexFromSender(sender));
|
||||||
|
for (NSWindow* w in [[NSApplication sharedApplication] windows])
|
||||||
|
{
|
||||||
|
if ([[w windowController] isKindOfClass:[ClonkWindowController class]])
|
||||||
|
{
|
||||||
|
[w invalidateCursorRectsForView:[[w windowController] openGLView]];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) play:(id)sender
|
||||||
|
{
|
||||||
|
Console.DoPlay();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) halt:(id)sender
|
||||||
|
{
|
||||||
|
Console.DoHalt();
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectMaterial:(id)sender
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.SetMaterial([[(NSPopUpButton*)sender titleOfSelectedItem] cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectTexture:(id)sender
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.SetTexture([[(NSPopUpButton*)sender titleOfSelectedItem] cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectTool:(id)sender
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.SetTool(indexFromSender(sender), NO);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectIFT:(id)sender
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.SetIFT([sender selectedSegment] == 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) selectLandscapeMode:(id)sender
|
||||||
|
{
|
||||||
|
// add one since 0 is "undefined"
|
||||||
|
Console.ToolsDlg.SetLandscapeMode([sender selectedSegment]+1, NO);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) setGrade:(id)sender
|
||||||
|
{
|
||||||
|
Console.ToolsDlg.SetGrade([sender intValue]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// manually catch case of game not running since button validation would require key value binding -.-
|
||||||
|
|
||||||
|
- (IBAction) consoleIn:(id)sender
|
||||||
|
{
|
||||||
|
if (![ClonkAppDelegate isConsoleAndGameRunning])
|
||||||
|
return;
|
||||||
|
Console.In([[consoleCombo stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) objectIn:(id)sender
|
||||||
|
{
|
||||||
|
if (![ClonkAppDelegate isConsoleAndGameRunning])
|
||||||
|
return;
|
||||||
|
Console.EditCursor.In([[objectCombo stringValue] cStringUsingEncoding:NSUTF8StringEncoding]);
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction) kickPlayer:(id)sender
|
||||||
|
{
|
||||||
|
if (!::Control.isCtrlHost())
|
||||||
|
return;
|
||||||
|
::Game.Clients.CtrlRemove(::Game.Clients.getClientByID([sender tag]), LoadResStr("IDS_MSG_KICKBYMENU"));
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)validateUserInterfaceItem:(id<NSValidatedUserInterfaceItem>)item
|
||||||
|
{
|
||||||
|
// enabled when game running and in console mode
|
||||||
|
SEL gameRunningInConsoleModeSelectors[] =
|
||||||
|
{
|
||||||
|
@selector(play:),
|
||||||
|
@selector(halt:),
|
||||||
|
nil
|
||||||
|
};
|
||||||
|
int i = 0;
|
||||||
|
SEL s;
|
||||||
|
while (s = gameRunningInConsoleModeSelectors[i++])
|
||||||
|
{
|
||||||
|
if (s == [item action])
|
||||||
|
return [ClonkAppDelegate isConsoleAndGameRunning];
|
||||||
|
}
|
||||||
|
|
||||||
|
// always enabled
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,72 +0,0 @@
|
||||||
/*
|
|
||||||
* OpenClonk, http://www.openclonk.org
|
|
||||||
*
|
|
||||||
* Copyright (c) 1998-2000 Matthes Bender
|
|
||||||
* Copyright (c) 2004, 2007 Günther Brammer
|
|
||||||
* Copyright (c) 2008 Peter Wortmann
|
|
||||||
* Copyright (c) 2001-2009, RedWolf Design GmbH, http://www.clonk.de
|
|
||||||
*
|
|
||||||
* Portions might be copyrighted by other authors who have contributed
|
|
||||||
* to OpenClonk.
|
|
||||||
*
|
|
||||||
* Permission to use, copy, modify, and/or distribute this software for any
|
|
||||||
* purpose with or without fee is hereby granted, provided that the above
|
|
||||||
* copyright notice and this permission notice appear in all copies.
|
|
||||||
* See isc_license.txt for full license and disclaimer.
|
|
||||||
*
|
|
||||||
* "Clonk" is a registered trademark of Matthes Bender.
|
|
||||||
* See clonk_trademark_license.txt for full license.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <AppKit/AppKit.h>
|
|
||||||
|
|
||||||
namespace MacUtility {
|
|
||||||
|
|
||||||
bool sendFileToTrash(const char* szFilename)
|
|
||||||
{
|
|
||||||
NSString* filename = [NSString stringWithUTF8String: szFilename];
|
|
||||||
return [[NSWorkspace sharedWorkspace]
|
|
||||||
performFileOperation: NSWorkspaceRecycleOperation
|
|
||||||
source: [filename stringByDeletingLastPathComponent]
|
|
||||||
destination: @""
|
|
||||||
files: [NSArray arrayWithObject: [filename lastPathComponent]]
|
|
||||||
tag: 0];
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isGerman()
|
|
||||||
{
|
|
||||||
id languages = [[NSUserDefaults standardUserDefaults] valueForKey:@"AppleLanguages"];
|
|
||||||
return languages && [[languages objectAtIndex:0] isEqualToString:@"de"];
|
|
||||||
}
|
|
||||||
|
|
||||||
void restart(char*[])
|
|
||||||
{
|
|
||||||
NSString* filename = [[NSBundle mainBundle] bundlePath];
|
|
||||||
NSString* cmd = [@"open " stringByAppendingString: filename];
|
|
||||||
system([cmd UTF8String]);
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace {
|
|
||||||
int repeatDelayCfgValue(NSString* key, int defaultValue) {
|
|
||||||
id value = [[NSUserDefaults standardUserDefaults] valueForKey:key];
|
|
||||||
int result = value != nil ? [value intValue] * 15 : defaultValue;
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int keyRepeatDelay(int defaultValue) {
|
|
||||||
return repeatDelayCfgValue(@"InitialKeyRepeat", defaultValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
int keyRepeatInterval(int defaultValue) {
|
|
||||||
return repeatDelayCfgValue(@"KeyRepeat", defaultValue);
|
|
||||||
}
|
|
||||||
|
|
||||||
void ensureWindowInFront() {
|
|
||||||
if ([NSApp isActive]) {
|
|
||||||
NSWindow* w = [NSApp mainWindow];
|
|
||||||
[w makeKeyAndOrderFront:NSApp];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -33,7 +33,7 @@ bool CStdApp::ScheduleProcs(int iTimeout)
|
||||||
// Always fail after quit message
|
// Always fail after quit message
|
||||||
if(fQuitMsgReceived)
|
if(fQuitMsgReceived)
|
||||||
return false;
|
return false;
|
||||||
#if defined(USE_SDL_MAINLOOP)
|
#if defined(USE_SDL_MAINLOOP) || defined(USE_COCOA)
|
||||||
// Unfortunately, the SDL event loop needs to be polled
|
// Unfortunately, the SDL event loop needs to be polled
|
||||||
FlushMessages();
|
FlushMessages();
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -46,6 +46,9 @@ public:
|
||||||
#else
|
#else
|
||||||
bool Init(CStdWindow * pWindow, CStdApp *pApp);
|
bool Init(CStdWindow * pWindow, CStdApp *pApp);
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
/*NSOpenGLContext*/void* GetNativeCtx();
|
||||||
|
#endif
|
||||||
|
|
||||||
bool Select(bool verbose = false); // select this context
|
bool Select(bool verbose = false); // select this context
|
||||||
void Deselect(); // select this context
|
void Deselect(); // select this context
|
||||||
|
@ -62,6 +65,8 @@ protected:
|
||||||
HDC hDC; // device context handle
|
HDC hDC; // device context handle
|
||||||
#elif defined(USE_X11)
|
#elif defined(USE_X11)
|
||||||
/*GLXContext*/void * ctx;
|
/*GLXContext*/void * ctx;
|
||||||
|
#elif defined(USE_COCOA)
|
||||||
|
/*NSOpenGLContext*/void* ctx;
|
||||||
#endif
|
#endif
|
||||||
unsigned int cx,cy; // context window size
|
unsigned int cx,cy; // context window size
|
||||||
|
|
||||||
|
|
|
@ -19,25 +19,31 @@
|
||||||
|
|
||||||
// based on SDL implementation
|
// based on SDL implementation
|
||||||
|
|
||||||
#import <AppKit/AppKit.h>
|
#include <GL/glew.h>
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import "ClonkWindowController.h"
|
||||||
|
|
||||||
#include <C4Include.h>
|
#include <C4Include.h>
|
||||||
#include <StdWindow.h>
|
#include <StdWindow.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
bool CStdApp::Copy(const StdStrBuf & text, bool fClipboard) {
|
bool CStdApp::Copy(const StdStrBuf & text, bool fClipboard)
|
||||||
|
{
|
||||||
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
|
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
|
||||||
[pasteboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
|
[pasteboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
|
||||||
NSString* string = [NSString stringWithCString:text.getData() encoding:NSUTF8StringEncoding];
|
NSString* string = [NSString stringWithCString:text.getData() encoding:NSUTF8StringEncoding];
|
||||||
if (![pasteboard setString:string forType:NSStringPboardType]) {
|
if (![pasteboard setString:string forType:NSStringPboardType])
|
||||||
|
{
|
||||||
NSLog(@"Writing to Cocoa pasteboard failed");
|
NSLog(@"Writing to Cocoa pasteboard failed");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
StdStrBuf CStdApp::Paste(bool fClipboard) {
|
StdStrBuf CStdApp::Paste(bool fClipboard)
|
||||||
if (fClipboard) {
|
{
|
||||||
|
if (fClipboard)
|
||||||
|
{
|
||||||
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
|
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
|
||||||
const char* chars = [[pasteboard stringForType:NSStringPboardType] cStringUsingEncoding:NSUTF8StringEncoding];
|
const char* chars = [[pasteboard stringForType:NSStringPboardType] cStringUsingEncoding:NSUTF8StringEncoding];
|
||||||
return StdStrBuf(chars);
|
return StdStrBuf(chars);
|
||||||
|
@ -45,11 +51,13 @@ StdStrBuf CStdApp::Paste(bool fClipboard) {
|
||||||
return StdStrBuf(0);
|
return StdStrBuf(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool CStdApp::IsClipboardFull(bool fClipboard) {
|
bool CStdApp::IsClipboardFull(bool fClipboard)
|
||||||
|
{
|
||||||
return [[NSPasteboard generalPasteboard] availableTypeFromArray:[NSArray arrayWithObject:NSStringPboardType]];
|
return [[NSPasteboard generalPasteboard] availableTypeFromArray:[NSArray arrayWithObject:NSStringPboardType]];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CStdApp::ClearClipboard(bool fClipboard) {
|
void CStdApp::ClearClipboard(bool fClipboard)
|
||||||
|
{
|
||||||
[[NSPasteboard generalPasteboard] declareTypes:[NSArray array] owner:nil];
|
[[NSPasteboard generalPasteboard] declareTypes:[NSArray array] owner:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,10 +67,115 @@ void CStdApp::MessageDialog(const char * message)
|
||||||
[alert runModal];
|
[alert runModal];
|
||||||
}
|
}
|
||||||
|
|
||||||
void CStdWindow::FlashWindow() {
|
void CStdWindow::FlashWindow()
|
||||||
|
{
|
||||||
[NSApp requestUserAttention:NSCriticalRequest];
|
[NSApp requestUserAttention:NSCriticalRequest];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
CStdApp::CStdApp(): Active(false), fQuitMsgReceived(false), Location(""), DoNotDelay(false), MainThread(pthread_self()), fDspModeSet(false)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
CStdApp::~CStdApp() {}
|
||||||
|
|
||||||
|
bool CStdApp::Init(int argc, char * argv[])
|
||||||
|
{
|
||||||
|
// Set locale
|
||||||
|
setlocale(LC_ALL,"");
|
||||||
|
|
||||||
|
// Custom initialization
|
||||||
|
return DoInit (argc, argv);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CStdApp::Clear() {}
|
||||||
|
|
||||||
|
void CStdApp::Quit()
|
||||||
|
{
|
||||||
|
fQuitMsgReceived = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdApp::FlushMessages()
|
||||||
|
{
|
||||||
|
// Always fail after quit message
|
||||||
|
if(fQuitMsgReceived)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
while (CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, TRUE) == kCFRunLoopRunHandledSource);
|
||||||
|
NSEvent* event;
|
||||||
|
while (event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSEventTrackingRunLoopMode dequeue:YES])
|
||||||
|
{
|
||||||
|
HandleNSEvent(event);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdApp::HandleNSEvent(void* event)
|
||||||
|
{
|
||||||
|
NSEvent* the_event = (NSEvent*)event;
|
||||||
|
KeyMask = [the_event modifierFlags] & (MK_SHIFT|MK_CONTROL); // MK_* and NS*KeyMask values correspond
|
||||||
|
[NSApp sendEvent:the_event];
|
||||||
|
[NSApp updateWindows];
|
||||||
|
/*
|
||||||
|
// Everything else goes to the window.
|
||||||
|
if (pWindow)
|
||||||
|
pWindow->HandleMessage(event);*/
|
||||||
|
}
|
||||||
|
|
||||||
|
static int32_t bitDepthFromPixelEncoding(CFStringRef encoding)
|
||||||
|
{
|
||||||
|
// copy-pasta: http://gitorious.org/ogre3d/mainlinemirror/commit/722dbd024aa91a6401850788db76af89c364d6e7
|
||||||
|
if (CFStringCompare(encoding, CFSTR(IO32BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
return 32;
|
||||||
|
else if(CFStringCompare(encoding, CFSTR(IO16BitDirectPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
return 16;
|
||||||
|
else if(CFStringCompare(encoding, CFSTR(IO8BitIndexedPixels), kCFCompareCaseInsensitive) == kCFCompareEqualTo)
|
||||||
|
return 8;
|
||||||
|
else
|
||||||
|
return -1; // fail
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdApp::GetIndexedDisplayMode(int32_t iIndex, int32_t *piXRes, int32_t *piYRes, int32_t *piBitDepth, uint32_t iMonitor)
|
||||||
|
{
|
||||||
|
// No support for multiple monitors.
|
||||||
|
CFArrayRef array = CGDisplayCopyAllDisplayModes(iMonitor, NULL);
|
||||||
|
bool good_index = iIndex >= 0 && iIndex < (int32_t)CFArrayGetCount(array);
|
||||||
|
if (good_index)
|
||||||
|
{
|
||||||
|
CGDisplayModeRef displayMode = (CGDisplayModeRef)CFArrayGetValueAtIndex(array, iIndex);
|
||||||
|
*piXRes = CGDisplayModeGetWidth(displayMode);
|
||||||
|
*piYRes = CGDisplayModeGetHeight(displayMode);
|
||||||
|
CFStringRef pixelEncoding = CGDisplayModeCopyPixelEncoding(displayMode);
|
||||||
|
*piBitDepth = bitDepthFromPixelEncoding(pixelEncoding);
|
||||||
|
CFRelease(pixelEncoding);
|
||||||
|
}
|
||||||
|
CFRelease(array);
|
||||||
|
return good_index;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdApp::SetVideoMode(unsigned int iXRes, unsigned int iYRes, unsigned int iColorDepth, unsigned int iMonitor, bool fFullScreen)
|
||||||
|
{
|
||||||
|
pWindow->SetSize(iXRes, iYRes);
|
||||||
|
ClonkWindowController* controller = (ClonkWindowController*)pWindow->GetController();
|
||||||
|
[controller setFullscreen:fFullScreen];
|
||||||
|
NSWindow* window = controller.window;
|
||||||
|
[window center];
|
||||||
|
[window setContentMinSize:NSMakeSize(iXRes, iYRes)];
|
||||||
|
[window setContentMaxSize:NSMakeSize(iXRes, iYRes)];
|
||||||
|
if (!fFullScreen)
|
||||||
|
[window makeKeyAndOrderFront:nil];
|
||||||
|
OnResolutionChanged(iXRes, iYRes);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdApp::RestoreVideoMode()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
// Event-pipe-whatever stuff I do not understand.
|
// Event-pipe-whatever stuff I do not understand.
|
||||||
|
|
||||||
bool CStdApp::ReadStdInCommand()
|
bool CStdApp::ReadStdInCommand()
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
/*
|
||||||
|
* OpenClonk, http://www.openclonk.org
|
||||||
|
*
|
||||||
|
* Portions might be copyrighted by other authors who have contributed
|
||||||
|
* to OpenClonk.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
* See isc_license.txt for full license and disclaimer.
|
||||||
|
*
|
||||||
|
* "Clonk" is a registered trademark of Matthes Bender.
|
||||||
|
* See clonk_trademark_license.txt for full license.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <C4Include.h>
|
||||||
|
#include <Standard.h>
|
||||||
|
#include <StdRegistry.h>
|
||||||
|
#include <StdGL.h>
|
||||||
|
#include <StdWindow.h>
|
||||||
|
#include <C4Version.h>
|
||||||
|
#include <C4Application.h>
|
||||||
|
|
||||||
|
#import <Appkit/AppKit.h>
|
||||||
|
#import <ClonkWindowController.h>
|
||||||
|
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
|
||||||
|
#define ctrler ((ClonkWindowController*)this->controller)
|
||||||
|
|
||||||
|
CStdWindow::CStdWindow ():
|
||||||
|
Active(false),
|
||||||
|
pSurface(0),
|
||||||
|
controller(nil)
|
||||||
|
{}
|
||||||
|
|
||||||
|
CStdWindow::~CStdWindow () {}
|
||||||
|
|
||||||
|
CStdWindow * CStdWindow::Init(CStdApp * pApp)
|
||||||
|
{
|
||||||
|
return Init(CStdWindow::W_Fullscreen, pApp, C4ENGINENAME);
|
||||||
|
}
|
||||||
|
|
||||||
|
static NSString* windowNibNameForWindowKind(CStdWindow::WindowKind kind)
|
||||||
|
{
|
||||||
|
switch (kind)
|
||||||
|
{
|
||||||
|
case CStdWindow::W_GuiWindow:
|
||||||
|
return @"ConsoleGUIWindow";
|
||||||
|
case CStdWindow::W_Fullscreen:
|
||||||
|
return @"FullscreenWindow";
|
||||||
|
case CStdWindow::W_Viewport:
|
||||||
|
return @"ClonkWindow";
|
||||||
|
default:
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CStdWindow * CStdWindow::Init(CStdWindow::WindowKind windowKind, CStdApp * pApp, const char * Title, CStdWindow * pParent, bool HideCursor)
|
||||||
|
{
|
||||||
|
Active = true;
|
||||||
|
|
||||||
|
// Create window
|
||||||
|
ClonkWindowController* controller = [ClonkWindowController new];
|
||||||
|
this->controller = controller;
|
||||||
|
[NSBundle loadNibNamed:windowNibNameForWindowKind(windowKind) owner:controller];
|
||||||
|
[controller setStdWindow:this];
|
||||||
|
SetTitle(Title);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdWindow::Clear()
|
||||||
|
{
|
||||||
|
// Destroy window
|
||||||
|
ClonkWindowController* controller;
|
||||||
|
if (controller = ctrler)
|
||||||
|
{
|
||||||
|
[controller.openGLView setNeedsDisplay:NO];
|
||||||
|
[controller.openGLView removeFromSuperview];
|
||||||
|
[controller setStdWindow:NULL];
|
||||||
|
[controller close];
|
||||||
|
[controller release];
|
||||||
|
this->controller = nil;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdWindow::StorePosition(const char *szWindowName, const char *szSubKey, bool fStoreSize)
|
||||||
|
{
|
||||||
|
[ctrler setWindowFrameAutosaveName:[NSString stringWithFormat:@"%s_%s", szWindowName, szSubKey]];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdWindow::RestorePosition(const char *szWindowName, const char *szSubKey, bool fHidden)
|
||||||
|
{
|
||||||
|
StorePosition(szWindowName, szSubKey, true);
|
||||||
|
if (fHidden)
|
||||||
|
[ctrler.window orderOut:ctrler];
|
||||||
|
else
|
||||||
|
[ctrler.window orderFront:ctrler];
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdWindow::SetTitle(const char *szToTitle)
|
||||||
|
{
|
||||||
|
ClonkWindowController* controller;
|
||||||
|
if ((controller = ctrler) && controller.window)
|
||||||
|
[controller.window setTitle:[NSString stringWithUTF8String:szToTitle ? szToTitle : ""]];
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CStdWindow::GetSize(RECT * pRect)
|
||||||
|
{
|
||||||
|
ClonkWindowController* controller = ctrler;
|
||||||
|
NSView* view = controller.openGLView ? controller.openGLView : controller.window.contentView;
|
||||||
|
NSRect r = [view frame];
|
||||||
|
pRect->top = 0;
|
||||||
|
pRect->left = 0;
|
||||||
|
pRect->right = r.size.width;
|
||||||
|
pRect->bottom = r.size.height;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdWindow::SetSize(unsigned int cx, unsigned int cy)
|
||||||
|
{
|
||||||
|
ClonkWindowController* controller = ctrler;
|
||||||
|
if (controller.window)
|
||||||
|
{
|
||||||
|
[controller.window setContentSize:NSMakeSize(cx, cy)];
|
||||||
|
//[controller.window center];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdWindow::HandleMessage(void*)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void CStdWindow::RequestUpdate()
|
||||||
|
{
|
||||||
|
[ctrler.openGLView display];
|
||||||
|
}
|
||||||
|
|
||||||
|
int K_F1 = 122 + CocoaKeycodeOffset;
|
||||||
|
int K_F2 = 120 + CocoaKeycodeOffset;
|
||||||
|
int K_F3 = 99 + CocoaKeycodeOffset;
|
||||||
|
int K_F4 = 118 + CocoaKeycodeOffset;
|
||||||
|
int K_F5 = 96 + CocoaKeycodeOffset;
|
||||||
|
int K_F6 = 97 + CocoaKeycodeOffset;
|
||||||
|
int K_F7 = 98 + CocoaKeycodeOffset;
|
||||||
|
int K_F8 = 100 + CocoaKeycodeOffset;
|
||||||
|
int K_F9 = 101 + CocoaKeycodeOffset;
|
||||||
|
int K_F10 = 109 + CocoaKeycodeOffset;
|
||||||
|
int K_F11 = 103 + CocoaKeycodeOffset;
|
||||||
|
int K_F12 = 111 + CocoaKeycodeOffset;
|
||||||
|
int K_ADD = 69 + CocoaKeycodeOffset;
|
||||||
|
int K_SUBTRACT = 78 + CocoaKeycodeOffset;
|
||||||
|
int K_MULTIPLY = 67 + CocoaKeycodeOffset;
|
||||||
|
int K_ESCAPE = 53 + CocoaKeycodeOffset;
|
||||||
|
int K_PAUSE = NSPauseFunctionKey + CocoaKeycodeOffset;
|
||||||
|
int K_TAB = 48 + CocoaKeycodeOffset;
|
||||||
|
int K_RETURN = 36 + CocoaKeycodeOffset;
|
||||||
|
int K_DELETE = 117 + CocoaKeycodeOffset;
|
||||||
|
int K_INSERT = 125125125 + CocoaKeycodeOffset;
|
||||||
|
int K_BACK = 51 + CocoaKeycodeOffset;
|
||||||
|
int K_SPACE = 49 + CocoaKeycodeOffset;
|
||||||
|
int K_UP = 126 + CocoaKeycodeOffset;
|
||||||
|
int K_DOWN = 125 + CocoaKeycodeOffset;
|
||||||
|
int K_LEFT = 123 + CocoaKeycodeOffset;
|
||||||
|
int K_RIGHT = 124 + CocoaKeycodeOffset;
|
||||||
|
int K_HOME = 115 + CocoaKeycodeOffset;
|
||||||
|
int K_END = 119 + CocoaKeycodeOffset;
|
||||||
|
int K_SCROLL = 1000 + CocoaKeycodeOffset;
|
||||||
|
int K_MENU = 1000 + CocoaKeycodeOffset;
|
||||||
|
int K_PAGEUP = 116 + CocoaKeycodeOffset;
|
||||||
|
int K_PAGEDOWN = 121 + CocoaKeycodeOffset;
|
||||||
|
int KEY_M = 46 + CocoaKeycodeOffset;
|
||||||
|
int KEY_T = 17 + CocoaKeycodeOffset;
|
||||||
|
int KEY_W = 13 + CocoaKeycodeOffset;
|
||||||
|
int KEY_I = 34 + CocoaKeycodeOffset;
|
||||||
|
int KEY_C = 8 + CocoaKeycodeOffset;
|
||||||
|
int KEY_V = 9 + CocoaKeycodeOffset;
|
||||||
|
int KEY_X = 7 + CocoaKeycodeOffset;
|
||||||
|
int KEY_A = 0 + CocoaKeycodeOffset;
|
||||||
|
int MK_SHIFT = NSShiftKeyMask;
|
||||||
|
int MK_CONTROL = NSControlKeyMask;
|
||||||
|
|
||||||
|
#endif
|
|
@ -220,8 +220,52 @@ const int SEC1_TIMER=1,SEC1_MSEC=1000;
|
||||||
#define KEY_A 0
|
#define KEY_A 0
|
||||||
#define MK_SHIFT 0
|
#define MK_SHIFT 0
|
||||||
#define MK_CONTROL 0
|
#define MK_CONTROL 0
|
||||||
#else
|
#elif defined(USE_COCOA)
|
||||||
#error need window system
|
// declare as extern variables and initialize them in StdMacWindow.mm so as to not include objc headers
|
||||||
|
const int CocoaKeycodeOffset = 300;
|
||||||
|
extern int K_F1;
|
||||||
|
extern int K_F2;
|
||||||
|
extern int K_F3;
|
||||||
|
extern int K_F4;
|
||||||
|
extern int K_F5;
|
||||||
|
extern int K_F6;
|
||||||
|
extern int K_F7;
|
||||||
|
extern int K_F8;
|
||||||
|
extern int K_F9;
|
||||||
|
extern int K_F10;
|
||||||
|
extern int K_F11;
|
||||||
|
extern int K_F12;
|
||||||
|
extern int K_ADD;
|
||||||
|
extern int K_SUBTRACT;
|
||||||
|
extern int K_MULTIPLY;
|
||||||
|
extern int K_ESCAPE;
|
||||||
|
extern int K_PAUSE;
|
||||||
|
extern int K_TAB;
|
||||||
|
extern int K_RETURN;
|
||||||
|
extern int K_DELETE;
|
||||||
|
extern int K_INSERT;
|
||||||
|
extern int K_BACK;
|
||||||
|
extern int K_SPACE;
|
||||||
|
extern int K_UP;
|
||||||
|
extern int K_DOWN;
|
||||||
|
extern int K_LEFT;
|
||||||
|
extern int K_RIGHT;
|
||||||
|
extern int K_HOME;
|
||||||
|
extern int K_END;
|
||||||
|
extern int K_SCROLL;
|
||||||
|
extern int K_MENU;
|
||||||
|
extern int K_PAGEUP;
|
||||||
|
extern int K_PAGEDOWN;
|
||||||
|
extern int KEY_M;
|
||||||
|
extern int KEY_T;
|
||||||
|
extern int KEY_W;
|
||||||
|
extern int KEY_I;
|
||||||
|
extern int KEY_C;
|
||||||
|
extern int KEY_V;
|
||||||
|
extern int KEY_X;
|
||||||
|
extern int KEY_A;
|
||||||
|
extern int MK_SHIFT;
|
||||||
|
extern int MK_CONTROL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum C4AppHandleResult
|
enum C4AppHandleResult
|
||||||
|
@ -294,6 +338,12 @@ private:
|
||||||
int width, height;
|
int width, height;
|
||||||
protected:
|
protected:
|
||||||
virtual void HandleMessage(SDL_Event&) {}
|
virtual void HandleMessage(SDL_Event&) {}
|
||||||
|
#elif defined(USE_COCOA)
|
||||||
|
protected:
|
||||||
|
/*ClonkWindowController*/void* controller;
|
||||||
|
virtual void HandleMessage(/*NSEvent*/void*);
|
||||||
|
public:
|
||||||
|
/*ClonkWindowController*/void* GetController() {return controller;}
|
||||||
#endif
|
#endif
|
||||||
public:
|
public:
|
||||||
// request that this window be redrawn in the near future (including immediately)
|
// request that this window be redrawn in the near future (including immediately)
|
||||||
|
@ -466,6 +516,9 @@ protected:
|
||||||
# if defined(USE_SDL_MAINLOOP)
|
# if defined(USE_SDL_MAINLOOP)
|
||||||
void HandleSDLEvent(SDL_Event& event);
|
void HandleSDLEvent(SDL_Event& event);
|
||||||
# endif
|
# endif
|
||||||
|
#ifdef USE_COCOA
|
||||||
|
void HandleNSEvent(/*NSEvent*/void* event);
|
||||||
|
#endif
|
||||||
const char * Location;
|
const char * Location;
|
||||||
pthread_t MainThread;
|
pthread_t MainThread;
|
||||||
bool DoNotDelay;
|
bool DoNotDelay;
|
||||||
|
|
Binary file not shown.
|
@ -2,17 +2,17 @@
|
||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">1060</int>
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
<string key="IBDocument.SystemVersion">10C540</string>
|
<string key="IBDocument.SystemVersion">10F569</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">740</string>
|
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||||
<string key="IBDocument.AppKitVersion">1038.25</string>
|
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">458.00</string>
|
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="NS.object.0">740</string>
|
<string key="NS.object.0">788</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<integer value="57"/>
|
<integer value="5"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSArray" key="IBDocument.PluginDependencies">
|
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
@ -27,181 +27,163 @@
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="IBDocument.RootObjects" id="119274832">
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSCustomObject" id="818653880">
|
<object class="NSCustomObject" id="1001">
|
||||||
<object class="NSMutableString" key="NSClassName">
|
<string key="NSClassName">ClonkWindowController</string>
|
||||||
<characters key="NS.bytes">NSApplication</characters>
|
|
||||||
</object>
|
|
||||||
</object>
|
</object>
|
||||||
<object class="NSCustomObject" id="22732454">
|
<object class="NSCustomObject" id="1003">
|
||||||
<string key="NSClassName">FirstResponder</string>
|
<string key="NSClassName">FirstResponder</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSCustomObject" id="1044128150">
|
<object class="NSCustomObject" id="1004">
|
||||||
<string key="NSClassName">NSApplication</string>
|
<string key="NSClassName">NSApplication</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMenu" id="413282662">
|
<object class="NSWindowTemplate" id="230815636">
|
||||||
<string key="NSTitle">SDLMain</string>
|
<int key="NSWindowStyleMask">15</int>
|
||||||
<object class="NSMutableArray" key="NSMenuItems">
|
<int key="NSWindowBacking">2</int>
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<string key="NSWindowRect">{{584, 378}, {480, 270}}</string>
|
||||||
<object class="NSMenuItem" id="166399698">
|
<int key="NSWTFlags">611844096</int>
|
||||||
<reference key="NSMenu" ref="413282662"/>
|
<string key="NSWindowTitle">Viewport</string>
|
||||||
<string key="NSTitle">Clonk</string>
|
<string key="NSWindowClass">NSWindow</string>
|
||||||
<string key="NSKeyEquiv"/>
|
<nil key="NSViewClass"/>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<object class="NSView" key="NSWindowView" id="516276665">
|
||||||
<object class="NSCustomResource" key="NSOnImage" id="236001633">
|
<reference key="NSNextResponder"/>
|
||||||
<string key="NSClassName">NSImage</string>
|
<int key="NSvFlags">256</int>
|
||||||
<string key="NSResourceName">NSMenuCheckmark</string>
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
</object>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSCustomResource" key="NSMixedImage" id="855621955">
|
<object class="NSScrollView" id="363957052">
|
||||||
<string key="NSClassName">NSImage</string>
|
<reference key="NSNextResponder" ref="516276665"/>
|
||||||
<string key="NSResourceName">NSMenuMixedState</string>
|
<int key="NSvFlags">274</int>
|
||||||
</object>
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
<string key="NSAction">submenuAction:</string>
|
|
||||||
<object class="NSMenu" key="NSSubmenu" id="671325961">
|
|
||||||
<string key="NSTitle">Clonk</string>
|
|
||||||
<object class="NSMutableArray" key="NSMenuItems">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSMenuItem" id="905940774">
|
<object class="NSClipView" id="1010538885">
|
||||||
<reference key="NSMenu" ref="671325961"/>
|
<reference key="NSNextResponder" ref="363957052"/>
|
||||||
<string key="NSTitle">Hide Clonk</string>
|
<int key="NSvFlags">2304</int>
|
||||||
<string key="NSKeyEquiv">h</string>
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<object class="NSCustomView" id="190287318">
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
<reference key="NSNextResponder" ref="1010538885"/>
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
<int key="NSvFlags">274</int>
|
||||||
|
<string key="NSFrameSize">{465, 255}</string>
|
||||||
|
<reference key="NSSuperview" ref="1010538885"/>
|
||||||
|
<bool key="NSViewCanDrawConcurrently">YES</bool>
|
||||||
|
<string key="NSClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrame">{{1, 1}, {465, 255}}</string>
|
||||||
|
<reference key="NSSuperview" ref="363957052"/>
|
||||||
|
<reference key="NSNextKeyView" ref="190287318"/>
|
||||||
|
<reference key="NSDocView" ref="190287318"/>
|
||||||
|
<object class="NSColor" key="NSBGColor">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<int key="NScvFlags">6</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="430749323">
|
<object class="NSScroller" id="802708292">
|
||||||
<reference key="NSMenu" ref="671325961"/>
|
<reference key="NSNextResponder" ref="363957052"/>
|
||||||
<string key="NSTitle">Hide Others</string>
|
<int key="NSvFlags">256</int>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSFrame">{{466, 1}, {15, 255}}</string>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<reference key="NSSuperview" ref="363957052"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
<reference key="NSTarget" ref="363957052"/>
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
<string key="NSAction">_doScroller:</string>
|
||||||
|
<double key="NSCurValue">1</double>
|
||||||
|
<double key="NSPercent">0.96363627910614014</double>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="45658860">
|
<object class="NSScroller" id="316701890">
|
||||||
<reference key="NSMenu" ref="671325961"/>
|
<reference key="NSNextResponder" ref="363957052"/>
|
||||||
<string key="NSTitle">Show All</string>
|
<int key="NSvFlags">256</int>
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSFrame">{{1, 256}, {465, 15}}</string>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<reference key="NSSuperview" ref="363957052"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
<int key="NSsFlags">1</int>
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
<reference key="NSTarget" ref="363957052"/>
|
||||||
</object>
|
<string key="NSAction">_doScroller:</string>
|
||||||
<object class="NSMenuItem" id="1010818828">
|
<double key="NSPercent">0.50602412223815918</double>
|
||||||
<reference key="NSMenu" ref="671325961"/>
|
|
||||||
<bool key="NSIsDisabled">YES</bool>
|
|
||||||
<bool key="NSIsSeparator">YES</bool>
|
|
||||||
<string key="NSTitle"/>
|
|
||||||
<string key="NSKeyEquiv"/>
|
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMenuItem" id="942357333">
|
|
||||||
<reference key="NSMenu" ref="671325961"/>
|
|
||||||
<string key="NSTitle">Quit Clonk</string>
|
|
||||||
<string key="NSKeyEquiv">q</string>
|
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<string key="NSName">_NSAppleMenu</string>
|
<string key="NSFrame">{{-1, -1}, {482, 272}}</string>
|
||||||
</object>
|
<reference key="NSSuperview" ref="516276665"/>
|
||||||
</object>
|
<reference key="NSNextKeyView" ref="1010538885"/>
|
||||||
<object class="NSMenuItem" id="143812656">
|
<bool key="NSViewCanDrawConcurrently">YES</bool>
|
||||||
<reference key="NSMenu" ref="413282662"/>
|
<int key="NSsFlags">50</int>
|
||||||
<string key="NSTitle">Window</string>
|
<reference key="NSVScroller" ref="802708292"/>
|
||||||
<string key="NSKeyEquiv"/>
|
<reference key="NSHScroller" ref="316701890"/>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<reference key="NSContentView" ref="1010538885"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
|
||||||
<string key="NSAction">submenuAction:</string>
|
|
||||||
<object class="NSMenu" key="NSSubmenu" id="594976293">
|
|
||||||
<object class="NSMutableString" key="NSTitle">
|
|
||||||
<characters key="NS.bytes">Window</characters>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableArray" key="NSMenuItems">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<object class="NSMenuItem" id="687345396">
|
|
||||||
<reference key="NSMenu" ref="594976293"/>
|
|
||||||
<string key="NSTitle">Minimize</string>
|
|
||||||
<string key="NSKeyEquiv">m</string>
|
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="236001633"/>
|
|
||||||
<reference key="NSMixedImage" ref="855621955"/>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<string key="NSName">_NSWindowsMenu</string>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<string key="NSFrameSize">{480, 270}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
</object>
|
</object>
|
||||||
<string key="NSName">_NSMainMenu</string>
|
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
|
||||||
</object>
|
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
<object class="NSCustomObject" id="3445348">
|
|
||||||
<string key="NSClassName">NSFontManager</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="898186092">
|
|
||||||
<string key="NSClassName">ClonkAppDelegate</string>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
<object class="NSMutableArray" key="connectionRecords">
|
<object class="NSMutableArray" key="connectionRecords">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">hideOtherApplications:</string>
|
<string key="label">window</string>
|
||||||
<reference key="source" ref="818653880"/>
|
<reference key="source" ref="1001"/>
|
||||||
<reference key="destination" ref="430749323"/>
|
<reference key="destination" ref="230815636"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">146</int>
|
<int key="connectionID">10</int>
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">hide:</string>
|
|
||||||
<reference key="source" ref="818653880"/>
|
|
||||||
<reference key="destination" ref="905940774"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">152</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">unhideAllApplications:</string>
|
|
||||||
<reference key="source" ref="818653880"/>
|
|
||||||
<reference key="destination" ref="45658860"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">153</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">performMiniaturize:</string>
|
|
||||||
<reference key="source" ref="22732454"/>
|
|
||||||
<reference key="destination" ref="687345396"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">328</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">terminate:</string>
|
|
||||||
<reference key="source" ref="1044128150"/>
|
|
||||||
<reference key="destination" ref="942357333"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">339</int>
|
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">delegate</string>
|
<string key="label">delegate</string>
|
||||||
<reference key="source" ref="1044128150"/>
|
<reference key="source" ref="230815636"/>
|
||||||
<reference key="destination" ref="898186092"/>
|
<reference key="destination" ref="1001"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">341</int>
|
<int key="connectionID">12</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">openGLView</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="190287318"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">31</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">scroll:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="802708292"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">32</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">scroll:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="316701890"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">33</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">scrollView</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="363957052"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">34</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">initialFirstResponder</string>
|
||||||
|
<reference key="source" ref="230815636"/>
|
||||||
|
<reference key="destination" ref="190287318"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">36</int>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
@ -210,184 +192,104 @@
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">0</int>
|
<int key="objectID">0</int>
|
||||||
<reference key="object" ref="0"/>
|
<reference key="object" ref="0"/>
|
||||||
<reference key="children" ref="119274832"/>
|
<reference key="children" ref="1000"/>
|
||||||
<nil key="parent"/>
|
<nil key="parent"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-2</int>
|
<int key="objectID">-2</int>
|
||||||
<reference key="object" ref="818653880"/>
|
<reference key="object" ref="1001"/>
|
||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string key="objectName">File's Owner</string>
|
<string key="objectName">File's Owner</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-1</int>
|
<int key="objectID">-1</int>
|
||||||
<reference key="object" ref="22732454"/>
|
<reference key="object" ref="1003"/>
|
||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string key="objectName">First Responder</string>
|
<string key="objectName">First Responder</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">29</int>
|
|
||||||
<reference key="object" ref="413282662"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="166399698"/>
|
|
||||||
<reference ref="143812656"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">MainMenu</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">56</int>
|
|
||||||
<reference key="object" ref="166399698"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="413282662"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">57</int>
|
|
||||||
<reference key="object" ref="671325961"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="905940774"/>
|
|
||||||
<reference ref="942357333"/>
|
|
||||||
<reference ref="430749323"/>
|
|
||||||
<reference ref="1010818828"/>
|
|
||||||
<reference ref="45658860"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="166399698"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">134</int>
|
|
||||||
<reference key="object" ref="905940774"/>
|
|
||||||
<reference key="parent" ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">136</int>
|
|
||||||
<reference key="object" ref="942357333"/>
|
|
||||||
<reference key="parent" ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">145</int>
|
|
||||||
<reference key="object" ref="430749323"/>
|
|
||||||
<reference key="parent" ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">149</int>
|
|
||||||
<reference key="object" ref="1010818828"/>
|
|
||||||
<reference key="parent" ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">150</int>
|
|
||||||
<reference key="object" ref="45658860"/>
|
|
||||||
<reference key="parent" ref="671325961"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">284</int>
|
|
||||||
<reference key="object" ref="143812656"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="594976293"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="413282662"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">285</int>
|
|
||||||
<reference key="object" ref="594976293"/>
|
|
||||||
<object class="NSMutableArray" key="children">
|
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
|
||||||
<reference ref="687345396"/>
|
|
||||||
</object>
|
|
||||||
<reference key="parent" ref="143812656"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">283</int>
|
|
||||||
<reference key="object" ref="687345396"/>
|
|
||||||
<reference key="parent" ref="594976293"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">253</int>
|
|
||||||
<reference key="object" ref="3445348"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">Font Manager</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">-3</int>
|
<int key="objectID">-3</int>
|
||||||
<reference key="object" ref="1044128150"/>
|
<reference key="object" ref="1004"/>
|
||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string key="objectName">Application</string>
|
<string key="objectName">Application</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">340</int>
|
<int key="objectID">3</int>
|
||||||
<reference key="object" ref="898186092"/>
|
<reference key="object" ref="230815636"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="516276665"/>
|
||||||
|
</object>
|
||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">5</int>
|
||||||
|
<reference key="object" ref="516276665"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="363957052"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="230815636"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">27</int>
|
||||||
|
<reference key="object" ref="363957052"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="190287318"/>
|
||||||
|
<reference ref="316701890"/>
|
||||||
|
<reference ref="802708292"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="516276665"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">30</int>
|
||||||
|
<reference key="object" ref="190287318"/>
|
||||||
|
<reference key="parent" ref="363957052"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">29</int>
|
||||||
|
<reference key="object" ref="316701890"/>
|
||||||
|
<reference key="parent" ref="363957052"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">28</int>
|
||||||
|
<reference key="object" ref="802708292"/>
|
||||||
|
<reference key="parent" ref="363957052"/>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="flattenedProperties">
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="NSArray" key="dict.sortedKeys">
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>-1.IBPluginDependency</string>
|
||||||
|
<string>-2.IBPluginDependency</string>
|
||||||
<string>-3.IBPluginDependency</string>
|
<string>-3.IBPluginDependency</string>
|
||||||
<string>134.IBPluginDependency</string>
|
<string>27.IBPluginDependency</string>
|
||||||
<string>134.ImportedFromIB2</string>
|
<string>28.IBPluginDependency</string>
|
||||||
<string>136.IBPluginDependency</string>
|
|
||||||
<string>136.ImportedFromIB2</string>
|
|
||||||
<string>145.IBPluginDependency</string>
|
|
||||||
<string>145.ImportedFromIB2</string>
|
|
||||||
<string>149.IBPluginDependency</string>
|
|
||||||
<string>149.ImportedFromIB2</string>
|
|
||||||
<string>150.IBPluginDependency</string>
|
|
||||||
<string>150.ImportedFromIB2</string>
|
|
||||||
<string>253.ImportedFromIB2</string>
|
|
||||||
<string>283.IBPluginDependency</string>
|
|
||||||
<string>283.ImportedFromIB2</string>
|
|
||||||
<string>284.IBPluginDependency</string>
|
|
||||||
<string>284.ImportedFromIB2</string>
|
|
||||||
<string>285.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>285.IBPluginDependency</string>
|
|
||||||
<string>285.ImportedFromIB2</string>
|
|
||||||
<string>29.IBEditorWindowLastContentRect</string>
|
|
||||||
<string>29.IBPluginDependency</string>
|
<string>29.IBPluginDependency</string>
|
||||||
<string>29.ImportedFromIB2</string>
|
<string>3.IBEditorWindowLastContentRect</string>
|
||||||
<string>340.IBPluginDependency</string>
|
<string>3.IBPluginDependency</string>
|
||||||
<string>56.IBPluginDependency</string>
|
<string>3.IBWindowTemplateEditedContentRect</string>
|
||||||
<string>56.ImportedFromIB2</string>
|
<string>3.NSWindowTemplate.visibleAtLaunch</string>
|
||||||
<string>57.IBEditorWindowLastContentRect</string>
|
<string>30.IBPluginDependency</string>
|
||||||
<string>57.IBPluginDependency</string>
|
<string>5.IBPluginDependency</string>
|
||||||
<string>57.ImportedFromIB2</string>
|
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="dict.values">
|
<object class="NSMutableArray" key="dict.values">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>{{124, 952}, {140, 23}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>{{52, 975}, {155, 20}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<boolean value="YES"/>
|
|
||||||
<string>{{64, 882}, {185, 93}}</string>
|
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<boolean value="YES"/>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>{{70, 378}, {480, 270}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>{{70, 378}, {480, 270}}</string>
|
||||||
|
<boolean value="NO"/>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
|
@ -406,26 +308,73 @@
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">341</int>
|
<int key="maxID">36</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">ClonkAppDelegate</string>
|
<string key="className">ClonkOpenGLView</string>
|
||||||
<string key="superclassName">NSObject</string>
|
<string key="superclassName">NSView</string>
|
||||||
<object class="NSMutableDictionary" key="actions">
|
|
||||||
<string key="NS.key.0">terminate:</string>
|
|
||||||
<string key="NS.object.0">NSApplication</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBProjectSource</string>
|
<string key="majorKey">IBProjectSource</string>
|
||||||
<string key="minorKey">ClonkAppDelegate.h</string>
|
<string key="minorKey">src/platform/ClonkOpenGLView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">FirstResponder</string>
|
<string key="className">ClonkWindowController</string>
|
||||||
<string key="superclassName">NSObject</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">scroll:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>ClonkOpenGLView</string>
|
||||||
|
<string>NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">openGLView</string>
|
||||||
|
<string key="candidateClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">scrollView</string>
|
||||||
|
<string key="candidateClassName">NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">src/platform/ClonkWindowController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">ClonkWindowController</string>
|
||||||
|
<string key="superclassName">NSWindowController</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBUserSource</string>
|
<string key="majorKey">IBUserSource</string>
|
||||||
<string key="minorKey"/>
|
<string key="minorKey"/>
|
||||||
|
@ -434,6 +383,14 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
<bool key="EncodedWithXMLCoder">YES</bool>
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSFormatter</string>
|
||||||
|
<string key="superclassName">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -455,13 +412,6 @@
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSConnection.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -497,20 +447,6 @@
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSMetadata.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSNetServices.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -525,13 +461,6 @@
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSPort.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -574,20 +503,6 @@
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSSpellServer.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSStream.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -620,7 +535,35 @@
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
<string key="majorKey">IBFrameworkSource</string>
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
<string key="minorKey">Foundation.framework/Headers/NSXMLParser.h</string>
|
<string key="minorKey">ImageKit.framework/Headers/IKImageBrowserView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/IKSaveOptions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/ImageKitDeprecated.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFDocument.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
|
@ -630,6 +573,20 @@
|
||||||
<string key="minorKey">PrintCore.framework/Headers/PDEPluginInterface.h</string>
|
<string key="minorKey">PrintCore.framework/Headers/PDEPluginInterface.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionParameterView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionPickerView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">NSObject</string>
|
<string key="className">NSObject</string>
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
@ -651,23 +608,38 @@
|
||||||
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzFilters.framework/Headers/QuartzFilterManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuickLookUI.framework/Headers/QLPreviewPanel.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
<integer value="1060" key="NS.object.0"/>
|
<integer value="1060" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
<integer value="1050" key="NS.object.0"/>
|
<integer value="1060" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
<integer value="3000" key="NS.object.0"/>
|
<integer value="3000" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
<string key="IBDocument.LastKnownRelativeProjectPath">OpenClonk.xcodeproj</string>
|
<string key="IBDocument.LastKnownRelativeProjectPath">../../Clonk.xcodeproj</string>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
</data>
|
</data>
|
||||||
</archive>
|
</archive>
|
|
@ -0,0 +1,501 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
||||||
|
<data>
|
||||||
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
|
<string key="IBDocument.SystemVersion">10H574</string>
|
||||||
|
<string key="IBDocument.InterfaceBuilderVersion">823</string>
|
||||||
|
<string key="IBDocument.AppKitVersion">1038.35</string>
|
||||||
|
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="NS.object.0">823</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<integer value="3"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSCustomObject" id="1001">
|
||||||
|
<string key="NSClassName">ClonkWindowController</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1003">
|
||||||
|
<string key="NSClassName">FirstResponder</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1004">
|
||||||
|
<string key="NSClassName">NSApplication</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSWindowTemplate" id="16213378">
|
||||||
|
<int key="NSWindowStyleMask">31</int>
|
||||||
|
<int key="NSWindowBacking">2</int>
|
||||||
|
<string key="NSWindowRect">{{131, 159}, {480, 270}}</string>
|
||||||
|
<int key="NSWTFlags">-461897728</int>
|
||||||
|
<string key="NSWindowTitle">Dialog</string>
|
||||||
|
<string key="NSWindowClass">NSPanel</string>
|
||||||
|
<nil key="NSViewClass"/>
|
||||||
|
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
|
<object class="NSView" key="NSWindowView" id="323620923">
|
||||||
|
<reference key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSCustomView" id="1029831788">
|
||||||
|
<reference key="NSNextResponder" ref="323620923"/>
|
||||||
|
<int key="NSvFlags">274</int>
|
||||||
|
<string key="NSFrameSize">{480, 270}</string>
|
||||||
|
<reference key="NSSuperview" ref="323620923"/>
|
||||||
|
<string key="NSClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrameSize">{480, 270}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
</object>
|
||||||
|
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
|
||||||
|
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
|
<object class="NSMutableArray" key="connectionRecords">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">window</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="16213378"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">5</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">openGLView</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1029831788"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">8</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">delegate</string>
|
||||||
|
<reference key="source" ref="16213378"/>
|
||||||
|
<reference key="destination" ref="1001"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">9</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
<object class="NSArray" key="orderedObjects">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">0</int>
|
||||||
|
<reference key="object" ref="0"/>
|
||||||
|
<reference key="children" ref="1000"/>
|
||||||
|
<nil key="parent"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-2</int>
|
||||||
|
<reference key="object" ref="1001"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">File's Owner</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-1</int>
|
||||||
|
<reference key="object" ref="1003"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">First Responder</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-3</int>
|
||||||
|
<reference key="object" ref="1004"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Application</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">3</int>
|
||||||
|
<reference key="object" ref="16213378"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="323620923"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">4</int>
|
||||||
|
<reference key="object" ref="323620923"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="1029831788"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="16213378"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">7</int>
|
||||||
|
<reference key="object" ref="1029831788"/>
|
||||||
|
<reference key="parent" ref="323620923"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>3.IBEditorWindowLastContentRect</string>
|
||||||
|
<string>3.IBPluginDependency</string>
|
||||||
|
<string>3.IBWindowTemplateEditedContentRect</string>
|
||||||
|
<string>3.NSWindowTemplate.visibleAtLaunch</string>
|
||||||
|
<string>4.IBPluginDependency</string>
|
||||||
|
<string>7.IBPluginDependency</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>{{21, 444}, {480, 270}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>{{21, 444}, {480, 270}}</string>
|
||||||
|
<boolean value="NO"/>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<nil key="activeLocalization"/>
|
||||||
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<nil key="sourceID"/>
|
||||||
|
<int key="maxID">9</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">ClonkOpenGLView</string>
|
||||||
|
<string key="superclassName">NSView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">src/platform/ClonkOpenGLView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">ClonkWindowController</string>
|
||||||
|
<string key="superclassName">NSWindowController</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">scroll:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>ClonkOpenGLView</string>
|
||||||
|
<string>NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">openGLView</string>
|
||||||
|
<string key="candidateClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">scrollView</string>
|
||||||
|
<string key="candidateClassName">NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">src/platform/ClonkWindowController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AddressBook.framework/Headers/ABActions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/IKImageBrowserView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/IKSaveOptions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/ImageKitDeprecated.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFDocument.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PrintCore.framework/Headers/PDEPluginInterface.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionParameterView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionPickerView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzFilters.framework/Headers/QuartzFilterManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuickLookUI.framework/Headers/QLPreviewPanel.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
|
<integer value="1060" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<string key="IBDocument.LastKnownRelativeProjectPath">../../Clonk.xcodeproj</string>
|
||||||
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
</data>
|
||||||
|
</archive>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,506 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
|
||||||
|
<data>
|
||||||
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
|
<string key="IBDocument.SystemVersion">10F569</string>
|
||||||
|
<string key="IBDocument.InterfaceBuilderVersion">788</string>
|
||||||
|
<string key="IBDocument.AppKitVersion">1038.29</string>
|
||||||
|
<string key="IBDocument.HIToolboxVersion">461.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="NS.object.0">788</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<integer value="1"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSArray" key="IBDocument.PluginDependencies">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys" id="0">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSCustomObject" id="1001">
|
||||||
|
<string key="NSClassName">ClonkWindowController</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1003">
|
||||||
|
<string key="NSClassName">FirstResponder</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1004">
|
||||||
|
<string key="NSClassName">NSApplication</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSWindowTemplate" id="1005">
|
||||||
|
<int key="NSWindowStyleMask">5</int>
|
||||||
|
<int key="NSWindowBacking">2</int>
|
||||||
|
<string key="NSWindowRect">{{196, 240}, {480, 270}}</string>
|
||||||
|
<int key="NSWTFlags">544735232</int>
|
||||||
|
<string key="NSWindowTitle">OpenClonk</string>
|
||||||
|
<string key="NSWindowClass">NSWindow</string>
|
||||||
|
<nil key="NSViewClass"/>
|
||||||
|
<string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
|
<object class="NSView" key="NSWindowView" id="1006">
|
||||||
|
<reference key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<object class="NSMutableArray" key="NSSubviews">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSCustomView" id="174124930">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">274</int>
|
||||||
|
<string key="NSFrameSize">{480, 270}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<bool key="NSViewCanDrawConcurrently">YES</bool>
|
||||||
|
<string key="NSClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<string key="NSFrameSize">{480, 270}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
</object>
|
||||||
|
<string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string>
|
||||||
|
<string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
|
<object class="NSMutableArray" key="connectionRecords">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">openGLView</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="174124930"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">5</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">delegate</string>
|
||||||
|
<reference key="source" ref="1005"/>
|
||||||
|
<reference key="destination" ref="1001"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">6</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">window</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">7</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
<object class="NSArray" key="orderedObjects">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">0</int>
|
||||||
|
<reference key="object" ref="0"/>
|
||||||
|
<reference key="children" ref="1000"/>
|
||||||
|
<nil key="parent"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-2</int>
|
||||||
|
<reference key="object" ref="1001"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">File's Owner</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-1</int>
|
||||||
|
<reference key="object" ref="1003"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">First Responder</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-3</int>
|
||||||
|
<reference key="object" ref="1004"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Application</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1</int>
|
||||||
|
<reference key="object" ref="1005"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">2</int>
|
||||||
|
<reference key="object" ref="1006"/>
|
||||||
|
<object class="NSMutableArray" key="children">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference ref="174124930"/>
|
||||||
|
</object>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">3</int>
|
||||||
|
<reference key="object" ref="174124930"/>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="flattenedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>1.IBEditorWindowLastContentRect</string>
|
||||||
|
<string>1.IBPluginDependency</string>
|
||||||
|
<string>1.IBWindowTemplateEditedContentRect</string>
|
||||||
|
<string>1.NSWindowTemplate.visibleAtLaunch</string>
|
||||||
|
<string>1.WindowOrigin</string>
|
||||||
|
<string>1.editorWindowContentRectSynchronizationRect</string>
|
||||||
|
<string>2.IBPluginDependency</string>
|
||||||
|
<string>3.IBPluginDependency</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>{{154, 486}, {480, 270}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>{{154, 486}, {480, 270}}</string>
|
||||||
|
<boolean value="NO"/>
|
||||||
|
<string>{196, 240}</string>
|
||||||
|
<string>{{202, 428}, {480, 270}}</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="unlocalizedProperties">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<nil key="activeLocalization"/>
|
||||||
|
<object class="NSMutableDictionary" key="localizations">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<reference key="dict.sortedKeys" ref="0"/>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<nil key="sourceID"/>
|
||||||
|
<int key="maxID">7</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">ClonkOpenGLView</string>
|
||||||
|
<string key="superclassName">NSView</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">src/platform/ClonkOpenGLView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">ClonkWindowController</string>
|
||||||
|
<string key="superclassName">NSWindowController</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">scroll:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">scroll:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="outlets">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>ClonkOpenGLView</string>
|
||||||
|
<string>NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="NSArray" key="dict.sortedKeys">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<string>openGLView</string>
|
||||||
|
<string>scrollView</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="dict.values">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">openGLView</string>
|
||||||
|
<string key="candidateClassName">ClonkOpenGLView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo">
|
||||||
|
<string key="name">scrollView</string>
|
||||||
|
<string key="candidateClassName">NSScrollView</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">src/platform/ClonkWindowController.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
|
||||||
|
<bool key="EncodedWithXMLCoder">YES</bool>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">AddressBook.framework/Headers/ABActions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSClassDescription.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSError.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyValueObserving.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSKeyedArchiver.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObject.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSObjectScripting.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSPortCoder.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSRunLoop.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptClassDescription.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptKeyValueCoding.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptObjectSpecifiers.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSScriptWhoseTests.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSThread.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURL.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLConnection.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">Foundation.framework/Headers/NSURLDownload.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/IKImageBrowserView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/IKSaveOptions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">ImageKit.framework/Headers/ImageKitDeprecated.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFDocument.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PDFKit.framework/Headers/PDFView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">PrintCore.framework/Headers/PDEPluginInterface.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionParameterView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzComposer.framework/Headers/QCCompositionPickerView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuartzFilters.framework/Headers/QuartzFilterManager.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">NSObject</string>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBFrameworkSource</string>
|
||||||
|
<string key="minorKey">QuickLookUI.framework/Headers/QLPreviewPanel.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
|
<integer value="1060" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
|
<integer value="3000" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<string key="IBDocument.LastKnownRelativeProjectPath">../../Clonk.xcodeproj</string>
|
||||||
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
</data>
|
||||||
|
</archive>
|
|
@ -172,6 +172,8 @@
|
||||||
</array>
|
</array>
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>1.0</string>
|
||||||
<key>NSMainNibFile</key>
|
<key>NSMainNibFile</key>
|
||||||
<string>MainMenu.nib</string>
|
<string>MainMenu.nib</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
|
@ -179,7 +181,7 @@
|
||||||
<key>NSHumanReadableCopyright</key>
|
<key>NSHumanReadableCopyright</key>
|
||||||
<string>(c) ${C4COPYRIGHT_YEAR}, ${C4PROJECT}</string>
|
<string>(c) ${C4COPYRIGHT_YEAR}, ${C4PROJECT}</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>${C4ENGINEINFOLONG}</string>
|
<string>${C4ENGINEINFO}</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>${C4VERSION}</string>
|
<string>${C4VERSION}</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,17 @@
|
||||||
|
#!/bin/sh
|
||||||
|
LIBS_TO_BUNDLE="/opt/local/lib/lib(crypto|z\.|iconv|jpeg|png|GLEW|llvm|SDL|SDL_mixer|freetype)[^ ]+"
|
||||||
|
|
||||||
|
cd $TARGET_BUILD_DIR
|
||||||
|
pwd
|
||||||
|
for lib in `otool -L $EXECUTABLE_PATH | grep -Eo "$LIBS_TO_BUNDLE"`; do
|
||||||
|
base=`basename $lib`
|
||||||
|
mkdir -p $FRAMEWORKS_FOLDER_PATH
|
||||||
|
bundle_path=$FRAMEWORKS_FOLDER_PATH/$base
|
||||||
|
id=@executable_path/../Frameworks/$base
|
||||||
|
|
||||||
|
echo Bundling $base... cp $lib $bundle_path
|
||||||
|
cp $lib $bundle_path
|
||||||
|
chmod u+w $bundle_path
|
||||||
|
install_name_tool -id $id $bundle_path
|
||||||
|
install_name_tool -change $lib $id $EXECUTABLE_PATH
|
||||||
|
done
|
File diff suppressed because it is too large
Load Diff
|
@ -1,28 +0,0 @@
|
||||||
/* SDLMain.m - main entry point for our Cocoa-ized SDL app
|
|
||||||
Initial Version: Darrell Walisser <dwaliss1@purdue.edu>
|
|
||||||
Non-NIB-Code & other changes: Max Horn <max@quendi.de>
|
|
||||||
|
|
||||||
Feel free to customize this file to suit your needs
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
|
|
||||||
enum ClonkAppDelegateGameState {
|
|
||||||
GS_NotYetStarted,
|
|
||||||
GS_Running,
|
|
||||||
GS_Finished
|
|
||||||
};
|
|
||||||
|
|
||||||
@interface ClonkAppDelegate: NSObject
|
|
||||||
{
|
|
||||||
NSMutableArray* gatheredArguments;
|
|
||||||
NSString* clonkDirectory;
|
|
||||||
NSString* addonSupplied;
|
|
||||||
ClonkAppDelegateGameState gameState;
|
|
||||||
}
|
|
||||||
- (NSString*) clonkDirectory;
|
|
||||||
- (BOOL) argsLookLikeItShouldBeInstallation;
|
|
||||||
- (void)makeFakeArgs:(char***)argv argc:(int*)argc;
|
|
||||||
- (BOOL)installAddOn;
|
|
||||||
- (void)terminate:(NSApplication*)sender;
|
|
||||||
@end
|
|
182
xcode/Info.plist
182
xcode/Info.plist
|
@ -1,182 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
|
||||||
<string>English</string>
|
|
||||||
<key>CFBundleDocumentTypes</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4k</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4K.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/octet-stream</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Key</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4u</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4U.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Update</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4s</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4S.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Scenario</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4d</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4D.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Definition</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4g</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4G.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Group</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4p</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4P.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Player</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleTypeExtensions</key>
|
|
||||||
<array>
|
|
||||||
<string>c4f</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeIconFile</key>
|
|
||||||
<string>C4F.icns</string>
|
|
||||||
<key>CFBundleTypeMIMETypes</key>
|
|
||||||
<array>
|
|
||||||
<string>application/vnd.clonk.c4group</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleTypeName</key>
|
|
||||||
<string>Clonk Folder</string>
|
|
||||||
<key>CFBundleTypeRole</key>
|
|
||||||
<string>Viewer</string>
|
|
||||||
<key>LSTypeIsPackage</key>
|
|
||||||
<false/>
|
|
||||||
<key>NSPersistentStoreTypeKey</key>
|
|
||||||
<string>Binary</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>${EXECUTABLE_NAME}</string>
|
|
||||||
<key>CFBundleIconFile</key>
|
|
||||||
<string>Clonk</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>de.clonk.rage</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>${PRODUCT_NAME}</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>APPL</string>
|
|
||||||
<key>CFBundleSignature</key>
|
|
||||||
<string>????</string>
|
|
||||||
<key>CFBundleURLTypes</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleURLName</key>
|
|
||||||
<string>Clonk Game Link</string>
|
|
||||||
<key>CFBundleURLSchemes</key>
|
|
||||||
<array>
|
|
||||||
<string>clonk</string>
|
|
||||||
</array>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
<key>NSMainNibFile</key>
|
|
||||||
<string>MainMenu.nib</string>
|
|
||||||
<key>NSPrincipalClass</key>
|
|
||||||
<string>NSApplication</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
Loading…
Reference in New Issue