[lice @ shit loads of stuff]
[lice.git] / src / frame.lisp
blob0d922f150e1c455ae178ac361e6164043bff6994
1 (in-package :lice)
3 (defvar *frame-list* nil
4 "List of frames lice frames.")
6 (defun set-frame-minibuffer (frame minibuffer)
7 "Make MINIBUFFER the minibuffer for FRAME."
8 (setf (window-buffer (frame-minibuffer-window frame)) minibuffer))
10 (defun resize-window (window amount &optional (dir :height))
11 "grow or shrink window, resizing dependant windows as well."
12 (declare (ignore window amount dir))
13 ;; (let* ((frame (frame-window-tree (frame-for-window window)))
14 ;; (sibling (tree-sibling frame window)))
15 ;; )
18 (defun selected-frame ()
19 "Return the frame that is now selected."
20 *selected-frame*)
22 (defun active-minibuffer-window ()
23 "Return the currently active minibuffer window or nil if there isn't
24 one."
25 (let ((frame (selected-frame)))
26 (unless (zerop (frame-minibuffers-active frame))
27 (frame-minibuffer-window frame))))
29 (defun frame-window-list (frame &optional minibuf)
30 "Return the list of windows in FRAME. If MINIBUF is true then include the minibuffer window."
31 ;; (declare (type frame frame))
32 ;; FIXME: The reason we need to pass MB into flatten is because movitz can't "lend optional right now"
33 (labels ((flatten (tree mb)
34 (if (atom tree)
35 (unless (and (typep tree 'minibuffer-window)
36 (not mb))
37 (list tree))
38 (nconc (flatten (first tree) mb)
39 (flatten (second tree) mb)))))
40 (flatten (frame-window-tree frame) minibuf)))
42 (defun framep (object)
43 "Return non-nil if OBJECT is a frame.
44 Value is t for a termcap frame (a character-only terminal),
45 `x' for an Emacs frame that is really an X window,
46 `w32' for an Emacs frame that is a window on MS-Windows display,
47 `mac' for an Emacs frame on a Macintosh display,
48 `pc' for a direct-write MS-DOS frame.
49 See also `frame-live-p'."
50 (typep object 'frame))
52 (defun frame-live-p ()
53 (error "unimplemented frame-live-p"))
55 (defun make-terminal-frame ()
56 (error "unimplemented make-terminal-frame"))
58 (defun handle-switch-frame ()
59 (error "unimplemented handle-switch-frame"))
61 (defun select-frame (frame)
62 "Select the frame FRAME.
63 Subsequent editing commands apply to its selected window.
64 The selection of FRAME lasts until the next time the user does
65 something to select a different frame, or until the next time this
66 function is called. If you are using a window system, the previously
67 selected frame may be restored as the selected frame after return to
68 the command loop, because it still may have the window system's input
69 focus. On a text-only terminal, the next redisplay will display FRAME.
71 This function returns FRAME, or nil if FRAME has been deleted."
72 (declare (ignore frame))
73 (error "unimplemented select-frame"))
75 (defun frame-root-window ()
76 (error "unimplemented frame-root-window"))
78 (defun frame-first-window ()
79 (error "unimplemented frame-first-window"))
81 (depricate set-frame-selected-window (setf frame-selected-window))
82 (defun set-frame-selected-window (frame window)
83 "Set the selected window of frame object frame to window.
84 Return window.
85 If frame is nil, the selected frame is used.
86 If frame is the selected frame, this makes window the selected window."
87 (setf (frame-selected-window (or frame (selected-frame))) window))
89 (defun frame-list ()
90 "Return a list of all frames."
91 (copy-list *frame-list*))
93 (defun next-frame ()
94 (error "unimplemented next-frame"))
96 (defun previous-frame ()
97 (error "unimplemented previous-frame"))
99 (defun delete-frame ()
100 (error "unimplemented delete-frame"))
102 (defun mouse-position ()
103 (error "unimplemented mouse-position"))
105 (defun mouse-pixel-position ()
106 (error "unimplemented mouse-pixel-position"))
108 (defun set-mouse-position ()
109 (error "unimplemented set-mouse-position"))
111 (defun set-mouse-pixel-position ()
112 (error "unimplemented set-mouse-pixel-position"))
114 (defun make-frame-visible ()
115 (error "unimplemented make-frame-visible"))
117 (defun make-frame-invisible ()
118 (error "unimplemented make-frame-invisible"))
120 (defun iconify-frame ()
121 (error "unimplemented iconify-frame"))
123 (defun frame-visible-p ()
124 (error "unimplemented frame-visible-p"))
126 (defun visible-frame-list ()
127 (error "unimplemented visible-frame-list"))
129 (defun raise-frame ()
130 (error "unimplemented raise-frame"))
132 (defun lower-frame ()
133 (error "unimplemented lower-frame"))
135 (defun redirect-frame-focus ()
136 (error "unimplemented redirect-frame-focus"))
138 (defun frame-focus ()
139 (error "unimplemented frame-focus"))
141 (defun frame-parameters ()
142 (error "unimplemented frame-parameters"))
144 (defun frame-parameter ()
145 (error "unimplemented frame-parameter"))
147 (defun modify-frame-parameters ()
148 (error "unimplemented modify-frame-parameters"))
150 (defun frame-char-height ()
151 (error "unimplemented frame-char-height"))
153 (defun frame-char-width ()
154 (error "unimplemented frame-char-width"))
156 (defun frame-pixel-height ()
157 (error "unimplemented frame-pixel-height"))
159 (defun frame-pixel-width ()
160 (error "unimplemented frame-pixel-width"))
162 (defun set-frame-height ()
163 (error "unimplemented set-frame-height"))
165 (defun set-frame-width ()
166 (error "unimplemented set-frame-width"))
168 (defun set-frame-size ()
169 (error "unimplemented set-frame-size"))
171 (defun set-frame-position ()
172 (error "unimplemented set-frame-position"))
175 ;; (defun x-get-resource ()
176 ;; (error "unimplemented"))
178 ;; (defun x-parse-geometry ()
179 ;; (error "unimplemented"))
181 (provide :lice-0.1/frame)