diff options
author | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-01-04 15:01:00 +0000 |
---|---|---|
committer | graemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf> | 2008-01-04 15:01:00 +0000 |
commit | c780e72b9f7f6d7eb39fcee5b551e4b285f58106 (patch) | |
tree | 601d04f58faf50b83b640a826975be85cde06c8f /examples/gui/menutest | |
parent | b742ef33b0d8657e556e1182bccd89c224bff844 (diff) | |
download | fpGUI-c780e72b9f7f6d7eb39fcee5b551e4b285f58106.tar.xz |
* GUI: Moved all MenuItem painting into the Paint event handler.
* GUI: MenuItems OnClick is now triggered on mouse button up (like all other toolkits).
* GUI: Clicking outside a menu while it's open doesn't trigger the OnClick event anymore.
* Examples: Extended the menu example to show when each menu item's OnClick was triggered.
* All the above needs testing under Windows.
Diffstat (limited to 'examples/gui/menutest')
-rw-r--r-- | examples/gui/menutest/menutest.lpr | 34 |
1 files changed, 20 insertions, 14 deletions
diff --git a/examples/gui/menutest/menutest.lpr b/examples/gui/menutest/menutest.lpr index 1ed77135..c95c49de 100644 --- a/examples/gui/menutest/menutest.lpr +++ b/examples/gui/menutest/menutest.lpr @@ -22,6 +22,7 @@ type FHelpSubMenu: TfpgPopupMenu; edit1: TfpgEdit; procedure miExitClicked(Sender: TObject); + procedure miMenuItemSelected(Sender: TObject); public constructor Create(AOwner: TComponent); override; end; @@ -34,6 +35,12 @@ begin Close; end; +procedure TMainForm.miMenuItemSelected(Sender: TObject); +begin + if Sender is TfpgMenuItem then + writeln('Menu clicked: ', TfpgMenuItem(Sender).Text); +end; + constructor TMainForm.Create(AOwner: TComponent); var mi: TfpgMenuItem; @@ -45,29 +52,29 @@ begin // Create top level sub-menus FFileSubMenu := TfpgPopupMenu.Create(self); - FFileSubMenu.AddMenuItem('&Open', 'Ctrl-O', nil); - FFileSubMenu.AddMenuItem('&Save', 'Ctrl-S', nil); - FFileSubMenu.AddMenuItem('S&ave As', 'Ctrl+Shift+S', nil); + FFileSubMenu.AddMenuItem('&Open', 'Ctrl-O', @miMenuItemSelected); + FFileSubMenu.AddMenuItem('&Save', 'Ctrl-S', @miMenuItemSelected); + FFileSubMenu.AddMenuItem('S&ave As', 'Ctrl+Shift+S', @miMenuItemSelected); FFileSubMenu.AddMenuItem('-', '', nil); - FFileSubMenu.AddMenuItem('Save && Reload', '', nil); + FFileSubMenu.AddMenuItem('Save && Reload', '', @miMenuItemSelected); FFileSubMenu.AddMenuItem('-', '', nil); FFileSubMenu.AddMenuItem('&Quit', 'Ctrl-Q', @miExitClicked); FEditSubMenu := TfpgPopupMenu.Create(self); - FEditSubMenu.AddMenuItem('&Cut', 'Ctrl-X', nil); - FEditSubMenu.AddMenuItem('C&opy', 'Ctrl-C', nil); - FEditSubMenu.AddMenuItem('&Paste', 'Ctrl-V', nil); + FEditSubMenu.AddMenuItem('&Cut', 'Ctrl-X', @miMenuItemSelected); + FEditSubMenu.AddMenuItem('C&opy', 'Ctrl-C', @miMenuItemSelected); + FEditSubMenu.AddMenuItem('&Paste', 'Ctrl-V', @miMenuItemSelected); FEditSubMenu.AddMenuItem('-', '', nil); - FEditSubMenu.AddMenuItem('&Spell check', 'F4', nil).Enabled := False; + FEditSubMenu.AddMenuItem('&Spell check', 'F4', @miMenuItemSelected).Enabled := False; FEditSelectSubMenu := TfpgPopupMenu.Create(self); FEditSubMenu.AddMenuItem('Selec&t', '', nil).SubMenu := FEditSelectSubMenu; - FEditSelectSubMenu.AddMenuItem('Select All', '', nil); - FEditSelectSubMenu.AddMenuItem('Select Word', '', nil); - FEditSelectSubMenu.AddMenuItem('Select Line', '', nil); + FEditSelectSubMenu.AddMenuItem('Select All', '', @miMenuItemSelected); + FEditSelectSubMenu.AddMenuItem('Select Word', '', @miMenuItemSelected); + FEditSelectSubMenu.AddMenuItem('Select Line', '', @miMenuItemSelected); FHelpSubMenu := TfpgPopupMenu.Create(self); - FHelpSubMenu.AddMenuItem('&About', 'F12', nil); - FHelpSubMenu.AddMenuItem('Test Russian text -> Òåñò', '', nil); + FHelpSubMenu.AddMenuItem('&About', 'F12', @miMenuItemSelected); + FHelpSubMenu.AddMenuItem('Test Russian text -> Òåñò', '', @miMenuItemSelected); // Create main menu bar FMenuBar := TfpgMenuBar.Create(self); @@ -78,7 +85,6 @@ begin FMenuBar.AddMenuItem('&Disabled', nil).Enabled := False; FMenuBar.AddMenuItem('&Help', nil).SubMenu := FHelpSubMenu; - edit1 := TfpgEdit.Create(self); edit1.SetPosition(10, 70, 100, 24); end; |