1 #ifndef EL__OSDEP_NEWWIN_H
2 #define EL__OSDEP_NEWWIN_H
4 #include "terminal/terminal.h"
6 /* {struct open_in_new} and @open_in_new is used for setting up menues
7 * of how new windows can be opened. */
9 enum term_env_type env
; /* The term->environment the entry covers */
10 unsigned char *command
; /* The default command for openning a window */
11 unsigned char *text
; /* The menu text */
14 /* The table containing all the possible environment types */
15 extern const struct open_in_new open_in_new
[];
17 /* Iterator for the @open_in_new table over a terminal environment bitmap. */
18 #define foreach_open_in_new(i, term_env) \
19 for ((i) = 0; open_in_new[(i)].env; (i)++) \
20 if (((term_env) & open_in_new[(i)].env))
22 /* Returns the number of possible ways to open new windows using the
23 * environment of @term. */
24 int can_open_in_new(struct terminal
*term
);
26 /* Opens a new window with the executable @exe_name under the given terminal
27 * @environment and passing the arguments in the string @param.
29 * For the ENV_XWIN environment, @exe_name being 'elinks' and @param empty the
30 * window will be opened using: 'xterm -e elinks' */
31 void open_new_window(struct terminal
*term
, unsigned char *exe_name
,
32 enum term_env_type environment
, unsigned char *param
);