Pharo-dev
By thread
pharo-dev@lists.pharo.org
By month
Messages by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
June 2011
- 110 participants
- 1097 messages
[Pharo-project] OCompletion error "MessageNotUnderstood: receiver of "morph" is nil"
by Mariano Martinez Peck
This happens when the popup of OCompletion is open and you do something else
then accepting OCompletion. The popup is there, alive, and after a short
timeout it should be closed. But when trying to do so....20 debuggers appear
in my image.
ECMenuMorph >> handleMouseEnter: anEvent
self activeHand newKeyboardFocus: controller editor morph.
anEvent wasHandled: true.
it seems "controller editor" is answering nil. This is the stack:
13 June 2011 12:27:25 pm
VM: Mac OS - intel - 1067 - Croquet Closure Cog VM [CoInterpreter
VMMaker.oscog-eem.56] Croquet Cog 3.0.0
Image: Pharo1.3a [Latest update: #13257]
UndefinedObject(Object)>>doesNotUnderstand: #morph
Receiver: nil
Arguments and temporary variables:
aMessage: morph
exception: MessageNotUnderstood: receiver of "morph" is nil
resumeValue: nil
Receiver's instance variables:
nil
OMenuMorph(ECMenuMorph)>>handleMouseEnter:
Receiver: an OMenuMorph(869793792)
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseEnter 48058628 nil]
Receiver's instance variables:
bounds: 109@502 corner: 309@518
owner: nil
submorphs: #()
fullBounds: 109@502 corner: 309@518
color: (TranslucentColor r: 0.9 g: 0.9 b: 0.9 alpha: 0.016)
extension: a MorphExtension (873725952) [eventHandler = an
EventHandler; mouseD...etc...
borderWidth: 1
borderColor: (TranslucentColor r: 0.5 g: 0.5 b: 0.5 alpha:
0.016)
selected: 1
firstVisible: 1
titleStringMorph: nil
controller: an OController
context: an OContext
pageHeight: 4
itemHeight: 16
detailMorph: nil
detailPosition: 309@502
lastActivity: 48055845
MouseMoveEvent(MouseEvent)>>sentTo:
Receiver: [324@500 273@512 mouseEnter 48058628 nil]
Arguments and temporary variables:
anObject: an OMenuMorph(869793792)
Receiver's instance variables:
timeStamp: 48058628
source: a HandMorph(843055104)
windowIndex: nil
type: #mouseEnter
buttons: 0
position: 273@512
handler: nil
wasHandled: false
startPoint: 324@500
trail: {(290@508). (273@512)}
MouseMoveEvent>>sentTo:
Receiver: [324@500 273@512 mouseEnter 48058628 nil]
Arguments and temporary variables:
anObject: an OMenuMorph(869793792)
Receiver's instance variables:
timeStamp: 48058628
source: a HandMorph(843055104)
windowIndex: nil
type: #mouseEnter
buttons: 0
position: 273@512
handler: nil
wasHandled: false
startPoint: 324@500
trail: {(290@508). (273@512)}
OMenuMorph(Morph)>>handleEvent:
Receiver: an OMenuMorph(869793792)
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseEnter 48058628 nil]
Receiver's instance variables:
bounds: 109@502 corner: 309@518
owner: nil
submorphs: #()
fullBounds: 109@502 corner: 309@518
color: (TranslucentColor r: 0.9 g: 0.9 b: 0.9 alpha: 0.016)
extension: a MorphExtension (873725952) [eventHandler = an
EventHandler; mouseD...etc...
borderWidth: 1
borderColor: (TranslucentColor r: 0.5 g: 0.5 b: 0.5 alpha:
0.016)
selected: 1
firstVisible: 1
titleStringMorph: nil
controller: an OController
context: an OContext
pageHeight: 4
itemHeight: 16
detailMorph: nil
detailPosition: 309@502
lastActivity: 48055845
MouseOverHandler>>transform:from:andSendTo:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseEnter 48058628 nil]
originalEvent: [324@500 273@512 mouseMove 48058628 nil]
aMorph: an OMenuMorph(869793792)
transformedEvent: [324@500 273@512 mouseEnter 48058628 nil]
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
[self
transform: evt
from: anEvent
andSendTo: aLeftMorph] in
MouseOverHandler>>inform:to:originatedFrom:ifNotFocusedDo:
Receiver: a MouseOverHandler
Arguments and temporary variables:
evt: [324@500 273@512 mouseEnter 48058628 nil]
aLeftMorph: an OMenuMorph(869793792)
anEvent: [324@500 273@512 mouseMove 48058628 nil]
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
True>>ifTrue:ifFalse:
Receiver: true
Arguments and temporary variables:
trueAlternativeBlock: [self
transform: evt
from: anEvent
andSendTo: aLeft...etc...
falseAlternativeBlock: []
Receiver's instance variables:
true
MouseOverHandler>>inform:to:originatedFrom:ifNotFocusedDo:
Receiver: a MouseOverHandler
Arguments and temporary variables:
evt: [324@500 273@512 mouseEnter 48058628 nil]
aLeftMorph: an OMenuMorph(869793792)
anEvent: [324@500 273@512 mouseMove 48058628 nil]
aBlock: []
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
[:anEnteredMorph | self
inform: asMouseEnterEvent
to: anEnteredMorph
originatedFrom: anEvent
ifNotFocusedDo: []] in MouseOverHandler>>handleAsMouseEnter:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: an OMenuMorph(869793792)
asMouseEnterEvent: [324@500 273@512 mouseMove 48058628 nil]
anEnteredMorph: [324@500 273@512 mouseEnter 48058628 nil]
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
Array(SequenceableCollection)>>reverseDo:
Receiver: an Array(an OMenuMorph(869793792))
Arguments and temporary variables:
aBlock: [:anEnteredMorph | self
inform: asMouseEnterEvent
to: anEnteredMorp...etc...
index: 1
Receiver's instance variables:
an Array(an OMenuMorph(869793792))
MouseOverHandler>>handleAsMouseEnter:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseMove 48058628 nil]
asMouseEnterEvent: [324@500 273@512 mouseEnter 48058628 nil]
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
MouseOverHandler>>processMouseOver:
Receiver: a MouseOverHandler
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseMove 48058628 nil]
Receiver's instance variables:
mouseOverMorphs: an Array(a ToggleMenuItemMorph(639369216)'Copy
to clipboard' a...etc...
enteredMorphs: a WriteStream #()
overMorphs: a WriteStream #()
leftMorphs: an OrderedCollection()
HandMorph>>handleEvent:
Receiver: a HandMorph(843055104)
Arguments and temporary variables:
anEvent: [324@500 273@512 mouseMove 48058628 nil]
evt: [324@500 273@512 mouseMove 48058628 nil]
ofs: nil
Receiver's instance variables:
bounds: 447@539 corner: 463@555
owner: a PasteUpMorph(425197568) [world]
submorphs: #()
fullBounds: 447@539 corner: 463@555
color: Color blue
extension: a MorphExtension (141295616) [eventHandler = an
EventHandler]
mouseFocus: nil
keyboardFocus: nil
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [447@539 mouseUp 48325024 nil]
targetOffset: 72@4
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 48325024 447 539 0 0 1 1)
lastKeyScanCode: 126
combinedChar: nil
HandMorph>>processEvents
Receiver: a HandMorph(843055104)
Arguments and temporary variables:
evt: [324@500 273@512 mouseMove 48058628 nil]
evtBuf: #(1 48058628 290 508 0 0 0 1)
type: 1
hadAny: false
Receiver's instance variables:
bounds: 447@539 corner: 463@555
owner: a PasteUpMorph(425197568) [world]
submorphs: #()
fullBounds: 447@539 corner: 463@555
color: Color blue
extension: a MorphExtension (141295616) [eventHandler = an
EventHandler]
mouseFocus: nil
keyboardFocus: nil
eventListeners: nil
mouseListeners: nil
keyboardListeners: nil
mouseClickState: nil
mouseOverHandler: a MouseOverHandler
lastMouseEvent: [447@539 mouseUp 48325024 nil]
targetOffset: 72@4
damageRecorder: a DamageRecorder
cacheCanvas: nil
cachedCanvasHasHoles: true
temporaryCursor: nil
temporaryCursorOffset: nil
hardwareCursor: nil
hasChanged: true
savedPatch: nil
userInitials: ''
lastEventBuffer: #(1 48325024 447 539 0 0 1 1)
lastKeyScanCode: 126
combinedChar: nil
[:h |
ActiveHand := h.
h processEvents.
ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
h: a HandMorph(843055104)
Receiver's instance variables:
hands: an Array(a HandMorph(843055104))
viewBox: 0@0 corner: 1397@877
canvas: a FormCanvas on: DisplayScreen(1397x877x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a
PreDebugWindow(851705856))(a PreDebu...etc...
lastStepTime: 48325012
lastStepMessage: nil
lastCycleTime: 48325032
alarms: a Heap()
lastAlarmTime: 48325012
menuBuilder: a PragmaMenuBuilder
Array(SequenceableCollection)>>do:
Receiver: an Array(a HandMorph(843055104))
Arguments and temporary variables:
aBlock: [:h |
ActiveHand := h.
h processEvents.
ActiveHand := nil]
index: 1
indexLimiT: 1
Receiver's instance variables:
an Array(a HandMorph(843055104))
WorldState>>handsDo:
Receiver: a WorldState
Arguments and temporary variables:
aBlock: [:h |
ActiveHand := h.
h processEvents.
ActiveHand := nil]
Receiver's instance variables:
hands: an Array(a HandMorph(843055104))
viewBox: 0@0 corner: 1397@877
canvas: a FormCanvas on: DisplayScreen(1397x877x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a
PreDebugWindow(851705856))(a PreDebu...etc...
lastStepTime: 48325012
lastStepMessage: nil
lastCycleTime: 48325032
alarms: a Heap()
lastAlarmTime: 48325012
menuBuilder: a PragmaMenuBuilder
WorldState>>doOneCycleNowFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(425197568) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(843055104))
viewBox: 0@0 corner: 1397@877
canvas: a FormCanvas on: DisplayScreen(1397x877x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a
PreDebugWindow(851705856))(a PreDebu...etc...
lastStepTime: 48325012
lastStepMessage: nil
lastCycleTime: 48325032
alarms: a Heap()
lastAlarmTime: 48325012
menuBuilder: a PragmaMenuBuilder
WorldState>>doOneCycleFor:
Receiver: a WorldState
Arguments and temporary variables:
aWorld: a PasteUpMorph(425197568) [world]
Receiver's instance variables:
hands: an Array(a HandMorph(843055104))
viewBox: 0@0 corner: 1397@877
canvas: a FormCanvas on: DisplayScreen(1397x877x32)
damageRecorder: a DamageRecorder
stepList: a Heap(StepMessage(#stepAt: -> a
PreDebugWindow(851705856))(a PreDebu...etc...
lastStepTime: 48325012
lastStepMessage: nil
lastCycleTime: 48325032
alarms: a Heap()
lastAlarmTime: 48325012
menuBuilder: a PragmaMenuBuilder
PasteUpMorph>>doOneCycle
Receiver: a PasteUpMorph(425197568) [world]
Arguments and temporary variables:
Receiver's instance variables:
bounds: 0@0 corner: 1397@877
owner: nil
submorphs: an Array(a TaskbarMorph(984088576) a
SystemWindow(17563648) a System...etc...
fullBounds: nil
color: (Color r: 0.97 g: 0.98 b: 1.0)
extension: a MorphExtension (666632192) [eventHandler = an
EventHandler] [othe...etc...
borderWidth: 0
borderColor: (Color r: 0.03 g: 0.02 b: 0.0)
backgroundMorph: nil
worldState: a WorldState
griddingOn: nil
[[World doOneCycle.
Processor yield.
false] whileFalse.
nil] in Project class>>spawnNewProcess
Receiver: Project
Arguments and temporary variables:
Receiver's instance variables:
superclass: Model
methodDict: a MethodDictionary(#beep->(Project>>#beep "a
CompiledMethod(6052904...etc...
format: 132
instanceVariables: nil
organization: ('*sound' beep)
('*ma object serialization' maTransientVariables ...etc...
subclasses: nil
name: #Project
classPool: a Dictionary(#UIProcess->a Process in nil )
sharedPools: nil
environment: a SystemDictionary(lots of globals)
category: #'System-Support'
traitComposition: {}
localSelectors: nil
[self value.
Processor terminateActive] in BlockClosure>>newProcess
Receiver: [[World doOneCycle.
Processor yield.
false] whileFalse.
nil]
Arguments and temporary variables:
Receiver's instance variables:
outerContext: Project class>>spawnNewProcess
startpc: 57
numArgs: 0
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #morph
OMenuMorph(ECMenuMorph)>>handleMouseEnter:
MouseMoveEvent(MouseEvent)>>sentTo:
MouseMoveEvent>>sentTo:
OMenuMorph(Morph)>>handleEvent:
MouseOverHandler>>transform:from:andSendTo:
[self
transform: evt
from: anEvent
andSendTo: aLeftMorph] in
MouseOverHandler>>inform:to:originatedFrom:ifNotFocusedDo:
True>>ifTrue:ifFalse:
MouseOverHandler>>inform:to:originatedFrom:ifNotFocusedDo:
[:anEnteredMorph | self
inform: asMouseEnterEvent
to: anEnteredMorph
originatedFrom: anEvent
ifNotFocusedDo: []] in MouseOverHandler>>handleAsMouseEnter:
Array(SequenceableCollection)>>reverseDo:
MouseOverHandler>>handleAsMouseEnter:
MouseOverHandler>>processMouseOver:
HandMorph>>handleEvent:
HandMorph>>processEvents
[:h |
ActiveHand := h.
h processEvents.
ActiveHand := nil] in WorldState>>doOneCycleNowFor:
Array(SequenceableCollection)>>do:
WorldState>>handsDo:
WorldState>>doOneCycleNowFor:
WorldState>>doOneCycleFor:
PasteUpMorph>>doOneCycle
[[World doOneCycle.
Processor yield.
false] whileFalse.
nil] in Project class>>spawnNewProcess
[self value.
Processor terminateActive] in BlockClosure>>newProcess
--
Mariano
http://marianopeck.wordpress.com
June 13, 2011
Re: [Pharo-project] Polymorph:PluggableMultiColumnListMorph vs.PluggableListMorph
by Gary Chambers
Bill,
Easy enough to add but some of the purposes of the helpers are:
* to not have any dependency upon specific morph classes
* to encourage use of parameters that should be uniquely specified for a
control
IMO PluggableMultiColumnListMorph is no substitute for a decent grid control
;-)
Regards, Gary
----- Original Message -----
From: "Schwab,Wilhelm K" <bschwab(a)anest.ufl.edu>
To: <Pharo-project(a)lists.gforge.inria.fr>
Sent: Friday, June 10, 2011 5:15 PM
Subject: Re: [Pharo-project] Polymorph:PluggableMultiColumnListMorph
vs.PluggableListMorph
Gary,
Dumb question: is it enough to add it to TEasilyThemed? There is a
refactoring opportunity, if only in the form of a helper method that takes
the morph class to use and otherwise "says it once" about the other aspects.
At least I *think* that's the case.
One disappointing thing I just found/re-discovered:
PluggableMultiColumnListMorph expects a collection of collections by column,
not by row :( I have already taken some license with models, and this will
make it harder to get right. I will try a simple adapter to produce the
collection of columns on the fly. Better ideas are welcome.
The Dolphin triad I am trying to emulate is a list of objects, each of which
has multiple aspects presented across a row. In Dolphin, it is a little
inflexible, but fast and very useful.
Bill
________________________________________
From: pharo-project-bounces(a)lists.gforge.inria.fr
[pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Gary Chambers
[gazzaguru2(a)btinternet.com]
Sent: Friday, June 10, 2011 12:05 PM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Polymorph: PluggableMultiColumnListMorph
vs.PluggableListMorph
Currently there are no TEasilyThemed helpers for mulit column lists. Please
add!
The method signatures should include parameters for each thing that is
expected to be be set up (to encourage completeness of ui experience).
Regards, Gary
----- Original Message -----
From: "Schwab,Wilhelm K" <bschwab(a)anest.ufl.edu>
To: <Pharo-project(a)lists.gforge.inria.fr>
Sent: Friday, June 10, 2011 4:45 PM
Subject: [Pharo-project] Polymorph: PluggableMultiColumnListMorph
vs.PluggableListMorph
Gary, all,
I just ran into a question: among all of the #newList* methods, is there a
good way to refer to a particular subclass? Since these methods ultimately
just create a morph, I am doing that with a little hard coding of some
options. Is there a better way?
Bill
June 13, 2011
Re: [Pharo-project] Polymorph:PluggableMultiColumnListMorph vs.PluggableListMorph
by Gary Chambers
Regards, Gary
----- Original Message -----
From: "Schwab,Wilhelm K" <bschwab(a)anest.ufl.edu>
To: <Pharo-project(a)lists.gforge.inria.fr>
Sent: Friday, June 10, 2011 5:15 PM
Subject: Re: [Pharo-project] Polymorph:PluggableMultiColumnListMorph
vs.PluggableListMorph
Gary,
Dumb question: is it enough to add it to TEasilyThemed? There is a
refactoring opportunity, if only in the form of a helper method that takes
the morph class to use and otherwise "says it once" about the other aspects.
At least I *think* that's the case.
One disappointing thing I just found/re-discovered:
PluggableMultiColumnListMorph expects a collection of collections by column,
not by row :( I have already taken some license with models, and this will
make it harder to get right. I will try a simple adapter to produce the
collection of columns on the fly. Better ideas are welcome.
The Dolphin triad I am trying to emulate is a list of objects, each of which
has multiple aspects presented across a row. In Dolphin, it is a little
inflexible, but fast and very useful.
Bill
________________________________________
From: pharo-project-bounces(a)lists.gforge.inria.fr
[pharo-project-bounces(a)lists.gforge.inria.fr] On Behalf Of Gary Chambers
[gazzaguru2(a)btinternet.com]
Sent: Friday, June 10, 2011 12:05 PM
To: Pharo-project(a)lists.gforge.inria.fr
Subject: Re: [Pharo-project] Polymorph: PluggableMultiColumnListMorph
vs.PluggableListMorph
Currently there are no TEasilyThemed helpers for mulit column lists. Please
add!
The method signatures should include parameters for each thing that is
expected to be be set up (to encourage completeness of ui experience).
Regards, Gary
----- Original Message -----
From: "Schwab,Wilhelm K" <bschwab(a)anest.ufl.edu>
To: <Pharo-project(a)lists.gforge.inria.fr>
Sent: Friday, June 10, 2011 4:45 PM
Subject: [Pharo-project] Polymorph: PluggableMultiColumnListMorph
vs.PluggableListMorph
Gary, all,
I just ran into a question: among all of the #newList* methods, is there a
good way to refer to a particular subclass? Since these methods ultimately
just create a morph, I am doing that with a little hard coding of some
options. Is there a better way?
Bill
June 13, 2011
Re: [Pharo-project] [Pharo-users] Tiling Window Manager - status update
by laurent laffont
>
>
>> Creating a nice Metacello Configuration for TWM will be appreciated :)
>>
>
> ConfigurationOfTilingWindowManager is in squeaksource/TilingWindowManager
> ;)
>
Thank you !!
On this side next steps are:
- support for KeyMapping 1.8
- split TWM in TWM-Core / TWM-Tests / ....
Laurent.
>
> Cheers,
> Guille
>
>
>>
>>
>> Cheers,
>>
>> Laurent Laffont - @lolgzs <http://twitter.com/#%21/lolgzs>
>>
>> Pharo Smalltalk Screencasts: http://www.pharocasts.com/
>> Blog: http://magaloma.blogspot.com/
>> Developer group: http://cara74.seasidehosting.st
>>
>>
>
June 13, 2011
Re: [Pharo-project] WindowOrganiser (was: Tab widget improvements)
by laurent laffont
I've packaged all but WindowsOrganiser in
http://code.google.com/p/pharo/issues/detail?id=4391
Laurent.
On Fri, Jun 10, 2011 at 5:17 PM, Gary Chambers <gazzaguru2(a)btinternet.com>wrote:
> Apologies, don't use the last WindowOrganiser.st.
> Will need some work 9passivating embedded window on tab change).
>
> Regards, Gary
>
> ----- Original Message -----
> *From:* Gary Chambers <gazzaguru2(a)btinternet.com>
> *To:* Pharo-project(a)lists.gforge.inria.fr
> *Sent:* Friday, June 10, 2011 3:24 PM
> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
> improvements)
>
> Evidently not last...
> Workaround for embedded windows to remember keyboard focus.
> Really the whole active/passivate thing for windows needs a good cleanup
> and refactoring.
> Also, probably an idea to use announcements for tab switching at some
> point.
>
> Regards, Gary
>
> ----- Original Message -----
> *From:* Gary Chambers <gazzaguru2(a)btinternet.com>
> *To:* Pharo-project(a)lists.gforge.inria.fr
> *Sent:* Friday, June 10, 2011 2:13 PM
> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
> improvements)
>
> Ok. Last batch plus whole of my current organiser (will want factoring out
> into a Morph subclass rather than window). ;-)
>
> I've added a WindowLabelled announcement along with test.
>
> Regards, Gary
>
> ----- Original Message -----
> *From:* laurent laffont <laurent.laffont(a)gmail.com>
> *To:* Pharo-project(a)lists.gforge.inria.fr
> *Sent:* Friday, June 10, 2011 12:51 PM
> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
> improvements)
>
>
> On Fri, Jun 10, 2011 at 1:17 PM, Gary Chambers <gazzaguru2(a)btinternet.com>wrote:
>
>> Sorry, couldn't resist...
>>
>
> ah ah ha the real truth is that when I wrote the first mail I suspected
> you would not resist to do it :D SuperGary always here !
>
>
> Please use this EmbeddedWindowTweaks instead (not considered embedded if
>> held in hand).
>> Reworked isActive for SystemWindows to give owner a chance to decide
>> (embedded windows can now be active and have correct selection colours
>> etc.).
>>
>
>
> this evening or tomorrow I will produce a slice for Pharo Core with all
> your changesets.
>
> Thank you.
>
> Laurent
>
>
>
>> Regards, Gary
>>
>> ----- Original Message -----
>> *From:* Gary Chambers <gazzaguru2(a)btinternet.com>
>> *To:* Pharo-project(a)lists.gforge.inria.fr
>> *Sent:* Friday, June 10, 2011 11:42 AM
>> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
>> improvements)
>>
>> Last fix for now. Tweaked SystemWindow>>labelHeight when embedded.
>> Use square corners for embedded windows.
>>
>> Regards, Gary
>>
>> ----- Original Message -----
>> *From:* Gary Chambers <gazzaguru2(a)btinternet.com>
>> *To:* Pharo-project(a)lists.gforge.inria.fr
>> *Sent:* Friday, June 10, 2011 11:02 AM
>> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
>> improvements)
>>
>> Small fix attached for issues when a SystemWindows has no label (as when
>> embedded etc.)
>>
>> Regards, Gary
>>
>> ----- Original Message -----
>> *From:* laurent laffont <laurent.laffont(a)gmail.com>
>> *To:* Pharo-project(a)lists.gforge.inria.fr
>> *Sent:* Friday, June 10, 2011 7:52 AM
>> *Subject:* Re: [Pharo-project] WindowOrganiser (was: Tab widget
>> improvements)
>>
>> Hi Gary,
>>
>>
>> I've played a little and changed:
>>
>> DockingBarMorph subclass: #WindowOrganiser
>> uses: TEasilyThemed
>> instanceVariableNames: 'tabGroup'
>> classVariableNames: ''
>> poolDictionaries: ''
>> category: 'Guru'
>>
>> (sorry, I feel stupid, I don't know how to make a changeset, need to look
>> at this :)
>>
>> So I can open a sort of docking panel: (see attached screenshot)
>>
>>
>> WindowOrganiser new
>> openInWorld;
>> height:200;
>> adhereToBottom.
>>
>>
>> That means we can have docking panels like the IDEs Java students use :)
>>
>> Moreover TWM tile windows only in clear area, so all this play nicely
>> together.
>>
>> I wonder what's the best way to package all this. In Polymorph ?
>>
>>
>> Laurent Laffont - @lolgzs <http://twitter.com/#!/lolgzs>
>>
>> Pharo Smalltalk Screencasts: http://www.pharocasts.com/
>> Blog: http://magaloma.blogspot.com/
>> Developer group: http://cara74.seasidehosting.st
>>
>>
>>
>> On Thu, Jun 9, 2011 at 3:33 PM, Gary Chambers <gazzaguru2(a)btinternet.com>wrote:
>>
>>> Even better when working more properly (attached)
>>>
>>> Regards, Gary
>>>
>>> ----- Original Message -----
>>> *From:* laurent laffont <laurent.laffont(a)gmail.com>
>>> *To:* Pharo-project(a)lists.gforge.inria.fr
>>> *Sent:* Thursday, June 09, 2011 2:12 PM
>>> *Subject:* Re: [Pharo-project] Tab widget improvements
>>>
>>>
>>> On Thu, Jun 9, 2011 at 3:01 PM, Gary Chambers <gazzaguru2(a)btinternet.com
>>> > wrote:
>>>
>>>> Something to get you started... ;-0
>>>>
>>>
>>>
>>> aaaaargggggggg THAT'S SO DAMN COOOOOOOOOOOOOOOOOOL
>>> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>>
>>> Laurent
>>>
>>>
>>>
>>>
>>>>
>>>> WindowOrganiser new open
>>>>
>>>> Optionally, via halo, turn on "Accept drops" for the window, else use
>>>> the window menu to "Grab window...".
>>>>
>>>> Plenty of evilness left to sort out with it, naturally.
>>>> Have fun!
>>>>
>>>> Regards, Gary
>>>>
>>>> ----- Original Message -----
>>>> *From:* Gary Chambers <gazzaguru2(a)btinternet.com>
>>>> *To:* Pharo-project(a)lists.gforge.inria.fr
>>>> *Sent:* Thursday, June 09, 2011 10:03 AM
>>>> *Subject:* Re: [Pharo-project] Tab widget improvements
>>>>
>>>> Hi Laurent.
>>>>
>>>> Sounds like a cool idea and is possible. You'd likely need to modify
>>>> SystemWindow somewhat to deal with being within a tab (remove grips,
>>>> forward label changes to the tab, handle activation (TopWindow stuff might
>>>> be tricky) etc.). You'd also want an option (perhaps a button in the tab
>>>> label) to break the window out again.
>>>>
>>>> For some of this you could get some ideas from StandardWindow with
>>>> respect to fullscreen, #noteNewOwner:
>>>>
>>>> Regards, Gary
>>>>
>>>> ----- Original Message -----
>>>> *From:* laurent laffont <laurent.laffont(a)gmail.com>
>>>> *To:* Pharo-project(a)lists.gforge.inria.fr
>>>> *Sent:* Wednesday, June 08, 2011 5:20 PM
>>>> *Subject:* Re: [Pharo-project] Tab widget improvements
>>>>
>>>> Hi Gary,
>>>>
>>>> I wanted to try what follows while coding TWM, maybe with your magic
>>>> super powers its easy :)
>>>>
>>>> Create a SystemWindow subclass: #TabbedWindow (or better name).
>>>>
>>>> In this window's menu there's the list of all other SystemWindows. When
>>>> you click on it, the window goes as tab.
>>>>
>>>> So I can group several windows in a tabbed container. Like the group
>>>> windows feature of KDE. See
>>>> http://blip.tv/sebastian-kgler/window-managing-features-in-kde-plasma-4-4-3… at
>>>> 1'50.
>>>>
>>>> Is it hard ? Idea how to do this ?
>>>>
>>>> Laurent.
>>>>
>>>>
>>>> On Wed, Jun 8, 2011 at 4:57 PM, Gary Chambers <
>>>> gazzaguru2(a)btinternet.com> wrote:
>>>>
>>>>> For another example, just a quickly hacked together (i.e. quick and
>>>>> dirty) multi workspace thing attached.
>>>>>
>>>>> MultiWorkspaceWindow new open
>>>>>
>>>>> Use the window menu to add workspaces, otherwise works like a workspace
>>>>> for the selected tab.
>>>>>
>>>>> Regards, Gary
>>>>>
>>>>> ----- Original Message ----- From: "Gary Chambers" <
>>>>> gazzaguru2(a)btinternet.com>
>>>>>
>>>>> To: <Pharo-project(a)lists.gforge.inria.fr>
>>>>> Sent: Wednesday, June 08, 2011 3:26 PM
>>>>>
>>>>> Subject: Re: [Pharo-project] Tab widget improvements
>>>>>
>>>>>
>>>>> Lol
>>>>>>
>>>>>> Regards, Gary
>>>>>>
>>>>>> ----- Original Message ----- From: "Tudor Girba" <
>>>>>> tudor(a)tudorgirba.com>
>>>>>> To: <Pharo-project(a)lists.gforge.inria.fr>
>>>>>> Sent: Wednesday, June 08, 2011 3:19 PM
>>>>>> Subject: Re: [Pharo-project] Tab widget improvements
>>>>>>
>>>>>>
>>>>>> You know my soft spot :)
>>>>>>
>>>>>> Doru
>>>>>>
>>>>>>
>>>>>> On 8 Jun 2011, at 16:04, Gary Chambers wrote:
>>>>>>
>>>>>> I expect Doru will want it in 1.3 for Moose ;-)
>>>>>>>
>>>>>>> Regards, Gary
>>>>>>>
>>>>>>> ----- Original Message ----- From: "Marcus Denker" <
>>>>>>> marcus.denker(a)inria.fr>
>>>>>>> To: <Pharo-project(a)lists.gforge.inria.fr>
>>>>>>> Sent: Wednesday, June 08, 2011 3:00 PM
>>>>>>> Subject: Re: [Pharo-project] Tab widget improvements
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Jun 8, 2011, at 3:55 PM, Gary Chambers wrote:
>>>>>>>
>>>>>>> Attached, some improvements to the TabGroupMorph etc. having had
>>>>>>>> feedback from Doru.
>>>>>>>>
>>>>>>>> Provides scrolling buttons when insufficient room for all tabs and
>>>>>>>> displays only tabs for which there is room! (excepting at least one).
>>>>>>>>
>>>>>>>> Can optionally set wrapScrolling on the TabSelectorMorph to allow
>>>>>>>> wraparound scrolling via the buttons.
>>>>>>>>
>>>>>>>>
>>>>>>> Do we put that in 1.3 or 1.4?
>>>>>>>
>>>>>>> http://code.google.com/p/pharo/issues/list?thanks=4376
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Marcus Denker -- http://www.marcusdenker.de
>>>>>>> INRIA Lille -- Nord Europe. Team RMoD.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>> --
>>>>>> www.tudorgirba.com
>>>>>>
>>>>>> "Live like you mean it."
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>
>
June 13, 2011
Re: [Pharo-project] FFI on Mac OSX
by Jan van de Sandt
Thanks,
I will start looking for the 32bit version.
Jan.
On Sun, Jun 12, 2011 at 11:34 PM, Esteban Lorenzano <estebanlm(a)gmail.com>wrote:
> yep... you are trying to run a 64bit library in a 32bit application
> (squeak, or cog, both are 32bits)
>
> best,
> Esteban
>
> El 12/06/2011, a las 6:18p.m., Jan van de Sandt escribió:
>
> > Hello,
> >
> > I'm trying to use an external library through FFI. On the Mac (Snow
> Leopard) I get the following error on the console:
> >
> > tryLoading
> /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib
> >
> ioLoadModule(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib):
> >
> dlopen(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib,
> 10): no suitable image found. Did find:
> >
> /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib: mach-o,
> but wrong architecture
> >
> > What does "mach-o, but wrong architecture" mean? 64bits instead of 32 or
> something else?
> >
> > Jan.
> >
> >
> >
>
>
>
June 12, 2011
Re: [Pharo-project] FFI on Mac OSX
by Esteban Lorenzano
yep... you are trying to run a 64bit library in a 32bit application (squeak, or cog, both are 32bits)
best,
Esteban
El 12/06/2011, a las 6:18p.m., Jan van de Sandt escribió:
> Hello,
>
> I'm trying to use an external library through FFI. On the Mac (Snow Leopard) I get the following error on the console:
>
> tryLoading /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib
> ioLoadModule(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib):
> dlopen(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib, 10): no suitable image found. Did find:
> /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib: mach-o, but wrong architecture
>
> What does "mach-o, but wrong architecture" mean? 64bits instead of 32 or something else?
>
> Jan.
>
>
>
June 12, 2011
Re: [Pharo-project] FFI on Mac OSX
by Mariano Martinez Peck
On Sun, Jun 12, 2011 at 11:18 PM, Jan van de Sandt <jvdsandt(a)gmail.com>wrote:
> Hello,
>
> I'm trying to use an external library through FFI. On the Mac
> (Snow Leopard) I get the following error on the console:
>
> tryLoading
> /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib
>
> ioLoadModule(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib):
>
> dlopen(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib,
> 10): no suitable image found. Did find:
>
> /Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib: mach-o,
> but wrong architecture
>
> What does "mach-o, but wrong architecture" mean? 64bits instead of 32 or
> something else?
>
I guess that thing about 32/64. I think I suffered that for DBXTalk....
--
Mariano
http://marianopeck.wordpress.com
June 12, 2011
[Pharo-project] FFI on Mac OSX
by Jan van de Sandt
Hello,
I'm trying to use an external library through FFI. On the Mac (Snow Leopard)
I get the following error on the console:
tryLoading
/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib
ioLoadModule(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib):
dlopen(/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib,
10): no suitable image found. Did find:
/Applications/Smalltalk/Cog.app/Contents/Resources/libicui18n.dylib:
mach-o, but wrong architecture
What does "mach-o, but wrong architecture" mean? 64bits instead of 32 or
something else?
Jan.
June 12, 2011
Re: [Pharo-project] [Pharo-users] Tiling Window Manager - status update
by Guillermo Polito
On Mon, May 30, 2011 at 6:22 PM, laurent laffont
<laurent.laffont(a)gmail.com>wrote:
> First thanks to all people that send patches (and tests !!). Still not
> haven't merged all of them - don't hesitate to post in repository so code is
> not lost. Yes I will merge layout policies.
>
> Gofer it
> squeaksource: 'TilingWindowManager';
> package: 'TWM';
> load.
> (Smalltalk at: #StandardUITheme) beCurrent.
> (Smalltalk at: #TWMBar) showTWMBar:true.
>
> Tested on PharoCore 1.2 and Pharo 1.3.
>
> Now this has support for world snapshot, that means you can arrange the
> windows and take a snapshot of the layout. Then you can restore these
> layouts later. (icons camera, <, > and trash). I'm not entirely satisfied
> with this, thanks for feedback.
>
>
> In Pharo 1.3 there's initial integration with KeyMapping. To load:
>
>
> Gofer it
> squeaksource: 'ShortWays';
> package: 'ConfigurationOfKeymapping';
> load.
>
> (Smalltalk at: #ConfigurationOfKeymapping project version: #bleedingEdge)
> load.
>
>
> Then in settings browser > Keymappings > Tiling Window Managers you have
> all actions of the dock mapped.
>
> Not all shortcuts are working, don't know why, if people can test and find
> good shortcuts thank you.
>
> Creating a nice Metacello Configuration for TWM will be appreciated :)
>
ConfigurationOfTilingWindowManager is in squeaksource/TilingWindowManager ;)
Cheers,
Guille
>
>
> Cheers,
>
> Laurent Laffont - @lolgzs <http://twitter.com/#%21/lolgzs>
>
> Pharo Smalltalk Screencasts: http://www.pharocasts.com/
> Blog: http://magaloma.blogspot.com/
> Developer group: http://cara74.seasidehosting.st
>
>
June 12, 2011