「Guiserver.lsp」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
 
(同じ利用者による、間の9版が非表示)
3行目: 3行目:
ようするに newLISP で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。
ようするに newLISP で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。


* GUIServer.lsp の説明は http://www.newlisp.org/guiserver/guiserver.lsp.html に書いてある。
* GUIServer.lsp の説明は↓に書いてある。
* 以下適当に翻訳。
* http://www.newlisp.org/guiserver/
* http://www.newlisp.org/guiserver/guiserver.lsp.html  
 
以下適当に翻訳。


== newLISP GUI アプリケーションのアーキテクチャ ==
== newLISP GUI アプリケーションのアーキテクチャ ==
newLISPのGUIアプリケーションは4つの部分から構成されている。
newLISPのGUIアプリケーションは4つの部分から構成されている。


* '''初期化''' - newLISP-GS guiserver.jar との通信を初期化するのに1つのファンクションコールが必要。
* '''初期化''' - newLISP-GS guiserver.jar との通信を初期化するのに1回のファンクションコールが必要。
* '''ウィジェットの構築''' - このステップでは、ウインドウ、ボタン、テキストフィールド、その他、全ての GUIの視覚外観が記述されること。newLISP newLISP-GSは、広範囲にわたる異なるコントロールウィジェットを提供する。
* '''ウィジェットの構築''' - このステップでは、ウインドウ、ボタン、テキストフィールド、その他、全ての GUIの外観が記述されること。newLISP newLISP-GS は、広範囲にわたる異なるコントロールウィジェットを提供する。
* '''イベント・アクションの定義''' - このステップでは、ボタン・プッシュ、キーストローク、マウス-移動、その他の結果としてGUIから返されるイベントに反応するためにの機能を定める.. 情報をユーザー、ポップアップ対話その他と交換するために、これらのイベント・アクションは、多くの命令をGUIに送り返す。
* '''イベント・アクションの定義''' - このステップでは、ボタン・プッシュ、キーストローク、マウス-移動、その他の結果としてGUIから返されるイベントに反応するためにの機能を定める.. 情報をユーザー、ポップアップ対話その他と交換するために、これらのイベント・アクションは、多くの命令をGUIに送り返す。
* '''イベントのリスニング''' - newLISPプログラムが、定義されたイベントのアクションをループしながら待っている。1つのファンクションコールだけがこのステップに必要。
* '''イベントのリスニング''' - newLISPプログラムが、定義されたイベントのアクションをループしながら待っている。このステップは1回のファンクションコールのみ必要。


例 :
例 :
<pre class="brush:autolisp;">
<pre class="brush:autolisp;">
    #!/usr/bin/newlisp
#!/usr/bin/newlisp
    ; button-demo.lsp - demonstrate the button control
; ウィンドウ表示するだけの最小サンプル
     
 
    ; initialization(初期化)
;;;; initialization
    (load (append (env "NEWLISPDIR") "/guiserver.lsp"))  
(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


    (gs:init)
; initialization(初期化)
     
(set-locale "C")
    ; describe the GUI(wigetの構築)
(load (append (env "NEWLISPDIR") "/guiserver.lsp"))
    (gs:frame 'ButtonDemo 100 100 400 300 "Button demo")
(gs:init)  
    (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(アクションの定義)
; describe the GUI(wigetの構築)
    (define (abutton-action id)
(gs:frame 'ButtonDemo 100 100 400 300 "Button demo")
        (gs:set-color 'ColorPanel (random) (random) (random)))
(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)
        
        
    ; listen for incoming action requests and dispatch(リスニング開始)
; define actions(アクションの定義)
    (gs:listen)
(define (abutton-action id)
  (gs:set-color 'ColorPanel (random) (random) (random)))
        
        
    ; eof  
; 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-track]]
* [[add-to]]
* [[add-to]]
* [[append-text]]
* [[append-text]]
* [[button]]
* [[canvas]]
* [[channel-bend]]
* [[check-box]]
* [[check-event]]
* [[check-event]]
* [[clear-list]]
* [[clear-list]]
60行目: 122行目:
* [[copy-text]]
* [[copy-text]]
* [[cut-text]]
* [[cut-text]]
* [[color-dialog]]
* [[color-tag]]
* [[combo-box]]
* [[confirm-dialog]]
* [[delete-tag]]
* [[destroy-shell]]
* [[destroy-shell]]
* [[dialog_(newlisp)|dialog]]
* [[disable]]
* [[disable]]
* [[dispose]]
* [[dispose]]
* [[dispose-splash]]
* [[dispose-splash]]
* [[draw-arc]]
* [[draw-circle]]
* [[draw-ellipse]]
* [[draw-image]]
* [[draw-line]]
* [[draw-path]]
* [[draw-polygon]]
* [[draw-rect]]
* [[draw-round-rect]]
* [[draw-text]]
* [[enable]]
* [[enable]]
* [[eval-shell]]
* [[eval-shell]]
* [[export]]
* [[fill-arc]]
* [[fill-circle]]
* [[fill-ellipse]]
* [[fill-polygon]]
* [[fill-rect]]
* [[fill-round-rect]]
* [[find-text]]
* [[find-text]]
* [[frame]]
* [[frame-closed]]
* [[get-fonts]]
* [[get-bounds]]
* [[get-bounds]]
* [[get-fonts]]
* [[get-font-metrics]]
* [[get-font-metrics]]
* [[get-instruments]]
* [[get-screen]]
* [[get-screen]]
* [[get-selected-text]]
* [[get-selected-text]]
101行目: 139行目:
* [[get-version]]
* [[get-version]]
* [[goto-text]]
* [[goto-text]]
* [[hide-tag]]
* [[image-button]]
* [[image-label]]
* [[init]]
* [[insert-list-item]]
* [[insert-list-item]]
* [[insert-tab]]
* [[insert-tab]]
* [[insert-text]]
* [[insert-text]]
* [[key-event]]
* [[label_(newlisp)|label]]
* [[layout]]
* [[layout]]
* [[load-text]]
* [[load-text]]
* [[listen]]
* [[list-box]]
* [[message-dialog]]
* [[menu]]
* [[menu-popup]]
* [[menu-bar]]
* [[menu-item]]
* [[menu-item-check]]
* [[midi-bpm]]
* [[midi-close]]
* [[midi-init]]
* [[midi-patch]]
* [[mouse-clicked]]
* [[mouse-dragged]]
* [[mouse-event]]
* [[mouse-moved]]
* [[mouse-pressed]]
* [[mouse-released]]
* [[mouse-wheel]]
* [[move-tag]]
* [[mute-track]]
* [[no-action]]
* [[no-action]]
* [[open-file-dialog]]
* [[panel]]
* [[paste-text]]
* [[paste-text]]
* [[play-note]]
* [[play-sequence]]
* [[play-sound]]
* [[progress-bar]]
* [[radio-button]]
* [[redo-text]]
* [[redo-text]]
* [[remove-from]]
* [[remove-from]]
147行目: 151行目:
* [[remove-tab]]
* [[remove-tab]]
* [[request-focus]]
* [[request-focus]]
* [[reorder-tags]]
* [[rotate-tag]]
* [[run-shell]]
* [[run-shell]]
* [[save-file-dialog]]
* [[save-sequence]]
* [[save-text]]
* [[scale-tag]]
* [[select-list-item]]
* [[select-list-item]]
* [[select-text]]
* [[select-text]]
* [[scroll-pane]]
* [[set-accelerator]]
* [[set-accelerator]]
* [[set-anti-aliasing]]
* [[set-background]]
* [[set-background]]
* [[set-bevel-border]]
* [[set-bevel-border]]
* [[set-border-layout]]
* [[set-border-layout]]
* [[set-canvas]]
* [[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-paint]]
* [[set-resizable]]
* [[set-pressed-icon]]
* [[set-pressed-icon]]
* [[set-resizable]]
* [[set-rotation]]
* [[set-scale]]
* [[set-selected]]
* [[set-selected]]
* [[set-size]]
* [[set-selection-color]]
* [[set-selection-color]]
* [[set-size]]
* [[set-stroke]]
* [[set-syntax]]
* [[set-syntax]]
* [[set-syntax-colors]]
* [[set-syntax-colors]]
191行目: 182行目:
* [[set-tool-tip]]
* [[set-tool-tip]]
* [[set-trace]]
* [[set-trace]]
* [[set-translation]]
* [[set-utf8]]
* [[set-utf8]]
* [[set-value]]
* [[set-value]]
* [[set-visible]]
* [[set-visible]]
* [[shear-tag]]
* [[undo-text]]
* [[show-popup]]
* [[undo-enable]]
* [[show-tag]]
 
* [[slider_(newlisp)|slider]]
テーブル UI
* [[split-pane]]
* [[stop-sequence]]
* [[tabbed-pane]]
* [[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-area]]
 
* [[text-field]]
スペシャルダイアログ
* [[text-pane]]
* [[color-dialog]]
* [[toggle-button]]
* [[message-dialog]]
* [[tool-bar]]
* [[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]]
* [[undo-text]]
* [[undo-enable]]
* [[update]]
* [[update]]
* [[window]]
 
イベント
* [[key-event]]
* [[mouse-clicked]]
* [[mouse-dragged]]
* [[mouse-event]]
* [[mouse-moved]]
* [[mouse-pressed]]
* [[mouse-released]]
* [[mouse-wheel]]
* [[window-closed]]
* [[window-closed]]
* [[window-moved]]
* [[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 アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。

以下適当に翻訳。

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とグラフィックスのための関数

初期化とアプリケーションのセットアップ

コンテナ

ラベル

コントロールウィジェット

コンテナ内のコンポーネントの配置

コマンドの要約

テーブル UI

スペシャルダイアログ

2D グラフィック関数

イベント

サウンドと MIDI API

定義済みの色 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