view tests/gtk/toolbar-test.el @ 4968:4d35e52790f8

fix crash in glyph-cachels -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-03 Ben Wing <ben@xemacs.org> * frame.c (Fmake_frame): * glyphs.c: * glyphs.c (NUM_PRECACHED_GLYPHS): * glyphs.c (get_glyph_cachel_index): * glyphs.c (FROB): * glyphs.c (mark_glyph_cachels_as_not_updated): * redisplay.c (regenerate_window): * redisplay.c (redisplay_window): When creating a frame, call reset_glyph_cachels on the minibuffer window as well as the root window. Fixes a crash due to other glyphs (e.g. the gutter glyph) getting in the glyph cachel before the pre-cached glyphs that are supposed to have fixed indices (continuation-glyph, truncation-glyph, etc.). Add a bunch of asserts to make sure that the glyph cachels always properly contain the pre-cached glyphs.
author Ben Wing <ben@xemacs.org>
date Wed, 03 Feb 2010 21:06:14 -0600
parents db7068430402
children ba07c880114a
line wrap: on
line source

;; This file is part of XEmacs.
;;
;; XEmacs is free software; you can redistribute it and/or modify it
;; under the terms of the GNU General Public License as published by the
;; Free Software Foundation; either version 2, or (at your option) any
;; later version.
;;
;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
;; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
;; for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with XEmacs; see the file COPYING.  If not, write to
;; the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
;; Boston, MA 02111-1301, USA.  */

(require 'gtk-widgets)
(require 'gnome-widgets)

(defvar gnomeified-toolbar
  ;; [CAPTION TOOLTIP ICON CALLBACK ENABLED]
  '(["Open" "Open a file" new toolbar-open t]
    ["Dired" "Edit a directory" open toolbar-dired t]
    ["Save" "Save buffer" save toolbar-save t]
    ["Print" "Print Buffer" print toolbar-print t]
    ["Cut" "Kill region" cut toolbar-cut t]
    ["Copy" "Copy region" copy toolbar-copy t]
    ["Paste" "Paste from clipboard" paste toolbar-paste t]
    ["Undo" "Undo edit" undo toolbar-undo t]
    ["Spell" "Check spelling" spellcheck toolbar-ispell t]
    ["Replace" "Search & Replace" srchrpl toolbar-replace t]
    ["Mail" "Read mail" mail toolbar-mail t]
    ; info
    ; compile
    ; debug
    ; news
    ))

(setq x (gtk-toolbar-new 'horizontal 'both))
(gnome-app-set-toolbar (frame-property nil 'shell-widget) x)

(mapc (lambda (descr)
	(gtk-toolbar-append-item x
				 (aref descr 0)
				 (aref descr 1)
				 ""
				 (gnome-stock-pixmap-widget-new x (aref descr 2))
				 `(lambda (&rest ignored)
				    (,(aref descr 3)))))
      gnomeified-toolbar)