1 @node Frame, Window, Primitives, Primitives
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.
10 TODO: add some info about Frames properties, such as GCs list, root
11 window, selected window, etc.
13 @defun xwem-frame-p frame
14 Returns non-@code{nil} if @var{frame} is XWEM Frame.
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::
28 @node Basic Frames, Creating Frames, Frame, Frame
29 @comment node-name, next, previous, up
30 @subsection Basic Frames
35 @node Creating Frames, Frame Properties, Basic Frames, Frame
36 @comment node-name, next, previous, up
37 @subsection Creating Frames
38 @cindex Creating Frames
40 Here is describe functions which is used to create frames. Also describe
41 default bindings to create frames. Describe side by side splits.
45 @node Frame Properties, Frame Title, Creating Frames, Frame
46 @comment node-name, next, previous, up
47 @subsection Frame Properties
48 @cindex Frame Properties
50 Each XWEM Frame have properties list, which is altered when creating
53 Here should be description of Frame's properties, default values, etc.
57 @node Frame Title, Deleting Frames, Frame Properties, Frame
58 @comment node-name, next, previous, up
59 @subsection Frame Title
62 Description of Frame tabber.
66 @node Deleting Frames, Frames Operations, Frame Title, Frame
67 @comment node-name, next, previous, up
68 @subsection Deleting Frames
69 @cindex Deleting Frames
71 You may easily delete any of XWEM Frame. All clients that have Frame as
72 parent window will be reparented to root window.
74 Here is should be description for default keybindings for frame deletion
75 and functions description.
79 @node Frames Operations, Embedded Frames, Deleting Frames, Frame
80 @comment node-name, next, previous, up
81 @subsection Frames Operations
82 @cindex Frames Operations
84 Here is description about what you can do with Frame. Switching,
85 linkage switching, etc.
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
94 @dfn{Embedded Frame} is Frame and CL at the same time.
96 Here is description on how to create embedded frames, how to unembed
101 @node Frames variables and functions, , Embedded Frames, Frame
102 @comment node-name, next, previous, up
103 @subsection Frames variables and functions
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}.
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.
119 (eq xwem-frame-cursor-shape 'X-XC-left_ptr)
124 @defvar xwem-frame-cursor-foreground-color
125 Specifies cursor's foreground color when pointer is over XWEM Frame.
128 xwem-frame-cursor-foreground-color
133 @defvar xwem-frame-cursor-background-color
134 Cursor's background color when pointer over XWEM Frame.
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:
141 @code{title-height} - Height in pixels to be used for title bar.
143 @code{inner-border-width} - Width in pixels of XWEM Frame's inner border.
145 @code{otter-border-width} - Width in pixels of XWEM Frame's otter border.
147 @code{title-thickness} - Used for 3D view of title bar.
152 (inner-border-width 0
159 @defvar xwem-face-frame-selected-win-selected
160 Face used to outline selected Window in selected Frame.
163 @defvar xwem-face-frame-selected-win-nonselected
164 Face used to outline non-selected Window in selected Frame.
167 @defvar xwem-face-frame-nonselected-win-selected
168 Face to outline selected Window in non-selected Frame.
171 @defvar xwem-face-frame-nonselected-win-nonselected
172 Face to outline non-selected Window in non-selected Frame.
175 @defvar xwem-face-win-delimeter
176 Face to draw Window delimeter.
179 @defvar xwem-face-win-delimeter-shadow
180 Face to draw shadow of Window delimeter.
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.
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}.
194 @defvar xwem-frame-keymap
195 Keymap used in Frames.
198 @defvar xwem-frames-list
202 @defvar xwem-current-frame
203 Refers to currently selected Frame.
206 @c Functions begins here
207 @defun xwem-frame-p frame
208 Return non-@code{nil} if @var{frame} is valid XWEM Frame.
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}.
221 @defun xwem-frame-mapped-p frame
222 Return non-@code{nil} if @var{frame} is mapped, i.e. its contents shown.
225 @defun xwem-frame-map frame
226 Map @var{frame}, i.e show it contents.
229 @defun xwem-frame-selected
230 Return currently selected Frame.
233 @defun xwem-frame-selected-p frame
234 Return non-@code{nil} if @var{frame} is selected Frame.
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}.
242 @defun xwem-frame-select-defhook old-frame new-frame
243 Default hook that present in @code{xwem-frame-switch-hooks}.
246 TODO: describe other functions ..
248 @defun xwem-init-frames
249 Initialise all stuff needed to manipulate with XWEM Frames.
252 @defun xwem-make-frame props
253 Creates new Frame with merged @code{xwem-frame-defprops} and @var{props}
257 @defun xwem-find-frame xwin
258 Find Frame by X Window @var{xwin}
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.
267 @defun xwem-frame-num frame
268 Return index position of @var{frame} in @code{xwem-frame-list}.
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.
276 @defun xwem-frame-redraw frame
277 Outlines Windows inside @var{frame}.
281 @defun xwem-frame-switch-nth n
282 Switch to @var{n} XWEM Frame in @code{xwem-frame-list}.
285 @defun xwem-frame-del-win &optional frame window
286 Removes XWEM @var{window} from XWEM @var{frame}.
289 @defun xwem-frame-del-others &optional frame window
290 Removes all XWEM Windows from XWEM @var{frame} other then @var{window}.
293 @defun xwem-frame-split-horiz &optional frame
294 Splits XWEM @var{frame} horizontally.
297 @defun xwem-frame-split-vert &optional frame
298 Splits XWEM @var{frame} vertically.
301 @defun xwem-frame-win-enlarge-hor n
302 Enlarges @code{xwem-win-selected} in @code{xwem-frame-selected} by n
306 @defun xwem-frame-win-enlarge-ver n
307 Enlarges @code{xwem-win-selected} in @code{xwem-frame-selected} by n
311 @defun xwem-frame-goto direction &optional frame
312 Go to next XWEM Window in @var{frame} in @var{direction}.