Author Topic: GUI library  (Read 5263 times)

Offline frankmail007

  • Multiple posting newcomer
  • *
  • Posts: 23
GUI library
« on: March 31, 2006, 06:43:08 am »
I'm just developping a software which has following requirements for GUI:

1. Skinable
2. Cross platform (Windows,Linux, MacOS)
3. Freeware
4. Support html page, list view, treeview
5. Object oriented
6. C++

I only have some experience at wxWidgets. The only limit is that wxWidgets seems not easy to write a skinable software.

Can anybody advise?

Offline takeshi miya

  • Lives here!
  • ****
  • Posts: 1487
Re: GUI library
« Reply #1 on: March 31, 2006, 07:43:53 am »
wxWidgets seems to match your criteria, except for "skinable".
It depends on your definition of what is "easy skinable", but some approaches comes to mind:
1) Using bitmaps and handling everything yourself, pretty much like Winamp =<2.x.
2) Using the wxUniversal port, which you should only need to write a skin for it. This would be a good way, the only but, is that I don't know if there's any documentation for doing a skin. But you could actually look at the implementation of the current 2 skins it haves.

I'm not here to judge the skinable thing, I don't know what will be your user-base.
I personally prefer a very powerful program, not skinable and native looking but very customizable like the player foobar2000 instead of the 'skinable' Winamp, which doesn't let you customize how everything is displayed. I'm talking about the GUI interface.

Again, another advantage about using native widgets instead of a custom skin is that now that all modern OS supports skinability at the OS level, so every program using native widgets is pretty consistent with the rest.

One would only need to look at the consistence in interface between programs in Ubuntu or Mac OS X vs. Windows, and you can see what I mean.
In Windows it seems to be pretty common between developers to not use the Human Interface Guidelines of the platform, so it's like lot's of programs uses overdrawn widgets and skins. If you like or dislike that, it's up to the user, I personally like consistency.

But keep in mind, because you want cross-platform GUIs, in other platforms, specially MacOS, not respecting the HIGs of Apple will represent a direct relation of a decreased user base on that platform (becase any program not consistent there, is seen as wacky).

The native widgets vs. non-native widgets thing should be something to be considered more by the users, instead of the developers in a given platform.

I know another GUI toolkit that matches your criteria (it's skinable, but doesn't support native widgets), but I can bet for sure that if you use it, no one user would use it in Windows or MacOS.
I'm talking about GTKmm. I never seen a program written in it for Windows/MacOS used actually by anyone, and I can bet that it's because the native skins thing.

However I saw very popular programs with success in Windows/MacOS, written in wxWidgets or QT.
Examples can be (in the case of wxWidgets): VideoLAN, AOL Communicator, Kirix Strata, W3C Amaya, aMule, TortoiseCVS...
And the good thing is that probably most people can't tell the difference between a MFC/Win32 program and a wxWidgets program.

But all of that depends on your target. :)
« Last Edit: March 31, 2006, 01:01:53 pm by Takeshi Miya »

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: GUI library
« Reply #2 on: March 31, 2006, 12:52:03 pm »
However I saw very popular programs with success in Windows/MacOS, written in wxWidgets or QT.
Examples can be (in the case of wxWidgets): VideoLAN, AOL Communicator, Kirix Strata, W3C Amaya, aMule, TortoiseCVS/SVN...
Especially TortoiseSVN is an excellent example... :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline takeshi miya

  • Lives here!
  • ****
  • Posts: 1487
Re: GUI library
« Reply #3 on: March 31, 2006, 01:02:20 pm »
However I saw very popular programs with success in Windows/MacOS, written in wxWidgets or QT.
Examples can be (in the case of wxWidgets): VideoLAN, AOL Communicator, Kirix Strata, W3C Amaya, aMule, TortoiseCVS/SVN...
Especially TortoiseSVN is an excellent example... :)
Yup, sorry about it. Fixed in SVN. :lol:

That demonstrates how easy is to confuse a wxWidgets app with a native one.  :D

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
Re: GUI library
« Reply #4 on: March 31, 2006, 05:03:18 pm »
the only diffrence I know is the file size...
Most of the options you want are also possible in fltk, which is a little bit smaller than wxWidgets.
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: GUI library
« Reply #5 on: March 31, 2006, 05:06:55 pm »
the only diffrence I know is the file size...
Most of the options you want are also possible in fltk, which is a little bit smaller than wxWidgets.
Yes, I would have recommended that too. But he absolutely needs HTML view, and fltk doesn't have that (unless I am very wrong)... :(
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline David Perfors

  • Developer
  • Lives here!
  • *****
  • Posts: 560
Re: GUI library
« Reply #6 on: March 31, 2006, 06:08:12 pm »
No you are right... There isn't any :( I didn't check that, but I don't think it is difficult to make it you're self ;)

and a plus is, that it supports theme's :P (at least the devel version.... not personaly tested...)
« Last Edit: March 31, 2006, 06:36:54 pm by mispunt »
OS: winXP
Compiler: mingw
IDE: Code::Blocks SVN WX: 2.8.4 Wish list: faster code completion, easier debugging, refactoring

Offline takeshi miya

  • Lives here!
  • ****
  • Posts: 1487
Re: GUI library
« Reply #7 on: April 01, 2006, 12:45:29 am »
Yes, I would have recommended FLTK too, but it doesn't haves all frankmail007 wants.
Also, the development progress is becoming slow lately.

Offline yop

  • Regular
  • ***
  • Posts: 387
Re: GUI library
« Reply #8 on: April 01, 2006, 09:30:18 pm »
Nobody likes Qt? (Though the html suppot does only the basic stuff)
Life would be so much easier if we could just look at the source code.

Offline Michael

  • Lives here!
  • ****
  • Posts: 1608
Re: GUI library
« Reply #9 on: April 01, 2006, 09:40:58 pm »
Nobody likes Qt? (Though the html suppot does only the basic stuff)

I like it :). I use both Qt and wxWidgets. If Qt did not make use of meta-compilation... :roll:

Best wishes,
Michael