00001
00008 #ifndef _GUI_GLT_GUI_H_
00009 #define _GUI_GLT_GUI_H_
00010
00011
00012
00013 static inline struct window * vptr (SCM obj) { return ((struct window *) SCM_SMOB_DATA(obj)); }
00014
00015 uns is_window_proxy(SCM proxy);
00016
00017 static uns proxy_is_valid(SCM proxy)
00018 { return (vptr (proxy) != NULL); }
00019
00020
00021 static uns is_specific_window_proxy(SCM proxy, int type)
00022 {
00023 return (is_window_proxy (proxy) && proxy_is_valid (proxy) &&
00024 ((type < 0) || (vptr (proxy) -> type == (uns) type)));
00025 }
00026
00027 static inline struct window * scm2window (SCM obj)
00028 { return is_window_proxy (obj) ? vptr (obj) : NULL; }
00029
00030 SCM window2scm(struct window *p);
00031
00032 void window_proxy_clean (struct window *p);
00033
00034 #define ID_window -1
00035 #define ID_view WT_VIEW
00036 #define ID_console WT_CONSOLE
00037
00038 static inline void assert_SW(SCM obj, unsigned int pos, const char *subr, int type)
00039 { SCM_ASSERT (is_specific_window_proxy (obj, type), obj, pos, subr); }
00040
00041 static inline void * in_SW(SCM obj)
00042 { return scm2window (obj); }
00043
00044 static inline SCM out_SW (void *ptr)
00045 { return window2scm (ptr); }
00046
00047 void guilelink_gui_init(void);
00048
00049 #endif