Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Darkly)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Uncategorized
  3. I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

Scheduled Pinned Locked Moved Uncategorized
11 Posts 6 Posters 1 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Dio9sysD Dio9sys

    I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

    To make gnome and related windows, you use gtk. To make kde and related windows, you use qt. gtk has become so obtuse in C that gnome devs made their own higher language called Vala that compiles down to C source. Qt has become so convoluted that even the guides on how to use KDE creator don't always work. Lots and lots of programs now exist that do not follow your window manager's decorations at all.

    How did we get here? How did we do it back in the day?

    I look at old screenshots of late 90s to early 2000s era linux, and I see a lot of windows that follow the menu conventions of the host window manager. I've found some tutorials from the 90s for X11 programming that makes a window, but doesn't include how to add window decoration elements to it.

    I, a fool, thought that there was some standard for GUI applications that gets read by your desktop environment of choice to put the menus and things in their right place, which I guess is sort of true with gtk and qt, but I thought it was some centrally defined part of x11 or wayland instead of a couple of frameworks that we all collectively decided are good but different from each other.

    mos_8502 :verified: 🇨🇦M This user is from outside of this forum
    mos_8502 :verified: 🇨🇦M This user is from outside of this forum
    mos_8502 :verified: 🇨🇦
    wrote last edited by
    #2

    @Dio9sys There's never been any coherent standard in the Unix world. For a while, GTK and QT played nicer together than they do now, but GNOME and KDE have grown outright hostile to one another now.

    mos_8502 :verified: 🇨🇦M Dio9sysD Akseli :quake_verified:​ :kde:A 3 Replies Last reply
    0
    • Dio9sysD Dio9sys

      I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

      To make gnome and related windows, you use gtk. To make kde and related windows, you use qt. gtk has become so obtuse in C that gnome devs made their own higher language called Vala that compiles down to C source. Qt has become so convoluted that even the guides on how to use KDE creator don't always work. Lots and lots of programs now exist that do not follow your window manager's decorations at all.

      How did we get here? How did we do it back in the day?

      I look at old screenshots of late 90s to early 2000s era linux, and I see a lot of windows that follow the menu conventions of the host window manager. I've found some tutorials from the 90s for X11 programming that makes a window, but doesn't include how to add window decoration elements to it.

      I, a fool, thought that there was some standard for GUI applications that gets read by your desktop environment of choice to put the menus and things in their right place, which I guess is sort of true with gtk and qt, but I thought it was some centrally defined part of x11 or wayland instead of a couple of frameworks that we all collectively decided are good but different from each other.

      rk: it’s hyphen-minus actuallyR This user is from outside of this forum
      rk: it’s hyphen-minus actuallyR This user is from outside of this forum
      rk: it’s hyphen-minus actually
      wrote last edited by
      #3

      @Dio9sys

      So, turns out GUI programming has always sucked terribly. One of the reasons Windows won back in the day was because as bad as it was, its API was significantly better than most of the other options out there (Mac classic had a bunch of weird global variables and fixed point thingies, Intuition on the Amiga was so bad, the primary GUI API ended up being a paid-for third-party library).

      For X, as someone who’s written a couple of window managers… (cont)

      rk: it’s hyphen-minus actuallyR 1 Reply Last reply
      0
      • mos_8502 :verified: 🇨🇦M mos_8502 :verified: 🇨🇦

        @Dio9sys There's never been any coherent standard in the Unix world. For a while, GTK and QT played nicer together than they do now, but GNOME and KDE have grown outright hostile to one another now.

        mos_8502 :verified: 🇨🇦M This user is from outside of this forum
        mos_8502 :verified: 🇨🇦M This user is from outside of this forum
        mos_8502 :verified: 🇨🇦
        wrote last edited by
        #4

        @Dio9sys The closest we ever came to a "standard UI" was Motif, and that was killed by being proprietary until far too late.

        mos_8502 :verified: 🇨🇦M 1 Reply Last reply
        0
        • Dio9sysD Dio9sys

          I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

          To make gnome and related windows, you use gtk. To make kde and related windows, you use qt. gtk has become so obtuse in C that gnome devs made their own higher language called Vala that compiles down to C source. Qt has become so convoluted that even the guides on how to use KDE creator don't always work. Lots and lots of programs now exist that do not follow your window manager's decorations at all.

          How did we get here? How did we do it back in the day?

          I look at old screenshots of late 90s to early 2000s era linux, and I see a lot of windows that follow the menu conventions of the host window manager. I've found some tutorials from the 90s for X11 programming that makes a window, but doesn't include how to add window decoration elements to it.

          I, a fool, thought that there was some standard for GUI applications that gets read by your desktop environment of choice to put the menus and things in their right place, which I guess is sort of true with gtk and qt, but I thought it was some centrally defined part of x11 or wayland instead of a couple of frameworks that we all collectively decided are good but different from each other.

          Scott WilsonS This user is from outside of this forum
          Scott WilsonS This user is from outside of this forum
          Scott Wilson
          wrote last edited by
          #5

          @Dio9sys I’m not a programmer, but as a user this drives me bonkers.

          Right now on my Debian desktop, I have 3 applications open and they’re all displaying different borders, different chrome, different scroll bars.

          WTF, computers?!?!

          1 Reply Last reply
          0
          • mos_8502 :verified: 🇨🇦M mos_8502 :verified: 🇨🇦

            @Dio9sys There's never been any coherent standard in the Unix world. For a while, GTK and QT played nicer together than they do now, but GNOME and KDE have grown outright hostile to one another now.

            Dio9sysD This user is from outside of this forum
            Dio9sysD This user is from outside of this forum
            Dio9sys
            wrote last edited by
            #6

            @mos_8502
            ugh, painful.

            I was going through Vala tutorials last night in preparation for a game project, and spent the whole time feeling like I was going on a furniture store tour that happens to be on top of a junkyard.

            1 Reply Last reply
            0
            • rk: it’s hyphen-minus actuallyR rk: it’s hyphen-minus actually

              @Dio9sys

              So, turns out GUI programming has always sucked terribly. One of the reasons Windows won back in the day was because as bad as it was, its API was significantly better than most of the other options out there (Mac classic had a bunch of weird global variables and fixed point thingies, Intuition on the Amiga was so bad, the primary GUI API ended up being a paid-for third-party library).

              For X, as someone who’s written a couple of window managers… (cont)

              rk: it’s hyphen-minus actuallyR This user is from outside of this forum
              rk: it’s hyphen-minus actuallyR This user is from outside of this forum
              rk: it’s hyphen-minus actually
              wrote last edited by
              #7

              @Dio9sys

              (Forgive me if I tell you things you already know.)

              X was all about “mechanism not policy) because it was a bunch of different vendors. The grand idea was network-transparent windowing, with an event-driven architecture and the server controlling the screen and input devices.

              The X server of course only knows about windows and font IDs and bitmaps and drawing instructions. One client can request that certain events be forwarded to it, and it can modify/intercept them.

              (cont)

              rk: it’s hyphen-minus actuallyR 1 Reply Last reply
              0
              • mos_8502 :verified: 🇨🇦M mos_8502 :verified: 🇨🇦

                @Dio9sys There's never been any coherent standard in the Unix world. For a while, GTK and QT played nicer together than they do now, but GNOME and KDE have grown outright hostile to one another now.

                Akseli :quake_verified:​ :kde:A This user is from outside of this forum
                Akseli :quake_verified:​ :kde:A This user is from outside of this forum
                Akseli :quake_verified:​ :kde:
                wrote last edited by
                #8

                @mos_8502 @Dio9sys I didnt know we KDE devs were supposed to be hostile, this is news to me!

                1 Reply Last reply
                0
                • rk: it’s hyphen-minus actuallyR rk: it’s hyphen-minus actually

                  @Dio9sys

                  (Forgive me if I tell you things you already know.)

                  X was all about “mechanism not policy) because it was a bunch of different vendors. The grand idea was network-transparent windowing, with an event-driven architecture and the server controlling the screen and input devices.

                  The X server of course only knows about windows and font IDs and bitmaps and drawing instructions. One client can request that certain events be forwarded to it, and it can modify/intercept them.

                  (cont)

                  rk: it’s hyphen-minus actuallyR This user is from outside of this forum
                  rk: it’s hyphen-minus actuallyR This user is from outside of this forum
                  rk: it’s hyphen-minus actually
                  wrote last edited by
                  #9

                  @Dio9sys

                  That distinguished client is the window manager. In the classic X workflow, it was responsible for drawing window decorations. That’s not built into the protocol, and GTK for example now draws its own decorations on client windows.

                  But traditionally the window manager drew decorations and reparented client windows into this hierarchy of decorations.

                  (Cont)

                  1 Reply Last reply
                  0
                  • Dio9sysD Dio9sys

                    I'm sorry, this is an extreme noob question, but I have been trying my hand at proper gui programming and have a ton of questions.

                    To make gnome and related windows, you use gtk. To make kde and related windows, you use qt. gtk has become so obtuse in C that gnome devs made their own higher language called Vala that compiles down to C source. Qt has become so convoluted that even the guides on how to use KDE creator don't always work. Lots and lots of programs now exist that do not follow your window manager's decorations at all.

                    How did we get here? How did we do it back in the day?

                    I look at old screenshots of late 90s to early 2000s era linux, and I see a lot of windows that follow the menu conventions of the host window manager. I've found some tutorials from the 90s for X11 programming that makes a window, but doesn't include how to add window decoration elements to it.

                    I, a fool, thought that there was some standard for GUI applications that gets read by your desktop environment of choice to put the menus and things in their right place, which I guess is sort of true with gtk and qt, but I thought it was some centrally defined part of x11 or wayland instead of a couple of frameworks that we all collectively decided are good but different from each other.

                    jordanJ This user is from outside of this forum
                    jordanJ This user is from outside of this forum
                    jordan
                    wrote last edited by
                    #10

                    @Dio9sys window decorations used to be the responsibility of the window manager, apps did not deal with managing them themselves

                    a lot of old X11 apps were written using the Athena widget set; vendors used to theme things by distributing their own custom libXaw that drew the widgets differently; I vaguely recall one version that would make your apps look like (classic) Mac OS

                    1 Reply Last reply
                    1
                    0
                    • mos_8502 :verified: 🇨🇦M mos_8502 :verified: 🇨🇦

                      @Dio9sys The closest we ever came to a "standard UI" was Motif, and that was killed by being proprietary until far too late.

                      mos_8502 :verified: 🇨🇦M This user is from outside of this forum
                      mos_8502 :verified: 🇨🇦M This user is from outside of this forum
                      mos_8502 :verified: 🇨🇦
                      wrote last edited by
                      #11

                      @Dio9sys CDE looks odd to a modern eye, but it was, in its time, the Unix desktop of choice. This was back when you had to pay for developer tools.

                      1 Reply Last reply
                      0
                      • R ActivityRelay shared this topic
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      Powered by NodeBB Contributors
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups