MindでGUIプログラミング
■ 1999-02-24 [Mind] 起動前のGIF画像表示ソース
少し前に、起動前のGIF画像表示を行うMindソースを、http://www.rigy.co.jp/ にて公開しましたが、そのソース全文をここに掲載しておきます。Mindプログラミングの参考にしてください。
--------ここから logo.src --------------------------------------
※タイトル Mindソース 起動前のGIF画像表示
※ファイル名 logo.src
※リンク Filew
※作成日 1999-02-10
※作成者 START
※
※機能 ・起動時の待ち時間にGIF画像を画面中央に表示する。
※ ・GIF画像(logo.gif)は、サイズを問わず中央に表示する。
※ ・起動後は、Control+Lキーで再表示する。
※
※その他 ・このソースは無断改編OK、どしどし流用してください。
※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
ロゴ表示とは
評価文字列は 文字列実体 長さ 512
スタンプ1は 構造体 タイムスタンプ型
画像横は 文字列実体
画像縦は 文字列実体
ジオメトリは 文字列実体
ロゴファイル名は 文字列実体
※
※------------------「.0」という名前で親窓を作る
「toplevel .0」を 評価する
※
※------------------枠無し窓にする
※ (ウインドゥマネージャの管理から切り離される)
「wm overrideredirect .0 1」を 評価する
※
※--------------------------フルパスのGIFファイル名を形成する
「logo.gif」を ロゴファイル名に 入れ
私のプログラム名から パス名を得て
ロゴファイル名を パス記号を挟んで合成し ロゴファイル名に 入れ
※
※--------------------------GIFファイルの有無を調べる
ロゴファイル名と スタンプ1で 最初のファイルの検索
ならば
ロゴファイル名を パス記号を/に置換し
※--------------------------GIFイメージの読み込み
「image create photo start_logo -file 」を
評価文字列に 入れ
ロゴファイル名を 評価文字列に 追加し
評価文字列を 評価する
※
※--------------------------GIFイメージのサイズ取得
「image width start_logo」を 評価した値を 画像横に 入れ
「image height start_logo」を 評価した値を 画像縦に 入れ
※
※--------------------------GIFイメージと同寸の窓にする
画像横を ジオメトリに 入れ
「x」を ジオメトリに 追加し
画像縦を ジオメトリに 追加し
「|+0.5+0.5」を ジオメトリに 追加し
「.0」に ジオメトリを ジオメトリ設定する
※
※--------------------------キャンバスを設定・描画する
「canvas .0.can -highlightbackground black」続
「 -highlightthickness 1」を 評価文字列に 入れ
「 -width 」を 評価文字列に 追加し
画像横を 評価文字列に 追加し
「 -height 」を 評価文字列に 追加し
画像縦を 評価文字列に 追加し
評価文字列を 評価する
「pack .0.can」を 評価する
※
※--------------------------イメージを描画する
「.0.can create image 0 0 -image start_logo -anchor nw」を
評価する
※
さもなければ
※--------------------------200x200の窓を中央に設定する
「.0」に 「200x200|+0.5+0.5」を ジオメトリ設定する
※
※--------------------------キャンバスを設定・描画する
「canvas .0.can -width 200 -height 200&改行&」続
「pack .0.can&改行&」続
「.0.can create text 100 100」続
「 -text {GIFイメージがありません}」続
「 -font {{MS 明朝} 13}」続
「 -width 150 -justify center」を 評価する
つぎに
スタンプ1で ファイルの検索終り
※--------------------------フォーカスを当てる
※(フォーカスを維持するためルートウインドゥを隠す前に行う)
「.0」に フォーカスを当てる
※
※--------------------------ルートウインドゥを隠す
※(起動前の処理が終わるまで見せないようにしておく)
「.」を ウインドゥを隠す
※
※--------------------------ここで初めてTcl/Tk描画される
すべてのイベントを処理する。
ロゴ表示消すとは
すべてのイベントを処理し
※------------------ルートウインドゥを見せフォーカスを当てる
「.」を ウインドゥを見せる
「.」に フォーカスを当てる
※
※------------------窓をモニターから隠す
「.0」を ウインドゥを隠す。
ロゴ表示消作業とは (パラメータ、・・、パラメータ数 → ・)
イベント引数を捨て
ロゴ表示消す。
ロゴ再表示するとは (パラメータ、・・、パラメータ数 → ・)
イベント引数を捨て
「.0」を ウインドゥを見せる
「.0」に フォーカスを当てる
※------------------クリックしたら消えるようにするバインド設定
「bind .0 <Button-1> {mindcmd LOGO隠す}」を 評価する。
メイン実行とは
※
※ ここにアプリ本来の窓表示などの処理を記述する
※
※ ↓これはダミーです
「label .guide -text {&改行&起動前のGIF表示&改行&」続
「&改行&Control+Lキーで再表示します&改行&}」を 評価する
「pack .guide&改行&」を 評価する
※
※
※------------------Control+Lキーで表示するようにするバインド設定
「bind . <Control-Key-l> {mindcmd LOGO表示}&改行&」を 評価する。
イベント分岐とは 本定義 (パラメータ、パラメータ数、イベント名 → ・)
文字列事例をとる
"LOGO表示"なら ロゴ再表示する
"LOGO隠す"なら ロゴ表示消作業する
例外なら イベント引数を捨て
事例終り
「イベント処理後」で このメッセージでスタック検査すること。
メインとは
※
ロゴ表示し
※-----------------------------
フォーカス移動機能をプリロードする
※
※ ここにアプリ起動前に行っておきたい処理を記述する
※ (例えば環境設定ファイルの読み込みなど)
※
二秒待ち (←これはダミーです)
※
※-----------------------------
※
メイン実行し
※
ロゴ表示消すこと。
-----ここまで-----------------------------------------