summaryrefslogtreecommitdiff
path: root/examples/gui/menutest
diff options
context:
space:
mode:
authorgraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-01-04 15:01:00 +0000
committergraemeg <graemeg@ae50a9b5-8222-0410-bf8d-8a13f76226bf>2008-01-04 15:01:00 +0000
commitc780e72b9f7f6d7eb39fcee5b551e4b285f58106 (patch)
tree601d04f58faf50b83b640a826975be85cde06c8f /examples/gui/menutest
parentb742ef33b0d8657e556e1182bccd89c224bff844 (diff)
downloadfpGUI-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.lpr34
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;