Hi, Currently, the menu system is a little unorganized and difficult to extend. My goal of the redesign are:
Modular Split code into small modules, each module implement a specific function, modules uses predefined interface to call each other. Extensible The core of the menu system is components, which can be extended easily. Components can be written in C or lua. Configurable The menu system can be configured easily by end users. The layout of screen can be configured with xml file, while the window styles is configured with css file. Interface are exported to C and lua so that you can configure the menu system dynamically. I suggest reorganize the menu system based on four layers: Display layer This is the lowest layer and have already been implemented. There are two display modules, one for text mode and one for graphics mode. Windows layer The windows layer build on top of display layer, it implement windows creation and manipulation. The windows layer uses css to configure the look and feel of windows, it also handle the difference between text mode and graphics mode so that components can be written regardless of the underlying display system. Component layer This is the core of menu system. This layer implements the logic of gui components, and rely on the windows layer or display layer for the actual rendering. Menu layer This is the lop layer. The layer is actually quite simple, it creates the components based on xml and link the various parts together. -- Bean gitgrub home: http://github.com/grub/grub/ my fork page: http://github.com/bean123/grub/ _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/mailman/listinfo/grub-devel