Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
Made command menu panes less broken.
Implemented :inherit-menu keyword argument for MAKE-COMMAND-TABLE and DEFINE-COMMAND-TABLE.
Further hacking to polish the "pixie" look. Enabled pixie-style menus, revamped various compose-space and handle-repaint methods. Minor changes to menu.lisp allowing pixie to customize the decoration of submenu windows, and to detect when menu buttons are in a vertical menu (versus the menu bar). Changed drawing of the arrow widget on scroll bars and submenu buttons to use a small bitmap rather than polygon drawing, as the polygon drawing was awkward and (due to rounding?) did not look right. On CLX, Pixie can be invoked as follows: (setf *default-frame-manager* (make-instance 'climi::pixie/clx-look :port (find-port)))
Moved `display-command-table-menu' to menu.lisp and implemented `display-command-menu'.
Oops, don't allow the menu bar to get smaller on resizes. * menu.lisp ((compose-space menu-bar)): Specify min-height.
Hack the MENU-BAR to draw its own 3d effect instead of wrapping a RAISED-PANE around it. This way the frame manager gets to decide on the appearance of the menu bar. * menu.lisp (MAKE-MENU-BAR): Don't wrap the menu bar pane in a raising. (HANDLE-REPAINT, COMPOSE-SPACE, BOX-LAYOUT-MIXIN/HORIZONTALLY-ALLOCATE-SPACE): New methods on menu-bar.
In find-applicable-translators, call remove-duplicates on the resulting list so that commands reached multiple times via inheritance only appear once (fixing duplicate command menu items in the listener). Remove comment in menu.lisp that only :command and :menu items are supported, which has changed. In the main CLX event handler for configure-notify events, use xlib:translate-coordinates to compute the position of the top-level sheet relative to the screen root window. This fixes a problem where resizing a frame caused the sheet-delta-transformation to be incorrect, causing menus from the menubar to appear in incorrect places.
Fix to :function menu items (forgot to save my emacs buffer..)
Menubar and gadget changes: In deactivated gadgets, 'engrave' the text rather than simply dimming the label. Menu bars now use deactivate-gadget on the menu-buttons to signify disabled commands. Implemented divider menu items, with an optional label. Implemented :function menu items. For submenu buttons in vertical menus, draw a little arrow to the right of the name to distinguish them from regular menu items.
Fix problem with command names in menu items
Implement command-enabled and (setf command-enabled). This includes a test in command presentation translators that checks if the command is currently enabled. Menu items are disabled if the command is disabled, though buttons on menu bars aren't handled yet. Created a command com-describe-presentation that can be enabled/disabled seperately from com-describe.
Cleaned up the frame layout code. It's now possible to change layouts on the fly. Got rid of frame-pane and replaced it with a proper definition of frame-panes that conforms to the Spec. All the frame pane and layout functions in the spec should be implemented now. In presentation-replace-input, checked in a fix that I thought was already in.
Change presentation-subtypep for command-name and command. See comment above command-table-inherits-from-p. Change menu code to throw menu-item presentation types instead of commands; accept that in read-frame-command. The menutest example works again, although the highlighting is a bit broken. clim-fig's menus don't work yet; I need to figure out why clim-fig still needs its own top-level to work.
untested, but should work.
More work on updating-output. It's working well enough to be on by default. Make the menu code throw a command presentation object/type instead of directly invoking the command function.
make all of the package names passed to in-package be lowercase keywords for ACL's java mode
3 sets of additions/changes/fixes: presentation-replace-input Bugs I fixed while at ILC, including implementing accept-from-string. Fixes made in the course of getting cl-reversi to work (it mostly does modulo display timing issues). This includes a revamping of command tables, menus and keystrokes.
Menu bars now no longer spread their children out but pack them left as every other menu bar does.
An attempt to fix menus.
language support for text-styles, korean font support, support for 16 bit fonts, support for font composition, support for timer events, some cosmetic changes, support for unicode characters, etc. A bit much at once, and hopefully it won't break for anyone who isn't using unicode enabled cmucl.
added look and feel support to menus, fixed floating menu leakage, etc
added ink parameters to draw-lines-edges*
* MAKE-MENU-BUTTON-FROM-MENU-ITEM: Turn command name into command.
* Menu throws command as presentation instead of directly executing.
Menu buttons now reuse the DRAW-LABEL* from gadgets.lisp for correct vertical align of the button's label. We should advertise DRAW-LABEL* and design a label protocol ...
MAKE-MENU-BAR: Default value for MAX-WIDTH now is +fill+, so that an invisible menu-bar within a vrack page does no longer limit the frame's width.
Bug fix: Do not draw to a non-realized gadget, but marked with three X's, since not strictly correct. Attempts to fix <firstname.lastname@example.org>: | From: Pixel / Edena <email@example.com> | To: firstname.lastname@example.org | Subject: Something is broken | Date: Sat, 27 Apr 2002 11:37:05 +0200 | | Hi, | | I've just compiled the last CVS updates and here is what I get once | I click on a menu item (inside a menubar, even with clim-fig or with my own | code) : | | Type-error in KERNEL::OBJECT-NOT-TYPE-ERROR-HANDLER: | NIL is not of type XLIB:DRAWABLE | | Restarts: | 0: [ABORT] Return to Top-Level. | | Debug (type H for help) | | (XLIB:DRAW-RECTANGLE 7 NIL #<XLIB:GCONTEXT :0 12583010> 0 ...)[:EXTERNAL] | 0] | | I know this error occurs only when (run-frame-top-level) is launched. | | Any idea ? | | J.Pouderoux
Sundry fixes to run without multiprocessing support. Added images/ to hold bitmaps for tests. Added looks/ to hold neutral look-and-feel realizer packages. Added Examples/gadget-test to test many gadgets with a look and feel. Added a pixie look and feel, and a pixie/clx to work with the clx backend. Added drawing support in the CLX backend for ovals and circles. Fixed pixmaps to work with with-output-to-pixmap with draw-image, etc. Moved sheet-leaf-mixin to standard-gadget-pane so it doesn't break radio-box-pane, etc. Misc fixes.
Make a global choice, based on multiprocessing or not, whether events should be handled immediately or queued up to be serviced by another process. The choice is implemented by the classes clim-sheet-input-mixin and clim-repainting-mixin, from which all panes inherit. These classes' superclasses are conditionalized on whether or not the implementation is capable of multiprocessing. When multiprocessing there is a single event queue per frame. This is implemented by queue-event on pane classes. The event loop is implemented in stream-input-wait. In single processing mode, stream-input-wait calls process-next-event and handles events immediately. When multiprocessing, stream-input-wait reads events from the frame event queue and handles them. The function clim-extensions:simple-event-loop is supplied for applications which do not loop reading from a stream; various examples have been changed to use it. In stream-read-gesture/stream-input-wait the input-wait-test function is not expected to block anymore; nor is the input-wait-handler expected to dispatch events. input-wait-handler is responsible for consuming events that should not be seen by anyone else. input-context-wait-test and highlight-applicable-presentation have been rewritten to reflect this. The adjustable-array buffer for extended-input-streams has been added back in. A typo in %event-matches-gesture has been fixed. Default methods for map-over-output-records-containing-position and map-over-output-records-overlapping-region have been added. The cursor implementation has been broken out into a cursor-mixin so I can snarf it for Goatee :)
MAKE-MENU-BAR temporary medicine
mixed PERMANENT-MEDIUM-SHEET-OUTPUT-MIXIN into MENU-BAR
Added the macro with-special-choices. Its purpose is to add backend dependant drawing optimizations in repaint protocol. For example, with CLX, it adds the double-buffering thanks to pixmaps by calling the macro with-double-buffering. Julien.
Fixed an drawing dimension error for menu-draw-unhighlighted and menu-draw-highlighted
Method of double-buffering added thanks to pixmaps
Idem for menu, but I add some keyword arguments at make-menu-bar. You can now specify your owne width height etc.
Removed methods for compose-space and pane-space-requirement on menu-button-pane, as they are inhereted from labelled-gadget. Added raised-pane around submenus (thanks to Iban).
Removed code that tested for `destroyed' slot, since it is no longer needed.
Added method on handle-event for menu-button-leaf-pane and pointer-ungrab-event.
fixed illegal arglist
Support for menu bars.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|