XMenu is a menu system for Game Maker, written completely in GM's own language GML. The menu system resembles the light office flat style menus very closely. Features of xmenu include things such as unlimited submenus, icons, separators shortcut texts and also easily customizable colors and support for any font.
Xmenu only has support for GM 6 and is not compatible with previous versions due to differences in the GM's drawing engine. There is no support for previous versions of GM, so use of latest version is recommended.
XMenu is distributed under Free BSD license. So you are allowed to use i freely even on your commercial products, as long as my work is properly credited.
XMenu is quite advanced menu system, as it has a lot of different features. Here I will give a short description of all things that XMenu is able to offer you for your games and programs, or whatever you ever plan to create with Game Maker.
One of the main features, of course, is that it's a menu system completely written in GML. There is no need for any external DLLs, and thus it works completely in unregistered versions of Game Maker. The menus were originally designed to be pixel precise with PHPEdit's menus. Not only does it look the same, the menus functionality tries to replicate it as much as possible. It's possible to choose menu items by clicking on them, or by holding button all the time, and then releasing it. Also, there is small delay on opening and closing sub menus to make it easier to use.
The menus can have 3 different kinds of items. Sub menus, selectedable items and seprators. Seprators are small lines used in the menus to make them more organized to use. Each selectable item also has 2 addinational fields in addition to the text that reads there. They can have an icon and shorcut text associated with them. Shortcut text is simply a text that is aligned in right side of the menu (which is often used to indicate shortcut). Even though there is no built in system for having shortcuts, implementing such system yourself would not be too hard. Any selectable item can be also disabled to prevent user from clicking on them (and giving visual clue of disabled item).
Tthe menu also supports sub menus inside the menus. These are menus that open next to the opened menu once you have placed your cursor over them. It is possible to link unlimited amount of sub menus, because menus are linked by their ID numbers (making it possible for menu to link itself). Also, for ease of use all the mouse left clicks on the menu are automatically captured so that they do not interfere with rest of the game while the menu is open.
The menu also isn't restricted to use of one single font. You can use any font style or size, and all the widths and heights are calculated from those. Some optimization considerations have also been done. The menu precalculates most of it's width during setting the menu up, so that the menu works very fast during runtime.