- もどる -
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隠す"なら		ロゴ表示消作業する
		例外なら イベント引数を捨て
	事例終り
	「イベント処理後」で このメッセージでスタック検査すること。


メインとは
	※
	ロゴ表示し
	※-----------------------------
	フォーカス移動機能をプリロードする
	※
	※ ここにアプリ起動前に行っておきたい処理を記述する
	※ (例えば環境設定ファイルの読み込みなど)
	※
	二秒待ち   (←これはダミーです)
	※
	※-----------------------------
	※
	メイン実行し
	※
	ロゴ表示消すこと。

-----ここまで-----------------------------------------
 - もどる -