KAvatarUser sub-class and right-click popup menu

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

KAvatarUser sub-class and right-click popup menu

hexo
Hi there,

I'm trying to make a custom popup menu for a KAvatarUser subclass by overriding it with a custom getPopupMenuScript: but it changes nothing.

I've made a KStandardHarness subclass that overrides initializeAvatar: and instantiates my new KAvatarUser subclass so everything should work fine... but somehow it doesn't, I keep seeing the original pop-up menu.

I'm not experienced with Squeak and Croquet so the solution is probably right under my nose, but I just can't see it.

Thanks for your help.

Kind regards,
BS
Reply | Threaded
Open this post in threaded view
|

Re: KAvatarUser sub-class and right-click popup menu

David Faught
You might want to take a look at this:
https://lists.duke.edu/sympa/arc/croquet-dev/2006-09/msg00034.html

The names have changed a bit for the KAT stuff, but the idea is similar.

On 11/18/07, hexo <[hidden email]> wrote:

>
> Hi there,
>
> I'm trying to make a custom popup menu for a KAvatarUser subclass by
> overriding it with a custom getPopupMenuScript: but it changes nothing.
>
> I've made a KStandardHarness subclass that overrides initializeAvatar: and
> instantiates my new KAvatarUser subclass so everything should work fine...
> but somehow it doesn't, I keep seeing the original pop-up menu.
>
> I'm not experienced with Squeak and Croquet so the solution is probably
> right under my nose, but I just can't see it.
>
> Thanks for your help.
>
> Kind regards,
> BS
> --
> View this message in context: http://www.nabble.com/KAvatarUser-sub-class-and-right-click-popup-menu-tf4832430.html#a13825503
> Sent from the Croquet - Dev mailing list archive at Nabble.com.
>
>
Reply | Threaded
Open this post in threaded view
|

Re: KAvatarUser sub-class and right-click popup menu

hexo

David Faught wrote
You might want to take a look at this:
https://lists.duke.edu/sympa/arc/croquet-dev/2006-09/msg00034.html

The names have changed a bit for the KAT stuff, but the idea is similar.
I appreciate your effort, it helped.

That being said, another problem popped up:
I was trying to make a slideshow in KAT using TSlideshowApp but can't get it to synchronise. Both participants have identical Croquet distributions, but when one of them clicks on the slideshow window only his replica changes slides. The method that starts the slideshow is below:

makeSlideShow3
        | app |
        app := self activeIsland future new: KSDKEmbeddedApp.
        app future name: #TSlideShowApp extent: 512@512 data: 'slideshow'.
        ^self windowForShowFrom: app.

windowForShowFrom: contents
        ^self new: KImageContainer from: contents

I've tried using TEmbeddedApp, KEmbeddedAppWithMouseOver and KMedia2DContainer where appropriate, but to no effect.

Also, any other ideas on making slideshow-style presentations for multiple participants in Croquet would be welcome. So far the only reasonable solution is RFB client and a presentation software on a remote desktop. I've checked for other solutions on the board and found this -  http://www.nabble.com/Slideshow-Giving-a-talk-using-Croquet-tf3773860.html - but that's not exactly what I'm looking for. Drag-and-dropping multiple files works, but seems a bit clumsy when compared to click-on-the-widnow slideshow.

My terminology and methodology are probably wrong as I'm very new to Croquet, but any help would be welcome.
Reply | Threaded
Open this post in threaded view
|

Re: KAvatarUser sub-class and right-click popup menu

David Faught
On 11/22/07, hexo <[hidden email]> wrote:

> I was trying to make a slideshow in KAT using TSlideshowApp but can't get it
> to synchronise. Both participants have identical Croquet distributions, but
> when one of them clicks on the slideshow window only his replica changes
> slides. The method that starts the slideshow is below:
>
> makeSlideShow3
>        | app |
>        app := self activeIsland future new: KSDKEmbeddedApp.
>        app future name: #TSlideShowApp extent: 512@512 data: 'slideshow'.
>        ^self windowForShowFrom: app.
>
> windowForShowFrom: contents
>        ^self new: KImageContainer from: contents
>
> I've tried using TEmbeddedApp, KEmbeddedAppWithMouseOver and
> KMedia2DContainer where appropriate, but to no effect.

The TSlideShowApp should work, but I'm not sure exactly how you are
starting it.  I believe that the EmbeddedApp Demo starts it up from
the world>>initialize method so that everything happens inside of the
replicated island.

The code above looks like you are trying to start it from a UI menu
item, which is in the user local area, outside of the replicated
island.  The first couple of lines in the makeSlideShow3 method are
creating something in the related island, and yet the
windowForShowFrom: method is creating something in the user local
area.  You can't have it both ways.  You might try more closely
following the EmbeddedApp Demo and keep everything inside the
replicated island for a starting place.

> Also, any other ideas on making slideshow-style presentations for multiple
> participants in Croquet would be welcome. So far the only reasonable
> solution is RFB client and a presentation software on a remote desktop. I've
> checked for other solutions on the board and found this -
> http://www.nabble.com/Slideshow-Giving-a-talk-using-Croquet-tf3773860.html -
> but that's not exactly what I'm looking for. Drag-and-dropping multiple
> files works, but seems a bit clumsy when compared to click-on-the-widnow
> slideshow.

As mentioned in that thread, most likely the slideshow that was
presented was done with straight Squeak, not Croquet, although the
same thing would be possible in Croquet.  It is possible to bring up a
Squeak world inside of the Croquet 3D space. I think that if brought
up locally the KAT demo has a space that has the pictures of the
Croquet architects in it along with links to several other demo
spaces.  Somewhere in the space with the architects' pictures is a
window with a chess game in it, which is an example of a Squeak world
running inside Croquet.  The KAT text windows are also Squeak worlds.
Presentations in Squeak are generally done by navigating through
Projects, or sometimes using BookMorphs.  There is a starting place
for more info at http://wiki.squeak.org/squeak/3486

Dave
Reply | Threaded
Open this post in threaded view
|

Re: KAvatarUser sub-class and right-click popup menu

hexo
David Faught wrote
The TSlideShowApp should work, but I'm not sure exactly how you are
starting it.  I believe that the EmbeddedApp Demo starts it up from
the world>>initialize method so that everything happens inside of the
replicated island.
The code above looks like you are trying to start it from a UI menu
item, which is in the user local area, outside of the replicated
island.  The first couple of lines in the makeSlideShow3 method are
creating something in the related island, and yet the
windowForShowFrom: method is creating something in the user local
area.  You can't have it both ways.  You might try more closely
following the EmbeddedApp Demo and keep everything inside the
replicated island for a starting place.
I pasted the slideshow bit from EmbeddedWorld>>initialize into WisconsinWorld>>initialize, but it still didn't synchronise. Each participant could click on it independently (provided the others kept their pointers off the slideshow window), and only his replica changed. The others just blinked - might that be a clue to a solution?

On the other hand,  maybe we missunderstood each other - I'm looking for a slideshow app which would allow one user to click, and all others would see the next slide, provided all of them had the picture stored locally. Is that what TSlideShowApp is supposed to do? Are there any other examples of TSlideShowApp use besides EmbeddedWorld or KStandardHarness>>makeTestThingie (which also doesn't synchronise)?

Thanks for your help.

Kind regards,
Boris Spremo
Reply | Threaded
Open this post in threaded view
|

Re: KAvatarUser sub-class and right-click popup menu

David Faught
> I pasted the slideshow bit from EmbeddedWorld>>initialize into
> WisconsinWorld>>initialize, but it still didn't synchronise. Each
> participant could click on it independently (provided the others kept their
> pointers off the slideshow window), and only his replica changed. The others
> just blinked - might that be a clue to a solution?
>
> On the other hand,  maybe we missunderstood each other - I'm looking for a
> slideshow app which would allow one user to click, and all others would see
> the next slide, provided all of them had the picture stored locally. Is that
> what TSlideShowApp is supposed to do? Are there any other examples of
> TSlideShowApp use besides EmbeddedWorld or KStandardHarness>>makeTestThingie
> (which also doesn't synchronise)?

Okay, I tried pasting this into the WisconsinWorld>>initialize and got
similar results to what you described.

        app := KSDKEmbeddedApp new name: #TSlideShowApp extent: 400@300 data: 'icons'.
        win := self makeWindow.
        win contents: app.
        win translation: (0@0.25@-6).
        space addChild: win.

What this should do is cycle through the image files in the (Croquet
base)/icons directory, which it does, but only for the first
participant.  I don't know why the other participants don't load the
images, because as you said they blink when the first participant
clicks, so they are probably getting the nextImage event.

My guess would be that the TSlideShowApp should be using a
mediaManager to pass around the image files, but I would think because
it doesn't that every participant should still be loading the images
themselves.  I guess I'm stumped for the moment.