From: "Drew Adams" <drew.adams@oracle.com>
Subject: pop-up tool-bar
Date: Thu, 7 Oct 2004 00:51:56 -0700 [thread overview]
Message-ID: <MEEKKIABFKKDFJMPIOEBKEKICGAA.drew.adams@oracle.com> (raw)
This code adds a minor mode, `tool-bar-here-mode', which is the same as
`tool-bar-mode', except that it affects only the selected frame.
It also adds a "button" named "Tool Bar" to the far right of the menu-bar
whenever the tool-bar is not visible (both `tool-bar-here-mode' and
`tool-bar-mode' are turned off). You can click the button to pop up the
tool-bar on the selected frame for the execution of a single command
(typically a tool-bar button click). The Tool Bar button is absent whenever
the tool-bar is visible, and vice versa.
The idea is to _conserve frame real estate_ but still have quick access to
the tool-bar: No reason to have a tool-bar on each frame. No reason to have
a tool-bar visible all the time; just pop it up when you need it.
Any interest in adding something like this to Emacs (file tool-bar.el)? It's
not intended to replace `tool-bar-mode'; it's just an alternative for people
who might want to use the tool-bar sometimes but don't want to sacrifice
real estate from every frame all the time.
- Drew
---------------8<-----------------------------------
(define-key global-map [menu-bar temp-tool-bar]
'(menu-item "Tool Bar" show-tool-bar-for-one-command
:visible (and (not tool-bar-mode) (not tool-bar-here-mode))
:enable (and (not tool-bar-mode) (not tool-bar-here-mode))
:help "Use tool bar for one command"))
(setq menu-bar-final-items (append menu-bar-final-items (list
'temp-tool-bar)))
(define-minor-mode tool-bar-here-mode
"Toggle use of the tool bar on this frame only.
With numeric ARG, display the tool bar if and only if ARG is positive.
See `tool-bar-add-item' and `tool-bar-add-item-from-menu' for
conveniently adding tool bar items."
:init-value nil :global t :group 'mouse :group 'frames
(and (display-images-p)
(let ((lines (if tool-bar-here-mode 1 0)))
;; Alter existing frame...
(modify-frame-parameters (selected-frame) (list (cons 'tool-bar-lines
lines))))
(if (and tool-bar-here-mode
(display-graphic-p)
(= 1 (length (default-value 'tool-bar-map)))) ; not yet set up
(tool-bar-setup))))
(defun show-tool-bar-for-one-command ()
"Pop up the tool bar so you can click a button.
The tool bar stays visible until one command is executed
\(whether or not it was initiated by clicking a button)."
(interactive)
(unwind-protect
(let (evnt)
(tool-bar-here-mode 99) ; Show tool-bar
(setq evnt (read-event))
(push evnt unread-command-events))
(tool-bar-here-mode -99))) ; Hide tool-bar
next reply other threads:[~2004-10-07 7:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-07 7:51 Drew Adams [this message]
2004-10-07 11:33 ` pop-up tool-bar Miguel Frasson
2004-10-07 19:01 ` Drew Adams
2004-10-07 20:07 ` Stefan Monnier
2004-10-07 21:04 ` Drew Adams
2004-10-07 21:44 ` Drew Adams
2004-10-09 15:44 ` Richard Stallman
2004-10-10 19:15 ` Drew Adams
2004-10-08 17:20 ` Drew Adams
2004-10-08 17:39 ` Stefan
2004-10-08 18:24 ` David Kastrup
2004-10-08 19:58 ` Drew Adams
2004-10-08 19:03 ` Drew Adams
2004-10-08 23:12 ` Stefan Monnier
2004-10-09 0:46 ` Drew Adams
2004-10-11 4:45 ` Drew Adams
2004-10-07 20:08 ` David Kastrup
2004-10-07 20:20 ` Drew Adams
2004-10-07 20:54 ` Stefan Monnier
2004-10-07 20:56 ` David Kastrup
2004-10-08 6:12 ` Miguel Frasson
2004-10-09 15:45 ` Richard Stallman
2004-10-07 15:13 ` Stefan Monnier
2004-10-07 17:15 ` Drew Adams
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MEEKKIABFKKDFJMPIOEBKEKICGAA.drew.adams@oracle.com \
--to=drew.adams@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).