Interesting subject
>Don't you think you are entering the competence of a window manager?
Exactly... But i see by another point of view...
He´s entering at this specific "lack" of competence of the gui lib, and supplying ways to do better finishing in the application itself, rather than making nice finishing on the client area only.
>From what I understand you get rid of standard window decorations by creating >frameless windows and draw the "skin" yourself, correct? That's exactly what a window >manager is supposed to do.
Don´t think so... That´s exactly what a powerful gui lib is supposed to do... to give the option of doing styling in everything, including the application frame... and it doesn´t, in short words: Qt does not have factory included facilities to do styling on the application frame and titlebar, it only does styling inside the client area. Which i consider not enough, maybe the Qt developers should watch this lib and incorporate it to give the programmer the option to decide whether the top level frames will be customized or system dependent. This seems a very interesting option to me.
>Using your approach one breaks one of the fundamental features of Qt - platform >integration.
I´ve got a different point of view about this:
IMHO True cross-platform means more the having the same client area behavior, it means having the same *application frame* behavior, so as an *option* if i can chose having exactly the same style for top-level frames across OS´s, that would be very interesting, like showing windows with "pixel by pixel equal" applications. (and that includes the app frame, i know some other libs that do it... IF the developing users choose to...)
>If one changes the theme in the window manager (be it Aero, Aqua or KDE), Qt >applications will adjust.
Nope... Qt apps will just *submit* to the new theme because there is NO provided option for styling the application frame. If there were options to do this styling then the application itself could switch the style the same easy way that it switches the style for widgets inside the client area. What surprises me is that this idea emerged from a single user trying to compensate this deficiency in a very complex lib that deals with styles and not emerged from the lib developers themselves.
>so the use of your component is really limited.
exactly the opposite IMO... this lib compensates the "limitation" of Qt not being able to do styling in the application frame, having the default system style is just the developer option not to use this lib.
>Especially on X11 platforms and when KDE4 enters the scene, your solution will become >obsolete on this platform.
well... i think that having the ability to design and use a different skin to change the look of an application is exactly what prevents it from getting obsolete, so it can adapt to whatever new layout appears. NOT having the option of skinning is the "obsolete" case IMO.
>In my opinion you are doing a step back here - you are "forcing" the programmer to >think about low-level things (like borders, decorations, skins, window geometry etc.)
LOL I think he is actually "forcing" the Qt programmers to step back, by proving a pretty shameful situation, by showing that IT´S POSSIBLE to DO this feature, so i think that there´s some revision to be done on the lib to incorporate this facility and "then" the Qt USERS don´t have to think about magical ways of styling the app frame and having to do some valuable research achieve this like he did.
>I admit your solution is pretty, but I'm not sure if it is a step in the right direction.
As i see is a matter of choice... I think that if a lib that has included facilities for styling, styling the client area only is not enough, but even in this case i could choose NOT to use styles.
In the case of the application frame there is NO option of styling, so in this case is not a matter of choosing using styles or not, unless you USE the skin lib you will have NO top-level application style at all...
Nice work Kernel !
Keep up the good work!
best regards
bantri





Reply With Quote
Bookmarks