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 |
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. > > |
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. |
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 |
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 |
> 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. |
Free forum by Nabble | Edit this page |