OK, too bad :( As mentioned, I already have the scheme:text% working, so I guess I keep fattening it little by little. Thanks, again!
br, jukka > -----Original Message----- > From: robby.find...@gmail.com [mailto:robby.find...@gmail.com]on Behalf > Of Robby Findler > Sent: 03 November 2010 14:32 > To: Jukka Tuominen > Cc: users@racket-lang.org > Subject: Re: [racket] Embedding DrRacket > > > Oh. That's not possible. > > You can have an approximation by using scheme:text%. That's the > easiest thing anyways. > > Robby > > On Wednesday, November 3, 2010, Jukka Tuominen > <jukka.tuomi...@finndesign.fi> wrote: > > > > That does great job hiding the middle panel, thanks! (see below > the updated code). However, that either wasn't what I really was > after. Sorry for not being able to explain it well. > > > > I'm trying to embed the full featured DrRacket GUI inside the > middle panel. Including menus, toolbars, definition field, > (possibly interaction field), search/replace bar, statusbar > (anything missing?). Have the shortcuts, drag-and-drops working, > etc. If necessary, the menus could go under a menu button, like > [define..] in DrRacket's toolbar. > > > > I try to explain the reason behind a little. I have an app that > can browse through objects of different kind. For a text object, > I would embed a text editor in the middle panel. In case of a > scheme object, I would embed a full-powered and self-sufficient > scheme editor, i.e. DrRacket. You could then edit, debug, and > save the change on the spot without ever leaving the app or > opening extra views. > > > > Building a DrRacket plugin isn't desirable either, since most > times you would just view a random, non-scheme object without editing it. > > > > I hope this explains my (not so small) challenge a bit better. > > > > br, jukka > > > > ;; Improved Version > > ((lambda () > > > > (define frame > > (new frame% > > (parent #f) > > (label "Embedded Editor") > > (border 5) > > (min-width 400) > > (min-height 225))) > > > > (define vertical-panel-top > > (new vertical-panel% > > (parent frame) > > (style '(border)))) > > > > ;; Replace the following definition > > (define vertical-panel-editor > > (new vertical-panel% > > (parent frame) > > (style '(border)))) > > > > (define vertical-panel-bottom > > (new vertical-panel% > > (parent frame) > > (style '(border)) > > (alignment (list 'center 'bottom)))) > > > > (define button-evaluate > > (new > > button% > > (parent vertical-panel-bottom) > > (label "Hide Editor") > > (callback (lambda (button event)(send frame > change-children (lambda (l) (remq vertical-panel-editor l))))) > > (style '()) > > (enabled #t) > > (vert-margin 2) > > (horiz-margin 2) > > (min-width 0) > > (min-height 0) > > (stretchable-width #f) > > (stretchable-height #f))) > > > > (send frame show #t))) > > > >> -----Original Message----- > >> From: robby.find...@gmail.com [mailto:robby.find...@gmail.com]on Behalf > >> Of Robby Findler > >> Sent: 03 November 2010 13:34 > >> To: Jukka Tuominen > >> Cc: users@racket-lang.org > >> Subject: Re: [racket] Embedding DrRacket > >> > >> > >> I think I misunderstood your original query. > >> > >> You can't change the parent, but you can tell a parent not to show a > >> child by calling the change-children method. Something like this in > >> your code: > >> > >> (send frame change-children (lambda (l) (remq > vertical-panel-editor l))) > >> > >> Robby > >> > >> On Wed, Nov 3, 2010 at 5:00 AM, Jukka Tuominen > >> <jukka.tuomi...@finndesign.fi> wrote: > >> > > >> > Thanks Robby, > >> > > >> > I'll look into your suggestion. I'm still hesitating whether I > >> will manage with my very limited skills to gather all pieces one > >> by one, and have them actually working smoothly with each other > >> Like DrRacket does. This is very uncertain terrain to me. > >> Preferably, I had something I could just place between two panels > >> and change the parent to point to one level up. And it should run > >> inside a lambda, not leaving any assignments behind. Something > like this: > >> > > >> > > >> > ((lambda () > >> > > >> > (define frame > >> > (new frame% > >> > (parent #f) > >> > (label "Embedded Editor") > >> > (border 5) > >> > (min-width 400) > >> > (min-height 225))) > >> > > >> > (define vertical-panel-top > >> > (new vertical-panel% > >> > (parent frame) > >> > (style '(border)))) > >> > > >> > ;; Replace the following definition > >> > (define vertical-panel-editor > >> > (new vertical-panel% > >> > (parent frame) > >> > (style '(border)))) > >> > > >> > (define vertical-panel-bottom > >> > (new vertical-panel% > >> > (parent frame) > >> > (style '(border)))) > >> > > >> > (send frame show #t))) > >> > > >> > > >> > Is there any solution to this, you could think of? > >> > > >> > > >> > br, jukka > >> > > >> > > >> >> -----Original Message----- > >> >> From: robby.find...@gmail.com [mailto:robby.find...@gmail.com]on Behalf >> >> Of Robby Findler >> >> Sent: 03 November 2010 02:10 >> >> To: Jukka Tuominen >> >> Cc: users@racket-lang.org >> >> Subject: Re: [racket] Embedding DrRacket >> >> >> >> >> >> Try just using frame:standard-menus% in place of frame%. You will need >> >> to change the parents of any panels you create from the frame to the >> >> result of calling the get-area-container method (you'll get an error >> >> that points you in the right direction). >> >> >> >> That may not be exactly all of the right menus, but hopefully that'll >> >> get you started. >> >> >> >> Robby >> >> >> >> On Tue, Nov 2, 2010 at 6:25 PM, Jukka Tuominen >> >> <jukka.tuomi...@finndesign.fi> wrote: >> >> > >> >> > Hi, >> >> > >> >> > I have made a lambda function that draws a frame with several >> >> panels. Now, >> >> > I've been trying to figure out how to embed DrRacket's >> GUI/functionality >> >> > inside one of these panels, so I could show/hide it as >> needed. The way >> >> > DrRacket gathers all bits and mixins in the initializing >> process, seems >> >> > overwhelming to me (I'm not a programmer). I managed to get a simple >> >> > scheme:text% editor working, which does some of the things I >> need, but I >> >> > really need fully functional IDE in order to avoid constant >> copy/pasting >> > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users