; ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
;	Header.hsp
;
;		ツールバー作成、割り込み設定、メッセージ処理
;_______________________________________

// ツールバー作成 //////////////////////////////////////////////////////////////

	;ツールバー アイコンID
	#define STD_CUT           0
	#define STD_COPY          1
	#define STD_PASTE         2
	#define STD_UNDO          3
	#define STD_REDOW         4
	#define STD_DELETE        5
	#define STD_FILENEW       6
	#define STD_FILEOPEN      7
	#define STD_FILESAVE      8
	#define STD_PRINTPRE      9
	#define STD_PROPERTIES   10
	#define STD_HELP         11
	#define STD_FIND         12
	#define STD_REPLACE      13
	#define STD_PRINT        14

;ツールバーID
#enum TB_ACTION = 0
#enum TB_SETTING
#enum TB_dammy1
#enum TB_LISTVIEW
#enum TB_dammy2
#enum TB_NEXT
#enum TB_STOP
#enum TB_dammy3
#enum TB_HELP
#enum ToolbarMaxNum

	bnum=ToolbarMaxNum  ;実装するボタンの数
	repeat bnum
		button gosub "",*toolcmd
		SetWindowLong objinfo(cnt,2),GWL_ID,0
		tb_id(cnt) =stat
		ShowWindow objinfo(cnt,2),0
	loop
	InitCommonControls
	
	;文字列登録
	tbstr=""
	;TBBUTTON構造体の配列 (idCommandメンバにボタンのIDを設定)
	tb(0)         = STD_FILENEW,    tb_id(TB_ACTION),   4, 0, length(tb)/5 :tbstr+="実行\\"
	tb(length.tb) = STD_PASTE,      tb_id(TB_SETTING),  4, 0, length(tb)/5 :tbstr+="設定\\"
	tb(length.tb) = 0,              0,               1<<8, 0, length(tb)/5 :tbstr+="セパレータ\\"
	tb(length.tb) = STD_PROPERTIES, tb_id(TB_LISTVIEW), 4, 0, length(tb)/5 :tbstr+="[リスト]\\"
	tb(length.tb) = 0,              0,               1<<8, 0, length(tb)/5 :tbstr+="セパレータ\\"
	tb(length.tb) = STD_REDOW,      tb_id(TB_NEXT),     4, 0, length(tb)/5 :tbstr+="次へ\\"
	tb(length.tb) = STD_DELETE,     tb_id(TB_STOP),     4, 0, length(tb)/5 :tbstr+="中止\\"
	tb(length.tb) = 0,              0,               1<<8, 0, length(tb)/5 :tbstr+="セパレータ\\"
	tb(length.tb) = STD_HELP,       tb_id(TB_HELP),     4, 0, length(tb)/5 :tbstr+="About\\"
	tbstr+="\\"

	;ツールバー作成
	style=$50000341 : style+=TBSTYLE_FLAT ;スタイルに$800を加えるとフラットタイプ
	CreateToolbarEx hwnd,style, 0, 0, -1, 0,varptr(tb),bnum, 0, 0, 0, 0,20
	tb_hWnd=stat
	
    ;登録文字列に\0設置
    tbstr_len=strlen(tbstr)
    repeat strlen(tbstr)
    	if wbyte(peek(tbstr,cnt))=1 :continue cnt+2
    	if peek(tbstr,cnt)='\\' :poke tbstr,cnt,0
    loop
    SendMsg tb_hWnd, TB_ADDSTRING, 0, varptr.tbstr
    ;ボタンを使用不可にする
	sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_NEXT), 0
	sendmsg tb_hWnd, TB_ENABLEBUTTON, tb_id(TB_STOP), 0
	;ツールバーの再描画
	MoveWindow tb_hWnd,0,0,0,0,1
    
	;ツールバーの高さを取得
	dim rc,4
	GetWindowRect tb_hWnd, varptr(rc)
	toolbar_height = rc(3)-rc(1)

	ListViewPos(1)+=toolbar_height ;+ツールバーの高さ
	


// ツールバーのポップアップメニュー

;ツールバーポップアップID
#enum TBP_NOCHECKDEL = 1

	CreatePopupMenu
	toolbar_popup = stat
	AppendMenu toolbar_popup, 0, TBP_NOCHECKDEL, "チェックしてない項目を削除"
	
	
// ツールチップ ////////////////////////////////////////////////////////////////
	;初期化
	tipset_init
	
// 割り込み設定 ////////////////////////////////////////////////////////////////

	//ウィンドウサイズ変更 割り込み
	oncmd gosub *WINSIZE_CHANGE, WM_SIZE
	//ファイルD&D許可
	DragAcceptFiles hwnd,1
	//ファイルD&D 割り込み
	oncmd gosub *ListViewDrop ,WM_DROPFILES
	//終了 割り込み
	onexit gosub *QUIT
	

// 末尾まで処理をジャンプ //////////////////////////////////////////////////////
goto *@forward

// /////////////////////////////////////////////////////////////////////////////


// メッセージ //////////////////////////////////////////////////////////////////

//メインウィンドウサイズ変更
*WINSIZE_CHANGE
	;リストビューの再描画
	MoveWindow hlist,0, ListViewPos(1),ginfo_winx,ginfo_winy-ListViewPos(1),1
	;ツールバーの再描画
	MoveWindow tb_hWnd,0,0,0,0,1
	return

// ツールバーボタンの判定
*toolcmd
	switch stat
		case TB_ACTION
			// 実行
			;リストのチェック項目の曲のタイムタグ歌詞取得
			gosub *GetTimetagLyrics
			swbreak
		case TB_SETTING
			// 設定
			;設定ウィンドウ開く
			gi_sel = ginfo_sel
			gsel WindowID_Setting, 1
			gsel gi_sel
			swbreak
		case TB_NEXT
			;リストビュー:次へ
			LyricsMasterStep = -1 ;LyricsMster検出ステップへ「次へ」割り込み
			swbreak
		case TB_STOP
			;リストビュー:中止
			LyricsMasterStep = -2 ;LyricsMster検出ステップへ「中止」割り込み
			swbreak
		case TB_LISTVIEW
			;リストビューポップアップメニュー
			dim rect,4
			sendmsg tb_hWnd, TB_GETRECT, tb_id(TB_LISTVIEW), varptr(rect) ;ツールバーのボタンの座標を取得
			;スクリーン座標系に変換
			point=rect.0, rect.3
			ClientToScreen tb_hWnd, varptr(point)
			;ポップアップ表示
			TrackPopupMenuEx toolbar_popup, $180, point.0,point.1, hWnd, 0
			switch stat
				case TBP_NOCHECKDEL
					;チェックしてない項目を削除
					gosub *NOCHECKDEL
					swbreak
			swend
			swbreak
		case TB_HELP
			dialog ""+app_title+"    "+app_version, 0, "About"
			swbreak
	swend
	return

// 終了時 割り込み
*QUIT
	;設定ウィンドウ閉じ
	if wparam=WindowID_Setting :gosub *OptionCansel :return 
	//アプリケーション終了
	end
	return

*@
  • QDhWVWZudb -- mojvpio? 2018-04-14 (土) 02:49:35


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2018-04-14 (土) 02:49:35 (609d)