読者です 読者をやめる 読者になる 読者になる

NuでMacのGUIプログラムを作る記事を書きました

lisp

CodeZineNuでMac GUIプログラミング Twitterクライアントを作ってみよう という Nu (Lispの一種) を使って MacGUIプログラムを作る記事を書きました
http://codezine.jp/static/images/article/4976/01.png

上の画像のような、素敵なGUIアプリが Lisp で書けます !! ....続きは CodeZine

(load "Nu:nu")
(load "Nu:cocoa")
(load "Nu:menu")
(load "functions")
(load "twitter")

(class ApplicationDelegate is NSObject
    (ivar (id) tableView
          (id) textField
          (id) timeLines)
          
    (- (void) awakeFromNib is
        (let (theColumn (@tableView tableColumnWithIdentifier:"icon"))
             (theColumn setDataCell:((NSImageCell alloc) initImageCell:nil))))

    (- (void) applicationDidFinishLaunching:(id) sender is
        (set @timeLines (Twitter time-lines))
        (@tableView reloadData)
         )

    (- (void) pushRefreshButton:(id) sender is 
        (set @timeLines (Twitter time-lines))
        (@tableView reloadData)
        )
    
    (- (void) pushPostButton:(id) sender is
        (Twitter post-tweet:(@textField stringValue)))
    
    (- (int) numberOfRowsInTableView:(id) aTableView is
        (@timeLines count))

    (- (id) tableView:(id) aTableView objectValueForTableColumn:(id) aTableColumn row:(int) rowIndex is
        (case (aTableColumn identifier)
            ("icon"  
                ((NSImage alloc) initWithContentsOfURL:
                (NSURL URLWithString:(tl-icon (@timeLines objectAtIndex:rowIndex)))))
            ("name"  (tl-name (@timeLines objectAtIndex:rowIndex)))
            ("text"  (tl-text (@timeLines objectAtIndex:rowIndex)))
            (else "")))

    (- (BOOL) applicationShouldTerminateAfterLastWindowClosed:(id) theApplication is YES)
 )

((NSApplication sharedApplication) setDelegate:(set delegate ((ApplicationDelegate alloc) init)))
((NSApplication sharedApplication) activateIgnoringOtherApps:YES)
(NSApplicationMain 0 nil)