To: andrieu at ijm.jussieu.fr, lablgtk at kaba.or.jp Subject: Re: New snapshot available In-Reply-To: <3E565207.90401 at lix.polytechnique.fr> References: <20030221172940D.garrigue at kurims.kyoto-u.ac.jp> <15958.19863.193875.240174@akasha.ijm.jussieu.fr> <3E565207.90401@lix.polytechnique.fr> Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <20030224114818Q.garrigue at kurims.kyoto-u.ac.jp> Date: Mon, 24 Feb 2003 11:48:18 +0900 From: Jacques Garrigue Lines: 136 From: Benjamin Monate > Yes. lablgtk2 main target is Gtk 2.2. > But it should compile with Gtk 2.x , x < 2. > Application developped for Gtk 2.2 will compile with > Gtk 2.x but they may fail with Failure "Unsupported feature in Gtk 2.x < > 2.2" exceptions. I've fixed ml_gdk.c a bit better, so that you can still get screen size with gtk-2.0. But compatibility is indeed a problem. I'm wondering whether gtk-2.0 is a worthy target: this kind of problem is cropping-up all around, and there is no support in gtk-2.2 to produce gtk-2.0 compatible programs. How do people value gtk-2.0 compatibility? For personal use, I would suggest to upgrade to 2.2 anyway, but I know that some people intend to distribute software to non-experts, and I have no idea for how long 2.0 will still be around. Jacques Garrigue Index: src/gdk.ml =================================================================== RCS file: /staff2/garrigue/repos/lablgtk/src/gdk.ml,v retrieving revision 1.58 retrieving revision 1.59 diff -c -r1.58 -r1.59 *** src/gdk.ml 20 Feb 2003 06:47:51 -0000 1.58 --- src/gdk.ml 24 Feb 2003 02:37:06 -0000 1.59 *************** *** 139,153 **** end module Screen = struct ! external default : unit -> screen = "ml_gdk_screen_get_default" ! external width : screen -> int = "ml_gdk_screen_get_width" ! let width ?(screen = default ()) () = width screen ! external height : screen -> int = "ml_gdk_screen_get_height" ! let height ?(screen = default ()) () = height screen ! external get_pango_context : screen -> Pango.context = "ml_gdk_pango_context_get_for_screen" ! let get_pango_context ?(screen = default ()) () = ! get_pango_context screen end module Visual = struct --- 139,162 ---- end module Screen = struct ! external get_width : screen -> int = "ml_gdk_screen_get_width" ! external width : unit -> int = "ml_gdk_screen_width" ! let width ?screen () = ! match screen with None -> width () | Some s -> get_width s ! external get_height : screen -> int = "ml_gdk_screen_get_height" ! external height : unit -> int = "ml_gdk_screen_height" ! let height ?screen () = ! match screen with None -> height () | Some s -> get_height s ! external get_pango_context_for : screen -> Pango.context = "ml_gdk_pango_context_get_for_screen" ! external get_pango_context : unit -> Pango.context = ! "ml_gdk_pango_context_get" ! let get_pango_context ?screen () = ! match screen with None -> get_pango_context () ! | Some s -> get_pango_context_for s ! ! (* Only with Gtk-2.2 *) ! external default : unit -> screen = "ml_gdk_screen_get_default" end module Visual = struct Index: src/gdk.mli =================================================================== RCS file: /staff2/garrigue/repos/lablgtk/src/gdk.mli,v retrieving revision 1.32 retrieving revision 1.33 diff -c -r1.32 -r1.33 *** src/gdk.mli 20 Feb 2003 06:47:51 -0000 1.32 --- src/gdk.mli 24 Feb 2003 02:37:06 -0000 1.33 *************** *** 101,110 **** module Screen : sig - val default : unit -> screen val width : ?screen:screen -> unit -> int val height : ?screen:screen -> unit -> int val get_pango_context : ?screen:screen -> unit -> Pango.context end module Visual : --- 101,111 ---- module Screen : sig val width : ?screen:screen -> unit -> int val height : ?screen:screen -> unit -> int val get_pango_context : ?screen:screen -> unit -> Pango.context + (* Screens are only supported with Gtk+-2.2 *) + val default : unit -> screen end module Visual : Index: src/ml_gdk.c =================================================================== RCS file: /staff2/garrigue/repos/lablgtk/src/ml_gdk.c,v retrieving revision 1.61 retrieving revision 1.63 diff -c -r1.61 -r1.63 *** src/ml_gdk.c 21 Feb 2003 08:22:31 -0000 1.61 --- src/ml_gdk.c 24 Feb 2003 02:37:06 -0000 1.63 *************** *** 49,58 **** --- 49,69 ---- /* Screen geometry */ + ML_0 (gdk_screen_width, Val_int) + ML_0 (gdk_screen_height, Val_int) + ML_0 (gdk_pango_context_get, Val_PangoContext_new) + + #ifdef GDK_SCREEN ML_1 (gdk_screen_get_width, GdkScreen_val, Val_int) ML_1 (gdk_screen_get_height, GdkScreen_val, Val_int) ML_0 (gdk_screen_get_default, Val_GdkScreen) ML_1 (gdk_pango_context_get_for_screen, GdkScreen_val, Val_PangoContext_new) + #else + Unsupported (gdk_screen_get_width) + Unsupported (gdk_screen_get_height) + Unsupported (gdk_screen_get_default) + Unsupported (gdk_pango_context_get_for_screen) + #endif /* Visual */ CAMLprim value ml_gdk_visual_get_best (value depth, value type)