-fixed bug in Button now exporting font property
-made GUI Theme editor usable -editor does not allow to export or create .pck in the same path as a project -changed .pck format (lacked support for versioning so couldn't change it), previous was causing crashes and is now incompatible, just re-export. -will not look for .pck files recursively, was causing unexpected behaviors -fixed execution of Godot in paths with non unicode characters in Windows, OSX and Linux.
This commit is contained in:
parent
b0870e487c
commit
9afdb3e0ad
30 changed files with 107728 additions and 88050 deletions
|
@ -319,11 +319,13 @@ Error Globals::setup(const String& p_path) {
|
|||
String candidate = d->get_current_dir();
|
||||
String current_dir = d->get_current_dir();
|
||||
bool found = false;
|
||||
bool first_time=true;
|
||||
|
||||
while(true) {
|
||||
//try to load settings in ascending through dirs shape!
|
||||
|
||||
if (_load_resource_pack(current_dir+"/data.pck") || _load_resource_pack(current_dir+"/data.pcz")) {
|
||||
//tries to open pack, but only first time
|
||||
if (first_time && _load_resource_pack(current_dir+"/data.pck")) {
|
||||
if (_load_settings("res://engine.cfg")==OK || _load_settings_binary("res://engine.cfb")==OK) {
|
||||
|
||||
_load_settings("res://override.cfg");
|
||||
|
@ -344,6 +346,7 @@ Error Globals::setup(const String& p_path) {
|
|||
if (d->get_current_dir()==current_dir)
|
||||
break; //not doing anything useful
|
||||
current_dir=d->get_current_dir();
|
||||
first_time=false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
#include <stdio.h>
|
||||
|
||||
#define PACK_VERSION 0
|
||||
|
||||
Error PackedData::add_pack(const String& p_path) {
|
||||
|
||||
for (int i=0; i<sources.size(); i++) {
|
||||
|
@ -113,12 +115,12 @@ bool PackedSourcePCK::try_open_pack(const String& p_path) {
|
|||
|
||||
uint32_t magic= f->get_32();
|
||||
|
||||
if (magic != 0x4b435047) {
|
||||
if (magic != 0x43504447) {
|
||||
//maybe at he end.... self contained exe
|
||||
f->seek_end();
|
||||
f->seek( f->get_pos() -4 );
|
||||
magic = f->get_32();
|
||||
if (magic != 0x4b435047) {
|
||||
if (magic != 0x43504447) {
|
||||
|
||||
memdelete(f);
|
||||
return false;
|
||||
|
@ -130,7 +132,7 @@ bool PackedSourcePCK::try_open_pack(const String& p_path) {
|
|||
f->seek( f->get_pos() -ds-8 );
|
||||
|
||||
magic = f->get_32();
|
||||
if (magic != 0x4b435047) {
|
||||
if (magic != 0x43504447) {
|
||||
|
||||
memdelete(f);
|
||||
return false;
|
||||
|
@ -138,10 +140,13 @@ bool PackedSourcePCK::try_open_pack(const String& p_path) {
|
|||
|
||||
}
|
||||
|
||||
uint32_t version = f->get_32();
|
||||
uint32_t ver_major = f->get_32();
|
||||
uint32_t ver_minor = f->get_32();
|
||||
uint32_t ver_rev = f->get_32();
|
||||
|
||||
ERR_EXPLAIN("Pack version newer than supported by engine: "+itos(version));
|
||||
ERR_FAIL_COND_V( version > PACK_VERSION, ERR_INVALID_DATA);
|
||||
ERR_EXPLAIN("Pack created with a newer version of the engine: "+itos(ver_major)+"."+itos(ver_minor)+"."+itos(ver_rev));
|
||||
ERR_FAIL_COND_V( ver_major > VERSION_MAJOR || (ver_major == VERSION_MAJOR && ver_minor > VERSION_MINOR), ERR_INVALID_DATA);
|
||||
|
||||
|
|
|
@ -75,7 +75,8 @@ void Math::seed(uint32_t x) {
|
|||
|
||||
void Math::randomize() {
|
||||
|
||||
seed(OS::get_singleton()->get_ticks_usec()); /* *OS::get_singleton()->get_time().sec); // windows doesn't have get_time(), returns always 0 */
|
||||
OS::Time time = OS::get_singleton()->get_time();
|
||||
seed(OS::get_singleton()->get_ticks_usec()*time.hour*time.min*time.sec*rand()); /* *OS::get_singleton()->get_time().sec); // windows doesn't have get_time(), returns always 0 */
|
||||
}
|
||||
|
||||
uint32_t Math::rand() {
|
||||
|
|
2074
doc/base/classes.xml
2074
doc/base/classes.xml
File diff suppressed because it is too large
Load diff
|
@ -394,7 +394,8 @@ String OS_Unix::get_executable_path() const {
|
|||
memset(buf,0,256);
|
||||
readlink("/proc/self/exe", buf, sizeof(buf));
|
||||
//print_line("Exec path is:"+String(buf));
|
||||
String b = buf;
|
||||
String b;
|
||||
b.parse_utf8(buf);
|
||||
if (b=="") {
|
||||
WARN_PRINT("Couldn't get executable path from /proc/self/exe, using argv[0]");
|
||||
return OS::get_executable_path();
|
||||
|
|
|
@ -1475,10 +1475,14 @@ Error OS_Windows::execute(const String& p_path, const List<String>& p_arguments,
|
|||
ZeroMemory( &pi.si, sizeof(pi.si) );
|
||||
pi.si.cb = sizeof(pi.si);
|
||||
ZeroMemory( &pi.pi, sizeof(pi.pi) );
|
||||
LPSTARTUPINFOW si_w = (LPSTARTUPINFOW) &pi.si;
|
||||
|
||||
print_line("running cmdline: "+cmdline);
|
||||
|
||||
int ret = CreateProcess(NULL, (LPSTR)cmdline.utf8().get_data(), NULL, NULL, 0, NORMAL_PRIORITY_CLASS, NULL, NULL, &pi.si, &pi.pi);
|
||||
Vector<CharType> modstr; //windows wants to change this no idea why
|
||||
modstr.resize(cmdline.size());
|
||||
for(int i=0;i<cmdline.size();i++)
|
||||
modstr[i]=cmdline[i];
|
||||
int ret = CreateProcessW(NULL, modstr.ptr(), NULL, NULL, 0, NORMAL_PRIORITY_CLASS, NULL, NULL, si_w, &pi.pi);
|
||||
ERR_FAIL_COND_V(ret == 0, ERR_CANT_FORK);
|
||||
|
||||
if (p_blocking) {
|
||||
|
@ -1523,6 +1527,15 @@ Error OS_Windows::set_cwd(const String& p_cwd) {
|
|||
return OK;
|
||||
}
|
||||
|
||||
String OS_Windows::get_executable_path() const {
|
||||
|
||||
wchar_t bufname[4096];
|
||||
GetModuleFileNameW(NULL,bufname,4096);
|
||||
String s= bufname;
|
||||
print_line("EXEC PATHPó: "+s);
|
||||
return s;
|
||||
}
|
||||
|
||||
void OS_Windows::set_icon(const Image& p_icon) {
|
||||
|
||||
|
||||
|
|
|
@ -235,6 +235,7 @@ public:
|
|||
void set_cursor_shape(CursorShape p_shape);
|
||||
void set_icon(const Image& p_icon);
|
||||
|
||||
virtual String get_executable_path() const;
|
||||
|
||||
virtual String get_locale() const;
|
||||
|
||||
|
|
|
@ -1407,6 +1407,8 @@ Ref<Font> Control::get_font(const StringName& p_name,const StringName& p_type) c
|
|||
|
||||
if (theme_owner->data.theme->has_font(p_name, type ) )
|
||||
return data.theme_owner->data.theme->get_font(p_name, type );
|
||||
if (theme_owner->data.theme->get_default_theme_font().is_valid())
|
||||
return theme_owner->data.theme->get_default_theme_font();
|
||||
Control *parent = theme_owner->get_parent()?theme_owner->get_parent()->cast_to<Control>():NULL;
|
||||
|
||||
if (parent)
|
||||
|
|
|
@ -196,7 +196,7 @@ void make_default_theme() {
|
|||
focus->set_expand_margin_size(Margin(i),2);
|
||||
}
|
||||
t->set_stylebox("focus","Button", focus );
|
||||
t->set_font("font","Button", focus );
|
||||
t->set_font("font","Button", default_font );
|
||||
t->set_color("font_color","Button", control_font_color );
|
||||
t->set_color("font_color_pressed","Button", control_font_color_pressed );
|
||||
t->set_color("font_color_hover","Button", control_font_color_hover );
|
||||
|
|
|
@ -130,6 +130,7 @@ void Theme::_get_property_list( List<PropertyInfo> *p_list) const {
|
|||
}
|
||||
|
||||
key=NULL;
|
||||
|
||||
|
||||
while((key=font_map.next(key))) {
|
||||
|
||||
|
@ -172,6 +173,17 @@ Ref<Theme> Theme::get_default() {
|
|||
return default_theme;
|
||||
}
|
||||
|
||||
|
||||
void Theme::set_default_theme_font( const Ref<Font>& p_default_font ) {
|
||||
|
||||
default_theme_font=p_default_font;
|
||||
}
|
||||
|
||||
Ref<Font> Theme::get_default_theme_font() const {
|
||||
|
||||
return default_theme_font;
|
||||
}
|
||||
|
||||
void Theme::set_default(const Ref<Theme>& p_default) {
|
||||
|
||||
default_theme=p_default;
|
||||
|
@ -203,8 +215,10 @@ void Theme::set_icon(const StringName& p_name,const StringName& p_type,const Ref
|
|||
|
||||
icon_map[p_type][p_name]=p_icon;
|
||||
|
||||
if (new_value)
|
||||
if (new_value) {
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
}
|
||||
}
|
||||
Ref<Texture> Theme::get_icon(const StringName& p_name,const StringName& p_type) const {
|
||||
|
||||
|
@ -229,6 +243,8 @@ void Theme::clear_icon(const StringName& p_name,const StringName& p_type) {
|
|||
|
||||
icon_map[p_type].erase(p_name);
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_icon_list(StringName p_type, List<StringName> *p_list) const {
|
||||
|
@ -256,6 +272,8 @@ void Theme::set_stylebox(const StringName& p_name,const StringName& p_type,const
|
|||
|
||||
if (new_value)
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -281,6 +299,8 @@ void Theme::clear_stylebox(const StringName& p_name,const StringName& p_type) {
|
|||
|
||||
style_map[p_type].erase(p_name);
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_stylebox_list(StringName p_type, List<StringName> *p_list) const {
|
||||
|
@ -304,13 +324,18 @@ void Theme::set_font(const StringName& p_name,const StringName& p_type,const Ref
|
|||
bool new_value=!font_map.has(p_type) || !font_map[p_type].has(p_name);
|
||||
font_map[p_type][p_name]=p_font;
|
||||
|
||||
if (new_value)
|
||||
if (new_value) {
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
}
|
||||
Ref<Font> Theme::get_font(const StringName& p_name,const StringName& p_type) const {
|
||||
|
||||
if (font_map.has(p_type) && font_map[p_type].has(p_name) && font_map[p_type][p_name].is_valid())
|
||||
return font_map[p_type][p_name];
|
||||
else if (default_theme_font.is_valid())
|
||||
return default_theme_font;
|
||||
else
|
||||
return default_font;
|
||||
|
||||
|
@ -328,6 +353,8 @@ void Theme::clear_font(const StringName& p_name,const StringName& p_type) {
|
|||
|
||||
font_map[p_type].erase(p_name);
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_font_list(StringName p_type, List<StringName> *p_list) const {
|
||||
|
@ -350,8 +377,11 @@ void Theme::set_color(const StringName& p_name,const StringName& p_type,const Co
|
|||
|
||||
color_map[p_type][p_name]=p_color;
|
||||
|
||||
if (new_value)
|
||||
if (new_value) {
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -377,6 +407,8 @@ void Theme::clear_color(const StringName& p_name,const StringName& p_type) {
|
|||
|
||||
color_map[p_type].erase(p_name);
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_color_list(StringName p_type, List<StringName> *p_list) const {
|
||||
|
@ -398,8 +430,10 @@ void Theme::set_constant(const StringName& p_name,const StringName& p_type,int p
|
|||
bool new_value=!constant_map.has(p_type) || !constant_map[p_type].has(p_name);
|
||||
constant_map[p_type][p_name]=p_constant;
|
||||
|
||||
if (new_value)
|
||||
if (new_value) {
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
}
|
||||
}
|
||||
|
||||
int Theme::get_constant(const StringName& p_name,const StringName& p_type) const {
|
||||
|
@ -424,6 +458,8 @@ void Theme::clear_constant(const StringName& p_name,const StringName& p_type) {
|
|||
|
||||
constant_map[p_type].erase(p_name);
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_constant_list(StringName p_type, List<StringName> *p_list) const {
|
||||
|
@ -451,6 +487,8 @@ void Theme::copy_default_theme() {
|
|||
color_map=default_theme->color_map;
|
||||
constant_map=default_theme->constant_map;
|
||||
_change_notify();
|
||||
emit_changed();;
|
||||
|
||||
}
|
||||
|
||||
void Theme::get_type_list(List<StringName> *p_list) const {
|
||||
|
@ -532,10 +570,15 @@ void Theme::_bind_methods() {
|
|||
ObjectTypeDB::bind_method(_MD("clear_constant","name","type"),&Theme::clear_constant);
|
||||
ObjectTypeDB::bind_method(_MD("get_constant_list"),&Theme::_get_constant_list);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("set_default_font","font"),&Theme::set_default_theme_font);
|
||||
ObjectTypeDB::bind_method(_MD("get_default_font"),&Theme::get_default_theme_font);
|
||||
|
||||
ObjectTypeDB::bind_method(_MD("get_type_list"),&Theme::_get_type_list);
|
||||
|
||||
ObjectTypeDB::bind_method("copy_default_theme",&Theme::copy_default_theme);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT,"default_font",PROPERTY_HINT_RESOURCE_TYPE,"Font"),_SCS("set_default_font"),_SCS("get_default_font"));
|
||||
|
||||
}
|
||||
|
||||
Theme::Theme() {
|
||||
|
|
|
@ -59,6 +59,7 @@ protected:
|
|||
static Ref<StyleBox> default_style;
|
||||
static Ref<Font> default_font;
|
||||
|
||||
Ref<Font> default_theme_font;
|
||||
|
||||
DVector<String> _get_icon_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_icon_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
|
||||
DVector<String> _get_stylebox_list(const String& p_type) const { DVector<String> ilret; List<StringName> il; get_stylebox_list(p_type,&il); for(List<StringName>::Element *E=il.front();E;E=E->next()) { ilret.push_back(E->get()); } return ilret; }
|
||||
|
@ -76,8 +77,10 @@ public:
|
|||
static void set_default_icon( const Ref<Texture>& p_icon );
|
||||
static void set_default_style( const Ref<StyleBox>& p_default_style);
|
||||
static void set_default_font( const Ref<Font>& p_default_font );
|
||||
|
||||
|
||||
|
||||
void set_default_theme_font( const Ref<Font>& p_default_font );
|
||||
Ref<Font> get_default_theme_font() const;
|
||||
|
||||
void set_icon(const StringName& p_name,const StringName& p_type,const Ref<Texture>& p_icon);
|
||||
Ref<Texture> get_icon(const StringName& p_name,const StringName& p_type) const;
|
||||
bool has_icon(const StringName& p_name,const StringName& p_type) const;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -848,7 +848,8 @@ Error EditorExportPlatform::save_pack(FileAccess *dst,bool p_make_bundles) {
|
|||
FileAccess *tmp = FileAccess::open(tmppath,FileAccess::WRITE);
|
||||
uint64_t ofs_begin = dst->get_pos();
|
||||
|
||||
dst->store_32(0x4b435047); //GPCK
|
||||
dst->store_32(0x43504447); //GDPK
|
||||
dst->store_32(0); //pack version
|
||||
dst->store_32(VERSION_MAJOR);
|
||||
dst->store_32(VERSION_MINOR);
|
||||
dst->store_32(VERSION_REVISION);
|
||||
|
@ -891,7 +892,7 @@ Error EditorExportPlatform::save_pack(FileAccess *dst,bool p_make_bundles) {
|
|||
memdelete(tmp);
|
||||
|
||||
dst->store_64(dst->get_pos()-ofs_begin);
|
||||
dst->store_32(0x4b435047); //GPCK
|
||||
dst->store_32(0x43504447); //GDPK
|
||||
|
||||
//fix offsets
|
||||
|
||||
|
|
|
@ -3961,7 +3961,7 @@ EditorNode::EditorNode() {
|
|||
//add_editor_plugin( memnew( AnimationEditorPlugin(this) ) ); - not useful anymore
|
||||
add_editor_plugin( memnew( ShaderEditorPlugin(this) ) );
|
||||
add_editor_plugin( memnew( CameraEditorPlugin(this) ) );
|
||||
add_editor_plugin( memnew( FontEditorPlugin(this) ) );
|
||||
//add_editor_plugin( memnew( FontEditorPlugin(this) ) ); obsolete
|
||||
add_editor_plugin( memnew( SampleEditorPlugin(this) ) );
|
||||
add_editor_plugin( memnew( SampleLibraryEditorPlugin(this) ) );
|
||||
add_editor_plugin( memnew( ThemeEditorPlugin(this) ) );
|
||||
|
|
|
@ -33,13 +33,28 @@
|
|||
void ThemeEditor::edit(const Ref<Theme>& p_theme) {
|
||||
|
||||
theme=p_theme;
|
||||
panel->set_theme(p_theme);
|
||||
main_vb->set_theme(p_theme);
|
||||
|
||||
}
|
||||
|
||||
void ThemeEditor::_open_file_dialog() {
|
||||
|
||||
test_file_dialog->popup_centered_ratio();
|
||||
void ThemeEditor::_propagate_redraw(Control *p_at) {
|
||||
|
||||
p_at->notification(NOTIFICATION_THEME_CHANGED);
|
||||
p_at->minimum_size_changed();
|
||||
p_at->update();
|
||||
for(int i=0;i<p_at->get_child_count();i++) {
|
||||
Control *a = p_at->get_child(i)->cast_to<Control>();
|
||||
if (a)
|
||||
_propagate_redraw(a);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeEditor::_refresh_interval() {
|
||||
|
||||
_propagate_redraw(main_vb);
|
||||
|
||||
}
|
||||
|
||||
void ThemeEditor::_type_menu_cbk(int p_option) {
|
||||
|
@ -477,6 +492,18 @@ void ThemeEditor::_theme_menu_cbk(int p_option) {
|
|||
|
||||
}
|
||||
|
||||
void ThemeEditor::_notification(int p_what) {
|
||||
|
||||
if (p_what==NOTIFICATION_PROCESS) {
|
||||
|
||||
time_left-=get_process_delta_time();
|
||||
if (time_left<0) {
|
||||
time_left=1.5;
|
||||
_refresh_interval();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ThemeEditor::_bind_methods() {
|
||||
|
||||
ObjectTypeDB::bind_method("_type_menu_cbk",&ThemeEditor::_type_menu_cbk);
|
||||
|
@ -489,44 +516,159 @@ void ThemeEditor::_bind_methods() {
|
|||
|
||||
ThemeEditor::ThemeEditor() {
|
||||
|
||||
Panel *main_panel = memnew( Panel );
|
||||
add_child(main_panel);
|
||||
main_panel->set_area_as_parent_rect();
|
||||
panel = memnew( Panel );
|
||||
time_left=0;
|
||||
|
||||
main_panel->add_child(panel);
|
||||
panel->set_area_as_parent_rect();
|
||||
panel->set_margin( MARGIN_TOP,20 );
|
||||
Panel * panel = memnew( Panel );
|
||||
add_child(panel);
|
||||
panel->set_area_as_parent_rect(0);
|
||||
panel->set_margin(MARGIN_TOP,25);
|
||||
|
||||
test_button = memnew( Button );
|
||||
test_button->set_pos(Point2(25,25));
|
||||
test_button->set_text("Button");
|
||||
panel->add_child(test_button);
|
||||
main_vb= memnew( VBoxContainer );
|
||||
panel->add_child(main_vb);
|
||||
main_vb->set_area_as_parent_rect(4);
|
||||
|
||||
test_label = memnew( Label );
|
||||
test_label->set_pos(Point2(25,75));
|
||||
test_label->set_text("Label");
|
||||
panel->add_child(test_label);
|
||||
|
||||
test_menu_button = memnew( MenuButton );
|
||||
test_menu_button->set_pos(Point2(25,125));
|
||||
test_menu_button->set_text("Menu Button");
|
||||
HBoxContainer *hb_menu = memnew(HBoxContainer);
|
||||
main_vb->add_child(hb_menu);
|
||||
|
||||
|
||||
|
||||
theme_menu = memnew( MenuButton );
|
||||
theme_menu->set_text("Theme");
|
||||
theme_menu->get_popup()->add_item("Add Item",POPUP_ADD);
|
||||
theme_menu->get_popup()->add_item("Add Class Items",POPUP_CLASS_ADD);
|
||||
theme_menu->get_popup()->add_item("Remove Item",POPUP_REMOVE);
|
||||
theme_menu->get_popup()->add_separator();
|
||||
theme_menu->get_popup()->add_item("Create Template",POPUP_CREATE_TEMPLATE);
|
||||
hb_menu->add_child(theme_menu);
|
||||
theme_menu->get_popup()->connect("item_pressed", this,"_theme_menu_cbk");
|
||||
|
||||
|
||||
HBoxContainer *main_hb = memnew( HBoxContainer );
|
||||
main_vb->add_child(main_hb);
|
||||
|
||||
|
||||
|
||||
VBoxContainer *first_vb = memnew( VBoxContainer);
|
||||
first_vb->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||
main_hb->add_child(first_vb);
|
||||
|
||||
|
||||
|
||||
// main_panel->add_child(panel);
|
||||
// panel->set_area_as_parent_rect();
|
||||
// panel->set_margin( MARGIN_TOP,20 );
|
||||
|
||||
first_vb->add_child(memnew( Label("Label") ));
|
||||
|
||||
first_vb->add_child(memnew( Button("Button")) );
|
||||
ToolButton *tb = memnew( ToolButton );
|
||||
tb->set_text("ToolButton");
|
||||
first_vb->add_child(tb );
|
||||
CheckButton *cb = memnew( CheckButton );
|
||||
cb->set_text("CheckButton");
|
||||
first_vb->add_child(cb );
|
||||
|
||||
MenuButton* test_menu_button = memnew( MenuButton );
|
||||
test_menu_button->set_text("MenuButton");
|
||||
test_menu_button->get_popup()->add_item("Item");
|
||||
test_menu_button->get_popup()->add_separator();
|
||||
test_menu_button->get_popup()->add_check_item("Check Item");
|
||||
test_menu_button->get_popup()->add_check_item("Checked Item");
|
||||
test_menu_button->get_popup()->set_item_checked(2,true);
|
||||
panel->add_child(test_menu_button);
|
||||
first_vb->add_child(test_menu_button);
|
||||
|
||||
test_option_button = memnew( OptionButton );
|
||||
test_option_button->set_pos(Point2(25,175));
|
||||
OptionButton *test_option_button = memnew( OptionButton );
|
||||
test_option_button->add_item("OptionButton");
|
||||
test_option_button->add_separator();
|
||||
test_option_button->add_item("Has");
|
||||
test_option_button->add_item("Many");
|
||||
test_option_button->add_item("Options");
|
||||
panel->add_child(test_option_button);
|
||||
first_vb->add_child(test_option_button);
|
||||
|
||||
ColorPickerButton *cpb = memnew( ColorPickerButton );
|
||||
first_vb->add_child(cpb );
|
||||
|
||||
first_vb->add_child( memnew( HSeparator ));
|
||||
first_vb->add_child( memnew( HSlider ));
|
||||
first_vb->add_child( memnew( HScrollBar ));
|
||||
first_vb->add_child( memnew( SpinBox ));
|
||||
ProgressBar *pb=memnew( ProgressBar );
|
||||
pb->set_val(50);
|
||||
first_vb->add_child( pb);
|
||||
Panel *pn=memnew( Panel );
|
||||
pn->set_custom_minimum_size(Size2(40,40));
|
||||
first_vb->add_child( pn);
|
||||
first_vb->add_constant_override("separation",10);
|
||||
|
||||
VBoxContainer *second_vb = memnew( VBoxContainer );
|
||||
second_vb->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||
main_hb->add_child(second_vb);
|
||||
second_vb->add_constant_override("separation",10);
|
||||
LineEdit *le = memnew( LineEdit );
|
||||
le->set_text("LineEdit");
|
||||
second_vb->add_child(le);
|
||||
TextEdit *te = memnew( TextEdit );
|
||||
te->set_text("TextEdit");
|
||||
//te->set_v_size_flags(SIZE_EXPAND_FILL);
|
||||
te->set_custom_minimum_size(Size2(0,160));
|
||||
second_vb->add_child(te);
|
||||
|
||||
Tree *test_tree = memnew(Tree);
|
||||
second_vb->add_child(test_tree);
|
||||
test_tree->set_custom_minimum_size(Size2(0,160));
|
||||
|
||||
|
||||
TreeItem *item = test_tree->create_item();
|
||||
item->set_editable(0,true);
|
||||
item->set_text(0,"Tree");
|
||||
item = test_tree->create_item( test_tree->get_root() );
|
||||
item->set_cell_mode(0, TreeItem::CELL_MODE_CHECK);
|
||||
item->set_editable(0,true);
|
||||
item->set_text(0,"check");
|
||||
item = test_tree->create_item( test_tree->get_root() );
|
||||
item->set_cell_mode(0, TreeItem::CELL_MODE_RANGE);
|
||||
item->set_editable(0,true);
|
||||
item->set_range_config(0,0,20,0.1);
|
||||
item->set_range(0,2);
|
||||
item = test_tree->create_item( test_tree->get_root() );
|
||||
item->set_cell_mode(0, TreeItem::CELL_MODE_RANGE);
|
||||
item->set_editable(0,true);
|
||||
item->set_text(0,"Have,Many,Several,Options!");
|
||||
item->set_range(0,2);
|
||||
|
||||
VBoxContainer *third_vb = memnew( VBoxContainer );
|
||||
third_vb->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||
third_vb->add_constant_override("separation",10);
|
||||
|
||||
main_hb->add_child(third_vb);
|
||||
|
||||
HBoxContainer *vhb = memnew( HBoxContainer );
|
||||
vhb->set_custom_minimum_size(Size2(0,160));
|
||||
vhb->add_child(memnew(VSeparator));
|
||||
vhb->add_child(memnew(VSlider));
|
||||
vhb->add_child(memnew(VScrollBar));
|
||||
third_vb->add_child(vhb);
|
||||
|
||||
TabContainer *tc = memnew( TabContainer );
|
||||
third_vb->add_child(tc);
|
||||
tc->set_custom_minimum_size(Size2(0,160));
|
||||
Control *tcc = memnew( Control );
|
||||
tcc->set_name("Tab 1");
|
||||
tc->add_child(tcc);
|
||||
tcc = memnew( Control );
|
||||
tcc->set_name("Tab 2");
|
||||
tc->add_child(tcc);
|
||||
tcc = memnew( Control );
|
||||
tcc->set_name("Tab 3");
|
||||
tc->add_child(tcc);
|
||||
|
||||
main_hb->add_constant_override("separation",20);
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
test_h_scroll = memnew( HScrollBar );
|
||||
test_h_scroll->set_pos( Point2( 25, 225 ) );
|
||||
test_h_scroll->set_size( Point2( 150, 5 ) );
|
||||
|
@ -576,21 +718,11 @@ ThemeEditor::ThemeEditor() {
|
|||
panel->add_child(test_file_dialog);
|
||||
|
||||
fd_button->connect("pressed", this,"_open_file_dialog");
|
||||
|
||||
theme_menu = memnew( MenuButton );
|
||||
theme_menu->set_text("Theme..");
|
||||
theme_menu->get_popup()->add_item("Add Item",POPUP_ADD);
|
||||
theme_menu->get_popup()->add_item("Add Class Items",POPUP_CLASS_ADD);
|
||||
theme_menu->get_popup()->add_item("Remove Item",POPUP_REMOVE);
|
||||
theme_menu->get_popup()->add_separator();
|
||||
theme_menu->get_popup()->add_item("Create Template",POPUP_CREATE_TEMPLATE);
|
||||
main_panel->add_child(theme_menu);
|
||||
theme_menu->set_pos(Point2(5,5));
|
||||
theme_menu->get_popup()->connect("item_pressed", this,"_theme_menu_cbk");
|
||||
*/
|
||||
|
||||
add_del_dialog = memnew(ConfirmationDialog);
|
||||
add_del_dialog->hide();
|
||||
main_panel->add_child(add_del_dialog);
|
||||
add_child(add_del_dialog);
|
||||
|
||||
|
||||
Label *l = memnew( Label );
|
||||
|
@ -665,10 +797,12 @@ ThemeEditor::ThemeEditor() {
|
|||
void ThemeEditorPlugin::edit(Object *p_node) {
|
||||
|
||||
if (p_node && p_node->cast_to<Theme>()) {
|
||||
theme_editor->edit( p_node->cast_to<Theme>() );
|
||||
theme_editor->show();
|
||||
} else
|
||||
theme_editor->edit( p_node->cast_to<Theme>() );
|
||||
} else {
|
||||
theme_editor->edit( Ref<Theme>() );
|
||||
theme_editor->hide();
|
||||
}
|
||||
}
|
||||
|
||||
bool ThemeEditorPlugin::handles(Object *p_node) const{
|
||||
|
@ -678,10 +812,13 @@ bool ThemeEditorPlugin::handles(Object *p_node) const{
|
|||
|
||||
void ThemeEditorPlugin::make_visible(bool p_visible){
|
||||
|
||||
if (p_visible)
|
||||
if (p_visible) {
|
||||
theme_editor->show();
|
||||
else
|
||||
theme_editor->set_process(true);
|
||||
} else {
|
||||
theme_editor->hide();
|
||||
theme_editor->set_process(false);
|
||||
}
|
||||
}
|
||||
|
||||
ThemeEditorPlugin::ThemeEditorPlugin(EditorNode *p_node) {
|
||||
|
|
|
@ -42,21 +42,13 @@ class ThemeEditor : public Control {
|
|||
|
||||
OBJ_TYPE( ThemeEditor, Control );
|
||||
|
||||
Panel *panel;
|
||||
|
||||
VBoxContainer *main_vb;
|
||||
Ref<Theme> theme;
|
||||
|
||||
FileDialog *file_dialog;
|
||||
|
||||
Button *test_button;
|
||||
Label *test_label;
|
||||
MenuButton *test_menu_button;
|
||||
OptionButton *test_option_button;
|
||||
HScrollBar *test_h_scroll;
|
||||
VScrollBar *test_v_scroll;
|
||||
LineEdit *line_edit;
|
||||
FileDialog *test_file_dialog;
|
||||
|
||||
double time_left;
|
||||
|
||||
MenuButton *theme_menu;
|
||||
ConfirmationDialog *add_del_dialog;
|
||||
|
@ -86,9 +78,12 @@ class ThemeEditor : public Control {
|
|||
void _name_menu_about_to_show();
|
||||
void _name_menu_cbk(int p_option);
|
||||
void _theme_menu_cbk(int p_option);
|
||||
void _open_file_dialog();
|
||||
void _propagate_redraw(Control *p_at);
|
||||
void _refresh_interval();
|
||||
|
||||
|
||||
protected:
|
||||
void _notification(int p_what);
|
||||
static void _bind_methods();
|
||||
public:
|
||||
|
||||
|
|
|
@ -374,6 +374,24 @@ void ProjectExportDialog::_export_mode_changed(int p_idx) {
|
|||
|
||||
void ProjectExportDialog::_export_action(const String& p_file) {
|
||||
|
||||
String location = Globals::get_singleton()->globalize_path(p_file).get_base_dir().replace("\\","/");
|
||||
|
||||
while(true) {
|
||||
|
||||
print_line("TESTING: "+location.plus_file("engine.cfg"));
|
||||
if (FileAccess::exists(location.plus_file("engine.cfg"))) {
|
||||
|
||||
error->set_text("Please export outside the project folder!");
|
||||
error->popup_centered(Size2(300,70));;
|
||||
return;
|
||||
}
|
||||
String nl = (location+"/..").simplify_path();
|
||||
if (nl.find("/")==location.find_last("/"))
|
||||
break;
|
||||
location=nl;
|
||||
}
|
||||
|
||||
|
||||
TreeItem *selected = platforms->get_selected();
|
||||
if (!selected)
|
||||
return;
|
||||
|
|
0
tools/ios_xcode_template/data.pck
Normal file
0
tools/ios_xcode_template/data.pck
Normal file
469
tools/ios_xcode_template/godot_ios.xcodeproj/project.pbxproj
Normal file
469
tools/ios_xcode_template/godot_ios.xcodeproj/project.pbxproj
Normal file
|
@ -0,0 +1,469 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 46;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */; };
|
||||
D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */; };
|
||||
D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */; };
|
||||
D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */; };
|
||||
D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */; };
|
||||
D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; };
|
||||
D0BCFE6218AEBDA3004A7AAE /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */; };
|
||||
D0BCFE6318AEBDA3004A7AAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */; };
|
||||
D0BCFE6418AEBDA3004A7AAE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */; };
|
||||
D0BCFE6C18AEBDA3004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE6A18AEBDA3004A7AAE /* InfoPlist.strings */; };
|
||||
D0BCFE6E18AEBDA3004A7AAE /* godot_iosTests.m in Sources */ = {isa = PBXBuildFile; fileRef = D0BCFE6D18AEBDA3004A7AAE /* godot_iosTests.m */; };
|
||||
D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* data.pck */; };
|
||||
D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
D0BCFE6518AEBDA3004A7AAE /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D0BCFE2C18AEBDA2004A7AAE /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = D0BCFE3318AEBDA2004A7AAE;
|
||||
remoteInfo = godot_ios;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = godot_ios.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||
D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
|
||||
D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
|
||||
D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; };
|
||||
D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
|
||||
D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "godot_ios-Info.plist"; sourceTree = "<group>"; };
|
||||
D0BCFE4518AEBDA2004A7AAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "godot_ios-Prefix.pch"; sourceTree = "<group>"; };
|
||||
D0BCFE6018AEBDA3004A7AAE /* godot_iosTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = godot_iosTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
|
||||
D0BCFE6918AEBDA3004A7AAE /* godot_iosTests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "godot_iosTests-Info.plist"; sourceTree = "<group>"; };
|
||||
D0BCFE6B18AEBDA3004A7AAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
D0BCFE6D18AEBDA3004A7AAE /* godot_iosTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = godot_iosTests.m; sourceTree = "<group>"; };
|
||||
D0BCFE7718AEBFEB004A7AAE /* data.pck */ = {isa = PBXFileReference; lastKnownFileType = file; path = data.pck; sourceTree = "<group>"; };
|
||||
D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = godot_opt.iphone; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
D0BCFE3118AEBDA2004A7AAE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */,
|
||||
D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */,
|
||||
D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */,
|
||||
D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */,
|
||||
D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D0BCFE5D18AEBDA3004A7AAE /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0BCFE6218AEBDA3004A7AAE /* XCTest.framework in Frameworks */,
|
||||
D0BCFE6418AEBDA3004A7AAE /* UIKit.framework in Frameworks */,
|
||||
D0BCFE6318AEBDA3004A7AAE /* Foundation.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
D0BCFE2B18AEBDA2004A7AAE = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */,
|
||||
D0BCFE7718AEBFEB004A7AAE /* data.pck */,
|
||||
D0BCFE4118AEBDA2004A7AAE /* godot_ios */,
|
||||
D0BCFE6718AEBDA3004A7AAE /* godot_iosTests */,
|
||||
D0BCFE3618AEBDA2004A7AAE /* Frameworks */,
|
||||
D0BCFE3518AEBDA2004A7AAE /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE3518AEBDA2004A7AAE /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */,
|
||||
D0BCFE6018AEBDA3004A7AAE /* godot_iosTests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */,
|
||||
D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */,
|
||||
D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */,
|
||||
D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */,
|
||||
D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */,
|
||||
D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE4118AEBDA2004A7AAE /* godot_ios */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE4218AEBDA2004A7AAE /* Supporting Files */,
|
||||
);
|
||||
path = godot_ios;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE4218AEBDA2004A7AAE /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */,
|
||||
D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */,
|
||||
D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE6718AEBDA3004A7AAE /* godot_iosTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE6D18AEBDA3004A7AAE /* godot_iosTests.m */,
|
||||
D0BCFE6818AEBDA3004A7AAE /* Supporting Files */,
|
||||
);
|
||||
path = godot_iosTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE6818AEBDA3004A7AAE /* Supporting Files */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
D0BCFE6918AEBDA3004A7AAE /* godot_iosTests-Info.plist */,
|
||||
D0BCFE6A18AEBDA3004A7AAE /* InfoPlist.strings */,
|
||||
);
|
||||
name = "Supporting Files";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
D0BCFE3318AEBDA2004A7AAE /* godot_ios */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */;
|
||||
buildPhases = (
|
||||
D0BCFE3018AEBDA2004A7AAE /* Sources */,
|
||||
D0BCFE3118AEBDA2004A7AAE /* Frameworks */,
|
||||
D0BCFE3218AEBDA2004A7AAE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = godot_ios;
|
||||
productName = godot_ios;
|
||||
productReference = D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
D0BCFE5F18AEBDA3004A7AAE /* godot_iosTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = D0BCFE7418AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_iosTests" */;
|
||||
buildPhases = (
|
||||
D0BCFE5C18AEBDA3004A7AAE /* Sources */,
|
||||
D0BCFE5D18AEBDA3004A7AAE /* Frameworks */,
|
||||
D0BCFE5E18AEBDA3004A7AAE /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
D0BCFE6618AEBDA3004A7AAE /* PBXTargetDependency */,
|
||||
);
|
||||
name = godot_iosTests;
|
||||
productName = godot_iosTests;
|
||||
productReference = D0BCFE6018AEBDA3004A7AAE /* godot_iosTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
D0BCFE2C18AEBDA2004A7AAE /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 0500;
|
||||
ORGANIZATIONNAME = Okam;
|
||||
TargetAttributes = {
|
||||
D0BCFE5F18AEBDA3004A7AAE = {
|
||||
TestTargetID = D0BCFE3318AEBDA2004A7AAE;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */;
|
||||
compatibilityVersion = "Xcode 3.2";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = D0BCFE2B18AEBDA2004A7AAE;
|
||||
productRefGroup = D0BCFE3518AEBDA2004A7AAE /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
D0BCFE3318AEBDA2004A7AAE /* godot_ios */,
|
||||
D0BCFE5F18AEBDA3004A7AAE /* godot_iosTests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
D0BCFE3218AEBDA2004A7AAE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */,
|
||||
D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */,
|
||||
D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D0BCFE5E18AEBDA3004A7AAE /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0BCFE6C18AEBDA3004A7AAE /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
D0BCFE3018AEBDA2004A7AAE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
D0BCFE5C18AEBDA3004A7AAE /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
D0BCFE6E18AEBDA3004A7AAE /* godot_iosTests.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
D0BCFE6618AEBDA3004A7AAE /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = D0BCFE3318AEBDA2004A7AAE /* godot_ios */;
|
||||
targetProxy = D0BCFE6518AEBDA3004A7AAE /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
D0BCFE4518AEBDA2004A7AAE /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
D0BCFE6A18AEBDA3004A7AAE /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
D0BCFE6B18AEBDA3004A7AAE /* en */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
D0BCFE6F18AEBDA3004A7AAE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
D0BCFE7018AEBDA3004A7AAE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = YES;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 7.0;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
D0BCFE7218AEBDA3004A7AAE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch";
|
||||
INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALID_ARCHS = "armv7 armv7s";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
D0BCFE7318AEBDA3004A7AAE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD)";
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch";
|
||||
INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 4.3;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALID_ARCHS = "armv7 armv7s";
|
||||
WRAPPER_EXTENSION = app;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
D0BCFE7518AEBDA3004A7AAE /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/godot_ios.app/godot_ios";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
||||
);
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch";
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
INFOPLIST_FILE = "godot_iosTests/godot_iosTests-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||
WRAPPER_EXTENSION = xctest;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
D0BCFE7618AEBDA3004A7AAE /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
|
||||
BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/godot_ios.app/godot_ios";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(SDKROOT)/Developer/Library/Frameworks",
|
||||
"$(inherited)",
|
||||
"$(DEVELOPER_FRAMEWORKS_DIR)",
|
||||
);
|
||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||
GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch";
|
||||
INFOPLIST_FILE = "godot_iosTests/godot_iosTests-Info.plist";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
TEST_HOST = "$(BUNDLE_LOADER)";
|
||||
WRAPPER_EXTENSION = xctest;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0BCFE6F18AEBDA3004A7AAE /* Debug */,
|
||||
D0BCFE7018AEBDA3004A7AAE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0BCFE7218AEBDA3004A7AAE /* Debug */,
|
||||
D0BCFE7318AEBDA3004A7AAE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
D0BCFE7418AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_iosTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
D0BCFE7518AEBDA3004A7AAE /* Debug */,
|
||||
D0BCFE7618AEBDA3004A7AAE /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = D0BCFE2C18AEBDA2004A7AAE /* Project object */;
|
||||
}
|
7
tools/ios_xcode_template/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
tools/ios_xcode_template/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:godot_ios.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
Binary file not shown.
|
@ -0,0 +1,96 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "0500"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0BCFE3318AEBDA2004A7AAE"
|
||||
BuildableName = "godot_ios.app"
|
||||
BlueprintName = "godot_ios"
|
||||
ReferencedContainer = "container:godot_ios.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
buildConfiguration = "Debug">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0BCFE5F18AEBDA3004A7AAE"
|
||||
BuildableName = "godot_iosTests.xctest"
|
||||
BlueprintName = "godot_iosTests"
|
||||
ReferencedContainer = "container:godot_ios.xcodeproj">
|
||||
</BuildableReference>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0BCFE3318AEBDA2004A7AAE"
|
||||
BuildableName = "godot_ios.app"
|
||||
BlueprintName = "godot_ios"
|
||||
ReferencedContainer = "container:godot_ios.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Debug"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0BCFE3318AEBDA2004A7AAE"
|
||||
BuildableName = "godot_ios.app"
|
||||
BlueprintName = "godot_ios"
|
||||
ReferencedContainer = "container:godot_ios.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
buildConfiguration = "Release"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "D0BCFE3318AEBDA2004A7AAE"
|
||||
BuildableName = "godot_ios.app"
|
||||
BlueprintName = "godot_ios"
|
||||
ReferencedContainer = "container:godot_ios.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -0,0 +1,27 @@
|
|||
<?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>SchemeUserState</key>
|
||||
<dict>
|
||||
<key>godot_ios.xcscheme</key>
|
||||
<dict>
|
||||
<key>orderHint</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>SuppressBuildableAutocreation</key>
|
||||
<dict>
|
||||
<key>D0BCFE3318AEBDA2004A7AAE</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>D0BCFE5F18AEBDA3004A7AAE</key>
|
||||
<dict>
|
||||
<key>primary</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
47
tools/ios_xcode_template/godot_ios/godot_ios-Info.plist
Normal file
47
tools/ios_xcode_template/godot_ios/godot_ios-Info.plist
Normal file
|
@ -0,0 +1,47 @@
|
|||
<?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>en</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>godot_opt.iphone</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.okamstudios.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIRequiredDeviceCapabilities</key>
|
||||
<array>
|
||||
<string>armv7</string>
|
||||
</array>
|
||||
<key>UIStatusBarHidden</key>
|
||||
<true/>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
16
tools/ios_xcode_template/godot_ios/godot_ios-Prefix.pch
Normal file
16
tools/ios_xcode_template/godot_ios/godot_ios-Prefix.pch
Normal file
|
@ -0,0 +1,16 @@
|
|||
//
|
||||
// Prefix header
|
||||
//
|
||||
// The contents of this file are implicitly included at the beginning of every source file.
|
||||
//
|
||||
|
||||
#import <Availability.h>
|
||||
|
||||
#ifndef __IPHONE_5_0
|
||||
#warning "This project uses features only available in iOS SDK 5.0 and later."
|
||||
#endif
|
||||
|
||||
#ifdef __OBJC__
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#endif
|
18
tools/ios_xcode_template/godot_ios/main.m
Normal file
18
tools/ios_xcode_template/godot_ios/main.m
Normal file
|
@ -0,0 +1,18 @@
|
|||
//
|
||||
// main.m
|
||||
// godot_ios
|
||||
//
|
||||
// Created by Ariel m on 2/14/14.
|
||||
// Copyright (c) 2014 Okam. All rights reserved.
|
||||
//
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
|
||||
#import "AppDelegate.h"
|
||||
|
||||
int main(int argc, char * argv[])
|
||||
{
|
||||
@autoreleasepool {
|
||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,2 @@
|
|||
/* Localized versions of Info.plist keys */
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<?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>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.okamstudios.${PRODUCT_NAME:rfc1034identifier}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
</dict>
|
||||
</plist>
|
34
tools/ios_xcode_template/godot_iosTests/godot_iosTests.m
Normal file
34
tools/ios_xcode_template/godot_iosTests/godot_iosTests.m
Normal file
|
@ -0,0 +1,34 @@
|
|||
//
|
||||
// godot_iosTests.m
|
||||
// godot_iosTests
|
||||
//
|
||||
// Created by Ariel m on 2/14/14.
|
||||
// Copyright (c) 2014 Okam. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
@interface godot_iosTests : XCTestCase
|
||||
|
||||
@end
|
||||
|
||||
@implementation godot_iosTests
|
||||
|
||||
- (void)setUp
|
||||
{
|
||||
[super setUp];
|
||||
// Put setup code here. This method is called before the invocation of each test method in the class.
|
||||
}
|
||||
|
||||
- (void)tearDown
|
||||
{
|
||||
// Put teardown code here. This method is called after the invocation of each test method in the class.
|
||||
[super tearDown];
|
||||
}
|
||||
|
||||
- (void)testExample
|
||||
{
|
||||
XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__);
|
||||
}
|
||||
|
||||
@end
|
Loading…
Reference in a new issue