//
// M e n u . s w i f t
// R S w i t c h
//
// C r e a t e d b y h r b r m s t r o n 8 / 2 4 / 1 9 .
// C o p y r i g h t © 2 0 1 9 B o b R u d i s . A l l r i g h t s r e s e r v e d .
//
import Foundation
import Cocoa
extension AppDelegate : NSMenuDelegate {
func menuWillOpen ( _ menu : NSMenu ) {
if ( menu != self . statusMenu ) { return }
// c l e a r t h e m e n u
menu . removeAllItems ( )
// a d d s e l e c t i o n t o o p e n f r a m e w o r k s d i r i n F i n d e r
menu . addItem ( NSMenuItem ( title : " Open R Frameworks Directory " , action : #selector ( openFrameworksDir ) , keyEquivalent : " " ) )
menu . addItem ( NSMenuItem . separator ( ) )
menu . addItem ( NSMenuItem ( title : " Current R Version: " , action : nil , keyEquivalent : " " ) )
// p o p u l a t e i n s t a l l e d v e r s i o n s
RVersions . populateRVersionsMenu ( menu : menu , handler : #selector ( handleRSwitch ) )
// A d d i t e m s t o d o w n l o a d l a t e s t r - d e v e l t a r b a l l a n d l a t e s t m a c O S d a i l y
menu . addItem ( NSMenuItem . separator ( ) )
let rdevelItem = NSMenuItem ( title : NSLocalizedString ( " Download latest R-devel tarball " , comment : " Download latest tarball item " ) , action : self . rdevel_enabled ? #selector ( download_latest_tarball ) : nil , keyEquivalent : " " )
rdevelItem . isEnabled = self . rdevel_enabled
menu . addItem ( rdevelItem )
let rstudioItem = NSMenuItem ( title : NSLocalizedString ( " Download latest RStudio daily build " , comment : " Download latest RStudio item " ) , action : self . rstudio_enabled ? #selector ( download_latest_rstudio ) : nil , keyEquivalent : " " )
rstudioItem . isEnabled = self . rstudio_enabled
menu . addItem ( rstudioItem )
menu . addItem ( NSMenuItem . separator ( ) )
// A d d i t e m s t o o p e n v a r i o u s R f o r m a c O S p a g e s
BrowseMenuAction . populateWebItems ( menu : menu )
menu . addItem ( NSMenuItem . separator ( ) )
// A d d l i n k s t o l o c a l c o p i e s o f t h e R M a n u a l s
BrowseMenuAction . populateLocalRManualsItems ( menu : menu )
// A d d l i n k s t o f r e e R o n l i n e b o o k s
BrowseMenuAction . populateRBooksItems ( menu : menu )
// A d d r u n n i n g a p p s
populateRunningApps ( menu : menu )
// A d d l a u n c h e r s
populateLaunchers ( menu : menu )
// A d d a C h e c k f o r u p d a t e
menu . addItem ( NSMenuItem . separator ( ) )
menu . addItem ( NSMenuItem ( title : " Check for update… " , action : #selector ( checkForUpdate ) , keyEquivalent : " " ) )
// A d d a n A b o u t i t e m
menu . addItem ( NSMenuItem . separator ( ) )
menu . addItem ( NSMenuItem ( title : " About RSwitch… " , action : #selector ( about ) , keyEquivalent : " " ) )
menu . addItem ( NSMenuItem ( title : " RSwitch Help… " , action : #selector ( rswitch_help ) , keyEquivalent : " " ) )
// A d d a Q u i t i t e m
menu . addItem ( NSMenuItem . separator ( ) )
menu . addItem ( NSMenuItem ( title : " Quit " , action : #selector ( NSApp . terminate ) , keyEquivalent : " q " ) )
}
}