From 45bf4f0bb9480092432631ad15cfa62b1d2f6016 Mon Sep 17 00:00:00 2001 From: slava Date: Sat, 14 Oct 2006 01:45:55 +0000 Subject: [PATCH] Remove manual menu bar construction code --- library/ui/cocoa/load.factor | 1 - library/ui/cocoa/menu-bar.factor | 143 ------------------------------- library/ui/cocoa/ui.factor | 3 +- 3 files changed, 1 insertion(+), 146 deletions(-) delete mode 100644 library/ui/cocoa/menu-bar.factor diff --git a/library/ui/cocoa/load.factor b/library/ui/cocoa/load.factor index e8f54629c8..73c470f2f5 100644 --- a/library/ui/cocoa/load.factor +++ b/library/ui/cocoa/load.factor @@ -12,7 +12,6 @@ PROVIDE: library/ui/cocoa { "view-utils.factor" "window-utils.factor" "dialogs.factor" - "menu-bar.factor" "services.factor" "ui.factor" } { diff --git a/library/ui/cocoa/menu-bar.factor b/library/ui/cocoa/menu-bar.factor deleted file mode 100644 index c947c927a9..0000000000 --- a/library/ui/cocoa/menu-bar.factor +++ /dev/null @@ -1,143 +0,0 @@ -! Copyright (C) 2005, 2006 Kevin Reid. -! See http://factorcode.org/license.txt for BSD license. -USING: cocoa compiler gadgets gadgets-workspace gadgets-help -gadgets-listener kernel memory objc objc-classes sequences -strings words io help ; -IN: cocoa - -! ------------------------------------------------------------------------- - -GENERIC: to-target-and-action ( spec -- target action ) - -M: f to-target-and-action f swap ; -M: string to-target-and-action f ; -M: word to-target-and-action unit to-target-and-action ; -M: quotation to-target-and-action - "perform:" swap ; - -: ( title -- menu ) - NSMenu -> alloc - swap -> initWithTitle: - -> autorelease ; - -: set-main-menu ( menu -- ) NSApp swap -> setMainMenu: ; - -: ( title action equivalent -- item ) - >r >r >r - NSMenuItem -> alloc - r> - r> dup [ sel_registerName ] when - r> - -> initWithTitle:action:keyEquivalent: -> autorelease ; - -: make-menu-item ( title spec -- item ) - to-target-and-action >r swap dup - r> -> setTarget: ; - -: submenu-to-item ( menu -- item ) - dup -> title CF>string f "" dup - rot -> setSubmenu: ; - -: add-submenu ( menu submenu -- ) - submenu-to-item -> addItem: ; - -: and-modifiers ( item key-equivalent-modifier-mask -- item ) - dupd -> setKeyEquivalentModifierMask: ; - -: and-alternate ( item -- item ) - dup 1 -> setAlternate: ; - -: and-option-equivalent-modifier 1572864 and-modifiers ; - -! ------------------------------------------------------------------------- - -DEFER: described-menu - -! { } => separator - -! { { ... } } or -! { { ... } modify-quotation } => submenu as described in inner sequence - -! { title action equivalent } or -! { title action equivalent modify-quotation } => item - -! this is a mess -: described-item ( desc -- menu-item ) - dup length 0 = [ - drop NSMenuItem -> separatorItem - ] [ - dup first string? [ - [ first3 swap make-menu-item ] keep - dup length 4 = [ fourth call ] [ drop ] if - ] [ - [ first described-menu ] keep - dup length 2 = [ second call ] [ drop ] if - submenu-to-item - ] if - ] if ; - -: and-described-item ( menu desc -- same-menu ) - described-item dupd -> addItem: ; - -: described-menu ( { title items* } -- menu ) - [ first ] keep - 1 tail [ and-described-item ] each ; - -: and-described-submenu ( menu { title items* } -- menu ) - described-menu dupd add-submenu ; - -! ------------------------------------------------------------------------- - -: menu-run-file ( -- ) - open-panel [ listener-run-files ] when* ; - -: default-main-menu - { - "" - { { - "Factor" - ! About goes here - ! Preferences goes here - { { - "Services" - } [ NSApp over -> setServicesMenu: ] } - { } - { "Hide Factor" "hide:" "h" } - { "Hide Others" "hideOtherApplications:" "h" [ and-option-equivalent-modifier ] } - { "Show All" "unhideAllApplications:" "" } - { } - { "Quit" "terminate:" "q" } - } [ NSApp over -> setAppleMenu: ] } - { { - "File" - { "New Workspace" [ workspace-window drop ] "n" } - { "Run..." menu-run-file "o" } - { } - { "Save Image" save "s" } - } } - { { - "Edit" - { "Undo" "undo:" "z" } - { "Redo" "redo:" "Z" } - { } - { "Cut" "cut:" "x" } - { "Copy" "copy:" "c" } - { "Paste" "paste:" "v" } - { "Delete" "delete:" "" } - { "Select All" "selectAll:" "a" } - ! Find, Spelling, and Speech submenus go here - } } - { { - "Window" - { "Close" "performClose:" "w" } - { "Zoom" "performZoom:" "" } - { "Minimize" "performMiniaturize:" "m" } - { "Minimize All" "miniaturizeAll:" "m" [ and-alternate and-option-equivalent-modifier ] } - { } - { "Bring All to Front" "arrangeInFront:" "" } - } [ NSApp over -> setWindowsMenu: ] } - { { - "Help" - { "Factor Documentation" [ "handbook" help-gadget call-tool ] "?" } - } } - } described-menu set-main-menu ; diff --git a/library/ui/cocoa/ui.factor b/library/ui/cocoa/ui.factor index e7a455a517..0b06024e6d 100644 --- a/library/ui/cocoa/ui.factor +++ b/library/ui/cocoa/ui.factor @@ -28,8 +28,7 @@ hashtables kernel memory namespaces objc sequences errors freetype ; reset-callbacks install-app-delegate register-services - init-clipboard - default-main-menu ; + init-clipboard ; : rect>NSRect dup world-loc first2 rot rect-dim first2 ; -- 2.34.1