Re: Plans for 1.3/1.4



Hi!

>  >  4) Integration of Tor Lillqvist's Win32 port.
> 
> Any ideas on how to organise the window-system specific versions of
> GDK in the source tree? Apparently CVS doesn't handle renaming of
> directories nicely, so it would be easiest to keep the current (X11)
> version in gtk+/gdk, and make a new directory gtk+/gdk-win32 for the
> Win32 version.
> 
> In order to handle inclusions of <gdk/gdkx.h> and <gdk/gdkprivate.h>
> in various source files, I guess the gdkx.h and gdkprivate.h files
> would have to be still in the gdk (X11) directory, and contain also
> Win32 stuff. Hmm.

I think that we should take care not to include gdkprivate.h and
gdkx.h from gtk/ subtree. They are private to gdk and they should stay
that way.

> Another thing: (I asked about this on gimp-developer, only one reply
> which supported that verbose form.) What would be the best feature
> test macros to use for testing X11 vs Windows GDI API (or BeOS, or
> Mac, whetever)? I now use X_DISPLAY_MISSING (which autoconf seems to
> support, at least to some extent) and WINDOWS_DISPLAY.
> 
> Would it be cleaner (more orthogonal) to use something like
> 	#if GDK_WINDOWING_API == GDK_WINDOWING_API_X11
> 	#elif GDK_WINDOWING_API == GDK_WINDOWING_API_WIN32
> 	#elif GDK_WINDOWING_API == GDK_WINDOWING_API_BEOS
> 
> etc? (Or is that too verbose?) (There is not much code in gtk+/gtk
> that needs conditional compilation.)

I would prefer
	if (GDK_API() == GDK_X11) {
	}
 	
or 
	switch (GDK_API()) {
	case GDK_X11:
		...
	}

, where GDK_API() is either macro hardcoded to specific value

(i.e. #define GDK_API() GDK_X11)

*or* real function. gcc can optimize it out, anyway, it is much
cleaner, and - we'll need gtk runnable over multiple gdk's in future.

(Think about gtk runable over gdk.cursed or gdk.X11 at some time. The
same might have sense for gdk.beos and gdk.X11 - assuming that BeOS
has working X11 port.)

								Pavel
-- 
The best software in life is free (not shareware)!		Pavel
GCM d? s-: !g p?:+ au- a--@ w+ v- C++@ UL+++ L++ N++ E++ W--- M- Y- R+



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]