• Welcome to Valhalla Legends Archive.
 

Windowing Library

Started by Arta, May 21, 2005, 04:37 AM

Previous topic - Next topic

Arta

Does anyone know of a lightweight windowing library? I've just been looking at wxWindows, and I'm not willing to accept a 700Kb exe for a program that displays a frame and a textbox. MFC is similarly horrible.

I don't see why it can't be possible to create a basic set of windowing classes that are a bit more trim than these. Does anyone know of one?

R.a.B.B.i.T

One, but why not make one?

http://www.linuxdevices.com/links/LK3604470987.html
OpenGUI, I've never used it but it looks good.

Arta

Quote from: rabbit on May 21, 2005, 07:58 AM
One, but why not make one?

http://www.linuxdevices.com/links/LK3604470987.html
OpenGUI, I've never used it but it looks good.

Far too much work. I'll have a look at that one, thanks :)

OnlyMeat

Quote from: Arta[vL] on May 21, 2005, 04:37 AM
Does anyone know of a lightweight windowing library? I've just been looking at wxWindows, and I'm not willing to accept a 700Kb exe for a program that displays a frame and a textbox. MFC is similarly horrible.

I don't see why it can't be possible to create a basic set of windowing classes that are a bit more trim than these. Does anyone know of one?

Actually it's called wxWidgets now ;).

Lightweight?, i find one dll quite lightweight. I don't know how you are building your exe's but 700kb seems alot. Are you statically linking to the gui lib?. You could try dynamically linking to it, thats what most GUI apps do.

MFC is horrible because? wxWidgets is almost identical except MFC is easier to develop with the msvc IDE. They both use virtually the same macro event system.

The advantage of using MFC on a windows box is that most of the apps running use that as their base GUI which means the dll is already present and loaded, which of course means better performance. MFC is perhaps the best performing GUI tookkit I've used on windows, but of course this comes at the price of non direct portability.

Personally i have tried quite a few different ones, qt, wxWidgets and MFC. MFC wins hands down on a windows box without a doubt for performance and ease of use, however wxWidgets comes in second place because it's much like MFC and very easy to use with a reasonable performance.

In the end, if you want a powerful high performance (native) GUI toolkit for a windows box use MFC. If you want an easy to use portable GUI toolkit with reasonable performance go for wxWidgets. It's that simple.

Most people disregard MFC simply because microsoft wrote it and not actually how it performs and it's ease of use. Usually this comes from linux/open source based people who refuse to use software based on pride rather than because it's the right tool for the job at hand.

Some of the most popular programs on windows use MFC for their base GUI, paint shop pro for one and many other document/view style programs.

Banana fanna fo fanna


Kp

GTK+ is really nice, but IIRC it's a bit sluggish on Microsoft Windows.  Works great for X11 though. :)
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!

OnlyMeat

#6
Portable GUI toolkits will always perform worse than normal native ones simply because of the additional layers of abstraction.

It's not simply because it's run on windows that it's sluggish. You sacrifice performance for portability, thats the bottom line.

Kp

Quote from: OnlyMeat on May 23, 2005, 02:17 PMPortable GUI toolkits will always perform worse than normal native ones simply because of the additional layers of abstraction.

It's not simply because it's run on windows that it's sluggish. You sacrifice performance for portability, thats the bottom line.

As I understand it, GTK+ abstracts the underlying system regardless of the platform on which it is used.  On Linux, GTK+ uses GDK, and GDK uses Xlib.  On Microsoft Windows, GTK+ uses GDK, and GDK uses the system's native calls.  Equal layers of abstraction on each, yet the MS-Windows builds are reported to perform much worse.  Sure, you sacrifice a bit of performance for portability, but the performance loss is barely noticeable on Linux.  I can even get usable performance running a GTK+ app in Valgrind's Memcheck tool, for which the documentation states:
QuoteMemcheck runs programs about 10--30x slower than normal.
Despite equal layers of abstraction, performance is much better on Linux.  So I don't think you're quite correct when you say "It's not simply because it's run on windows that it's sluggish".
[19:20:23] (BotNet) <[vL]Kp> Any idiot can make a bot with CSB, and many do!