2001-01-01 Emil Brink Menus in gentoo WARNING: (this is incomplete: don't read it!) 1. INTRODUCTION This little document contains some thoughts about how menus are handled in gentoo. It was created for version 0.11.16, which is the first version of gentoo to include user-configurable menus. This document serves two purposes: it provides a place for me to organize my thoughts about the menu implementation, and it hopefully makes it easier to understand why the menus in gentoo work as they do. 2. THE ORIGINAL MENU MODEL My original plan for the menu system were to implement a simple, yet flexible and pretty general solution. In that original model, a "menu" is a named list of menu items. An item is either a simple labeled command envocation, or a submenu. There are two ways in which a menu is made available in the user interface: it can be attached to a command button, in which case right-clicking the button opens up the menu. A menu can also be opened through the legacy MenuPopup command, which takes the name of a menu and pops it up under the mouse pointer. 2.1 The Problem With the Original Model The problem created by the model described above is that is easy to use the same menu in several places; for example, one could attach a menu to a button, and then run a MenuPopup command on the very same menu. A menu must be mapped onto a GtkWidget data structure for GTK+ to handle, and then the issue of ownership enters the equation. 3. THE SOLUTION Um, it's in the code.