[Ttssh2-commit] [4073] ウィンドウメニューに、ウィンドウの状態を表す文字を表示するようにしてみた。

Back to archive index

svnno****@sourc***** svnno****@sourc*****
2010年 8月 31日 (火) 19:15:14 JST


Revision: 4073
          http://sourceforge.jp/projects/ttssh2/svn/view?view=rev&revision=4073
Author:   doda
Date:     2010-08-31 19:15:14 +0900 (Tue, 31 Aug 2010)

Log Message:
-----------
ウィンドウメニューに、ウィンドウの状態を表す文字を表示するようにしてみた。

 * 現在のウィンドウ
 + 通常のウィンドウ
 - 最小化されたウィンドウ
 @ 最大化されたウィンドウ
 # 非表示のウィンドウ

Modified Paths:
--------------
    trunk/teraterm/ttpcmn/ttcmn.c


-------------- next part --------------
Modified: trunk/teraterm/ttpcmn/ttcmn.c
===================================================================
--- trunk/teraterm/ttpcmn/ttcmn.c	2010-08-31 10:11:32 UTC (rev 4072)
+++ trunk/teraterm/ttpcmn/ttcmn.c	2010-08-31 10:15:14 UTC (rev 4073)
@@ -821,6 +821,20 @@
 	}
 }
 
+char GetWindowTypeChar(HWND Hw, HWND HWin) 
+{
+	if (HWin == Hw)
+		return '*';
+	else if (!IsWindowVisible(Hw))
+		return '#';
+	else if (IsIconic(Hw))
+		return '-';
+	else if (IsZoomed(Hw))
+		return '@';
+	else
+		return '+';
+}
+
 void FAR PASCAL SetWinMenu(HMENU menu, PCHAR buf, int buflen, PCHAR langFile, int VTFlag)
 {
 	int i;
@@ -844,7 +858,9 @@
 			Temp[0] = '&';
 			Temp[1] = (char)(0x31 + i);
 			Temp[2] = ' ';
-			GetWindowText(Hw,&Temp[3],sizeof(Temp)-4);
+			Temp[3] = GetWindowTypeChar(Hw, NULL);
+			Temp[4] = ' ';
+			GetWindowText(Hw,&Temp[5],sizeof(Temp)-6);
 			AppendMenu(menu,MF_ENABLED | MF_STRING,ID_WINDOW_1+i,Temp);
 			i++;
 			if (i>8) {
@@ -875,7 +891,9 @@
 		if ((GetClassName(Hw,Temp,sizeof(Temp))>0) &&
 		    ((strcmp(Temp,VTCLASSNAME)==0) ||
 		     (strcmp(Temp,TEKCLASSNAME)==0))) {
-			GetWindowText(Hw,Temp,sizeof(Temp)-1);
+			Temp[0] = GetWindowTypeChar(Hw, HWin);
+			Temp[1] = ' ';
+			GetWindowText(Hw,&Temp[2],sizeof(Temp)-3);
 			SendDlgItemMessage(HDlg, IList, LB_ADDSTRING,
 			                   0, (LONG)Temp);
 			if (Hw==HWin) {



Ttssh2-commit メーリングリストの案内
Back to archive index