diff options
Diffstat (limited to 'altosuilib/AltosUIPreferences.java')
-rw-r--r-- | altosuilib/AltosUIPreferences.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/altosuilib/AltosUIPreferences.java b/altosuilib/AltosUIPreferences.java index 485cb582..50211fce 100644 --- a/altosuilib/AltosUIPreferences.java +++ b/altosuilib/AltosUIPreferences.java @@ -31,6 +31,9 @@ public class AltosUIPreferences extends AltosPreferences { /* Look&Feel preference name */ final static String lookAndFeelPreference = "LOOK-AND-FEEL"; + /* Window position preference name */ + final static String positionPreference = "POSITION"; + /* UI Component to pop dialogs up */ static Component component; @@ -45,6 +48,10 @@ public class AltosUIPreferences extends AltosPreferences { /* Serial debug */ public static boolean serial_debug; + static LinkedList<AltosPositionListener> position_listeners; + + public static int position = AltosUILib.position_top_left; + public static void init() { AltosPreferences.init(new AltosUIPreferencesBackend()); @@ -56,7 +63,11 @@ public class AltosUIPreferences extends AltosPreferences { ui_listeners = new LinkedList<AltosUIListener>(); serial_debug = backend.getBoolean(serialDebugPreference, false); + AltosLink.set_debug(serial_debug); + + position = backend.getInt(positionPreference, AltosUILib.position_top_left); + position_listeners = new LinkedList<AltosPositionListener>(); } static { init(); } @@ -177,4 +188,31 @@ public class AltosUIPreferences extends AltosPreferences { } } + public static void register_position_listener(AltosPositionListener l) { + synchronized(backend) { + position_listeners.add(l); + } + } + + public static void unregister_position_listener(AltosPositionListener l) { + synchronized (backend) { + position_listeners.remove(l); + } + } + + public static void set_position(int new_position) { + synchronized (backend) { + position = new_position; + backend.putInt(positionPreference, position); + flush_preferences(); + for (AltosPositionListener l : position_listeners) + l.position_changed(position); + } + } + + public static int position() { + synchronized (backend) { + return position; + } + } } |