I don't buy it, something doesn't add up. The look and feel is somewhat out of place, one can tell with one glance it's not native. https://i.imgur.com/LjDhPOv.png
• The scrollbars are too narrow and have only a down arrow at the bottom instead of a combined up and down arrow.
• The font size is wrong in some places in the hex editor.
• The tab in the tab bar is crooked, not rectangular, and lacks a close button.
• The text has too cramped kerning, most noticable in the word "File".
• The underline for key shortcuts is placed too high.
• The ribbing in the lower-right corner is larger.
• Contrast around the menu bar is too harsh.
• The icon bar does not lock (context menu), and always displays a grabber.
• Menu bar and icon bar do not have a context menu.
• The ribbing on the left-right split bar is different.
• The MDI panel only has a close button but not a detach button. There's a obtrusive gradient in the panel title.
• The progress bar does not have the stripe pattern.
I submit that Wx implements its own non-native widgets.
It does for the widgets that have no native equivalent, such as draggable/dockable tabs/panels that you show. You can't say they differ from native ones because there is just no native version, on any platform.
OTOH all the standard UI elements (buttons, checkboxes, text controls, date pickers, ...) are native and not only they look natively, but also behave natively, which is pretty important and different from Qt.
PoEdit comes the closest to looking genuinely native, but the MacOS implementation is clearly flawed.
Or check "Game Develop". The primary interface is a kind of weird rip-off of the MS Office ribbon, but I assume this is a custom widget. There's also a tab interface though, and this doesn't work on either the Windows or GTK versions: it's weird and has a gradient background.
In general, small details like the padding, coloration, and borders drawn around widgets seem to be slightly off on most platforms with just about very wx based GUI I've seen.
The rest of the controls (ribbon, tabs) are indeed non-native and there are no native equivalents for them, so there is not much to say here.
Generally speaking, there shouldn't be any problem with the colours unless you change them explicitly, which is a bad idea for the native controls. Not sure what is wrong with the padding and borders.
Well, let's verify that… https://i.imgur.com/uHfjoUs.png No, they're not.
> draggable/dockable tabs/panels […] You can't say they differ from native ones because there is just no native version
That sounds wrong. Why should they not be? Do you have any proof?
Sorry, I don't know what is this supposed to prove, but I can definitely assure you that all the mentioned controls, and many others, are exactly native controls under the 3 first tier platforms (MSW, GTK and macOS).
> Do you have any proof?
Proof of absence of something is hard to make, all I can say is that you can go through MSDN, GTK and Cocoa documentation to convince yourself.
Regardless, since you're accusing a very old and widespread project of lying ("it uses the platform's native API rather than emulating the GUI" on their front page, versus "I submit that Wx implements its own non-native widgets."), you should directly ask on an official channel, and have an authoritative answer.
> since you're accusing a very old and widespread project of lying
http://enwp.org/Appeal_to_accomplishment Nice fallacy, don't think you can pull cheap tricks like that on HN.
But anyway, let them defend themselves; veritas liberabit vos. FWIW I don't think malicious or intentional lies are involved, although a mighty good explanation is required to square their claim against the evidence that it is plain to see.
Note that one of the posters you've been arguing with ("VZ"; argument here: https://news.ycombinator.com/item?id=24259040), turned out to be the WxWidgets maintainer. According to the comment though, mentioning this constitutes a cheap trick <rolling eyes>.
Regardless, there is a very interesting concept in the explanation: using native widgets through WxWidgets (and possibly, widget toolkits in general) requires following specific guidelines. Failing to do so will make the widgets look bad, even if they're native.
First of all: The "VZ" who wrote in the thread you linked, is Vadim Zeitlin, the
core maintainer of wxWidgets. His word is the highest authority in the wxWidget
s world.
My 2 cents:
are all the widgets provided by WxWidgets native?
No. But if a native implementation of a control exists on a specific platform, i
t will be used (i can't think of any exceptions right now, but it's possible the
re are a few).
Most widgets are native on all platforms, e.g. wxButton, wxTextCtrl, etc.
Then there are widgets that are only native on some platforms. E.g. wxDataViewCt
rl. Is has native implementations on OSX and GTK, but as no such control exists
under Windows, a generic implementation is used there.
Then there are widgets that have no native implementations at all, e.g. wxGrid.
In general, wxWidgets just gives you the toolset to develop crossplatform GUIs.
That doesn't guarantee it that they'll look good everywhere out of the box. This
also requires "good" behavior of the developer. E.g. they should not use absolu
te values of controls sizes and positions, but use wxSizers (the wxWidgets layou
t system) instead. Lately they must also be prepared for high-dpi screens, good
support for that is only available in wxWidgets for a few weeks now.
Also, many open source developers only develop on one platform and hardly ever o
r never test on other platforms. Often they just don't want to invest more time
to make their application look good everywhere.
Regarding https://imgur.com/LjDhPOv
wxHexEditor uses wxAUI, this is not native anywhere. The window with the hexdisp
lay could be custom drawn, there is no control that does this out of the box. Or
it might be a wxGrid, hard to say.
wxMP3gain looks fine to me
easyMP3Gain seems to be one of the case where the developer just didn't care to
make it look good.
AFAIK, this is not correct, as WxWidgets fits the requirements (it's almost 30 years old, cross-platform and native).
I'm curious though, since I haven't extensively developded GUI applications, which are the pratical tradeoffs against a non-native toolkit like Qt.