Files
armorpaint/Sources/arm/Operator.hx
T

35 lines
971 B
Haxe
Raw Normal View History

2019-06-19 18:45:36 +02:00
package arm;
2019-06-27 10:45:39 +02:00
import iron.system.Input;
2019-06-19 18:45:36 +02:00
class Operator {
2019-06-24 10:46:45 +02:00
public static var run = new Map<String, Dynamic>();
public static var keymap = new Map<String, String>();
2019-12-09 00:28:10 +01:00
public static function register(name: String, key: String, call: Dynamic) {
2019-06-24 10:46:45 +02:00
run[name] = call;
keymap[key] = name;
}
2019-12-09 00:28:10 +01:00
public static function update() {}
2019-06-24 10:46:45 +02:00
2020-01-27 10:40:07 +01:00
public static function shortcut(s: String, repeat = false): Bool {
2020-01-06 16:49:48 +01:00
if (s == "") return false;
2019-06-27 10:45:39 +02:00
var mouse = Input.getMouse();
2019-06-27 13:35:58 +02:00
var kb = Input.getKeyboard();
var shift = s.indexOf("shift") >= 0;
var ctrl = s.indexOf("ctrl") >= 0;
var alt = s.indexOf("alt") >= 0;
var flag = shift == kb.down("shift") &&
ctrl == kb.down("control") &&
alt == kb.down("alt");
if (s.indexOf("+") > 0) {
2019-06-27 10:45:39 +02:00
s = s.substr(s.lastIndexOf("+") + 1);
}
2020-03-10 13:38:55 +01:00
else if (shift || ctrl || alt) return flag;
2020-01-27 10:40:07 +01:00
var key = (s == "left" || s == "right" || s == "middle") ? mouse.down(s) : repeat ? kb.repeat(s) : kb.started(s);
2019-06-27 10:45:39 +02:00
return flag && key;
}
2019-06-19 18:45:36 +02:00
}