Gentoo Archives: gentoo-dev

From: Mart Raudsepp <leio@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] RFC: new USE="win32" flag for mingw and prefix/windows support
Date: Wed, 20 Apr 2016 19:18:15
Message-Id: 1461179880.9192.13.camel@gentoo.org
In Reply to: Re: [gentoo-dev] RFC: new USE="win32" flag for mingw and prefix/windows support by Kent Fredric
1 Ühel kenal päeval, N, 21.04.2016 kell 06:53, kirjutas Kent Fredric:
2 > On 21 April 2016 at 06:38, Ian Stakenvicius <axs@g.o> wrote:
3 > > Well so far the only needs I have run into for the win32 flag has
4 > > been in relation to choosing UI toolkit support for cairo and gtk+
5 > > (and possibly others in the future), which is why I saw the
6 > > parallel.
7 >
8 >
9 > Given you're not using the flag to indicate "works on win32" as such,
10 > but instead "compile using Win32 Widgets instead of something else",
11 > wouldn't a better name indicate that somehow?
12 >
13 > The simplest thing I can think of that clears this confusion is a few
14 > extra characters:
15 >
16 >   "win32gui", "win32ui"
17 >
18 > Or something along those lines.
19 >
20 > It doesn't require us to know what the exact binding keywords in
21 > microsoft terminology is used, and it clearly communicates "This is
22 > something to do with User Interfaces" as opposed to "Just
23 > linking/compiling slightly differently".
24
25 win32 is what the base API seems to be called all over in the wild.
26 The GTK+ configure flag is also --enable-win32-backend in gtk3 and
27 --with-backend=win32 in gtk2 (didn't personally check the latter).
28 Note that gtk configure actually also tracks platform_win32 and
29 os_win32 in there, which are different things (and just configure.ac
30 internal names). Former is true when host contains mingw, latter when
31 host contains mingw or cygwin.
32 When win32 gdk backend is enabled (which the propose USE flag would
33 do), then it will depend on a matching cairo backend of that, to be
34 able to do its own drawing on Windows. There's actually some stuff
35 about pangowin32 as well, not sure Ian has noticed that yet.
36
37 The GDK win32 backend uses what is called the win32 API. See e.g
38 https://en.wikipedia.org/wiki/Windows_API#Versions
39 For example a GdkWindow is created via CreateWindowExW, root of that
40 documentation is apparently at
41 https://msdn.microsoft.com/en-us/library/windows/desktop/ff818516(v=vs.85).aspx
42
43 It doesn't use the Windows API higher level UI stuff, like wxWidgets
44 does, but only the low-level stuff, and then emulating the themeing as
45 best as it can right now, like Qt does. So in that way win32gui might
46 be misleading. win32 or win32api or winapi or I dunno.
47
48 Theoretically you can also build this stuff for consumption with wine.
49 Or maybe ReactOS?
50 Basically the only real point I have is that anything kernel_* to
51 control this probably doesn't make sense.
52
53
54 Mart

Replies