sample_toast_winrt.hsp

sample\iron\sample_toast_winrt.hsp » Plain Format

;============================================================
;  sample_toast_winrt.hsp — モダン WinRT Toast 通知のサンプル
;
;  既存の sample_toast.hspiron_toast.hsp (Shell_NotifyIcon バルーン)
;  を使っているが、こちらは iron_toast_winrt.hsp で
;  Windows.UI.Notifications.ToastNotification (WinRT) を呼ぶ。
;  モダン、通知センター履歴あり、フォーカスアシスト対応。
;
;  初回起動時に Start Menu\Programs に ショートカットを自動作成して
;  AppUserModelID を登録するので、以後 OS が通知を受け入れる。
;============================================================

#include "hsp3_net_64.as"
#include "iron_toast_winrt.hsp"

	title "iron_toast_winrt sample"
	screen 0, 520, 420
	font "MS Gothic", 14

	mes "==== モダン Toast (WinRT) デモ ===="
	mes ""

	; アプリ識別情報
	APP_DISPNAME = "IronHSP Toast Sample"
	APP_ID       = "IronHSP.Sample.ToastWinRT"

	toast_winrt_init APP_DISPNAME, APP_ID
	if stat < 0 {
		color 200, 0, 0
		mes "[error] toast_winrt_init 失敗 (stat=" + stat + ")"
		color 0, 0, 0
		mes "(初回 only: 管理者権限不要だが Win8+ 必須)"
		stop
	}
	mes "初期化 OK (AppUserModelID = " + APP_ID + ")"
	mes ""

	pos 10, 80
	objsize 240, 40
	button gosub "1 行だけ",                *on_1
	pos 260, 80
	button gosub "タイトル + 本文 (2)",      *on_2
	pos 10, 130
	objsize 240, 40
	button gosub "タイトル + 2 行",           *on_3
	pos 260, 130
	button gosub "日本語メッセージ",          *on_jp
	pos 10, 180
	objsize 490, 40
	button gosub "連打 (3 件同時に飛ばす)",   *on_burst

	pos 10, 250
	mes "(ログ)"
	logline = 270

	stop

*on_1
	toast_winrt1 "シンプルな通知です"
	gosub *log_result : return

*on_2
	toast_winrt2 "処理完了", "データの保存に成功しました"
	gosub *log_result : return

*on_3
	toast_winrt3 "ダウンロード完了", "大容量ファイル.zip", "2.3 GB / 00:01:42"
	gosub *log_result : return

*on_jp
	toast_winrt2 "日本語テスト", "マルチバイト文字列が正しく表示されるか確認"
	gosub *log_result : return

*on_burst
	toast_winrt1 "連続通知 1/3"
	toast_winrt2 "連続通知 2/3", "少し待ってね"
	toast_winrt3 "連続通知 3/3", "最終のトースト", "通知センターに残る"
	gosub *log_result : return

*log_result
	color 0, 80, 160
	pos 10, logline
	mes "toast stat=" + stat
	color 0, 0, 0
	logline += 20
	return