// title: Receiver // class: large // order: 10 // min: 820x560 // pref: 1360x900 // // A wide hi-fi receiver: the screen is a long, low dial window across the // whole front; under it one row of controls, the volume wing, what plays over // the transport keys and the position display, then the display wing; the // library, the open list and Up Next below. Every boundary is a splitter: // the dial against the control row, the device against the lists, the // library against the list, the list against Up Next. use mod.prelude.widgets_internal.* use mod.widgets.* mod.widgets.HwLayout = View{ width: Fill height: Fill flow: Down // The device over the lists. device_split := mod.widgets.HwDeckSplitter{ width: Fill height: Fill axis: SplitterAxis.Vertical align: SplitterAlign.Weighted(0.66) min_horizontal: 340.0 max_horizontal: 150.0 // The dial window over the control row. a: View{ width: Fill height: Fill dial_split := mod.widgets.HwDeckSplitter{ width: Fill height: Fill axis: SplitterAxis.Vertical align: SplitterAlign.FromB(340.0) min_horizontal: 100.0 max_horizontal: 220.0 a: mod.widgets.HwSlot{component: "screen" width: Fill height: Fill} // The control row: knob, keys, display, all in one line. // The wings keep their height (the knob and the display keys // don't stretch); a taller row centres them in more faceplate. b: View{ width: Fill height: Fill flow: Right spacing: 14 align: Align{y: 0.5} mod.widgets.HwSlot{component: "volume" width: 184 height: Fill{weight: 0.0 basis: 322.0 shrink: 1.0 min: 200.0}} View{ width: Fill height: Fill flow: Down spacing: 8 align: Align{y: 0.5} mod.widgets.HwSlot{component: "now" width: Fill height: 60} mod.widgets.HwSlot{component: "transport" width: Fill height: 84} View{ width: Fill height: 50 flow: Right spacing: 12 mod.widgets.HwSlot{component: "progress" width: Fill height: Fill} mod.widgets.HwSlot{component: "queue" width: 56 height: Fill} } } mod.widgets.HwSlot{component: "display" width: 236 height: Fill{weight: 0.0 basis: 322.0 shrink: 1.0 min: 200.0}} } }} b: View{ width: Fill height: Fill lib_split := mod.widgets.HwSplitter{ width: Fill height: Fill axis: SplitterAxis.Horizontal align: SplitterAlign.FromA(250.0) min_vertical: 230.0 max_vertical: 500.0 a: mod.widgets.HwSlot{component: "library" width: Fill height: Fill} // The open list and Up Next; Up Next folds away from its key. b: View{ width: Fill height: Fill split := mod.widgets.HwSplitter{ width: Fill height: Fill axis: SplitterAxis.Horizontal align: SplitterAlign.FromB(320.0) min_vertical: 300.0 max_vertical: 180.0 a: mod.widgets.HwSlot{component: "tracks" width: Fill height: Fill} b: mod.widgets.HwSlot{component: "upnext" width: Fill height: Fill} }} }} } } true