1 /*  cssed (c) Iago Rubio 2003, 2005 - A tiny CSS editor.
2  *
3  *  This program is free software; you can redistribute it and/or modify
4  *  it under the terms of the GNU General Public License as published by
5  *  the Free Software Foundation; either version 2 of the License, or
6  *  (at your option) any later version.
7  *
8  *  This program is distributed in the hope that it will be useful,
9  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11  *  GNU Library General Public License for more details.
12  *
13  *  You should have received a copy of the GNU General Public License
14  *  along with this program; if not, write to the Free Software
15  *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16  */
17 
18 #ifdef WITH_TERMINAL
19 # include <vte/vte.h>
20 #endif
21 
22 /** @file cssedwindow.h
23  *  @brief Header file for the cssed main window object.
24  *  Those functions are the interface for cssed's ::_CssedWindow object.
25  */
26 
27 /** a macro to cast a pointer to ::CssedWindow */
28 #define CSSED_WINDOW(n) (CssedWindow*) n
29 
30 /** colors used in the output window */
31 #define ERROR_COLOR_STRING "red"
32 #define WARNING_COLOR_STRING "navy"
33 
34 /** registry name for Windows */
35 #ifdef WIN32
36 #  define CSSED_REGISTRY_NAME "cssed-0.4.0"
37 #endif
38 
39 /** error domain to be used on GError */
40 #define CSSED_ERROR_DOMAIN  g_quark_from_string ("CSSED_ERROR")
41 
42 typedef enum {
43 	// those match with GFileError
44 	CSSED_FILE_ERROR_EXIST,
45 	CSSED_FILE_ERROR_ISDIR,
46 	CSSED_FILE_ERROR_ACCES,
47 	CSSED_FILE_ERROR_NAMETOOLONG,
48 	CSSED_FILE_ERROR_NOENT,
49 	CSSED_FILE_ERROR_NOTDIR,
50 	CSSED_FILE_ERROR_NXIO,
51 	CSSED_FILE_ERROR_NODEV,
52 	CSSED_FILE_ERROR_ROFS,
53 	CSSED_FILE_ERROR_TXTBSY,
54 	CSSED_FILE_ERROR_FAULT,
55 	CSSED_FILE_ERROR_LOOP,
56 	CSSED_FILE_ERROR_NOSPC,
57 	CSSED_FILE_ERROR_NOMEM,
58 	CSSED_FILE_ERROR_MFILE,
59 	CSSED_FILE_ERROR_NFILE,
60 	CSSED_FILE_ERROR_BADF,
61 	CSSED_FILE_ERROR_INVAL,
62 	CSSED_FILE_ERROR_PIPE,
63 	CSSED_FILE_ERROR_AGAIN,
64 	CSSED_FILE_ERROR_INTR,
65 	CSSED_FILE_ERROR_IO,
66 	CSSED_FILE_ERROR_PERM,
67 	CSSED_FILE_ERROR_FAILED,
68 	// this is not an error code it's just
69 	// to know were the GFIleError matching ends
70 	CSSED_FILE_ERROR_LAST,
71 	// specific cssed error codes
72 	CSSED_ERROR_FILE_IS_OPENED, // the file is already opened
73 	CSSED_ERROR_FILE_NOT_REGULAR, // the file is not a regular file, may be a device or whatever
74 	CSSED_ERROR_DOC_IS_NULL // a NULL document have been passed or returned
75 } CssedError;
76 
77 /** @enum CssedEolMode cssed's end of line modes */
78 typedef enum {
79 	/** Windows end of line - Carriage return / Line feed */
80 	EOL_MODE_CRLF,
81 	/** Mac end of line - Carriage return */
82 	EOL_MODE_CR,
83 	/** Unix end of line - Line feed */
84 	EOL_MODE_LF
85 } CssedEolMode;
86 
87 /** @enum CssedCodePage cssed's code pages */
88 typedef enum {
89 	/** Default code page */
90 	CSSED_CODEPAGE_DEFAULT,
91 	/** UTF8 code page */
92 	CSSED_CODEPAGE_UTF8,
93 	/** DBCS code page (Thai, Hangul) */
94 	CSSED_CODEPAGE_DBCS
95 } CssedCodePage;
96 
97 typedef struct _CssedDoc CssedDoc;
98 typedef struct _CssedWindow CssedWindow;
99 
100 // configuration will be private in a near future
101 typedef struct _CssedConfig {
102 	// window
103 	gint window_x;
104 	gint window_y;
105 	gint window_width;
106 	gint window_height;
107 	gint footer_pos;
108 	gint sidebar_pos;
109 	gint css_treeview_pos;
110 	gboolean initiall_state_maximized;
111 	// browser command
112 	gchar* browser_command;
113 	// document
114 	gboolean linenumbers;
115 	gboolean autocompletion;
116 	gboolean lineendings;
117 	gboolean whitespaces;
118 	gboolean folding;
119 	gboolean lineswraped;
120 	gchar* font;
121 	gint font_size;
122 	// opened docs
123 	GList* opened_docs;
124 	// highlighting
125 	gint DEFAULT_fore_color;
126 	gint DEFAULT_back_color;
127 	gboolean DEFAULT_bold;
128 	gint TAG_fore_color;
129 	gint TAG_back_color;
130 	gboolean TAG_bold;
131 	gint PSEUDOCLASS_fore_color;
132 	gint PSEUDOCLASS_back_color;
133 	gboolean PSEUDOCLASS_bold;
134 	gint UNKNOWN_PSEUDOCLASS_fore_color;
135 	gint UNKNOWN_PSEUDOCLASS_back_color;
136 	gboolean UNKNOWN_PSEUDOCLASS_bold;
137 	gint OPERATOR_fore_color;
138 	gint OPERATOR_back_color;
139 	gboolean OPERATOR_bold;
140 	gint IDENTIFIER_fore_color;
141 	gint IDENTIFIER_back_color;
142 	gboolean IDENTIFIER_bold;
143 	gint UNKNOWN_IDENTIFIER_fore_color;
144 	gint UNKNOWN_IDENTIFIER_back_color;
145 	gboolean UNKNOWN_IDENTIFIER_bold;
146 	gint VALUE_fore_color;
147 	gint VALUE_back_color;
148 	gboolean VALUE_bold;
149 	gint COMMENT_fore_color;
150 	gint COMMENT_back_color;
151 	gboolean COMMENT_bold;
152 	gint IMPORTANT_fore_color;
153 	gint IMPORTANT_back_color;
154 	gboolean IMPORTANT_bold;
155 	gint DIRECTIVE_fore_color;
156 	gint DIRECTIVE_back_color;
157 	gboolean DIRECTIVE_bold;
158 	gint DOUBLESTRING_fore_color;
159 	gint DOUBLESTRING_back_color;
160 	gboolean DOUBLESTRING_bold;
161 	gint SINGLESTRING_fore_color;
162 	gint SINGLESTRING_back_color;
163 	gboolean SINGLESTRING_bold;
164 	gint CLASS_fore_color;
165 	gint CLASS_back_color;
166 	gboolean CLASS_bold;
167 	gint ID_fore_color;
168 	gint ID_back_color;
169 	gboolean ID_bold;
170 	gint VALID_VALUE_fore_color;
171 	gint VALID_VALUE_back_color;
172 	gboolean VALID_VALUE_bold;
173 	gint FUNCTION_fore_color;
174 	gint FUNCTION_back_color;
175 	gboolean FUNCTION_bold;
176 	gint NUMBER_fore_color;
177 	gint NUMBER_back_color;
178 	gboolean NUMBER_bold;
179 	gint UNIT_fore_color;
180 	gint UNIT_back_color;
181 	gboolean UNIT_bold;
182 	gint COLOR_fore_color;
183 	gint COLOR_back_color;
184 	gboolean COLOR_bold;
185 	gint HEXACOLOR_fore_color;
186 	gint HEXACOLOR_back_color;
187 	gboolean HEXACOLOR_bold;
188 	gint ATTR_MATCH_fore_color;
189 	gint ATTR_MATCH_back_color;
190 	gboolean ATTR_MATCH_bold;
191 	gint LANGUAGE_fore_color;
192 	gint LANGUAGE_back_color;
193 	gboolean LANGUAGE_bold;
194 } CssedConfig;
195 
196 typedef struct _CssedConfigParserData {
197 	CssedWindow* window;
198 	gint depth;
199 	gint state;
200 	GList* plugins_list; 					// store plugins to be loaded from the config file
201 }  CssedConfigParserData;
202 
203 
204 /* ****************************************************************************************** *
205 	File typer related structures - testing here
206  * ****************************************************************************************** */
207 
208 #define CSSED_FILETYPE_DEFAULT CSSED_FILETYPE_TEXT
209 
210 typedef enum {
211 	CSSED_FILETYPE_UNKNOW,		// internall use. Never use it.
212 	CSSED_FILETYPE_TEXT,		// The default file type, plain text
213 	CSSED_FILETYPE_BYNARY,		// not used ,but will be link insertion
214 	CSSED_FILETYPE_CSS,			// core language
215 	CSSED_FILETYPE_HTML,		// this is not just HTML but ASP and PHP
216 	CSSED_FILETYPE_PHP,			// This is standalon PHP not client side PHP (for sh-like scripts)
217 	CSSED_FILETYPE_XML,			// XML and SVG
218 	CSSED_FILETYPE_SH,			// shell and bash scripts
219 	CSSED_FILETYPE_C,			// not just C but CPP
220 	CSSED_FILETYPE_APACHE_CONF,	// apache conf files
221 	CSSED_FILETYPE_LISP,		// mostly for emacs.el files (not ready)
222 	CSSED_FILETYPE_PERL,		// perl scripts
223 	CSSED_FILETYPE_PYTHON,		// python
224 	CSSED_FILETYPE_SQL,			// SQL (Ansi) (not ready)
225 	CSSED_FILETYPE_DIFF,		// diff and patch files
226 	CSSED_FILETYPE_JAVA,		// java
227 	CSSED_FILETYPE_JS,			// javascript
228 	CSSED_FILETYPE_MAKE,		// Makefiles - I use make for almost everything :)
229 	// Those are file types supported by scintilla, so they have it's place here
230 	CSSED_FILETYPE_APDL,
231 	CSSED_FILETYPE_AU3,
232 	CSSED_FILETYPE_AVE,
233 	CSSED_FILETYPE_ADA,
234 	CSSED_FILETYPE_ASM,
235 	CSSED_FILETYPE_ASN1,
236 	CSSED_FILETYPE_BAAN,
237 	CSSED_FILETYPE_BASIC,
238 	CSSED_FILETYPE_BULLANT,
239 	CSSED_FILETYPE_CLW,
240 	CSSED_FILETYPE_CAML,
241 	CSSED_FILETYPE_CRONTAB,
242 	CSSED_FILETYPE_ESCRIPT,
243 	CSSED_FILETYPE_EIFFEL,
244 	CSSED_FILETYPE_ERLANG,
245 	CSSED_FILETYPE_FORTH,
246 	CSSED_FILETYPE_FORTRAN,
247 	CSSED_FILETYPE_GUI4CLI,
248 	CSSED_FILETYPE_KIX,
249 	CSSED_FILETYPE_LOUT,
250 	CSSED_FILETYPE_LUA,
251 	CSSED_FILETYPE_MMIXAL,
252 	CSSED_FILETYPE_MPT,
253 	CSSED_FILETYPE_MSSQL,
254 	CSSED_FILETYPE_MATLAB,
255 	CSSED_FILETYPE_METAPOST,
256 	CSSED_FILETYPE_NSIS,
257 	CSSED_FILETYPE_PB,
258 	CSSED_FILETYPE_POV,
259 	CSSED_FILETYPE_PS,
260 	CSSED_FILETYPE_PASCAL,
261 	CSSED_FILETYPE_RUBY,
262 	CSSED_FILETYPE_SCRIPTOL,
263 	CSSED_FILETYPE_SPECMAN,
264 	CSSED_FILETYPE_TEX,
265 	CSSED_FILETYPE_VB,
266 	CSSED_FILETYPE_VHDL,
267 	CSSED_FILETYPE_VERILOG,
268 	CSSED_FILETYPE_YAML,
269 	// if you miss something here, just request  for inclusion
270 	CSSED_FILETYPE_USR,			// user defined file types
271 	CSSED_FILETYPE_USR1,
272 	CSSED_FILETYPE_USR2,
273 	CSSED_FILETYPE_USR3,
274 	CSSED_FILETYPE_USR4,
275 	CSSED_FILETYPE_USR5,
276 	CSSED_FILETYPE_USR6,
277 	CSSED_FILETYPE_USR7,
278 	CSSED_FILETYPE_USR8,
279 	CSSED_FILETYPE_USR9
280 } CssedFileTypeId;
281 
282 #define	CSSED_NUMFILETYPES	(CSSED_FILETYPE_USR9+1)
283 
284 typedef struct _CssedFileType {
285 	// notifications
286 	void (*char_added)			 	(CssedDoc* doc, gchar  ch);
287 	void (*modify_attemp_read_only)	(CssedDoc* doc);
288 	void (*double_click)			(CssedDoc* doc);
289 	void (*user_list_selection)		(CssedDoc* doc, gint type, gchar* text);
290 	void (*dwell_start) 			(CssedDoc* doc, gint pos, gint x, gint y);
291 	void (*dwell_end) 				(CssedDoc* doc, gint pos, gint x, gint y);
292 	void (*hot_spot_click) 			(CssedDoc* doc, gint pos, gint modifiers);
293 	void (*hot_spot_doubleclick) 	(CssedDoc* doc, gint pos, gint modifiers);
294 	void (*call_tip_click)			(CssedDoc* doc, gint position) ;//position =1 if up arrow, 2 if down arrow, and 0 if elsewhere.
295 	// those are managed by cssed so things can break if you do something wrong here
296 	void (*save_point_reached) 	(CssedDoc* doc);// - managed by cssed (CssedDoc*)
297 	void (*save_point_left) 	(CssedDoc* doc); //- managed by cssed (CssedDoc*)
298 	void (*uri_dropped) 		(CssedDoc* doc, gchar* uri); //- managed by cssed (CssedDoc*)
299 	void (*margin_click) 		(CssedDoc* doc, gint pos, gint margin); //- managed by cssed (CssedDoc*)
300 	void (*modified) 			(CssedDoc* doc, gint modificationType); //- managed by cssed (CssedDoc*)
301 	void (*key_pressed) 		(CssedDoc* doc, gchar key, gint modifiers);// - managed by cssed
302 	// configuraton and styling THOSE ARE NOT IMPLEMENTED YET (FIXME)
303 	void 		(*apply_style)						(CssedDoc* doc); //[style, etc ...]
304 	GtkWidget* 	(*get_config_page_widget) 			(gpointer user_data);
305 	void 		(*save_configuration_from_widget) 	(GtkWidget* widget, gpointer user_data);
306 	void 		(*clean_popmenu) 					(CssedWindow* win);// attach should be not NULL to call this
307 	void 		(*clean_menu)  						(CssedWindow* win);
308 	void 		(*load_ui)  						(CssedWindow* win);
309 	GtkWidget* 	menu_item; // (top level to the menu bar)
310 	GtkWidget* 	pop_menu;
311 	// file related issues, those are mostly to avoid to open or save files
312 	gboolean (*open_file) 	(gchar *filename) ;// If not NULL, cssed will call it and call document_open only if it returns TRUE
313 	gboolean (*save_doc) 	(CssedDoc* doc); // If not NULL, cssed will call it and call document_save only if it returns TRUE
314 	// properties
315 	guint 		id; // one of the CssedFileTypeId enum values
316 	gint 		style_min ;//(document_set_font_size)  (document_set_font_by_name) (Read/Write const only)
317 	gint 		style_max; //(document_set_font_size) (document_set_font_by_name)(Read/Write const only)
318 	gboolean 	can_fold ;//(Read/Write const only)
319 	gchar* 		label_language; // a name for the menu as CSS or XML
320 	gchar* 		lable_file; // a name for the file type as CSS-2 CSS-SVG or Dockbook
321 	GSList* 	patterns; // patterns as "*.css" "Make*" as so on
322 } CssedFileType;
323 
324 typedef struct _CssedFileTypeManager {
325 	CssedFileType* filetype[CSSED_NUMFILETYPES];
326 	GHashTable *patterns_hash_table;
327 }CssedFileTypeManager ;
328 
329 
330 /* ****************************************************************************************** */
331 /* window functions*/
332 CssedWindow* cssed_window_new(void);
333 void cssed_window_quit (CssedWindow* window);
334 void cssed_window_destroy (CssedWindow* window);
335 gint cssed_window_get_width (CssedWindow* window);
336 gint cssed_window_get_height (CssedWindow* window);
337 GtkWidget* cssed_window_get_window_widget  (CssedWindow* window);
338 void cssed_window_set_window_widget  (CssedWindow* window, GtkWidget* widget);
339 GtkWidget* cssed_window_get_document_notebook  (CssedWindow* window);
340 void cssed_window_set_document_notebook  (CssedWindow* window, GtkWidget* widget);
341 GtkWidget* cssed_window_get_footer_notebook  (CssedWindow* window);
342 void cssed_window_set_footer_notebook  (CssedWindow* window, GtkWidget* widget);
343 GtkWidget* cssed_window_get_sidebar_notebook  (CssedWindow* window);
344 void cssed_window_set_sidebar_notebook  (CssedWindow* window, GtkWidget* widget);
345 GtkWidget* cssed_window_get_css_definition_treeview  (CssedWindow* window);
346 void cssed_window_set_css_definition_treeview  (CssedWindow* window, GtkWidget* widget);
347 GtkWidget* cssed_window_get_selector_scanner_treeview  (CssedWindow* window);
348 void cssed_window_set_selector_scanner_treeview  (CssedWindow* window, GtkWidget* widget);
349 GtkWidget* cssed_window_get_output_treeview  (CssedWindow* window);
350 void cssed_window_set_output_treeview  (CssedWindow* window, GtkWidget* widget);
351 GtkWidget* cssed_window_get_digest_treeview  (CssedWindow* window);
352 void cssed_window_set_digest_treeview  (CssedWindow* window, GtkWidget* widget);
353 GtkWidget* cssed_window_get_pop_menu  (CssedWindow* window);
354 void cssed_window_set_pop_menu  (CssedWindow* window, GtkWidget* widget);
355 GtkTextBuffer* cssed_window_get_scratch_buffer  (CssedWindow* window);
356 void cssed_window_set_scratch_buffer  (CssedWindow* window, GtkTextBuffer* widget);
357 // filetypes_menu
358 GtkWidget* cssed_window_get_filetypes_menu  (CssedWindow* window);
359 void cssed_window_set_filetypes_menu  (CssedWindow* window, GtkWidget* widget);
360 //
361 void cssed_window_dynamic_menus_set_full (CssedWindow* window,
362 										  GtkWidget *menu_item_line_numbers,
363 										  GtkWidget *menu_item_endings,
364 										  GtkWidget *menu_item_white_spaces,
365 										  GtkWidget *menu_item_lines_wrapped,
366 										  GtkWidget *menu_item_eol_mode_cr,
367 										  GtkWidget *menu_item_eol_mode_lf,
368 										  GtkWidget *menu_item_eol_mode_crlf,
369 										  GtkWidget *menu_item_autocompletion,
370 										  GtkWidget *menu_item_folding);
371 
372 void cssed_window_dynamic_menus_set_state(CssedWindow* window,
373 										  gboolean line_numbers_enabled,
374 										  gboolean line_endings_enabled,
375 										  gboolean white_spaces_enabled,
376 										  gboolean lines_wrapped_enabled,
377 										  gboolean autocompletion_enabled,
378 										  gboolean folding_enabled);
379 
380 void cssed_window_dynamic_menus_set_eols_state (CssedWindow* window,
381 												CssedEolMode eols);
382 //
383 void cssed_window_dynamic_widgets_set(	CssedWindow* window,
384 										GtkWidget* save_button,
385 										GtkWidget* save_main_menu,
386 										GtkWidget* undo_button,
387 										GtkWidget* undo_main_menu,
388 										GtkWidget* undo_pop_menu,
389 										GtkWidget* redo_button,
390 										GtkWidget* redo_main_menu,
391 										GtkWidget* redo_pop_menu);
392 //
393 void
394 cssed_window_panes_set(	CssedWindow* window,
395 						GtkWidget* vpaned_main,
396 						GtkWidget* hpaned_up,
397 						GtkWidget* vpaned_sidebar);
398 
399 void
400 cssed_window_ensure_output_visible (CssedWindow* window);
401 
402 void
403 cssed_window_ensure_selector_scanner_visible (CssedWindow* window);
404 
405 void cssed_window_set_last_open_dir (CssedWindow* window, gchar* dirname);
406 gchar* cssed_window_get_last_open_dir (CssedWindow* window);
407 void cssed_window_set_last_save_dir (CssedWindow* window, gchar* dirname);
408 gchar* cssed_window_get_last_save_dir (CssedWindow* window);
409 
410 //void cssed_window_set_last_scan_file (CssedWindow* window, gchar* filename);
411 //gchar* cssed_window_get_last_scan_file (CssedWindow* window);
412 void cssed_window_output_write (CssedWindow* window, gchar* format, ...);
413 void cssed_window_output_clear (CssedWindow* window);
414 
415 void cssed_window_digest_write (CssedWindow* window, gchar* first_col,  gchar* second_col);
416 void cssed_window_digest_clear (CssedWindow* window);
417 
418 void cssed_window_selector_scanner_write (CssedWindow* window, gchar* first_col,  gchar* second_col);
419 void cssed_window_selector_scanner_clear (CssedWindow* window);
420 void cssed_window_selector_scanner_edited  (CssedWindow* window,
421 											gchar *path_string,
422 											gchar *new_text 	);
423 
424 // config
425 CssedConfig* cssed_window_get_config (CssedWindow* window);
426 CssedConfig* cssed_window_config_new ();
427 
428 // widgets
429 void cssed_window_enable_save  (CssedWindow* window);
430 void cssed_window_disable_save (CssedWindow* window);
431 void cssed_window_enable_undo  (CssedWindow* window);
432 void cssed_window_disable_undo (CssedWindow* window);
433 void cssed_window_enable_redo  (CssedWindow* window);
434 void cssed_window_disable_redo (CssedWindow* window);
435 
436 // config
437 void cssed_window_show_preferences_dialog (CssedWindow* window);
438 
439 // document list
440 void cssed_window_add_document_to_list (CssedWindow* window, CssedDoc* doc);
441 void cssed_window_delete_document_from_list (CssedWindow* window, CssedDoc* doc);
442 gint cssed_window_get_document_list_length (CssedWindow* window);
443 GList* cssed_window_get_document_list_first (CssedWindow* window);
444 gint cssed_window_get_document_list_index (CssedWindow* window, CssedDoc* doc);
445 gboolean cssed_window_set_document_list_index (CssedWindow* window, CssedDoc* doc, gint index);
446 
447 // plugins list
448 void cssed_window_add_plugin_to_list (CssedWindow* window, gpointer plugin);
449 void cssed_window_delete_plugin_from_list (CssedWindow* window, gpointer plugin);
450 gint cssed_window_get_plugin_list_length (CssedWindow* window);
451 GList* cssed_window_get_plugin_list_first (CssedWindow* window);
452 
453 // keyword list
454 gchar* cssed_window_get_keyword_list (CssedWindow* window);
455 void cssed_window_set_keyword_list (CssedWindow* window, gchar* keywords);
456 void cssed_window_free_keyword_list (CssedWindow* window);
457 
458 void cssed_window_css_dialog_insert (CssedWindow* window, gchar* key, gpointer class);
459 void cssed_window_css_dialog_remove_by_keyword (CssedWindow* window, gchar* key);
460 gpointer cssed_window_css_dialog_lookup_by_keyword (CssedWindow* window, gchar* key);
461 gboolean cssed_window_css_dialog_keyword_in_use (CssedWindow* window, gchar* key);
462 gboolean cssed_window_is_file_opened (CssedWindow* window, gchar* file);
463 gint cssed_window_get_num_docs (CssedWindow* window);
464 void cssed_window_set_ndoc_active (CssedWindow* window, gint doc_number);
465 
466 // file type manager
467 void cssed_window_set_filetype_manager (CssedWindow* window, CssedFileTypeManager* manager);
468 CssedFileTypeManager* cssed_window_get_filetype_manager (CssedWindow* window);
469 void cssed_window_add_filetype (CssedWindow* window, CssedFileType* filetype, gboolean free_previous);
470 
471 // window size and paned gutter position values are now being messed by plugins
472 // loaded that vary the configuration stored positions are the former are set
473 // before to load plugins, so plugin sizes changes the configuration positions
474 // This functions are just to re-set the stored values.
475 void cssed_window_apply_stored_size_and_position( CssedWindow* window );
476 void cssed_window_apply_stored_paned_positions( CssedWindow* window );
477 
478 
479 // to show help and such in a browser window
480 void cssed_window_show_in_default_browser ( CssedWindow* window, gchar* uri);
481