From 7d2dc9b9c74674252501460f340e3fd44149bbcf Mon Sep 17 00:00:00 2001 From: Armando Rivera Date: Tue, 3 Aug 2021 22:25:49 -0400 Subject: [PATCH] Added new 'editor' example demonstrating new Edit and Format autogenerated menus --- examples/editor.nim | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 examples/editor.nim diff --git a/examples/editor.nim b/examples/editor.nim new file mode 100644 index 0000000..cc28c34 --- /dev/null +++ b/examples/editor.nim @@ -0,0 +1,53 @@ +import Cocoa / [NSWindow, + NSFunctions, + NSMenu, + NSTextedit, + NSOpenDialog +] + +const + winStyle = NSWindowStyleMaskTitled or + NSWindowStyleMaskClosable or + NSWindowStyleMaskMiniaturizable or + NSWindowStyleMaskResizable + + width = 800 + height = 600 + +type + GUI = object + window: ID + editor: ID + +var self: GUI + +proc openClicked(sender:ID) {.cdecl.} = + let fName = newOpenDialog(self.window, "nim") + if fName.len > 0: + let fText = readFile($fName) + self.editor.text = fText + +proc setupMenus() = + var f = newMenu("File") + newMenuItem(f, "New","n",nil) + newMenuItem(f, "Open...","o", openClicked) + newMenuSeparator(f) + newMenuItem(f, "Close","w",nil) + newMenuItem(f, "Save","s",nil) + newMenuItem(f, "Save As...","S",nil) + newMenuSeparator(f) + newMenuItem(f, "Page Setup...","P",nil) + newMenuItem(f, "Print...","p",nil) + + newEditMenu() + newFormatMenu() + + +Cocoa_Init() + +self.window = newWindow("Template", width, height, winStyle) +self.editor = newTextEdit(self.window,"", 20, 20, width-40, height-40) +setupMenus() + +Cocoa_Run(self.window) +