#!/usr/local/bin/newlisp ;; ;; tabs-demo.lsp - demonstrate tabs and icons ;; for 10.6.3 ideprecated gs:table-set-row-number was replaced with gs:table-show-row-number ;;;; initialization (set-locale "C") (load (append (env "NEWLISPDIR") "/guiserver.lsp")) (gs:init) (gs:get-screen) (set 'x (/ (- (gs:screen 0) 450) 2)) (set 'y (/ (- (gs:screen 1) 580) 2)) ;;;; describe the GUI (gs:frame 'TheFrame x y 450 580 "Tabbed Pane Demo") ;; When mapping gs:xxx functions the quote before gs:xxx is important ;; so the functions get executed woth gs as the current context which makes ;; the names from wigets be prefixed with their proper context name. (map 'gs:panel '(first second third icons)) (gs:set-color 'first 1 0 0) (gs:set-color 'second 0 1 0) (gs:set-color 'third 0 0 1) (gs:set-color 'icons 0 0 1 0.1) (gs:set-flow-layout 'icons "center" 30 50) (gs:label 'new "new") (gs:label 'edit "edit") (gs:label 'cut "cut") (gs:label 'copy "copy") (gs:label 'paste "paste") (gs:label 'folder "folder") (gs:label 'openfolder "openfolder") (gs:label 'save "save") (gs:label 'info "info") (gs:label 'run "run") (gs:label 'restart "restart") (gs:label 'stop "stop") (gs:label 'fontbook "fontbook") (gs:label 'clear "clear") (gs:label 'search "search") ;; if an icon path is prefixed with /local/ it means that this ;; icon is built-in to guiserver.jar. Other paths to user ;; supplied external icon images can be used instead (gif, jpg, png) (gs:set-icon 'new "/local/new32.png") (gs:set-icon 'edit "/local/edit32.png") (gs:set-icon 'cut "/local/cut32.png") (gs:set-icon 'copy "/local/copy32.png") (gs:set-icon 'paste "/local/paste32.png") (gs:set-icon 'folder "/local/folder-closed32.png") (gs:set-icon 'openfolder "/local/folder-opened32.png") (gs:set-icon 'save "/local/save32.png") (gs:set-icon 'info "/local/info32.png") (gs:set-icon 'run "/local/run32.png") (gs:set-icon 'restart "/local/restart32.png") (gs:set-icon 'stop "/local/stop32.png") (gs:set-icon 'fontbook "/local/font-book32.png") (gs:set-icon 'clear "/local/clear32.png") (gs:set-icon 'search "/local/search32.png") ; an alternative way to make labels with icons (gs:image-label 'newLISP "/local/newLISP32.png") (gs:set-text 'newLISP "newLISP") (gs:image-label 'newLISPlogo "/local/newLISP128.png") (gs:add-to 'icons 'new 'edit 'cut 'copy 'paste 'folder 'openfolder 'save) (gs:add-to 'icons 'info 'run 'restart 'stop 'fontbook 'clear 'search 'newLISP 'newLISPlogo) (gs:tabbed-pane 'MyTabs 'tabs-action "top" 'first "first tab" 'second "second tab" 'third "third tab") (gs:insert-tab 'MyTabs 'icons "icons tab" 3 "/local/newLISP16.png") ;(gs:remove-tab 'MyTabs 0) ; just for test (gs:table 'Table 'gs:no-action "A" "B" "C") (gs:table-show-row-number 'Table true) (gs:table-add-row 'Table "1 A" "1 B" "1 C") (gs:table-add-row 'Table "2 A" "2 B" "2 C") (gs:table-add-row 'Table "3 A" "3 B" "3 C") (gs:table-add-row 'Table "4 A" "4 B" "4 C") (gs:insert-tab 'MyTabs 'Table "Table tab" 4) (gs:request-focus 'MyTabs 3) (gs:add-to 'TheFrame 'MyTabs) (gs:set-visible 'TheFrame true) ;;;; define actions (define (tabs-action id cid tab) (println id " " cid " " (base64-dec tab))) ;;;; listen for incoming action requests and dispatch (gs:listen) ;; eof