James T. Klik: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
|||
(10 intermediate revisions by 7 users not shown) | |||
Line 1:
Look through the window ... See that background with alpha-blending and my anti-aliased fonts
== Reaching Klik's level ==
Line 20:
It is time to draw small windows on screen. We had many discussion in the forum about how they can be moved efficiently and so on. Note that you'll '''really''' start to need a way of [[Memory Management|allocating and freeing memory]] at this point, as you do '''not''' want to assume that there's a maximum of N buttons in the system ...
# Collect tutorials about GUI programming, including [http://osdever.net/tutorials/GUI_tut.php?the_id=62 GUI Programming] at BonaFide.
# Create a class that will be responsible for receiving event from the system, including the "repaint" event.
# If you want 'windows', let there be a window manager that send them 'repaint' events when needed, handle window displacement and is in charge of "what's behind the window".
# make sure you can add content to your window, and that you don't need to write a specific "repaint" function for each new content. Most
== Outrunning James T. Klik ==
=== Have programs loaded in memory
And provide a
=== Have user-level programs executed when requested
The easiest approach is to create a segment for the user's code and one for its data. Then return to the program. You can even not worry about multitasking and decide every kernel operation will occur when an interrupt arise (that's how DOS works), but you will at least have '''1a. implement interrupts support''' and '''1b. implement basic segmentation support'''. If you're fine with
=== Have the kernel access hardware
It should at least be able to receive the keyboard data (and translate them
Required steps are '''2a. video driver''' (get a frame buffer), '''2b. mouse driver''' (have a cursor moving on screen) and '''2c. keyboard reader''' (have keystrokes translated and written to some memory area).
=== Build the menu at run time ===
Line 48:
This requires '''3a. Process control''': select which program is currently running and '''3b. Process sleep & wakeup''': let the application decide that it have nothing to do but waiting something to happen and let the kernel return to the application only when something occurred.
Note that this will only offer you something like
== James' Bookshelf ==
Line 59:
== People and OSes related to James T. Klik ==
* [[User:Combuster|Combuster]]
* [[User:Novayoshi|NovaYoshi]]
* [[User:
* [http://omarrx024.github.io omarrx024]
* [http://www.oby.ro/os/ Bogdan Ontanu, Solar_Os, GUI, Widget toolkit and running loaded PE from disk]
* '' insert your names here ''
[[Category:Developer Archetype]]
[[Category:Graphical_UI]]
|