「Guiserver.lsp」の版間の差分
(同じ利用者による、間の11版が非表示) | |||
3行目: | 3行目: | ||
ようするに newLISP で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。 | ようするに newLISP で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。 | ||
* GUIServer.lsp | * GUIServer.lsp の説明は↓に書いてある。 | ||
* http://www.newlisp.org/guiserver/ | |||
* http://www.newlisp.org/guiserver/guiserver.lsp.html | |||
== newLISP | 以下適当に翻訳。 | ||
== newLISP GUI アプリケーションのアーキテクチャ == | |||
newLISPのGUIアプリケーションは4つの部分から構成されている。 | newLISPのGUIアプリケーションは4つの部分から構成されている。 | ||
* '''初期化''' - newLISP-GS guiserver.jar | * '''初期化''' - newLISP-GS guiserver.jar との通信を初期化するのに1回のファンクションコールが必要。 | ||
* '''ウィジェットの構築''' - このステップでは、ウインドウ、ボタン、テキストフィールド、その他、全ての | * '''ウィジェットの構築''' - このステップでは、ウインドウ、ボタン、テキストフィールド、その他、全ての GUIの外観が記述されること。newLISP newLISP-GS は、広範囲にわたる異なるコントロールウィジェットを提供する。 | ||
* '''イベント・アクションの定義''' - このステップでは、ボタン・プッシュ、キーストローク、マウス-移動、その他の結果としてGUIから返されるイベントに反応するためにの機能を定める.. 情報をユーザー、ポップアップ対話その他と交換するために、これらのイベント・アクションは、多くの命令をGUIに送り返す。 | * '''イベント・アクションの定義''' - このステップでは、ボタン・プッシュ、キーストローク、マウス-移動、その他の結果としてGUIから返されるイベントに反応するためにの機能を定める.. 情報をユーザー、ポップアップ対話その他と交換するために、これらのイベント・アクションは、多くの命令をGUIに送り返す。 | ||
* '''イベントのリスニング''' - | * '''イベントのリスニング''' - newLISPプログラムが、定義されたイベントのアクションをループしながら待っている。このステップは1回のファンクションコールのみ必要。 | ||
例 : | 例 : | ||
<pre class="brush:autolisp;"> | <pre class="brush:autolisp;"> | ||
#!/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 | |||
</pre> | |||
ボタン・デモ | |||
<pre class="brush:autolisp;"> | |||
#!/usr/bin/newlisp | |||
; button-demo.lsp - demonstrate the button control | |||
; initialization(初期化) | |||
(set-locale "C") | |||
(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 | |||
</pre> | </pre> | ||
[[File:Newlisp-button demo.png|200px|thumb|center|実行イメージ]] | |||
==GUIとグラフィックスのための関数== | ==GUIとグラフィックスのための関数== | ||
<div class="mcol3"> | <div class="mcol3"> | ||
初期化とアプリケーションのセットアップ | |||
* [[init]] | |||
* [[listen]] | |||
* [[check-event]] | |||
コンテナ | |||
* [[dialog (newlisp)|dialog]] | |||
* [[frame]] | |||
* [[menu-bar]] | |||
* [[panel]] | |||
* [[scroll-pane]] | |||
* [[split-pane]] | |||
* [[tabbed-pane]] | |||
* [[tool-bar]] | |||
* [[canvas]] | |||
* [[window]] | |||
ラベル | |||
* [[label]] | |||
* [[image-label]] | |||
コントロールウィジェット | |||
* [[button (newlisp)|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-to]] | |||
コマンドの要約 | |||
* [[add-list-item]] | * [[add-list-item]] | ||
* [[add-separator]] | * [[add-separator]] | ||
* [[add-to]] | * [[add-to]] | ||
* [[append-text]] | * [[append-text]] | ||
* [[check-event]] | * [[check-event]] | ||
* [[clear-list]] | * [[clear-list]] | ||
60行目: | 122行目: | ||
* [[copy-text]] | * [[copy-text]] | ||
* [[cut-text]] | * [[cut-text]] | ||
* [[destroy-shell]] | * [[destroy-shell]] | ||
* [[disable]] | * [[disable]] | ||
* [[dispose]] | * [[dispose]] | ||
* [[dispose-splash]] | * [[dispose-splash]] | ||
* [[enable]] | * [[enable]] | ||
* [[eval-shell]] | * [[eval-shell]] | ||
* [[find-text]] | * [[find-text]] | ||
* [[frame]] | * [[frame-closed]] | ||
* [[get-fonts]] | |||
* [[get-bounds]] | * [[get-bounds]] | ||
* [[get-font-metrics]] | * [[get-font-metrics]] | ||
* [[get-screen]] | * [[get-screen]] | ||
* [[get-selected-text]] | * [[get-selected-text]] | ||
101行目: | 139行目: | ||
* [[get-version]] | * [[get-version]] | ||
* [[goto-text]] | * [[goto-text]] | ||
* [[insert-list-item]] | * [[insert-list-item]] | ||
* [[insert-tab]] | * [[insert-tab]] | ||
* [[insert-text]] | * [[insert-text]] | ||
* [[layout]] | * [[layout]] | ||
* [[load-text]] | * [[load-text]] | ||
* [[no-action]] | * [[no-action]] | ||
* [[paste-text]] | * [[paste-text]] | ||
* [[redo-text]] | * [[redo-text]] | ||
* [[remove-from]] | * [[remove-from]] | ||
147行目: | 151行目: | ||
* [[remove-tab]] | * [[remove-tab]] | ||
* [[request-focus]] | * [[request-focus]] | ||
* [[run-shell]] | * [[run-shell]] | ||
* [[select-list-item]] | * [[select-list-item]] | ||
* [[select-text]] | * [[select-text]] | ||
* [[set-accelerator]] | * [[set-accelerator]] | ||
* [[set-background]] | * [[set-background]] | ||
* [[set-bevel-border]] | * [[set-bevel-border]] | ||
* [[set-border-layout]] | * [[set-border-layout]] | ||
* [[set-caret]] | * [[set-caret]] | ||
* [[set-caret-color]] | * [[set-caret-color]] | ||
175行目: | 170行目: | ||
* [[set-icon]] | * [[set-icon]] | ||
* [[set-look-and-feel]] | * [[set-look-and-feel]] | ||
* [[set- | * [[set-resizable]] | ||
* [[set-pressed-icon]] | * [[set-pressed-icon]] | ||
* [[set-selected]] | * [[set-selected]] | ||
* [[set-size]] | |||
* [[set-selection-color]] | * [[set-selection-color]] | ||
* [[set-syntax]] | * [[set-syntax]] | ||
* [[set-syntax-colors]] | * [[set-syntax-colors]] | ||
191行目: | 182行目: | ||
* [[set-tool-tip]] | * [[set-tool-tip]] | ||
* [[set-trace]] | * [[set-trace]] | ||
* [[set-utf8]] | * [[set-utf8]] | ||
* [[set-value]] | * [[set-value]] | ||
* [[set-visible]] | * [[set-visible]] | ||
* [[ | * [[undo-text]] | ||
* [[ | * [[undo-enable]] | ||
テーブル UI | |||
* [[table]] | * [[table]] | ||
* [[table-add-column]] | * [[table-add-column]] | ||
211行目: | 198行目: | ||
* [[table-set-column]] | * [[table-set-column]] | ||
* [[table-set-row-number]] | * [[table-set-row-number]] | ||
* [[text- | |||
* [[text- | スペシャルダイアログ | ||
* [[ | * [[color-dialog]] | ||
* [[ | * [[message-dialog]] | ||
* [[ | * [[confirm-dialog]] | ||
* [[open-file-dialog]] | |||
* [[save-file-dialog]] | |||
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]] | * [[translate-tag]] | ||
* [[update]] | * [[update]] | ||
* [[ | |||
イベント | |||
* [[key-event]] | |||
* [[mouse-clicked]] | |||
* [[mouse-dragged]] | |||
* [[mouse-event]] | |||
* [[mouse-moved]] | |||
* [[mouse-pressed]] | |||
* [[mouse-released]] | |||
* [[mouse-wheel]] | |||
* [[window-closed]] | * [[window-closed]] | ||
* [[window-resized]] | * [[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コンポーネントのリスト | |||
* [[black]] | |||
* [[blue]] | |||
* [[cyan]] | |||
* [[darkGray]] | |||
* [[gray]] | |||
* [[green]] | |||
* [[lightGray]] | |||
* [[magenta]] | |||
* [[orange]] | |||
* [[pink]] | |||
* [[red]] | |||
* [[white]] | |||
* [[yellow]] | |||
</div> | </div> | ||
==ビルトインアイコンとイメージ== | |||
* 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 | |||
[[Category:newLISP]] | [[Category:newLISP]] |
2012年8月7日 (火) 16:49時点における最新版
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(初期化) (set-locale "C") (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