tmytのらくがき

個人の日記レベルです

WifiInfoの文字色がおかしくなる件

人のコードに口挟むのはあまりよくないかな。。。と思いつつ。。。

  • BTのライブラリの初期化でWifiの値よんでた。
  • WM_CREATEでBTが初期化されないタイミングがあるとBTの状態表示が描画されない
  • 自身が選択されていない時でも文字色だけフォーカスがあってるようになってしまう

Download: WifiInfoSetup_Universal.1.25.1.CAB
Download: WifiInfoSetup_X01T.1.25.1.CAB

以下パッチ

diff -c WifiInfo.ORG/Bt.cpp WifiInfo/Bt.cpp
*** WifiInfo.ORG/Bt.cpp	Wed Jul 16 23:33:18 2008
--- WifiInfo/Bt.cpp	Mon Jul 21 04:58:23 2008
***************
*** 43,49 ****
  {
      g_hWnd = hWnd;
  
!     g_dwBtStatusPrev = GetWifiStatus();
      RegisterNotification();
  }
  
--- 43,49 ----
  {
      g_hWnd = hWnd;
  
!     g_dwBtStatusPrev = GetBtStatus();
      RegisterNotification();
  }
  
diff -c WifiInfo.ORG/WifiInfo.cpp WifiInfo/WifiInfo.cpp
*** WifiInfo.ORG/WifiInfo.cpp	Thu Jul 17 22:08:34 2008
--- WifiInfo/WifiInfo.cpp	Mon Jul 21 05:01:31 2008
***************
*** 132,138 ****
                      g_szWifiConnectedMsg[WIFI_MSG_LEN], // 無線LAN通信中のメッセージ(またはSSID)
                      g_szBtOffMsg[BT_MSG_LEN],           // Bluetoothオフのメッセージ
                      g_szBtOnMsg[BT_MSG_LEN];            // Bluetoothオンのメッセージ
! static BOOL         g_bShowSSID;                        // 無線LAN通信中にSSIDを表示するか
  
  
  
--- 132,139 ----
                      g_szWifiConnectedMsg[WIFI_MSG_LEN], // 無線LAN通信中のメッセージ(またはSSID)
                      g_szBtOffMsg[BT_MSG_LEN],           // Bluetoothオフのメッセージ
                      g_szBtOnMsg[BT_MSG_LEN];            // Bluetoothオンのメッセージ
! static BOOL         g_bShowSSID,
!                     g_bBtInitialized = FALSE;                        // 無線LAN通信中にSSIDを表示するか
  
  
  
***************
*** 235,240 ****
--- 236,242 ----
              // 初期表示メッセージの設定
              WifiInitialize(g_hWnd);
              if (BtIsPresent()) {
+ 				g_bBtInitialized = TRUE;
                  BtInitialize(g_hWnd);
                  bBtIsOn = (SN_BLUETOOTHSTATEPOWERON_BITMASK & GetBtStatus());
                  if (bBtIsOn) {
***************
*** 365,371 ****
              hFontOld = (HFONT) SelectObject(hDC, hFont);
  
              // Wifi
!             if (WIFI == nFocus) {
                  SetTextColor(hDC, crTextSelected);
              } else {
                  SetTextColor(hDC, crText);
--- 367,373 ----
              hFontOld = (HFONT) SelectObject(hDC, hFont);
  
              // Wifi
!             if (WIFI == nFocus && bTodayItemIsSelected) {
                  SetTextColor(hDC, crTextSelected);
              } else {
                  SetTextColor(hDC, crText);
***************
*** 391,397 ****
  
              // Bt
              if (BtIsPresent()) {
!                 if (BT == nFocus) {
                      SetTextColor(hDC, crTextSelected);
                  } else {
                      SetTextColor(hDC, crText);
--- 393,409 ----
  
              // Bt
              if (BtIsPresent()) {
! 				if (!g_bBtInitialized) {
! 					g_bBtInitialized = TRUE;
! 					BtInitialize(g_hWnd);
! 					bBtIsOn = (SN_BLUETOOTHSTATEPOWERON_BITMASK & GetBtStatus());
! 					if (bBtIsOn) {
! 						SetBtPowerOnMessage(szBtMessage);
! 					} else {
! 						SetBtPowerOffMessage(szBtMessage);
! 					}
! 				}
!                 if (BT == nFocus && bTodayItemIsSelected) {
                      SetTextColor(hDC, crTextSelected);
                  } else {
                      SetTextColor(hDC, crText);
***************
*** 406,412 ****
                  } else {
                      DrawText(hDC, szBtMessage, -1, &g_rcBtMessage,  DT_VCENTER);
                  }
!             }
  
              SelectObject(hDC, hFontOld);
              DeleteObject(hFont);
--- 418,429 ----
                  } else {
                      DrawText(hDC, szBtMessage, -1, &g_rcBtMessage,  DT_VCENTER);
                  }
! 			} else {
! 				if (g_bBtInitialized) {
! 					g_bBtInitialized = FALSE;
! 					BtTerminate();
! 				}
! 			}
  
              SelectObject(hDC, hFontOld);
              DeleteObject(hFont);