Object Buffer (implementation tryout)

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

Re: Object Buffer (implementation tryout)

cedreek


2010/1/12 Cédrick Béler <[hidden email]>

Maybe you can also add shortcuts: Shift-Cmd-c, Shift-Cmd-v

Yes, I'll do it



both are used... but I nevers used them...

cmd + V paste initials
cmd + C           compare to clipboard

Do you use them ?

BTW, there's a clear problem with menu and shortcuts.
For instance, not all hardcoded shortcuts works for keyboard other thant qwerty... :(

 
--
Cédrick

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

cedreek
ok.
I added shortcuts, I put menu methods in the extension category to be able to use monticello. Here is the squeaksource account:

MCHttpRepository
user: ''
password: ''

To initialize shortcuts, after loading, you need to evaluate :
ParagraphEditor initialize

Everybody can submit and even change completly the implementation so as maybe to create a unified clipboard.

Cheers,

2010/1/12 Cédrick Béler <[hidden email]>


2010/1/12 Cédrick Béler <[hidden email]>


Maybe you can also add shortcuts: Shift-Cmd-c, Shift-Cmd-v

Yes, I'll do it



both are used... but I nevers used them...

cmd + V paste initials
cmd + C           compare to clipboard

Do you use them ?

BTW, there's a clear problem with menu and shortcuts.
For instance, not all hardcoded shortcuts works for keyboard other thant qwerty... :(

 
--
Cédrick



--
Cédrick

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

Alexandre Bergel
Hi Cédrick,

When I try to copy an object, an error is raised (cf attached picture).
Content is not initialized. It remains always nil. You need an  
initialize method that call #reset and execute 'ParagraphEditor  
initialize'.
A unit test may also be written. If you're ok, I can do it.

Cheers,
Alexandre


On 12 Jan 2010, at 11:21, Cédrick Béler wrote:

> ok.
> I added shortcuts, I put menu methods in the extension category to  
> be able to use monticello. Here is the squeaksource account:
>
> MCHttpRepository
> location: 'http://www.squeaksource.com/ObjectClipboard'
> user: ''
> password: ''
>
> To initialize shortcuts, after loading, you need to evaluate :
> ParagraphEditor initialize
>
> Everybody can submit and even change completly the implementation so  
> as maybe to create a unified clipboard.
>
> Cheers,
>
> 2010/1/12 Cédrick Béler <[hidden email]>
>
>
> 2010/1/12 Cédrick Béler <[hidden email]>
>
>
> Maybe you can also add shortcuts: Shift-Cmd-c, Shift-Cmd-v
>
> Yes, I'll do it
>
>
>
> both are used... but I nevers used them...
>
> cmd + V paste initials
> cmd + C           compare to clipboard
>
> Do you use them ?
>
> BTW, there's a clear problem with menu and shortcuts.
> For instance, not all hardcoded shortcuts works for keyboard other  
> thant qwerty... :(
>
>
> --
> Cédrick
>
>
>
> --
> Cédrick
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Picture 6.png (62K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

cedreek


2010/1/12 Alexandre Bergel <[hidden email]>
Hi Cédrick,

When I try to copy an object, an error is raised (cf attached picture).
Content is not initialized. It remains always nil. You need an initialize method that call #reset and execute 'ParagraphEditor initialize'.
A unit test may also be written. If you're ok, I can do it.

oops, that's true. Actually, when starting or shutting down, there's a reset of content and then the affectation but yes, the initialize is better. I published the change.

Concerning ParagraphEditor initialize, I think (but not sure) that it would have no effect as I guess first, the class is loaded, then initialized, then the extension methods (I really may be wrong).

Anyway, feel free to publish whatever changes you find necessary (especially tests :) . I'll do some too) 

Cheers,

 

Cheers,
Alexandre


On 12 Jan 2010, at 11:21, Cédrick Béler wrote:

ok.
I added shortcuts, I put menu methods in the extension category to be able to use monticello. Here is the squeaksource account:

MCHttpRepository
       location: 'http://www.squeaksource.com/ObjectClipboard'
       user: ''
       password: ''

To initialize shortcuts, after loading, you need to evaluate :
ParagraphEditor initialize

Everybody can submit and even change completly the implementation so as maybe to create a unified clipboard.

Cheers,

2010/1/12 Cédrick Béler <[hidden email]>


2010/1/12 Cédrick Béler <[hidden email]>


Maybe you can also add shortcuts: Shift-Cmd-c, Shift-Cmd-v

Yes, I'll do it



both are used... but I nevers used them...

cmd + V paste initials
cmd + C           compare to clipboard

Do you use them ?

BTW, there's a clear problem with menu and shortcuts.
For instance, not all hardcoded shortcuts works for keyboard other thant qwerty... :(


--
Cédrick



--
Cédrick
_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



--
Cédrick

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

cedreek

Anyway, feel free to publish whatever changes you find necessary (especially tests :) . I'll do some too) 


I'm writting some right now...
 

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

Alexandre Bergel
Ok, I am waiting for your ping then

Alexandre

On 12 Jan 2010, at 12:17, Cédrick Béler wrote:

>
> Anyway, feel free to publish whatever changes you find necessary  
> (especially tests :) . I'll do some too)
>
>
> I'm writting some right now...
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

cedreek
ping :)

See you later,

2010/1/12 Alexandre Bergel <[hidden email]>
Ok, I am waiting for your ping then

Alexandre

On 12 Jan 2010, at 12:17, Cédrick Béler wrote:

>
> Anyway, feel free to publish whatever changes you find necessary
> (especially tests :) . I'll do some too)
>
>
> I'm writting some right now...
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



--
Cédrick

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

Alexandre Bergel
I tried it and it works. Tests are clean and easy to understand. Look  
okay to me.

Alexandre


On 12 Jan 2010, at 13:29, Cédrick Béler wrote:

> ping :)
>
> See you later,
>
> 2010/1/12 Alexandre Bergel <[hidden email]>
> Ok, I am waiting for your ping then
>
> Alexandre
>
> On 12 Jan 2010, at 12:17, Cédrick Béler wrote:
>
> >
> > Anyway, feel free to publish whatever changes you find necessary
> > (especially tests :) . I'll do some too)
> >
> >
> > I'm writting some right now...
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>
> --
> Cédrick
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

johnmci
In reply to this post by cedreek
I was trying to rework the clipboard logic last fall but I couldn't find any window users to test it. Things like supporting cut/copy/paste of graphics objects. 
But it also required FFI in Pharo and I don't think anyone reached a decision on that. If anyone would like to take that task on I"ll give them an image to 
work with...

I'll note in Sophie we support the cut/copy/paste of complex objects (chunks of books). A matter of checking what the object was, either 
text or a complex object. 

PS if anyone is interested the Undo/Redo Logic that Impara did for Sophie was very well received, easy to use, and we could build a book from scratch 
then undo the entire creation, then redo it. This sounds complex, it was. However the framework made it easy, one piece at a time...  
Perhaps someone should harvest that since it *was* generic. 


On 2010-01-12, at 1:10 AM, Cédrick Béler wrote:


Perhaps a unified clipboard would be nicer... objects or text (or,
potentially converible to host OS things...).

yes that would be really great (copy name seems useless to me... better to have copy object and paste name eventually) ! 
But I don't have the expertise to do it I guess. For now we have in the image:

Clipboard
   ExternalClipboard (from Sophie)
     MacOSClipboard
   SqueakClipboard  (empty !)

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Undo/Redo [was: Re: Object Buffer (implementation tryout)]

Martin McClure-2
John M McIntosh wrote:

[...]
>
> PS if anyone is interested the Undo/Redo Logic that Impara did for
> Sophie was very well received, easy to use, and we could build a book
> from scratch
> then undo the entire creation, then redo it. This sounds complex, it
> was. However the framework made it easy, one piece at a time...  
> Perhaps someone should harvest that since it *was* generic.

Ooh, nice. A good undo/redo framework would be *so* *very* good to have.
I'm afraid I can't be the one to harvest it, not anytime soon anyhow,
but I hope someone picks it up.


Regards,

-Martin

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

johnmci
Yes, it's in the category "Sophie-Undo"

If I consider the class AbstractUndoRecord
We hung 67 subclasses off it, which gives you an idea of the complexity of  we what were doing (60 some UI actions), but also the fact it could handle it..

UndoManager class comment:

UndoManager manages execution and storing of UndoRecords through #doAndAddRecord:.
It allows hierarchical grouping of UndoRecords through #openRecordGroup, #openRecordGroupNamed: and #closeRecordGroup.
Undo and redo is invoked by #undo and #redo.

See UndoManagerTest for someExamples.

Structure:
 undoHistory OrderedCollection -- holds UndoRecords for undo
 redoHistory OrderedCollection -- holds UndoRecords for redo
 maxHistoryLength Integer -- Old UndoRecords in undoHistory are removed to keep it within given limits (0 for no Limit)
 groupStack OrderedCollection -- temporary dataStructure to manage hierarchical grouping of UndoRecords
                                        by #openRecordGroup and closeRecordGroup
 historyInvalid Boolean -- flag to indicate, that the history is invalid and it must be deleted including the groupStack


On 2010-01-12, at 9:52 PM, Martin McClure wrote:

> John M McIntosh wrote:
>
> [...]
>>
>> PS if anyone is interested the Undo/Redo Logic that Impara did for
>> Sophie was very well received, easy to use, and we could build a book
>> from scratch
>> then undo the entire creation, then redo it. This sounds complex, it
>> was. However the framework made it easy, one piece at a time...  
>> Perhaps someone should harvest that since it *was* generic.
>
> Ooh, nice. A good undo/redo framework would be *so* *very* good to have.
> I'm afraid I can't be the one to harvest it, not anytime soon anyhow,
> but I hope someone picks it up.
>
>
> Regards,
>
> -Martin



        AbstractUndoRecord #()
                        SophieAddContentRootRecord #('contentRoot' 'book')
                        SophieAddDeleteStickyRecord #('sticky' 'page')
                                SophieAddStickyRecord #()
                                SophieDeleteStickyRecord #()
                        SophieAddEmbedBookRecord #('book' 'bookToEmbed')
                        SophieAddLeafNodeRecord #('book' 'leafNode' 'contentIndexPosition')
                        SophieAddStickiesRecord #('stickies' 'book')
                        SophieApplyFrameLocationStyleAttributesRecord #('bookModel' 'anchor' 'styleAttributes' 'oldStyleAttributes' 'page')
                        SophieApplyPageTemplateRecord #('page' 'template' 'undoData' 'redoData' 'allRemovedFrames')
                        SophieApplyParagraphStyleAttributesRecord #('book' 'marker' 'styleAttributes' 'oldStylesAttributes')
                        SophieApplyParagraphStyleRecord #('book' 'marker' 'style' 'oldStyles')
                        SophieApplyStyleToRangeRecord #('book' 'marker' 'styleAttributes' 'oldRangesStylesCollection')
                        SophieBookExtentUndoRecord #('bookModel' 'newExtent' 'oldExtent')
                        SophieBookStatisticRecord #('book' 'newStatistic' 'oldStatistic')
                        SophieDeleteContentRangeRecord #('book' 'marker' 'positionAfter' 'partialTree')
                        SophieEmbeddedBookUndoRecord #('ebook' 'embeddedBookResource' 'embeddedBookMapEntry')
                        SophieEmbeddedLinkedToBookUndoRecord #('ebook' 'embeddedBookMapEntry' 'embeddedBookResource')
                        SophieFrameRecord #('bookModel' 'frame')
                                SophieFrameZOrderRecord #('page' 'forward')
                        SophieFrameStyleUndoRecord #('bookModel' 'frame' 'attributes' 'state')
                        SophieFrameToTemplateRecord #('bookModel' 'frame' 'page' 'zIndex' 'reversed')
                        SophieInsertCharacterRecord #('book' 'character' 'position' 'positionAfter' 'style')
                        SophieInsertPageBreakRecord #('book' 'position' 'marker')
                        SophieInsertParagraphBreakRecord #('book' 'position' 'marker' 'characterStyle')
                        SophieLinkActionRecord #('book' 'target' 'action' 'actionIndex')
                                SophieLinkActionAddRecord #()
                                SophieLinkActionRemoveRecord #()
                        SophieLinkRecord #('book' 'target')
                                SophieFrameTriggerCleanupRecord #('cleanupStuff')
                                SophieLinkActionCloneRecord #('source' 'oldActions')
                        SophieMarkerAddDeleteRecord #('marker' 'book')
                                SophieMarkerAddMarkersRecord #()
                                SophieMarkerAddRecord #()
                                SophieMarkerDeleteRecord #('actions' 'markerSet')
                        SophieMarkerRangeRecord #('book' 'marker' 'newStart' 'newStop' 'oldStart' 'oldStop')
                        SophiePageRecord #('bookModel' 'page')
                                SophieFlowOrderChangeRecord #('frame' 'index' 'flow')
                                SophiePageStyleRecord #('styleAttributes')
                        SophiePageUndoRecord #('spine' 'index' 'page')
                                SophieInsertPageRecord #()
                                SophieMovePageRecord #('oldIndex')
                        SophiePasteFromImporterRecord #('book' 'importer' 'position' 'marker' 'partialTree')
                        SophiePromoteTemplateOverridesRecord #('book' 'pageTemplateFrame' 'page' 'frameMap' 'deletedTemplateFrames' 'overrideFrames' 'templateFrameFramesFromOverideFrames' 'frameOverrides' 'frameStyleOverrides' 'frameActionsOverrides' 'oldTemplateFrameFrames' 'oldPageFlowMap' 'oldTemplateFlowMap' 'oldPageTemplate' 'newTemplateFrameFrames' 'newPageFlowMap' 'newPageTemplate' 'allRemovedFrames' 'removedOverrideFrameContents')
                        SophieRegisterFlowRecord #('spine' 'flowID' 'content' 'contentID' 'flow')
                        SophieRemoveContentRootRecord #('contentRoot' 'book')
                        SophieRemoveFlowRecord #('spine' 'flow')
                        SophieRemoveFrameRecord #('bookModel' 'page' 'frame' 'wasLocalOverride')
                        SophieRemoveLeafNodeRecord #('book' 'leafNode' 'oldContentIndexPosition')
                        SophieRemovePagesRecord #('spine' 'indices' 'pages')
                        SophieReplaceLibraryTemplateRecord #('book' 'template' 'newTemplate')
                        SophieReplaceTemplateRecord #('book' 'template' 'oldTemplateCopy' 'newTemplate')
                        SophieResourceUndoRecord #('resources')
                                SophieResourceDeleteRecord #('player')
                                SophieResourceImportStreamRecord #('resourceManager' 'mimeType' 'stream')
                                SophieResourceImportURIRecord #('resourceManager' 'uri')
                                        SophieResourceLinkToURIRecord #()
                                SophieResourceStoreRecord #('book' 'object' 'metaKey')
                        SophieSpineStateDeltaRecord #('book' 'spine' 'addedPages' 'removedPages')
                        SophieSpineStateRecord #('book' 'spine' 'prevState' 'postState')
                        SophieTimelineUndoRecord #('timelinePlayer')
                                SophieTimelineUndoAbstractEventsRecord #('events')
                                        SophieTimelineUndoAddEventsRecord #()
                                        SophieTimelineUndoDeleteEventsRecord #()
                                SophieTimelineUndoAddTimeline #('timeline' 'book')
                                        SophieTimelineUndoDeleteTimeline #()
                                SophieTimelineUndoEventsMoveRecord #('undoData')
                        SophieTriggerObjectCleanupRecord #('triggerObject' 'undoInformations')
                        SophieUpdateLibraryStyleRecord #('book' 'newStyle' 'styleName' 'oldStyle')
                        UndoRecord #('undoable' 'doMessage' 'undoMessage' 'description')
                                SophieFrameUndoRecord #('bookModel' 'frame')
                                SophieLibraryResourceUndoRecord #('bookModel')
                                SophiePageInvalidationRecord #('bookModel' 'page')
                                        SophieFrameAlignmentUndoRecord #('groupFrame' 'framesAndOldPositions' 'framesAndNewPositions')
                                SophieTriggerMarkerUndoRecord #('bookModel' 'marker')
                                UndoRecordWithPostMessage #('postMessage')
                        UndoRecordGroup #('description' 'subRecords')
                                SophieFrameGroupUndoRecord #('frameGroup' 'bookModel')

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

SergeStinckwich
It look like there are still using the 1.0 version for Sophie advertisement :
http://www.youtube.com/watch?v=KLTcdffTigA


2010/1/13 John M McIntosh <[hidden email]>:

> Yes, it's in the category "Sophie-Undo"
>
> If I consider the class AbstractUndoRecord
> We hung 67 subclasses off it, which gives you an idea of the complexity of  we what were doing (60 some UI actions), but also the fact it could handle it..
>
> UndoManager class comment:
>
> UndoManager manages execution and storing of UndoRecords through #doAndAddRecord:.
> It allows hierarchical grouping of UndoRecords through #openRecordGroup, #openRecordGroupNamed: and #closeRecordGroup.
> Undo and redo is invoked by #undo and #redo.
>
> See UndoManagerTest for someExamples.
>
> Structure:
>  undoHistory            OrderedCollection -- holds UndoRecords for undo
>  redoHistory                    OrderedCollection -- holds UndoRecords for redo
>  maxHistoryLength       Integer -- Old UndoRecords in undoHistory are removed to keep it within given limits (0 for no Limit)
>  groupStack                     OrderedCollection -- temporary dataStructure to manage hierarchical grouping of UndoRecords
>                                        by #openRecordGroup and closeRecordGroup
>  historyInvalid         Boolean -- flag to indicate, that the history is invalid and it must be deleted including the groupStack
>
>
> On 2010-01-12, at 9:52 PM, Martin McClure wrote:
>
>> John M McIntosh wrote:
>>
>> [...]
>>>
>>> PS if anyone is interested the Undo/Redo Logic that Impara did for
>>> Sophie was very well received, easy to use, and we could build a book
>>> from scratch
>>> then undo the entire creation, then redo it. This sounds complex, it
>>> was. However the framework made it easy, one piece at a time...
>>> Perhaps someone should harvest that since it *was* generic.
>>
>> Ooh, nice. A good undo/redo framework would be *so* *very* good to have.
>> I'm afraid I can't be the one to harvest it, not anytime soon anyhow,
>> but I hope someone picks it up.
>>
>>
>> Regards,
>>
>> -Martin
>
>
>
>        AbstractUndoRecord #()
>                        SophieAddContentRootRecord #('contentRoot' 'book')
>                        SophieAddDeleteStickyRecord #('sticky' 'page')
>                                SophieAddStickyRecord #()
>                                SophieDeleteStickyRecord #()
>                        SophieAddEmbedBookRecord #('book' 'bookToEmbed')
>                        SophieAddLeafNodeRecord #('book' 'leafNode' 'contentIndexPosition')
>                        SophieAddStickiesRecord #('stickies' 'book')
>                        SophieApplyFrameLocationStyleAttributesRecord #('bookModel' 'anchor' 'styleAttributes' 'oldStyleAttributes' 'page')
>                        SophieApplyPageTemplateRecord #('page' 'template' 'undoData' 'redoData' 'allRemovedFrames')
>                        SophieApplyParagraphStyleAttributesRecord #('book' 'marker' 'styleAttributes' 'oldStylesAttributes')
>                        SophieApplyParagraphStyleRecord #('book' 'marker' 'style' 'oldStyles')
>                        SophieApplyStyleToRangeRecord #('book' 'marker' 'styleAttributes' 'oldRangesStylesCollection')
>                        SophieBookExtentUndoRecord #('bookModel' 'newExtent' 'oldExtent')
>                        SophieBookStatisticRecord #('book' 'newStatistic' 'oldStatistic')
>                        SophieDeleteContentRangeRecord #('book' 'marker' 'positionAfter' 'partialTree')
>                        SophieEmbeddedBookUndoRecord #('ebook' 'embeddedBookResource' 'embeddedBookMapEntry')
>                        SophieEmbeddedLinkedToBookUndoRecord #('ebook' 'embeddedBookMapEntry' 'embeddedBookResource')
>                        SophieFrameRecord #('bookModel' 'frame')
>                                SophieFrameZOrderRecord #('page' 'forward')
>                        SophieFrameStyleUndoRecord #('bookModel' 'frame' 'attributes' 'state')
>                        SophieFrameToTemplateRecord #('bookModel' 'frame' 'page' 'zIndex' 'reversed')
>                        SophieInsertCharacterRecord #('book' 'character' 'position' 'positionAfter' 'style')
>                        SophieInsertPageBreakRecord #('book' 'position' 'marker')
>                        SophieInsertParagraphBreakRecord #('book' 'position' 'marker' 'characterStyle')
>                        SophieLinkActionRecord #('book' 'target' 'action' 'actionIndex')
>                                SophieLinkActionAddRecord #()
>                                SophieLinkActionRemoveRecord #()
>                        SophieLinkRecord #('book' 'target')
>                                SophieFrameTriggerCleanupRecord #('cleanupStuff')
>                                SophieLinkActionCloneRecord #('source' 'oldActions')
>                        SophieMarkerAddDeleteRecord #('marker' 'book')
>                                SophieMarkerAddMarkersRecord #()
>                                SophieMarkerAddRecord #()
>                                SophieMarkerDeleteRecord #('actions' 'markerSet')
>                        SophieMarkerRangeRecord #('book' 'marker' 'newStart' 'newStop' 'oldStart' 'oldStop')
>                        SophiePageRecord #('bookModel' 'page')
>                                SophieFlowOrderChangeRecord #('frame' 'index' 'flow')
>                                SophiePageStyleRecord #('styleAttributes')
>                        SophiePageUndoRecord #('spine' 'index' 'page')
>                                SophieInsertPageRecord #()
>                                SophieMovePageRecord #('oldIndex')
>                        SophiePasteFromImporterRecord #('book' 'importer' 'position' 'marker' 'partialTree')
>                        SophiePromoteTemplateOverridesRecord #('book' 'pageTemplateFrame' 'page' 'frameMap' 'deletedTemplateFrames' 'overrideFrames' 'templateFrameFramesFromOverideFrames' 'frameOverrides' 'frameStyleOverrides' 'frameActionsOverrides' 'oldTemplateFrameFrames' 'oldPageFlowMap' 'oldTemplateFlowMap' 'oldPageTemplate' 'newTemplateFrameFrames' 'newPageFlowMap' 'newPageTemplate' 'allRemovedFrames' 'removedOverrideFrameContents')
>                        SophieRegisterFlowRecord #('spine' 'flowID' 'content' 'contentID' 'flow')
>                        SophieRemoveContentRootRecord #('contentRoot' 'book')
>                        SophieRemoveFlowRecord #('spine' 'flow')
>                        SophieRemoveFrameRecord #('bookModel' 'page' 'frame' 'wasLocalOverride')
>                        SophieRemoveLeafNodeRecord #('book' 'leafNode' 'oldContentIndexPosition')
>                        SophieRemovePagesRecord #('spine' 'indices' 'pages')
>                        SophieReplaceLibraryTemplateRecord #('book' 'template' 'newTemplate')
>                        SophieReplaceTemplateRecord #('book' 'template' 'oldTemplateCopy' 'newTemplate')
>                        SophieResourceUndoRecord #('resources')
>                                SophieResourceDeleteRecord #('player')
>                                SophieResourceImportStreamRecord #('resourceManager' 'mimeType' 'stream')
>                                SophieResourceImportURIRecord #('resourceManager' 'uri')
>                                        SophieResourceLinkToURIRecord #()
>                                SophieResourceStoreRecord #('book' 'object' 'metaKey')
>                        SophieSpineStateDeltaRecord #('book' 'spine' 'addedPages' 'removedPages')
>                        SophieSpineStateRecord #('book' 'spine' 'prevState' 'postState')
>                        SophieTimelineUndoRecord #('timelinePlayer')
>                                SophieTimelineUndoAbstractEventsRecord #('events')
>                                        SophieTimelineUndoAddEventsRecord #()
>                                        SophieTimelineUndoDeleteEventsRecord #()
>                                SophieTimelineUndoAddTimeline #('timeline' 'book')
>                                        SophieTimelineUndoDeleteTimeline #()
>                                SophieTimelineUndoEventsMoveRecord #('undoData')
>                        SophieTriggerObjectCleanupRecord #('triggerObject' 'undoInformations')
>                        SophieUpdateLibraryStyleRecord #('book' 'newStyle' 'styleName' 'oldStyle')
>                        UndoRecord #('undoable' 'doMessage' 'undoMessage' 'description')
>                                SophieFrameUndoRecord #('bookModel' 'frame')
>                                SophieLibraryResourceUndoRecord #('bookModel')
>                                SophiePageInvalidationRecord #('bookModel' 'page')
>                                        SophieFrameAlignmentUndoRecord #('groupFrame' 'framesAndOldPositions' 'framesAndNewPositions')
>                                SophieTriggerMarkerUndoRecord #('bookModel' 'marker')
>                                UndoRecordWithPostMessage #('postMessage')
>                        UndoRecordGroup #('description' 'subRecords')
>                                SophieFrameGroupUndoRecord #('frameGroup' 'bookModel')
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>



--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Smalltalkers do: [:it | All with: Class, (And love: it)]
http://doesnotunderstand.org/

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

johnmci
Er yes, that would be because it works? There is some 2.0 video at http://sophiecommons.blip.tv/ which appears to work.

The old site is at  http://sophieproject.cntv.usc.edu/, open site at http://opensophie.com/

We could have used media like below 2 years ago.

At ESUG I'm sure someone remarked why don't folks doing presentations at smalltalk conferences use Sophie?


On 2010-01-12, at 11:16 PM, Serge Stinckwich wrote:

> It look like there are still using the 1.0 version for Sophie advertisement :
> http://www.youtube.com/watch?v=KLTcdffTigA
>

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

Stéphane Ducasse
In reply to this post by johnmci
John

I think that we agree to put FFI in 1.1 now we were wondering if Alien was not better.
But the support for Alien on different platform is not clear.

Stef

On Jan 13, 2010, at 6:42 AM, John M McIntosh wrote:

> I was trying to rework the clipboard logic last fall but I couldn't find any window users to test it. Things like supporting cut/copy/paste of graphics objects.
> But it also required FFI in Pharo and I don't think anyone reached a decision on that. If anyone would like to take that task on I"ll give them an image to
> work with...
>
> I'll note in Sophie we support the cut/copy/paste of complex objects (chunks of books). A matter of checking what the object was, either
> text or a complex object.
>
> PS if anyone is interested the Undo/Redo Logic that Impara did for Sophie was very well received, easy to use, and we could build a book from scratch
> then undo the entire creation, then redo it. This sounds complex, it was. However the framework made it easy, one piece at a time...  
> Perhaps someone should harvest that since it *was* generic.
>
>
> On 2010-01-12, at 1:10 AM, Cédrick Béler wrote:
>
>>
>> Perhaps a unified clipboard would be nicer... objects or text (or,
>> potentially converible to host OS things...).
>>
>> yes that would be really great (copy name seems useless to me... better to have copy object and paste name eventually) !
>> But I don't have the expertise to do it I guess. For now we have in the image:
>>
>> Clipboard
>>    ExternalClipboard (from Sophie)
>>      MacOSClipboard
>>    SqueakClipboard  (empty !)
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

Stéphane Ducasse
In reply to this post by johnmci
http://code.google.com/p/pharo/issues/list?thanks=1801



On Jan 13, 2010, at 7:18 AM, John M McIntosh wrote:

> Yes, it's in the category "Sophie-Undo"
>
> If I consider the class AbstractUndoRecord
> We hung 67 subclasses off it, which gives you an idea of the complexity of  we what were doing (60 some UI actions), but also the fact it could handle it..
>
> UndoManager class comment:
>
> UndoManager manages execution and storing of UndoRecords through #doAndAddRecord:.
> It allows hierarchical grouping of UndoRecords through #openRecordGroup, #openRecordGroupNamed: and #closeRecordGroup.
> Undo and redo is invoked by #undo and #redo.
>
> See UndoManagerTest for someExamples.
>
> Structure:
> undoHistory OrderedCollection -- holds UndoRecords for undo
> redoHistory OrderedCollection -- holds UndoRecords for redo
> maxHistoryLength Integer -- Old UndoRecords in undoHistory are removed to keep it within given limits (0 for no Limit)
> groupStack OrderedCollection -- temporary dataStructure to manage hierarchical grouping of UndoRecords
> by #openRecordGroup and closeRecordGroup
> historyInvalid Boolean -- flag to indicate, that the history is invalid and it must be deleted including the groupStack
>
>
> On 2010-01-12, at 9:52 PM, Martin McClure wrote:
>
>> John M McIntosh wrote:
>>
>> [...]
>>>
>>> PS if anyone is interested the Undo/Redo Logic that Impara did for
>>> Sophie was very well received, easy to use, and we could build a book
>>> from scratch
>>> then undo the entire creation, then redo it. This sounds complex, it
>>> was. However the framework made it easy, one piece at a time...  
>>> Perhaps someone should harvest that since it *was* generic.
>>
>> Ooh, nice. A good undo/redo framework would be *so* *very* good to have.
>> I'm afraid I can't be the one to harvest it, not anytime soon anyhow,
>> but I hope someone picks it up.
>>
>>
>> Regards,
>>
>> -Martin
>
>
>
> AbstractUndoRecord #()
> SophieAddContentRootRecord #('contentRoot' 'book')
> SophieAddDeleteStickyRecord #('sticky' 'page')
> SophieAddStickyRecord #()
> SophieDeleteStickyRecord #()
> SophieAddEmbedBookRecord #('book' 'bookToEmbed')
> SophieAddLeafNodeRecord #('book' 'leafNode' 'contentIndexPosition')
> SophieAddStickiesRecord #('stickies' 'book')
> SophieApplyFrameLocationStyleAttributesRecord #('bookModel' 'anchor' 'styleAttributes' 'oldStyleAttributes' 'page')
> SophieApplyPageTemplateRecord #('page' 'template' 'undoData' 'redoData' 'allRemovedFrames')
> SophieApplyParagraphStyleAttributesRecord #('book' 'marker' 'styleAttributes' 'oldStylesAttributes')
> SophieApplyParagraphStyleRecord #('book' 'marker' 'style' 'oldStyles')
> SophieApplyStyleToRangeRecord #('book' 'marker' 'styleAttributes' 'oldRangesStylesCollection')
> SophieBookExtentUndoRecord #('bookModel' 'newExtent' 'oldExtent')
> SophieBookStatisticRecord #('book' 'newStatistic' 'oldStatistic')
> SophieDeleteContentRangeRecord #('book' 'marker' 'positionAfter' 'partialTree')
> SophieEmbeddedBookUndoRecord #('ebook' 'embeddedBookResource' 'embeddedBookMapEntry')
> SophieEmbeddedLinkedToBookUndoRecord #('ebook' 'embeddedBookMapEntry' 'embeddedBookResource')
> SophieFrameRecord #('bookModel' 'frame')
> SophieFrameZOrderRecord #('page' 'forward')
> SophieFrameStyleUndoRecord #('bookModel' 'frame' 'attributes' 'state')
> SophieFrameToTemplateRecord #('bookModel' 'frame' 'page' 'zIndex' 'reversed')
> SophieInsertCharacterRecord #('book' 'character' 'position' 'positionAfter' 'style')
> SophieInsertPageBreakRecord #('book' 'position' 'marker')
> SophieInsertParagraphBreakRecord #('book' 'position' 'marker' 'characterStyle')
> SophieLinkActionRecord #('book' 'target' 'action' 'actionIndex')
> SophieLinkActionAddRecord #()
> SophieLinkActionRemoveRecord #()
> SophieLinkRecord #('book' 'target')
> SophieFrameTriggerCleanupRecord #('cleanupStuff')
> SophieLinkActionCloneRecord #('source' 'oldActions')
> SophieMarkerAddDeleteRecord #('marker' 'book')
> SophieMarkerAddMarkersRecord #()
> SophieMarkerAddRecord #()
> SophieMarkerDeleteRecord #('actions' 'markerSet')
> SophieMarkerRangeRecord #('book' 'marker' 'newStart' 'newStop' 'oldStart' 'oldStop')
> SophiePageRecord #('bookModel' 'page')
> SophieFlowOrderChangeRecord #('frame' 'index' 'flow')
> SophiePageStyleRecord #('styleAttributes')
> SophiePageUndoRecord #('spine' 'index' 'page')
> SophieInsertPageRecord #()
> SophieMovePageRecord #('oldIndex')
> SophiePasteFromImporterRecord #('book' 'importer' 'position' 'marker' 'partialTree')
> SophiePromoteTemplateOverridesRecord #('book' 'pageTemplateFrame' 'page' 'frameMap' 'deletedTemplateFrames' 'overrideFrames' 'templateFrameFramesFromOverideFrames' 'frameOverrides' 'frameStyleOverrides' 'frameActionsOverrides' 'oldTemplateFrameFrames' 'oldPageFlowMap' 'oldTemplateFlowMap' 'oldPageTemplate' 'newTemplateFrameFrames' 'newPageFlowMap' 'newPageTemplate' 'allRemovedFrames' 'removedOverrideFrameContents')
> SophieRegisterFlowRecord #('spine' 'flowID' 'content' 'contentID' 'flow')
> SophieRemoveContentRootRecord #('contentRoot' 'book')
> SophieRemoveFlowRecord #('spine' 'flow')
> SophieRemoveFrameRecord #('bookModel' 'page' 'frame' 'wasLocalOverride')
> SophieRemoveLeafNodeRecord #('book' 'leafNode' 'oldContentIndexPosition')
> SophieRemovePagesRecord #('spine' 'indices' 'pages')
> SophieReplaceLibraryTemplateRecord #('book' 'template' 'newTemplate')
> SophieReplaceTemplateRecord #('book' 'template' 'oldTemplateCopy' 'newTemplate')
> SophieResourceUndoRecord #('resources')
> SophieResourceDeleteRecord #('player')
> SophieResourceImportStreamRecord #('resourceManager' 'mimeType' 'stream')
> SophieResourceImportURIRecord #('resourceManager' 'uri')
> SophieResourceLinkToURIRecord #()
> SophieResourceStoreRecord #('book' 'object' 'metaKey')
> SophieSpineStateDeltaRecord #('book' 'spine' 'addedPages' 'removedPages')
> SophieSpineStateRecord #('book' 'spine' 'prevState' 'postState')
> SophieTimelineUndoRecord #('timelinePlayer')
> SophieTimelineUndoAbstractEventsRecord #('events')
> SophieTimelineUndoAddEventsRecord #()
> SophieTimelineUndoDeleteEventsRecord #()
> SophieTimelineUndoAddTimeline #('timeline' 'book')
> SophieTimelineUndoDeleteTimeline #()
> SophieTimelineUndoEventsMoveRecord #('undoData')
> SophieTriggerObjectCleanupRecord #('triggerObject' 'undoInformations')
> SophieUpdateLibraryStyleRecord #('book' 'newStyle' 'styleName' 'oldStyle')
> UndoRecord #('undoable' 'doMessage' 'undoMessage' 'description')
> SophieFrameUndoRecord #('bookModel' 'frame')
> SophieLibraryResourceUndoRecord #('bookModel')
> SophiePageInvalidationRecord #('bookModel' 'page')
> SophieFrameAlignmentUndoRecord #('groupFrame' 'framesAndOldPositions' 'framesAndNewPositions')
> SophieTriggerMarkerUndoRecord #('bookModel' 'marker')
> UndoRecordWithPostMessage #('postMessage')
> UndoRecordGroup #('description' 'subRecords')
> SophieFrameGroupUndoRecord #('frameGroup' 'bookModel')
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

Stéphane Ducasse
In reply to this post by johnmci
Did someone get a look in production at the Undo frameworks developed by alessandro warth?


On Jan 13, 2010, at 7:18 AM, John M McIntosh wrote:

> Yes, it's in the category "Sophie-Undo"
>
> If I consider the class AbstractUndoRecord
> We hung 67 subclasses off it, which gives you an idea of the complexity of  we what were doing (60 some UI actions), but also the fact it could handle it..
>
> UndoManager class comment:
>
> UndoManager manages execution and storing of UndoRecords through #doAndAddRecord:.
> It allows hierarchical grouping of UndoRecords through #openRecordGroup, #openRecordGroupNamed: and #closeRecordGroup.
> Undo and redo is invoked by #undo and #redo.
>
> See UndoManagerTest for someExamples.
>
> Structure:
> undoHistory OrderedCollection -- holds UndoRecords for undo
> redoHistory OrderedCollection -- holds UndoRecords for redo
> maxHistoryLength Integer -- Old UndoRecords in undoHistory are removed to keep it within given limits (0 for no Limit)
> groupStack OrderedCollection -- temporary dataStructure to manage hierarchical grouping of UndoRecords
> by #openRecordGroup and closeRecordGroup
> historyInvalid Boolean -- flag to indicate, that the history is invalid and it must be deleted including the groupStack
>
>
> On 2010-01-12, at 9:52 PM, Martin McClure wrote:
>
>> John M McIntosh wrote:
>>
>> [...]
>>>
>>> PS if anyone is interested the Undo/Redo Logic that Impara did for
>>> Sophie was very well received, easy to use, and we could build a book
>>> from scratch
>>> then undo the entire creation, then redo it. This sounds complex, it
>>> was. However the framework made it easy, one piece at a time...  
>>> Perhaps someone should harvest that since it *was* generic.
>>
>> Ooh, nice. A good undo/redo framework would be *so* *very* good to have.
>> I'm afraid I can't be the one to harvest it, not anytime soon anyhow,
>> but I hope someone picks it up.
>>
>>
>> Regards,
>>
>> -Martin
>
>
>
> AbstractUndoRecord #()
> SophieAddContentRootRecord #('contentRoot' 'book')
> SophieAddDeleteStickyRecord #('sticky' 'page')
> SophieAddStickyRecord #()
> SophieDeleteStickyRecord #()
> SophieAddEmbedBookRecord #('book' 'bookToEmbed')
> SophieAddLeafNodeRecord #('book' 'leafNode' 'contentIndexPosition')
> SophieAddStickiesRecord #('stickies' 'book')
> SophieApplyFrameLocationStyleAttributesRecord #('bookModel' 'anchor' 'styleAttributes' 'oldStyleAttributes' 'page')
> SophieApplyPageTemplateRecord #('page' 'template' 'undoData' 'redoData' 'allRemovedFrames')
> SophieApplyParagraphStyleAttributesRecord #('book' 'marker' 'styleAttributes' 'oldStylesAttributes')
> SophieApplyParagraphStyleRecord #('book' 'marker' 'style' 'oldStyles')
> SophieApplyStyleToRangeRecord #('book' 'marker' 'styleAttributes' 'oldRangesStylesCollection')
> SophieBookExtentUndoRecord #('bookModel' 'newExtent' 'oldExtent')
> SophieBookStatisticRecord #('book' 'newStatistic' 'oldStatistic')
> SophieDeleteContentRangeRecord #('book' 'marker' 'positionAfter' 'partialTree')
> SophieEmbeddedBookUndoRecord #('ebook' 'embeddedBookResource' 'embeddedBookMapEntry')
> SophieEmbeddedLinkedToBookUndoRecord #('ebook' 'embeddedBookMapEntry' 'embeddedBookResource')
> SophieFrameRecord #('bookModel' 'frame')
> SophieFrameZOrderRecord #('page' 'forward')
> SophieFrameStyleUndoRecord #('bookModel' 'frame' 'attributes' 'state')
> SophieFrameToTemplateRecord #('bookModel' 'frame' 'page' 'zIndex' 'reversed')
> SophieInsertCharacterRecord #('book' 'character' 'position' 'positionAfter' 'style')
> SophieInsertPageBreakRecord #('book' 'position' 'marker')
> SophieInsertParagraphBreakRecord #('book' 'position' 'marker' 'characterStyle')
> SophieLinkActionRecord #('book' 'target' 'action' 'actionIndex')
> SophieLinkActionAddRecord #()
> SophieLinkActionRemoveRecord #()
> SophieLinkRecord #('book' 'target')
> SophieFrameTriggerCleanupRecord #('cleanupStuff')
> SophieLinkActionCloneRecord #('source' 'oldActions')
> SophieMarkerAddDeleteRecord #('marker' 'book')
> SophieMarkerAddMarkersRecord #()
> SophieMarkerAddRecord #()
> SophieMarkerDeleteRecord #('actions' 'markerSet')
> SophieMarkerRangeRecord #('book' 'marker' 'newStart' 'newStop' 'oldStart' 'oldStop')
> SophiePageRecord #('bookModel' 'page')
> SophieFlowOrderChangeRecord #('frame' 'index' 'flow')
> SophiePageStyleRecord #('styleAttributes')
> SophiePageUndoRecord #('spine' 'index' 'page')
> SophieInsertPageRecord #()
> SophieMovePageRecord #('oldIndex')
> SophiePasteFromImporterRecord #('book' 'importer' 'position' 'marker' 'partialTree')
> SophiePromoteTemplateOverridesRecord #('book' 'pageTemplateFrame' 'page' 'frameMap' 'deletedTemplateFrames' 'overrideFrames' 'templateFrameFramesFromOverideFrames' 'frameOverrides' 'frameStyleOverrides' 'frameActionsOverrides' 'oldTemplateFrameFrames' 'oldPageFlowMap' 'oldTemplateFlowMap' 'oldPageTemplate' 'newTemplateFrameFrames' 'newPageFlowMap' 'newPageTemplate' 'allRemovedFrames' 'removedOverrideFrameContents')
> SophieRegisterFlowRecord #('spine' 'flowID' 'content' 'contentID' 'flow')
> SophieRemoveContentRootRecord #('contentRoot' 'book')
> SophieRemoveFlowRecord #('spine' 'flow')
> SophieRemoveFrameRecord #('bookModel' 'page' 'frame' 'wasLocalOverride')
> SophieRemoveLeafNodeRecord #('book' 'leafNode' 'oldContentIndexPosition')
> SophieRemovePagesRecord #('spine' 'indices' 'pages')
> SophieReplaceLibraryTemplateRecord #('book' 'template' 'newTemplate')
> SophieReplaceTemplateRecord #('book' 'template' 'oldTemplateCopy' 'newTemplate')
> SophieResourceUndoRecord #('resources')
> SophieResourceDeleteRecord #('player')
> SophieResourceImportStreamRecord #('resourceManager' 'mimeType' 'stream')
> SophieResourceImportURIRecord #('resourceManager' 'uri')
> SophieResourceLinkToURIRecord #()
> SophieResourceStoreRecord #('book' 'object' 'metaKey')
> SophieSpineStateDeltaRecord #('book' 'spine' 'addedPages' 'removedPages')
> SophieSpineStateRecord #('book' 'spine' 'prevState' 'postState')
> SophieTimelineUndoRecord #('timelinePlayer')
> SophieTimelineUndoAbstractEventsRecord #('events')
> SophieTimelineUndoAddEventsRecord #()
> SophieTimelineUndoDeleteEventsRecord #()
> SophieTimelineUndoAddTimeline #('timeline' 'book')
> SophieTimelineUndoDeleteTimeline #()
> SophieTimelineUndoEventsMoveRecord #('undoData')
> SophieTriggerObjectCleanupRecord #('triggerObject' 'undoInformations')
> SophieUpdateLibraryStyleRecord #('book' 'newStyle' 'styleName' 'oldStyle')
> UndoRecord #('undoable' 'doMessage' 'undoMessage' 'description')
> SophieFrameUndoRecord #('bookModel' 'frame')
> SophieLibraryResourceUndoRecord #('bookModel')
> SophiePageInvalidationRecord #('bookModel' 'page')
> SophieFrameAlignmentUndoRecord #('groupFrame' 'framesAndOldPositions' 'framesAndNewPositions')
> SophieTriggerMarkerUndoRecord #('bookModel' 'marker')
> UndoRecordWithPostMessage #('postMessage')
> UndoRecordGroup #('description' 'subRecords')
> SophieFrameGroupUndoRecord #('frameGroup' 'bookModel')
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

SergeStinckwich
In reply to this post by johnmci
2010/1/13 John M McIntosh <[hidden email]>:
> Er yes, that would be because it works? There is some 2.0 video at http://sophiecommons.blip.tv/ which appears to work.
>
> The old site is at  http://sophieproject.cntv.usc.edu/, open site at http://opensophie.com/
>
> We could have used media like below 2 years ago.
>
> At ESUG I'm sure someone remarked why don't folks doing presentations at smalltalk conferences use Sophie?

Advertisement problem ?

--
Serge Stinckwich
UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
Smalltalkers do: [:it | All with: Class, (And love: it)]
http://doesnotunderstand.org/

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

johnmci
Ya, I'm sure Stéphane said why don't you give a talk on it...

On 2010-01-13, at 1:02 AM, Serge Stinckwich wrote:
> Advertisement problem ?
>
> --
> Serge Stinckwich
> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
> Smalltalkers do: [:it | All with: Class, (And love: it)]
> http://doesnotunderstand.org/

--
===========================================================================
John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
===========================================================================





_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Undo/Redo [was: Re: Object Buffer (implementation tryout)]

Stéphane Ducasse
nobody to talk about it
but I would really like to see Sophie used in/by smalltalkers

On Jan 13, 2010, at 11:25 AM, John M McIntosh wrote:

> Ya, I'm sure Stéphane said why don't you give a talk on it...
>
> On 2010-01-13, at 1:02 AM, Serge Stinckwich wrote:
>> Advertisement problem ?
>>
>> --
>> Serge Stinckwich
>> UMI UMMISCO 209 (IRD/UPMC), Hanoi, Vietnam
>> Smalltalkers do: [:it | All with: Class, (And love: it)]
>> http://doesnotunderstand.org/
>
> --
> ===========================================================================
> John M. McIntosh <[hidden email]>   Twitter:  squeaker68882
> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
> ===========================================================================
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project


_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
Reply | Threaded
Open this post in threaded view
|

Re: Object Buffer (implementation tryout)

cedreek
In reply to this post by Alexandre Bergel
cool thanks :) ...

Shortcuts were not working in inspector/explorer but I fixed (hacked - override everywhere) it now.
(All these shortcuts and menu stuffs really s**ks !!!)

Anyway, it works and I'll use that until we got a better clipboard and/or history support :)


2010/1/13 Alexandre Bergel <[hidden email]>
I tried it and it works. Tests are clean and easy to understand. Look
okay to me.

Alexandre


On 12 Jan 2010, at 13:29, Cédrick Béler wrote:

> ping :)
>
> See you later,
>
> 2010/1/12 Alexandre Bergel <[hidden email]>
> Ok, I am waiting for your ping then
>
> Alexandre
>
> On 12 Jan 2010, at 12:17, Cédrick Béler wrote:
>
> >
> > Anyway, feel free to publish whatever changes you find necessary
> > (especially tests :) . I'll do some too)
> >
> >
> > I'm writting some right now...
> >
> > _______________________________________________
> > Pharo-project mailing list
> > [hidden email]
> > http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel  http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
>
>
> --
> Cédrick
> _______________________________________________
> Pharo-project mailing list
> [hidden email]
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

--
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.bergel.eu
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project



--
Cédrick

_______________________________________________
Pharo-project mailing list
[hidden email]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
12