dragboard: autoindent lib.js and fix ChangeLog
parent
f4c25b9db3
commit
c59262c4bb
|
|
@ -5,6 +5,5 @@
|
||||||
0.05: Now scrolls text when string gets longer than screen width.
|
0.05: Now scrolls text when string gets longer than screen width.
|
||||||
0.06: The code is now more reliable and the input snappier. Widgets will be drawn if present.
|
0.06: The code is now more reliable and the input snappier. Widgets will be drawn if present.
|
||||||
0.07: Settings for display colors
|
0.07: Settings for display colors
|
||||||
some characters.
|
|
||||||
0.08: Catch and discard swipe events on fw2v19 and up (as well as some cutting
|
0.08: Catch and discard swipe events on fw2v19 and up (as well as some cutting
|
||||||
edge 2v18 ones), allowing compatability with the Back Swipe app.
|
edge 2v18 ones), allowing compatability with the Back Swipe app.
|
||||||
|
|
|
||||||
|
|
@ -104,127 +104,127 @@ exports.input = function(options) {
|
||||||
//setTimeout(initDraw, 0); // So Bangle.appRect reads the correct environment. It would draw off to the side sometimes otherwise.
|
//setTimeout(initDraw, 0); // So Bangle.appRect reads the correct environment. It would draw off to the side sometimes otherwise.
|
||||||
|
|
||||||
let dragHandlerDB = function(event) {
|
let dragHandlerDB = function(event) {
|
||||||
"ram";
|
"ram";
|
||||||
// ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
// ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||||
// Choose character by draging along red rectangle at bottom of screen
|
// Choose character by draging along red rectangle at bottom of screen
|
||||||
if (event.y >= ( (R.y+R.h) - 12 )) {
|
if (event.y >= ( (R.y+R.h) - 12 )) {
|
||||||
// Translate x-position to character
|
// Translate x-position to character
|
||||||
if (event.x < ABCPADDING) { abcHL = 0; }
|
if (event.x < ABCPADDING) { abcHL = 0; }
|
||||||
else if (event.x >= 176-ABCPADDING) { abcHL = 25; }
|
else if (event.x >= 176-ABCPADDING) { abcHL = 25; }
|
||||||
else { abcHL = Math.floor((event.x-ABCPADDING)/6); }
|
else { abcHL = Math.floor((event.x-ABCPADDING)/6); }
|
||||||
|
|
||||||
// Datastream for development purposes
|
// Datastream for development purposes
|
||||||
//print(event.x, event.y, event.b, ABC.charAt(abcHL), ABC.charAt(abcHLPrev));
|
//print(event.x, event.y, event.b, ABC.charAt(abcHL), ABC.charAt(abcHLPrev));
|
||||||
|
|
||||||
// Unmark previous character and mark the current one...
|
// Unmark previous character and mark the current one...
|
||||||
// Handling switching between letters and numbers/punctuation
|
// Handling switching between letters and numbers/punctuation
|
||||||
if (typePrev != 'abc') resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
if (typePrev != 'abc') resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
||||||
|
|
||||||
if (abcHL != abcHLPrev) {
|
if (abcHL != abcHLPrev) {
|
||||||
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
||||||
showChars(ABC.charAt(abcHL), abcHL, ABCPADDING, 2);
|
showChars(ABC.charAt(abcHL), abcHL, ABCPADDING, 2);
|
||||||
}
|
}
|
||||||
// Print string at top of screen
|
// Print string at top of screen
|
||||||
if (event.b == 0) {
|
if (event.b == 0) {
|
||||||
text = text + ABC.charAt(abcHL);
|
text = text + ABC.charAt(abcHL);
|
||||||
updateTopString();
|
updateTopString();
|
||||||
|
|
||||||
// Autoswitching letter case
|
// Autoswitching letter case
|
||||||
if (ABC.charAt(abcHL) == ABC.charAt(abcHL).toUpperCase()) changeCase(abcHL);
|
if (ABC.charAt(abcHL) == ABC.charAt(abcHL).toUpperCase()) changeCase(abcHL);
|
||||||
}
|
}
|
||||||
// Update previous character to current one
|
// Update previous character to current one
|
||||||
abcHLPrev = abcHL;
|
abcHLPrev = abcHL;
|
||||||
typePrev = 'abc';
|
typePrev = 'abc';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 12345678901234567890
|
||||||
|
// Choose number or puctuation by draging on green rectangle
|
||||||
|
else if ((event.y < ( (R.y+R.h) - 12 )) && (event.y > ( (R.y+R.h) - 52 ))) {
|
||||||
|
// Translate x-position to character
|
||||||
|
if (event.x < NUMPADDING) { numHL = 0; }
|
||||||
|
else if (event.x > 176-NUMPADDING) { numHL = NUM.length-1; }
|
||||||
|
else { numHL = Math.floor((event.x-NUMPADDING)/6); }
|
||||||
|
|
||||||
|
// Datastream for development purposes
|
||||||
|
//print(event.x, event.y, event.b, NUM.charAt(numHL), NUM.charAt(numHLPrev));
|
||||||
|
|
||||||
|
// Unmark previous character and mark the current one...
|
||||||
|
// Handling switching between letters and numbers/punctuation
|
||||||
|
if (typePrev != 'num') resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
||||||
|
|
||||||
|
if (numHL != numHLPrev) {
|
||||||
|
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
||||||
|
showChars(NUM.charAt(numHL), numHL, NUMPADDING, 4);
|
||||||
|
}
|
||||||
|
// Print string at top of screen
|
||||||
|
if (event.b == 0) {
|
||||||
|
g.setColor(HLCOLOR);
|
||||||
|
// Backspace if releasing before list of numbers/punctuation
|
||||||
|
if (event.x < NUMPADDING) {
|
||||||
|
// show delete sign
|
||||||
|
showChars('del', 0, (R.x+R.w)/2 +6 -27 , 4);
|
||||||
|
delSpaceLast = 1;
|
||||||
|
text = text.slice(0, -1);
|
||||||
|
updateTopString();
|
||||||
|
//print(text);
|
||||||
}
|
}
|
||||||
|
// Append space if releasing after list of numbers/punctuation
|
||||||
// 12345678901234567890
|
else if (event.x > (R.x+R.w)-NUMPADDING) {
|
||||||
// Choose number or puctuation by draging on green rectangle
|
//show space sign
|
||||||
else if ((event.y < ( (R.y+R.h) - 12 )) && (event.y > ( (R.y+R.h) - 52 ))) {
|
showChars('space', 0, (R.x+R.w)/2 +6 -6*3*5/2 , 4);
|
||||||
// Translate x-position to character
|
delSpaceLast = 1;
|
||||||
if (event.x < NUMPADDING) { numHL = 0; }
|
text = text + ' ';
|
||||||
else if (event.x > 176-NUMPADDING) { numHL = NUM.length-1; }
|
updateTopString();
|
||||||
else { numHL = Math.floor((event.x-NUMPADDING)/6); }
|
//print(text);
|
||||||
|
|
||||||
// Datastream for development purposes
|
|
||||||
//print(event.x, event.y, event.b, NUM.charAt(numHL), NUM.charAt(numHLPrev));
|
|
||||||
|
|
||||||
// Unmark previous character and mark the current one...
|
|
||||||
// Handling switching between letters and numbers/punctuation
|
|
||||||
if (typePrev != 'num') resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
|
||||||
|
|
||||||
if (numHL != numHLPrev) {
|
|
||||||
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
|
||||||
showChars(NUM.charAt(numHL), numHL, NUMPADDING, 4);
|
|
||||||
}
|
|
||||||
// Print string at top of screen
|
|
||||||
if (event.b == 0) {
|
|
||||||
g.setColor(HLCOLOR);
|
|
||||||
// Backspace if releasing before list of numbers/punctuation
|
|
||||||
if (event.x < NUMPADDING) {
|
|
||||||
// show delete sign
|
|
||||||
showChars('del', 0, (R.x+R.w)/2 +6 -27 , 4);
|
|
||||||
delSpaceLast = 1;
|
|
||||||
text = text.slice(0, -1);
|
|
||||||
updateTopString();
|
|
||||||
//print(text);
|
|
||||||
}
|
|
||||||
// Append space if releasing after list of numbers/punctuation
|
|
||||||
else if (event.x > (R.x+R.w)-NUMPADDING) {
|
|
||||||
//show space sign
|
|
||||||
showChars('space', 0, (R.x+R.w)/2 +6 -6*3*5/2 , 4);
|
|
||||||
delSpaceLast = 1;
|
|
||||||
text = text + ' ';
|
|
||||||
updateTopString();
|
|
||||||
//print(text);
|
|
||||||
}
|
|
||||||
// Append selected number/punctuation
|
|
||||||
else {
|
|
||||||
text = text + NUMHIDDEN.charAt(numHL);
|
|
||||||
updateTopString();
|
|
||||||
|
|
||||||
// Autoswitching letter case
|
|
||||||
if ((text.charAt(text.length-1) == '.') || (text.charAt(text.length-1) == '!')) changeCase();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Update previous character to current one
|
|
||||||
numHLPrev = numHL;
|
|
||||||
typePrev = 'num';
|
|
||||||
}
|
}
|
||||||
|
// Append selected number/punctuation
|
||||||
|
else {
|
||||||
|
text = text + NUMHIDDEN.charAt(numHL);
|
||||||
|
updateTopString();
|
||||||
|
|
||||||
// Make a space or backspace by swiping right or left on screen above green rectangle
|
// Autoswitching letter case
|
||||||
else if (event.y > 20+4) {
|
if ((text.charAt(text.length-1) == '.') || (text.charAt(text.length-1) == '!')) changeCase();
|
||||||
if (event.b == 0) {
|
|
||||||
g.setColor(HLCOLOR);
|
|
||||||
if (event.x < (R.x+R.w)/2) {
|
|
||||||
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
|
||||||
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
|
||||||
|
|
||||||
// show delete sign
|
|
||||||
showChars('del', 0, (R.x+R.w)/2 +6 -27 , 4);
|
|
||||||
delSpaceLast = 1;
|
|
||||||
|
|
||||||
// Backspace and draw string upper right corner
|
|
||||||
text = text.slice(0, -1);
|
|
||||||
updateTopString();
|
|
||||||
if (text.length==0) changeCase(abcHL);
|
|
||||||
//print(text, 'undid');
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
|
||||||
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
|
||||||
|
|
||||||
//show space sign
|
|
||||||
showChars('space', 0, (R.x+R.w)/2 +6 -6*3*5/2 , 4);
|
|
||||||
delSpaceLast = 1;
|
|
||||||
|
|
||||||
// Append space and draw string upper right corner
|
|
||||||
text = text + NUMHIDDEN.charAt(0);
|
|
||||||
updateTopString();
|
|
||||||
//print(text, 'made space');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
}
|
||||||
|
// Update previous character to current one
|
||||||
|
numHLPrev = numHL;
|
||||||
|
typePrev = 'num';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make a space or backspace by swiping right or left on screen above green rectangle
|
||||||
|
else if (event.y > 20+4) {
|
||||||
|
if (event.b == 0) {
|
||||||
|
g.setColor(HLCOLOR);
|
||||||
|
if (event.x < (R.x+R.w)/2) {
|
||||||
|
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
||||||
|
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
||||||
|
|
||||||
|
// show delete sign
|
||||||
|
showChars('del', 0, (R.x+R.w)/2 +6 -27 , 4);
|
||||||
|
delSpaceLast = 1;
|
||||||
|
|
||||||
|
// Backspace and draw string upper right corner
|
||||||
|
text = text.slice(0, -1);
|
||||||
|
updateTopString();
|
||||||
|
if (text.length==0) changeCase(abcHL);
|
||||||
|
//print(text, 'undid');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resetChars(ABC.charAt(abcHLPrev), abcHLPrev, ABCPADDING, 2, ABCCOLOR);
|
||||||
|
resetChars(NUM.charAt(numHLPrev), numHLPrev, NUMPADDING, 4, NUMCOLOR);
|
||||||
|
|
||||||
|
//show space sign
|
||||||
|
showChars('space', 0, (R.x+R.w)/2 +6 -6*3*5/2 , 4);
|
||||||
|
delSpaceLast = 1;
|
||||||
|
|
||||||
|
// Append space and draw string upper right corner
|
||||||
|
text = text + NUMHIDDEN.charAt(0);
|
||||||
|
updateTopString();
|
||||||
|
//print(text, 'made space');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let catchSwipe = (_,__)=>{
|
let catchSwipe = (_,__)=>{
|
||||||
E.stopEventPropagation&&E.stopEventPropagation();
|
E.stopEventPropagation&&E.stopEventPropagation();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue