Add preferences system.
[Hacks.git] / hacks / Hack.js
index 28cfad7..2133299 100644 (file)
@@ -3,6 +3,7 @@
 enyo.kind({
        name: "Hack",
        kind: "VFlexBox",
+       preferences: [],
        stop: function() {
        },
        start: function() {
@@ -10,5 +11,26 @@ enyo.kind({
        resize: function() {
        },
        hidden: function() {
+       },
+       getPreferencesMetadata: function() {
+               return this.preferences;
+       },
+       getPreferences: function() {
+               var o = {};
+               for (var i = 0; i < this.preferences.length; i++) {
+                       var p = this.preferences[i];
+                       o[p.name] = this[p.name];
+               }
+               return o;
+       },
+       setPreferences: function(prefs) {
+               for (var i in prefs) {
+                       if (this[i] == undefined)
+                               throw new Error('Cannot set nonexistent preference "' + i + '"');
+                       this[i] = prefs[i];
+               }
+               this.preferencesChanged();
+       },
+       preferencesChanged: function() {
        }
 });