| PicoGUI -- an open source portable and flexible GUI project |
(Last updated: Aug. 15, 2000)
PicoGUI is a small, portable client/server GUI designed to work on many types of hardware including handheld computers. Like the X Window System, it has a flexible client-server architecture. Unlike X, however, fonts, bitmaps, widgets, and anything else the application needs are built directly into the server. This sacrifices a small decrease in flexibility for an increase in speed and a large decrease in size.
Overview of the PicoGUI architecture - Widgets and layout engine are built in to the server, reducing the size of the libraries and executables
- Client/server -- the connection between application and server, and even between server and input device can be established through TCP/IP for network-transparency
- Modular -- video, input, and network subsystems can be exchanged at compile-time
- The goal is to combine the flexibility of X-Windows with the simplicity and speed of Palm OS.
Architecture
Like the X Window System, it has a flexible client-server architecture. But, unlike X, fonts, bitmaps, widgets, and anything else the application would need are built in to the server. This sacrifices a small decrease in flexibility for an increase in speed and a large decrease in size. Because of things like its standard client interface, powerful themes, and modular drivers it can be more flexible than other other small GUIs.
Size
Stripped ELF binaries of PicoGUI are usually around 100KB. This includes the server, fonts, and all other vital data. Many things can be enabled or disabled at compile-time, affecting the size. Themes' size are mainly dependent on any bitmaps they contain. They usually range from about 300 bytes to hundreds of kilobytes. A typical theme like the Aqua theme featured some of the screenshots is about 20KB. This is expected to decrease when compressed bitmaps are implemented. The client library used by PicoGUI applications) is about 1000 lines of code, and compiles to about 6K.
Memory footprint
Like PicoGUI's CPU usage, much of its memory usage is dependant on the video driver in use. The memory usage of the PicoGUI server itself is easy to measure, however. Immediately after starting it up, with no theme loaded, it uses 5K of memory (much of this is the buffer for the mouse cursor). With no theme, and a demo application it uses almost 13K of memory. With the demo app and the Aqua theme loaded, it uses 42K of memory. Much of this memory is allocated in very small (12 to 50 byte) chunks, so actual mileage may vary until I implement a heap for the small reusable structures. As always, more optimization is planned.
Screen real-estate
PicoGUI's themes are more than an afterthought to make the screen pretty, they are an integral part of PicoGUI that can be used to customize the size, shape, and appearance of objects to the application or screen geometry. PicoGUI has no overlapping windows, instead each application occupies a resizable "panel" that sticks to the edge of the screen and to other applications. This part of PicoGUI isn't finished yet, but hopefully it will conserve screen space while still allowing full multitasking with ease. For dialog boxes, messages, and menus, PicoGUI supports layered modal popup boxes.
 |
|
|
7 Advantages of D2D Backup
For decades, tape has been the backup medium of choice. But, now, disk-to-disk (D2D) backup is gaining in favor. Learn why you should make the move in this whitepaper.
4 Legal Reasons to Control Internet Access
The Internet is obviously a valuable resource for many organizations. However, many are exposed to legal liability concerns because they fail to control Internet access. Learn if you're safe in this white paper.
Rapidly Resolve J2EE Application Problems
Whether you are in the process of building J2EE applications or have J2EE applications already running in production, you must ensure that they deliver the expected ROI. Learn how in this white paper.
Load Testing 2.0 for Web 2.0
There are many unknowns in stress testing Web 2.0 applications. Find out how to test the performance of Web 2.0 in this white paper.
Build Better Games Online
For the game infrastructure providers, life is complex. Making money from games has become more complicated. Why? Find out in this white paper.
Building a Virtual Infrastructure from Servers to Storage
This white paper discusses the virtual storage solutions that reduce cost, increase storage utilization, and address the challenges of backing up and restoring Server environments.
Gaining Faster Wireless Connections with WiMAX
Welcome to what is quickly becoming the hyperconnected world where anything that would benefit from being connected to the network will be connected. Learn more in this white paper.
Is Your Desktop a Security Threat?
The new wave of sophisticated crimeware not only targets specific companies, but also targets desktops and laptops as backdoor entryways into those business’ operations and resources. Learn how to stay safe in this white paper.
Increasing SAN Reliability by 100 Percent
Storage area networks (SAN) are a strong part of storage plans. Learn how to increase your reliability and uptime by 100 percent in this case study.
|
|
|
Got a HOT tip?
please tell us!
Click here for a profile of each sponsor:
|
Check out the latest Linux powered...
|
 |
|
|
|
Also visit our sister site:
Sign up for LinuxDevices.com's...
news feed
|
|