2
/******************************************************************************
4
* DESCRIPTION: Main current graphical interface for user applications
5
* COPYRIGHT : (C) 1999 Joris van der Hoeven
6
*******************************************************************************
7
* This software falls under the GNU general public license and comes WITHOUT
8
* ANY WARRANTY WHATSOEVER. See the file $TEXMACS_PATH/LICENSE for more details.
9
* If you don't have this file, write to the Free Software Foundation, Inc.,
10
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
11
******************************************************************************/
16
#include "tm_widget.hpp"
22
typedef tm_buffer_rep* tm_buffer;
23
typedef tm_view_rep* tm_view;
24
typedef tm_window_rep* tm_window;
28
class server_rep: public abstract_struct {
31
virtual ~server_rep ();
32
virtual void advance_banner () = 0;
34
/* Control global server parameters */
35
virtual void set_input_language (string s) = 0;
36
virtual void set_output_language (string s) = 0;
37
virtual string get_input_language () = 0;
38
virtual string get_output_language () = 0;
39
virtual void set_font_rules (scheme_tree rules) = 0;
40
virtual bool kbd_get_command (string s, string& help, command& cmd) = 0;
41
virtual void insert_kbd_wildcard (string key, string im,
42
bool post, bool l, bool r) = 0;
43
virtual string kbd_pre_rewrite (string l) = 0;
44
virtual string kbd_post_rewrite (string l) = 0;
45
virtual void set_variant_keys (string var, string unvar) = 0;
46
virtual void get_keycomb (string& s, int& status,
47
command& cmd, string& sh, string& help) = 0;
49
/* Guile scheme motor */
50
virtual bool exec_file (url u) = 0;
51
virtual void exec_delayed (string s) = 0;
52
virtual void exec_delayed (command cmd) = 0;
53
virtual string preference (string var) = 0;
56
virtual void menu_widget (string menu, widget& w) = 0;
57
virtual void menu_main (string menu) = 0;
58
virtual void menu_icons (int which, string menu) = 0;
59
virtual void show_header (bool flag) = 0;
60
virtual void show_icon_bar (int which, bool flag) = 0;
61
virtual void show_footer (bool flag) = 0;
62
virtual bool visible_header () = 0;
63
virtual bool visible_icon_bar (int which) = 0;
64
virtual bool visible_footer () = 0;
65
virtual void set_shrinking_factor (int sf) = 0;
66
virtual int get_shrinking_factor () = 0;
68
/* Buffer management */
69
virtual url get_name_buffer () = 0;
70
virtual void set_name_buffer (url name) = 0;
71
virtual void new_buffer () = 0;
72
virtual void switch_to_buffer (url name) = 0;
73
virtual void switch_to_active_buffer (url name) = 0;
74
virtual void revert_buffer () = 0;
75
virtual void kill_buffer () = 0;
76
virtual void open_window () = 0;
77
virtual void clone_window () = 0;
78
virtual void kill_window () = 0;
79
virtual void set_max_undo_depth (int i) = 0;
80
virtual int get_max_undo_depth () = 0;
81
virtual bool no_bufs () = 0;
82
virtual bool no_name () = 0;
83
virtual bool help_buffer () = 0;
84
virtual void revert_buffer (url name, tree doc) = 0;
85
virtual void set_aux_buffer (string aux, url name, tree doc) = 0;
86
virtual void set_help_buffer (url name, tree doc) = 0;
87
virtual void browse_help (int delta) = 0;
90
virtual void project_attach (string prj_name= "") = 0;
91
virtual bool project_attached () = 0;
93
/* Loading and saving files */
94
virtual tree load_tree (url name, string f) = 0;
95
virtual void load_buffer (url name, string f, int w=0, bool a=false)=0;
96
virtual void save_buffer (url name, string fm) = 0;
97
virtual void auto_save () = 0;
98
virtual void delayed_autosave () = 0;
99
virtual bool buffer_unsaved () = 0;
100
virtual bool exists_unsaved_buffer () = 0;
101
virtual void pretend_save_buffer () = 0;
103
/* Get and set objects associated to server */
104
virtual server_rep* get_server () = 0;
105
virtual display get_display () = 0;
106
virtual bool has_view () = 0;
107
virtual tm_view get_view (bool must_be_valid= true) = 0;
108
virtual void set_view (tm_view vw) = 0;
109
virtual tm_buffer get_buffer () = 0;
110
virtual editor get_editor () = 0;
111
virtual tm_window get_window () = 0;
112
virtual tm_widget get_meta () = 0;
113
virtual color get_color (string s) = 0;
114
virtual int get_nr_windows () = 0;
116
virtual void style_update_menu () = 0;
117
virtual void style_clear_cache () = 0;
118
virtual void style_set_cache (
119
tree style, hashmap<string,tree> H, tree drd) = 0;
120
virtual void style_get_cache (
121
tree style, hashmap<string,tree>& H, tree& drd, bool& flag) = 0;
123
/* getting window properties */
124
virtual void set_window_property (scheme_tree what, scheme_tree val) = 0;
125
virtual void set_bool_window_property (string what, bool val) = 0;
126
virtual void set_int_window_property (string what, int val) = 0;
127
virtual void set_string_window_property (string what, string val) = 0;
128
virtual scheme_tree get_window_property (scheme_tree what) = 0;
129
virtual bool get_bool_window_property (string what) = 0;
130
virtual int get_int_window_property (string what) = 0;
131
virtual string get_string_window_property (string what) = 0;
133
/* Routines concerning the current editor widget */
134
virtual void get_visible (SI& x1, SI& y1, SI& x2, SI& y2) = 0;
135
virtual void scroll_where (SI& x, SI& y) = 0;
136
virtual void scroll_to (SI x, SI y) = 0;
137
virtual void set_extents (SI x1, SI y1, SI x2, SI y2) = 0;
138
virtual void set_left_footer (string s) = 0;
139
virtual void set_right_footer (string s) = 0;
140
virtual void set_message (string left, string right) = 0;
141
virtual void interactive (string name, string& s, command call_back) = 0;
142
virtual void dialogue_start (string name, widget wid, scheme_tree prg) = 0;
143
virtual void dialogue_inquire (scheme_tree& arg) = 0;
144
virtual void dialogue_end () = 0;
145
virtual void choose_file (string title, string type, scheme_tree prg) = 0;
146
virtual void full_screen_mode (bool on) = 0;
147
virtual bool in_full_screen_mode () = 0;
149
/* Misscelaneous routines */
150
virtual void interpose_handler () = 0;
151
virtual void wait_handler (string message, string arg) = 0;
152
virtual void set_script_status (int i) = 0;
153
virtual void focus_on_editor (editor ed) = 0;
154
virtual void set_printing_command (string s) = 0;
155
virtual void set_printer_page_type (string s) = 0;
156
virtual void set_printer_dpi (string dpi) = 0;
157
virtual void set_default_shrinking_factor (int sf) = 0;
158
virtual int get_default_shrinking_factor () = 0;
159
virtual void postscript_gc (string which= "*") = 0;
160
virtual void inclusions_gc (string which= "*") = 0;
161
virtual string translate (string which, string from, string to) = 0;
162
virtual bool is_yes (string s) = 0;
163
virtual void quit () = 0;
164
virtual tree evaluate (string name, string session, tree expr) = 0;
165
virtual void shell (string s) = 0;
170
server (display dis);
172
ABSTRACT_CODE(server);
174
scheme_tree menu_merge (scheme_tree m1, scheme_tree m2);
175
server get_server ();
177
#endif // defined SERVER_H