diff options
author | David Runge <dave@sleepmap.de> | 2016-07-09 18:03:12 +0200 |
---|---|---|
committer | David Runge <dave@sleepmap.de> | 2016-07-09 18:03:12 +0200 |
commit | 8826d0bf77fe0db4c2dc6553e06cdf7bfc286578 (patch) | |
tree | dc6365141e17274e27f2d3313d4887fb93a65a54 | |
parent | 821ed289e1d6cf0c95238f8e5e28abf777ddf6b7 (diff) | |
download | bowelyzer-8826d0bf77fe0db4c2dc6553e06cdf7bfc286578.tar.gz bowelyzer-8826d0bf77fe0db4c2dc6553e06cdf7bfc286578.tar.bz2 bowelyzer-8826d0bf77fe0db4c2dc6553e06cdf7bfc286578.tar.xz bowelyzer-8826d0bf77fe0db4c2dc6553e06cdf7bfc286578.zip |
classes/BowelyzerGUI.sc: Refactoring the creation and removal of addresses and ports Views into separate functions setupAddressesAndPorts and removeAddressesAndPorts. Expanding all alignment calls for better readability. Changing the call to setupPauseButton to be aware of the \active state from the channels config (will be initialized red, when inactive). Fixing comments.
-rw-r--r-- | classes/BowelyzerGUI.sc | 110 |
1 files changed, 76 insertions, 34 deletions
diff --git a/classes/BowelyzerGUI.sc b/classes/BowelyzerGUI.sc index 403c911..728d73a 100644 --- a/classes/BowelyzerGUI.sc +++ b/classes/BowelyzerGUI.sc @@ -3,7 +3,6 @@ BowelyzerGUI{ var mainView, <settingsView, <channelContainerView, <channels, <indicators, - //TODO: move to BowelyzerConfig fadeOutTime = 0.3, fadeOutSteps = 20, minWidth=1280, @@ -51,7 +50,7 @@ BowelyzerGUI{ //setup the main view, in which all other views reside setupMainView{ arg config; - var channelScrollView, forwardView, hubView, synthServerView, configView, layout; + var channelScrollView, configView, layout; mainView = PageLayout.new("Bowelyzer"); mainView.asView.background = Color.fromHexString("#DBDBDB"); layout = mainView.asView.addFlowLayout(0@0, 0@0); @@ -79,74 +78,114 @@ BowelyzerGUI{ this.setupSaveAsButton(configView); this.setupLoadButton(configView); + this.setupAddressesAndPorts(settingsView.asView, config); + + // go to next line in layout + layout.nextLine; + channelScrollView = ScrollView(mainView.asView, Rect(0 , 0, mainView.bounds.width, mainView.bounds.height-settingsView.bounds.height)).autohidesScrollers_(false).hasBorder_(true); + // container for channelViews + channelContainerView = View(parent: channelScrollView, bounds: Rect(0, 0, (channelViewWidth*config.at(\inputs).size)+buttonWidth, channelViewHeight)); + channelContainerView.asView.background = Color.fromHexString("#FEFEFE"); + channelContainerView.layout = HLayout(); + channelContainerView.layout.spacing = 0; + channelContainerView.layout.margins = [0,0,0,0]; + channelContainerView.name = \channelContainerView; + } + + // setup Views for addresses and ports + setupAddressesAndPorts{ + arg parent, config; + var forwardView, hubView, synthServerView; + //synthServer - synthServerView = View(settingsView.asView); + synthServerView = View(parent, Rect(0, 0, settingsSubViewSize.x, settingsSubViewSize.y)); synthServerView.asView.background = Color.fromHexString("#DDDDEF"); synthServerView.layout = VLayout(); synthServerView.layout.spacing = 0; synthServerView.layout.margins = settingsSubViewMargins; synthServerView.name = "synthServer"; synthServerView.maxSize_(settingsSubViewSize); - StaticText(synthServerView, Rect(0, 0, 140@20)).string_("synthServer").align_(\center); + StaticText(synthServerView, Rect(0, 0, 140@buttonHeight)).string_("synthServer").align_(\center); this.setupEZText(synthServerView, "address", config.at(\synthServerAddress)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(TextField),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(TextField),{ + item.align_(\right); + }); }); this.setupEZNumber(synthServerView, "port", config.at(\synthServerPort)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(NumberBox),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(NumberBox),{ + item.align_(\right); + }); }); //hub - hubView = View(settingsView.asView); + hubView = View(parent, Rect(0, 0, settingsSubViewSize.x, settingsSubViewSize.y)); hubView.asView.background = Color.fromHexString("#DDDDEF"); hubView.layout = VLayout(); hubView.layout.spacing = 0; hubView.layout.margins = settingsSubViewMargins; hubView.name = "hub"; hubView.maxSize_(settingsSubViewSize); - StaticText(hubView, Rect(0, 0, 140@20)).string_("hub").align_(\center); + StaticText(hubView, Rect(0, 0, 140@buttonHeight)).string_("hub").align_(\center); this.setupEZText(hubView, "address", config.at(\hubAddress)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(TextField),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(TextField),{ + item.align_(\right); + }); }); this.setupEZNumber(hubView, "port", config.at(\hubPort)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(NumberBox),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(NumberBox),{ + item.align_(\right); + }); }); //forward - forwardView = View(settingsView.asView); + forwardView = View(parent, Rect(0, 0, settingsSubViewSize.x, settingsSubViewSize.y)); forwardView.asView.background = Color.fromHexString("#DDDDEF"); forwardView.layout = VLayout(); forwardView.layout.spacing = 0; forwardView.layout.margins = settingsSubViewMargins; forwardView.name = "forward"; forwardView.maxSize_(settingsSubViewSize); - StaticText(forwardView, Rect(0, 0, 140@20)).string_("forward").align_(\center); + StaticText(forwardView, Rect(0, 0, 140@buttonHeight)).string_("forward").align_(\center); this.setupEZText(forwardView, "address", config.at(\forwardAddress)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(TextField),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(TextField),{ + item.align_(\right); + }); }); this.setupEZNumber(forwardView, "port", config.at(\forwardPort)).children.do({|item| - if(item.isKindOf(StaticText),{item.align_(\left)}); - if(item.isKindOf(NumberBox),{item.align_(\right)}); + if(item.isKindOf(StaticText),{ + item.align_(\left); + }); + if(item.isKindOf(NumberBox),{ + item.align_(\right); + }); }); + } - // go to next line in layout - layout.nextLine; - channelScrollView = ScrollView(mainView.asView, Rect(0 , 0, mainView.bounds.width, mainView.bounds.height-settingsView.bounds.height)).autohidesScrollers_(false).hasBorder_(true); - // container for channelViews - channelContainerView = View(parent: channelScrollView, bounds: Rect(0, 0, (channelViewWidth*config.at(\inputs).size)+buttonWidth, channelViewHeight)); - channelContainerView.asView.background = Color.fromHexString("#FEFEFE"); - channelContainerView.layout = HLayout(); - channelContainerView.layout.spacing = 0; - channelContainerView.layout.margins = [0,0,0,0]; - channelContainerView.name = \channelContainerView; - //channelContainerView.maxSize_(((channelViewWidth*config.at(\inputs).size)+buttonWidth)@channelViewHeight); + // remove Views for addresses and ports + removeAddressesAndPorts{ + settingsView.children.do({|setting, i| + if(setting.isKindOf(View) && ((setting.name == "hub") || (setting.name == "synthServer") || (setting.name == "forward")),{ + setting.remove; + }); + }); } - //setup channel views + // setup channel views setupChannelViews{ arg config; config.at(\inputs).keysValuesDo({|name, input| @@ -201,7 +240,7 @@ BowelyzerGUI{ meterView.layout.margins = [2,0,2,0]; //setup a toggle button for each channel - this.setupPauseButton(meterView); + this.setupPauseButton(meterView, config.at(\controls).at(name).at(\active)); // setup a small View as indicator for incoming/outgoing OSC messages for each input this.setupOSCIndicator(meterView); @@ -371,7 +410,9 @@ BowelyzerGUI{ // setup a button to pause the Synth for a channel setupPauseButton{ - arg parent; + arg parent, state; + var buttonState = 0; + if(state.not, {buttonState = 1}); ^Button(parent, Rect(0, 0, buttonWidth, buttonHeight)) .states_([ ["on", Color.black, Color.fromHexString("#99FF99")], @@ -386,6 +427,7 @@ BowelyzerGUI{ address.sendMsg(type, name, controlValue); }) .maxSize_(buttonWidth@buttonHeight) + .value_(buttonState) ; } |