Mercurial > laserkard
diff js-lib/buy3.js @ 95:5fb202915c11 laserkard
created card template multifunction
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Mon, 26 Jul 2010 21:42:20 -0400 |
parents | 0f19af92260e |
children | a0b768d3494a |
line wrap: on
line diff
1.1 --- a/js-lib/buy3.js Mon Jul 26 20:33:17 2010 -0400 1.2 +++ b/js-lib/buy3.js Mon Jul 26 21:42:20 2010 -0400 1.3 @@ -28,8 +28,15 @@ 1.4 {"bold" : { 1.5 "name" :(function (text, display){ 1.6 return display.print(10,10,text,helvetica, 25).attr( 1.7 - {"fill" : "#FFFFFF"}); 1.8 - })}}; 1.9 + {"fill" : "#0F0"});}), 1.10 + "email" : (function (text, paper){ 1.11 + return paper.print(50,50,text,helvetica_I,40).attr( 1.12 + {"fill" : "red"});}) 1.13 + 1.14 + 1.15 + }}; 1.16 + 1.17 + 1.18 1.19 1.20 1.21 @@ -51,6 +58,26 @@ 1.22 1.23 1.24 // Initilization Functions. 1.25 + var card = 1.26 + {name : {text: "Robert McIntyre", ref: ""}, 1.27 + company : {text: "", ref: ""}, 1.28 + occupation : {text: "", ref: ""}, 1.29 + phone : {text: "", ref: ""}, 1.30 + email : {text: "rlm@mit.edu", ref: ""}, 1.31 + website : {text: "", ref: ""}, 1.32 + decoration : {text: "", ref: ""}}; 1.33 + 1.34 + var card_init = (function () { 1.35 + card.name.ref = display.set(); 1.36 + card.company.ref = display.set(); 1.37 + card.occupation.ref = display.set(); 1.38 + card.phone.ref = display.set(); 1.39 + card.email.ref = display.set(); 1.40 + card.website.ref = display.set(); 1.41 + card.decoration.ref = display.set(); 1.42 + }); 1.43 + 1.44 + 1.45 var order = 1.46 {color : "green", 1.47 style : "bold", 1.48 @@ -181,18 +208,6 @@ 1.49 }); 1.50 1.51 1.52 - var card = 1.53 - {name : {text: "Robert McIntyre", ref: ""}, 1.54 - company : {text: "", ref: ""}, 1.55 - occupation : {text: "", ref: ""}, 1.56 - phone : {text: "", ref: ""}, 1.57 - email : {text: "", ref: ""}, 1.58 - website : {text: "", ref: ""}, 1.59 - decoration : {text: "", ref: ""}}; 1.60 - 1.61 - var card_init = (function () { 1.62 - card.name.ref = display.rect(10,10,10,10,5); 1.63 - }); 1.64 1.65 var key_handling = (function (){ 1.66 var assoc = (function (target, field) { 1.67 @@ -209,17 +224,29 @@ 1.68 1.69 1.70 var display_text_update = (function (){ 1.71 - var name = null; 1.72 + var state = {name : "nothing", 1.73 + phone: "nothing", 1.74 + email: "nothing"}; 1.75 + //what an asinine function... referential transparency blah blah... 1.76 + var deref = (function (var_name){return var_name;}); 1.77 1.78 - var check_text = (function () { 1.79 - if (name !== card.name.text){ 1.80 - card.name.ref.remove(); 1.81 - card.name.ref = Cards[order.style].name(card.name.text, display); 1.82 - name = card.name.text; 1.83 - }}); 1.84 - return check_text; 1.85 - 1.86 - 1.87 + var check_text = (function (var_name) { 1.88 + if (state[deref(var_name)] !== (card[deref(var_name)]).text){ 1.89 + if (Cards[order.style][deref(var_name)]) { 1.90 + card[deref(var_name)].ref.remove(); 1.91 + card[var_name].ref = 1.92 + Cards[order.style][deref(var_name)]( 1.93 + card[deref(var_name)].text,display); 1.94 + state[deref(var_name)] = card[deref(var_name)].text; 1.95 + }}}); 1.96 + 1.97 + return (function (){ 1.98 + check_text("name"); 1.99 + check_text("phone"); 1.100 + check_text("email"); 1.101 + $("#debug").html(JSON.stringify(state)); 1.102 + }); 1.103 + 1.104 })(); 1.105 1.106 1.107 @@ -228,7 +255,7 @@ 1.108 color_select_update(); 1.109 display_color_update(); 1.110 display_text_update(); 1.111 - $("#debug").html(JSON.stringify({name : card.name.text, email : card.email.text})); 1.112 +// $("#debug").html(JSON.stringify({name : card.name.text, email : card.email.text, phone : card.phone.text})); 1.113 }); 1.114 1.115