guis with dynamic panes - argenta · introduction •what are dynamic panes? •the code is not:...
TRANSCRIPT
![Page 1: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/1.jpg)
GUIs with dynamic panes
A technique for flexible front panel scaling
![Page 2: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/2.jpg)
Agenda
• Introduction
• A scaling VI
• A scaling class hierarchy
• Adding interaction
• Decoupling
• Afterthoughts
• Questions
![Page 3: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/3.jpg)
Introduction (About)
• Wiebe Walstra
• Wiebe@CARYA
![Page 4: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/4.jpg)
Introduction
![Page 5: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/5.jpg)
Introduction
• What are dynamic panes?
• The code is not:• A product• Finished• Polished
• The code is:• Working for me• Flexible• Freely available
• Omitting 90% of the details
![Page 6: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/6.jpg)
Introduction
DEMO
![Page 7: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/7.jpg)
A Scaling VI
![Page 8: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/8.jpg)
A Scaling VI
• Scaling anything\everything is a problem
• GObject Position is read\write
• GObject Bounds is read only
• Set Size is a pain
![Page 9: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/9.jpg)
A Scaling VI
![Page 10: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/10.jpg)
A Scaling VI
![Page 11: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/11.jpg)
A Scaling VI
![Page 12: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/12.jpg)
A Scaling VISpecial scaling for graphs
and subpanels
![Page 13: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/13.jpg)
A Scaling VI
![Page 14: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/14.jpg)
A Scaling VI
![Page 15: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/15.jpg)
A Scaling VI
DEMO
Object
+ Init Object+ Scale
![Page 16: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/16.jpg)
A Scaling VI
0.0 1.0
Bounds x’ = Ax + B
0.0
1.0y’ = Ay + B
![Page 17: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/17.jpg)
A Scaling VI
DEMO
![Page 18: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/18.jpg)
A scaling class hierarchy
![Page 19: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/19.jpg)
A scaling class hierarchy
![Page 20: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/20.jpg)
A scaling class hierarchy
![Page 21: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/21.jpg)
A Scaling VI
Object
+ Init Object+ Resize
Viewport
+ Init Viewport+ Resize
![Page 22: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/22.jpg)
A scaling class hierarchy
DEMO
![Page 23: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/23.jpg)
A Scaling VI
Object
+ Init Object+ Resize
Viewport
+ Init Viewport+ Resize
Divider
+ Init Divider+ Resize
![Page 24: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/24.jpg)
A scaling class hierarchy
DEMO
![Page 25: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/25.jpg)
A Scaling VI
Object
+ Init Object+ Resize
Viewport
+ Init Viewport+ Resize
Divider
+ Init Divider+ Resize
Common parent. (Why?)
![Page 26: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/26.jpg)
A Scaling VI
Object
+ Init Object+ Resize
Viewport
+ Init Viewport+ Resize
Splitter
+ Init Splitter+ Resize
IObject
+ Resize
What if splitter has a splitter?
![Page 27: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/27.jpg)
A Scaling VI
Object
+ Init Object+ Resize
Viewport
+ Init Viewport+ Resize
Splitter
+ Init Splitter+ Resize
IObject
+ Resize
Splitter and Viewport mostly
the same!
![Page 28: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/28.jpg)
Object
+ Init Object+ Resize
IContainer
# Set Items+ Resize
Viewport
+ Init Viewport
IObject
+ Resize
Splitter
+ Init Splitter
How does Icontainerknow how to scale?
![Page 29: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/29.jpg)
Object
+ Init Object+ Resize
IContainer
# Set Items# Distribute+ Resize
Viewport
# Distribute+ Init Viewport
IObject
+ Resize
Splitter
# Distribute+ Init Splitter
CLASSHIERARCHY
![Page 30: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/30.jpg)
OBJECTHIERARCHY
![Page 31: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/31.jpg)
Adding interaction
![Page 32: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/32.jpg)
Object
…
IContainer
…+Show Hide (Label)
IObject
…+ Set Label+ Show Hide (Label)
Show\hide
![Page 33: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/33.jpg)
DEMO
![Page 34: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/34.jpg)
Adding interaction
![Page 35: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/35.jpg)
Adding interaction
![Page 36: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/36.jpg)
Adding interaction
![Page 37: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/37.jpg)
Object
…
IContainer
…
Viewport
…
IObject
…
Splitter
…
Interaction
…
![Page 38: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/38.jpg)
Object
…
IContainer
…
Viewport
…
IObject
…
Splitter
…
Interaction
…+ On Mouse Move
![Page 39: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/39.jpg)
Object
…
IContainer
…# Hit Splitter
Viewport
…
IObject
…# Hit Splitter
Splitter
…# Hit Splitter
Interaction
…+ On Mouse Move
![Page 40: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/40.jpg)
Object
…
IContainer
…# Hit Splitter+ Resize Pane
Viewport
…
IObject
…# Hit Splitter
Splitter
…# Hit Splitter+ Resize Pane
Interaction
…+ On Mouse Move
![Page 41: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/41.jpg)
Adding interaction
Start splitter VIs
Handled by class
![Page 42: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/42.jpg)
Adding interaction
![Page 43: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/43.jpg)
Adding interaction
DEMO
![Page 44: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/44.jpg)
Decoupling
![Page 45: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/45.jpg)
Decoupling
![Page 46: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/46.jpg)
Object
…
IContainer
…
Viewport
…
IObject
…
Splitter
…
Interaction
…
Interaction by reference
+ Init Interaction by referenceALL METHODS
![Page 47: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/47.jpg)
Decoupling
![Page 48: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/48.jpg)
Decoupling
![Page 49: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/49.jpg)
Decoupling
DEMO
![Page 50: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/50.jpg)
Afterthoughts
![Page 51: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/51.jpg)
Afterthoughts
![Page 52: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/52.jpg)
Afterthoughts
• Plays nice with SubPanels
• More icing on the cake
• Min, max
• Hit detect
• Show Hide is a reg.ex.
• Query visibility
• Events
• Alternatives container
• Update objects in a container
• Load\store screen (coming)
![Page 53: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/53.jpg)
Afterthoughts
• Place to put it
• Documentation, Examples, Manual
• Nasty LV bug
![Page 55: GUIs with dynamic panes - Argenta · Introduction •What are dynamic panes? •The code is not: •A product •Finished •Polished •The code is: •Working for me •Flexible](https://reader033.vdocuments.us/reader033/viewer/2022060717/607d40bf0e307a51665e4baa/html5/thumbnails/55.jpg)
Questions