The Inbox: Morphic-sjce.1465.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

The Inbox: Morphic-sjce.1465.mcz

commits-2
A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-sjce.1465.mcz

==================== Summary ====================

Name: Morphic-sjce.1465
Author: sjce
Time: 21 March 2019, 10:43:01.809481 pm
UUID: f283ce64-3557-483a-971f-43ad678deef9
Ancestors: Morphic-eem.1464

Trying to open the debugger halo on the resulting window results in a MNU
Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:  

Trying to grab the window results in a MNU Text>>truncateTo:
in Morph>>nameForUndoWording that needs a similar change

=============== Diff against Morphic-eem.1464 ===============

Item was changed:
  ----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
  doDebug: evt with: menuHandle
  "Ask hand to invoke the a debugging menu for my inner target.  If shift key is down, immediately put up an inspector on the inner target"
 
  | menu |
  evt shiftPressed ifTrue: [
  evt hand removeHalo.
  ^ innerTarget inspectInMorphic: evt].
 
  menu := innerTarget buildDebugMenu: evt hand.
+ menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
- menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
  menu popUpEvent: evt in: self world.
  evt hand removeHalo.!

Item was changed:
  ----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
  nameForUndoWording
  "Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"
 
  | aName |
  aName := self knownName ifNil: [self renderedMorph class name].
+ ^ aName asString truncateTo: 24!
- ^ aName truncateTo: 24!


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Levente Uzonyi
Do you have a reproducible case fixed by this commit?
To me it seems to be a workaround for a mistake: a morph's name is a
Text instead of a String.

Levente

On Thu, 21 Mar 2019, [hidden email] wrote:

> A new version of Morphic was added to project The Inbox:
> http://source.squeak.org/inbox/Morphic-sjce.1465.mcz
>
> ==================== Summary ====================
>
> Name: Morphic-sjce.1465
> Author: sjce
> Time: 21 March 2019, 10:43:01.809481 pm
> UUID: f283ce64-3557-483a-971f-43ad678deef9
> Ancestors: Morphic-eem.1464
>
> Trying to open the debugger halo on the resulting window results in a MNU
> Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:
>
> Trying to grab the window results in a MNU Text>>truncateTo:
> in Morph>>nameForUndoWording that needs a similar change
>
> =============== Diff against Morphic-eem.1464 ===============
>
> Item was changed:
>  ----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
>  doDebug: evt with: menuHandle
>   "Ask hand to invoke the a debugging menu for my inner target.  If shift key is down, immediately put up an inspector on the inner target"
>
>   | menu |
>   evt shiftPressed ifTrue: [
>   evt hand removeHalo.
>   ^ innerTarget inspectInMorphic: evt].
>
>   menu := innerTarget buildDebugMenu: evt hand.
> + menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
> - menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
>   menu popUpEvent: evt in: self world.
>   evt hand removeHalo.!
>
> Item was changed:
>  ----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
>  nameForUndoWording
>   "Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"
>
>   | aName |
>   aName := self knownName ifNil: [self renderedMorph class name].
> + ^ aName asString truncateTo: 24!
> - ^ aName truncateTo: 24!

Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Stephan Eggermont-3
Levente Uzonyi <[hidden email]> wrote:
> Do you have a reproducible case fixed by this commit?
To me it seems to be a workaround for a mistake: a morph's name is a
Text instead of a String.

‘Text’ asMorph openInWindowLabeled: ‘Text’ asText

You prefer additions to Text?

Stephan


Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

marcel.taeumel
In reply to this post by commits-2
Hi, there.

Can we find better ways for supporting String protocols in Text objects? Maybe through DNU?

Best,
Marcel

Am 21.03.2019 22:43:16 schrieb [hidden email] <[hidden email]>:

A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-sjce.1465.mcz

==================== Summary ====================

Name: Morphic-sjce.1465
Author: sjce
Time: 21 March 2019, 10:43:01.809481 pm
UUID: f283ce64-3557-483a-971f-43ad678deef9
Ancestors: Morphic-eem.1464

Trying to open the debugger halo on the resulting window results in a MNU
Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:

Trying to grab the window results in a MNU Text>>truncateTo:
in Morph>>nameForUndoWording that needs a similar change

=============== Diff against Morphic-eem.1464 ===============

Item was changed:
----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
doDebug: evt with: menuHandle
"Ask hand to invoke the a debugging menu for my inner target. If shift key is down, immediately put up an inspector on the inner target"

| menu |
evt shiftPressed ifTrue: [
evt hand removeHalo.
^ innerTarget inspectInMorphic: evt].

menu := innerTarget buildDebugMenu: evt hand.
+ menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
- menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
menu popUpEvent: evt in: self world.
evt hand removeHalo.!

Item was changed:
----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
nameForUndoWording
"Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"

| aName |
aName := self knownName ifNil: [self renderedMorph class name].
+ ^ aName asString truncateTo: 24!
- ^ aName truncateTo: 24!




Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Hannes Hirzel
In reply to this post by Stephan Eggermont-3
On 3/22/19, Stephan Eggermont <[hidden email]> wrote:
> Levente Uzonyi <[hidden email]> wrote:
>> Do you have a reproducible case fixed by this commit?
> To me it seems to be a workaround for a mistake: a morph's name is a
> Text instead of a String.
>
> ‘Text’ asMorph openInWindowLabeled: ‘Text’ asText

> You prefer additions to Text?
>
> Stephan

Hello Stephan

If I execute


    'My text' asMorph openInWindowLabeled: 'My window' asText

in Squeak 5.3alpha 68021 I get a tiny window (see screen shot). If I
want to grab it I get an error message. So window labels can not be
texts.


    'My text' asMorph openInWindowLabeled: 'My window' asString

does not exhibit this behaviour. However the window is black. So the
coding idiom to open a Morph in a window with a particular label must
be different.

http://wiki.squeak.org/squeak/6371
http://wiki.squeak.org/squeak/6347

have notes with some relevance for this issue.

For example #openInWindow: works fine. In class Morph  #openInWindow:
is implemented.

example:

p := PasteUpMorph new.
p extent: 600@1000.
p layoutPolicy: TableLayout new.
p listDirection: #leftToRight.
p wrapCentering: #topLeft.
p wrapDirection: #topToBottom.


p layoutPolicy: TableLayout new;
    listDirection: #topToBottom;
    color: Color white.
sp := ScrollPane new extent: 600@500.
sp scroller addMorph: p.

Project allNames asSortedCollection do:
  [ :aName | p addMorph:
        (ProjectViewMorph on: (Project named: aName)) ].
p color: Color green.

sp openInWindow: 'Projects'.
sp setScrollDeltas.


As Levente writes, the test case needs to be specified in more
details. Different patches might be needed.


--Hannes

Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Hannes Hirzel
P.S. The screen shot mentioned in the previous mail.

On 3/22/19, H. Hirzel <[hidden email]> wrote:

> On 3/22/19, Stephan Eggermont <[hidden email]> wrote:
>> Levente Uzonyi <[hidden email]> wrote:
>>> Do you have a reproducible case fixed by this commit?
>> To me it seems to be a workaround for a mistake: a morph's name is a
>> Text instead of a String.
>>
>> ‘Text’ asMorph openInWindowLabeled: ‘Text’ asText
>
>> You prefer additions to Text?
>>
>> Stephan
>
> Hello Stephan
>
> If I execute
>
>
>     'My text' asMorph openInWindowLabeled: 'My window' asText
>
> in Squeak 5.3alpha 68021 I get a tiny window (see screen shot). If I
> want to grab it I get an error message. So window labels can not be
> texts.
>
>
>     'My text' asMorph openInWindowLabeled: 'My window' asString
>
> does not exhibit this behaviour. However the window is black. So the
> coding idiom to open a Morph in a window with a particular label must
> be different.
>
> http://wiki.squeak.org/squeak/6371
> http://wiki.squeak.org/squeak/6347
>
> have notes with some relevance for this issue.
>
> For example #openInWindow: works fine. In class Morph  #openInWindow:
> is implemented.
>
> example:
>
> p := PasteUpMorph new.
> p extent: 600@1000.
> p layoutPolicy: TableLayout new.
> p listDirection: #leftToRight.
> p wrapCentering: #topLeft.
> p wrapDirection: #topToBottom.
>
>
> p layoutPolicy: TableLayout new;
>     listDirection: #topToBottom;
>     color: Color white.
> sp := ScrollPane new extent: 600@500.
> sp scroller addMorph: p.
>
> Project allNames asSortedCollection do:
>   [ :aName | p addMorph:
> (ProjectViewMorph on: (Project named: aName)) ].
> p color: Color green.
>
> sp openInWindow: 'Projects'.
> sp setScrollDeltas.
>
>
> As Levente writes, the test case needs to be specified in more
> details. Different patches might be needed.
>
>
> --Hannes
>



Result_of_aString_asMorph_openInWindowLabeled__Screenshot_2019-03-22.png (112K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Hannes Hirzel
Three cases which work fine:

1.

    ((Morph new extent: 480@320; color: Color white) addMorph: 'my
string' asMorph) openInWindowLabeled: '480x320 (HVGA) resolution'




2.
If I do not indicate a color for the container morph then I get the
default color for a new morph which is blue.

    ((Morph new extent: 480@320) addMorph: 'my string' asMorph)
openInWindowLabeled: '480x320 (HVGA) resolution'



3.
And if I do not give a morph extent then I get the default size, but
the window works fine.

    (Morph new  addMorph: 'my string' asMorph) openInWindowLabeled:
'default morph object'




On 3/22/19, H. Hirzel <[hidden email]> wrote:

> P.S. The screen shot mentioned in the previous mail.
>
> On 3/22/19, H. Hirzel <[hidden email]> wrote:
>> On 3/22/19, Stephan Eggermont <[hidden email]> wrote:
>>> Levente Uzonyi <[hidden email]> wrote:
>>>> Do you have a reproducible case fixed by this commit?
>>> To me it seems to be a workaround for a mistake: a morph's name is a
>>> Text instead of a String.
>>>
>>> ‘Text’ asMorph openInWindowLabeled: ‘Text’ asText
>>
>>> You prefer additions to Text?
>>>
>>> Stephan
>>
>> Hello Stephan
>>
>> If I execute
>>
>>
>>     'My text' asMorph openInWindowLabeled: 'My window' asText
>>
>> in Squeak 5.3alpha 68021 I get a tiny window (see screen shot). If I
>> want to grab it I get an error message. So window labels can not be
>> texts.
>>
>>
>>     'My text' asMorph openInWindowLabeled: 'My window' asString
>>
>> does not exhibit this behaviour. However the window is black. So the
>> coding idiom to open a Morph in a window with a particular label must
>> be different.
>>
>> http://wiki.squeak.org/squeak/6371
>> http://wiki.squeak.org/squeak/6347
>>
>> have notes with some relevance for this issue.
>>
>> For example #openInWindow: works fine. In class Morph  #openInWindow:
>> is implemented.
>>
>> example:
>>
>> p := PasteUpMorph new.
>> p extent: 600@1000.
>> p layoutPolicy: TableLayout new.
>> p listDirection: #leftToRight.
>> p wrapCentering: #topLeft.
>> p wrapDirection: #topToBottom.
>>
>>
>> p layoutPolicy: TableLayout new;
>>     listDirection: #topToBottom;
>>     color: Color white.
>> sp := ScrollPane new extent: 600@500.
>> sp scroller addMorph: p.
>>
>> Project allNames asSortedCollection do:
>>   [ :aName | p addMorph:
>> (ProjectViewMorph on: (Project named: aName)) ].
>> p color: Color green.
>>
>> sp openInWindow: 'Projects'.
>> sp setScrollDeltas.
>>
>>
>> As Levente writes, the test case needs to be specified in more
>> details. Different patches might be needed.
>>
>>
>> --Hannes
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Hannes Hirzel
The attached change set fixes the case

     Morph new openInWindowLabeled: 'Morph new'.

and also

     (Morph new addMorph: 'My String' asMorph) openInWindowLabeled: 'My String'.

but not

      'My String' asMorph  openInWindowLabeled: 'My String'.

as the default color of the window which is opened is black.


---

The change set introduces a method

SystemWindow class>>minimumExtent
        "answer the minimum SystemWindow extent"
       
        ^ 160 @ 100


against which the extent of the morph object to be wrapped by the
SystemWindow object is checked and if smaller the extent of the morph
object is set to that minimum extent.

--HH



openInWindowLabeled: fix.1.cs (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Eliot Miranda-2
In reply to this post by marcel.taeumel

On Mar 22, 2019, at 12:19 AM, Marcel Taeumel <[hidden email]> wrote:

Hi, there.

Can we find better ways for supporting String protocols in Text objects? Maybe through DNU?

Look at VisualWorks.  I can’t remember how it’s solved there but it’s way better than Squeak.  I *think* it introduces an abstract class CharacterArray above String & Text and moves as much protocol there as possible.  MNU would be a horrible approach IMO.


Best,
Marcel

Am 21.03.2019 22:43:16 schrieb [hidden email] <[hidden email]>:

A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-sjce.1465.mcz

==================== Summary ====================

Name: Morphic-sjce.1465
Author: sjce
Time: 21 March 2019, 10:43:01.809481 pm
UUID: f283ce64-3557-483a-971f-43ad678deef9
Ancestors: Morphic-eem.1464

Trying to open the debugger halo on the resulting window results in a MNU
Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:

Trying to grab the window results in a MNU Text>>truncateTo:
in Morph>>nameForUndoWording that needs a similar change

=============== Diff against Morphic-eem.1464 ===============

Item was changed:
----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
doDebug: evt with: menuHandle
"Ask hand to invoke the a debugging menu for my inner target. If shift key is down, immediately put up an inspector on the inner target"

| menu |
evt shiftPressed ifTrue: [
evt hand removeHalo.
^ innerTarget inspectInMorphic: evt].

menu := innerTarget buildDebugMenu: evt hand.
+ menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
- menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
menu popUpEvent: evt in: self world.
evt hand removeHalo.!

Item was changed:
----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
nameForUndoWording
"Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"

| aName |
aName := self knownName ifNil: [self renderedMorph class name].
+ ^ aName asString truncateTo: 24!
- ^ aName truncateTo: 24!





Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

marcel.taeumel
Hi Eliot,

yes, I would also prefer inheritance (e.g. CharacterArray between ArrayedCollection and String/Text) over MNU.

Best,
Marcel

Am 22.03.2019 15:37:02 schrieb Eliot Miranda <[hidden email]>:


On Mar 22, 2019, at 12:19 AM, Marcel Taeumel <[hidden email]> wrote:

Hi, there.

Can we find better ways for supporting String protocols in Text objects? Maybe through DNU?

Look at VisualWorks.  I can’t remember how it’s solved there but it’s way better than Squeak.  I *think* it introduces an abstract class CharacterArray above String & Text and moves as much protocol there as possible.  MNU would be a horrible approach IMO.


Best,
Marcel

Am 21.03.2019 22:43:16 schrieb [hidden email] <[hidden email]>:

A new version of Morphic was added to project The Inbox:
http://source.squeak.org/inbox/Morphic-sjce.1465.mcz

==================== Summary ====================

Name: Morphic-sjce.1465
Author: sjce
Time: 21 March 2019, 10:43:01.809481 pm
UUID: f283ce64-3557-483a-971f-43ad678deef9
Ancestors: Morphic-eem.1464

Trying to open the debugger halo on the resulting window results in a MNU
Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:

Trying to grab the window results in a MNU Text>>truncateTo:
in Morph>>nameForUndoWording that needs a similar change

=============== Diff against Morphic-eem.1464 ===============

Item was changed:
----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
doDebug: evt with: menuHandle
"Ask hand to invoke the a debugging menu for my inner target. If shift key is down, immediately put up an inspector on the inner target"

| menu |
evt shiftPressed ifTrue: [
evt hand removeHalo.
^ innerTarget inspectInMorphic: evt].

menu := innerTarget buildDebugMenu: evt hand.
+ menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
- menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
menu popUpEvent: evt in: self world.
evt hand removeHalo.!

Item was changed:
----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
nameForUndoWording
"Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"

| aName |
aName := self knownName ifNil: [self renderedMorph class name].
+ ^ aName asString truncateTo: 24!
- ^ aName truncateTo: 24!





Reply | Threaded
Open this post in threaded view
|

Re: The Inbox: Morphic-sjce.1465.mcz

Tobias Pape
Hi all

> On 25.03.2019, at 09:52, Marcel Taeumel <[hidden email]> wrote:
>
> Hi Eliot,
>
> yes, I would also prefer inheritance (e.g. CharacterArray between ArrayedCollection and String/Text) over MNU.

If we go that way, lets do it slightly GemStone-compatible where (for other reasons, admittedly) String inherits from
        CharacterCollection
(which is a SequenceableCollection).

I say slightly, because actually, Text there inherits from ArrayedCollection from when Dale ported that from Squeak to GemStone…

Best regards
        -Tobias


>
> Best,
> Marcel
>> Am 22.03.2019 15:37:02 schrieb Eliot Miranda <[hidden email]>:
>>
>>
>> On Mar 22, 2019, at 12:19 AM, Marcel Taeumel <[hidden email]> wrote:
>>
>>> Hi, there.
>>>
>>> Can we find better ways for supporting String protocols in Text objects? Maybe through DNU?
>>
>> Look at VisualWorks.  I can’t remember how it’s solved there but it’s way better than Squeak.  I *think* it introduces an abstract class CharacterArray above String & Text and moves as much protocol there as possible.  MNU would be a horrible approach IMO.
>>
>>>
>>> Best,
>>> Marcel
>>>> Am 21.03.2019 22:43:16 schrieb [hidden email] <[hidden email]>:
>>>>
>>>> A new version of Morphic was added to project The Inbox:
>>>> http://source.squeak.org/inbox/Morphic-sjce.1465.mcz
>>>>
>>>> ==================== Summary ====================
>>>>
>>>> Name: Morphic-sjce.1465
>>>> Author: sjce
>>>> Time: 21 March 2019, 10:43:01.809481 pm
>>>> UUID: f283ce64-3557-483a-971f-43ad678deef9
>>>> Ancestors: Morphic-eem.1464
>>>>
>>>> Trying to open the debugger halo on the resulting window results in a MNU
>>>> Text>>truncateWithElipsisTo: in HaloMorph>>doDebug:with:
>>>>
>>>> Trying to grab the window results in a MNU Text>>truncateTo:
>>>> in Morph>>nameForUndoWording that needs a similar change
>>>>
>>>> =============== Diff against Morphic-eem.1464 ===============
>>>>
>>>> Item was changed:
>>>> ----- Method: HaloMorph>>doDebug:with: (in category 'private') -----
>>>> doDebug: evt with: menuHandle
>>>> "Ask hand to invoke the a debugging menu for my inner target. If shift key is down, immediately put up an inspector on the inner target"
>>>>
>>>> | menu |
>>>> evt shiftPressed ifTrue: [
>>>> evt hand removeHalo.
>>>> ^ innerTarget inspectInMorphic: evt].
>>>>
>>>> menu := innerTarget buildDebugMenu: evt hand.
>>>> + menu addTitle: (innerTarget externalName asString truncateWithElipsisTo: 40).
>>>> - menu addTitle: (innerTarget externalName truncateWithElipsisTo: 40).
>>>> menu popUpEvent: evt in: self world.
>>>> evt hand removeHalo.!
>>>>
>>>> Item was changed:
>>>> ----- Method: Morph>>nameForUndoWording (in category 'dropping/grabbing') -----
>>>> nameForUndoWording
>>>> "Return wording appropriate to the receiver for use in an undo-related menu item (and perhaps elsewhere)"
>>>>
>>>> | aName |
>>>> aName := self knownName ifNil: [self renderedMorph class name].
>>>> + ^ aName asString truncateTo: 24!
>>>> - ^ aName truncateTo: 24!
>>>>
>>>>
>>>
>