Undercoated window or custom window?

Programs like iTunes, steam etc. seems to have their own style of window...

How do these programs make their own window? do they just use undercoated window and display their own buttons? or is there way to change the theme of the window? thanks.
I don't know what "undercoated" means, but generally what they do is disable the native window border and draw their own window border within their client window.
That's what exactly undecorated window means...I'm trying to make my undecorated window movable and resizable but it's really hard because undecorated window gives you absolutely nothing...
Yeah, you need to re-implement the native behavior yourself, which is why people hate the iTunes and Steam UIs.

By the way, "undercoated" and "undecorated" are not the same word.
Haha I didn't even realize that I mispelled 'undecorated'.

Anyway, do you know why people hate undecorated window? I think iTunes and steam has really cool style. Why do people recommend native window? Thanks.
Because it is a backwards UI design.

Part of what makes Windows both usable and beautiful is the fact that the WM does all that stuff in a nice, unified, way.

Take that away, you have stuff that is chaotically disjoint, that behaves differently in subtle and confusing ways, and typically has fewer control points than the native WM's window borders.

Essentially, you're back running early versions of X, except without the comfort of Motif.
Users are used to how their windowing system behaves. When you override their windowing system with your own, they have to learn the differences for no good reason. Personally I hate it when apps override the native UI.
Last edited on
Meh, having a custom border saves precious screen space when working with graphics programs like Photoshop, so there are times when they are appropriate. Firefox and probably Chrome also save screen height by having the file...help menu be on the same level as the right-hand-side [X].
Last edited on
The glass border trick is well-known and works fine because the application is maximized.

[edit]
It isn't the same thing, either.

OP's question is about reimplementing window borders.
The glass trick doesn't require you to reimplement anything, just hook into the WM's border management to draw your own buttons/tabs/whatever and respond to click "hits" on them.
Last edited on
Drawing on the title bar is a feature supported by most window managers, and it does not involve drawing the entire border yourself.
While I will concede that iTunes and Steam are examples of bad GUI design, I think borderless windows have legitimate uses. If you want to display a graphic or animation with minimal clutter and using as much surface area as is available, a borderless window is the only option.
Last edited on
Why wouldn't you just go fullscreen then? Going borderless only gives you a few pixels at most.
Last edited on
The graphic might not look good resized, or there may be other things you still want to show.
The particular example I'm thinking of is an image viewer.
There are three things being discussed here:

borderless windows -- I've no problem with them and have used them myself.

hooked window borders (like is often done with Aero Glass and, believe it or not, pre-Vista WM as well) -- This has legitimate uses, like when PS or Chrome uses the titlebar region for tabs when maximized, or when certain systems programs add buttons to the titlebar.

custom bordered windows, for lack of a better name, where the application draws its own borders for the windows. -- This is where I have a UI design problem. Such programs do exist, and are beautiful. I've written a few myself. And believe me, there's a whole lot more to it than just drawing some buttons and implementing a few click-n-drag events if you want your users to feel at home.


Any decent image viewer will know how to resize an image with a properly-chosen resample filter -- part of an image viewer is the ability to zoom in and out; not just 1:1.

I use IrfanView -- it behaves very nicely. Press Enter to go fullscreen (borderless)/windowed (borders). When fullscreen, press F to cycle through the zoom options: starts at 1:1, match to height, stretch fill, match to width, best fit. Press Esc to quit.
http://www.irfanview.com/
It's Windows native, but works just fine on Linux with WINE.
Ugh. Don't talk to me about IrfanView.
https://github.com/Helios-vmg/Borderless

My understanding is that borderless windows and custom-bordered windows are the same thing. Is this wrong?
I don't know what Duoas is referring to when he says "borderless windows", but I'm referring to windows where you disable the border+titlebar provided by the windowing system. You could draw custom borders and title bar if you wanted, but the most common use I see is with the Dropbox/GoogleDrive/OneDrive status windows.
???

I'm referring to windows where you disable the border+titlebar provided by the windowing system
---that would be a "borderless window".

A lot of things are made of borderless windows -- menus, popups, etc.


@helios
When your program can do what Irfanview can, then we'll talk shop.
Also, I love programs with good keyboard controls.
But it is a mistake to remove all standard GUI interface functionality. It leaves users lost and/or annoyed.

I also find it interesting that you've made it a single-instance application. Why? (I often need to view multiple images at once.)

(I haven't got Qt on my system, and I don't have the time to mess with it ATM, so I was unable to play with your application. You should make a binary available.)
I think there is some confusion because of my usage of the word 'window' - I don't use it as Microsoft uses it. Yes, I know that popups and text boxes and many other things are technically windows in the Windows API, but I do not refer to them as such. When I say 'borderless window' I am never referring to a popup menu or text box, I am always referring to the thing that the user can layer between other windows.
Last edited on
Topic archived. No new replies allowed.