We need to get even on the terms so that we don't talk past each other
"window" - an area provided by windows for a program that wants to display things. Example, Flowstone is in a window, a plugin is in a window
"view" - an area within a Flowstone module that defines a space to display graphics
If you want to change the dimensions of a view, you can do that in its parent's view, when using FS 3.0.8. Example: you have a module that displays a level meter. But this meter can be vertically or horizontally.
You enable a view of a module by placing a MGUI prim inside the module. Here it will probably be routed to a Ruby module that does the drawing. But an MGUI also has a view input. This input is used to tell the module to which parent module's view it belongs.
The top view in your schematic will become a plugin window. So, to display a meter horizontally and vertically, based on settings, and have the view dimensions in which the meter is drawn, fit to the orientation, you hook that view to a parent view (here the top view, that becomes a plugin window) and change its dimensions everytime, the setting changes from horizontal to vertical and vice versa.
I can't provide you with a schematic, because I use 3.0.6, but if you look at other modules, it should become clear. Start Flowstone, and drag the stock "ADSR" module into the schematic. Currently this module now holds the top view. Now double click on it to look inside the module. You will see 6 "Knob static" modules, each with their own view. Those are the child views. If you right click on one of them, you will see a menu with the entry "Show in parent panel" being checked. If you uncheck it, and leave the module, you will see that on the top view one knob is now missing. Go back into the module and check "Show in parent panel" again.
Congratulations! What you just did manually, that's what the method View.setShowInParent in Ruby is for. It does in code what you just did manually!
Now double-click on the knob module to look inside. You will see another module with a view, called "Knob". A right click reveals that this one also has "Show in parent panel" checked. Double click on that module to look iside it. You will find a MGUI, which has a wireless input connected to its view input. This simple wireless input is responsible for displaying the knob on higher layers. If you remove the connection to the view input, no knob will be displayed on the top layer. That is, because all 6 "Knob" modules in the schematic are sync'ed. Any change to one of them will be done to all of them. Connect it again, so that all knobs are displayed on the top view again. Leave the "Knob" module. Leave the "Knob static" module. Right click on the "Knob static" module and select "Edit front panel" from the menu. Resize the module. You will notice that the view automatically resizes as well. But they are not one and the same. The view is independend on the module. If you move the mouse over the thick dark grey outline of the view, the cursor changes. You now can click and drag to change the size of the view independently from the modules size. This feature is what allows you to set a view's dimensions in the parent view as well. You will notice that in this view there is the knob from the child "Knob" module. Around it is a white dashed outline. This shows the current dimensions of the "Knob" module's view inside of the the "Knob static" module's view. You can click on the outline to activate it, then move the mouse to the light blue corner of the otherwise white outline. The cursor changes and you can now click and drag to change the size of the "Knob" module's view. Or you just click somewhere within the outline and drag to set a new position for the "Knob" module's view.
Congratulations! What you just did manually, that's what the method View.setViewSize in Ruby is for. It does in code, what you just did manually!
I know this was a lot of text. But if you took the time to follow it, while doing what I asked for in Flowstone, I think it has become obvious now.
Regarding 3.0.8, just remember that the changes to the code led to a faulty implementation of the Ruby thread. Basically you are running Ruby at half speed. If you don't encounter any of the bugs and are fine with a half-speed Ruby, there is no reason to switch to 3.0.6
If you want to switch, that's easy. Spogg also was hesitant, until I convinced him. He noticed the improvements right away and nver regretted the step back to 3.0.6. Just backup your toolbox, do a clear de-install (incl removing manually any leftovers). Then install 3.0.6 and all is good
