|
@@ -1,4 +1,41 @@
|
|
|
-package hide.view;
|
|
|
+package hide.view.settings;
|
|
|
+
|
|
|
+class Categorie {
|
|
|
+ public var name : String;
|
|
|
+ public var element : Element;
|
|
|
+
|
|
|
+ public function new(name: String) {
|
|
|
+ this.name = name;
|
|
|
+ this.element = new Element('
|
|
|
+ <div>
|
|
|
+ <h1>${name}</h1>
|
|
|
+ </div>');
|
|
|
+ }
|
|
|
+
|
|
|
+ public function add(settingsName: String, editElement: Element, value: Dynamic, ?onChange : Dynamic -> Void) {
|
|
|
+ var el = new Element('<dl><dt>${settingsName}</dt><dd class="edit"></dd></dl>');
|
|
|
+ el.find('.edit').append(editElement);
|
|
|
+
|
|
|
+ if (editElement.is('input[type="checkbox"]'))
|
|
|
+ editElement.prop('checked', value);
|
|
|
+ else
|
|
|
+ editElement.val(value);
|
|
|
+
|
|
|
+ this.element.append(el);
|
|
|
+
|
|
|
+ if (onChange != null)
|
|
|
+ editElement.on('change', function(v) {
|
|
|
+ var v : Dynamic = null;
|
|
|
+ if (editElement.is('input[type="checkbox"]'))
|
|
|
+ v = editElement.prop('checked');
|
|
|
+ else
|
|
|
+ v = Std.parseFloat(editElement.val());
|
|
|
+
|
|
|
+ onChange(v);
|
|
|
+ Ide.inst.config.global.save();
|
|
|
+ } );
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
class Settings extends hide.ui.View<{}> {
|
|
|
public var categories : Array<Categorie>;
|
|
@@ -7,20 +44,6 @@ class Settings extends hide.ui.View<{}> {
|
|
|
super(state);
|
|
|
|
|
|
categories = [];
|
|
|
-
|
|
|
- var general = new Categorie("General");
|
|
|
- general.add("Auto-save prefabs before closing", new Element('<input type="checkbox"/>'), Ide.inst.ideConfig.autoSavePrefab, (v) -> Ide.inst.ideConfig.autoSavePrefab = v);
|
|
|
- categories.push(general);
|
|
|
-
|
|
|
- var search = new Categorie("Search");
|
|
|
- search.add("Typing debounce threshold (ms)", new Element('<input type="number"/>'), Ide.inst.ideConfig.typingDebounceThreshold, (v) -> Ide.inst.ideConfig.typingDebounceThreshold = v);
|
|
|
- search.add("Close search on file opening", new Element('<input type="checkbox"/>'), Ide.inst.ideConfig.closeSearchOnFileOpen, (v) -> Ide.inst.ideConfig.closeSearchOnFileOpen = v);
|
|
|
- categories.push(search);
|
|
|
-
|
|
|
- var performance = new Categorie("Performance");
|
|
|
- performance.add("Track gpu alloc", new Element('<input type="checkbox"/>'), Ide.inst.ideConfig.trackGpuAlloc, (v) -> Ide.inst.ideConfig.trackGpuAlloc = v);
|
|
|
- performance.add("Culling distance factor", new Element('<input type="number"/>'), Ide.inst.ideConfig.cullingDistanceFactor, (v) -> Ide.inst.ideConfig.cullingDistanceFactor = v);
|
|
|
- categories.push(performance);
|
|
|
}
|
|
|
|
|
|
override function onDisplay() {
|
|
@@ -40,12 +63,9 @@ class Settings extends hide.ui.View<{}> {
|
|
|
cEl.on('click', function(e){ selectCategorie(c); });
|
|
|
}
|
|
|
|
|
|
- // By default open general settings
|
|
|
- selectCategorie(categories[0]);
|
|
|
- }
|
|
|
-
|
|
|
- override function getTitle() {
|
|
|
- return "Settings";
|
|
|
+ // By default open first categorie
|
|
|
+ if (categories.length > 0)
|
|
|
+ selectCategorie(categories[0]);
|
|
|
}
|
|
|
|
|
|
function selectCategorie(c : Categorie) {
|
|
@@ -55,42 +75,14 @@ class Settings extends hide.ui.View<{}> {
|
|
|
content.append(c.element);
|
|
|
}
|
|
|
|
|
|
- static var _ = hide.ui.View.register(Settings);
|
|
|
-}
|
|
|
-
|
|
|
-class Categorie {
|
|
|
- public var name : String;
|
|
|
- public var element : Element;
|
|
|
-
|
|
|
- public function new(name: String) {
|
|
|
- this.name = name;
|
|
|
- this.element = new Element('
|
|
|
- <div>
|
|
|
- <h1>${name}</h1>
|
|
|
- </div>');
|
|
|
- }
|
|
|
-
|
|
|
- public function add(settingsName: String, editElement: Element, value: Dynamic, ?onChange : Dynamic -> Void) {
|
|
|
- var el = new Element('<dl><dt>${settingsName}</dt><dd class="edit"></dd></dl>');
|
|
|
- el.find('.edit').append(editElement);
|
|
|
-
|
|
|
- if (editElement.is('input[type="checkbox"]'))
|
|
|
- editElement.prop('checked', value);
|
|
|
- else
|
|
|
- editElement.val(value);
|
|
|
-
|
|
|
- this.element.append(el);
|
|
|
-
|
|
|
- if (onChange != null)
|
|
|
- editElement.on('change', function(v) {
|
|
|
- var v : Dynamic = null;
|
|
|
- if (editElement.is('input[type="checkbox"]'))
|
|
|
- v = editElement.prop('checked');
|
|
|
- else
|
|
|
- v = Std.parseFloat(editElement.val());
|
|
|
|
|
|
- onChange(v);
|
|
|
- Ide.inst.config.global.save();
|
|
|
- } );
|
|
|
+ settings.register("oeoeoe", [Array<zae])
|
|
|
+ function getCategorie(name : String) {
|
|
|
+ var res = null;
|
|
|
+ for (c in categories) {
|
|
|
+ if (c.name == name)
|
|
|
+ return c;
|
|
|
+ }
|
|
|
+ return res;
|
|
|
}
|
|
|
-}
|
|
|
+}
|