teachpack menu.
Instead DrRacket explicitly changes the menu items when
the language changes or when a teachpack is added/removed
Also, Rackety.
Closes PR 13395
This will make switching back and forth between 5.1.3 and the latest
not lose the frame size and position preferences (since the format
of the data is different now that the current release remembers
the position on a per-monitor-configuration basis)
One drawback to the current situation (after this commit) is that all
log messages are sent into the user's logger, even messages that come
about as part of DrRacket's implementation. It isn't clear how to fix
this without enumerating all of the possible messages to share and
explicitly forwarding them (both of which are suboptimal things).
On the plus side, the GUI now uses the "debug@GC" notation in a text
field, and when the logger pane is not open, there is no extra work
going on. Plus other, minor GUI improvements.
This was there, I believe, to avoid latency when clicking
on the [docs] links in the language dialog. But now that
we're using a database anyways, loading the xrefs is fast.
- use the same font/size as the definitions/interactions window
- add a checkbox to control scrolling behavior and,
- when scrolling, scroll to the begining of the line, not the end
Things should now generally be set up to work better --
for example online check syntax is smarter now about
what happens when switching tabs/frames and this also
makes it easier to add new ways for a window to become
dirty (that is, for it to be known that it needs to
be recompiled)
For example, a new DrRacket window (with a file named tmp.rkt in the
and 356 afterwards. This is under mac os x with, I believe, the
default system font sizes. (The file is important because different
languages can have different buttons in the toolbar and the filename's
length itself can affect the minimum size.)
Mostly this change is the addition of a new kind of panel that
lets its children have multiple fixed sizes (as opposed to
just a single minimum size and (optionally arbitrarily large))
It also adjusts the various toolbar buttons to use this new code.
Also, there's a few tweaks to shrink other things that became the
limiting factor in shrinking the width of the DrRacket window.
Currently, at least for #lang racket programs, the toolbar buttons
along the top of the window are the limiting factor (including the
save button). With a bogus language (ie, #lang rackeeet), the bottom
bar is the limiting factor, since that will have only the Save, Run,
and Stop buttons.
related to PR 13281
Typically, the bluebox table includes keys that have interned parts,
so serialization can save space both on disk and in memory when the
bluebox information is reloaded.
when the blue box doesn't fit in the visible region
in one direction (either x or y) but does fit
in the other region, then it was being drawn in
the wrong place
This code is still sub-optimal, since it isn't leaving
space for the words underneath the lock in the case
the lock is near the bottom of the visible region, but
it seems better to just let that be invisible rather
than make the lock float a bit in that case.
closes PR 13142
are shown in the corner of the window
This was an attempt to avoid opening up a whole status line in the
bottom of the window much of the time. But it doesn't really work
since as soon as you have a syntax error (which are relatively common)
you get that whole line opened up. That it, this attempted GUI interaction
depended on the bogus premise that read errors are somehow happening
in a transient way between error-free states.
closes PR 13267
getter/setters instead of overriding a method
this has the benefit that the delegate does not have to be
rebuilt when switching tabs in drracket; we just leave the
old delegate on the old definitions text, and the swap it
back into the editor-canvas when we swap the text% object
itself back in.
is no bluebox information, then we can just bypass updating
it on insertions (especially important when loading a big
file into drracket, as there is a lot of insertion but no
blue boxes (yet))