Page 1 of 1

RE: VBE 2.0 and GUI design

Posted: Fri Dec 07, 2007 2:49 pm
by SonOFBelial
Two issues. I'm writing an OS in pure x86 assembly. It is a simple monotasking system. Firstly, does anybody have any ideas on GUI design for a monotasking system? Secondly, how should applications interact with the GUI (from a programmers perspective)?

Posted: Fri Dec 07, 2007 5:47 pm
by Dandee Yuyo
Did you ever programmed against a GUI?

Posted: Fri Dec 07, 2007 6:33 pm
by Dex
Yes to both ?, But i think your better off using a differant type of GUI, than you get with your normal multi-tasking desktop.
I would look to game consoles or mobile phones or pda etc for ideas. That's what i did.
I have also done a desktop GUI for my single-tasking OS, just to try it, it works fine, but theres little point, as your run a single program at a time, the screen does not need to be shared with other programs.

As for a gui from a programmers point of view, you have two choser, have some function for drawing window etc or let the app programmer design his own interface.
There little point in having a resizable window in a desktop, as you would need to close it before opening another program, you can still have resizeable windows in the app its self eg: a editor that can open more than one file at a time etc.

Something like this is fine for a single-tasking OS

Posted: Sat Dec 08, 2007 12:47 pm
by SonOFBelial
Did you ever programmed against a GUI?
I think you mean "Have you ever programmed with a GUI before?", correct me if I'm wrong.

Yes, but most GUI libraries are object oriented, which isn't really an option with assembly language (without a lot of setup code).
Dex wrote:Yes to both ?, But i think your better off using a differant type of GUI, than you get with your normal multi-tasking desktop.
I would look to game consoles or mobile phones or pda etc for ideas. That's what i did.
I have also done a desktop GUI for my single-tasking OS, just to try it, it works fine, but theres little point, as your run a single program at a time, the screen does not need to be shared with other programs.
The problem I find with GUI's used in embedded devices like phones are somwhat limited, due to there small scope. How might I expand these to encompass the full feature-set that a GUI OS needs to provide to it's applications. DexOS's GUI doesn't extend to applications, as each applicatin provides it's own (giving more control to the programmer, which appears to be DexOS's goal). However, this is not the case with my OS.
As for a gui from a programmers point of view, you have two choser, have some function for drawing window etc or let the app programmer design his own interface.
There little point in having a resizable window in a desktop, as you would need to close it before opening another program, you can still have resizeable windows in the app its self eg: a editor that can open more than one file at a time etc.

Something like this is fine for a single-tasking OS
The problem with not provided a widget set is that applications are more likely to become inconsistent. If the OS provides a consistent GUI library, which can be used for most applications, it makes things easier for the programmer and the user.

Posted: Sat Dec 08, 2007 1:54 pm
by Dandee Yuyo
Yes, but most GUI libraries are object oriented, which isn't really an option with assembly language (without a lot of setup code).
Win32 API is somehow "object oriented" but designed to be programmed with non object-oriented languages, like C. You can take a similar approach in assebler or whatever language you choose.
The problem with not provided a widget set is that applications are more likely to become inconsistent.
Like old linux appz. I agree with you, a decent GUI toolkit -mono or multitasking- should provide those.

Posted: Sat Dec 08, 2007 2:25 pm
by Dex
But you can provide a uniform look or feel, simple by using a include file with windowing function. I believe you need to take a differant approach with mono, than multi-tasking.
In a single-tasking OS, one app has full control over the whole screen.

Posted: Sun Dec 09, 2007 1:46 pm
by Combuster
Yes, but most GUI libraries are object oriented, which isn't really an option with assembly language (without a lot of setup code).
I recall the existance of some assembly tutorial... it started with windows programming :wink: