A while back Aleksander Andrejevic began working on a NTVDM implementation for ReactOS to support 16bit programs. This was one of the more often requested features by the community, which was met with some ambivalence by the developers themsleves since it entailed a significant amount of work. Aleksander then appeared and instead of simply asking for the feature, rolled up his sleeve to do the actual work. Since then NTVDM has made significant progress and other developers like Hermès Bélusca-Maïto and community member Vampyre have joined in to help.
I began the week by testing the progress of the start menu in ReactOS.
You may remember this screenshot from last weekend’s report. In it, you can see the results of implementing vertical menus in a different, more documented, way. This method requires more work to be done per item, to make them all wrap into a new row, but it is supported by the Wine toolbar implementation ReactOS uses.
The ReactOS Project recently received a proposal to adopt "Open your Windows to Freedom" as the official project motto, with the proposed motto itself having been selected in a self-organized vote by the community. After internal discussions between the team developers and other administrative members, the Project has chosen to reject the proposal. The following outlines the reasons.
This week’s work began by improving the look&feel of the start menu so that it matches the Windows start menu better.
The first step was to improve the look of the menu: This included positioning, colours, dropdown arrows, icon sizes, etc.
I continued by trying to improve the feel of the menu: Hot-tracking behaviours, keyboard navigation, etc. The keyboard navigation keeps resisting me somewhat, though, as it tends to glitch when using the left/right arrow keys to open and close submenus, but moving up and down seems to behave as expected.
The week began by implementing the functionality needed to handle clicking on menu items. This involved sending a callback notification for the currently selected item, asking the callback to execute the appropriate action of the item.
Some of the items are not meant to be clicked on and are supposed to show a submenu instead. For these items I had to subclass the toolbar windows so that I could add a timer on hover and handle the opening of the submenu in the resulting WM_TIMER event, which would be received by the toolbar, but needed to be handled by my code.