├── 20110216 ├── anim │ └── Resources │ │ ├── .DS_Store │ │ ├── KS_nav_ui.png │ │ ├── KS_nav_views.png │ │ ├── android │ │ ├── .DS_Store │ │ ├── appicon.png │ │ ├── default.png │ │ └── images │ │ │ ├── res-long-land-hdpi │ │ │ └── default.png │ │ │ ├── res-long-land-ldpi │ │ │ └── default.png │ │ │ ├── res-long-port-hdpi │ │ │ └── default.png │ │ │ ├── res-long-port-ldpi │ │ │ └── default.png │ │ │ ├── res-notlong-land-hdpi │ │ │ └── default.png │ │ │ ├── res-notlong-land-ldpi │ │ │ └── default.png │ │ │ ├── res-notlong-land-mdpi │ │ │ └── default.png │ │ │ ├── res-notlong-port-hdpi │ │ │ └── default.png │ │ │ ├── res-notlong-port-ldpi │ │ │ └── default.png │ │ │ └── res-notlong-port-mdpi │ │ │ └── default.png │ │ ├── app.js │ │ ├── iphone │ │ ├── Default-Landscape.png │ │ ├── Default-Portrait.png │ │ ├── Default.png │ │ ├── Default@2x.png │ │ └── appicon.png │ │ └── mog_bottom_heart.png └── sample1 │ ├── .DS_Store │ ├── ICON-LICENSE.txt │ ├── android │ ├── appicon.png │ ├── default.png │ └── images │ │ ├── res-long-land-hdpi │ │ └── default.png │ │ ├── res-long-land-ldpi │ │ └── default.png │ │ ├── res-long-port-hdpi │ │ └── default.png │ │ ├── res-long-port-ldpi │ │ └── default.png │ │ ├── res-notlong-land-hdpi │ │ └── default.png │ │ ├── res-notlong-land-ldpi │ │ └── default.png │ │ ├── res-notlong-land-mdpi │ │ └── default.png │ │ ├── res-notlong-port-hdpi │ │ └── default.png │ │ ├── res-notlong-port-ldpi │ │ └── default.png │ │ └── res-notlong-port-mdpi │ │ └── default.png │ ├── app.js │ ├── blog.js │ ├── blog0.js │ ├── blog1.js │ ├── blog2.js │ ├── database-36.png │ ├── default_app_logo.png │ ├── dialog-36.png │ ├── feedview.js │ ├── iphone │ ├── Default.png │ └── appicon.png │ ├── laptop-36.png │ ├── twitter.js │ ├── twitter0.js │ ├── twitter1.js │ ├── twitter2.js │ └── web.js ├── README └── modules └── CustomImage ├── .DS_Store ├── .gitignore ├── Classes ├── .gitignore ├── JpMasuidriveItCustomimageModule.h ├── JpMasuidriveItCustomimageModule.m ├── JpMasuidriveItCustomimageModuleAssets.h └── JpMasuidriveItCustomimageModuleAssets.m ├── JpMasuidriveItCustomimage_Prefix.pch ├── LICENSE ├── README ├── assets └── README ├── build.py ├── customimage.xcodeproj ├── masuidrive.mode1v3 ├── masuidrive.pbxuser └── project.pbxproj ├── documentation └── index.md ├── example ├── .DS_Store └── app.js ├── hooks ├── README ├── add.py ├── install.py ├── remove.py └── uninstall.py ├── manifest ├── module.xcconfig ├── timodule.xml └── titanium.xcconfig /20110216/anim/Resources/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/.DS_Store -------------------------------------------------------------------------------- /20110216/anim/Resources/KS_nav_ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/KS_nav_ui.png -------------------------------------------------------------------------------- /20110216/anim/Resources/KS_nav_views.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/KS_nav_views.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/.DS_Store -------------------------------------------------------------------------------- /20110216/anim/Resources/android/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/appicon.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-long-land-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-long-land-hdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-long-land-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-long-land-ldpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-long-port-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-long-port-hdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-long-port-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-long-port-ldpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-land-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-land-hdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-land-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-land-ldpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-land-mdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-land-mdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-port-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-port-hdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-port-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-port-ldpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/android/images/res-notlong-port-mdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/android/images/res-notlong-port-mdpi/default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/app.js: -------------------------------------------------------------------------------- 1 | var window = Titanium.UI.createWindow({ 2 | backgroundColor: "#fff" 3 | }); 4 | 5 | var button = Titanium.UI.createButton({ 6 | title: "食べたい", 7 | top: 350, 8 | left: 180, 9 | height: 50, width: 100 10 | }); 11 | window.add(button); 12 | button.addEventListener("click", function() { 13 | showHeart(); 14 | }); 15 | 16 | window.open(); 17 | 18 | function showHeart(){ 19 | //=== 下から上へ移動するアニメーション(v1用) 20 | var anim_up = Ti.UI.createAnimation({ 21 | duration: 900, 22 | transform: Ti.UI.create2DMatrix().translate(0, -40) 23 | }); 24 | 25 | // 下から上へ移動するコンテナView 26 | var v1 = Ti.UI.createView({ 27 | width: 100, 28 | height: 23 29 | }); 30 | 31 | //=== v2 = フェードアウトするコンテナView 32 | var v2 = Ti.UI.createView(); 33 | v1.add(v2); 34 | 35 | //=== フェードアウトアニメーション(v2用) 36 | var fadeout = Ti.UI.createAnimation({ 37 | delay: 700, 38 | duration: 200, 39 | opaque: true, 40 | opacity: 0.0 41 | }); 42 | 43 | //=== heart = 左右移動するハート本体View 44 | var heart = Ti.UI.createView({ 45 | backgroundImage: "mog_bottom_heart.png", 46 | width: 25, 47 | height: 23, 48 | left: 100/2 - 25/2 49 | }); 50 | v2.add(heart); 51 | 52 | //=== 左右移動アニメーション1(heart用) 53 | var anim_lr = Ti.UI.createAnimation({ 54 | duration: 300, 55 | left: 100-25 56 | }); 57 | anim_lr.addEventListener("complete", function(){ 58 | //=== 左右移動アニメーション2(1が終わったら開始)(heart用) 59 | var anim3 = Ti.UI.createAnimation({ 60 | duration: 300, 61 | autoreverse: true, 62 | repeat: 1, 63 | left: 0 64 | }); 65 | //=== 終わったらRemove 66 | anim3.addEventListener("complete", function(){ 67 | window.remove(v1); 68 | }); 69 | heart.animate(anim3); 70 | }); 71 | 72 | v1.left = 175; 73 | v1.top = 348; 74 | window.add(v1); 75 | 76 | //=== それぞれのVeiwでアニメーション開始 77 | heart.animate(anim_lr); 78 | v1.animate(anim_up); 79 | v2.animate(fadeout); 80 | }; 81 | -------------------------------------------------------------------------------- /20110216/anim/Resources/iphone/Default-Landscape.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/iphone/Default-Landscape.png -------------------------------------------------------------------------------- /20110216/anim/Resources/iphone/Default-Portrait.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/iphone/Default-Portrait.png -------------------------------------------------------------------------------- /20110216/anim/Resources/iphone/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/iphone/Default.png -------------------------------------------------------------------------------- /20110216/anim/Resources/iphone/Default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/iphone/Default@2x.png -------------------------------------------------------------------------------- /20110216/anim/Resources/iphone/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/iphone/appicon.png -------------------------------------------------------------------------------- /20110216/anim/Resources/mog_bottom_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/anim/Resources/mog_bottom_heart.png -------------------------------------------------------------------------------- /20110216/sample1/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/.DS_Store -------------------------------------------------------------------------------- /20110216/sample1/ICON-LICENSE.txt: -------------------------------------------------------------------------------- 1 | http://www.androidicons.com/ 2 | 3 | This work is licensed under the Creative Commons Attribution 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA. 4 | -------------------------------------------------------------------------------- /20110216/sample1/android/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/appicon.png -------------------------------------------------------------------------------- /20110216/sample1/android/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-long-land-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-long-land-hdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-long-land-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-long-land-ldpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-long-port-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-long-port-hdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-long-port-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-long-port-ldpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-land-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-land-hdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-land-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-land-ldpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-land-mdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-land-mdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-port-hdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-port-hdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-port-ldpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-port-ldpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/android/images/res-notlong-port-mdpi/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/android/images/res-notlong-port-mdpi/default.png -------------------------------------------------------------------------------- /20110216/sample1/app.js: -------------------------------------------------------------------------------- 1 | var tabGroup = Titanium.UI.createTabGroup(); 2 | 3 | var win1 = Titanium.UI.createWindow({ 4 | title: "My Blog", 5 | url: "blog.js" 6 | }); 7 | var tab1 = Titanium.UI.createTab({ 8 | title: "My Blog", 9 | icon: "database-36.png", 10 | window: win1 11 | }); 12 | tabGroup.addTab(tab1); 13 | 14 | var win2 = Titanium.UI.createWindow({ 15 | title: "@appcelerator_ja", 16 | url: "twitter.js" 17 | }); 18 | var tab2 = Titanium.UI.createTab({ 19 | title: "Twitter", 20 | icon: "dialog-36.png", 21 | window: win2 22 | }); 23 | tabGroup.addTab(tab2); 24 | 25 | var win3 = Titanium.UI.createWindow({ 26 | title: "Web site", 27 | url: "web.js", 28 | link: "http://www.appcelerator.com" 29 | }); 30 | var tab3 = Titanium.UI.createTab({ 31 | title: "Web", 32 | icon: "laptop-36.png", 33 | window: win3 34 | }); 35 | tabGroup.addTab(tab3); 36 | 37 | tabGroup.open(); 38 | -------------------------------------------------------------------------------- /20110216/sample1/blog.js: -------------------------------------------------------------------------------- 1 | // blog.js 2 | var FeedView = require("feedview").FeedView; 3 | var blogfeed = new FeedView(Titanium.UI.currentWindow, {hasDetail: true}); 4 | 5 | blogfeed.load = function(event) { 6 | var self = this; 7 | Titanium.Yahoo.yql("select * from feed where "+ 8 | "url='http://developer.appcelerator.com/blog/feed'", 9 | function(e) { 10 | self.setData(e.data.item.map(function(i) { 11 | return({title: i.title, subtitle: i.creator, link: i.link}); 12 | })); 13 | } 14 | ); 15 | }; 16 | 17 | blogfeed.onclick = function(event) { 18 | var new_window = Titanium.UI.createWindow({ 19 | url: "web.js", 20 | title: event.rowData.data.title, 21 | link: event.rowData.data.link 22 | }); 23 | Titanium.UI.currentTab.open(new_window, {animated : true}); 24 | }; 25 | 26 | blogfeed.load(); -------------------------------------------------------------------------------- /20110216/sample1/blog0.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | table.addEventListener("click", function(event) { 5 | var new_window = Titanium.UI.createWindow({ 6 | title: event.rowData.title, 7 | url: "web.js", 8 | link: event.rowData.link 9 | }); 10 | Titanium.UI.currentTab.open(new_window, {animated : true}); 11 | }); 12 | 13 | Titanium.Yahoo.yql("select * from feed where url='http://developer.appcelerator.com/blog/feed'", 14 | function(e) { 15 | table.setData(e.data.item.map(function(i) { 16 | return({title: i.title, link: i.link}); 17 | })); 18 | } 19 | ); -------------------------------------------------------------------------------- /20110216/sample1/blog1.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | table.addEventListener("click", function(event) { 5 | var new_window = Titanium.UI.createWindow({ 6 | title: event.rowData.title, 7 | url: "web.js", 8 | link: event.rowData.link 9 | }); 10 | Titanium.UI.currentTab.open(new_window, {animated : true}); 11 | }); 12 | 13 | Titanium.Yahoo.yql("select * from feed where url='http://developer.appcelerator.com/blog/feed'", 14 | function(e) { 15 | table.setData(e.data.item.map(function(i) { 16 | var row = Titanium.UI.createTableViewRow({ 17 | layout:"vertical", 18 | width: "auto", 19 | height: "auto", 20 | hasDetail: true 21 | }); 22 | var textColor = "#000"; 23 | if(Titanium.Platform.osname=="android") { 24 | textColor = "#fff"; 25 | } 26 | var message = Titanium.UI.createLabel({ 27 | text: i.title, 28 | color: textColor, 29 | textAlign: "left", 30 | font: { fontSize: 16, fontWeight: "bold" }, 31 | height: "auto", top: 4, 32 | left: 8, right: 8 33 | }); 34 | row.add(message); 35 | var author = Titanium.UI.createTableViewateLabel({ 36 | text: i.creator, 37 | color: "#888", 38 | textAlign: "left", 39 | font: { fontSize: 12 }, 40 | height: "auto", bottom: 4, 41 | left: 8, right: 8 42 | }); 43 | row.add(author); 44 | row.link = i.link; 45 | return(row); 46 | })); 47 | } 48 | ); -------------------------------------------------------------------------------- /20110216/sample1/blog2.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | table.addEventListener("click", function(event) { 5 | var new_window = Titanium.UI.createWindow({ 6 | title: event.rowData.title_, 7 | url: "web.js", 8 | link: event.rowData.link 9 | }); 10 | Titanium.UI.currentTab.open(new_window, {animated : true}); 11 | }); 12 | 13 | Titanium.Yahoo.yql("select * from feed where url='http://developer.appcelerator.com/blog/feed'", 14 | function(e) { 15 | table.setData(e.data.item.map(function(i) { 16 | var row = Titanium.UI.createTableViewRow({ 17 | layout:"vertical", 18 | width: "auto", 19 | height: "auto", 20 | hasDetail: true 21 | }); 22 | var textColor = "#000"; 23 | if(Titanium.Platform.osname=="android") { 24 | textColor = "#fff"; 25 | } 26 | var message = Titanium.UI.createLabel({ 27 | text: i.title, 28 | color: textColor, 29 | textAlign: "left", 30 | font: { fontSize: 16, fontWeight: "bold" }, 31 | height: "auto", top: 4, 32 | left: 8, right: 8 33 | }); 34 | row.add(message); 35 | var author = Titanium.UI.createLabel({ 36 | text: i.creator, 37 | color: "#888", 38 | textAlign: "left", 39 | font: { fontSize: 12 }, 40 | height: "auto", bottom: 4, 41 | left: 8, right: 8 42 | }); 43 | row.add(author); 44 | row.title_ = i.title; 45 | row.link = i.link; 46 | return(row); 47 | })); 48 | } 49 | ); -------------------------------------------------------------------------------- /20110216/sample1/database-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/database-36.png -------------------------------------------------------------------------------- /20110216/sample1/default_app_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/default_app_logo.png -------------------------------------------------------------------------------- /20110216/sample1/dialog-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/dialog-36.png -------------------------------------------------------------------------------- /20110216/sample1/feedview.js: -------------------------------------------------------------------------------- 1 | var FeedView = function(window, options) { 2 | this.window = window; 3 | this.options = (options || {}); 4 | this.table = Titanium.UI.createTableView({}); 5 | this.window.add(this.table); 6 | 7 | var self = this; 8 | this.table.addEventListener("click", function(event) { 9 | self.onclick(event); 10 | }); 11 | this.load = function() { 12 | Titanium.API.info("Require implement load();"); 13 | }; 14 | this.onclick = function(event) {}; 15 | 16 | if(Titanium.Platform.osname=="iphone") { 17 | var r = Titanium.UI.createButton({ 18 | systemButton:Titanium.UI.iPhone.SystemButton.REFRESH 19 | }); 20 | r.addEventListener('click',function() { 21 | self.load(); 22 | }); 23 | self.window.setRightNavButton(r); 24 | } 25 | else if(Titanium.Platform.osname=="android") { 26 | var activity = Ti.Android.currentActivity; 27 | activity.onCreateOptionsMenu = function(e) { 28 | var r = e.menu.add({title : 'Reload'}); 29 | r.addEventListener('click', function() { 30 | self.load(); 31 | }); 32 | }; 33 | } 34 | }; 35 | exports.FeedView = FeedView; 36 | 37 | FeedView.prototype.setData = function(rows) { 38 | var self = this; 39 | var hasDetail = this.options.hasDetail || false; 40 | this.table.setData(rows.map(function(data) { 41 | var row = Titanium.UI.createTableViewRow({ 42 | layout:"vertical", 43 | width: "auto", 44 | height: "auto", 45 | hasDetail: hasDetail 46 | }); 47 | var textColor = "#000"; 48 | if(Titanium.Platform.osname=="android") { 49 | textColor = "#fff"; 50 | } 51 | var title = Titanium.UI.createLabel({ 52 | text: data.title, 53 | color: textColor, 54 | textAlign: "left", 55 | font: self.options.titleFont || { fontSize: 16, fontWeight: "bold" }, 56 | height: "auto", top: 4, 57 | left: 8, right: 8 58 | }); 59 | row.add(title); 60 | 61 | var subtitle = Titanium.UI.createLabel({ 62 | text: data.subtitle, 63 | color: "#888", 64 | textAlign: "left", 65 | font: self.options.subtitleFont || { fontSize: 12 }, 66 | height: "auto", bottom: 4, 67 | left: 8, right: 8 68 | }); 69 | row.add(subtitle); 70 | row.subtitle = data.subtitle; 71 | row.data = data; 72 | return(row); 73 | })); 74 | }; 75 | -------------------------------------------------------------------------------- /20110216/sample1/iphone/Default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/iphone/Default.png -------------------------------------------------------------------------------- /20110216/sample1/iphone/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/iphone/appicon.png -------------------------------------------------------------------------------- /20110216/sample1/laptop-36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/20110216/sample1/laptop-36.png -------------------------------------------------------------------------------- /20110216/sample1/twitter.js: -------------------------------------------------------------------------------- 1 | // twitter.js 2 | var FeedView = require("feedview").FeedView; 3 | var twitterfeed = new FeedView(Titanium.UI.currentWindow, {titleFont: { fontSize: 14 }}); 4 | 5 | twitterfeed.load = function(event) { 6 | var self = this; 7 | var http = Ti.Network.createHTTPClient({ 8 | onload: function(response) { 9 | var json = JSON.parse(http.responseText); 10 | self.setData(json.map(function(i) { 11 | return({title: i.text, subtitle: i.created_at}); 12 | })); 13 | } 14 | }); 15 | http.open("GET", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=appcelerator_ja"); 16 | http.send(); 17 | }; 18 | 19 | twitterfeed.load(); -------------------------------------------------------------------------------- /20110216/sample1/twitter0.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | 5 | var load = function() { 6 | var http = Ti.Network.createHTTPClient({ 7 | onload: function(response) { 8 | var json = JSON.parse(http.responseText); 9 | table.setData(json.map(function(i) { 10 | return({title: i.text}); 11 | })); 12 | } 13 | }); 14 | http.open("GET", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=appcelerator_ja"); 15 | http.send(); 16 | }; 17 | load(); 18 | 19 | if(Titanium.Platform.osname=="iphone") { 20 | var r = Titanium.UI.createButton({ 21 | systemButton:Titanium.UI.iPhone.SystemButton.REFRESH 22 | }); 23 | r.addEventListener('click',function() { 24 | load(); 25 | }); 26 | Titanium.UI.currentWindow.setRightNavButton(r); 27 | } 28 | else if(Titanium.Platform.osname=="android") { 29 | var activity = Ti.Android.currentActivity; 30 | activity.onCreateOptionsMenu = function(e) { 31 | var r = e.menu.add({title : 'Reload'}); 32 | r.addEventListener('click', function() { 33 | load(); 34 | }); 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /20110216/sample1/twitter1.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | 5 | var load = function() { 6 | var http = Ti.Network.createHTTPClient({ 7 | onload: function(response) { 8 | var json = JSON.parse(http.responseText); 9 | table.setData(json.map(function(i) { 10 | var row = Titanium.UI.createTableViewRow({ 11 | layout:"vertical", 12 | width: "auto", 13 | height: "auto" 14 | }); 15 | var textColor = "#000"; 16 | if(Titanium.Platform.osname=="android") { 17 | textColor = "#fff"; 18 | } 19 | var message = Titanium.UI.createLabel({ 20 | text: i.text, 21 | color: textColor, 22 | textAlign: "left", 23 | font: { fontSize: 14 }, 24 | height: "auto", top: 4, 25 | left: 8, right: 8 26 | }); 27 | row.add(message); 28 | var timestamp = Titanium.UI.createLabel({ 29 | text: i.created_at, 30 | color: '#888', 31 | font: { fontSize: 12 }, 32 | height: 'auto', bottom: 4, 33 | left: 8, right: 8 34 | }); 35 | row.add(timestamp); 36 | return(row); 37 | })); 38 | } 39 | }); 40 | http.open("GET", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=appcelerator_ja"); 41 | http.send(); 42 | }; 43 | load(); 44 | 45 | if(Titanium.Platform.osname=="iphone") { 46 | var r = Titanium.UI.createButton({ 47 | systemButton:Titanium.UI.iPhone.SystemButton.REFRESH 48 | }); 49 | r.addEventListener('click',function() { 50 | load(); 51 | }); 52 | Titanium.UI.currentWindow.setRightNavButton(r); 53 | } 54 | else if(Titanium.Platform.osname=="android") { 55 | var activity = Ti.Android.currentActivity; 56 | activity.onCreateOptionsMenu = function(e) { 57 | var r = e.menu.add({title : 'Reload'}); 58 | r.addEventListener('click', function() { 59 | load(); 60 | }); 61 | }; 62 | } 63 | -------------------------------------------------------------------------------- /20110216/sample1/twitter2.js: -------------------------------------------------------------------------------- 1 | var table = Titanium.UI.createTableView({ 2 | }); 3 | Titanium.UI.currentWindow.add(table); 4 | 5 | var load = function() { 6 | var http = Ti.Network.createHTTPClient({ 7 | onload: function(response) { 8 | var json = JSON.parse(http.responseText); 9 | table.setData(json.map(function(i) { 10 | var row = Titanium.UI.createTableViewRow({ 11 | layout:"vertical", 12 | width: "auto", 13 | height: "auto" 14 | }); 15 | var textColor = "#000"; 16 | if(Titanium.Platform.osname=="android") { 17 | textColor = "#fff"; 18 | } 19 | var message = Titanium.UI.createLabel({ 20 | text: i.text, 21 | color: textColor, 22 | textAlign: "left", 23 | font: { fontSize: 14 }, 24 | height: "auto", top: 4, 25 | left: 8, right: 8 26 | }); 27 | row.add(message); 28 | var timestamp = Titanium.UI.createLabel({ 29 | text: i.created_at, 30 | color: '#888', 31 | font: { fontSize: 12 }, 32 | height: 'auto', bottom: 4, 33 | left: 8, right: 8 34 | }); 35 | row.add(timestamp); 36 | return(row); 37 | })); 38 | } 39 | }); 40 | http.open("GET", "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=appcelerator_ja"); 41 | http.send(); 42 | }; 43 | load(); 44 | 45 | if(Titanium.Platform.osname=="iphone") { 46 | var r = Titanium.UI.createButton({ 47 | systemButton:Titanium.UI.iPhone.SystemButton.REFRESH 48 | }); 49 | r.addEventListener('click',function() { 50 | load(); 51 | }); 52 | Titanium.UI.currentWindow.setRightNavButton(r); 53 | } 54 | else if(Titanium.Platform.osname=="android") { 55 | var activity = Ti.Android.currentActivity; 56 | activity.onCreateOptionsMenu = function(e) { 57 | var r = e.menu.add({title : 'Reload'}); 58 | r.addEventListener('click', function() { 59 | load(); 60 | }); 61 | }; 62 | } 63 | -------------------------------------------------------------------------------- /20110216/sample1/web.js: -------------------------------------------------------------------------------- 1 | var webView = Titanium.UI.createWebView({ 2 | url: Titanium.UI.currentWindow.link 3 | }); 4 | Titanium.UI.currentWindow.add(webView); -------------------------------------------------------------------------------- /README: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/README -------------------------------------------------------------------------------- /modules/CustomImage/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/modules/CustomImage/.DS_Store -------------------------------------------------------------------------------- /modules/CustomImage/.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | bin 3 | build 4 | *.zip 5 | -------------------------------------------------------------------------------- /modules/CustomImage/Classes/.gitignore: -------------------------------------------------------------------------------- 1 | JpMasuidriveItCustomimage.h 2 | JpMasuidriveItCustomimage.m 3 | -------------------------------------------------------------------------------- /modules/CustomImage/Classes/JpMasuidriveItCustomimageModule.h: -------------------------------------------------------------------------------- 1 | /** 2 | * Your Copyright Here 3 | * 4 | * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. 5 | * and licensed under the Apache Public License (version 2) 6 | */ 7 | #import "TiModule.h" 8 | 9 | @interface JpMasuidriveItCustomimageModule : TiModule 10 | { 11 | } 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /modules/CustomImage/Classes/JpMasuidriveItCustomimageModule.m: -------------------------------------------------------------------------------- 1 | /** 2 | * Your Copyright Here 3 | * 4 | * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. 5 | * and licensed under the Apache Public License (version 2) 6 | */ 7 | #import "JpMasuidriveItCustomimageModule.h" 8 | #import "TiBase.h" 9 | #import "TiHost.h" 10 | #import "TiBlob.h" 11 | #import "TiUtils.h" 12 | 13 | @implementation JpMasuidriveItCustomimageModule 14 | 15 | #pragma mark Internal 16 | 17 | // this is generated for your module, please do not change it 18 | -(id)moduleGUID 19 | { 20 | return @"44415e99-786d-4e17-ad84-3338af77efd3"; 21 | } 22 | 23 | // this is generated for your module, please do not change it 24 | -(NSString*)moduleId 25 | { 26 | return @"jp.masuidrive.it.customimage"; 27 | } 28 | 29 | #pragma mark Lifecycle 30 | 31 | -(void)startup 32 | { 33 | // this method is called when the module is first loaded 34 | // you *must* call the superclass 35 | [super startup]; 36 | 37 | NSLog(@"[INFO] %@ loaded",self); 38 | } 39 | 40 | -(void)shutdown:(id)sender 41 | { 42 | // this method is called when the module is being unloaded 43 | // typically this is during shutdown. make sure you don't do too 44 | // much processing here or the app will be quit forceably 45 | 46 | // you *must* call the superclass 47 | [super shutdown:sender]; 48 | } 49 | 50 | #pragma mark Cleanup 51 | 52 | -(void)dealloc 53 | { 54 | // release any resources that have been retained by the module 55 | [super dealloc]; 56 | } 57 | 58 | #pragma mark Internal Memory Management 59 | 60 | -(void)didReceiveMemoryWarning:(NSNotification*)notification 61 | { 62 | // optionally release any resources that can be dynamically 63 | // reloaded once memory is available - such as caches 64 | [super didReceiveMemoryWarning:notification]; 65 | } 66 | 67 | #pragma mark Listener Notifications 68 | 69 | -(void)_listenerAdded:(NSString *)type count:(int)count 70 | { 71 | if (count == 1 && [type isEqualToString:@"my_event"]) 72 | { 73 | // the first (of potentially many) listener is being added 74 | // for event named 'my_event' 75 | } 76 | } 77 | 78 | -(void)_listenerRemoved:(NSString *)type count:(int)count 79 | { 80 | if (count == 0 && [type isEqualToString:@"my_event"]) 81 | { 82 | // the last listener called for event named 'my_event' has 83 | // been removed, we can optionally clean up any resources 84 | // since no body is listening at this point for that event 85 | } 86 | } 87 | 88 | #pragma Public APIs 89 | 90 | -(void)savejpeg:(id)args 91 | { 92 | ENSURE_UI_THREAD(savejpeg, args); 93 | ENSURE_ARG_COUNT(args, 3); 94 | 95 | TiBlob* blob = [args objectAtIndex:0]; 96 | NSString* saveFile = [TiUtils stringValue:[args objectAtIndex:1]]; 97 | float compress = [TiUtils floatValue:[args objectAtIndex:2]]; 98 | 99 | NSData* data = UIImageJPEGRepresentation(blob.image, compress); 100 | [data writeToFile:saveFile atomically:YES]; 101 | } 102 | 103 | 104 | @end 105 | -------------------------------------------------------------------------------- /modules/CustomImage/Classes/JpMasuidriveItCustomimageModuleAssets.h: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a generated file. Do not edit or your changes will be lost 3 | */ 4 | 5 | @interface JpMasuidriveItCustomimageModuleAssets : NSObject 6 | { 7 | } 8 | - (NSData*) moduleAsset; 9 | @end 10 | -------------------------------------------------------------------------------- /modules/CustomImage/Classes/JpMasuidriveItCustomimageModuleAssets.m: -------------------------------------------------------------------------------- 1 | /** 2 | * This is a generated file. Do not edit or your changes will be lost 3 | */ 4 | #import "JpMasuidriveItCustomimageModuleAssets.h" 5 | 6 | extern NSData * dataWithHexString (NSString * hexString); 7 | 8 | @implementation JpMasuidriveItCustomimageModuleAssets 9 | 10 | - (NSData*) moduleAsset 11 | { 12 | return nil; 13 | } 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /modules/CustomImage/JpMasuidriveItCustomimage_Prefix.pch: -------------------------------------------------------------------------------- 1 | 2 | #ifdef __OBJC__ 3 | #import 4 | #endif 5 | -------------------------------------------------------------------------------- /modules/CustomImage/LICENSE: -------------------------------------------------------------------------------- 1 | TODO: place your license here and we'll include it in the module distribution 2 | -------------------------------------------------------------------------------- /modules/CustomImage/README: -------------------------------------------------------------------------------- 1 | Appcelerator Titanium iPhone Module Project 2 | =========================================== 3 | 4 | This is a skeleton Titanium Mobile iPhone module project. Modules can be 5 | used to extend the functionality of Titanium by providing additional native 6 | code that is compiled into your application at build time and can expose certain 7 | APIs into JavaScript. 8 | 9 | MODULE NAMING 10 | -------------- 11 | 12 | Choose a unique module id for your module. This ID usually follows a namespace 13 | convention using DNS notation. For example, com.appcelerator.module.test. This 14 | ID can only be used once by all public modules in Titanium. 15 | 16 | 17 | COMPONENTS 18 | ----------- 19 | 20 | Components that are exposed by your module must follow a special naming convention. 21 | A component (widget, proxy, etc) must be named with the pattern: 22 | 23 | TiProxy 24 | 25 | For example, if you component was called Foo, your proxy would be named: 26 | 27 | TiMyfirstFooProxy 28 | 29 | For view proxies or widgets, you must create both a view proxy and a view implementation. 30 | If you widget was named proxy, you would create the following files: 31 | 32 | TiMyfirstFooProxy.h 33 | TiMyfirstFooProxy.m 34 | TiMyfirstFoo.h 35 | TiMyfirstFoo.m 36 | 37 | The view implementation is named the same except it does contain the suffix `Proxy`. 38 | 39 | View implementations extend the Titanium base class `TiUIView`. View Proxies extend the 40 | Titanium base class `TiUIViewProxy` or `TiUIWidgetProxy`. 41 | 42 | For proxies that are simply native objects that can be returned to JavaScript, you can 43 | simply extend `TiProxy` and no view implementation is required. 44 | 45 | 46 | GET STARTED 47 | ------------ 48 | 49 | 1. Edit manifest with the appropriate details about your module. 50 | 2. Edit LICENSE to add your license details. 51 | 3. Place any assets (such as PNG files) that are required in the assets folder. 52 | 4. Edit the titanium.xcconfig and make sure you're building for the right Titanium version. 53 | 5. Code and build. 54 | 55 | BUILD TIME COMPILER CONFIG 56 | -------------------------- 57 | 58 | You can edit the file `module.xcconfig` to include any build time settings that should be 59 | set during application compilation that your module requires. This file will automatically get `#include` in the main application project. 60 | 61 | For more information about this file, please see the Apple documentation at: 62 | 63 | 64 | 65 | 66 | DOCUMENTATION FOR YOUR MODULE 67 | ----------------------------- 68 | 69 | You should provide at least minimal documentation for your module in `documentation` folder using the Markdown syntax. 70 | 71 | For more information on the Markdown syntax, refer to this documentation at: 72 | 73 | 74 | 75 | 76 | TEST HARNESS EXAMPLE FOR YOUR MODULE 77 | ------------------------------------ 78 | 79 | The `example` directory contains a skeleton application test harness that can be 80 | used for testing and providing an example of usage to the users of your module. 81 | 82 | 83 | INSTALL YOUR MODULE 84 | -------------------- 85 | 86 | 1. Run `build.py` which creates your distribution 87 | 2. cd to `/Library/Application Support/Titanium` 88 | 3. copy this zip file into the folder of your Titanium SDK 89 | 90 | REGISTER YOUR MODULE 91 | --------------------- 92 | 93 | Register your module with your application by editing `tiapp.xml` and adding your module. 94 | Example: 95 | 96 | 97 | jp.masuidrive.it.customimage 98 | 99 | 100 | When you run your project, the compiler will know automatically compile in your module 101 | dependencies and copy appropriate image assets into the application. 102 | 103 | USING YOUR MODULE IN CODE 104 | ------------------------- 105 | 106 | To use your module in code, you will need to require it. 107 | 108 | For example, 109 | 110 | var my_module = require('jp.masuidrive.it.customimage'); 111 | my_module.foo(); 112 | 113 | WRITING PURE JS NATIVE MODULES 114 | ------------------------------ 115 | 116 | You can write a pure JavaScript "natively compiled" module. This is nice if you 117 | want to distribute a JS module pre-compiled. 118 | 119 | To create a module, create a file named jp.masuidrive.it.customimage.js under the assets folder. 120 | This file must be in the Common JS format. For example: 121 | 122 | exports.echo = function(s) 123 | { 124 | return s; 125 | }; 126 | 127 | Any functions and properties that are exported will be made available as part of your 128 | module. All other code inside your JS will be private to your module. 129 | 130 | For pure JS module, you don't need to modify any of the Objective-C module code. You 131 | can leave it as-is and build. 132 | 133 | TESTING YOUR MODULE 134 | ------------------- 135 | 136 | Run the `titanium.py` script to test your module or test from within XCode. 137 | To test with the script, execute: 138 | 139 | titanium run --dir=YOURMODULEDIR 140 | 141 | 142 | This will execute the app.js in the example folder as a Titanium application. 143 | 144 | 145 | DISTRIBUTING YOUR MODULE 146 | ------------------------- 147 | 148 | Currently, you will need to manually distribution your module distribution zip file directly. However, in the near future, we will make module distribution and sharing built-in to Titanium Developer and in the Titanium Marketplace! 149 | 150 | 151 | Cheers! 152 | -------------------------------------------------------------------------------- /modules/CustomImage/assets/README: -------------------------------------------------------------------------------- 1 | Place your assets like PNG files in this directory and they will be packaged with your module. 2 | 3 | If you create a file named jp.masuidrive.it.customimage.js in this directory, it will be 4 | compiled and used as your module. This allows you to run pure Javascript 5 | modules that are pre-compiled. 6 | 7 | -------------------------------------------------------------------------------- /modules/CustomImage/build.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Appcelerator Titanium Module Packager 4 | # 5 | # 6 | import os, sys, glob, string 7 | import zipfile 8 | 9 | cwd = os.path.abspath(os.path.dirname(sys._getframe(0).f_code.co_filename)) 10 | required_module_keys = ['name','version','moduleid','description','copyright','license','copyright','platform','minsdk'] 11 | module_defaults = { 12 | 'description':'My module', 13 | 'author': 'Your Name', 14 | 'license' : 'Specify your license', 15 | 'copyright' : 'Copyright (c) 2010 by Your Company', 16 | } 17 | module_license_default = "TODO: place your license here and we'll include it in the module distribution" 18 | 19 | def replace_vars(config,token): 20 | idx = token.find('$(') 21 | while idx != -1: 22 | idx2 = token.find(')',idx+2) 23 | if idx2 == -1: break 24 | key = token[idx+2:idx2] 25 | if not config.has_key(key): break 26 | token = token.replace('$(%s)' % key, config[key]) 27 | idx = token.find('$(') 28 | return token 29 | 30 | 31 | def read_ti_xcconfig(): 32 | contents = open(os.path.join(cwd,'titanium.xcconfig')).read() 33 | config = {} 34 | for line in contents.splitlines(False): 35 | line = line.strip() 36 | if line[0:2]=='//': continue 37 | idx = line.find('=') 38 | if idx > 0: 39 | key = line[0:idx].strip() 40 | value = line[idx+1:].strip() 41 | config[key] = replace_vars(config,value) 42 | return config 43 | 44 | def generate_doc(config): 45 | docdir = os.path.join(cwd,'documentation') 46 | if not os.path.exists(docdir): 47 | print "Couldn't find documentation file at: %s" % docdir 48 | return None 49 | sdk = config['TITANIUM_SDK'] 50 | support_dir = os.path.join(sdk,'module','support') 51 | sys.path.append(support_dir) 52 | import markdown2 53 | documentation = [] 54 | for file in os.listdir(docdir): 55 | md = open(os.path.join(docdir,file)).read() 56 | html = markdown2.markdown(md) 57 | documentation.append({file:html}); 58 | return documentation 59 | 60 | def compile_js(manifest,config): 61 | js_file = os.path.join(cwd,'assets','jp.masuidrive.it.customimage.js') 62 | if not os.path.exists(js_file): return 63 | 64 | sdk = config['TITANIUM_SDK'] 65 | iphone_dir = os.path.join(sdk,'iphone') 66 | sys.path.insert(0,iphone_dir) 67 | from compiler import Compiler 68 | 69 | path = os.path.basename(js_file) 70 | metadata = Compiler.make_function_from_file(path,js_file) 71 | method = metadata['method'] 72 | eq = path.replace('.','_') 73 | method = ' return %s;' % method 74 | 75 | f = os.path.join(cwd,'Classes','JpMasuidriveItCustomimageModuleAssets.m') 76 | c = open(f).read() 77 | idx = c.find('return ') 78 | before = c[0:idx] 79 | after = """ 80 | } 81 | 82 | @end 83 | """ 84 | newc = before + method + after 85 | 86 | if newc!=c: 87 | x = open(f,'w') 88 | x.write(newc) 89 | x.close() 90 | 91 | def die(msg): 92 | print msg 93 | sys.exit(1) 94 | 95 | def warn(msg): 96 | print "[WARN] %s" % msg 97 | 98 | def validate_license(): 99 | c = open('LICENSE').read() 100 | if c.find(module_license_default)!=1: 101 | warn('please update the LICENSE file with your license text before distributing') 102 | 103 | def validate_manifest(): 104 | path = os.path.join(cwd,'manifest') 105 | f = open(path) 106 | if not os.path.exists(path): die("missing %s" % path) 107 | manifest = {} 108 | for line in f.readlines(): 109 | line = line.strip() 110 | if line[0:1]=='#': continue 111 | if line.find(':') < 0: continue 112 | key,value = line.split(':') 113 | manifest[key.strip()]=value.strip() 114 | for key in required_module_keys: 115 | if not manifest.has_key(key): die("missing required manifest key '%s'" % key) 116 | if module_defaults.has_key(key): 117 | defvalue = module_defaults[key] 118 | curvalue = manifest[key] 119 | if curvalue==defvalue: warn("please update the manifest key: '%s' to a non-default value" % key) 120 | return manifest,path 121 | 122 | ignoreFiles = ['.DS_Store','.gitignore','libTitanium.a','titanium.jar','README','jp.masuidrive.it.customimage.js'] 123 | ignoreDirs = ['.DS_Store','.svn','.git','CVSROOT'] 124 | 125 | def zip_dir(zf,dir,basepath,ignore=[]): 126 | for root, dirs, files in os.walk(dir): 127 | for name in ignoreDirs: 128 | if name in dirs: 129 | dirs.remove(name) # don't visit ignored directories 130 | for file in files: 131 | if file in ignoreFiles: continue 132 | e = os.path.splitext(file) 133 | if len(e)==2 and e[1]=='.pyc':continue 134 | from_ = os.path.join(root, file) 135 | to_ = from_.replace(dir, basepath, 1) 136 | zf.write(from_, to_) 137 | 138 | def glob_libfiles(): 139 | files = [] 140 | for libfile in glob.glob('build/**/*.a'): 141 | if libfile.find('Release-')!=-1: 142 | files.append(libfile) 143 | return files 144 | 145 | def build_module(manifest,config): 146 | rc = os.system("xcodebuild -sdk iphoneos -configuration Release") 147 | if rc != 0: 148 | die("xcodebuild failed") 149 | rc = os.system("xcodebuild -sdk iphonesimulator -configuration Release") 150 | if rc != 0: 151 | die("xcodebuild failed") 152 | # build the merged library using lipo 153 | moduleid = manifest['moduleid'] 154 | libpaths = '' 155 | for libfile in glob_libfiles(): 156 | libpaths+='%s ' % libfile 157 | 158 | os.system("lipo %s -create -output build/lib%s.a" %(libpaths,moduleid)) 159 | 160 | def package_module(manifest,mf,config): 161 | name = manifest['name'].lower() 162 | moduleid = manifest['moduleid'].lower() 163 | version = manifest['version'] 164 | modulezip = '%s-iphone-%s.zip' % (moduleid,version) 165 | if os.path.exists(modulezip): os.remove(modulezip) 166 | zf = zipfile.ZipFile(modulezip, 'w', zipfile.ZIP_DEFLATED) 167 | modulepath = 'modules/iphone/%s/%s' % (moduleid,version) 168 | zf.write(mf,'%s/manifest' % modulepath) 169 | libname = 'lib%s.a' % moduleid 170 | zf.write('build/%s' % libname, '%s/%s' % (modulepath,libname)) 171 | docs = generate_doc(config) 172 | if docs!=None: 173 | for doc in docs: 174 | for file, html in doc.iteritems(): 175 | filename = string.replace(file,'.md','.html') 176 | zf.writestr('%s/documentation/%s'%(modulepath,filename),html) 177 | for dn in ('assets','example'): 178 | if os.path.exists(dn): 179 | zip_dir(zf,dn,'%s/%s' % (modulepath,dn),['README']) 180 | zf.write('LICENSE','%s/LICENSE' % modulepath) 181 | zf.write('module.xcconfig','%s/module.xcconfig' % modulepath) 182 | zf.close() 183 | 184 | 185 | if __name__ == '__main__': 186 | manifest,mf = validate_manifest() 187 | validate_license() 188 | config = read_ti_xcconfig() 189 | compile_js(manifest,config) 190 | build_module(manifest,config) 191 | package_module(manifest,mf,config) 192 | sys.exit(0) 193 | 194 | -------------------------------------------------------------------------------- /modules/CustomImage/customimage.xcodeproj/masuidrive.mode1v3: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | ActivePerspectiveName 6 | Project 7 | AllowedModules 8 | 9 | 10 | BundleLoadPath 11 | 12 | MaxInstances 13 | n 14 | Module 15 | PBXSmartGroupTreeModule 16 | Name 17 | Groups and Files Outline View 18 | 19 | 20 | BundleLoadPath 21 | 22 | MaxInstances 23 | n 24 | Module 25 | PBXNavigatorGroup 26 | Name 27 | Editor 28 | 29 | 30 | BundleLoadPath 31 | 32 | MaxInstances 33 | n 34 | Module 35 | XCTaskListModule 36 | Name 37 | Task List 38 | 39 | 40 | BundleLoadPath 41 | 42 | MaxInstances 43 | n 44 | Module 45 | XCDetailModule 46 | Name 47 | File and Smart Group Detail Viewer 48 | 49 | 50 | BundleLoadPath 51 | 52 | MaxInstances 53 | 1 54 | Module 55 | PBXBuildResultsModule 56 | Name 57 | Detailed Build Results Viewer 58 | 59 | 60 | BundleLoadPath 61 | 62 | MaxInstances 63 | 1 64 | Module 65 | PBXProjectFindModule 66 | Name 67 | Project Batch Find Tool 68 | 69 | 70 | BundleLoadPath 71 | 72 | MaxInstances 73 | n 74 | Module 75 | XCProjectFormatConflictsModule 76 | Name 77 | Project Format Conflicts List 78 | 79 | 80 | BundleLoadPath 81 | 82 | MaxInstances 83 | n 84 | Module 85 | PBXBookmarksModule 86 | Name 87 | Bookmarks Tool 88 | 89 | 90 | BundleLoadPath 91 | 92 | MaxInstances 93 | n 94 | Module 95 | PBXClassBrowserModule 96 | Name 97 | Class Browser 98 | 99 | 100 | BundleLoadPath 101 | 102 | MaxInstances 103 | n 104 | Module 105 | PBXCVSModule 106 | Name 107 | Source Code Control Tool 108 | 109 | 110 | BundleLoadPath 111 | 112 | MaxInstances 113 | n 114 | Module 115 | PBXDebugBreakpointsModule 116 | Name 117 | Debug Breakpoints Tool 118 | 119 | 120 | BundleLoadPath 121 | 122 | MaxInstances 123 | n 124 | Module 125 | XCDockableInspector 126 | Name 127 | Inspector 128 | 129 | 130 | BundleLoadPath 131 | 132 | MaxInstances 133 | n 134 | Module 135 | PBXOpenQuicklyModule 136 | Name 137 | Open Quickly Tool 138 | 139 | 140 | BundleLoadPath 141 | 142 | MaxInstances 143 | 1 144 | Module 145 | PBXDebugSessionModule 146 | Name 147 | Debugger 148 | 149 | 150 | BundleLoadPath 151 | 152 | MaxInstances 153 | 1 154 | Module 155 | PBXDebugCLIModule 156 | Name 157 | Debug Console 158 | 159 | 160 | BundleLoadPath 161 | 162 | MaxInstances 163 | n 164 | Module 165 | XCSnapshotModule 166 | Name 167 | Snapshots Tool 168 | 169 | 170 | BundlePath 171 | /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources 172 | Description 173 | DefaultDescriptionKey 174 | DockingSystemVisible 175 | 176 | Extension 177 | mode1v3 178 | FavBarConfig 179 | 180 | PBXProjectModuleGUID 181 | 5993303212DE0571003F03E3 182 | XCBarModuleItemNames 183 | 184 | XCBarModuleItems 185 | 186 | 187 | FirstTimeWindowDisplayed 188 | 189 | Identifier 190 | com.apple.perspectives.project.mode1v3 191 | MajorVersion 192 | 33 193 | MinorVersion 194 | 0 195 | Name 196 | Default 197 | Notifications 198 | 199 | OpenEditors 200 | 201 | PerspectiveWidths 202 | 203 | -1 204 | -1 205 | 206 | Perspectives 207 | 208 | 209 | ChosenToolbarItems 210 | 211 | active-combo-popup 212 | action 213 | NSToolbarFlexibleSpaceItem 214 | debugger-enable-breakpoints 215 | build-and-go 216 | com.apple.ide.PBXToolbarStopButton 217 | get-info 218 | NSToolbarFlexibleSpaceItem 219 | com.apple.pbx.toolbar.searchfield 220 | 221 | ControllerClassBaseName 222 | 223 | IconName 224 | WindowOfProjectWithEditor 225 | Identifier 226 | perspective.project 227 | IsVertical 228 | 229 | Layout 230 | 231 | 232 | ContentConfiguration 233 | 234 | PBXBottomSmartGroupGIDs 235 | 236 | 1C37FBAC04509CD000000102 237 | 1C37FAAC04509CD000000102 238 | 1C37FABC05509CD000000102 239 | 1C37FABC05539CD112110102 240 | E2644B35053B69B200211256 241 | 1C37FABC04509CD000100104 242 | 1CC0EA4004350EF90044410B 243 | 1CC0EA4004350EF90041110B 244 | 245 | PBXProjectModuleGUID 246 | 1CE0B1FE06471DED0097A5F4 247 | PBXProjectModuleLabel 248 | Files 249 | PBXProjectStructureProvided 250 | yes 251 | PBXSmartGroupTreeModuleColumnData 252 | 253 | PBXSmartGroupTreeModuleColumnWidthsKey 254 | 255 | 16 256 | 257 | PBXSmartGroupTreeModuleColumnsKey_v4 258 | 259 | MainColumn 260 | 261 | 262 | PBXSmartGroupTreeModuleOutlineStateKey_v7 263 | 264 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 265 | 266 | 0867D691FE84028FC02AAC07 267 | 08FB77AEFE84172EC02AAC07 268 | 32C88DFF0371C24200C91783 269 | 0867D69AFE84028FC02AAC07 270 | 034768DFFF38A50411DB9C8B 271 | 1C37FABC05509CD000000102 272 | 273 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 274 | 275 | 276 | 0 277 | 278 | 279 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 280 | {{0, 0}, {0, 0}} 281 | 282 | PBXTopSmartGroupGIDs 283 | 284 | XCIncludePerspectivesSwitch 285 | 286 | XCSharingToken 287 | com.apple.Xcode.GFSharingToken 288 | 289 | GeometryConfiguration 290 | 291 | Frame 292 | {{0, 0}, {0, 409}} 293 | GroupTreeTableConfiguration 294 | 295 | MainColumn 296 | 16 297 | 298 | RubberWindowFrame 299 | 101 301 656 450 0 0 1440 878 300 | 301 | Module 302 | PBXSmartGroupTreeModule 303 | Proportion 304 | 0pt 305 | 306 | 307 | Dock 308 | 309 | 310 | BecomeActive 311 | 312 | ContentConfiguration 313 | 314 | PBXProjectModuleGUID 315 | 1CE0B20306471E060097A5F4 316 | PBXProjectModuleLabel 317 | JpMasuidriveItCustomimageModule.m 318 | PBXSplitModuleInNavigatorKey 319 | 320 | Split0 321 | 322 | PBXProjectModuleGUID 323 | 1CE0B20406471E060097A5F4 324 | PBXProjectModuleLabel 325 | JpMasuidriveItCustomimageModule.m 326 | _historyCapacity 327 | 0 328 | bookmark 329 | 599AB4B91317F82C002C5B00 330 | history 331 | 332 | 5993304212DE07E1003F03E3 333 | 598A370412DF7EA1005F2BBD 334 | 598A370512DF7EA1005F2BBD 335 | 59C47F6C130D70FF00A43182 336 | 337 | 338 | SplitCount 339 | 1 340 | 341 | StatusBarVisibility 342 | 343 | 344 | GeometryConfiguration 345 | 346 | Frame 347 | {{0, 0}, {651, 404}} 348 | RubberWindowFrame 349 | 101 301 656 450 0 0 1440 878 350 | 351 | Module 352 | PBXNavigatorGroup 353 | Proportion 354 | 404pt 355 | 356 | 357 | ContentConfiguration 358 | 359 | PBXProjectModuleGUID 360 | 1CE0B20506471E060097A5F4 361 | PBXProjectModuleLabel 362 | Detail 363 | 364 | GeometryConfiguration 365 | 366 | Frame 367 | {{0, 409}, {651, 0}} 368 | RubberWindowFrame 369 | 101 301 656 450 0 0 1440 878 370 | 371 | Module 372 | XCDetailModule 373 | Proportion 374 | 0pt 375 | 376 | 377 | Proportion 378 | 651pt 379 | 380 | 381 | Name 382 | Project 383 | ServiceClasses 384 | 385 | XCModuleDock 386 | PBXSmartGroupTreeModule 387 | XCModuleDock 388 | PBXNavigatorGroup 389 | XCDetailModule 390 | 391 | TableOfContents 392 | 393 | 599AB4BA1317F82C002C5B00 394 | 1CE0B1FE06471DED0097A5F4 395 | 599AB4BB1317F82C002C5B00 396 | 1CE0B20306471E060097A5F4 397 | 1CE0B20506471E060097A5F4 398 | 399 | ToolbarConfigUserDefaultsMinorVersion 400 | 2 401 | ToolbarConfiguration 402 | xcode.toolbar.config.defaultV3 403 | 404 | 405 | ControllerClassBaseName 406 | 407 | IconName 408 | WindowOfProject 409 | Identifier 410 | perspective.morph 411 | IsVertical 412 | 0 413 | Layout 414 | 415 | 416 | BecomeActive 417 | 1 418 | ContentConfiguration 419 | 420 | PBXBottomSmartGroupGIDs 421 | 422 | 1C37FBAC04509CD000000102 423 | 1C37FAAC04509CD000000102 424 | 1C08E77C0454961000C914BD 425 | 1C37FABC05509CD000000102 426 | 1C37FABC05539CD112110102 427 | E2644B35053B69B200211256 428 | 1C37FABC04509CD000100104 429 | 1CC0EA4004350EF90044410B 430 | 1CC0EA4004350EF90041110B 431 | 432 | PBXProjectModuleGUID 433 | 11E0B1FE06471DED0097A5F4 434 | PBXProjectModuleLabel 435 | Files 436 | PBXProjectStructureProvided 437 | yes 438 | PBXSmartGroupTreeModuleColumnData 439 | 440 | PBXSmartGroupTreeModuleColumnWidthsKey 441 | 442 | 186 443 | 444 | PBXSmartGroupTreeModuleColumnsKey_v4 445 | 446 | MainColumn 447 | 448 | 449 | PBXSmartGroupTreeModuleOutlineStateKey_v7 450 | 451 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 452 | 453 | 29B97314FDCFA39411CA2CEA 454 | 1C37FABC05509CD000000102 455 | 456 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 457 | 458 | 459 | 0 460 | 461 | 462 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 463 | {{0, 0}, {186, 337}} 464 | 465 | PBXTopSmartGroupGIDs 466 | 467 | XCIncludePerspectivesSwitch 468 | 1 469 | XCSharingToken 470 | com.apple.Xcode.GFSharingToken 471 | 472 | GeometryConfiguration 473 | 474 | Frame 475 | {{0, 0}, {203, 355}} 476 | GroupTreeTableConfiguration 477 | 478 | MainColumn 479 | 186 480 | 481 | RubberWindowFrame 482 | 373 269 690 397 0 0 1440 878 483 | 484 | Module 485 | PBXSmartGroupTreeModule 486 | Proportion 487 | 100% 488 | 489 | 490 | Name 491 | Morph 492 | PreferredWidth 493 | 300 494 | ServiceClasses 495 | 496 | XCModuleDock 497 | PBXSmartGroupTreeModule 498 | 499 | TableOfContents 500 | 501 | 11E0B1FE06471DED0097A5F4 502 | 503 | ToolbarConfiguration 504 | xcode.toolbar.config.default.shortV3 505 | 506 | 507 | PerspectivesBarVisible 508 | 509 | ShelfIsVisible 510 | 511 | SourceDescription 512 | file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec' 513 | StatusbarIsVisible 514 | 515 | TimeStamp 516 | 0.0 517 | ToolbarConfigUserDefaultsMinorVersion 518 | 2 519 | ToolbarDisplayMode 520 | 1 521 | ToolbarIsVisible 522 | 523 | ToolbarSizeMode 524 | 1 525 | Type 526 | Perspectives 527 | UpdateMessage 528 | The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'? 529 | WindowJustification 530 | 5 531 | WindowOrderList 532 | 533 | 5993303312DE0571003F03E3 534 | /Users/masuidrive/Develop/ti/CustomImage/customimage.xcodeproj 535 | 536 | WindowString 537 | 101 301 656 450 0 0 1440 878 538 | WindowToolsV3 539 | 540 | 541 | FirstTimeWindowDisplayed 542 | 543 | Identifier 544 | windowTool.build 545 | IsVertical 546 | 547 | Layout 548 | 549 | 550 | Dock 551 | 552 | 553 | ContentConfiguration 554 | 555 | PBXProjectModuleGUID 556 | 1CD0528F0623707200166675 557 | PBXProjectModuleLabel 558 | 559 | StatusBarVisibility 560 | 561 | 562 | GeometryConfiguration 563 | 564 | Frame 565 | {{0, 0}, {500, 218}} 566 | RubberWindowFrame 567 | 347 276 500 500 0 0 1440 878 568 | 569 | Module 570 | PBXNavigatorGroup 571 | Proportion 572 | 218pt 573 | 574 | 575 | ContentConfiguration 576 | 577 | PBXProjectModuleGUID 578 | XCMainBuildResultsModuleGUID 579 | PBXProjectModuleLabel 580 | Build Results 581 | XCBuildResultsTrigger_Collapse 582 | 1021 583 | XCBuildResultsTrigger_Open 584 | 1011 585 | 586 | GeometryConfiguration 587 | 588 | Frame 589 | {{0, 223}, {500, 236}} 590 | RubberWindowFrame 591 | 347 276 500 500 0 0 1440 878 592 | 593 | Module 594 | PBXBuildResultsModule 595 | Proportion 596 | 236pt 597 | 598 | 599 | Proportion 600 | 459pt 601 | 602 | 603 | Name 604 | Build Results 605 | ServiceClasses 606 | 607 | PBXBuildResultsModule 608 | 609 | StatusbarIsVisible 610 | 611 | TableOfContents 612 | 613 | 5993303312DE0571003F03E3 614 | 599AB4BC1317F82C002C5B00 615 | 1CD0528F0623707200166675 616 | XCMainBuildResultsModuleGUID 617 | 618 | ToolbarConfiguration 619 | xcode.toolbar.config.buildV3 620 | WindowContentMinSize 621 | 486 300 622 | WindowString 623 | 347 276 500 500 0 0 1440 878 624 | WindowToolGUID 625 | 5993303312DE0571003F03E3 626 | WindowToolIsVisible 627 | 628 | 629 | 630 | Identifier 631 | windowTool.debugger 632 | Layout 633 | 634 | 635 | Dock 636 | 637 | 638 | ContentConfiguration 639 | 640 | Debugger 641 | 642 | HorizontalSplitView 643 | 644 | _collapsingFrameDimension 645 | 0.0 646 | _indexOfCollapsedView 647 | 0 648 | _percentageOfCollapsedView 649 | 0.0 650 | isCollapsed 651 | yes 652 | sizes 653 | 654 | {{0, 0}, {317, 164}} 655 | {{317, 0}, {377, 164}} 656 | 657 | 658 | VerticalSplitView 659 | 660 | _collapsingFrameDimension 661 | 0.0 662 | _indexOfCollapsedView 663 | 0 664 | _percentageOfCollapsedView 665 | 0.0 666 | isCollapsed 667 | yes 668 | sizes 669 | 670 | {{0, 0}, {694, 164}} 671 | {{0, 164}, {694, 216}} 672 | 673 | 674 | 675 | LauncherConfigVersion 676 | 8 677 | PBXProjectModuleGUID 678 | 1C162984064C10D400B95A72 679 | PBXProjectModuleLabel 680 | Debug - GLUTExamples (Underwater) 681 | 682 | GeometryConfiguration 683 | 684 | DebugConsoleDrawerSize 685 | {100, 120} 686 | DebugConsoleVisible 687 | None 688 | DebugConsoleWindowFrame 689 | {{200, 200}, {500, 300}} 690 | DebugSTDIOWindowFrame 691 | {{200, 200}, {500, 300}} 692 | Frame 693 | {{0, 0}, {694, 380}} 694 | RubberWindowFrame 695 | 321 238 694 422 0 0 1440 878 696 | 697 | Module 698 | PBXDebugSessionModule 699 | Proportion 700 | 100% 701 | 702 | 703 | Proportion 704 | 100% 705 | 706 | 707 | Name 708 | Debugger 709 | ServiceClasses 710 | 711 | PBXDebugSessionModule 712 | 713 | StatusbarIsVisible 714 | 1 715 | TableOfContents 716 | 717 | 1CD10A99069EF8BA00B06720 718 | 1C0AD2AB069F1E9B00FABCE6 719 | 1C162984064C10D400B95A72 720 | 1C0AD2AC069F1E9B00FABCE6 721 | 722 | ToolbarConfiguration 723 | xcode.toolbar.config.debugV3 724 | WindowString 725 | 321 238 694 422 0 0 1440 878 726 | WindowToolGUID 727 | 1CD10A99069EF8BA00B06720 728 | WindowToolIsVisible 729 | 0 730 | 731 | 732 | Identifier 733 | windowTool.find 734 | Layout 735 | 736 | 737 | Dock 738 | 739 | 740 | Dock 741 | 742 | 743 | ContentConfiguration 744 | 745 | PBXProjectModuleGUID 746 | 1CDD528C0622207200134675 747 | PBXProjectModuleLabel 748 | <No Editor> 749 | PBXSplitModuleInNavigatorKey 750 | 751 | Split0 752 | 753 | PBXProjectModuleGUID 754 | 1CD0528D0623707200166675 755 | 756 | SplitCount 757 | 1 758 | 759 | StatusBarVisibility 760 | 1 761 | 762 | GeometryConfiguration 763 | 764 | Frame 765 | {{0, 0}, {781, 167}} 766 | RubberWindowFrame 767 | 62 385 781 470 0 0 1440 878 768 | 769 | Module 770 | PBXNavigatorGroup 771 | Proportion 772 | 781pt 773 | 774 | 775 | Proportion 776 | 50% 777 | 778 | 779 | BecomeActive 780 | 1 781 | ContentConfiguration 782 | 783 | PBXProjectModuleGUID 784 | 1CD0528E0623707200166675 785 | PBXProjectModuleLabel 786 | Project Find 787 | 788 | GeometryConfiguration 789 | 790 | Frame 791 | {{8, 0}, {773, 254}} 792 | RubberWindowFrame 793 | 62 385 781 470 0 0 1440 878 794 | 795 | Module 796 | PBXProjectFindModule 797 | Proportion 798 | 50% 799 | 800 | 801 | Proportion 802 | 428pt 803 | 804 | 805 | Name 806 | Project Find 807 | ServiceClasses 808 | 809 | PBXProjectFindModule 810 | 811 | StatusbarIsVisible 812 | 1 813 | TableOfContents 814 | 815 | 1C530D57069F1CE1000CFCEE 816 | 1C530D58069F1CE1000CFCEE 817 | 1C530D59069F1CE1000CFCEE 818 | 1CDD528C0622207200134675 819 | 1C530D5A069F1CE1000CFCEE 820 | 1CE0B1FE06471DED0097A5F4 821 | 1CD0528E0623707200166675 822 | 823 | WindowString 824 | 62 385 781 470 0 0 1440 878 825 | WindowToolGUID 826 | 1C530D57069F1CE1000CFCEE 827 | WindowToolIsVisible 828 | 0 829 | 830 | 831 | Identifier 832 | MENUSEPARATOR 833 | 834 | 835 | Identifier 836 | windowTool.debuggerConsole 837 | Layout 838 | 839 | 840 | Dock 841 | 842 | 843 | BecomeActive 844 | 1 845 | ContentConfiguration 846 | 847 | PBXProjectModuleGUID 848 | 1C78EAAC065D492600B07095 849 | PBXProjectModuleLabel 850 | Debugger Console 851 | 852 | GeometryConfiguration 853 | 854 | Frame 855 | {{0, 0}, {650, 250}} 856 | RubberWindowFrame 857 | 516 632 650 250 0 0 1680 1027 858 | 859 | Module 860 | PBXDebugCLIModule 861 | Proportion 862 | 209pt 863 | 864 | 865 | Proportion 866 | 209pt 867 | 868 | 869 | Name 870 | Debugger Console 871 | ServiceClasses 872 | 873 | PBXDebugCLIModule 874 | 875 | StatusbarIsVisible 876 | 1 877 | TableOfContents 878 | 879 | 1C78EAAD065D492600B07095 880 | 1C78EAAE065D492600B07095 881 | 1C78EAAC065D492600B07095 882 | 883 | ToolbarConfiguration 884 | xcode.toolbar.config.consoleV3 885 | WindowString 886 | 650 41 650 250 0 0 1280 1002 887 | WindowToolGUID 888 | 1C78EAAD065D492600B07095 889 | WindowToolIsVisible 890 | 0 891 | 892 | 893 | Identifier 894 | windowTool.snapshots 895 | Layout 896 | 897 | 898 | Dock 899 | 900 | 901 | Module 902 | XCSnapshotModule 903 | Proportion 904 | 100% 905 | 906 | 907 | Proportion 908 | 100% 909 | 910 | 911 | Name 912 | Snapshots 913 | ServiceClasses 914 | 915 | XCSnapshotModule 916 | 917 | StatusbarIsVisible 918 | Yes 919 | ToolbarConfiguration 920 | xcode.toolbar.config.snapshots 921 | WindowString 922 | 315 824 300 550 0 0 1440 878 923 | WindowToolIsVisible 924 | Yes 925 | 926 | 927 | Identifier 928 | windowTool.scm 929 | Layout 930 | 931 | 932 | Dock 933 | 934 | 935 | ContentConfiguration 936 | 937 | PBXProjectModuleGUID 938 | 1C78EAB2065D492600B07095 939 | PBXProjectModuleLabel 940 | <No Editor> 941 | PBXSplitModuleInNavigatorKey 942 | 943 | Split0 944 | 945 | PBXProjectModuleGUID 946 | 1C78EAB3065D492600B07095 947 | 948 | SplitCount 949 | 1 950 | 951 | StatusBarVisibility 952 | 1 953 | 954 | GeometryConfiguration 955 | 956 | Frame 957 | {{0, 0}, {452, 0}} 958 | RubberWindowFrame 959 | 743 379 452 308 0 0 1280 1002 960 | 961 | Module 962 | PBXNavigatorGroup 963 | Proportion 964 | 0pt 965 | 966 | 967 | BecomeActive 968 | 1 969 | ContentConfiguration 970 | 971 | PBXProjectModuleGUID 972 | 1CD052920623707200166675 973 | PBXProjectModuleLabel 974 | SCM 975 | 976 | GeometryConfiguration 977 | 978 | ConsoleFrame 979 | {{0, 259}, {452, 0}} 980 | Frame 981 | {{0, 7}, {452, 259}} 982 | RubberWindowFrame 983 | 743 379 452 308 0 0 1280 1002 984 | TableConfiguration 985 | 986 | Status 987 | 30 988 | FileName 989 | 199 990 | Path 991 | 197.0950012207031 992 | 993 | TableFrame 994 | {{0, 0}, {452, 250}} 995 | 996 | Module 997 | PBXCVSModule 998 | Proportion 999 | 262pt 1000 | 1001 | 1002 | Proportion 1003 | 266pt 1004 | 1005 | 1006 | Name 1007 | SCM 1008 | ServiceClasses 1009 | 1010 | PBXCVSModule 1011 | 1012 | StatusbarIsVisible 1013 | 1 1014 | TableOfContents 1015 | 1016 | 1C78EAB4065D492600B07095 1017 | 1C78EAB5065D492600B07095 1018 | 1C78EAB2065D492600B07095 1019 | 1CD052920623707200166675 1020 | 1021 | ToolbarConfiguration 1022 | xcode.toolbar.config.scm 1023 | WindowString 1024 | 743 379 452 308 0 0 1280 1002 1025 | 1026 | 1027 | Identifier 1028 | windowTool.breakpoints 1029 | IsVertical 1030 | 0 1031 | Layout 1032 | 1033 | 1034 | Dock 1035 | 1036 | 1037 | BecomeActive 1038 | 1 1039 | ContentConfiguration 1040 | 1041 | PBXBottomSmartGroupGIDs 1042 | 1043 | 1C77FABC04509CD000000102 1044 | 1045 | PBXProjectModuleGUID 1046 | 1CE0B1FE06471DED0097A5F4 1047 | PBXProjectModuleLabel 1048 | Files 1049 | PBXProjectStructureProvided 1050 | no 1051 | PBXSmartGroupTreeModuleColumnData 1052 | 1053 | PBXSmartGroupTreeModuleColumnWidthsKey 1054 | 1055 | 168 1056 | 1057 | PBXSmartGroupTreeModuleColumnsKey_v4 1058 | 1059 | MainColumn 1060 | 1061 | 1062 | PBXSmartGroupTreeModuleOutlineStateKey_v7 1063 | 1064 | PBXSmartGroupTreeModuleOutlineStateExpansionKey 1065 | 1066 | 1C77FABC04509CD000000102 1067 | 1068 | PBXSmartGroupTreeModuleOutlineStateSelectionKey 1069 | 1070 | 1071 | 0 1072 | 1073 | 1074 | PBXSmartGroupTreeModuleOutlineStateVisibleRectKey 1075 | {{0, 0}, {168, 350}} 1076 | 1077 | PBXTopSmartGroupGIDs 1078 | 1079 | XCIncludePerspectivesSwitch 1080 | 0 1081 | 1082 | GeometryConfiguration 1083 | 1084 | Frame 1085 | {{0, 0}, {185, 368}} 1086 | GroupTreeTableConfiguration 1087 | 1088 | MainColumn 1089 | 168 1090 | 1091 | RubberWindowFrame 1092 | 315 424 744 409 0 0 1440 878 1093 | 1094 | Module 1095 | PBXSmartGroupTreeModule 1096 | Proportion 1097 | 185pt 1098 | 1099 | 1100 | ContentConfiguration 1101 | 1102 | PBXProjectModuleGUID 1103 | 1CA1AED706398EBD00589147 1104 | PBXProjectModuleLabel 1105 | Detail 1106 | 1107 | GeometryConfiguration 1108 | 1109 | Frame 1110 | {{190, 0}, {554, 368}} 1111 | RubberWindowFrame 1112 | 315 424 744 409 0 0 1440 878 1113 | 1114 | Module 1115 | XCDetailModule 1116 | Proportion 1117 | 554pt 1118 | 1119 | 1120 | Proportion 1121 | 368pt 1122 | 1123 | 1124 | MajorVersion 1125 | 3 1126 | MinorVersion 1127 | 0 1128 | Name 1129 | Breakpoints 1130 | ServiceClasses 1131 | 1132 | PBXSmartGroupTreeModule 1133 | XCDetailModule 1134 | 1135 | StatusbarIsVisible 1136 | 1 1137 | TableOfContents 1138 | 1139 | 1CDDB66807F98D9800BB5817 1140 | 1CDDB66907F98D9800BB5817 1141 | 1CE0B1FE06471DED0097A5F4 1142 | 1CA1AED706398EBD00589147 1143 | 1144 | ToolbarConfiguration 1145 | xcode.toolbar.config.breakpointsV3 1146 | WindowString 1147 | 315 424 744 409 0 0 1440 878 1148 | WindowToolGUID 1149 | 1CDDB66807F98D9800BB5817 1150 | WindowToolIsVisible 1151 | 1 1152 | 1153 | 1154 | Identifier 1155 | windowTool.debugAnimator 1156 | Layout 1157 | 1158 | 1159 | Dock 1160 | 1161 | 1162 | Module 1163 | PBXNavigatorGroup 1164 | Proportion 1165 | 100% 1166 | 1167 | 1168 | Proportion 1169 | 100% 1170 | 1171 | 1172 | Name 1173 | Debug Visualizer 1174 | ServiceClasses 1175 | 1176 | PBXNavigatorGroup 1177 | 1178 | StatusbarIsVisible 1179 | 1 1180 | ToolbarConfiguration 1181 | xcode.toolbar.config.debugAnimatorV3 1182 | WindowString 1183 | 100 100 700 500 0 0 1280 1002 1184 | 1185 | 1186 | Identifier 1187 | windowTool.bookmarks 1188 | Layout 1189 | 1190 | 1191 | Dock 1192 | 1193 | 1194 | Module 1195 | PBXBookmarksModule 1196 | Proportion 1197 | 100% 1198 | 1199 | 1200 | Proportion 1201 | 100% 1202 | 1203 | 1204 | Name 1205 | Bookmarks 1206 | ServiceClasses 1207 | 1208 | PBXBookmarksModule 1209 | 1210 | StatusbarIsVisible 1211 | 0 1212 | WindowString 1213 | 538 42 401 187 0 0 1280 1002 1214 | 1215 | 1216 | Identifier 1217 | windowTool.projectFormatConflicts 1218 | Layout 1219 | 1220 | 1221 | Dock 1222 | 1223 | 1224 | Module 1225 | XCProjectFormatConflictsModule 1226 | Proportion 1227 | 100% 1228 | 1229 | 1230 | Proportion 1231 | 100% 1232 | 1233 | 1234 | Name 1235 | Project Format Conflicts 1236 | ServiceClasses 1237 | 1238 | XCProjectFormatConflictsModule 1239 | 1240 | StatusbarIsVisible 1241 | 0 1242 | WindowContentMinSize 1243 | 450 300 1244 | WindowString 1245 | 50 850 472 307 0 0 1440 877 1246 | 1247 | 1248 | Identifier 1249 | windowTool.classBrowser 1250 | Layout 1251 | 1252 | 1253 | Dock 1254 | 1255 | 1256 | BecomeActive 1257 | 1 1258 | ContentConfiguration 1259 | 1260 | OptionsSetName 1261 | Hierarchy, all classes 1262 | PBXProjectModuleGUID 1263 | 1CA6456E063B45B4001379D8 1264 | PBXProjectModuleLabel 1265 | Class Browser - NSObject 1266 | 1267 | GeometryConfiguration 1268 | 1269 | ClassesFrame 1270 | {{0, 0}, {374, 96}} 1271 | ClassesTreeTableConfiguration 1272 | 1273 | PBXClassNameColumnIdentifier 1274 | 208 1275 | PBXClassBookColumnIdentifier 1276 | 22 1277 | 1278 | Frame 1279 | {{0, 0}, {630, 331}} 1280 | MembersFrame 1281 | {{0, 105}, {374, 395}} 1282 | MembersTreeTableConfiguration 1283 | 1284 | PBXMemberTypeIconColumnIdentifier 1285 | 22 1286 | PBXMemberNameColumnIdentifier 1287 | 216 1288 | PBXMemberTypeColumnIdentifier 1289 | 97 1290 | PBXMemberBookColumnIdentifier 1291 | 22 1292 | 1293 | PBXModuleWindowStatusBarHidden2 1294 | 1 1295 | RubberWindowFrame 1296 | 385 179 630 352 0 0 1440 878 1297 | 1298 | Module 1299 | PBXClassBrowserModule 1300 | Proportion 1301 | 332pt 1302 | 1303 | 1304 | Proportion 1305 | 332pt 1306 | 1307 | 1308 | Name 1309 | Class Browser 1310 | ServiceClasses 1311 | 1312 | PBXClassBrowserModule 1313 | 1314 | StatusbarIsVisible 1315 | 0 1316 | TableOfContents 1317 | 1318 | 1C0AD2AF069F1E9B00FABCE6 1319 | 1C0AD2B0069F1E9B00FABCE6 1320 | 1CA6456E063B45B4001379D8 1321 | 1322 | ToolbarConfiguration 1323 | xcode.toolbar.config.classbrowser 1324 | WindowString 1325 | 385 179 630 352 0 0 1440 878 1326 | WindowToolGUID 1327 | 1C0AD2AF069F1E9B00FABCE6 1328 | WindowToolIsVisible 1329 | 0 1330 | 1331 | 1332 | Identifier 1333 | windowTool.refactoring 1334 | IncludeInToolsMenu 1335 | 0 1336 | Layout 1337 | 1338 | 1339 | Dock 1340 | 1341 | 1342 | BecomeActive 1343 | 1 1344 | GeometryConfiguration 1345 | 1346 | Frame 1347 | {0, 0}, {500, 335} 1348 | RubberWindowFrame 1349 | {0, 0}, {500, 335} 1350 | 1351 | Module 1352 | XCRefactoringModule 1353 | Proportion 1354 | 100% 1355 | 1356 | 1357 | Proportion 1358 | 100% 1359 | 1360 | 1361 | Name 1362 | Refactoring 1363 | ServiceClasses 1364 | 1365 | XCRefactoringModule 1366 | 1367 | WindowString 1368 | 200 200 500 356 0 0 1920 1200 1369 | 1370 | 1371 | 1372 | 1373 | -------------------------------------------------------------------------------- /modules/CustomImage/customimage.xcodeproj/masuidrive.pbxuser: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | 0867D690FE84028FC02AAC07 /* Project object */ = { 4 | activeBuildConfigurationName = Debug; 5 | activeSDKPreference = iphonesimulator4.2; 6 | activeTarget = D2AAC07D0554694100DB518D /* customimage */; 7 | codeSenseManager = 5993303612DE0571003F03E3 /* Code sense */; 8 | perUserDictionary = { 9 | PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = { 10 | PBXFileTableDataSourceColumnSortingDirectionKey = "-1"; 11 | PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID; 12 | PBXFileTableDataSourceColumnWidthsKey = ( 13 | 20, 14 | 412, 15 | 20, 16 | 48, 17 | 43, 18 | 43, 19 | 20, 20 | ); 21 | PBXFileTableDataSourceColumnsKey = ( 22 | PBXFileDataSource_FiletypeID, 23 | PBXFileDataSource_Filename_ColumnID, 24 | PBXFileDataSource_Built_ColumnID, 25 | PBXFileDataSource_ObjectSize_ColumnID, 26 | PBXFileDataSource_Errors_ColumnID, 27 | PBXFileDataSource_Warnings_ColumnID, 28 | PBXFileDataSource_Target_ColumnID, 29 | ); 30 | }; 31 | PBXPerProjectTemplateStateSaveDate = 320326698; 32 | PBXWorkspaceStateSaveDate = 320326698; 33 | }; 34 | perUserProjectItems = { 35 | 598A370412DF7EA1005F2BBD /* PBXTextBookmark */ = 598A370412DF7EA1005F2BBD /* PBXTextBookmark */; 36 | 598A370512DF7EA1005F2BBD /* PBXTextBookmark */ = 598A370512DF7EA1005F2BBD /* PBXTextBookmark */; 37 | 5993304212DE07E1003F03E3 /* PBXTextBookmark */ = 5993304212DE07E1003F03E3 /* PBXTextBookmark */; 38 | 599AB4B91317F82C002C5B00 /* PBXTextBookmark */ = 599AB4B91317F82C002C5B00 /* PBXTextBookmark */; 39 | 59C47F6C130D70FF00A43182 /* PBXTextBookmark */ = 59C47F6C130D70FF00A43182 /* PBXTextBookmark */; 40 | }; 41 | sourceControlManager = 5993303512DE0571003F03E3 /* Source Control */; 42 | userBuildSettings = { 43 | }; 44 | }; 45 | 24416B8111C4CA220047AFDD /* Build & Test */ = { 46 | activeExec = 0; 47 | }; 48 | 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */ = { 49 | uiCtxt = { 50 | sepNavIntBoundsRect = "{{0, 0}, {590, 1365}}"; 51 | sepNavSelRange = "{2047, 408}"; 52 | sepNavVisRange = "{1741, 714}"; 53 | sepNavWindowFrame = "{{131, 328}, {981, 550}}"; 54 | }; 55 | }; 56 | 24DD6D1B1134B66800162E58 /* titanium.xcconfig */ = { 57 | uiCtxt = { 58 | sepNavIntBoundsRect = "{{0, 0}, {642, 260}}"; 59 | sepNavSelRange = "{0, 0}"; 60 | sepNavVisRange = "{0, 478}"; 61 | }; 62 | }; 63 | 24DE9E0F11C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h */ = { 64 | uiCtxt = { 65 | sepNavIntBoundsRect = "{{0, 0}, {503, 484}}"; 66 | sepNavSelRange = "{0, 0}"; 67 | sepNavVisRange = "{0, 173}"; 68 | }; 69 | }; 70 | 24DE9E1011C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m */ = { 71 | uiCtxt = { 72 | sepNavIntBoundsRect = "{{0, 0}, {503, 484}}"; 73 | sepNavSelRange = "{0, 0}"; 74 | sepNavVisRange = "{0, 290}"; 75 | }; 76 | }; 77 | 598A370412DF7EA1005F2BBD /* PBXTextBookmark */ = { 78 | isa = PBXTextBookmark; 79 | fRef = 24DE9E1011C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m */; 80 | name = "JpMasuidriveItCustomimageModuleAssets.m: 1"; 81 | rLen = 0; 82 | rLoc = 0; 83 | rType = 0; 84 | vrLen = 290; 85 | vrLoc = 0; 86 | }; 87 | 598A370512DF7EA1005F2BBD /* PBXTextBookmark */ = { 88 | isa = PBXTextBookmark; 89 | fRef = 24DE9E0F11C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h */; 90 | name = "JpMasuidriveItCustomimageModuleAssets.h: 1"; 91 | rLen = 0; 92 | rLoc = 0; 93 | rType = 0; 94 | vrLen = 173; 95 | vrLoc = 0; 96 | }; 97 | 5993303512DE0571003F03E3 /* Source Control */ = { 98 | isa = PBXSourceControlManager; 99 | fallbackIsa = XCSourceControlManager; 100 | isSCMEnabled = 0; 101 | scmConfiguration = { 102 | repositoryNamesForRoots = { 103 | "" = ""; 104 | }; 105 | }; 106 | }; 107 | 5993303612DE0571003F03E3 /* Code sense */ = { 108 | isa = PBXCodeSenseManager; 109 | indexTemplatePath = ""; 110 | }; 111 | 5993304212DE07E1003F03E3 /* PBXTextBookmark */ = { 112 | isa = PBXTextBookmark; 113 | fRef = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 114 | name = "titanium.xcconfig: 1"; 115 | rLen = 0; 116 | rLoc = 0; 117 | rType = 0; 118 | vrLen = 478; 119 | vrLoc = 0; 120 | }; 121 | 599AB4B91317F82C002C5B00 /* PBXTextBookmark */ = { 122 | isa = PBXTextBookmark; 123 | fRef = 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */; 124 | name = "JpMasuidriveItCustomimageModule.m: 87"; 125 | rLen = 408; 126 | rLoc = 2047; 127 | rType = 0; 128 | vrLen = 714; 129 | vrLoc = 1741; 130 | }; 131 | 59C47F6C130D70FF00A43182 /* PBXTextBookmark */ = { 132 | isa = PBXTextBookmark; 133 | fRef = 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */; 134 | name = "JpMasuidriveItCustomimageModule.m: 99"; 135 | rLen = 0; 136 | rLoc = 2336; 137 | rType = 0; 138 | vrLen = 595; 139 | vrLoc = 1860; 140 | }; 141 | D2AAC07D0554694100DB518D /* customimage */ = { 142 | activeExec = 0; 143 | }; 144 | } 145 | -------------------------------------------------------------------------------- /modules/CustomImage/customimage.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 45; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | 24416B8111C4CA220047AFDD /* Build & Test */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */; 13 | buildPhases = ( 14 | 24416B8011C4CA220047AFDD /* ShellScript */, 15 | ); 16 | dependencies = ( 17 | 24416B8511C4CA280047AFDD /* PBXTargetDependency */, 18 | ); 19 | name = "Build & Test"; 20 | productName = "Build & test"; 21 | }; 22 | /* End PBXAggregateTarget section */ 23 | 24 | /* Begin PBXBuildFile section */ 25 | 24DD6CF91134B3F500162E58 /* JpMasuidriveItCustomimageModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DD6CF71134B3F500162E58 /* JpMasuidriveItCustomimageModule.h */; }; 26 | 24DD6CFA1134B3F500162E58 /* JpMasuidriveItCustomimageModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */; }; 27 | 24DE9E1111C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DE9E0F11C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h */; }; 28 | 24DE9E1211C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DE9E1011C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m */; }; 29 | AA747D9F0F9514B9006C5449 /* JpMasuidriveItCustomimage_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* JpMasuidriveItCustomimage_Prefix.pch */; }; 30 | AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; 31 | /* End PBXBuildFile section */ 32 | 33 | /* Begin PBXContainerItemProxy section */ 34 | 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */ = { 35 | isa = PBXContainerItemProxy; 36 | containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; 37 | proxyType = 1; 38 | remoteGlobalIDString = D2AAC07D0554694100DB518D; 39 | remoteInfo = customimage; 40 | }; 41 | /* End PBXContainerItemProxy section */ 42 | 43 | /* Begin PBXFileReference section */ 44 | 24DD6CF71134B3F500162E58 /* JpMasuidriveItCustomimageModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JpMasuidriveItCustomimageModule.h; path = Classes/JpMasuidriveItCustomimageModule.h; sourceTree = ""; }; 45 | 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JpMasuidriveItCustomimageModule.m; path = Classes/JpMasuidriveItCustomimageModule.m; sourceTree = ""; }; 46 | 24DD6D1B1134B66800162E58 /* titanium.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = titanium.xcconfig; sourceTree = ""; }; 47 | 24DE9E0F11C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JpMasuidriveItCustomimageModuleAssets.h; path = Classes/JpMasuidriveItCustomimageModuleAssets.h; sourceTree = ""; }; 48 | 24DE9E1011C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = JpMasuidriveItCustomimageModuleAssets.m; path = Classes/JpMasuidriveItCustomimageModuleAssets.m; sourceTree = ""; }; 49 | AA747D9E0F9514B9006C5449 /* JpMasuidriveItCustomimage_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JpMasuidriveItCustomimage_Prefix.pch; sourceTree = SOURCE_ROOT; }; 50 | AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 51 | D2AAC07E0554694100DB518D /* libJpMasuidriveItCustomimage.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libJpMasuidriveItCustomimage.a; sourceTree = BUILT_PRODUCTS_DIR; }; 52 | /* End PBXFileReference section */ 53 | 54 | /* Begin PBXFrameworksBuildPhase section */ 55 | D2AAC07C0554694100DB518D /* Frameworks */ = { 56 | isa = PBXFrameworksBuildPhase; 57 | buildActionMask = 2147483647; 58 | files = ( 59 | AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */, 60 | ); 61 | runOnlyForDeploymentPostprocessing = 0; 62 | }; 63 | /* End PBXFrameworksBuildPhase section */ 64 | 65 | /* Begin PBXGroup section */ 66 | 034768DFFF38A50411DB9C8B /* Products */ = { 67 | isa = PBXGroup; 68 | children = ( 69 | D2AAC07E0554694100DB518D /* libJpMasuidriveItCustomimage.a */, 70 | ); 71 | name = Products; 72 | sourceTree = ""; 73 | }; 74 | 0867D691FE84028FC02AAC07 /* customimage */ = { 75 | isa = PBXGroup; 76 | children = ( 77 | 08FB77AEFE84172EC02AAC07 /* Classes */, 78 | 32C88DFF0371C24200C91783 /* Other Sources */, 79 | 0867D69AFE84028FC02AAC07 /* Frameworks */, 80 | 034768DFFF38A50411DB9C8B /* Products */, 81 | ); 82 | name = customimage; 83 | sourceTree = ""; 84 | }; 85 | 0867D69AFE84028FC02AAC07 /* Frameworks */ = { 86 | isa = PBXGroup; 87 | children = ( 88 | AACBBE490F95108600F1A2B1 /* Foundation.framework */, 89 | ); 90 | name = Frameworks; 91 | sourceTree = ""; 92 | }; 93 | 08FB77AEFE84172EC02AAC07 /* Classes */ = { 94 | isa = PBXGroup; 95 | children = ( 96 | 24DE9E0F11C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h */, 97 | 24DE9E1011C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m */, 98 | 24DD6CF71134B3F500162E58 /* JpMasuidriveItCustomimageModule.h */, 99 | 24DD6CF81134B3F500162E58 /* JpMasuidriveItCustomimageModule.m */, 100 | ); 101 | name = Classes; 102 | sourceTree = ""; 103 | }; 104 | 32C88DFF0371C24200C91783 /* Other Sources */ = { 105 | isa = PBXGroup; 106 | children = ( 107 | AA747D9E0F9514B9006C5449 /* JpMasuidriveItCustomimage_Prefix.pch */, 108 | 24DD6D1B1134B66800162E58 /* titanium.xcconfig */, 109 | ); 110 | name = "Other Sources"; 111 | sourceTree = ""; 112 | }; 113 | /* End PBXGroup section */ 114 | 115 | /* Begin PBXHeadersBuildPhase section */ 116 | D2AAC07A0554694100DB518D /* Headers */ = { 117 | isa = PBXHeadersBuildPhase; 118 | buildActionMask = 2147483647; 119 | files = ( 120 | AA747D9F0F9514B9006C5449 /* JpMasuidriveItCustomimage_Prefix.pch in Headers */, 121 | 24DD6CF91134B3F500162E58 /* JpMasuidriveItCustomimageModule.h in Headers */, 122 | 24DE9E1111C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.h in Headers */, 123 | ); 124 | runOnlyForDeploymentPostprocessing = 0; 125 | }; 126 | /* End PBXHeadersBuildPhase section */ 127 | 128 | /* Begin PBXNativeTarget section */ 129 | D2AAC07D0554694100DB518D /* customimage */ = { 130 | isa = PBXNativeTarget; 131 | buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "customimage" */; 132 | buildPhases = ( 133 | D2AAC07A0554694100DB518D /* Headers */, 134 | D2AAC07B0554694100DB518D /* Sources */, 135 | D2AAC07C0554694100DB518D /* Frameworks */, 136 | ); 137 | buildRules = ( 138 | ); 139 | dependencies = ( 140 | ); 141 | name = customimage; 142 | productName = customimage; 143 | productReference = D2AAC07E0554694100DB518D /* libJpMasuidriveItCustomimage.a */; 144 | productType = "com.apple.product-type.library.static"; 145 | }; 146 | /* End PBXNativeTarget section */ 147 | 148 | /* Begin PBXProject section */ 149 | 0867D690FE84028FC02AAC07 /* Project object */ = { 150 | isa = PBXProject; 151 | buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "customimage" */; 152 | compatibilityVersion = "Xcode 3.1"; 153 | developmentRegion = English; 154 | hasScannedForEncodings = 1; 155 | knownRegions = ( 156 | English, 157 | Japanese, 158 | French, 159 | German, 160 | ); 161 | mainGroup = 0867D691FE84028FC02AAC07 /* customimage */; 162 | productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; 163 | projectDirPath = ""; 164 | projectRoot = ""; 165 | targets = ( 166 | D2AAC07D0554694100DB518D /* customimage */, 167 | 24416B8111C4CA220047AFDD /* Build & Test */, 168 | ); 169 | }; 170 | /* End PBXProject section */ 171 | 172 | /* Begin PBXShellScriptBuildPhase section */ 173 | 24416B8011C4CA220047AFDD /* ShellScript */ = { 174 | isa = PBXShellScriptBuildPhase; 175 | buildActionMask = 2147483647; 176 | files = ( 177 | ); 178 | inputPaths = ( 179 | ); 180 | outputPaths = ( 181 | ); 182 | runOnlyForDeploymentPostprocessing = 0; 183 | shellPath = /bin/sh; 184 | shellScript = "# shell script goes here\n\npython \"${TITANIUM_SDK}/titanium.py\" run --dir=\"${PROJECT_DIR}\"\nexit $?\n"; 185 | }; 186 | /* End PBXShellScriptBuildPhase section */ 187 | 188 | /* Begin PBXSourcesBuildPhase section */ 189 | D2AAC07B0554694100DB518D /* Sources */ = { 190 | isa = PBXSourcesBuildPhase; 191 | buildActionMask = 2147483647; 192 | files = ( 193 | 24DD6CFA1134B3F500162E58 /* JpMasuidriveItCustomimageModule.m in Sources */, 194 | 24DE9E1211C5FE74003F90F6 /* JpMasuidriveItCustomimageModuleAssets.m in Sources */, 195 | ); 196 | runOnlyForDeploymentPostprocessing = 0; 197 | }; 198 | /* End PBXSourcesBuildPhase section */ 199 | 200 | /* Begin PBXTargetDependency section */ 201 | 24416B8511C4CA280047AFDD /* PBXTargetDependency */ = { 202 | isa = PBXTargetDependency; 203 | target = D2AAC07D0554694100DB518D /* customimage */; 204 | targetProxy = 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */; 205 | }; 206 | /* End PBXTargetDependency section */ 207 | 208 | /* Begin XCBuildConfiguration section */ 209 | 1DEB921F08733DC00010E9CD /* Debug */ = { 210 | isa = XCBuildConfiguration; 211 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 212 | buildSettings = { 213 | ALWAYS_SEARCH_USER_PATHS = NO; 214 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 215 | COPY_PHASE_STRIP = NO; 216 | DSTROOT = /tmp/JpMasuidriveItCustomimage.dst; 217 | GCC_DYNAMIC_NO_PIC = NO; 218 | GCC_ENABLE_FIX_AND_CONTINUE = YES; 219 | GCC_MODEL_TUNING = G5; 220 | GCC_OPTIMIZATION_LEVEL = 0; 221 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 222 | GCC_PREFIX_HEADER = JpMasuidriveItCustomimage_Prefix.pch; 223 | INSTALL_PATH = /usr/local/lib; 224 | IPHONEOS_DEPLOYMENT_TARGET = 4.0; 225 | PRODUCT_NAME = JpMasuidriveItCustomimage; 226 | SDKROOT = iphoneos4.2; 227 | }; 228 | name = Debug; 229 | }; 230 | 1DEB922008733DC00010E9CD /* Release */ = { 231 | isa = XCBuildConfiguration; 232 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 233 | buildSettings = { 234 | ALWAYS_SEARCH_USER_PATHS = NO; 235 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 236 | DSTROOT = /tmp/JpMasuidriveItCustomimage.dst; 237 | GCC_MODEL_TUNING = G5; 238 | GCC_PRECOMPILE_PREFIX_HEADER = YES; 239 | GCC_PREFIX_HEADER = JpMasuidriveItCustomimage_Prefix.pch; 240 | INSTALL_PATH = /usr/local/lib; 241 | IPHONEOS_DEPLOYMENT_TARGET = 4.0; 242 | PRODUCT_NAME = JpMasuidriveItCustomimage; 243 | SDKROOT = iphoneos4.2; 244 | }; 245 | name = Release; 246 | }; 247 | 1DEB922308733DC00010E9CD /* Debug */ = { 248 | isa = XCBuildConfiguration; 249 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 250 | buildSettings = { 251 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 252 | GCC_C_LANGUAGE_STANDARD = c99; 253 | GCC_OPTIMIZATION_LEVEL = 0; 254 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 255 | GCC_WARN_UNUSED_VARIABLE = YES; 256 | OTHER_LDFLAGS = ""; 257 | PREBINDING = NO; 258 | SDKROOT = iphoneos4.0; 259 | }; 260 | name = Debug; 261 | }; 262 | 1DEB922408733DC00010E9CD /* Release */ = { 263 | isa = XCBuildConfiguration; 264 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 265 | buildSettings = { 266 | ARCHS = "$(ARCHS_STANDARD_32_BIT)"; 267 | GCC_C_LANGUAGE_STANDARD = c99; 268 | GCC_WARN_ABOUT_RETURN_TYPE = YES; 269 | GCC_WARN_UNUSED_VARIABLE = YES; 270 | OTHER_LDFLAGS = ""; 271 | PREBINDING = NO; 272 | SDKROOT = iphoneos4.0; 273 | }; 274 | name = Release; 275 | }; 276 | 24416B8211C4CA220047AFDD /* Debug */ = { 277 | isa = XCBuildConfiguration; 278 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 279 | buildSettings = { 280 | COPY_PHASE_STRIP = NO; 281 | GCC_DYNAMIC_NO_PIC = NO; 282 | GCC_OPTIMIZATION_LEVEL = 0; 283 | PRODUCT_NAME = "Build & test"; 284 | }; 285 | name = Debug; 286 | }; 287 | 24416B8311C4CA220047AFDD /* Release */ = { 288 | isa = XCBuildConfiguration; 289 | baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; 290 | buildSettings = { 291 | COPY_PHASE_STRIP = YES; 292 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 293 | GCC_ENABLE_FIX_AND_CONTINUE = NO; 294 | PRODUCT_NAME = "Build & test"; 295 | ZERO_LINK = NO; 296 | }; 297 | name = Release; 298 | }; 299 | /* End XCBuildConfiguration section */ 300 | 301 | /* Begin XCConfigurationList section */ 302 | 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "customimage" */ = { 303 | isa = XCConfigurationList; 304 | buildConfigurations = ( 305 | 1DEB921F08733DC00010E9CD /* Debug */, 306 | 1DEB922008733DC00010E9CD /* Release */, 307 | ); 308 | defaultConfigurationIsVisible = 0; 309 | defaultConfigurationName = Release; 310 | }; 311 | 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "customimage" */ = { 312 | isa = XCConfigurationList; 313 | buildConfigurations = ( 314 | 1DEB922308733DC00010E9CD /* Debug */, 315 | 1DEB922408733DC00010E9CD /* Release */, 316 | ); 317 | defaultConfigurationIsVisible = 0; 318 | defaultConfigurationName = Release; 319 | }; 320 | 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */ = { 321 | isa = XCConfigurationList; 322 | buildConfigurations = ( 323 | 24416B8211C4CA220047AFDD /* Debug */, 324 | 24416B8311C4CA220047AFDD /* Release */, 325 | ); 326 | defaultConfigurationIsVisible = 0; 327 | defaultConfigurationName = Release; 328 | }; 329 | /* End XCConfigurationList section */ 330 | }; 331 | rootObject = 0867D690FE84028FC02AAC07 /* Project object */; 332 | } 333 | -------------------------------------------------------------------------------- /modules/CustomImage/documentation/index.md: -------------------------------------------------------------------------------- 1 | # customimage Module 2 | 3 | ## Description 4 | 5 | TODO: Enter your module description here 6 | 7 | ## Accessing the customimage Module 8 | 9 | To access this module from JavaScript, you would do the following: 10 | 11 | var customimage = require("jp.masuidrive.it.customimage"); 12 | 13 | The customimage variable is a reference to the Module object. 14 | 15 | ## Reference 16 | 17 | TODO: If your module has an API, you should document 18 | the reference here. 19 | 20 | ### ___PROJECTNAMEASIDENTIFIER__.function 21 | 22 | TODO: This is an example of a module function. 23 | 24 | ### ___PROJECTNAMEASIDENTIFIER__.property 25 | 26 | TODO: This is an example of a module property. 27 | 28 | ## Usage 29 | 30 | TODO: Enter your usage example here 31 | 32 | ## Author 33 | 34 | TODO: Enter your author name, email and other contact 35 | details you want to share here. 36 | 37 | ## License 38 | 39 | TODO: Enter your license/legal information here. 40 | -------------------------------------------------------------------------------- /modules/CustomImage/example/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/masuidrive/TitaniumSamples/5f6dfd1dd60c930c69c1f7aab54a6e8332363b35/modules/CustomImage/example/.DS_Store -------------------------------------------------------------------------------- /modules/CustomImage/example/app.js: -------------------------------------------------------------------------------- 1 | // This is a test harness for your module 2 | // You should do something interesting in this harness 3 | // to test out the module and to provide instructions 4 | // to users on how to use it by example. 5 | 6 | 7 | // open a single window 8 | var window = Ti.UI.createWindow({ 9 | backgroundColor:'white' 10 | }); 11 | var label = Ti.UI.createLabel({ 12 | text: "TEXT" 13 | }); 14 | window.add(label); 15 | window.open(); 16 | 17 | // TODO: write your module tests here 18 | var CustomImage = require('jp.masuidrive.it.customimage'); 19 | Ti.API.info("module is => " + CustomImage); 20 | 21 | CustomImage.savejpeg(window.toImage(), Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'compressed10.jpg').nativePath, 0.1); 22 | CustomImage.savejpeg(window.toImage(), Ti.Filesystem.getFile(Ti.Filesystem.applicationDataDirectory,'compressed100.jpg').nativePath, 1); 23 | 24 | -------------------------------------------------------------------------------- /modules/CustomImage/hooks/README: -------------------------------------------------------------------------------- 1 | These files are not yet supported as of 1.4.0 but will be in a near future release. 2 | -------------------------------------------------------------------------------- /modules/CustomImage/hooks/add.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # This is the module project add hook that will be 4 | # called when your module is added to a project 5 | # 6 | import os, sys 7 | 8 | def dequote(s): 9 | if s[0:1] == '"': 10 | return s[1:-1] 11 | return s 12 | 13 | def main(args,argc): 14 | # You will get the following command line arguments 15 | # in the following order: 16 | # 17 | # project_dir = the full path to the project root directory 18 | # project_type = the type of project (desktop, mobile, ipad) 19 | # project_name = the name of the project 20 | # 21 | project_dir = dequote(os.path.expanduser(args[1])) 22 | project_type = dequote(args[2]) 23 | project_name = dequote(args[3]) 24 | 25 | # TODO: write your add hook here (optional) 26 | 27 | 28 | # exit 29 | sys.exit(0) 30 | 31 | 32 | 33 | if __name__ == '__main__': 34 | main(sys.argv,len(sys.argv)) 35 | 36 | -------------------------------------------------------------------------------- /modules/CustomImage/hooks/install.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # This is the module install hook that will be 4 | # called when your module is first installed 5 | # 6 | import os, sys 7 | 8 | def main(args,argc): 9 | 10 | # TODO: write your install hook here (optional) 11 | 12 | # exit 13 | sys.exit(0) 14 | 15 | 16 | 17 | if __name__ == '__main__': 18 | main(sys.argv,len(sys.argv)) 19 | 20 | -------------------------------------------------------------------------------- /modules/CustomImage/hooks/remove.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # This is the module project remove hook that will be 4 | # called when your module is remove from a project 5 | # 6 | import os, sys 7 | 8 | def dequote(s): 9 | if s[0:1] == '"': 10 | return s[1:-1] 11 | return s 12 | 13 | def main(args,argc): 14 | # You will get the following command line arguments 15 | # in the following order: 16 | # 17 | # project_dir = the full path to the project root directory 18 | # project_type = the type of project (desktop, mobile, ipad) 19 | # project_name = the name of the project 20 | # 21 | project_dir = dequote(os.path.expanduser(args[1])) 22 | project_type = dequote(args[2]) 23 | project_name = dequote(args[3]) 24 | 25 | # TODO: write your remove hook here (optional) 26 | 27 | # exit 28 | sys.exit(0) 29 | 30 | 31 | 32 | if __name__ == '__main__': 33 | main(sys.argv,len(sys.argv)) 34 | 35 | -------------------------------------------------------------------------------- /modules/CustomImage/hooks/uninstall.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # This is the module uninstall hook that will be 4 | # called when your module is uninstalled 5 | # 6 | import os, sys 7 | 8 | def main(args,argc): 9 | 10 | # TODO: write your uninstall hook here (optional) 11 | 12 | # exit 13 | sys.exit(0) 14 | 15 | 16 | if __name__ == '__main__': 17 | main(sys.argv,len(sys.argv)) 18 | 19 | -------------------------------------------------------------------------------- /modules/CustomImage/manifest: -------------------------------------------------------------------------------- 1 | # 2 | # this is your module manifest and used by Titanium 3 | # during compilation, packaging, distribution, etc. 4 | # 5 | version: 0.1 6 | description: My module 7 | author: Your Name 8 | license: Specify your license 9 | copyright: Copyright (c) 2010 by Your Company 10 | 11 | 12 | # these should not be edited 13 | name: customimage 14 | moduleid: jp.masuidrive.it.customimage 15 | guid: 44415e99-786d-4e17-ad84-3338af77efd3 16 | platform: iphone 17 | minsdk: 1.5.1 18 | -------------------------------------------------------------------------------- /modules/CustomImage/module.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // PLACE ANY BUILD DEFINITIONS IN THIS FILE AND THEY WILL BE 3 | // PICKED UP DURING THE APP BUILD FOR YOUR MODULE 4 | // 5 | // see the following webpage for instructions on the settings 6 | // for this file: 7 | // http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/400-Build_Configurations/build_configs.html 8 | // 9 | 10 | // 11 | // How to add a Framework (example) 12 | // 13 | // OTHER_LDFLAGS=$(inherited) -framework Foo 14 | // 15 | // Adding a framework for a specific version(s) of iPhone: 16 | // 17 | // OTHER_LDFLAGS[sdk=iphoneos4*]=$(inherited) -framework Foo 18 | // OTHER_LDFLAGS[sdk=iphonesimulator4*]=$(inherited) -framework Foo 19 | // 20 | // 21 | // How to add a compiler define: 22 | // 23 | // OTHER_CFLAGS=$(inherited) -DFOO=1 24 | // 25 | // 26 | // IMPORTANT NOTE: always use $(inherited) in your overrides 27 | // 28 | -------------------------------------------------------------------------------- /modules/CustomImage/timodule.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /modules/CustomImage/titanium.xcconfig: -------------------------------------------------------------------------------- 1 | // 2 | // 3 | // CHANGE THESE VALUES TO REFLECT THE VERSION (AND LOCATION IF DIFFERENT) 4 | // OF YOUR TITANIUM SDK YOU'RE BUILDING FOR 5 | // 6 | // 7 | TITANIUM_SDK_VERSION = 1.6.0 8 | 9 | 10 | // 11 | // THESE SHOULD BE OK GENERALLY AS-IS 12 | // 13 | TITANIUM_SDK = /Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION) 14 | TITANIUM_BASE_SDK = "$(TITANIUM_SDK)/iphone/include" 15 | TITANIUM_BASE_SDK2 = "$(TITANIUM_SDK)/iphone/include/TiCore" 16 | HEADER_SEARCH_PATHS= $(TITANIUM_BASE_SDK) $(TITANIUM_BASE_SDK2) 17 | 18 | 19 | 20 | --------------------------------------------------------------------------------