Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / HelpSource / Classes / EZGui.schelp
blob35d45c52133ebfe581690be42f83d5dc43c2b851
1 class:: EZGui
2 summary:: An abstract superclass for EZ widget wrappers
3 categories:: GUI>EZ-GUI
4 related:: Classes/EZListView, Classes/EZPopUpMenu, Classes/EZSlider, Classes/EZNumber, Classes/EZRanger, Classes/EZKnob
6 description::
7 Users will not normally directly create instances of EZGui, but only use it through its subclasses. It provides the basic mechanisms for various EZ widget wrappers. It also provides a standard for EZ GUI Classes, and new EZ Classes should subclass EZGUI to help keep a consistent user interface.
10 instancemethods::
12 subsection:: Accessing Instance Variables
14 method:: view
15 Returns the enclosing link::Classes/CompositeView::.
17 method:: bounds
18 Returns the bounds of the enclosing link::Classes/CompositeView::.
20 method:: label
21 Sets/gets it the label. Will add the label view if none was initially created.
22 argument:: string
23 An Instance of link::Classes/String::.
25 method:: window
26 Returns the window if you used the popUp window function.
29 subsection:: Accessing GUI options
31 method:: alwaysOnTop
32 Makes the popup window always on top, if there is one.
33 argument:: bool
34 An Instance of link::Classes/Boolean::. Default is false.
36 method:: visible
37 Sets/gets it the component views are visible.
38 argument:: bool
39 An Instance of link::Classes/Boolean::. Default is true.
41 method:: enabled
42 Sets/gets if the list is enabled.
43 argument:: bool
44 An Instance of link::Classes/Boolean::. Default is true.
46 method:: onClose
47 Sets/gets the onClose function of either code::view:: or code::window::, depending on whether the EZ view used a popup window.
48 argument:: func
49 An Instance of link::Classes/Function:: or link::Classes/FunctionList::.
51 method:: font
52 argument:: font
53 An instance of link::Classes/Font::.
56 subsection:: Subclassing
58 EZGui provides a standard and basic tools for most EZ classes. If you make a new EZ class, then subclass EZGui, and override the necessary methods. If your class only has a label and a widget, chances are, you need to override nothing, but only need to write the  new and init class methods. See existing subclasses of EZGui for examples of this. You may also want to override the following:
60 method:: widget
61 Returns the active widget. Subclasses will typically refer to it or ignore it, e.g.:
62 code::
63 MyEZClass{
64         myOtherMethods{}
65         ....
66         listView{ ^widget }
70 method:: action
71 Gets/sets the action of the EZ class instance.
72 argument:: func
73 An Instance of link::Classes/Function:: or link::Classes/FunctionList::.
75 method:: value
76 Gets/sets the value of the code::widget::. Does not perform the action.
77 argument:: val
78 An integer.
80 method:: valueAction
81 Gets/sets the value of the widget. Performs do action.
82 argument:: val
83 An integer.
85 method:: doAction
86 Performs code::this.action.value(this)::.
89 subsection:: Internal Utilities
91 method:: prSubViewBounds
92 This calculates the bounds of the subviews and the gaps. It returns an array of Rects, which depends on how many subview there are. Subclasses override this if they have more than one widget.
94 method:: prMakeView
95 Called by init. Returns code::[view, bounds]::. The container is either the enclosing Container, or a pop up window with a container.
97 method:: prSetViewParams
98 Only defined by some subclasses. Sets the code::resize::  and code::align:: of all the views, according to the state of code::layout::.
100 method:: prMakeMarginGap
101 Called in the init method of all subclasses. Sets the margin and gap of code::view::. By default, it tries to get its parent's gap, otherwise it defaults to code::2@2::. Setting code::argGap:: overrides these.