Guiserver.lsp
guiserver.lsp は newLISP で GUI 生成する guiserver.jar にインターフェス接続するためのモジュール。 ようするに newLISP で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。
- GUIServer.lsp の説明は↓に書いてある。
 - http://www.newlisp.org/guiserver/
 - http://www.newlisp.org/guiserver/guiserver.lsp.html
 
以下適当に翻訳。
newLISP GUI アプリケーションのアーキテクチャ
newLISPのGUIアプリケーションは4つの部分から構成されている。
- 初期化 - newLISP-GS guiserver.jar との通信を初期化するのに1回のファンクションコールが必要。
 - ウィジェットの構築 - このステップでは、ウインドウ、ボタン、テキストフィールド、その他、全ての GUIの外観が記述されること。newLISP newLISP-GS は、広範囲にわたる異なるコントロールウィジェットを提供する。
 - イベント・アクションの定義 - このステップでは、ボタン・プッシュ、キーストローク、マウス-移動、その他の結果としてGUIから返されるイベントに反応するためにの機能を定める.. 情報をユーザー、ポップアップ対話その他と交換するために、これらのイベント・アクションは、多くの命令をGUIに送り返す。
 - イベントのリスニング - newLISPプログラムが、定義されたイベントのアクションをループしながら待っている。このステップは1回のファンクションコールのみ必要。
 
例 :
#!/usr/bin/newlisp ; ウィンドウ表示するだけの最小サンプル ;;;; initialization (set-locale "C") (load (append (env "NEWLISPDIR") "/guiserver.lsp")) (gs:init) ;;;; GUIのセット (gs:frame 'window 0 0 400 400 "ウィンドウ" true) ; ウィンドウのサイズと位置 ;;;; アクションのセット ;;; リスニング開始 (gs:listen) ;; eof
ボタン・デモ
     #!/usr/bin/newlisp
     ; button-demo.lsp - demonstrate the button control
      
     ; initialization(初期化)
     (load (append (env "NEWLISPDIR") "/guiserver.lsp")) 
     (gs:init) 
      
     ; describe the GUI(wigetの構築)
     (gs:frame 'ButtonDemo 100 100 400 300 "Button demo")
     (gs:set-resizable 'ButtonDemo nil)
     (gs:panel 'ColorPanel 360 200)
     (gs:set-color 'ColorPanel (random) (random) (random))
     (gs:button 'aButton 'abutton-action "color")
     (gs:set-flow-layout 'ButtonDemo "center" 2 15)
     (gs:add-to 'ButtonDemo 'ColorPanel 'aButton)
     (gs:set-visible 'ButtonDemo true)
      
     ; define actions(アクションの定義)
     (define (abutton-action id)
         (gs:set-color 'ColorPanel (random) (random) (random)))
      
     ; listen for incoming action requests and dispatch(リスニング開始)
     (gs:listen)
      
     ; eof 
GUIとグラフィックスのための関数
初期化とアプリケーションのセットアップ
コンテナ
ラベル
コントロールウィジェット
- button
 - check-box
 - combo-box
 - image-button
 - list-box
 - menu
 - menu-popup
 - menu-item
 - menu-item-check
 - progress-bar
 - slider
 - text-area
 - text-field
 - text-pane
 
コンテナ内のコンポーネントの配置
コマンドの要約
- add-list-item
 - add-separator
 - add-to
 - append-text
 - check-event
 - clear-list
 - clear-text
 - copy-text
 - cut-text
 - destroy-shell
 - disable
 - dispose
 - dispose-splash
 - enable
 - eval-shell
 - find-text
 - frame-closed
 - get-fonts
 - get-bounds
 - get-font-metrics
 - get-screen
 - get-selected-text
 - get-text
 - get-text-position
 - get-version
 - goto-text
 - insert-list-item
 - insert-tab
 - insert-text
 - layout
 - load-text
 - no-action
 - paste-text
 - redo-text
 - remove-from
 - remove-list-item
 - remove-tab
 - request-focus
 - run-shell
 - select-list-item
 - select-text
 - set-accelerator
 - set-background
 - set-bevel-border
 - set-border-layout
 - set-caret
 - set-caret-color
 - set-color
 - set-cursor
 - set-echo-char
 - set-editable
 - set-flow-layout
 - set-font
 - set-foreground
 - set-grid-layout
 - set-icon
 - set-look-and-feel
 - set-resizable
 - set-pressed-icon
 - set-selected
 - set-size
 - set-selection-color
 - set-syntax
 - set-syntax-colors
 - set-tab-size
 - set-text
 - set-titled-border
 - set-tool-tip
 - set-trace
 - set-utf8
 - set-value
 - set-visible
 - undo-text
 - undo-enable
 
テーブル UI
- table
 - table-add-column
 - table-add-row
 - table-get
 - table-get-cell
 - table-get-size
 - table-set-cell
 - table-set-column
 - table-set-row-number
 
スペシャルダイアログ
2D グラフィック関数
- color-tag
 - delete-tag
 - draw-arc
 - draw-circle
 - draw-ellipse
 - draw-image
 - draw-line
 - draw-path
 - draw-polygon
 - draw-rect
 - draw-round-rect
 - draw-text
 - export
 - fill-arc
 - fill-circle
 - fill-ellipse
 - fill-polygon
 - fill-rect
 - fill-round-rect
 - hide-tag
 - move-tag
 - reorder-tags
 - rotate-tag
 - save-text
 - scale-tag
 - shear-tag
 - show-popup
 - show-tag
 - set-canvas
 - set-paint
 - set-rotation
 - set-scale
 - set-stroke
 - set-translation
 - set-anti-aliasing
 - translate-tag
 - update
 
イベント
- key-event
 - mouse-clicked
 - mouse-dragged
 - mouse-event
 - mouse-moved
 - mouse-pressed
 - mouse-released
 - mouse-wheel
 - window-closed
 - window-resized
 
サウンドと MIDI API
- add-track
 - channel-bend
 - get-instruments
 - instruments
 - midi-bpm
 - midi-close
 - midi-init
 - midi-patch
 - mute-track
 - play-note
 - play-sequence
 - save-sequence
 - stop-sequence
 - play-sound
 
定義済みの色 RGBコンポーネントのリスト
ビルトインアイコンとイメージ
- Usage: /local/newLISP128.png
 - clear-down32.png
 - clear32.png
 - copy-down32.png
 - copy32.png
 - cut-down32.png
 - cut32.png
 - dotgray16.png
 - dotgray32.png
 - dotgreen16.png
 - dotgreen32.png
 - dotred16.png
 - dotred32.png
 - dotyellow16.png
 - dotyellow32.png
 - edit-down32.png
 - edit32.png
 - folder-closed-down32.png
 - folder-closed32.png
 - folder-opened-down32.png
 - folder-opened32.png
 - font-book-down32.png
 - font-book32.png
 - green10.png
 - info-down32.png
 - info32.png
 - new-down32.png
 - new32.png
 - newLISP-down32.png
 - newLISP128.png
 - newLISP16.png
 - newLISP20.png
 - newLISP32.png
 - newLISP64.png
 - newLISPsplashWin.png
 - paste-down32.png
 - paste32.png
 - pressedbutton32.png
 - red10.png
 - restart-down32.png
 - restart32.png
 - run-down32.png
 - run32.png
 - save-down32.png
 - save32.png
 - search-down32.png
 - search32.png
 - stop-down32.png
 - stop32.png