;ELC ;;; Compiled ;;; in Emacs version 26.3 ;;; with all optimizations. ;;; This file contains utf-8 non-ASCII characters, ;;; and so cannot be loaded into Emacs 22 or earlier. (and (boundp 'emacs-version) (< (aref emacs-version (1- (length emacs-version))) ?A) (string-lessp emacs-version "23") (error "`%s' was compiled for Emacs 23 or later" #$)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (byte-code "\300\301\302\303\304\305\306\307\306\310& \210\311\312\313\314\304\305\306\301&\210\311\315\316\317\304\305\306\301&\210\311\320\321\322\304\305\306\301&\210\311\323\324\325\304\305\306\301&\210\311\326\327\330\304\305\306\301&\207" [custom-declare-group frame-tabs nil "Frame tabs." :version "26.1" :group convenience frames custom-declare-face frame-tabs-buffer-tab ((t :inherit variable-pitch :box (:line-width 2 :color "grey72") :foreground "black" :background "grey84")) "Basic frame tabs buffer tab face.\nThis face is used for buffer tabs and is inherited by all other\nframe tabs faces." frame-tabs-selected-tab ((t :inherit frame-tabs-buffer-tab :background "pink")) "Frame tabs face for selected window's buffer tab.\nThis is the face used for the tab corresponding to the buffer\ncurrently shown in the selected window." frame-tabs-higlight-tab ((t :inherit frame-tabs-buffer-tab :foreground "white" :background "green3")) "Frame tabs face for highlighting buffer tabs.\nThis is the face used when the mouse cursor hovers over a buffer\ntab." frame-tabs-x-tab ((t :inherit frame-tabs-buffer-tab :bold t)) "Frame tabs face for 'x' buttons." frame-tabs-x-higlight-tab ((t :inherit frame-tabs-item-tab :foreground "white" :background "red3")) "Frame tabs face for highlighting 'x' buttons.\nThis face is used when the mouse cursor hovers over an 'x'\nbutton."] 10) #@64 Helper function for customizing frame tabs. (fn SYMBOL VALUE) (defalias 'frame-tabs--set-value #[514 "\301\"\210\203 \300\302!\210\300\303!\207" [frame-tabs-mode set-default -1 1] 5 (#$ . 1798)]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317& \210\300\320\302\303\321DD\322\306\323\310\311\312\313\314\315\316\317& \210\300\324\302\303\325DD\326\306\327\314\315\316\317& \210\300\330\302\303\331DD\332\306\327\314\315\316\317& \210\300\333\302\303\334DD\335\306\336\314\315\316\317& \207" [custom-declare-variable frame-tabs-side funcall function #[0 "\300\207" [top] 1] "Side of frame where tabs windows are located.\nChoices are 'top' (the default), 'bottom', 'left' and 'right'." :type (choice (const top) (const bottom) (const left) (const right)) :initialize custom-initialize-default :set frame-tabs--set-value :version "26.1" :group frame-tabs frame-tabs-x #[0 "\300\207" [nil] 1] "Non-nil means frame tabs show an 'x' button for each buffer tab.\nThe 'x' button serves to dismiss the corresponding buffer in\nvarious ways." boolean frame-tabs-min-size #[0 "\300\207" [1] 1] "Mimimum size of frame tabs windows.\nFor tabs windows at the top or bottom of a frame this is their\nminimum number of lines. For tabs windows at the left or right\nof a frame this is their minimum number of columns.\n\nThis value may be overridden when the major side window showing\nthe frame tabs window contains other windows." integer frame-tabs-max-size #[0 "\300\207" [6] 1] "Maximum size of frame tabs windows.\nFor tabs windows at the top or bottom of a frame this is their\nmaximum number of lines. For tabs windows at the left or right\nof a frame this is their maximum number of columns.\n\nThis value may be overridden when the major side window showing\nthe frame tabs window contains other windows." frame-tabs-delay #[0 "\300\207" [0.0] 1] "Frame tabs update interval, in seconds.\nThis is the time Emacs waits before updating frame tabs windows." float] 14) #@60 Default filter function for frame tabs. (fn BUFFER FRAME) (defalias 'frame-tabs-default-filter #[514 "\300!\211\301H\302=?\205 \211\207" [buffer-name 0 32] 5 (#$ . 3802)]) (byte-code "\300\301\302\303\304DD\305\306\303\307\310\311\312& \207" [custom-declare-variable frame-tabs-filter-function funcall function #[0 "\300\207" [frame-tabs-default-filter] 1] "Filter function for frame tabs.\nThis is a function that takes two arguments - a buffer and a\nframe. If this function returns nil, no tab will be shown for\nthe buffer in the frame's tab window. Otherwise, this function\nmust return a string and the frame's tabs window will display\nthat string as the buffer's tab.\n\nThe default excludes buffers whose name starts with a space." :type :version "26.1" :group frame-tabs] 10) #@78 Default frame tabs function for getting a buffer list for FRAME. (fn FRAME) (defalias 'frame-tabs-default-buffer-list #[257 "\300!\207" [buffer-list] 3 (#$ . 4599)]) (byte-code "\300\301\302\303\304DD\305\306\303\307\310\311\312& \207" [custom-declare-variable frame-tabs-buffer-list funcall function #[0 "\300\207" [frame-tabs-default-buffer-list] 1] "Function for returning a buffer list for frame tabs.\nThis is a function that takes one argument - a frame - and\nreturns a buffer list for that frame. The default is to call\n`buffer-list' for that frame which means to return the frame's\nlocal buffer list. Customizing this option allows, for example,\nto return the fundamental buffer list or a list of buffer in\nalphabetical order of their names instead." :type :version "26.1" :group frame-tabs] 10) #@24 Frame tabs idle timer. (defvar frame-tabs-timer nil (#$ . 5418)) #@56 Non-nil while frame tabs runs its idle timer function. (defvar frame-tabs-run nil (#$ . 5489)) #@29 List of frame tabs buffers. (defvar frame-tabs-buffers nil (#$ . 5590)) #@20 Frame tabs keymap. (defvar frame-tabs-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\305#\210\301\311\312#\210\301\313\305#\210\301\314\315#\210\301\316\305#\210\301\317\320#\210\301\321\305#\210\301\322\323#\210\301\324\305#\210\211\207" [make-sparse-keymap define-key [down-mouse-1] frame-tabs-switch-to-buffer [mouse-1] ignore [C-down-mouse-1] frame-tabs-switch-to-buffer-other-window [C-mouse-1] [M-down-mouse-1] frame-tabs-switch-to-buffer-other-frame [M-mouse-1] [down-mouse-3] frame-tabs-bury-buffer [mouse-3] [C-down-mouse-3] frame-tabs-replace-buffer [C-mouse-3] [M-down-mouse-3] frame-tabs-kill-buffer [M-mouse-3]] 5) (#$ . 5668)) #@99 Frame tabs 'x' keymap. This keymap is used when frame tabs show an 'x' button via `frame-tabs-x'. (defvar frame-tabs-x-map (byte-code "\300 \301\302\303#\210\301\304\305#\210\301\306\307#\210\301\310\305#\210\301\311\312#\210\301\313\305#\210\211\207" [make-sparse-keymap define-key [down-mouse-1] frame-tabs-bury-buffer [mouse-1] ignore [C-down-mouse-1] frame-tabs-replace-buffer [C-mouse-1] [M-down-mouse-1] frame-tabs-kill-buffer [M-mouse-1]] 5) (#$ . 6361)) #@126 Return or create a tabs window for FRAME. FRAME must be a live frame and defaults to the selected one. (fn &optional FRAME) (defalias 'frame-tabs--window #[256 "\306!\262\307\310>\311C\311C\311\211C\3122*\313\314\315\316\317\320  #\321\"\322\323%!0\204Z\324\325!\240\210\242\nB\211\326 \240\210r\242q\210\327\242\330B\203R\331\202S\332 BD\"\240\210)\242\203Hr\242q\210\311\211\311?\333 \210@!\211\203\316\211@A\n\"\211\203\306\334\335\336B\337 \242=\203\233`\262\f\340\202\234\341\342\343& c\210C\203\266\334\344\335\336D\337\345\342\346& c\210\203\303\334\347\350\351#\202\304\352c\210\210A\266\202\202s\210`Sf\353>\203\333\354\355!\210\203\364\356\357!\210\311/\356\360!\210\3110\356\361!\210\3071\362\242\363\211#\210\364\242\363\211#\210\365\242\363\"\210\311E\366\242F #\210\203\367E\202 \370E\371\242e\"\210\311G\372\242\373\307#\210\356\374!\210\311<\375\242\206?e\"\210)\376\242\307\"\210\242)\207" [frame-tabs-side window-resize-pixelwise frame-tabs-buffers frame-tabs-min-size mode-line-format header-line-format window-normalize-frame t (top bottom) nil found walk-window-tree make-byte-code 257 "\304!\211 >\2052\300\240\210\301\240\210\301\242\305 =\203)r\300\242q\210\302\306`\307\"\240\210)\202.\302\304 \240\210\310\311\312\"\207" vconcat vector [frame-tabs-buffers window-buffer selected-window get-text-property buffer throw found t] 6 "\n\n(fn WINDOW)" generate-new-buffer " *tabs*" window-buffer display-buffer-in-side-window side window-width window-height erase-buffer propertize buffer keymap face frame-tabs-selected-tab frame-tabs-buffer-tab mouse-face frame-tabs-higlight-tab "×" frame-tabs-x-tab frame-tabs-x-higlight-tab " " display (space :relative-width 0.1) "\n" (32 10) delete-char -1 make-local-variable truncate-lines truncate-partial-width-windows word-wrap set-window-margins 0 set-window-fringes set-window-scroll-bars fit-window-to-buffer height width set-window-start set-window-parameter no-other-window transient-mark-mode set-window-point set-window-dedicated-p buffer-read-only frame-tabs-buffer-list frame-tabs-filter-function frame-tabs-map frame-tabs-x frame-tabs-x-map window-size-fixed frame-tabs-max-size cursor-type] 21 (#$ . 6836)]) #@38 Update frame tabs after timer fires. (defalias 'frame-tabs--update #[0 "\303 \304\305\306\307\310\311!\312\"\313$\216\314\n\211\203>\211@\315!\204'\316\n\"\2027\317\314\"\2047\316\n\"\320!\210A\266\202\202\210\321 \211\205b\211@\322\323\"\324=\204[\322\325\"\204[\326!\210A\266\202\202A\262*\207" [buffer-list-update-hook frame-tabs-run frame-tabs-buffers selected-window nil make-byte-code 0 "\303\300!\210\304\305\n!\207" vconcat vector [frame-tabs-run frame-tabs-timer select-window nil cancel-timer] 2 t buffer-live-p delq get-buffer-window kill-buffer frame-list frame-parameter minibuffer only unsplittable frame-tabs--window] 7 (#$ . 9115)]) #@31 Schedule updating frame tabs. (defalias 'frame-tabs--enable-timer #[0 "?\205\303 !\203\304 !\210\305\n\306\307#\211\207" [frame-tabs-run frame-tabs-timer frame-tabs-delay timerp cancel-timer run-with-idle-timer t frame-tabs--update] 4 (#$ . 9797)]) #@43 Remove frame tabs window from each frame. (defalias 'frame-tabs--remove #[0 "\30311\304\305 !\210\n\211\203'\211@\306!\203\307\304\"\210\310!\210A\266\202\202 \210\311\211\305 !0\207\210\311\207" [frame-tabs-run frame-tabs-timer frame-tabs-buffers (error) t cancel-timer buffer-live-p delete-windows-on kill-buffer nil] 6 (#$ . 10058)]) #@48 Run timer when a window configuration changes. (defalias 'frame-tabs--window-configuration-change #[0 "\300 \207" [frame-tabs--enable-timer] 1 (#$ . 10413)]) #@50 Run timer when the buffer list has been updated. (defalias 'frame-tabs--buffer-list-update #[0 "\300 \207" [frame-tabs--enable-timer] 1 (#$ . 10577)]) #@67 Run timer when the root window of FRAME changes size. (fn FRAME) (defalias 'frame-tabs--window-size-change #[257 "\301!\302>\203\303!\304!U\203$\305>\205&\306!\307!U?\205&\310 \207" [frame-tabs-side frame-root-window (top bottom) window-pixel-width-before-size-change window-pixel-width (left right) window-pixel-height-before-size-change window-pixel-height frame-tabs--enable-timer] 5 (#$ . 10734)]) #@178 Switch to buffer of tab clicked on. EVENT is the original event associated with the click. WHERE is the location where the switch shall take place. (fn EVENT &optional WHERE) (defalias 'frame-tabs--switch-to-buffer #[513 "\300!\211@\262\301!\302rq\210\212\303\300!!b\210\304`\305\"\262\306 =\203-\307\310\311\302\312#!\210\313!\204:\314\315\"\202U\316=\203F\317!\202U\320=\203R\321!\202U\322!*\207" [event-end window-buffer nil posn-point get-text-property buffer selected-window select-window get-mru-window 0 t buffer-live-p message "Not a live buffer %s" other-window switch-to-buffer-other-window other-frame switch-to-buffer-other-frame switch-to-buffer] 10 (#$ . 11156)]) #@68 In selected window switch to buffer of tab clicked on. (fn EVENT) (defalias 'frame-tabs-switch-to-buffer #[257 "\300!\207" [frame-tabs--switch-to-buffer] 3 (#$ . 11864) "e"]) #@65 In other window switch to buffer of tab clicked on. (fn EVENT) (defalias 'frame-tabs-switch-to-buffer-other-window #[257 "\300\301\"\207" [frame-tabs--switch-to-buffer other-window] 4 (#$ . 12047) "e"]) #@64 In other frame switch to buffer of tab clicked on. (fn EVENT) (defalias 'frame-tabs-switch-to-buffer-other-frame #[257 "\300\301\"\207" [frame-tabs--switch-to-buffer other-frame] 4 (#$ . 12258) "e"]) #@154 Dismiss buffer of tab clicked on. EVENT is the original event associated with the click. HOW is the type of dismissal chosen. (fn EVENT &optional HOW) (defalias 'frame-tabs--dismiss-buffer #[513 "\300!\211@\262\301!\302rq\210\212\303\300!!b\210\304`\305\"\262*\306 =\203.\307\310\311\302\312#!\210\313=\203:\314!\202U\315=\203F\316!\202U\301 =\203R\317 \202U\317!\207" [event-end window-buffer nil posn-point get-text-property buffer selected-window select-window get-mru-window 0 t replace replace-buffer-in-windows kill kill-buffer bury-buffer] 10 (#$ . 12467)]) #@44 Bury buffer of tab clicked on. (fn EVENT) (defalias 'frame-tabs-bury-buffer #[257 "\300!\207" [frame-tabs--dismiss-buffer] 3 (#$ . 13061) "e"]) #@73 Replace buffer of tab clicked on in all windows showing it. (fn EVENT) (defalias 'frame-tabs-replace-buffer #[257 "\300\301\"\207" [frame-tabs--dismiss-buffer replace] 4 (#$ . 13213) "e"]) #@44 Kill buffer of tab clicked on. (fn EVENT) (defalias 'frame-tabs-kill-buffer #[257 "\300\301\"\207" [frame-tabs--dismiss-buffer kill] 4 (#$ . 13410) "e"]) (byte-code "\300\301\302\303\304DD\305\306\307\310\311\312\313\314\315\316\317& \207" [custom-declare-variable frame-tabs-mode funcall function #[0 "\300\207" [nil] 1] "Non-nil if Frame-Tabs mode is enabled.\nSee the `frame-tabs-mode' command\nfor a description of this minor mode.\nSetting this variable directly does not take effect;\neither customize it (see the info node `Easy Customization')\nor call the function `frame-tabs-mode'." :set custom-set-minor-mode :initialize custom-initialize-default :group frame-tabs :type boolean :link (emacs-commentary-link "frame-tabs.el")] 14) #@371 Toggle display of a buffer tabs side window on each frame. With a prefix argument ARG, enable this mode if ARG is positive, and disable it otherwise. If called from Lisp, enable the mode if ARG is omitted or nil. When this mode is enabled, every normal frame is equipped with a side window showing tabs for all buffers that appeared on that frame. (fn &optional ARG) (defalias 'frame-tabs-mode #[256 "\301 \302\300\303=\203\304\300!?\202\305!\306V\"\210\2037\307\310\311\312#\210\307\313\314\312#\210\307\315\316\312#\210\317 \210\320 \210\202I\321\310\311\"\210\321\313\314\"\210\321\315\316\"\210\322 \210\323\324\304\300!\203U\325\202V\326\"\210\327\330!\203\200\331\300!\210\301 \203n\211\301 \232\203\200\332\333\334\304\300!\203{\335\202|\336#\266\210\337 \210\304\300!\207" [frame-tabs-mode current-message set-default toggle default-value prefix-numeric-value 0 add-hook buffer-list-update-hook frame-tabs--buffer-list-update append window-configuration-change-hook frame-tabs--window-configuration-change window-size-change-functions frame-tabs--window-size-change frame-tabs--enable-timer frame-tabs--update remove-hook frame-tabs--remove run-hooks frame-tabs-mode-hook frame-tabs-mode-on-hook frame-tabs-mode-off-hook called-interactively-p any customize-mark-as-set "" message "Frame-Tabs mode %sabled%s" "en" "dis" force-mode-line-update] 7 (#$ . 14161) (byte-code "\206\301C\207" [current-prefix-arg toggle] 1)]) (defvar frame-tabs-mode-hook nil) (byte-code "\301\302N\204\f\303\301\302\304#\210\305\306\307\310\300!\205\307\211%\210\311\312!\207" [frame-tabs-mode-map frame-tabs-mode-hook variable-documentation put "Hook run after entering or leaving `frame-tabs-mode'.\nNo problems result if this variable is not bound.\n`add-hook' automatically binds it. (This is true for all hook variables.)" add-minor-mode frame-tabs-mode nil boundp provide frame-tabs] 6)