<div dir="ltr"><div>I don't think we have any pluggable sliders or pluggable canvases <br></div><div><br></div><div>Best,</div><div>Karl<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 11, 2023 at 4:38 PM Eduardo Ochs <<a href="mailto:eduardoochs@gmail.com">eduardoochs@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi list,<br><br>I'm trying to implement in Squeak something like this demo of sliders<br>in Geogebra:<br><br> <a href="https://www.youtube.com/watch?v=Q9p-Oz8OyfY#t=4m55s" target="_blank">https://www.youtube.com/watch?v=Q9p-Oz8OyfY#t=4m55s</a><br><br>note the "#t=4m55s" in the link; it should open the video in the part<br>in which the presenter shows that two of the sliders control the<br>coordinates of the center of the circle and the third one controls its<br>radius or the circle.<br><br>I was able to write a class with very stripped-down versions of these<br>methods,<br><br> HelpBrowser >> #buildWith:<br> Browser >> #buildDefaultBrowserWith:<br><br>in which all the subwindows were replaced by instances of "builder<br>pluggableListSpec new". Its layout should be easy to change, and I<br>will try to change its pluggableLists by other objects in a series of<br>small steps.<br><br>QUESTION: how do I replace one of its subwindows by a horizontal<br>slider that is always visible and another of its subwindows by a<br>canvas? Are there "PluggableSlider"s and "PluggableCanvas"es? Which<br>classes use them? Pointers, please?...<br><br>My code is both copied below and attached. It mentions a class "See"<br>in its comments; if anyone wants to take a look at that, the<br>instructions are just:<br><br> 1. Download and "fileIn" this .st file:<br><br> <a href="http://anggtwu.net/SQUEAK/Category-Edrx.st" target="_blank">http://anggtwu.net/SQUEAK/Category-Edrx.st</a><br> <a href="http://anggtwu.net/SQUEAK/Category-Edrx.st.html" target="_blank">http://anggtwu.net/SQUEAK/Category-Edrx.st.html</a><br><br> 2. Run "See see".<br><br>Thanks in advance!<br> Eduardo Ochs<br> <a href="http://anggtwu.net/eev-squeak.html" target="_blank">http://anggtwu.net/eev-squeak.html</a><br><br>Here is the code:<br><div>--snip--snip--</div><div><br></div><div>'From Squeak6.0 of 23 January 2023 [latest update: #22121] on 11 March 2023 at 12:10:28 pm'!<br>Model subclass: #TestWindowSpec<br> instanceVariableNames: ''<br> classVariableNames: ''<br> poolDictionaries: ''<br> category: 'Category-Edrx'!<br>!TestWindowSpec commentStamp: 'Edrx 3/11/2023 02:09' prior: 0!<br>Try: See edrxGuide: #windowSpecs.!<br><br><br>!TestWindowSpec methodsFor: 'as yet unclassified' stamp: 'Edrx 3/11/2023 03:10'!<br>buildCodePaneWith: builder<br> | listSpec |<br> listSpec := builder pluggableListSpec new.<br> ^ listSpec.<br>! !<br><br>!TestWindowSpec methodsFor: 'as yet unclassified' stamp: 'Edrx 3/11/2023 03:10'!<br>buildMessageCategoryListWith: builder<br> | listSpec |<br> listSpec := builder pluggableListSpec new.<br> ^ listSpec.<br>! !<br><br>!TestWindowSpec methodsFor: 'as yet unclassified' stamp: 'Edrx 3/11/2023 03:10'!<br>buildMessageListWith: builder<br> | listSpec |<br> listSpec := builder pluggableListSpec new.<br> ^ listSpec.<br>! !<br><br>!TestWindowSpec methodsFor: 'as yet unclassified' stamp: 'Edrx 3/11/2023 03:10'!<br>buildSystemCategoryListWith: builder<br> | listSpec |<br> listSpec := builder pluggableListSpec new.<br> ^ listSpec.<br>! !<br><br>!TestWindowSpec methodsFor: 'as yet unclassified' stamp: 'Edrx 3/11/2023 12:10'!<br>buildWith: builder<br> "See:<br> See edrxGuide: #windowSpecs.<br> See cm: (HelpBrowser >> #buildWith:).<br> See cm: (Browser >> #buildDefaultBrowserWith:).<br> Tests:<br> See haltAt: #buildBrowser.<br> See see.<br><br> self halt.<br> ToolBuilder open: (TestWindowSpec new).<br> "<br> | max windowSpec |<br> max := 0.42.<br> windowSpec := self buildWindowWith: builder specs: {<br> (0@0 corner: 0.25@max) -> [self buildSystemCategoryListWith: builder].<br> (0.5@0 corner: 0.75@max) -> [self buildMessageCategoryListWith: builder].<br> (0.75@0 corner: 1@max) -> [self buildMessageListWith: builder].<br> (0@max corner: 1@1) -> [self buildCodePaneWith: builder].<br> }.<br> windowSpec defaultFocus: #systemCategoryList.<br><br> ^builder build: windowSpec<br>! !<br></div><div><br></div></div>
<br>
</blockquote></div>