Slashdot Mirror


Resources for Rolling Your Own Windowing System?

WalterGR asks: "There are plenty of resources available for writing operating systems, e.g. Tanenbaum's Modern Operating Systems, the Dinosaur Book, and countless web sites. For those of us who aren't interested in low-level issues, and prefer focusing on human-computer interaction, what resources are available for designing windowing systems (a la X Window)? Issues like the object hierarchy, event management, modularity, redefining behavior at runtime (e.g. for skins) etc. Any suggestions?"

5 of 279 comments (clear)

  1. OWL, MFC, K, etc. by Anonymous Coward · · Score: 5, Informative

    Take a look at the object windowing libraries put out by several vendors. It should give you a good footing on developing your own object hierarchy.

    As for not getting into 'low-level' stuff, you're SOL if you want to build an X-like system.

    1. Re:OWL, MFC, K, etc. by Steveftoth · · Score: 3, Informative

      One of the reasons that swing is so slow is that it looks the same on ALL operating systems. They achieve this by not accelerating ANY DRAWING CODE.

      All the widgets are drawn onto an offscreen buffer then blitted to the main screen. Instead of just simply being drawn to the screen ( like normally) This causes huge problems in X over the network ( especially if the application likes t call repaint a lot ).

      the apple jvm accelerates some of swing, but on windows ( where most people see swing ), it is really slow.

      I totatly agree that swing is a little too OO sometimes. It's a problem with java being so OO.

  2. No really, I'm serious... by curunir · · Score: 5, Informative

    Microsoft's Research is pretty good...

    These guys spend a lot of effort answering the kind of questions you're asking.

    --
    "Don't blame me, I voted for Kodos!"
  3. SVG GUI by schepers · · Score: 3, Informative

    There is a new SourceForge project called SVgUI. The intent is to make a windowing system--Web and possibly desktop-based--using Scalable Vector Graphics (SVG). There are no released files yet, but several promising examples of GUI elements have been posted on the SVG-Developers list.

    Sorta off-topic, I know, but you might be interested in working with a community from the ground up.

  4. Understand prior art first by Havoc+Pennington · · Score: 4, Informative

    Here is the classic paper on how X could be improved, for example: http://www.std.org/~msm/common/WhyX.pdf.

    Write a window manager and fix some GUI toolkit bugs, that's a good way to understand X well. Hack on GUIs like GNOME and KDE to understand where progress is needed on the UI front, and where changing the window system could help.

    (I think almost everyone who's actually hacked on this stuff a lot will tell you that replacing X isn't interesting, but if you want to make a credible claim one way or the other, getting experience is the only way.)