Created
August 2, 2011 00:12
-
-
Save jolby/1119294 to your computer and use it in GitHub Desktop.
Revisions
-
jolby created this gist
Aug 2, 2011 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,71 @@ (ns tiexample.core) (defn ^{:export dbg} dbg [s] (js* "Titanium.API.debug(~{s})")) ;;stolen from another gist I saw (defn make-js-map "makes a javascript map from a clojure one" [cljmap] (let [out (js-obj)] (doall (map #(aset out (name (first %)) (if (map? (second %)) (make-js-map (second %)) (second %))) cljmap)) ;;(dbg (str "js map: " (js* "JSON.stringify(~{})" out))) out)) (defn ^{:export create-win} create-win [props] (let [jsprops (make-js-map props)] (js* "Titanium.UI.createWindow(~{jsprops})"))) (defn ^{:export create-tab} create-tab [props] (let [jsprops (make-js-map props)] (js* "Titanium.UI.createTab(~{jsprops})"))) (defn ^{:export create-tab-group} create-tab-group [props] (let [jsprops (make-js-map props)] (js* "Titanium.UI.createTabGroup(~{jsprops})"))) (defn ^{:export create-label} create-label [props] (let [jsprops (make-js-map props)] (js* "Titanium.UI.createLabel(~{jsprops})"))) (defn ^{:export create-tab-win} create-tab-win [win-title label-text] (let [win (create-win {:title win-title :backgroundColor "#fff"}) label (create-label {:color "#999" :text label-text :font {:fontSize 20 :fontFamily "Helvetica Neue"} :textAlign "center" :width "auto"})] (.add win label) win)) (defn ^{:export create-example-tab} create-example-tab [tab-title tab-img win-title label-text] (let [win (create-tab-win win-title label-text) tab (create-tab {:icon tab-img :title tab-title :window win})] tab)) (defn ^{:export create-app-ui} create-app-ui [] (let [tab-group (create-tab-group {}) win1 (create-tab-win "Win 1 Title" "Witness the power of my fully armed and operational Titanium Clojure App") tab1 (create-tab {:icon "KS_nav_views.png" :title "Tab 1" :window win1}) win2 (create-tab-win "Win 2 Title" "Win 2 Label") tab2 (create-tab {:icon "KS_nav_ui.png" :title "Tab 2" :window win2})] (.addTab tab-group tab1) (.addTab tab-group tab2) (comment (dbg (str (js* "JSON.stringify(~{})" tab-group))) (dbg (str (js* "JSON.stringify(~{})" tab1))) (dbg (str (js* "JSON.stringify(~{})" tab2))) (dbg (str (js* "JSON.stringify(~{})" win1))) (dbg (str (js* "JSON.stringify(~{})" win2)))) (dbg "Starting Titanium Clojure App...") (. tab-group (open)))) (create-app-ui)