「Guiserver.lsp」の版間の差分

提供:GizmoLabs - だいたい CAD LISP なサイト
(ページの作成: guiserver.lsp は newlisp で GUI 生成する guiserver.jar にインターフェス接続するためのモジュール。 ようするに newlisp で GUI アプリ作る場...)
 
編集の要約なし
2行目: 2行目:
ようするに newlisp で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。
ようするに newlisp で GUI アプリ作る場合はこれを使うので、使い方を覚えましょうという個人的なメモ。


* GUIServer.lsp の説明は 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つのファンクションコールだけがこのステップに必要。
例 :
<pre class="brush:autolisp;">
    #!/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
</pre>
==GUIとグラフィックスのための関数==
<div class="mcol3">
* [[add-list-item]]
* [[add-separator]]
* [[add-track]]
* [[add-to]]
* [[append-text]]
* [[button]]
* [[canvas]]
* [[channel-bend]]
* [[check-box]]
* [[check-event]]
* [[clear-list]]
* [[clear-text]]
* [[copy-text]]
* [[cut-text]]
* [[color-dialog]]
* [[color-tag]]
* [[combo-box]]
* [[confirm-dialog]]
* [[delete-tag]]
* [[destroy-shell]]
* [[dialog]]
* [[disable]]
* [[dispose]]
* [[dispose-splash]]
* [[draw-arc]]
* [[draw-circle]]
* [[draw-ellipse]]
* [[draw-image]]
* [[draw-line]]
* [[draw-path]]
* [[draw-polygon]]
* [[draw-rect]]
* [[draw-round-rect]]
* [[draw-text]]
* [[enable]]
* [[eval-shell]]
* [[export]]
* [[fill-arc]]
* [[fill-circle]]
* [[fill-ellipse]]
* [[fill-polygon]]
* [[fill-rect]]
* [[fill-round-rect]]
* [[find-text]]
* [[frame]]
* [[get-bounds]]
* [[get-fonts]]
* [[get-font-metrics]]
* [[get-instruments]]
* [[get-screen]]
* [[get-selected-text]]
* [[get-text]]
* [[get-text-position]]
* [[get-version]]
* [[goto-text]]
* [[hide-tag]]
* [[image-button]]
* [[image-label]]
* [[init]]
* [[insert-list-item]]
* [[insert-tab]]
* [[insert-text]]
* [[key-event]]
* [[label]]
* [[layout]]
* [[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]]
* [[open-file-dialog]]
* [[panel]]
* [[paste-text]]
* [[play-note]]
* [[play-sequence]]
* [[play-sound]]
* [[progress-bar]]
* [[radio-button]]
* [[redo-text]]
* [[remove-from]]
* [[remove-list-item]]
* [[remove-tab]]
* [[request-focus]]
* [[reorder-tags]]
* [[rotate-tag]]
* [[run-shell]]
* [[save-file-dialog]]
* [[save-sequence]]
* [[save-text]]
* [[scale-tag]]
* [[select-list-item]]
* [[select-text]]
* [[scroll-pane]]
* [[set-accelerator]]
* [[set-anti-aliasing]]
* [[set-background]]
* [[set-bevel-border]]
* [[set-border-layout]]
* [[set-canvas]]
* [[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-paint]]
* [[set-pressed-icon]]
* [[set-resizable]]
* [[set-rotation]]
* [[set-scale]]
* [[set-selected]]
* [[set-selection-color]]
* [[set-size]]
* [[set-stroke]]
* [[set-syntax]]
* [[set-syntax-colors]]
* [[set-tab-size]]
* [[set-text]]
* [[set-titled-border]]
* [[set-tool-tip]]
* [[set-trace]]
* [[set-translation]]
* [[set-utf8]]
* [[set-value]]
* [[set-visible]]
* [[shear-tag]]
* [[show-popup]]
* [[show-tag]]
* [[slider]]
* [[split-pane]]
* [[stop-sequence]]
* [[tabbed-pane]]
* [[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]]
* [[text-area]]
* [[text-field]]
* [[text-pane]]
* [[toggle-button]]
* [[tool-bar]]
* [[translate-tag]]
* [[undo-text]]
* [[undo-enable]]
* [[update]]
* [[window]]
* [[window-closed]]
* [[window-moved]]
* [[window-resized]]
</div>


[[Category:newLISP]]
[[Category:newLISP]]

2011年6月12日 (日) 11:09時点における版

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