Advertisement
thewarpedcoder

Titanium User Case takeScreenShot

Jun 15th, 2011
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.05 KB | None | 0 0
  1. // All source code open Source Copyright 2011
  2. // Code submitted by thewarpedcoder .... trevor@thewarpedcoder.net
  3.  
  4. /* The purpose of the user cases is to define instances of issues / bugs
  5. * with the applications I code.
  6. *
  7. * This user case uses nameSpaces as this is how the main application works,
  8. * and also opens and closes windows as required. It does not have a window
  9. * stack.
  10. */
  11.  
  12. Ti.UI.setBackgroundColor('#ffffff');
  13.  
  14. // Define the NameSpaces
  15. var mainNS = {};
  16. mainNS.event = {};
  17. mainNS.view = {};
  18. mainNS.tool = {};
  19. mainNS.model = {};
  20.  
  21. (function()
  22. {
  23. var mobWidth = Ti.Platform.displayCaps.platformWidth;
  24. var mobHeight = Ti.Platform.displayCaps.platformHeight;
  25. var mobDiv = 1;
  26. var globalCurrScreenImage = null;
  27.  
  28. if (mobWidth < 480)
  29. {
  30. mobDiv = 2;
  31. }
  32. else if (mobWidth < 640)
  33. {
  34. mobDiv = 1.5;
  35. };
  36. if (Ti.Platform.osname == 'android')
  37. {
  38. androidPlatform = true;
  39. }
  40. // Global variable definitions.
  41.  
  42. var globalCurrScreen = null;
  43. var globalPreviousScreen = null;
  44. var globalBackButt = [];
  45.  
  46. var initiateFlag = true;
  47. var iPos = 0;
  48.  
  49. // Functions
  50. function addBackScreen(inFunction)
  51. {
  52. var tmpBackIn = ({INFUNC: inFunction});
  53.  
  54. globalBackButt.push(tmpBackIn);
  55. };
  56. function popGlobalBackButt()
  57. {
  58. globalBackButt.pop();
  59. };
  60. // Events ....
  61.  
  62. mainNS.event.closeTheApp = function(evt)
  63. {
  64. if (Ti.Platform.osname == 'android')
  65. {
  66. globalPreviousScreen = globalCurrScreen;
  67. mainNS.view.closeScreenWindow().open();
  68. }
  69. };
  70. mainNS.event.closeTheAppFrig = function(evt)
  71. {
  72. globalPreviousScreen.close();
  73. globalCurrScreen.close();
  74. }
  75. mainNS.event.loadBackScreenHandler = function(evt)
  76. {
  77. iPos = ((globalBackButt.length - 2) < 0) ? 0 : (globalBackButt.length - 2);
  78.  
  79. if (globalBackButt.length <= 1)
  80. {
  81. mainNS.event.closeTheApp({});
  82. }
  83. else
  84. {
  85. if (iPos >= 0)
  86. {
  87. var tmp1 = globalBackButt[iPos].INFUNC;
  88.  
  89. if (tmp1)
  90. {
  91. if(globalBackButt.length > 1)
  92. {
  93. popGlobalBackButt();
  94. };
  95. eval(tmp1 + '({BACK: ' + "true" + '});');
  96. }
  97. };
  98. };
  99. };
  100. mainNS.event.loadHomeScreen = function(evt)
  101. {
  102. globalPreviousScreen = globalCurrScreen;
  103.  
  104. if (!evt.BACK)
  105. {
  106. addBackScreen("mainNS.event.loadHomeScreen");
  107. }
  108. mainNS.view.loadHomeScreenWindow().open();
  109.  
  110. if (!initiateFlag)
  111. {
  112. globalPreviousScreen.close();
  113. initiateFlag = false;
  114. }
  115. };
  116. mainNS.event.loadCameraScreen = function(evt)
  117. {
  118. globalPreviousScreen = globalCurrScreen;
  119.  
  120. if (!evt.BACK)
  121. {
  122. addBackScreen("mainNS.event.loadCameraScreen");
  123. }
  124. mainNS.view.loadCameraScreenWindow().open();
  125.  
  126. globalPreviousScreen.close();
  127.  
  128. initiateFlag = false;
  129.  
  130. mainNS.view.showTheCamera();
  131. };
  132. mainNS.event.loadDisplayCameraScreenShotWin = function(evt)
  133. {
  134. globalPreviousScreen = globalCurrScreen;
  135.  
  136. if (!evt.BACK)
  137. {
  138. addBackScreen("mainNS.event.loadDisplayCameraScreenShotWin");
  139. }
  140. mainNS.view.createDisplayScreenShotWindow().open();
  141.  
  142. globalPreviousScreen.close();
  143. };
  144. // Screen Tools
  145.  
  146. mainNS.tool.appNavigationBar = function(evt)
  147. {
  148. var navigationBar = Ti.UI.createView
  149. ({
  150. bottom: 0,
  151. height: 70 / mobDiv,
  152. right: 0,
  153. backgroundColor: "#000000",
  154. opacity: 0.75
  155. });
  156. var tmpHColor = (evt.SCREEN == 'HOME') ? "#FF0000" : "#FFFFFF";
  157. var tmpCColor = (evt.SCREEN == 'CAMERA') ? "#FF0000" : "#FFFFFF";
  158. var tmpBColor = (globalBackButt.length > 1) ? "#FFFFFF" : "#444444";
  159.  
  160. var navBarHomeBtn = Ti.UI.createView
  161. ({
  162. left: 5,
  163. width: 90 / mobDiv,
  164. height: 70 / mobDiv,
  165. top: 0,
  166. backgroundColor: "#000000",
  167. borderColor: "#FFFFFF",
  168. borderWidth: 2
  169. });
  170. var navBarHomeBtnText = Ti.UI.createLabel
  171. ({
  172. width: 90 / mobDiv,
  173. text: "HOME",
  174. color: tmpHColor,
  175. textAlign: 'center',
  176. font: {fontSize: 10}
  177. });
  178. navBarHomeBtn.add(navBarHomeBtnText);
  179. navigationBar.add(navBarHomeBtn);
  180.  
  181. var navBarCameraBtn = Ti.UI.createView
  182. ({
  183. left: 100 / mobDiv,
  184. width: 90 / mobDiv,
  185. height: 70 / mobDiv,
  186. top: 0,
  187. backgroundColor: "#000000",
  188. borderColor: "#FFFFFF",
  189. borderWidth: 2
  190. });
  191. var navBarCameraBtnText = Ti.UI.createLabel
  192. ({
  193. width: 90 / mobDiv,
  194. text: "CAMERA",
  195. color: tmpCColor,
  196. textAlign: 'center',
  197. font: {fontSize: 10}
  198. });
  199. navBarCameraBtn.add(navBarCameraBtnText);
  200. navigationBar.add(navBarCameraBtn);
  201.  
  202. var navBarBackBtn = Ti.UI.createView
  203. ({
  204. left: 200 / mobDiv,
  205. width: 90 / mobDiv,
  206. height: 70 / mobDiv,
  207. top: 0,
  208. backgroundColor: "#000000",
  209. borderColor: "#FFFFFF",
  210. borderWidth: 2
  211. });
  212. var navBarBackBtnText = Ti.UI.createLabel
  213. ({
  214. width: 90 / mobDiv,
  215. text: "BACK",
  216. color: tmpBColor,
  217. textAlign: 'center',
  218. font: {fontSize: 10}
  219. });
  220. navBarBackBtn.add(navBarBackBtnText);
  221. navigationBar.add(navBarBackBtn);
  222.  
  223. var navBarPicBtn = Ti.UI.createView
  224. ({
  225. right: 220 / mobDiv,
  226. width: 90 / mobDiv,
  227. height: 70 / mobDiv,
  228. top: 0,
  229. backgroundColor: "#000000",
  230. borderColor: "#FFFFFF",
  231. borderWidth: 2
  232. });
  233. var navBarPicBtnText = Ti.UI.createLabel
  234. ({
  235. width: 90 / mobDiv,
  236. text: "TAKE PIC",
  237. color: "#FFFFFF",
  238. textAlign: 'center',
  239. font: {fontSize: 10}
  240. });
  241. navBarPicBtn.add(navBarPicBtnText);
  242. navigationBar.add(navBarPicBtn);
  243.  
  244. var navBarCloseBtn = Ti.UI.createView
  245. ({
  246. right: 10 / mobDiv,
  247. width: 90 / mobDiv,
  248. height: 70 / mobDiv,
  249. top: 0,
  250. backgroundColor: "#000000",
  251. borderColor: "#FFFFFF",
  252. borderWidth: 2
  253. });
  254. var navBarCloseBtnText = Ti.UI.createLabel
  255. ({
  256. width: 90 / mobDiv,
  257. text: "CLOSE",
  258. color: "#FFFFFF",
  259. textAlign: 'center',
  260. font: {fontSize: 10}
  261. });
  262. navBarCloseBtn.add(navBarCloseBtnText);
  263. navigationBar.add(navBarCloseBtn);
  264.  
  265. if (evt.SCREEN != 'HOME') {navBarHomeBtn.addEventListener('click', function() {mainNS.event.loadHomeScreen({});} ); };
  266. if (evt.SCREEN != 'CAMERA') {navBarCameraBtn.addEventListener('click', function() {mainNS.event.loadCameraScreen({});} ); };
  267. if (globalBackButt.length > 1) {navBarBackBtn.addEventListener('click', function() {mainNS.event.loadBackScreenHandler({});} ); };
  268.  
  269. navBarPicBtn.addEventListener('click', function()
  270. {
  271. Ti.Media.takeScreenshot(function(event)
  272. {
  273. globalCurrScreenImage = event.media;
  274.  
  275. mainNS.event.loadDisplayCameraScreenShotWin({});
  276. });
  277. });
  278. navBarCloseBtn.addEventListener('click', function() {mainNS.event.closeTheApp({})} );
  279.  
  280. return navigationBar;
  281. };
  282. // Screens ....
  283.  
  284. mainNS.view.loadHomeScreenWindow = function()
  285. {
  286. var mainMenuWin = Ti.UI.createWindow
  287. ({
  288. navBarHidden: true,
  289. backgroundColor: "#FFFFFF"
  290. });
  291. var mainMenuWinLabel = Ti.UI.createLabel
  292. ({
  293. width: 200,
  294. text: "HOME SCREEN",
  295. color: "#000000",
  296. textAlign: 'center',
  297. font: {fontSize: 30}
  298. });
  299. mainMenuWin.add(mainMenuWinLabel);
  300.  
  301. globalCurrScreen = mainMenuWin;
  302.  
  303. var navBarData = {SCREEN: "HOME"};
  304.  
  305. var navBar = mainNS.tool.appNavigationBar(navBarData);
  306.  
  307. mainMenuWin.add(navBar);
  308.  
  309. if (Ti.Platform.osname == 'android')
  310. {
  311. mainMenuWin.addEventListener('android:back', function() {mainNS.event.loadBackScreenHandler({});} );
  312. };
  313. return mainMenuWin;
  314. };
  315. mainNS.view.loadCameraScreenWindow = function()
  316. {
  317. var cameraScreenWin = Ti.UI.createWindow
  318. ({
  319. navBarHidden: true,
  320. backgroundColor: "#FFFFFF"
  321. });
  322. globalCurrScreen = cameraScreenWin;
  323.  
  324. if (Ti.Platform.osname == 'android')
  325. {
  326. cameraScreenWin.addEventListener('android:back', function() {mainNS.event.loadBackScreenHandler({});} );
  327. };
  328. cameraScreenWin.addEventListener('close', function() { Ti.Media.hideCamera(); });
  329.  
  330. return cameraScreenWin;
  331. };
  332. mainNS.view.showTheCamera = function()
  333. {
  334. var displayVoucherOverlayView = Ti.UI.createView
  335. ({
  336. top: 0,
  337. bottom: 0,
  338. left: 0,
  339. right: 0,
  340. opacity: 0.75
  341. });
  342. var navBarData = {SCREEN: "CAMERA"};
  343.  
  344. var navBar = mainNS.tool.appNavigationBar(navBarData);
  345.  
  346. displayVoucherOverlayView.add(navBar);
  347.  
  348. var cameraTransform = Ti.UI.create2DMatrix();
  349. cameraTransform = cameraTransform.scale(2);
  350.  
  351. Ti.Media.showCamera
  352. ({
  353. success: function(event) {},
  354. cancel: function() {},
  355. error: function(error)
  356. {
  357. if (error.code == Ti.Media.NO_CAMERA)
  358. {
  359. alert("NO CAMERA");
  360. }
  361. else
  362. {
  363. alert("CAMERA ERROR");
  364. }
  365. },
  366. mediaTypes: [Ti.Media.MEDIA_TYPE_VIDEO,Ti.Media.MEDIA_TYPE_PHOTO],
  367. showControls: false,
  368. autohide: false,
  369. transform: cameraTransform,
  370. overlay: displayVoucherOverlayView
  371. });
  372. };
  373. mainNS.view.createDisplayScreenShotWindow = function()
  374. {
  375. var displayScreenShotWin = Ti.UI.createWindow
  376. ({
  377. navBarHidden: true,
  378. backgroundColor: "#FFFFFF"
  379. });
  380. var displayScreenShotImage = Ti.UI.createImageView
  381. ({
  382. top: 75,
  383. bottom: 75,
  384. image: globalCurrScreenImage
  385. });
  386. displayScreenShotWin.add(displayScreenShotImage);
  387.  
  388. globalCurrScreen = displayScreenShotWin;
  389.  
  390. var navBarData = {SCREEN: "HOME"};
  391.  
  392. var navBar = mainNS.tool.appNavigationBar(navBarData);
  393.  
  394. displayScreenShotWin.add(navBar);
  395.  
  396. if (Ti.Platform.osname == 'android')
  397. {
  398. displayScreenShotWin.addEventListener('android:back', function() {mainNS.event.createDisplayScreenShotWindow({});} );
  399. };
  400. return displayScreenShotWin;
  401. };
  402. mainNS.view.closeScreenWindow = function()
  403. {
  404. var closeScreenWin = Ti.UI.createWindow
  405. ({
  406. navBarHidden: true,
  407. exitOnClose: true
  408. });
  409. globalCurrScreen = closeScreenWin;
  410.  
  411. closeScreenWin.addEventListener('open', function() {mainNS.event.closeTheAppFrig({});} );
  412.  
  413. return closeScreenWin;
  414. };
  415. // Initial Launch
  416. mainNS.event.loadHomeScreen({});
  417.  
  418. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement