Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Committing example Titanium project.

  • Loading branch information...
commit f4e868e7b918bc2cffd22ad227950e16e72d5594 1 parent faf26f0
Russ Frank authored November 11, 2011
219  example/LICENSE
... ...
@@ -0,0 +1,219 @@
  1
+Copyright 2009 Appcelerator, Inc.
  2
+
  3
+   Licensed under the Apache License, Version 2.0 (the "License");
  4
+   you may not use this file except in compliance with the License.
  5
+   You may obtain a copy of the License at
  6
+
  7
+       http://www.apache.org/licenses/LICENSE-2.0
  8
+
  9
+   (or the full text of the license is below)
  10
+
  11
+   Unless required by applicable law or agreed to in writing, software
  12
+   distributed under the License is distributed on an "AS IS" BASIS,
  13
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14
+   See the License for the specific language governing permissions and
  15
+   limitations under the License.
  16
+
  17
+
  18
+
  19
+                              Apache License
  20
+                        Version 2.0, January 2004
  21
+                     http://www.apache.org/licenses/
  22
+
  23
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
  24
+
  25
+1. Definitions.
  26
+
  27
+   "License" shall mean the terms and conditions for use, reproduction,
  28
+   and distribution as defined by Sections 1 through 9 of this document.
  29
+
  30
+   "Licensor" shall mean the copyright owner or entity authorized by
  31
+   the copyright owner that is granting the License.
  32
+
  33
+   "Legal Entity" shall mean the union of the acting entity and all
  34
+   other entities that control, are controlled by, or are under common
  35
+   control with that entity. For the purposes of this definition,
  36
+   "control" means (i) the power, direct or indirect, to cause the
  37
+   direction or management of such entity, whether by contract or
  38
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
  39
+   outstanding shares, or (iii) beneficial ownership of such entity.
  40
+
  41
+   "You" (or "Your") shall mean an individual or Legal Entity
  42
+   exercising permissions granted by this License.
  43
+
  44
+   "Source" form shall mean the preferred form for making modifications,
  45
+   including but not limited to software source code, documentation
  46
+   source, and configuration files.
  47
+
  48
+   "Object" form shall mean any form resulting from mechanical
  49
+   transformation or translation of a Source form, including but
  50
+   not limited to compiled object code, generated documentation,
  51
+   and conversions to other media types.
  52
+
  53
+   "Work" shall mean the work of authorship, whether in Source or
  54
+   Object form, made available under the License, as indicated by a
  55
+   copyright notice that is included in or attached to the work
  56
+   (an example is provided in the Appendix below).
  57
+
  58
+   "Derivative Works" shall mean any work, whether in Source or Object
  59
+   form, that is based on (or derived from) the Work and for which the
  60
+   editorial revisions, annotations, elaborations, or other modifications
  61
+   represent, as a whole, an original work of authorship. For the purposes
  62
+   of this License, Derivative Works shall not include works that remain
  63
+   separable from, or merely link (or bind by name) to the interfaces of,
  64
+   the Work and Derivative Works thereof.
  65
+
  66
+   "Contribution" shall mean any work of authorship, including
  67
+   the original version of the Work and any modifications or additions
  68
+   to that Work or Derivative Works thereof, that is intentionally
  69
+   submitted to Licensor for inclusion in the Work by the copyright owner
  70
+   or by an individual or Legal Entity authorized to submit on behalf of
  71
+   the copyright owner. For the purposes of this definition, "submitted"
  72
+   means any form of electronic, verbal, or written communication sent
  73
+   to the Licensor or its representatives, including but not limited to
  74
+   communication on electronic mailing lists, source code control systems,
  75
+   and issue tracking systems that are managed by, or on behalf of, the
  76
+   Licensor for the purpose of discussing and improving the Work, but
  77
+   excluding communication that is conspicuously marked or otherwise
  78
+   designated in writing by the copyright owner as "Not a Contribution."
  79
+
  80
+   "Contributor" shall mean Licensor and any individual or Legal Entity
  81
+   on behalf of whom a Contribution has been received by Licensor and
  82
+   subsequently incorporated within the Work.
  83
+
  84
+2. Grant of Copyright License. Subject to the terms and conditions of
  85
+   this License, each Contributor hereby grants to You a perpetual,
  86
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  87
+   copyright license to reproduce, prepare Derivative Works of,
  88
+   publicly display, publicly perform, sublicense, and distribute the
  89
+   Work and such Derivative Works in Source or Object form.
  90
+
  91
+3. Grant of Patent License. Subject to the terms and conditions of
  92
+   this License, each Contributor hereby grants to You a perpetual,
  93
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
  94
+   (except as stated in this section) patent license to make, have made,
  95
+   use, offer to sell, sell, import, and otherwise transfer the Work,
  96
+   where such license applies only to those patent claims licensable
  97
+   by such Contributor that are necessarily infringed by their
  98
+   Contribution(s) alone or by combination of their Contribution(s)
  99
+   with the Work to which such Contribution(s) was submitted. If You
  100
+   institute patent litigation against any entity (including a
  101
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
  102
+   or a Contribution incorporated within the Work constitutes direct
  103
+   or contributory patent infringement, then any patent licenses
  104
+   granted to You under this License for that Work shall terminate
  105
+   as of the date such litigation is filed.
  106
+
  107
+4. Redistribution. You may reproduce and distribute copies of the
  108
+   Work or Derivative Works thereof in any medium, with or without
  109
+   modifications, and in Source or Object form, provided that You
  110
+   meet the following conditions:
  111
+
  112
+   (a) You must give any other recipients of the Work or
  113
+       Derivative Works a copy of this License; and
  114
+
  115
+   (b) You must cause any modified files to carry prominent notices
  116
+       stating that You changed the files; and
  117
+
  118
+   (c) You must retain, in the Source form of any Derivative Works
  119
+       that You distribute, all copyright, patent, trademark, and
  120
+       attribution notices from the Source form of the Work,
  121
+       excluding those notices that do not pertain to any part of
  122
+       the Derivative Works; and
  123
+
  124
+   (d) If the Work includes a "NOTICE" text file as part of its
  125
+       distribution, then any Derivative Works that You distribute must
  126
+       include a readable copy of the attribution notices contained
  127
+       within such NOTICE file, excluding those notices that do not
  128
+       pertain to any part of the Derivative Works, in at least one
  129
+       of the following places: within a NOTICE text file distributed
  130
+       as part of the Derivative Works; within the Source form or
  131
+       documentation, if provided along with the Derivative Works; or,
  132
+       within a display generated by the Derivative Works, if and
  133
+       wherever such third-party notices normally appear. The contents
  134
+       of the NOTICE file are for informational purposes only and
  135
+       do not modify the License. You may add Your own attribution
  136
+       notices within Derivative Works that You distribute, alongside
  137
+       or as an addendum to the NOTICE text from the Work, provided
  138
+       that such additional attribution notices cannot be construed
  139
+       as modifying the License.
  140
+
  141
+   You may add Your own copyright statement to Your modifications and
  142
+   may provide additional or different license terms and conditions
  143
+   for use, reproduction, or distribution of Your modifications, or
  144
+   for any such Derivative Works as a whole, provided Your use,
  145
+   reproduction, and distribution of the Work otherwise complies with
  146
+   the conditions stated in this License.
  147
+
  148
+5. Submission of Contributions. Unless You explicitly state otherwise,
  149
+   any Contribution intentionally submitted for inclusion in the Work
  150
+   by You to the Licensor shall be under the terms and conditions of
  151
+   this License, without any additional terms or conditions.
  152
+   Notwithstanding the above, nothing herein shall supersede or modify
  153
+   the terms of any separate license agreement you may have executed
  154
+   with Licensor regarding such Contributions.
  155
+
  156
+6. Trademarks. This License does not grant permission to use the trade
  157
+   names, trademarks, service marks, or product names of the Licensor,
  158
+   except as required for reasonable and customary use in describing the
  159
+   origin of the Work and reproducing the content of the NOTICE file.
  160
+
  161
+7. Disclaimer of Warranty. Unless required by applicable law or
  162
+   agreed to in writing, Licensor provides the Work (and each
  163
+   Contributor provides its Contributions) on an "AS IS" BASIS,
  164
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
  165
+   implied, including, without limitation, any warranties or conditions
  166
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
  167
+   PARTICULAR PURPOSE. You are solely responsible for determining the
  168
+   appropriateness of using or redistributing the Work and assume any
  169
+   risks associated with Your exercise of permissions under this License.
  170
+
  171
+8. Limitation of Liability. In no event and under no legal theory,
  172
+   whether in tort (including negligence), contract, or otherwise,
  173
+   unless required by applicable law (such as deliberate and grossly
  174
+   negligent acts) or agreed to in writing, shall any Contributor be
  175
+   liable to You for damages, including any direct, indirect, special,
  176
+   incidental, or consequential damages of any character arising as a
  177
+   result of this License or out of the use or inability to use the
  178
+   Work (including but not limited to damages for loss of goodwill,
  179
+   work stoppage, computer failure or malfunction, or any and all
  180
+   other commercial damages or losses), even if such Contributor
  181
+   has been advised of the possibility of such damages.
  182
+
  183
+9. Accepting Warranty or Additional Liability. While redistributing
  184
+   the Work or Derivative Works thereof, You may choose to offer,
  185
+   and charge a fee for, acceptance of support, warranty, indemnity,
  186
+   or other liability obligations and/or rights consistent with this
  187
+   License. However, in accepting such obligations, You may act only
  188
+   on Your own behalf and on Your sole responsibility, not on behalf
  189
+   of any other Contributor, and only if You agree to indemnify,
  190
+   defend, and hold each Contributor harmless for any liability
  191
+   incurred by, or claims asserted against, such Contributor by reason
  192
+   of your accepting any such warranty or additional liability.
  193
+
  194
+END OF TERMS AND CONDITIONS
  195
+
  196
+APPENDIX: How to apply the Apache License to your work.
  197
+
  198
+   To apply the Apache License to your work, attach the following
  199
+   boilerplate notice, with the fields enclosed by brackets "[]"
  200
+   replaced with your own identifying information. (Don't include
  201
+   the brackets!)  The text should be enclosed in the appropriate
  202
+   comment syntax for the file format. We also recommend that a
  203
+   file or class name and description of purpose be included on the
  204
+   same "printed page" as the copyright notice for easier
  205
+   identification within third-party archives.
  206
+
  207
+Copyright [yyyy] [name of copyright owner]
  208
+
  209
+Licensed under the Apache License, Version 2.0 (the "License");
  210
+you may not use this file except in compliance with the License.
  211
+You may obtain a copy of the License at
  212
+
  213
+    http://www.apache.org/licenses/LICENSE-2.0
  214
+
  215
+Unless required by applicable law or agreed to in writing, software
  216
+distributed under the License is distributed on an "AS IS" BASIS,
  217
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  218
+See the License for the specific language governing permissions and
  219
+limitations under the License.
18  example/README
... ...
@@ -0,0 +1,18 @@
  1
+Welcome to your Appcelerator Titanium Mobile Project
  2
+
  3
+This is a blank project.  Start by editing your application's app.js to 
  4
+make your first mobile project using Titanium.
  5
+
  6
+
  7
+
  8
+----------------------------------
  9
+Stuff our legal folk make us say:
  10
+
  11
+Appcelerator, Appcelerator Titanium and associated marks and logos are 
  12
+trademarks of Appcelerator, Inc. 
  13
+
  14
+Titanium is Copyright (c) 2009-2010 by Appcelerator, Inc. All Rights Reserved.
  15
+
  16
+Titanium is licensed under the Apache Public License (Version 2). Please
  17
+see the LICENSE file for the full license.
  18
+
10  example/Resources/app.js
... ...
@@ -0,0 +1,10 @@
  1
+Ti.include('tylus.js');
  2
+T.load('style');
  3
+var win, label;
  4
+
  5
+win = T.Window();
  6
+label = T.Label();
  7
+
  8
+win.add(label);
  9
+
  10
+win.open();
11  example/Resources/app.styl
... ...
@@ -0,0 +1,11 @@
  1
+Window
  2
+   backgroundColor white
  3
+
  4
+Label
  5
+   size
  6
+      width 100
  7
+      height 100
  8
+   [device=iphone]
  9
+      text 'Hello from iphone'
  10
+   [device=ipad]
  11
+      text 'hello from iPad'
BIN  example/Resources/iphone/Default-Landscape.png
BIN  example/Resources/iphone/Default-Portrait.png
BIN  example/Resources/iphone/Default.png
BIN  example/Resources/iphone/Default@2x.png
BIN  example/Resources/iphone/appicon.png
199  example/Resources/tylus.js
... ...
@@ -0,0 +1,199 @@
  1
+/* Class: T
  2
+ * Main tylus namespace.
  3
+ */
  4
+var T = (function () {
  5
+   var exports = {},
  6
+       styles = {},
  7
+       device = Ti.Platform.osname,
  8
+       ctorMap;
  9
+
  10
+   // map nice names to ugly titanium factory names
  11
+   ctorMap = {
  12
+      Matrix2D    : 'create2DMatrix',
  13
+      Matrix3D    : 'create3DMatrix',
  14
+      Indicator   : 'createActivityIndicator',
  15
+      AlertDialog : 'createAlertDialog',
  16
+      Animation   : 'createAnimation',
  17
+      Button      : 'createButton',
  18
+      ButtonBar   : 'createButtonBar',
  19
+      CoverFlow   : 'createCoverFlow',
  20
+      DashItem    : 'createDashboardItem',
  21
+      Dash        : 'createDashView',
  22
+      EmailDialog : 'createEmailDialog',
  23
+      Image       : 'createImageView',
  24
+      OptionDialog: 'createOptionDialog',
  25
+      Label       : 'createLabel',
  26
+      Picker      : 'createPicker',
  27
+      PickerRow   : 'createPickerRow',
  28
+      PickerCol   : 'createPickerCol',
  29
+      ProgressBar : 'createProgressBar',
  30
+      Scroll      : 'createScrollView',
  31
+      Scrollable  : 'createScrollableView',
  32
+      SearchBar   : 'createSearchBar',
  33
+      Slider      : 'createSlider',
  34
+      Switch      : 'createSwitch',
  35
+      Tab         : 'createTab', 
  36
+      TabGroup    : 'createTabGroup',
  37
+      TabbedBar   : 'createTabbedBar',
  38
+      Table       : 'createTableView',
  39
+      TableRow    : 'createTableViewRow',
  40
+      TableSection: 'createTableViewSection',
  41
+      TextArea    : 'createTextArea',
  42
+      TextField   : 'createTextField',
  43
+      Toolbar     : 'createToolbar',
  44
+      View        : 'createView',
  45
+      Web         : 'createWebView',
  46
+      Window      : 'createWindow'
  47
+   };
  48
+
  49
+   /* Function: combineSelectors
  50
+    * Combines selectors into a string to use for searching with getProps
  51
+    *
  52
+    * Parameters:
  53
+    *    type     - *string* type of the item, such as Label, DashItem, Window,
  54
+    *               etc
  55
+    *    args     - *object* with id, className, classes, or classNames
  56
+    *               properties which will be used to resolve to styles
  57
+    *
  58
+    * Returns:
  59
+    *    *array* of selectors to be searched in the style tree
  60
+    */   
  61
+   function combineSelectors (type, args) {
  62
+      var out = [], c;
  63
+      out.push(type);
  64
+      if (args.id) {
  65
+         out.push('#' + args.id);
  66
+      }
  67
+      if (args.className) {
  68
+         out.push('.' + args.className);
  69
+      }
  70
+      if (c = args.classes || args.classNames) {
  71
+         c.forEach(function (value) {
  72
+            out.push('.' + value);
  73
+         });
  74
+      }
  75
+      return out;
  76
+   }
  77
+
  78
+   /* Function: extend
  79
+    * Extends an object with the properties of another.  Not guarded against
  80
+    * additions to Object.prototype, but you shouldn't be doing that anyway.
  81
+    *
  82
+    * Parameters:
  83
+    *    to    - *object* to put properties into
  84
+    *    from  - *object* to take properties from
  85
+    */
  86
+   function extend (to, from) {
  87
+      var item;
  88
+      for (item in from) {
  89
+         if (typeof from[item] === 'object' && from[item] !== null) {
  90
+            to[item] = to[item] || {}; 
  91
+            extend(to[item], from[item]); // recurse                                                
  92
+         } else {
  93
+            to[item] = from[item];
  94
+         }   
  95
+      }         
  96
+   }    
  97
+
  98
+   /* Function: getProps
  99
+    * Gets the properties for a given type and argument string.  If args.style
  100
+    * is specified, uses that for the search (should look like
  101
+    * '#id .class1 .class2'.  If args.style is undefined, uses combineSelectors
  102
+    * to find a list of selectors to use.  Then, searches the tree for styles
  103
+    * and returns them.
  104
+    *
  105
+    * Parameters:
  106
+    *    type     - *string* type of the item, such as Label, DashItem, Window
  107
+    *    args     - *string* args passed to factory, should have either style
  108
+    *               property or id/classes/classNames/className for style
  109
+    *               retreival.
  110
+    *
  111
+    * Returns:
  112
+    *    *object* properties to be added into the new object.
  113
+    */
  114
+   function getProps (type, args) {
  115
+      var selectors, out = {}, i, j, curr, style;
  116
+      if (typeof args.style === 'string') {
  117
+         selectors = args.style.split(' ');
  118
+         selectors.unshift(type);
  119
+      } else {
  120
+         selectors = combineSelectors(type, args);
  121
+      }
  122
+      for (i = 0; i < selectors.length; i++) {
  123
+         j = i;
  124
+         curr = selectors[i];
  125
+         style = styles;
  126
+         while (style !== undefined) {
  127
+            if (style.self !== undefined) {
  128
+               extend(out, style.self);
  129
+            }
  130
+            if (style.device !== undefined &&
  131
+                style.device[device] && 
  132
+                style.device[device].self) {
  133
+                  extend(out, style.device[device].self);
  134
+            }
  135
+            // walk down the tree
  136
+            style = style[curr];
  137
+            // move to the next selector
  138
+            j += 1;
  139
+            curr = selectors[j];
  140
+         }
  141
+      }
  142
+      return out;
  143
+   }
  144
+
  145
+   /* Function: load
  146
+    * Loads styles out of a .js file via commonjs require
  147
+    *
  148
+    * Parameters:
  149
+    *    name     - *string* name of the .js file
  150
+    */
  151
+   function load (name) {
  152
+      styles = require(name).styles;
  153
+   }
  154
+
  155
+   /* Function: makeCtor
  156
+    * Makes a functional constructor for a Titanium object, getting properties
  157
+    * first from the style information
  158
+    *
  159
+    * Parameters:
  160
+    *    name     - *string* nice name of the Titanium object
  161
+    *
  162
+    * Returns:
  163
+    *    *function (args)* factory method which tries to get properties first
  164
+    */
  165
+   function makeCtor (name) {
  166
+      return function (args) {
  167
+         args = args || {};
  168
+         var style = getProps(name, args);
  169
+         extend(style, args);
  170
+         return Ti.UI[ctorMap[name]](style);
  171
+      };
  172
+   }
  173
+
  174
+   /* Function: apply
  175
+    * Applies style information into obj.
  176
+    *
  177
+    * Parameters:
  178
+    *    obj      - *object* to add properties into
  179
+    *    type     - *string* type of ti object, like Label
  180
+    *    style    - *object* describing styles to be inserted.  Should look
  181
+    *               like {style: '#id .class1'} or {id: 'someid', className: 
  182
+    *               'class1'}.
  183
+    */
  184
+   function apply (obj, type, style) {
  185
+      style = getProps(type, style);
  186
+      extend(obj, style);
  187
+   }
  188
+
  189
+   var name;
  190
+   for (name in ctorMap) {
  191
+      exports[name] = makeCtor(name);
  192
+   }
  193
+
  194
+   exports.apply = apply;
  195
+   exports.load = load;
  196
+
  197
+   return exports;
  198
+}());
  199
+
21  example/plugins/tylus/plugin.py
... ...
@@ -0,0 +1,21 @@
  1
+#!/usr/bin/env python
  2
+
  3
+import subprocess
  4
+
  5
+# this simple plugin will just run tylus (expected to be in path) on your
  6
+# Resources dir.  Assuming you have your js setup correctly, this will update
  7
+# the styles you use inyour app
  8
+
  9
+def compile(config):
  10
+   # run the command
  11
+   command = ["tylus", config['project_dir'] + '/Resources']
  12
+   proc = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
  13
+   out, err = proc.communicate()
  14
+   code = proc.returncode
  15
+   # if the code is nonzero, raise an Exception to stop the build process
  16
+   if code != 0 :
  17
+      print err
  18
+      raise Exception('Stylus compile failed, check output')
  19
+   # otherwise, just print the stdout of the process
  20
+   else :
  21
+      print out
37  example/tiapp.xml
... ...
@@ -0,0 +1,37 @@
  1
+<?xml version="1.0" encoding="UTF-8"?>
  2
+<ti:app xmlns:ti="http://ti.appcelerator.org">
  3
+    <id>tylus</id>
  4
+    <name>tylus example</name>
  5
+    <version>1.0</version>
  6
+    <publisher>not specified</publisher>
  7
+    <url>not specified</url>
  8
+    <description>not specified</description>
  9
+    <copyright>not specified</copyright>
  10
+    <icon>appicon.png</icon>
  11
+    <persistent-wifi>false</persistent-wifi>
  12
+    <prerendered-icon>false</prerendered-icon>
  13
+    <statusbar-style>default</statusbar-style>
  14
+    <statusbar-hidden>false</statusbar-hidden>
  15
+    <fullscreen>false</fullscreen>
  16
+    <navbar-hidden>false</navbar-hidden>
  17
+    <analytics>true</analytics>
  18
+    <guid></guid>
  19
+	<iphone>
  20
+		<orientations device="iphone">
  21
+			<orientation>Ti.UI.PORTRAIT</orientation>
  22
+		</orientations>
  23
+		<orientations device="ipad">
  24
+			<orientation>Ti.UI.PORTRAIT</orientation>
  25
+			<orientation>Ti.UI.UPSIDE_PORTRAIT</orientation>
  26
+			<orientation>Ti.UI.LANDSCAPE_LEFT</orientation>
  27
+			<orientation>Ti.UI.LANDSCAPE_RIGHT</orientation>
  28
+		</orientations>
  29
+	</iphone>
  30
+	<android xmlns:android="http://schemas.android.com/apk/res/android">
  31
+	</android>
  32
+	<modules>
  33
+	</modules>
  34
+   <plugins>
  35
+      <plugin version="0.0">tylus</plugin>
  36
+   </plugins>
  37
+</ti:app>

0 notes on commit f4e868e

Please sign in to comment.
Something went wrong with that request. Please try again.