FYSOS: The Graphical User Interface
Benjamin David Lunt
1st Edition
(Released: 2016 July 04)
ISBN-13: 978-1535114608
ISBN-10: 1535114606
Available at
Amazon or your favorite book source
and in
PDF format
Volume Six of a
series of books on Operating System Design
See
below for customer comments
View the
Errata
This book is Volume 6 of the series, FYSOS: Operating System Design, and will show the reader how to draw to the VESA screen, creating windows, controls, buttons, text objects, progress bars, and many other types of objects, allowing the mouse cursor to manipulate these objects. The book explains things like the common Message Box, how to create the object, including an optional icon, text message, and one to three buttons. The book explains events, how to send and receive these events, and what to do with them.
All of this is done without any outside help, such as operating system calls, though does call the video BIOS to retreive the VESA video information.
The companion CD-ROM contains complete source code of each example within the book, showing how to accomplish these tasks, as well as a complete demo GUI system, showing all of the controls and objects, how to manipulate them and move them about the screen. This source code is essential to the book so that you may follow along and see just how to perform the task at hand.
This book, and its companion series of books, does not expect you to build the next great wonder of the computer world. It simply will help you with your interest in controlling the computer's hardware, from the point the BIOS releases execution to your boot code to the point of a fully working Graphical User Interface.
It is not required that you know much about operating system design, though a good knowledge of C Programming Language and a moderate knowledge of an Intel/AMD x86 computer's hardware is expected to use this book.
Information in the book or on the CD-ROM may include
148 pages
• Detecting the video information, including screen size and color depth
• Manipulating image files
• A demo GUI system to show how to use these items
• Detailed source code to the demo GUI system
• Does not use a third party GUI or graphics program
• Everything is done within the included source code
• Is a self contained GUI demo app with all source included
It is essential that you request the CDROM so that you can follow along in the book. Without the source code to the GUI Demo app, you may not understand what is discussed within the book. The source code is the key to understanding the process.
I have a few screen shots of the GUI Demo app in use along with the executable part (no source) of the app shown below so that you might be able to see the process and decide if this book is right for you.
Here are some examples of what the current FYSOS code does, with a simplified demo linked below:
Screenshot: Desktop view with Menus
Screenshot: Desktop view with many Message Boxes
Screenshot: Desktop view with Transparent Titlebars
Screenshot: Misc Desktop view (3rd and 4th images in row at bottom left, animate)
Screenshot: Misc Desktop view (with calculator app)
Screenshot: A Terminal (DOS like) view.
FontEdit:
Screenshot: 'H' in the LucidaC Font
Screenshot: 'A' in the Courier New Font
GUI Demo code:
Please see this page for instructions on getting a demo with source.
The Companion CD-ROM
The companion CD-ROM is no longer available due to the ease of access to the internet. With that being said, the source code is available via github.
See Appendix A for the structure and contents of this repository, which will be updated when time, neccesity, and/or interest allows.
Table of Contents
Introduction
Part 1
1. The GUI Overview
2. The Video Screen
3. The Bitmap Object
4. The Pointing Device
5. Base Constructs
6. Getting Started
7. Object Creation
8. Events
9. Most Used Functions
10. Remaining Notes
Part 2
11. Fonts
12. Images
13. A Message Box
14. The Button Object
15. A Progress Bar
16. The OnOff Object
17. The Menu System
18. Last Minute Notes
Appendix A - Disc Contents
Appendix B - Included Utilities/Source Code
Appendix C - Tables and Figures
Appendix X - For More Information
Bibliography
A more detailed Table of Contents (pdf), stripped directly out of the book.
User Comments