2015-10-30 19:30 GMT+01:00 Andrei Chis <chisvasileandrei@gmail.com>:
Cool example. I slightly modified it and added it to the glamour examples :)
| browser morph | morph := StringMorph new. morph font:(LogicalFont familyName: 'Source Code Pro' pointSize: 30). browser := GLMTabulator new. browser row: #main; row: #preview. browser transmit to: #main; andShow: [ :a | a text onChangeOfPort: #text act: [ :text | morph contents:text text] ]. browser transmit to: #preview; andShow: [ :a | a morph title: 'Preview'; display: [ morph ] ].
^ browser openOn: 'some text'
cool!
On Fri, Oct 30, 2015 at 11:47 AM, Nicolai Hess <nicolaihess@gmail.com> wrote:
2015-10-30 16:32 GMT+01:00 Andrei Chis <chisvasileandrei@gmail.com>:
Hi,
You can try this:
composite := GLMCompositePresentation new. composite pharoPlayground title: 'Script'; variableBindings: [ { #x -> 1. #y -> 2 } ]. composite openOn: 'x+y'.
For the moment only script presentations can have variables.
Btw #pharoPlayground and #rubricText will be deprecated in the latest version in favour of #pharoScript and #text
Cheers, Andrei
On Fri, Oct 30, 2015 at 11:14 AM, Torsten Bergmann <astares@gmx.de> wrote:
Hi,
if one has an inspector extension that shows a textual iVar of an object representing code (using #rubricText, #pharoMethod or #pharoPlayground) as in this example:
gtInspectorSourceIn: composite <gtInspectorPresentationOrder: 30> ^ composite pharoMethod title: 'Source'; smalltalkClass: [ self methodClass ]; display: [ self getSource ]; act: [ self browse ] icon: GLMUIThemeExtraIcons glamorousBrowse entitled: 'Browse'
What is the best/correct way to set the iVar when the text is typed so the state of the iVar represents the lively editing in the inspector extension?
Or is there a way to realize this somehow with Glamour ports using the #text port?
you can define an action on a port change: onChangeOfPort:act:
| browser morph | morph := StringMorph new openInWorld. morph font:(LogicalFont familyName: 'Source Code Pro' pointSize: 30). browser := GLMTabulator new. browser row: #main. (browser transmit) to: #main; andShow: [ :a | a rubricText onChangeOfPort: #text act: [ :text | morph contents:text text] ].
^ browser openOn:'type some text'
This will open a StringMorph and a GlamourBrowser. If you change the text in the browser, it will change the contents of the string morph.
Thanks T.