From f520a2479f3d471c830e14373bf84574acd32763 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 6 May 2014 23:57:53 -0400 Subject: touch up modifier circle dimensions --- src/us/minak/IMEModifiers.java | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/us/minak/IMEModifiers.java') diff --git a/src/us/minak/IMEModifiers.java b/src/us/minak/IMEModifiers.java index ef49f17..d4cc6d3 100644 --- a/src/us/minak/IMEModifiers.java +++ b/src/us/minak/IMEModifiers.java @@ -25,13 +25,15 @@ public class IMEModifiers { public void draw(Canvas canvas, float cx, float cy, float r) { this.cx = cx; this.cy = cy; - innerR = r*(1.0/3.0); - outerR = (float)(r*(2.0/3.0)); + innerR = r*(1.2/3.0); + outerR = r*(1.8/3.0); radEach = (Math.PI*2.0)/modifiers.length; - + + double textR = r*.8; + double rad = 0; float[] hsv = {0F, 1F, .75F}; - + for (int i = 0; i < modifiers.length; i++) { rad = radEach * i; hsv[0] = (float)Math.toDegrees(rad); @@ -44,8 +46,8 @@ public class IMEModifiers { colorPaint); canvas.drawText( modifiers[i], - (float)(cx+innerR*Math.cos(rad)), - (float)(cy+innerR*Math.sin(rad)), + (float)(cx+textR*Math.cos(rad)), + (float)(cy+textR*Math.sin(rad)), textPaint); } } -- cgit v1.2.3 From c2badb0447accaa39e4f7b3d8ebb43601f2f5d8f Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 7 May 2014 02:30:27 -0400 Subject: Start implementing modifiers, for a great reduction in code size. --- src/us/minak/IMEModifiers.java | 55 ++++++++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 18 deletions(-) (limited to 'src/us/minak/IMEModifiers.java') diff --git a/src/us/minak/IMEModifiers.java b/src/us/minak/IMEModifiers.java index d4cc6d3..645ae4a 100644 --- a/src/us/minak/IMEModifiers.java +++ b/src/us/minak/IMEModifiers.java @@ -3,20 +3,30 @@ package us.minak; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; -import java.util.List; +import android.view.KeyEvent; import java.util.ArrayList; +import java.util.List; public class IMEModifiers { - private final String[] modifiers = { "shift", "ctrl", "alt" }; + // FIXME: hard-coded configuration + private final IMEModifier[] modifiers = { + new IMEModifier("Shift", KeyEvent.KEYCODE_SHIFT_LEFT), + new IMEModifier("Ctrl" , KeyEvent.KEYCODE_CTRL_LEFT ), + new IMEModifier("Alt" , KeyEvent.KEYCODE_ALT_LEFT )}; + + // Static drawing resources private final Paint colorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private final Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG); + // Pre-calculated graphics stuff private float cx = 0; private float cy = 0; private double innerR = 0; private double outerR = 0; private double radEach = 0; + // The current state + ArrayList selected = new ArrayList(); public IMEModifiers() { textPaint.setColor(Color.BLACK); @@ -39,21 +49,23 @@ public class IMEModifiers { hsv[0] = (float)Math.toDegrees(rad); colorPaint.setColor(Color.HSVToColor(0x80, hsv)); - canvas.drawCircle( - (float)(cx+innerR*Math.cos(rad)), - (float)(cy+innerR*Math.sin(rad)), - (float)outerR, - colorPaint); - canvas.drawText( - modifiers[i], - (float)(cx+textR*Math.cos(rad)), - (float)(cy+textR*Math.sin(rad)), - textPaint); - } + if (selected.contains(modifiers[i])) { + canvas.drawRect(0, 0, canvas.getWidth(), canvas.getHeight(), colorPaint); + } else { + canvas.drawCircle((float)(cx+innerR*Math.cos(rad)), + (float)(cy+innerR*Math.sin(rad)), + (float)outerR, + colorPaint); + } + canvas.drawText(modifiers[i].name, + (float)(cx+textR*Math.cos(rad)), + (float)(cy+textR*Math.sin(rad)), + textPaint); + } } - public List getModifiersAtPoint(float x, float y) { - ArrayList ret = new ArrayList(); + public void setSelectionPoint(float x, float y) { + selected.clear(); double mx; double my; @@ -63,9 +75,16 @@ public class IMEModifiers { mx = cx+innerR*Math.cos(rad); my = cy+innerR*Math.sin(rad); - if (Math.sqrt(Math.pow(mx-x,2)+Math.pow(my-y, 2)) > outerR) - ret.add(modifiers[i]); + if (Math.sqrt(Math.pow(mx-x,2)+Math.pow(my-y, 2)) < outerR) + selected.add(modifiers[i]); } - return ret; + } + + public List getSelection() { + return selected; + } + + public void clearSelection() { + selected.clear(); } } -- cgit v1.2.3 From 42d03f38e3cccad38a1e3000e180662b378343c3 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 7 May 2014 04:05:40 -0400 Subject: Get the modifier keys working --- src/us/minak/IMEModifiers.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/us/minak/IMEModifiers.java') diff --git a/src/us/minak/IMEModifiers.java b/src/us/minak/IMEModifiers.java index 645ae4a..2766c76 100644 --- a/src/us/minak/IMEModifiers.java +++ b/src/us/minak/IMEModifiers.java @@ -10,9 +10,9 @@ import java.util.List; public class IMEModifiers { // FIXME: hard-coded configuration private final IMEModifier[] modifiers = { - new IMEModifier("Shift", KeyEvent.KEYCODE_SHIFT_LEFT), - new IMEModifier("Ctrl" , KeyEvent.KEYCODE_CTRL_LEFT ), - new IMEModifier("Alt" , KeyEvent.KEYCODE_ALT_LEFT )}; + new IMEModifier("Shift", KeyEvent.KEYCODE_SHIFT_LEFT, KeyEvent.META_SHIFT_ON), + new IMEModifier("Ctrl" , KeyEvent.KEYCODE_CTRL_LEFT , KeyEvent.META_CTRL_ON ), + new IMEModifier("Alt" , KeyEvent.KEYCODE_ALT_LEFT , KeyEvent.META_ALT_ON )}; // Static drawing resources private final Paint colorPaint = new Paint(Paint.ANTI_ALIAS_FLAG); -- cgit v1.2.3