From 6d2664a6c789e28da437eceaec935bf5502a0a64 Mon Sep 17 00:00:00 2001 From: kazuyukitanimura Date: Mon, 12 May 2014 07:25:31 -0700 Subject: [PATCH] initial commit --- .gitignore | 4 + Classes/.gitignore | 2 + .../ComLimilyVerticalscrollableviewModule.h | 13 + .../ComLimilyVerticalscrollableviewModule.m | 106 +++++ ...LimilyVerticalscrollableviewModuleAssets.h | 11 + ...LimilyVerticalscrollableviewModuleAssets.m | 26 ++ Classes/TiUIScrollableViewProxy+Extend.h | 15 + Classes/TiUIScrollableViewProxy+Extend.m | 38 ++ ComLimilyVerticalscrollableview_Prefix.pch | 4 + LICENSE | 1 + README | 151 +++++++ .../project.pbxproj | 420 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../UserInterfaceState.xcuserstate | Bin 0 -> 16261 bytes .../WorkspaceSettings.xcsettings | 10 + .../xcdebugger/Breakpoints_v2.xcbkptlist | 55 +++ .../xcschemes/Build & Test.xcscheme | 59 +++ .../xcschemes/VerticalScrollableView.xcscheme | 59 +++ .../xcschemes/xcschememanagement.plist | 32 ++ assets/README | 6 + build.py | 275 ++++++++++++ documentation/index.md | 39 ++ example/app.js | 39 ++ hooks/README | 1 + hooks/add.py | 35 ++ hooks/install.py | 19 + hooks/remove.py | 34 ++ hooks/uninstall.py | 18 + manifest | 18 + module.xcconfig | 27 ++ platform/README | 3 + timodule.xml | 13 + titanium.xcconfig | 19 + 33 files changed, 1559 insertions(+) create mode 100644 .gitignore create mode 100644 Classes/.gitignore create mode 100644 Classes/ComLimilyVerticalscrollableviewModule.h create mode 100644 Classes/ComLimilyVerticalscrollableviewModule.m create mode 100644 Classes/ComLimilyVerticalscrollableviewModuleAssets.h create mode 100644 Classes/ComLimilyVerticalscrollableviewModuleAssets.m create mode 100644 Classes/TiUIScrollableViewProxy+Extend.h create mode 100644 Classes/TiUIScrollableViewProxy+Extend.m create mode 100644 ComLimilyVerticalscrollableview_Prefix.pch create mode 100644 LICENSE create mode 100644 README create mode 100644 VerticalScrollableView.xcodeproj/project.pbxproj create mode 100644 VerticalScrollableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 VerticalScrollableView.xcodeproj/project.xcworkspace/xcuserdata/kazuyukitanimura.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 VerticalScrollableView.xcodeproj/project.xcworkspace/xcuserdata/kazuyukitanimura.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/Build & Test.xcscheme create mode 100644 VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/VerticalScrollableView.xcscheme create mode 100644 VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 assets/README create mode 100755 build.py create mode 100644 documentation/index.md create mode 100644 example/app.js create mode 100644 hooks/README create mode 100644 hooks/add.py create mode 100644 hooks/install.py create mode 100644 hooks/remove.py create mode 100644 hooks/uninstall.py create mode 100644 manifest create mode 100644 module.xcconfig create mode 100644 platform/README create mode 100644 timodule.xml create mode 100644 titanium.xcconfig diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a606ca9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +tmp +bin +build +*.zip diff --git a/Classes/.gitignore b/Classes/.gitignore new file mode 100644 index 0000000..909c5a4 --- /dev/null +++ b/Classes/.gitignore @@ -0,0 +1,2 @@ +ComLimilyVerticalscrollableview.h +ComLimilyVerticalscrollableview.m diff --git a/Classes/ComLimilyVerticalscrollableviewModule.h b/Classes/ComLimilyVerticalscrollableviewModule.h new file mode 100644 index 0000000..7deb9f3 --- /dev/null +++ b/Classes/ComLimilyVerticalscrollableviewModule.h @@ -0,0 +1,13 @@ +/** + * Copyright (C) 2014 limily.com All rights reserved + * + * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. + * and licensed under the Apache Public License (version 2) + */ +#import "TiModule.h" + +@interface ComLimilyVerticalscrollableviewModule : TiModule +{ +} + +@end diff --git a/Classes/ComLimilyVerticalscrollableviewModule.m b/Classes/ComLimilyVerticalscrollableviewModule.m new file mode 100644 index 0000000..31b3b45 --- /dev/null +++ b/Classes/ComLimilyVerticalscrollableviewModule.m @@ -0,0 +1,106 @@ +/** + * Copyright (C) 2014 limily.com All rights reserved + * + * Appcelerator Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. + * and licensed under the Apache Public License (version 2) + */ +#import "ComLimilyVerticalscrollableviewModule.h" +#import "TiBase.h" +#import "TiHost.h" +#import "TiUtils.h" + +@implementation ComLimilyVerticalscrollableviewModule + +#pragma mark Internal + +// this is generated for your module, please do not change it +-(id)moduleGUID +{ + return @"3f7b28e1-3e3a-491f-a373-168fd5d52152"; +} + +// this is generated for your module, please do not change it +-(NSString*)moduleId +{ + return @"com.limily.verticalscrollableview"; +} + +#pragma mark Lifecycle + +-(void)startup +{ + // this method is called when the module is first loaded + // you *must* call the superclass + [super startup]; + + NSLog(@"[INFO] %@ loaded",self); +} + +-(void)shutdown:(id)sender +{ + // this method is called when the module is being unloaded + // typically this is during shutdown. make sure you don't do too + // much processing here or the app will be quit forceably + + // you *must* call the superclass + [super shutdown:sender]; +} + +#pragma mark Cleanup + +-(void)dealloc +{ + // release any resources that have been retained by the module + [super dealloc]; +} + +#pragma mark Internal Memory Management + +-(void)didReceiveMemoryWarning:(NSNotification*)notification +{ + // optionally release any resources that can be dynamically + // reloaded once memory is available - such as caches + [super didReceiveMemoryWarning:notification]; +} + +#pragma mark Listener Notifications + +-(void)_listenerAdded:(NSString *)type count:(int)count +{ + if (count == 1 && [type isEqualToString:@"my_event"]) + { + // the first (of potentially many) listener is being added + // for event named 'my_event' + } +} + +-(void)_listenerRemoved:(NSString *)type count:(int)count +{ + if (count == 0 && [type isEqualToString:@"my_event"]) + { + // the last listener called for event named 'my_event' has + // been removed, we can optionally clean up any resources + // since no body is listening at this point for that event + } +} + +//#pragma Public APIs +// +//-(id)example:(id)args +//{ +// // example method +// return @"hello world"; +//} +// +//-(id)exampleProp +//{ +// // example property getter +// return @"hello world"; +//} +// +//-(void)setExampleProp:(id)value +//{ +// // example property setter +//} + +@end diff --git a/Classes/ComLimilyVerticalscrollableviewModuleAssets.h b/Classes/ComLimilyVerticalscrollableviewModuleAssets.h new file mode 100644 index 0000000..bcc63ec --- /dev/null +++ b/Classes/ComLimilyVerticalscrollableviewModuleAssets.h @@ -0,0 +1,11 @@ +/** + * This is a generated file. Do not edit or your changes will be lost + */ + +@interface ComLimilyVerticalscrollableviewModuleAssets : NSObject +{ +} +- (NSData*) moduleAsset; +- (NSData*) resolveModuleAsset:(NSString*)path; + +@end diff --git a/Classes/ComLimilyVerticalscrollableviewModuleAssets.m b/Classes/ComLimilyVerticalscrollableviewModuleAssets.m new file mode 100644 index 0000000..fd39a81 --- /dev/null +++ b/Classes/ComLimilyVerticalscrollableviewModuleAssets.m @@ -0,0 +1,26 @@ +/** + * This is a generated file. Do not edit or your changes will be lost + */ +#import "ComLimilyVerticalscrollableviewModuleAssets.h" + +extern NSData* filterDataInRange(NSData* thedata, NSRange range); + +@implementation ComLimilyVerticalscrollableviewModuleAssets + +- (NSData*) moduleAsset +{ + //##TI_AUTOGEN_BEGIN asset + //Compiler generates code for asset here + return nil; // DEFAULT BEHAVIOR + //##TI_AUTOGEN_END asset +} + +- (NSData*) resolveModuleAsset:(NSString*)path +{ + //##TI_AUTOGEN_BEGIN resolve_asset + //Compiler generates code for asset resolution here + return nil; // DEFAULT BEHAVIOR + //##TI_AUTOGEN_END resolve_asset +} + +@end diff --git a/Classes/TiUIScrollableViewProxy+Extend.h b/Classes/TiUIScrollableViewProxy+Extend.h new file mode 100644 index 0000000..30e2107 --- /dev/null +++ b/Classes/TiUIScrollableViewProxy+Extend.h @@ -0,0 +1,15 @@ +// +// TiUIScrollableViewProxy+Extend.h +// VerticalScrollableView +// +// Created by Kazuyuki Tanimura on 5/12/14. +// +// + +#import "TiViewProxy.h" +#import "TiUiScrollableViewProxy.h" +#import "TiUIScrollableView.h" + +@interface TiUIScrollableViewProxy (Extend) + +@end diff --git a/Classes/TiUIScrollableViewProxy+Extend.m b/Classes/TiUIScrollableViewProxy+Extend.m new file mode 100644 index 0000000..1fa0524 --- /dev/null +++ b/Classes/TiUIScrollableViewProxy+Extend.m @@ -0,0 +1,38 @@ +// +// TiUIScrollableViewProxy+Extend.m +// VerticalScrollableView +// +// Created by Kazuyuki Tanimura on 5/12/14. +// +// + +#import "TiUIScrollableViewProxy+Extend.h" + +@implementation TiUIScrollableViewProxy (Extend) + +-(void)shiftView:(id)args +{ + if ([viewProxies count] == 0) + { + return; + } + + [self lockViewsForWriting]; + TiViewProxy * doomedView; + doomedView = [viewProxies objectAtIndex:0]; + + [doomedView setParent:nil]; + TiThreadPerformOnMainThread(^{[doomedView detachView];}, NO); + [self forgetProxy:doomedView]; + [viewProxies removeObject:doomedView]; + [self unlockViews]; + int index = [TiUtils intValue:[self valueForUndefinedKey:@"currentPage"]]; + if (index > 0) { + index--; + } + TiThreadPerformOnMainThread(^{ + [((TiUIScrollableView*)self.view) setCurrentPage_:NUMINT(index)]; + }, NO); +} + +@end diff --git a/ComLimilyVerticalscrollableview_Prefix.pch b/ComLimilyVerticalscrollableview_Prefix.pch new file mode 100644 index 0000000..8bec24f --- /dev/null +++ b/ComLimilyVerticalscrollableview_Prefix.pch @@ -0,0 +1,4 @@ + +#ifdef __OBJC__ + #import +#endif diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..6ae867d --- /dev/null +++ b/LICENSE @@ -0,0 +1 @@ +TODO: place your license here and we'll include it in the module distribution diff --git a/README b/README new file mode 100644 index 0000000..22c1b77 --- /dev/null +++ b/README @@ -0,0 +1,151 @@ +Appcelerator Titanium iPhone Module Project +=========================================== + +This is a skeleton Titanium Mobile iPhone module project. Modules can be +used to extend the functionality of Titanium by providing additional native +code that is compiled into your application at build time and can expose certain +APIs into JavaScript. + +MODULE NAMING +-------------- + +Choose a unique module id for your module. This ID usually follows a namespace +convention using DNS notation. For example, com.appcelerator.module.test. This +ID can only be used once by all public modules in Titanium. + + +COMPONENTS +----------- + +Components that are exposed by your module must follow a special naming convention. +A component (widget, proxy, etc) must be named with the pattern: + + TiProxy + +For example, if you component was called Foo, your proxy would be named: + + TiMyfirstFooProxy + +For view proxies or widgets, you must create both a view proxy and a view implementation. +If you widget was named proxy, you would create the following files: + + TiMyfirstFooProxy.h + TiMyfirstFooProxy.m + TiMyfirstFoo.h + TiMyfirstFoo.m + +The view implementation is named the same except it does contain the suffix `Proxy`. + +View implementations extend the Titanium base class `TiUIView`. View Proxies extend the +Titanium base class `TiUIViewProxy` or `TiUIWidgetProxy`. + +For proxies that are simply native objects that can be returned to JavaScript, you can +simply extend `TiProxy` and no view implementation is required. + + +GET STARTED +------------ + +1. Edit manifest with the appropriate details about your module. +2. Edit LICENSE to add your license details. +3. Place any assets (such as PNG files) that are required in the assets folder. +4. Edit the titanium.xcconfig and make sure you're building for the right Titanium version. +5. Code and build. + +BUILD TIME COMPILER CONFIG +-------------------------- + +You can edit the file `module.xcconfig` to include any build time settings that should be +set during application compilation that your module requires. This file will automatically get `#include` in the main application project. + +For more information about this file, please see the Apple documentation at: + + + + +DOCUMENTATION FOR YOUR MODULE +----------------------------- + +You should provide at least minimal documentation for your module in `documentation` folder using the Markdown syntax. + +For more information on the Markdown syntax, refer to this documentation at: + + + + +TEST HARNESS EXAMPLE FOR YOUR MODULE +------------------------------------ + +The `example` directory contains a skeleton application test harness that can be +used for testing and providing an example of usage to the users of your module. + + +INSTALL YOUR MODULE +-------------------- + +1. Run `build.py` which creates your distribution +2. cd to `/Library/Application Support/Titanium` +3. copy this zip file into the folder of your Titanium SDK + +REGISTER YOUR MODULE +--------------------- + +Register your module with your application by editing `tiapp.xml` and adding your module. +Example: + + + com.limily.verticalscrollableview + + +When you run your project, the compiler will know automatically compile in your module +dependencies and copy appropriate image assets into the application. + +USING YOUR MODULE IN CODE +------------------------- + +To use your module in code, you will need to require it. + +For example, + + var my_module = require('com.limily.verticalscrollableview'); + my_module.foo(); + +WRITING PURE JS NATIVE MODULES +------------------------------ + +You can write a pure JavaScript "natively compiled" module. This is nice if you +want to distribute a JS module pre-compiled. + +To create a module, create a file named com.limily.verticalscrollableview.js under the assets folder. +This file must be in the Common JS format. For example: + + exports.echo = function(s) + { + return s; + }; + +Any functions and properties that are exported will be made available as part of your +module. All other code inside your JS will be private to your module. + +For pure JS module, you don't need to modify any of the Objective-C module code. You +can leave it as-is and build. + +TESTING YOUR MODULE +------------------- + +Run the `titanium.py` script to test your module or test from within XCode. +To test with the script, execute: + + titanium run --dir=YOURMODULEDIR + + +This will execute the app.js in the example folder as a Titanium application. + + +DISTRIBUTING YOUR MODULE +------------------------- + +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! + + +Cheers! diff --git a/VerticalScrollableView.xcodeproj/project.pbxproj b/VerticalScrollableView.xcodeproj/project.pbxproj new file mode 100644 index 0000000..dcf4105 --- /dev/null +++ b/VerticalScrollableView.xcodeproj/project.pbxproj @@ -0,0 +1,420 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXAggregateTarget section */ + 24416B8111C4CA220047AFDD /* Build & Test */ = { + isa = PBXAggregateTarget; + buildConfigurationList = 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */; + buildPhases = ( + 24416B8011C4CA220047AFDD /* ShellScript */, + ); + dependencies = ( + 24416B8511C4CA280047AFDD /* PBXTargetDependency */, + ); + name = "Build & Test"; + productName = "Build & test"; + }; +/* End PBXAggregateTarget section */ + +/* Begin PBXBuildFile section */ + 24DD6CF91134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DD6CF71134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.h */; }; + 24DD6CFA1134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DD6CF81134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.m */; }; + 24DE9E1111C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.h in Headers */ = {isa = PBXBuildFile; fileRef = 24DE9E0F11C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.h */; }; + 24DE9E1211C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.m in Sources */ = {isa = PBXBuildFile; fileRef = 24DE9E1011C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.m */; }; + 807FA9A01921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.h in Headers */ = {isa = PBXBuildFile; fileRef = 807FA99E1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.h */; }; + 807FA9A11921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.m in Sources */ = {isa = PBXBuildFile; fileRef = 807FA99F1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.m */; }; + AA747D9F0F9514B9006C5449 /* ComLimilyVerticalscrollableview_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = AA747D9E0F9514B9006C5449 /* ComLimilyVerticalscrollableview_Prefix.pch */; }; + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = VerticalScrollableView; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 24DD6CF71134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ComLimilyVerticalscrollableviewModule.h; path = Classes/ComLimilyVerticalscrollableviewModule.h; sourceTree = ""; }; + 24DD6CF81134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ComLimilyVerticalscrollableviewModule.m; path = Classes/ComLimilyVerticalscrollableviewModule.m; sourceTree = ""; }; + 24DD6D1B1134B66800162E58 /* titanium.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = titanium.xcconfig; sourceTree = ""; }; + 24DE9E0F11C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ComLimilyVerticalscrollableviewModuleAssets.h; path = Classes/ComLimilyVerticalscrollableviewModuleAssets.h; sourceTree = ""; }; + 24DE9E1011C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ComLimilyVerticalscrollableviewModuleAssets.m; path = Classes/ComLimilyVerticalscrollableviewModuleAssets.m; sourceTree = ""; }; + 807FA99E1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "TiUIScrollableViewProxy+Extend.h"; path = "Classes/TiUIScrollableViewProxy+Extend.h"; sourceTree = ""; }; + 807FA99F1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "TiUIScrollableViewProxy+Extend.m"; path = "Classes/TiUIScrollableViewProxy+Extend.m"; sourceTree = ""; }; + AA747D9E0F9514B9006C5449 /* ComLimilyVerticalscrollableview_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComLimilyVerticalscrollableview_Prefix.pch; sourceTree = SOURCE_ROOT; }; + AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D2AAC07E0554694100DB518D /* libComLimilyVerticalscrollableview.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libComLimilyVerticalscrollableview.a; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D2AAC07C0554694100DB518D /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 034768DFFF38A50411DB9C8B /* Products */ = { + isa = PBXGroup; + children = ( + D2AAC07E0554694100DB518D /* libComLimilyVerticalscrollableview.a */, + ); + name = Products; + sourceTree = ""; + }; + 0867D691FE84028FC02AAC07 /* VerticalScrollableView */ = { + isa = PBXGroup; + children = ( + 08FB77AEFE84172EC02AAC07 /* Classes */, + 32C88DFF0371C24200C91783 /* Other Sources */, + 0867D69AFE84028FC02AAC07 /* Frameworks */, + 034768DFFF38A50411DB9C8B /* Products */, + ); + indentWidth = 2; + name = VerticalScrollableView; + sourceTree = ""; + tabWidth = 2; + }; + 0867D69AFE84028FC02AAC07 /* Frameworks */ = { + isa = PBXGroup; + children = ( + AACBBE490F95108600F1A2B1 /* Foundation.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 08FB77AEFE84172EC02AAC07 /* Classes */ = { + isa = PBXGroup; + children = ( + 24DE9E0F11C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.h */, + 807FA99E1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.h */, + 807FA99F1921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.m */, + 24DE9E1011C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.m */, + 24DD6CF71134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.h */, + 24DD6CF81134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.m */, + ); + name = Classes; + sourceTree = ""; + }; + 32C88DFF0371C24200C91783 /* Other Sources */ = { + isa = PBXGroup; + children = ( + AA747D9E0F9514B9006C5449 /* ComLimilyVerticalscrollableview_Prefix.pch */, + 24DD6D1B1134B66800162E58 /* titanium.xcconfig */, + ); + name = "Other Sources"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + D2AAC07A0554694100DB518D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + AA747D9F0F9514B9006C5449 /* ComLimilyVerticalscrollableview_Prefix.pch in Headers */, + 24DD6CF91134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.h in Headers */, + 24DE9E1111C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.h in Headers */, + 807FA9A01921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + D2AAC07D0554694100DB518D /* VerticalScrollableView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "VerticalScrollableView" */; + buildPhases = ( + D2AAC07A0554694100DB518D /* Headers */, + D2AAC07B0554694100DB518D /* Sources */, + D2AAC07C0554694100DB518D /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = VerticalScrollableView; + productName = VerticalScrollableView; + productReference = D2AAC07E0554694100DB518D /* libComLimilyVerticalscrollableview.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 0867D690FE84028FC02AAC07 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + }; + buildConfigurationList = 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "VerticalScrollableView" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 0867D691FE84028FC02AAC07 /* VerticalScrollableView */; + productRefGroup = 034768DFFF38A50411DB9C8B /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D2AAC07D0554694100DB518D /* VerticalScrollableView */, + 24416B8111C4CA220047AFDD /* Build & Test */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + 24416B8011C4CA220047AFDD /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# shell script goes here\n\npython \"${TITANIUM_SDK}/titanium.py\" run --dir=\"${PROJECT_DIR}\"\nexit $?\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D2AAC07B0554694100DB518D /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 24DD6CFA1134B3F500162E58 /* ComLimilyVerticalscrollableviewModule.m in Sources */, + 807FA9A11921072A00FD0E04 /* TiUIScrollableViewProxy+Extend.m in Sources */, + 24DE9E1211C5FE74003F90F6 /* ComLimilyVerticalscrollableviewModuleAssets.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 24416B8511C4CA280047AFDD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D2AAC07D0554694100DB518D /* VerticalScrollableView */; + targetProxy = 24416B8411C4CA280047AFDD /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 1DEB921F08733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DSTROOT = /tmp/ComLimilyVerticalscrollableview.dst; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ComLimilyVerticalscrollableview_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "TI_VERSION=$(TI_VERSION)"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_RETURN_TYPE = NO; + GCC_WARN_MISSING_PARENTHESES = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_STRICT_SELECTOR_MATCH = NO; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + INSTALL_PATH = /usr/local/lib; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = ( + "-DDEBUG", + "-DTI_POST_1_2", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ComLimilyVerticalscrollableview; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 1DEB922008733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DSTROOT = /tmp/ComLimilyVerticalscrollableview.dst; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ComLimilyVerticalscrollableview_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "TI_VERSION=$(TI_VERSION)"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_RETURN_TYPE = NO; + GCC_WARN_MISSING_PARENTHESES = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_STRICT_SELECTOR_MATCH = NO; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + INSTALL_PATH = /usr/local/lib; + IPHONEOS_DEPLOYMENT_TARGET = 4.0; + LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-DTI_POST_1_2"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ComLimilyVerticalscrollableview; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 1DEB922308733DC00010E9CD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DSTROOT = /tmp/ComLimilyVerticalscrollableview.dst; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ComLimilyVerticalscrollableview_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "TI_VERSION=$(TI_VERSION)"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_RETURN_TYPE = NO; + GCC_WARN_MISSING_PARENTHESES = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_STRICT_SELECTOR_MATCH = NO; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + INSTALL_PATH = /usr/local/lib; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-DDEBUG", + "-DTI_POST_1_2", + ); + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ComLimilyVerticalscrollableview; + PROVISIONING_PROFILE = ""; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = ""; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Debug; + }; + 1DEB922408733DC00010E9CD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DSTROOT = /tmp/ComLimilyVerticalscrollableview.dst; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ComLimilyVerticalscrollableview_Prefix.pch; + GCC_PREPROCESSOR_DEFINITIONS = "TI_VERSION=$(TI_VERSION)"; + GCC_TREAT_WARNINGS_AS_ERRORS = NO; + GCC_VERSION = ""; + GCC_WARN_ABOUT_RETURN_TYPE = NO; + GCC_WARN_MISSING_PARENTHESES = NO; + GCC_WARN_SHADOW = NO; + GCC_WARN_STRICT_SELECTOR_MATCH = NO; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VALUE = NO; + GCC_WARN_UNUSED_VARIABLE = NO; + INSTALL_PATH = /usr/local/lib; + IPHONEOS_DEPLOYMENT_TARGET = 7.1; + OTHER_CFLAGS = "-DTI_POST_1_2"; + OTHER_LDFLAGS = "-ObjC"; + PRODUCT_NAME = ComLimilyVerticalscrollableview; + RUN_CLANG_STATIC_ANALYZER = NO; + SDKROOT = iphoneos; + USER_HEADER_SEARCH_PATHS = ""; + }; + name = Release; + }; + 24416B8211C4CA220047AFDD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + PRODUCT_NAME = "Build & test"; + }; + name = Debug; + }; + 24416B8311C4CA220047AFDD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 24DD6D1B1134B66800162E58 /* titanium.xcconfig */; + buildSettings = { + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + PRODUCT_NAME = "Build & test"; + ZERO_LINK = NO; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "VerticalScrollableView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB921F08733DC00010E9CD /* Debug */, + 1DEB922008733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "VerticalScrollableView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 1DEB922308733DC00010E9CD /* Debug */, + 1DEB922408733DC00010E9CD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 24416B8A11C4CA520047AFDD /* Build configuration list for PBXAggregateTarget "Build & Test" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 24416B8211C4CA220047AFDD /* Debug */, + 24416B8311C4CA220047AFDD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 0867D690FE84028FC02AAC07 /* Project object */; +} diff --git a/VerticalScrollableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/VerticalScrollableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..e6c2097 --- /dev/null +++ b/VerticalScrollableView.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/VerticalScrollableView.xcodeproj/project.xcworkspace/xcuserdata/kazuyukitanimura.xcuserdatad/UserInterfaceState.xcuserstate b/VerticalScrollableView.xcodeproj/project.xcworkspace/xcuserdata/kazuyukitanimura.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c500e0af019b6b9c3109fe6bf916f64c8eb60ef0 GIT binary patch literal 16261 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 + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..71499bc --- /dev/null +++ b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + diff --git a/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/Build & Test.xcscheme b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/Build & Test.xcscheme new file mode 100644 index 0000000..c744150 --- /dev/null +++ b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/Build & Test.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/VerticalScrollableView.xcscheme b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/VerticalScrollableView.xcscheme new file mode 100644 index 0000000..fd0dcf0 --- /dev/null +++ b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/VerticalScrollableView.xcscheme @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/xcschememanagement.plist b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..ecb3533 --- /dev/null +++ b/VerticalScrollableView.xcodeproj/xcuserdata/kazuyukitanimura.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + Build & Test.xcscheme + + orderHint + 1 + + VerticalScrollableView.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + 24416B8111C4CA220047AFDD + + primary + + + D2AAC07D0554694100DB518D + + primary + + + + + diff --git a/assets/README b/assets/README new file mode 100644 index 0000000..b1f2616 --- /dev/null +++ b/assets/README @@ -0,0 +1,6 @@ +Place your assets like PNG files in this directory and they will be packaged with your module. + +If you create a file named com.limily.verticalscrollableview.js in this directory, it will be +compiled and used as your module. This allows you to run pure Javascript +modules that are pre-compiled. + diff --git a/build.py b/build.py new file mode 100755 index 0000000..b85768a --- /dev/null +++ b/build.py @@ -0,0 +1,275 @@ +#!/usr/bin/env python +# +# Appcelerator Titanium Module Packager +# +# +import os, subprocess, sys, glob, string, optparse, subprocess +import zipfile +from datetime import date + +cwd = os.path.abspath(os.path.dirname(sys._getframe(0).f_code.co_filename)) +os.chdir(cwd) +required_module_keys = ['name','version','moduleid','description','copyright','license','copyright','platform','minsdk'] +module_defaults = { + 'description':'My module', + 'author': 'Your Name', + 'license' : 'Specify your license', + 'copyright' : 'Copyright (c) %s by Your Company' % str(date.today().year), +} +module_license_default = "TODO: place your license here and we'll include it in the module distribution" + +def find_sdk(config): + sdk = config['TITANIUM_SDK'] + return os.path.expandvars(os.path.expanduser(sdk)) + +def replace_vars(config,token): + idx = token.find('$(') + while idx != -1: + idx2 = token.find(')',idx+2) + if idx2 == -1: break + key = token[idx+2:idx2] + if not config.has_key(key): break + token = token.replace('$(%s)' % key, config[key]) + idx = token.find('$(') + return token + + +def read_ti_xcconfig(): + contents = open(os.path.join(cwd,'titanium.xcconfig')).read() + config = {} + for line in contents.splitlines(False): + line = line.strip() + if line[0:2]=='//': continue + idx = line.find('=') + if idx > 0: + key = line[0:idx].strip() + value = line[idx+1:].strip() + config[key] = replace_vars(config,value) + return config + +def generate_doc(config): + docdir = os.path.join(cwd,'documentation') + if not os.path.exists(docdir): + warn("Couldn't find documentation file at: %s" % docdir) + return None + + try: + import markdown2 as markdown + except ImportError: + import markdown + documentation = [] + for file in os.listdir(docdir): + if file in ignoreFiles or os.path.isdir(os.path.join(docdir, file)): + continue + md = open(os.path.join(docdir,file)).read() + html = markdown.markdown(md) + documentation.append({file:html}); + return documentation + +def compile_js(manifest,config): + js_file = os.path.join(cwd,'assets','com.limily.verticalscrollableview.js') + if not os.path.exists(js_file): return + + from compiler import Compiler + try: + import json + except: + import simplejson as json + + compiler = Compiler(cwd, manifest['moduleid'], manifest['name'], 'commonjs') + root_asset, module_assets = compiler.compile_module() + + root_asset_content = """ +%s + + return filterDataInRange([NSData dataWithBytesNoCopy:data length:sizeof(data) freeWhenDone:NO], ranges[0]); +""" % root_asset + + module_asset_content = """ +%s + + NSNumber *index = [map objectForKey:path]; + if (index == nil) { + return nil; + } + return filterDataInRange([NSData dataWithBytesNoCopy:data length:sizeof(data) freeWhenDone:NO], ranges[index.integerValue]); +""" % module_assets + + from tools import splice_code + + assets_router = os.path.join(cwd,'Classes','ComLimilyVerticalscrollableviewModuleAssets.m') + splice_code(assets_router, 'asset', root_asset_content) + splice_code(assets_router, 'resolve_asset', module_asset_content) + + # Generate the exports after crawling all of the available JS source + exports = open('metadata.json','w') + json.dump({'exports':compiler.exports }, exports) + exports.close() + +def die(msg): + print msg + sys.exit(1) + +def info(msg): + print "[INFO] %s" % msg + +def warn(msg): + print "[WARN] %s" % msg + +def validate_license(): + c = open(os.path.join(cwd,'LICENSE')).read() + if c.find(module_license_default)!=-1: + warn('please update the LICENSE file with your license text before distributing') + +def validate_manifest(): + path = os.path.join(cwd,'manifest') + f = open(path) + if not os.path.exists(path): die("missing %s" % path) + manifest = {} + for line in f.readlines(): + line = line.strip() + if line[0:1]=='#': continue + if line.find(':') < 0: continue + key,value = line.split(':') + manifest[key.strip()]=value.strip() + for key in required_module_keys: + if not manifest.has_key(key): die("missing required manifest key '%s'" % key) + if module_defaults.has_key(key): + defvalue = module_defaults[key] + curvalue = manifest[key] + if curvalue==defvalue: warn("please update the manifest key: '%s' to a non-default value" % key) + return manifest,path + +ignoreFiles = ['.DS_Store','.gitignore','libTitanium.a','titanium.jar','README'] +ignoreDirs = ['.DS_Store','.svn','.git','CVSROOT'] + +def zip_dir(zf,dir,basepath,ignoreExt=[]): + if not os.path.exists(dir): return + for root, dirs, files in os.walk(dir): + for name in ignoreDirs: + if name in dirs: + dirs.remove(name) # don't visit ignored directories + for file in files: + if file in ignoreFiles: continue + e = os.path.splitext(file) + if len(e) == 2 and e[1] in ignoreExt: continue + from_ = os.path.join(root, file) + to_ = from_.replace(dir, '%s/%s'%(basepath,dir), 1) + zf.write(from_, to_) + +def glob_libfiles(): + files = [] + for libfile in glob.glob('build/**/*.a'): + if libfile.find('Release-')!=-1: + files.append(libfile) + return files + +def build_module(manifest,config): + from tools import ensure_dev_path + ensure_dev_path() + + rc = os.system("xcodebuild -sdk iphoneos -configuration Release") + if rc != 0: + die("xcodebuild failed") + rc = os.system("xcodebuild -sdk iphonesimulator -configuration Release") + if rc != 0: + die("xcodebuild failed") + # build the merged library using lipo + moduleid = manifest['moduleid'] + libpaths = '' + for libfile in glob_libfiles(): + libpaths+='%s ' % libfile + + os.system("lipo %s -create -output build/lib%s.a" %(libpaths,moduleid)) + +def generate_apidoc(apidoc_build_path): + global options + + if options.skip_docs: + info("Skipping documentation generation.") + return False + else: + info("Module apidoc generation can be skipped using --skip-docs") + apidoc_path = os.path.join(cwd, "apidoc") + if not os.path.exists(apidoc_path): + warn("Skipping apidoc generation. No apidoc folder found at: %s" % apidoc_path) + return False + + if not os.path.exists(apidoc_build_path): + os.makedirs(apidoc_build_path) + ti_root = string.strip(subprocess.check_output(["echo $TI_ROOT"], shell=True)) + if not len(ti_root) > 0: + warn("Not generating documentation from the apidoc folder. The titanium_mobile repo could not be found.") + warn("Set the TI_ROOT environment variable to the parent folder where the titanium_mobile repo resides (eg.'export TI_ROOT=/Path').") + return False + docgen = os.path.join(ti_root, "titanium_mobile", "apidoc", "docgen.py") + if not os.path.exists(docgen): + warn("Not generating documentation from the apidoc folder. Couldn't find docgen.py at: %s" % docgen) + return False + + info("Generating documentation from the apidoc folder.") + rc = os.system("\"%s\" --format=jsca,modulehtml --css=styles.css -o \"%s\" -e \"%s\"" % (docgen, apidoc_build_path, apidoc_path)) + if rc != 0: + die("docgen failed") + return True + +def package_module(manifest,mf,config): + name = manifest['name'].lower() + moduleid = manifest['moduleid'].lower() + version = manifest['version'] + modulezip = '%s-iphone-%s.zip' % (moduleid,version) + if os.path.exists(modulezip): os.remove(modulezip) + zf = zipfile.ZipFile(modulezip, 'w', zipfile.ZIP_DEFLATED) + modulepath = 'modules/iphone/%s/%s' % (moduleid,version) + zf.write(mf,'%s/manifest' % modulepath) + libname = 'lib%s.a' % moduleid + zf.write('build/%s' % libname, '%s/%s' % (modulepath,libname)) + docs = generate_doc(config) + if docs!=None: + for doc in docs: + for file, html in doc.iteritems(): + filename = string.replace(file,'.md','.html') + zf.writestr('%s/documentation/%s'%(modulepath,filename),html) + + apidoc_build_path = os.path.join(cwd, "build", "apidoc") + if generate_apidoc(apidoc_build_path): + for file in os.listdir(apidoc_build_path): + if file in ignoreFiles or os.path.isdir(os.path.join(apidoc_build_path, file)): + continue + zf.write(os.path.join(apidoc_build_path, file), '%s/documentation/apidoc/%s' % (modulepath, file)) + + zip_dir(zf,'assets',modulepath,['.pyc','.js']) + zip_dir(zf,'example',modulepath,['.pyc']) + zip_dir(zf,'platform',modulepath,['.pyc','.js']) + zf.write('LICENSE','%s/LICENSE' % modulepath) + zf.write('module.xcconfig','%s/module.xcconfig' % modulepath) + exports_file = 'metadata.json' + if os.path.exists(exports_file): + zf.write(exports_file, '%s/%s' % (modulepath, exports_file)) + zf.close() + + +if __name__ == '__main__': + global options + + parser = optparse.OptionParser() + parser.add_option("-s", "--skip-docs", + dest="skip_docs", + action="store_true", + help="Will skip building documentation in apidoc folder", + default=False) + (options, args) = parser.parse_args() + + manifest,mf = validate_manifest() + validate_license() + config = read_ti_xcconfig() + + sdk = find_sdk(config) + sys.path.insert(0,os.path.join(sdk,'iphone')) + sys.path.append(os.path.join(sdk, "common")) + + compile_js(manifest,config) + build_module(manifest,config) + package_module(manifest,mf,config) + sys.exit(0) + diff --git a/documentation/index.md b/documentation/index.md new file mode 100644 index 0000000..ac222c2 --- /dev/null +++ b/documentation/index.md @@ -0,0 +1,39 @@ +# VerticalScrollableView Module + +## Description + +TODO: Enter your module description here + +## Accessing the VerticalScrollableView Module + +To access this module from JavaScript, you would do the following: + + var VerticalScrollableView = require("com.limily.verticalscrollableview"); + +The VerticalScrollableView variable is a reference to the Module object. + +## Reference + +TODO: If your module has an API, you should document +the reference here. + +### ___PROJECTNAMEASIDENTIFIER__.function + +TODO: This is an example of a module function. + +### ___PROJECTNAMEASIDENTIFIER__.property + +TODO: This is an example of a module property. + +## Usage + +TODO: Enter your usage example here + +## Author + +TODO: Enter your author name, email and other contact +details you want to share here. + +## License + +TODO: Enter your license/legal information here. diff --git a/example/app.js b/example/app.js new file mode 100644 index 0000000..202996f --- /dev/null +++ b/example/app.js @@ -0,0 +1,39 @@ +// This is a test harness for your module +// You should do something interesting in this harness +// to test out the module and to provide instructions +// to users on how to use it by example. + + +// open a single window +var win = Ti.UI.createWindow({ + backgroundColor:'white' +}); +var label = Ti.UI.createLabel(); +win.add(label); +win.open(); + +// TODO: write your module tests here +var VerticalScrollableView = require('com.limily.verticalscrollableview'); +Ti.API.info("module is => " + VerticalScrollableView); + +label.text = VerticalScrollableView.example(); + +Ti.API.info("module exampleProp is => " + VerticalScrollableView.exampleProp); +VerticalScrollableView.exampleProp = "This is a test value"; + +if (Ti.Platform.name == "android") { + var proxy = VerticalScrollableView.createExample({ + message: "Creating an example Proxy", + backgroundColor: "red", + width: 100, + height: 100, + top: 100, + left: 150 + }); + + proxy.printMessage("Hello world!"); + proxy.message = "Hi world!. It's me again."; + proxy.printMessage("Hello world!"); + win.add(proxy); +} + diff --git a/hooks/README b/hooks/README new file mode 100644 index 0000000..66b10a8 --- /dev/null +++ b/hooks/README @@ -0,0 +1 @@ +These files are not yet supported as of 1.4.0 but will be in a near future release. diff --git a/hooks/add.py b/hooks/add.py new file mode 100644 index 0000000..04e1c1d --- /dev/null +++ b/hooks/add.py @@ -0,0 +1,35 @@ +#!/usr/bin/env python +# +# This is the module project add hook that will be +# called when your module is added to a project +# +import os, sys + +def dequote(s): + if s[0:1] == '"': + return s[1:-1] + return s + +def main(args,argc): + # You will get the following command line arguments + # in the following order: + # + # project_dir = the full path to the project root directory + # project_type = the type of project (desktop, mobile, ipad) + # project_name = the name of the project + # + project_dir = dequote(os.path.expanduser(args[1])) + project_type = dequote(args[2]) + project_name = dequote(args[3]) + + # TODO: write your add hook here (optional) + + + # exit + sys.exit(0) + + + +if __name__ == '__main__': + main(sys.argv,len(sys.argv)) + diff --git a/hooks/install.py b/hooks/install.py new file mode 100644 index 0000000..b423fe9 --- /dev/null +++ b/hooks/install.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python +# +# This is the module install hook that will be +# called when your module is first installed +# +import os, sys + +def main(args,argc): + + # TODO: write your install hook here (optional) + + # exit + sys.exit(0) + + + +if __name__ == '__main__': + main(sys.argv,len(sys.argv)) + diff --git a/hooks/remove.py b/hooks/remove.py new file mode 100644 index 0000000..f92a234 --- /dev/null +++ b/hooks/remove.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python +# +# This is the module project remove hook that will be +# called when your module is remove from a project +# +import os, sys + +def dequote(s): + if s[0:1] == '"': + return s[1:-1] + return s + +def main(args,argc): + # You will get the following command line arguments + # in the following order: + # + # project_dir = the full path to the project root directory + # project_type = the type of project (desktop, mobile, ipad) + # project_name = the name of the project + # + project_dir = dequote(os.path.expanduser(args[1])) + project_type = dequote(args[2]) + project_name = dequote(args[3]) + + # TODO: write your remove hook here (optional) + + # exit + sys.exit(0) + + + +if __name__ == '__main__': + main(sys.argv,len(sys.argv)) + diff --git a/hooks/uninstall.py b/hooks/uninstall.py new file mode 100644 index 0000000..a7ffd91 --- /dev/null +++ b/hooks/uninstall.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# +# This is the module uninstall hook that will be +# called when your module is uninstalled +# +import os, sys + +def main(args,argc): + + # TODO: write your uninstall hook here (optional) + + # exit + sys.exit(0) + + +if __name__ == '__main__': + main(sys.argv,len(sys.argv)) + diff --git a/manifest b/manifest new file mode 100644 index 0000000..492fe2c --- /dev/null +++ b/manifest @@ -0,0 +1,18 @@ +# +# this is your module manifest and used by Titanium +# during compilation, packaging, distribution, etc. +# +version: 0.1 +apiversion: 2 +description: My module +author: Your Name +license: Specify your license +copyright: Copyright (c) 2014 by Your Company + + +# these should not be edited +name: VerticalScrollableView +moduleid: com.limily.verticalscrollableview +guid: 3f7b28e1-3e3a-491f-a373-168fd5d52152 +platform: iphone +minsdk: 3.2.3.GA diff --git a/module.xcconfig b/module.xcconfig new file mode 100644 index 0000000..80ca884 --- /dev/null +++ b/module.xcconfig @@ -0,0 +1,27 @@ +// +// PLACE ANY BUILD DEFINITIONS IN THIS FILE AND THEY WILL BE +// PICKED UP DURING THE APP BUILD FOR YOUR MODULE +// +// see the following webpage for instructions on the settings +// for this file: +// http://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeBuildSystem/400-Build_Configurations/build_configs.html +// + +// +// How to add a Framework (example) +// +// OTHER_LDFLAGS=$(inherited) -framework Foo +// +// Adding a framework for a specific version(s) of iPhone: +// +// OTHER_LDFLAGS[sdk=iphoneos4*]=$(inherited) -framework Foo +// OTHER_LDFLAGS[sdk=iphonesimulator4*]=$(inherited) -framework Foo +// +// +// How to add a compiler define: +// +// OTHER_CFLAGS=$(inherited) -DFOO=1 +// +// +// IMPORTANT NOTE: always use $(inherited) in your overrides +// diff --git a/platform/README b/platform/README new file mode 100644 index 0000000..7ac991c --- /dev/null +++ b/platform/README @@ -0,0 +1,3 @@ +You can place platform-specific files here in sub-folders named "android" and/or "iphone", just as you can with normal Titanium Mobile SDK projects. Any folders and files you place here will be merged with the platform-specific files in a Titanium Mobile project that uses this module. + +When a Titanium Mobile project that uses this module is built, the files from this platform/ folder will be treated the same as files (if any) from the Titanium Mobile project's platform/ folder. diff --git a/timodule.xml b/timodule.xml new file mode 100644 index 0000000..6affb2f --- /dev/null +++ b/timodule.xml @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/titanium.xcconfig b/titanium.xcconfig new file mode 100644 index 0000000..75242e9 --- /dev/null +++ b/titanium.xcconfig @@ -0,0 +1,19 @@ +// +// +// CHANGE THESE VALUES TO REFLECT THE VERSION (AND LOCATION IF DIFFERENT) +// OF YOUR TITANIUM SDK YOU'RE BUILDING FOR +// +// +TITANIUM_SDK_VERSION = 3.2.3.GA + + +// +// THESE SHOULD BE OK GENERALLY AS-IS +// +TITANIUM_SDK = ~/Library/Application Support/Titanium/mobilesdk/osx/$(TITANIUM_SDK_VERSION) +TITANIUM_BASE_SDK = "$(TITANIUM_SDK)/iphone/include" +TITANIUM_BASE_SDK2 = "$(TITANIUM_SDK)/iphone/include/TiCore" +HEADER_SEARCH_PATHS= $(TITANIUM_BASE_SDK) $(TITANIUM_BASE_SDK2) + + +