Alternate GUI for Windows

To clarify for the OP…

Windows provides an interface to the display - the GDI interface - which provides graphics primitives and some more complex functions. The windows manager operates here - the windows decorations and windows behaviour and mouse/keyboard is provided at this level.

Then there a some higher level shared libraries - buttons and lists and standard dialog boxes.

Finally, there is the Graphical shell - the default provided shell is explorer.exe. This handles the desktop and start menu and task bar, as well as disk exploration. explorer.exe runs in two modes - the first instance builds the desktop and taskbar, subsequent instances act as file explorers.

So - for a new windows interface, you can replace explorer.exe as a shell. This replaces file exploration, app launching, menus, toolbars etc. This is straightforward, but for compatibility you need to supply all the functionality that Explorer supplies - Shell Folders and environment and link creation and all sorts of other stuff.

You could conceivably replace all the standard dialog functions - maybe starting with the equivalents defined in the WINE (Windows on Linux) libraries, compiling your own DLLs and replacing the MS ones, or hooking the API interfaces. This could create new-look buttons and scroll bars, and change the dialog boxes etc.

Replacing the Window manager functionality in lower levels is far more difficult - you could only do this by hooking the API interfaces and replicating the functionality. This level would have to exactly replicate the existing functionality, or applications would break. I don’t think that anyone has done this, but I guess that the WINE and ReactOs (a free Windows style OS that can use Windows drivers) teams have had to build this level of functionality, so their code would be a start.

I personally am waiting for KDE 4 next year, because that should port to Windows quite quickly (as a native app and not as a local X-Windows Client app, which was done for older KDE enviroments), and I really like using it - but I don’t know whether they will implement a Windows Manager. KDE 4 sits on a standard set of libraries that works the same on Windows and Linux.

Si

I honestly have no idea why I’m doing this, but:

I read a bit more deeply into this document (as opposed to just scanning through) and found this:

Note well the construction that is not there. My cite is as authoritative as it gets, in addition to squaring with my personal observations. I do hope ftg responds to me in this thread.

The term ‘X Windows’, although not officially endorsed, is still quite common - perhaps less so amongst Unix professionals, but not even entirely absent there either. It’s really not all that remarkable that people use terms in ways not authorised by their official owners (Lego, for example, is very commonly called Legos, even though the Lego company tries hard to discourage it).

From the www.x.org site:

Details on any major X Windows Release can be located through the Releases page.” (X.Org Foundation)

“*The easiest way for new users to start X windows is to type. . . *” (Running X)

It’s not as if the term is a mysterious Martian phrase that could mean anything. “X-Windows” (with or without the hyphen) has been a common shorthand of “X Window System” for many years — certainly since I first started using it, back around 1990. If the shorter name doesn’t yet have the official blessing of the people responsible for the thing, I still don’t see why we should care. They aren’t the Pope, we aren’t Catholic, and they have no authority to issue edicts on how language gets to be used.

What they are entitled to do is define technical terms as they are used in their own documentation. It’s entirely fitting that they do this, but it doesn’t constrain anyone else outside that context.

I don’t see that the network-aware aspects of X have much to do with its not being a GUI. It implements no interface features, so it’s not an interface; a computer with X installed and nothing else is still not graphically operable. You can write a GUI using X; you can’t operate a computer with it directly.

As for the X-Windows name, I think regardless of what documents you care to cite, you’re just going to have to concede that people frequently refer to X as X-Windows, and that moreover a lot of the people who do so are far from ignorant. I see no point whatsoever in arguing over this. It is simply the case.

Not quite. I’d say a window manager is a necessary and sufficient component of a GUI, but that a GUI can also be more besides. A GUI may consist almost entirely of a window manager (for example, the Blackbox window manager for Linux/Unix systems is used by a lot of people who favour a very minimal GUI), or it may implement a lot more features. For example, KDE implements a window manager, called KWin, but does other things as well (configuration interfaces, toolbars, desktop management etc.). KWin can also be used separately from KDE, as a standalone window manager, but then you miss out on a lot of KDE features.

QT is often referred to as a “widget kit” in that it implements a bunch of graphical controls (buttons, text input boxes, that sort of thing) which stand in for the standard Windows ones (the Windows implementation of QT may well actually use the standard Windows calls itself; I don’t know). The advantage of using this, rather than the normal Windows libraries, is that your application is more portable to any system for which an implementation of QT exists, and will look fairly consistent across multiple platforms. The downside is that sometimes it doesn’t look quite congruent with whatever system it’s running on. On the other hand, some complete GUIs are built using QT (KDE is the main example here), so any QT application will look quite at home there.

OpenGL (to which I assume you were referring) is another graphics library, but is aimed at displaying lower-level graphical primitives; polygons, surfaces and so forth. It’s more aimed at 3D graphics and complex 2D visualisation; you wouldn’t really expect to write an entire application GUI in it, unless you had some really weird/specific requirements.

So, to sum up;

[ul][li]QT is kind of a cross-platform equivalent of the graphical MFC libraries (or the equivalent .NET classes).[/li][li]Neither QT nor MFC are window managers, nor are they GUIs - they provide the building blocks GUI programmers use.[/li][li]OpenGL is a lower-level graphical library, used more typically by people who want closer control of the display. It wouldn’t be used for generic GUI design, for example.[/ul][/li]Finally, Windows Explorer is not the graphical library - it’s a GUI built using the standard Windows libraries. The replacement shells/GUIs largely use the same libraries, but result in a quite different GUI.

I hope this makes some sort of sense - I’ve written it while quite tired. Do point out anywhere I’ve been unclear. :slight_smile:

Bytegeist: It still correlates strongly with ignorance, some non-ignorant usages notwithstanding (correlation is statistical, remember), an observation buttressed by the fact it is in fact incorrect.

This is all both entirely true and entirely beyond a non-technical forum such as this. I always try to provide some context for intelligent non-technical people reading my posts so they don’t get lost entirely. The entire bit about X being network-aware was simply an example of something that would have to be fleshed out and explained to people who erroneously think most computers are desktop systems (and thus lack important technical and — dare I say it — cultural context to understand why X is the way it is).

But describing it as a GUI is simply wrong (one might almost say ignorant). X is no more a GUI than an easel is a painting, and I think even the non-technical are capable of understanding the difference. There’s no subtle distinction involved here, no complex point beyond the ken of mere mortals: it just is not a GUI. And when someone’s asking what the difference between a GUI and a windowing system and a graphics library is, I think it’s important to actually give them the right answer, not claim they’re too dim to understand and furnish them with the wrong one.

Your continuing (and bewildering) insistence that the use of a very common informal name indicates ignorance is in rather marked contrast to your insistence on describing X in a demonstrably incorrect manner.

What you’ve showed is that the designers have said they would prefer it be referred to in a certain way. That does not show that other ways of referring to it are “in fact incorrect.” The designers can prefer whatever they want. But this has nothing to do with what is the “correct” or “incorrect” way to refer to the thing.

-FrL-

microsoft bob.