Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| pmcgui [2007/07/13 17:06] – MathieuPrevot | pmcgui [2008/06/17 21:37] (current) – converted to 1.6 markup 127.0.0.1 | ||
|---|---|---|---|
| Line 10: | Line 10: | ||
| Management / welcome screen: | Management / welcome screen: | ||
| - | The user associates PMCs (measurements) and processes. A set of allowed measurements i.e. according to the CPU - will be proposed to the user. Target processes can be selected by mouse. | + | The user associates PMCs (measurements) and processes. A set of allowed measurements i.e. according to the CPU - will be proposed to the user. Target processes can be selected by mouse. |
| Display/ | Display/ | ||
| Line 17: | Line 17: | ||
| ==== Implementation ==== | ==== Implementation ==== | ||
| - | It's mostly in python and c, and is event driven (asynchronous). The GUI itself use wxPython. The program use %%FreeBSD%% specific and non %%FreeBSD%% specific system calls. A makefile generate a quick and dirty python module to pmc(3). It can be a good idea to simulate // | + | It is committed with the Enlightenment 0.17 libraries, that are BSD licensed. Lastest sources |
| - | A port is not done yet, but you can use '' | + | **cvs -z3 -d : |
| - | A main event loop [G] manage user interface events (mouse and keyboard events) and other workers. One thread [S] get every second the state of the system, eg active processes that can be bound to. One thread [P] get pmc data. One thread [V] build images every 1/25s. | + | The following APIs can be found in the directory freshly created e17/libs: |
| - | [G] can create or kill workers, but have readonly access to the data they generate. [V] have readonly access to [S] and [P] generated data. | + | |
| - | ==== Next week schedule ==== | + | * Imlib2 |
| + | * Eet | ||
| + | * Evas | ||
| + | * Ecore | ||
| + | * Edje | ||
| + | * Epeg | ||
| + | * Epsilon | ||
| + | * Ewl | ||
| + | * Etk | ||
| + | * Emotion | ||
| + | * Engrave | ||
| + | * Efreet | ||
| - | | + | However **Ecore** and **Evas** are the only libraries necessary to implement a UI. **Edje** is a theming library. It combines complex groups of evas objects into a single evas ‘smart object’. This Edje_Object can be placed on the canvas |
| - | | + | **Evas** |
| - | * Double buffering | + | Evas is a canvas library that handles all the low level graphics work. Rather than painting pixels yourself, you simply define a set of Evas_Objects such as rectangles, images and gradients. Tell Evas where you want these object to be located, set their color, transparency and stacking, and Evas does all the calulating to blend these together into a single image, ready for display |
| - | The GUI loop will naturally grow as other parts of the program | + | **Ecore** |
| + | |||
| + | Ecore is really a set of small libraries. It handles a lot of the guts of the EFL; things like Events, Timers and IPC. It also includes Ecore_Evas, which wraps creation of an Evas and a window to put it in into a simple API. | ||
| + | |||
| + | In e17/apps several applications can be found but many tricks and patches | ||
| + | |||
| + | ===== How you can install and test the user interface ===== | ||
| + | |||
| + | Download the package (not yet a port) at ?, build and install the UI by: | ||
| + | |||
| + | ../ | ||
| + | |||
| + | To allow the UI to work,you need the following ports: | ||
| + | |||
| + | and you need the following kernel configuration: | ||
| + | |||
| + | Optionally, you can also have: | ||
| + | |||
| + | ===== How you can help ===== | ||
| + | |||
| + | First, suggestions | ||
| + | Many things need to be done yet. Find here a TODO list and ideas for your involvement. | ||
| + | |||
| + | * make a port | ||
| + | |||
| + | * update dependencies, | ||
| + | |||
| + | * make a documentation | ||
| + | |||
| + | * ... | ||
| + | |||
| + | and: | ||
| + | |||
| + | * test UI schemes, provide feedback and, suggest new schemes | ||
| + | |||
| + | * report bugs | ||