UNPKG

@titanium/turbo

Version:

🚀 Turbo is the awesome framework for turbo charging your Titanium cross-platform native mobile app development!

51 lines (41 loc) • 1.57 kB
var _ = require('lodash'), styler = require('../styler'), CU = require('../compilerUtils'), U = require('../../../utils'), tiapp = require('../../../tiapp'), iOSProxy; var MIN_VERSION = '5.4.0'; var systemButtons = [ 'ACTION', 'ACTIVITY', 'ADD', 'BOOKMARKS', 'CAMERA', 'CANCEL', 'COMPOSE', 'CONTACT_ADD', 'DISCLOSURE', 'DONE', 'EDIT', 'FAST_FORWARD', 'FIXED_SPACE', 'FLEXIBLE_SPACE', 'INFO_DARK', 'INFO_LIGHT', 'ORGANIZE', 'PAUSE', 'PLAY', 'REFRESH', 'REPLY', 'REWIND', 'SAVE', 'SPINNER', 'STOP', 'TRASH' ]; exports.parse = function(node, state) { return require('./base').parse(node, state, parse); }; function parse(node, state, args) { // Get button title from node text, if present var nodeText = U.XML.getNodeText(node); if (nodeText) { state.extraStyle = styler.createVariableStyle('title', U.possibleMultilineString(U.trim(nodeText.replace(/'/g, "\\'")))); } if (tiapp.version.gte(tiapp.getSdkVersion(), MIN_VERSION)) { iOSProxy = 'iOS'; } else { iOSProxy = 'iPhone'; } var systemButton = node.getAttribute('systemButton'); if (_.includes(systemButtons, systemButton)) { node.setAttribute('systemButton', 'Ti.UI.' + iOSProxy + '.SystemButton.' + systemButton); } if ( node.hasAttribute('text') ) { node.setAttribute('title', node.getAttribute('text')); node.removeAttribute('text'); } if ( node.getAttribute('verticalAlign') === 'center' ) { node.setAttribute('verticalAlign', 'Titanium.UI.TEXT_VERTICAL_ALIGNMENT_CENTER'); } // Generate runtime code using default return require('./default').parse(node, state); }