Commit cfbb2395 authored by Juanma Barranquero's avatar Juanma Barranquero

(Fwindow_parameters, Fwindow_parameter, Fset_window_parameter): New defuns.

(syms_of_window): Defsubr the new defuns.
(make_window): Initialize window_parameters to nil.
parent 2124318a
...@@ -273,6 +273,7 @@ make_window () ...@@ -273,6 +273,7 @@ make_window ()
p->frame = Qnil; p->frame = Qnil;
p->display_table = Qnil; p->display_table = Qnil;
p->dedicated = Qnil; p->dedicated = Qnil;
p->window_parameters = Qnil;
p->pseudo_window_p = 0; p->pseudo_window_p = 0;
bzero (&p->cursor, sizeof (p->cursor)); bzero (&p->cursor, sizeof (p->cursor));
bzero (&p->last_cursor, sizeof (p->last_cursor)); bzero (&p->last_cursor, sizeof (p->last_cursor));
...@@ -1324,6 +1325,52 @@ non-nil means yes. */) ...@@ -1324,6 +1325,52 @@ non-nil means yes. */)
return w->dedicated; return w->dedicated;
} }
DEFUN ("window-parameters", Fwindow_parameters, Swindow_parameters,
0, 1, 0,
doc: /* Return the parameters-alist of window WINDOW.
It is a list of elements of the form (PARAMETER . VALUE).
The meaningful PARAMETERs depend on the kind of window.
If WINDOW is omitted, return information on the currently selected window. */)
(window)
Lisp_Object window;
{
if (NILP (window))
window = selected_window;
return decode_window (window)->window_parameters;
}
DEFUN ("window-parameter", Fwindow_parameter, Swindow_parameter,
2, 2, 0,
doc: /* Return WINDOW's value for parameter PARAMETER.
If WINDOW is nil, describe the currently selected window. */)
(window, parameter)
Lisp_Object window, parameter;
{
if (NILP (window))
window = selected_window;
return Fassq (parameter, decode_window (window)->window_parameters);
}
DEFUN ("set-window-parameter", Fset_window_parameter,
Sset_window_parameter, 3, 3, 0,
doc: /* Set window parameter PARAMETER to VALUE on WINDOW.
Return the parameters-alist of WINDOW. */)
(window, parameter, value)
Lisp_Object window, parameter, value;
{
register struct window *w = decode_window (window);
Lisp_Object old_alist_elt;
old_alist_elt = Fassq (parameter, w->window_parameters);
if (EQ (old_alist_elt, Qnil))
w->window_parameters = Fcons (Fcons (parameter, value), w->window_parameters);
else
Fsetcdr (old_alist_elt, value);
return w->window_parameters;
}
DEFUN ("window-display-table", Fwindow_display_table, Swindow_display_table, DEFUN ("window-display-table", Fwindow_display_table, Swindow_display_table,
0, 1, 0, 0, 1, 0,
doc: /* Return the display-table that WINDOW is using. doc: /* Return the display-table that WINDOW is using.
...@@ -7687,6 +7734,10 @@ with the relevant frame selected. */); ...@@ -7687,6 +7734,10 @@ with the relevant frame selected. */);
defsubr (&Sset_window_vscroll); defsubr (&Sset_window_vscroll);
defsubr (&Scompare_window_configurations); defsubr (&Scompare_window_configurations);
defsubr (&Swindow_list); defsubr (&Swindow_list);
defsubr (&Swindow_parameters);
defsubr (&Swindow_parameter);
defsubr (&Sset_window_parameter);
} }
void void
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment