EWorkPanel 2.0 - planned features
Vedran's document for new eworkpanel, copied from temporary wiki.
Applets
- eWorkPanel 2.0 will be modular in nature. All components ("applets") will exist in separate folders within eworkpanel/ tree. By customizing makefile user will be able to switch off some applets and reduce eWorkPanel memory/disk footprint/startup time.
- We will not develop applets as separate XEMBED applications (as other desktops do) because this results in lots of processes created at startup. The downside is that a bug in applet can crash whole panel, but we believe that bugs will be avoided through some smart policies outlined below (and centralized development will eventually result in better code).
- Modules will be developed as C++ classes which means that a developer can inherit existing module to create their own module.
- Core modules of eWorkPanel will be PanelButton and PanelMenu. These are generic classes that most other applets inherit.
- PanelButton can execute a program, pop-up a PanelMenu or perform custom action (child classes).
- PanelMenu can be read from files ("EDE-format" menu). For this we will use the former format of "Programs" menu - i.e. .desktop files in directories. This format is well defined, works well and doesn't require external XML library. Also we already have a functional menu editor for this (it just needs some GUI redesign).
- In addition, there will be defined a number of special menus such as: XDG programs menu, favourite programs, recent documents, filesystem browser etc. EDE-format menus can include these special menus as submenu or inline, and also user can add panel buttons to invoke these menus.
- Other applets that should be designed are: taskbar, system tray, clock, desktop chooser (the one like Gnome and KDE - classic desktop chooser can be a subclass of PanelMenu).
Layout
- It should be possible to place eWorkPanel along top and bottom edge of screen. Placing eWorkPanel to left or right edge will not be done because that would look and work ugly, and it's much better to develop a fork of eWorkPanel to achieve needed functionality.
- It should be possible to change height within reasonable limits (e.g. 20-50 pixels). All eWorkPanel items should resize correspondingly - i.e. 16x16 icons will be replaced with 24x24, 32x32 or 48x48 as needed, taskbar and tray should go into two rows at certain height etc.
- eWorkPanel can also have customizable width. (? discuss)
- It should be possible to run multiple eWorkPanels at the same time with different config. This way users can have similar thing to KDE/GNOME "child panels" (e.g. menu on top, taskbar on bottom etc.) Placement of panels should account for other running panels as well as MacOS-style menus in fltk2.
Patches and Forks
- The policy for including user-contributed applets will be: the code will be accepted into ede tree but will not be compiled by default (to reduce bloat).
- We will not accept new features into eWorkPanel. eWorkPanel is a core component of EDE that every user *needs* to use their desktop. For this reason it should be kept as small as possible. We encourage users to develop custom "workpanels" including their custom applets as well as redesign (e.g. OSX-style dockers and such). Such panels will be included in contrib tree.
