diff --git a/test1/app.d b/test1/app.d index ce0fe7c..b6e5dcf 100644 --- a/test1/app.d +++ b/test1/app.d @@ -160,11 +160,12 @@ public class AudioDevKit : InputListener, SystemEventListener { windowing = new SpriteLayer(RenderingMode.Copy); //windowing.addSprite(new Bitmap8Bit(848, 480), -65_536, 0, 0); wh = new WindowHandler(1696,960,848,480,windowing); - mainRaster.loadPalette(loadPaletteFromFile("../system/concreteGUIE1.tga")); + mainRaster.loadPalette(loadPaletteFromFile(getPathToAsset("/system/concreteGUIE1.tga"))); mainRaster.addLayer(windowing, 0); INIT_CONCRETE(); { - Bitmap8Bit[] customGUIElems = loadBitmapSheetFromFile!Bitmap8Bit("../system/concreteGUI_ADK.tga", 16, 16); + Bitmap8Bit[] customGUIElems = loadBitmapSheetFromFile!Bitmap8Bit( + getPathToAsset("/system/concreteGUI_ADK.tga"), 16, 16); globalDefaultStyle.setImage(customGUIElems[6], "newA"); globalDefaultStyle.setImage(customGUIElems[7], "newB"); globalDefaultStyle.setImage(customGUIElems[8], "saveA"); @@ -191,7 +192,8 @@ public class AudioDevKit : InputListener, SystemEventListener { globalDefaultStyle.setImage(customGUIElems[29], "macroB"); } { - Bitmap8Bit[] customGUIElems = loadBitmapSheetFromFile!Bitmap8Bit("../system/concreteGUIE2.tga", 16, 16); + Bitmap8Bit[] customGUIElems = loadBitmapSheetFromFile!Bitmap8Bit( + getPathToAsset("/system/concreteGUIE2.tga"), 16, 16); globalDefaultStyle.setImage(customGUIElems[0], "playA"); globalDefaultStyle.setImage(customGUIElems[1], "playB"); globalDefaultStyle.setImage(customGUIElems[2], "stopA"); diff --git a/test1/modulerouter.d b/test1/modulerouter.d index 26bc600..0598bc0 100644 --- a/test1/modulerouter.d +++ b/test1/modulerouter.d @@ -19,6 +19,7 @@ public class ModuleRouter : Window { Button button_midiRout; Button button_remNode; AudioDevKit adk; + string[2][] moduleList; public this(AudioDevKit adk){ super(Box(0, 16, 640, 480), "Modules and Routing"); listView_modules = new ListView(new ListViewHeader(16, [256, 256], ["Type", "Name"]), null, "listView_modules", @@ -40,10 +41,12 @@ public class ModuleRouter : Window { button_midiRout.onMouseLClick = &button_midiRout_onClick; listView_modules.editEnable = true; listView_modules.onTextInput = &listView_modules_onTextEdit; + listView_modules.onItemAdd = &listView_modules_onItemAdd; listView_modules.onItemSelect = &listView_modules_onItemSelect; listView_routing.editEnable = true; listView_routing.multicellEditEnable = true; - listView_routing.onTextInput = &listView_routing_onTextEdit; + //listView_routing.onTextInput = &listView_routing_onTextEdit; + listView_routing.onItemAdd = &listView_modules_onItemAdd; addElement(listView_modules); addElement(listView_routing); addElement(button_addMod); @@ -70,7 +73,7 @@ public class ModuleRouter : Window { } public void refreshModuleList() { ModuleConfig mcfg = adk.mcfg; - string[2][] moduleList = mcfg.getModuleList; + moduleList = mcfg.getModuleList; listView_modules.clear(); foreach (string[2] key; moduleList) { listView_modules ~= new ListViewItem(16, [key[0].to!dstring, key[1].to!dstring,], @@ -97,21 +100,27 @@ public class ModuleRouter : Window { } private void onModuleTypeSelect(Event e) { MenuEvent me = cast(MenuEvent)e; - listView_modules ~= new ListViewItem(16, [me.itemSource.to!dstring, "Rename me!"], - [TextInputFieldType.None, TextInputFieldType.ASCIIText]); - listView_modules.refresh(); + listView_modules.insertAndEdit(0, new ListViewItem(16, [me.itemSource.to!dstring, "Rename me!"], + [TextInputFieldType.None, TextInputFieldType.ASCIIText])); + //listView_modules.refresh(); //adk.eventStack.addToTop(new AddModuleEvent(adk.mcfg, me.itemSource, me.itemSource)); } private void button_addNode_onClick(Event e) { - listView_routing ~= new ListViewItem(16, ["!NONE!", "!NONE!"], - [TextInputFieldType.ASCIIText, TextInputFieldType.ASCIIText]); - listView_routing.refresh(); + listView_routingnew.insertAndEdit(0, ListViewItem(16, ["!NONE!", "!NONE!"], + [TextInputFieldType.ASCIIText, TextInputFieldType.ASCIIText])); + //listView_routing.refresh(); } private void button_sampleman_onClick(Event e) { import test1.sampleman; adk.wh.addWindow(new SampleMan(adk)); } private void listView_modules_onTextEdit(Event e) { + ListViewItem item = cast(ListViewItem)e.aux; + adk.eventStack.addToTop(new RenameModuleEvent(adk.mcfg, moduleList[1][listView_modules.value], + item[1].getText().to!string)); + moduleList[1][listView_modules.value] = item[1].getText().to!string; + } + private void listView_modules_onItemAdd(Event e) { //CellEditEvent ce = cast(CellEditEvent)e; ListViewItem item = cast(ListViewItem)e.aux; adk.eventStack.addToTop(new AddModuleEvent(adk.mcfg, item[0].getText().to!string, item[1].getText().to!string)); @@ -120,7 +129,7 @@ public class ModuleRouter : Window { import test1.midirout; handler.addWindow(new MIDIRouting(adk.mcfg)); } - private void listView_routing_onTextEdit(Event e) { + private void listView_routing_onItemAdd(Event e) { ListViewItem item = cast(ListViewItem)e.aux; if (item[0].getText != "!NONE!" && item[1].getText != "!NONE!") { adk.eventStack.addToTop(new AddRoutingNodeEvent(adk.mcfg, item[0].getText().to!string, item[1].getText().to!string)); diff --git a/test1/preseteditor.d b/test1/preseteditor.d index fba4160..e7cc043 100644 --- a/test1/preseteditor.d +++ b/test1/preseteditor.d @@ -45,6 +45,7 @@ public class PresetEditor : Window { addElement(listView_presets); listView_presets.onItemSelect = &listView_presets_onSelect; listView_presets.onTextInput = &listView_presets_onTextEdit; + listView_presets.onItemAdd = &listView_presets_onItemAdd; listView_values.editEnable = true; addElement(checkBox_Globals); checkBox_Globals.onToggle = &checkBox_Globals_onToggle; @@ -126,9 +127,9 @@ public class PresetEditor : Window { SmallButton sender = cast(SmallButton)ev.sender; switch (sender.getSource) { case "add": - listView_presets ~= new ListViewItem(16, ["!", "!", ""], - [TextInputFieldType.DecimalP, TextInputFieldType.DecimalP, TextInputFieldType.Text]); - listView_presets.refresh(); + listView_presets.insertAndEdit(0, new ListViewItem(16, ["!", "!", ""], + [TextInputFieldType.DecimalP, TextInputFieldType.DecimalP, TextInputFieldType.Text])); + //listView_presets.refresh(); break; case "remove": if (presetID == 1<<21) @@ -154,6 +155,15 @@ public class PresetEditor : Window { ((presetID & 127)<<24) | ((presetID>>7) & 0x7F) | ((presetID>>14)<<8)); */ } } + protected void listView_presets_onItemAdd(Event ev) { + ListViewItem item = cast(ListViewItem)ev.aux; + if (item[0].getText != "!" && item[1].getText != "!") { + const uint bank = item[0].getText().to!uint; + const uint preset = item[1].getText().to!uint; + presetID = preset | (bank<<7); + presetName = item[2].getText().toUTF8; + } + } protected void listView_presets_onTextEdit(Event ev) { ListViewItem item = cast(ListViewItem)ev.aux; if (item[0].getText != "!" && item[1].getText != "!") {