Initial Commit
[packages] / xemacs-packages / xwem / man / frame.texi
1 @node Frame, Window, Primitives, Primitives
2 @section Frame
3 @cindex Frame
4
5 @dfn{Frame} is general thing that used to hold XWEM
6 windows(@pxref{Window}).  Usually Frame have something like titlebar
7 which is used to display information related to manager state, such as
8 names for XWEM Clients(@pxref{Client}) or user defined information.
9
10 TODO: add some info about Frames properties, such as GCs list, root
11 window, selected window, etc.
12
13 @defun xwem-frame-p frame
14 Returns non-@code{nil} if @var{frame} is XWEM Frame.
15 @end defun
16
17 @menu
18 * Basic Frames::                Basic description for Frames.
19 * Creating Frames::             Creating Frames.
20 * Frame Properties::            Controlling frame's size, position, etc.
21 * Frame Title::                 Using frame title to display information.
22 * Deleting Frames::             How to delete frames.
23 * Frames Operations::           What you can do with Frames.
24 * Embedded Frames::             Frame may be normal XWEM client.
25 * Frames variables and functions::  
26 @end menu
27
28 @node Basic Frames, Creating Frames, Frame, Frame
29 @comment  node-name,  next,  previous,  up
30 @subsection Basic Frames
31 @cindex Basic Frames
32
33 TODO: write me
34
35 @node Creating Frames, Frame Properties, Basic Frames, Frame
36 @comment  node-name,  next,  previous,  up
37 @subsection Creating Frames
38 @cindex Creating Frames
39
40 Here is describe functions which is used to create frames.  Also describe
41 default bindings to create frames.  Describe side by side splits.
42
43 TODO: write me
44
45 @node Frame Properties, Frame Title, Creating Frames, Frame
46 @comment  node-name,  next,  previous,  up
47 @subsection Frame Properties
48 @cindex Frame Properties
49
50 Each XWEM Frame have properties list, which is altered when creating
51 Frame.
52
53 Here should be description of Frame's properties, default values, etc.
54
55 TODO: write me
56
57 @node Frame Title, Deleting Frames, Frame Properties, Frame
58 @comment  node-name,  next,  previous,  up
59 @subsection Frame Title
60 @cindex Frame Title
61
62 Description of Frame tabber.
63
64 TODO: write me
65
66 @node Deleting Frames, Frames Operations, Frame Title, Frame
67 @comment  node-name,  next,  previous,  up
68 @subsection Deleting Frames
69 @cindex Deleting Frames
70
71 You may easily delete any of XWEM Frame.  All clients that have Frame as
72 parent window will be reparented to root window.
73
74 Here is should be description for default keybindings for frame deletion
75 and functions description.
76
77 TODO: write me
78
79 @node Frames Operations, Embedded Frames, Deleting Frames, Frame
80 @comment  node-name,  next,  previous,  up
81 @subsection Frames Operations
82 @cindex Frames Operations
83
84 Here is description about what you can do with Frame.  Switching,
85 linkage switching, etc.
86
87 TODO: write me
88
89 @node Embedded Frames, Frames variables and functions, Frames Operations, Frame
90 @comment  node-name,  next,  previous,  up
91 @subsection Embedded Frames
92 @cindex Embedded Frames
93
94 @dfn{Embedded Frame} is Frame and CL at the same time.
95
96 Here is description on how to create embedded frames, how to unembed
97 them and so on.
98
99 TODO: write me
100
101 @node Frames variables and functions, , Embedded Frames, Frame
102 @comment  node-name,  next,  previous,  up
103 @subsection Frames variables and functions
104
105 @defvar xwem-frame-background
106 This is symbol specifies background color used in XWEM Frame. This color
107 should be in @code{xwem-gc-syscolors} or in @code{xwem-gc-bonus-colors}.
108 @example
109 xwem-frame-backgroud
110 @result{} "gray60"
111 @end example
112 @end defvar
113
114 @defvar xwem-frame-cursor-shape
115 This specifies shape of cursor when pointer is over XWEM Frame. It is
116 value of one of @code{X-XC-}@dots{} variable.
117
118 @example
119 (eq xwem-frame-cursor-shape 'X-XC-left_ptr)
120 @result{} t
121 @end example
122 @end defvar
123
124 @defvar xwem-frame-cursor-foreground-color
125 Specifies cursor's foreground color when pointer is over XWEM Frame.
126
127 @example
128 xwem-frame-cursor-foreground-color
129 @result{} "#002800"
130 @end example
131 @end defvar
132
133 @defvar xwem-frame-cursor-background-color
134 Cursor's background color when pointer over XWEM Frame.
135 @end defvar
136
137 @defvar xwem-frame-defprops
138 Plist which is used to define default properties for newly created XWEM
139 Frames.  Keys in this plist is symbols, you can use one of:
140
141 @code{title-height} - Height in pixels to be used for title bar.
142
143 @code{inner-border-width} - Width in pixels of XWEM Frame's inner border.
144
145 @code{otter-border-width} - Width in pixels of XWEM Frame's otter border.
146
147 @code{title-thickness} - Used for 3D view of title bar.
148
149 @example
150 xwem-frame-defprops
151 @result{}
152 (inner-border-width 0
153  otter-border-width 0
154  title-height 17
155  title-thickness 2)
156 @end example
157 @end defvar
158
159 @defvar xwem-face-frame-selected-win-selected
160 Face used to outline selected Window in selected Frame.
161 @end defvar
162
163 @defvar xwem-face-frame-selected-win-nonselected
164 Face used to outline non-selected Window in selected Frame.
165 @end defvar
166
167 @defvar xwem-face-frame-nonselected-win-selected
168 Face to outline selected Window in non-selected Frame.
169 @end defvar
170
171 @defvar xwem-face-frame-nonselected-win-nonselected
172 Face to outline non-selected Window in non-selected Frame.
173 @end defvar
174
175 @defvar xwem-face-win-delimeter
176 Face to draw Window delimeter.
177 @end defvar
178
179 @defvar xwem-face-win-delimeter-shadow
180 Face to draw shadow of Window delimeter.
181 @end defvar
182
183 @defvar xwem-frame-rolling-switch
184 Non-nil mean that @code{xwem-frame-next} and @code{xwem-frame-previous}
185 commands will always switch, even if there no next or previous Frame.
186 @end defvar
187
188 @defvar xwem-frame-switch-hook
189 Hooks to be called when Frame switching occurs
190 (i.e. @code{xwem-current-frame} changes).  Function will receive two
191 arguments @var{old-frame} and @var{new-frame}.
192 @end defvar
193
194 @defvar xwem-frame-keymap
195 Keymap used in Frames.
196 @end defvar
197
198 @defvar xwem-frames-list
199 List of all Frames.
200 @end defvar
201
202 @defvar xwem-current-frame
203 Refers to currently selected Frame.
204 @end defvar
205
206 @c Functions begins here
207 @defun xwem-frame-p frame
208 Return non-@code{nil} if @var{frame} is valid XWEM Frame.
209
210 @example
211 (xwem-frame-p t)
212 @result{} nil
213 @end example
214 @end defun
215
216 @defun xwem-frame-alive-p frame
217 Return non-@code{nil} if @var{frame} is alive frame, i.e. in
218 @code{xwem-frames-list}.
219 @end defun
220
221 @defun xwem-frame-mapped-p frame
222 Return non-@code{nil} if @var{frame} is mapped, i.e. its contents shown.
223 @end defun
224
225 @defun xwem-frame-map frame
226 Map @var{frame}, i.e show it contents.
227 @end defun
228
229 @defun xwem-frame-selected
230 Return currently selected Frame.
231 @end defun
232
233 @defun xwem-frame-selected-p frame
234 Return non-@code{nil} if @var{frame} is selected Frame.
235 @end defun
236
237 @defun xwem-frame-select frame &optional dnr-hooks
238 Make @var{frame} to be selected.  Runs @code{xwem-frame-switch-hooks} if
239 @var{frame} is not already selected and @var{dnr-hooks} non-@code{nil}.
240 @end defun
241
242 @defun xwem-frame-select-defhook old-frame new-frame
243 Default hook that present in @code{xwem-frame-switch-hooks}.
244 @end defun
245
246 TODO: describe other functions ..
247
248 @defun xwem-init-frames
249 Initialise all stuff needed to manipulate with XWEM Frames.
250 @end defun
251
252 @defun xwem-make-frame props
253 Creates new Frame with merged @code{xwem-frame-defprops} and @var{props}
254 together properties.
255 @end defun
256
257 @defun xwem-find-frame xwin
258 Find Frame by X Window @var{xwin}
259 @end defun
260
261 @defun xwem-frame-find how arg
262 Find Frame according to @var{how} and @var{arg}.  @var{how} can be one
263 of @code{xwin}, @code{win} or @code{cl}.  @var{arg} is X Window, XWEM
264 Window or XWEM Client respectively.
265 @end defun
266
267 @defun xwem-frame-num frame
268 Return index position of @var{frame} in @code{xwem-frame-list}.
269 @end defun
270
271 @defun xwem-frame-draw frame fully
272 Draw @var{frame}.  If @var{fully} is non-@code{nil} then
273 @code{XClearArea} Frame's X window before drawing.
274 @end defun
275
276 @defun xwem-frame-redraw frame
277 Outlines Windows inside @var{frame}.
278 @end defun
279
280 @c Commands
281 @defun xwem-frame-switch-nth n
282 Switch to @var{n} XWEM Frame in @code{xwem-frame-list}.
283 @end defun
284
285 @defun xwem-frame-del-win &optional frame window
286 Removes XWEM @var{window} from XWEM @var{frame}.
287 @end defun
288
289 @defun xwem-frame-del-others &optional frame window
290 Removes all XWEM Windows from XWEM @var{frame} other then @var{window}.
291 @end defun
292
293 @defun xwem-frame-split-horiz &optional frame
294 Splits XWEM @var{frame} horizontally.
295 @end defun
296
297 @defun xwem-frame-split-vert &optional frame
298 Splits XWEM @var{frame} vertically.
299 @end defun
300
301 @defun xwem-frame-win-enlarge-hor n
302 Enlarges @code{xwem-win-selected} in @code{xwem-frame-selected} by n
303 pixels horizontally.
304 @end defun
305
306 @defun xwem-frame-win-enlarge-ver n
307 Enlarges @code{xwem-win-selected} in @code{xwem-frame-selected} by n
308 pixels vertically.
309 @end defun
310
311 @defun xwem-frame-goto direction &optional frame
312 Go to next XWEM Window in @var{frame} in @var{direction}.
313 @end defun