On Oct 9, 2011, at 3:28 PM, Igor Stasenko wrote:
On 9 October 2011 08:58, Stéphane Ducasse <stephane.ducasse@inria.fr> wrote:
At some point we should have a UI builder with specs like in vw. I should do a little proto to show how it can work and that people understand the value and help but I want to finish rpackage and bootstrap first
with specs? then it will be same as toolbuilder, no?
No VWspec are declarative. Here is an example: composite structure. The UIBuilder takes that as input and produce a widget. windowSpec "Tools.UIPainter new openOnClass: self andSelector: #windowSpec" <resource: #canvas> ^#(#{UI.FullSpec} #window: #(#{UI.WindowSpec} #label: 'Author Coloring Control' #bounds: #(#{Graphics.Rectangle} 535 279 823 658 ) ) #component: #(#{UI.SpecCollection} #collection: #( #(#{UI.CompositeSpecCollection} #collection: #( #(#{UI.SequenceViewSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 0 0 0 1.0 0 1.0 ) #name: #AuthorList #model: #authorList #multipleSelections: true #useModifierKeys: true #selectionType: #checkMark ) ) #compositeSpec: #(#{UI.CompositeSpec} #layout: #(#{Graphics.LayoutFrame} 0 0 25 0 0 1 0 1 ) #name: #Composite1 ) ) #(#{UI.LabelSpec} #layout: #(#{Graphics.LayoutSizedOrigin} 20 0.0 4 0 140 20 ) #name: #Label1 #label: 'Select users to disable them:' ) ) ) )
my point is that the role of uimanager is to provide protocol(s) for basic stuff, and dont make it too wide. As for ui builder , i think it would be nice to have real ui editor which can serialize UI either into source code,
not in source code, in spec.
or since we have fuel, we can serialize it into a bunch of bytes and then store them either in file or in image.
Saving objects will lead to death as soon as we change the objects shape. Stef
Stef
Hi!
There is this method:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= UIManager>>multiLineRequest: queryString centerAt: aPoint initialAnswer: defaultAnswer answerHeight: answerHeight "Create a multi-line instance of me whose question is queryString with the given initial answer. Invoke it centered at the given point, and answer the string the user accepts. Answer nil if the user cancels. An empty string returned means that the ussr cleared the editing area and then hit 'accept'. Because multiple lines are invited, we ask that the user use the ENTER key, or (in morphic anyway) hit the 'accept' button, to submit; that way, the return key can be typed to move to the next line."
self deprecated: 'Use multiLineRequest: queryString centerAt: aPoint initialAnswer: defaultAnswer answerHeight: ' on: '7 September 2011' in: 'Pharo1.4'. ^self subclassResponsibility -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Apparently, the deprecation message says to use this very method. Which method should I use? Shall I open an entry?
i really wonder why such things are there? UI manager has to provide a simple interface, without any sophisticated stuff, like multiline/multibutton etc. Lets stop bloating the interface, it leads nowhere.
-- Best regards, Igor Stasenko.
-- Best regards, Igor Stasenko.