Diff for /np2/win9x/toolwin.cpp between versions 1.19 and 1.25

version 1.19, 2005/03/20 13:12:49 version 1.25, 2007/12/28 20:36:40
Line 34  enum { Line 34  enum {
         IDC_TOOLPOWER,          IDC_TOOLPOWER,
         IDC_MAXITEMS,          IDC_MAXITEMS,
   
         IDC_BASE                                = 3000,          IDC_BASE                                = 3000
   
         IDM_SKINSEL                             = 3100,  
         IDM_SKINDEF                             = 3101,  
         IDM_SKINMRU                             = 3102,  
         IDM_TOOLCLOSE                   = IDM_SKINMRU + SKINMRU_MAX  
 };  };
   
 enum {  enum {
Line 89  typedef struct { Line 84  typedef struct {
         SUBCLASSPROC    subproc[IDC_MAXITEMS];          SUBCLASSPROC    subproc[IDC_MAXITEMS];
 } TOOLWIN;  } TOOLWIN;
   
 enum {  #define GTWLP_FOCUS             (NP2GWLP_SIZE + (0 * sizeof(LONG_PTR)))
         GTWL_FOCUS              = NP2GWL_SIZE + 0,  #define GTWLP_SIZE              (NP2GWLP_SIZE + (1 * sizeof(LONG_PTR)))
         GTWL_SIZE               = NP2GWL_SIZE + 4  
 };  
   
                 NP2TOOL         np2tool;                  NP2TOOL         np2tool;
 static  TOOLSKIN        toolskin;  static  TOOLSKIN        toolskin;
Line 155  static HBITMAP skinload(const OEMCHAR *p Line 148  static HBITMAP skinload(const OEMCHAR *p
 #else  #else
                 const TCHAR *tchr = fname;                  const TCHAR *tchr = fname;
 #endif  #endif
                 ret = (HBITMAP)LoadImage(hInst, tchr, IMAGE_BITMAP,                  ret = (HBITMAP)LoadImage(g_hInstance, tchr, IMAGE_BITMAP,
                                                                                                         0, 0, LR_LOADFROMFILE);                                                                                                          0, 0, LR_LOADFROMFILE);
                 if (ret != NULL) {                  if (ret != NULL) {
                         return(ret);                          return(ret);
                 }                  }
         }          }
         return(LoadBitmap(hInst, _T("NP2TOOL")));          return(LoadBitmap(g_hInstance, _T("NP2TOOL")));
 }  }
   
   
Line 197  static void calctextsize(OEMCHAR *path,  Line 190  static void calctextsize(OEMCHAR *path, 
         GetTextExtentPoint32(hdc, work, OEMSTRLEN(work), &tail);          GetTextExtentPoint32(hdc, work, OEMSTRLEN(work), &tail);
         pos = 0;          pos = 0;
         while(pos < l) {          while(pos < l) {
                 step = ((((p[pos] ^ 0x20) - 0xa1) & 0xff) < 0x3c)?2:1;  #if defined(_UNICODE)
                   step = 1;
   #else
                   step = (IsDBCSLeadByte((BYTE)p[pos]))?2:1;
   #endif
                 GetTextExtentPoint32(hdc, p, pos + step, &cur);                  GetTextExtentPoint32(hdc, p, pos + step, &cur);
                 if (cur.cx + tail.cx >= width) {                  if (cur.cx + tail.cx >= width) {
                         break;                          break;
Line 394  static LRESULT CALLBACK twsub(HWND hWnd, Line 391  static LRESULT CALLBACK twsub(HWND hWnd,
                 }                  }
         }          }
         else if (msg == WM_SETFOCUS) {          else if (msg == WM_SETFOCUS) {
                 SetWindowLong(GetParent(hWnd), GTWL_FOCUS, idc);                  SetWindowLongPtr(GetParent(hWnd), GTWLP_FOCUS, idc);
         }          }
         return(CallWindowProc(toolwin.subproc[idc], hWnd, msg, wp, lp));          return(CallWindowProc(toolwin.subproc[idc], hWnd, msg, wp, lp));
 }  }
Line 455  static void toolwincreate(HWND hWnd) { Line 452  static void toolwincreate(HWND hWnd) {
 #endif  #endif
                         sub = CreateWindow(cls, ptext, WS_CHILD | WS_VISIBLE | style,                          sub = CreateWindow(cls, ptext, WS_CHILD | WS_VISIBLE | style,
                                                         p->posx, p->posy, p->width, p->height,                                                          p->posx, p->posy, p->width, p->height,
                                                         hWnd, (HMENU)(i + IDC_BASE), hInst, NULL);                                                          hWnd, (HMENU)(i + IDC_BASE), g_hInstance, NULL);
                 }                  }
                 toolwin.sub[i] = sub;                  toolwin.sub[i] = sub;
                 toolwin.subproc[i] = NULL;                  toolwin.subproc[i] = NULL;
                 if (sub) {                  if (sub) {
                         toolwin.subproc[i] = (SUBCLASSPROC)GetWindowLong(sub, GWL_WNDPROC);                          toolwin.subproc[i] = (SUBCLASSPROC)GetWindowLongPtr(sub,
                         SetWindowLong(sub, GWL_WNDPROC, (LONG)twsub);                                                                                                                          GWLP_WNDPROC);
                           SetWindowLongPtr(sub, GWLP_WNDPROC, (LONG_PTR)twsub);
                         SendMessage(sub, WM_SETFONT, (WPARAM)toolwin.hfont,                          SendMessage(sub, WM_SETFONT, (WPARAM)toolwin.hfont,
                                                                                                                 MAKELPARAM(TRUE, 0));                                                                                                                  MAKELPARAM(TRUE, 0));
                 }                  }
Line 479  static void toolwincreate(HWND hWnd) { Line 477  static void toolwincreate(HWND hWnd) {
                         break;                          break;
                 }                  }
         }          }
         SetWindowLong(hWnd, GTWL_FOCUS, i);          SetWindowLongPtr(hWnd, GTWLP_FOCUS, i);
 }  }
   
 static void toolwindestroy(void) {  static void toolwindestroy(void) {
Line 559  static void tooldrawbutton(HWND hWnd, UI Line 557  static void tooldrawbutton(HWND hWnd, UI
   
 // ----  // ----
   
 static HMENU createskinmenu(void) {  static void setSkinMruMenu(HMENU hMenu)
   {
         HMENU           ret;          HMENU           hmenuSub;
         UINT            cnt;  const OEMCHAR   *pcszBase;
 const OEMCHAR   *base;          UINT            uCount;
         UINT            flag;          OEMCHAR         *pszMru;
         OEMCHAR         *p;  const OEMCHAR   *pcszMruList[SKINMRU_MAX];
         UINT            i;          UINT            i;
           UINT            uID[SKINMRU_MAX];
         UINT            j;          UINT            j;
         UINT            id[SKINMRU_MAX];          UINT            uFlag;
 const OEMCHAR   *file[SKINMRU_MAX];  
   
         ret = CreatePopupMenu();          for (i=0; i<SKINMRU_MAX; i++)
         AppendMenu(ret, MF_STRING, IDM_SKINSEL, str_skinsel);          {
         AppendMenu(ret, MF_SEPARATOR, 0, NULL);                  DeleteMenu(hMenu, IDM_TOOL_SKINMRU + i, MF_BYCOMMAND);
           }
         base = np2tool.skin;  
         flag = (base[0] == '\0')?MF_CHECKED:0;          if (!menu_searchmenu(hMenu, IDM_TOOL_SKINDEF, &hmenuSub, NULL))
         AppendMenu(ret, MF_STRING + flag, IDM_SKINDEF, str_skindef);          {
         for (cnt=0; cnt<SKINMRU_MAX; cnt++) {                  return;
                 p = np2tool.skinmru[cnt];          }
                 if (p[0] == '\0') {  
           pcszBase = np2tool.skin;
   
           CheckMenuItem(hMenu, IDM_TOOL_SKINDEF, MFCHECK(pcszBase[0] == '\0'));
   
           for (uCount=0; uCount<SKINMRU_MAX; uCount++)
           {
                   pszMru = np2tool.skinmru[uCount];
                   if (pszMru[0] == '\0')
                   {
                         break;                          break;
                 }                  }
                 p = file_getname(p);                  pszMru = file_getname(pszMru);
                 for (i=0; i<cnt; i++) {                  for (i=0; i<uCount; i++)
                         if (file_cmpname(p, file[id[i]]) < 0) {                  {
                           if (file_cmpname(pszMru, pcszMruList[uID[i]]) < 0)
                           {
                                 break;                                  break;
                         }                          }
                 }                  }
                 for (j=cnt; j>i; j--) {                  for (j=uCount; j>i; j--)
                         id[j] = id[j-1];                  {
                 }                          uID[j] = uID[j-1];
                 id[i] = cnt;                  }
                 file[cnt] = p;                  uID[i] = uCount;
                   pcszMruList[uCount] = pszMru;
         }          }
         for (i=0; i<cnt; i++) {  
                 j = id[i];          for (i=0; i<uCount; i++)
                 flag = (!file_cmpname(base, np2tool.skinmru[j]))?MF_CHECKED:0;          {
                   j = uID[i];
                   uFlag = MFCHECK(!file_cmpname(pcszBase, np2tool.skinmru[j]));
 #if defined(OSLANG_UTF8)  #if defined(OSLANG_UTF8)
                 TCHAR path[MAX_PATH];                  TCHAR szPath[MAX_PATH];
                 oemtotchar(path, NELEMENTS(path), file[j], -1);                  oemtotchar(szPath, NELEMENTS(szPath), pcszMruList[j], -1);
 #else  #else
                 const TCHAR *path = file[j];                  const TCHAR *szPath = pcszMruList[j];
 #endif  #endif
                 AppendMenu(ret, MF_STRING + flag, IDM_SKINMRU + j, path);                  AppendMenu(hmenuSub, MF_STRING + uFlag, IDM_TOOL_SKINMRU + j, szPath);
         }          }
         return(ret);  
 }  }
   
 static void skinchange(HWND hWnd) {  #if 0
   static HMENU createskinmenu(void)
   {
           HMENU           hMenu;
   const OEMCHAR   *pcszBase;
           UINT            uCount;
           OEMCHAR         *pszMru;
   const OEMCHAR   *pcszMruList[SKINMRU_MAX];
           UINT            i;
           UINT            uID[SKINMRU_MAX];
           UINT            j;
           UINT            uFlag;
   
           hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_TOOLWIN));
   
           pcszBase = np2tool.skin;
   
           CheckMenuItem(hMenu, IDM_TOOL_SKINDEF, MFCHECK(pcszBase[0] == '\0'));
           for (uCount=0; uCount<SKINMRU_MAX; uCount++)
           {
                   pszMru = np2tool.skinmru[uCount];
                   if (pszMru[0] == '\0')
                   {
                           break;
                   }
                   pszMru = file_getname(pszMru);
                   for (i=0; i<uCount; i++)
                   {
                           if (!file_cmpname(pszMru, pcszMruList[uID[i]]))
                           {
                                   break;
                           }
                   }
                   for (j=uCount; j>i; j--)
                   {
                           uID[j] = uID[j-1];
                   }
                   uID[i] = uCount;
                   pcszMruList[uCount] = pszMru;
           }
           for (i=0; i<uCount; i++)
           {
                   j = uID[i];
                   uFlag = MFCHECK(!file_cmpname(pcszBase, np2tool.skinmru[j]));
   #if defined(OSLANG_UTF8)
                   TCHAR szPath[MAX_PATH];
                   oemtotchar(szPath, NELEMENTS(szPath), pcszMruList[j], -1);
   #else
                   const TCHAR *szPath = pcszMruList[j];
   #endif
                   AppendMenu(hMenu, MF_STRING + uFlag, IDM_TOOL_SKINMRU + j, szPath);
           }
           return hMenu;
   }
   #endif
   
   static void skinchange(HWND hWnd)
   {
 const OEMCHAR   *p;  const OEMCHAR   *p;
         UINT            i;          UINT            i;
         HBITMAP         hbmp;          HBITMAP         hbmp;
Line 631  const OEMCHAR *p; Line 698  const OEMCHAR *p;
                 }                  }
                 file_cpyname(np2tool.skinmru[0], p, NELEMENTS(np2tool.skinmru[0]));                  file_cpyname(np2tool.skinmru[0], p, NELEMENTS(np2tool.skinmru[0]));
         }          }
         ModifyMenu(np2class_gethmenu(hWnd), 0, MF_BYPOSITION | MF_POPUP,          setSkinMruMenu(np2class_gethmenu(hWnd));
                                                                         (UINT)createskinmenu(), str_toolskin);          setSkinMruMenu(GetSystemMenu(hWnd, FALSE));
         ModifyMenu(GetSystemMenu(hWnd, FALSE), 0, MF_BYPOSITION | MF_POPUP,  
                                                                         (UINT)createskinmenu(), str_toolskin);  
         DrawMenuBar(hWnd);          DrawMenuBar(hWnd);
         sysmng_update(SYS_UPDATEOSCFG);          sysmng_update(SYS_UPDATEOSCFG);
   
         wlex = np2_winlocexallwin(hWndMain);          wlex = np2_winlocexallwin(g_hWndMain);
         winlocex_setholdwnd(wlex, hWnd);          winlocex_setholdwnd(wlex, hWnd);
         toolwindestroy();          toolwindestroy();
         hbmp = skinload(np2tool.skin);          hbmp = skinload(np2tool.skin);
Line 657  const OEMCHAR *p; Line 722  const OEMCHAR *p;
   
 // ----  // ----
   
 static void openpopup(HWND hWnd, LPARAM lp) {  static void openpopup(HWND hWnd, LPARAM lp)
   {
         HMENU   hMenu;          HMENU   hMenu;
         HMENU   mainmenu;  
         POINT   pt;          POINT   pt;
   
         hMenu = CreatePopupMenu();          hMenu = CreatePopupMenu();
         if (!winui_en) {          if (!winui_en)
                 mainmenu = np2class_gethmenu(hWndMain);          {
                 menu_addmenubar(hMenu, mainmenu);                  menu_addmenu(hMenu, 0, np2class_gethmenu(g_hWndMain), FALSE);
         }          }
         AppendMenu(hMenu, MF_POPUP, (UINT)createskinmenu(), str_toolskin);          menu_addmenures(hMenu, -1, IDR_TOOLWIN, FALSE);
         AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);          menu_addmenures(hMenu, -1, IDR_CLOSE, TRUE);
         AppendMenu(hMenu, MF_STRING, IDM_TOOLCLOSE, str_toolclose);          setSkinMruMenu(hMenu);
         pt.x = LOWORD(lp);          pt.x = LOWORD(lp);
         pt.y = HIWORD(lp);          pt.y = HIWORD(lp);
         ClientToScreen(hWnd, &pt);          ClientToScreen(hWnd, &pt);
Line 678  static void openpopup(HWND hWnd, LPARAM  Line 742  static void openpopup(HWND hWnd, LPARAM 
         DestroyMenu(hMenu);          DestroyMenu(hMenu);
 }  }
   
 static LRESULT CALLBACK twproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {  static void toolwin_oncreate(HWND hWnd)
   {
           HMENU   hMenu;
           int             nCount;
   
         HMENU           hMenu;          np2class_wmcreate(hWnd);
           setSkinMruMenu(np2class_gethmenu(hWnd));
   
           hMenu = GetSystemMenu(hWnd, FALSE);
           nCount = menu_addmenures(hMenu, 0, IDR_TOOLWIN, FALSE);
           if (nCount)
           {
                   InsertMenu(hMenu, nCount, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);
                   setSkinMruMenu(hMenu);
           }
   
           np2class_windowtype(hWnd, (np2tool.type & 1) << 1);
           toolwincreate(hWnd);
   }
   
   static LRESULT CALLBACK twproc(HWND hWnd, UINT uMsg, WPARAM wp, LPARAM lp)
   {
         BOOL            r;          BOOL            r;
         UINT            idc;          UINT            idc;
         WINLOCEX        wlex;          WINLOCEX        wlex;
   
         switch(msg) {          switch(uMsg) {
                 case WM_CREATE:                  case WM_CREATE:
                         np2class_wmcreate(hWnd);                          toolwin_oncreate(hWnd);
                         ModifyMenu(np2class_gethmenu(hWnd), 0, MF_BYPOSITION | MF_POPUP,  
                                                                         (UINT)createskinmenu(), str_toolskin);  
                         hMenu = GetSystemMenu(hWnd, FALSE);  
                         InsertMenu(hMenu, 0, MF_BYPOSITION | MF_POPUP,  
                                                                         (UINT)createskinmenu(), str_toolskin);  
                         InsertMenu(hMenu, 1, MF_BYPOSITION | MF_SEPARATOR, 0, NULL);  
   
                         np2class_windowtype(hWnd, (np2tool.type & 1) << 1);  
                         toolwincreate(hWnd);  
                         break;                          break;
   
                 case WM_SYSCOMMAND:                  case WM_SYSCOMMAND:
                         switch(wp) {                          switch(wp) {
                                 case IDM_SKINSEL:                                  case IDM_TOOL_SKINSEL:
                                 case IDM_SKINDEF:                                  case IDM_TOOL_SKINDEF:
                                 case IDM_SKINMRU + 0:                                  case IDM_TOOL_SKINMRU + 0:
                                 case IDM_SKINMRU + 1:                                  case IDM_TOOL_SKINMRU + 1:
                                 case IDM_SKINMRU + 2:                                  case IDM_TOOL_SKINMRU + 2:
                                 case IDM_SKINMRU + 3:                                  case IDM_TOOL_SKINMRU + 3:
                                         return(SendMessage(hWnd, WM_COMMAND, wp, lp));                                          return(SendMessage(hWnd, WM_COMMAND, wp, lp));
   
                                 default:                                  default:
                                         return(DefWindowProc(hWnd, msg, wp, lp));                                          return(DefWindowProc(hWnd, uMsg, wp, lp));
                         }                          }
                         break;                          break;
   
Line 724  static LRESULT CALLBACK twproc(HWND hWnd Line 798  static LRESULT CALLBACK twproc(HWND hWnd
   
                                 case IDC_BASE + IDC_TOOLFDD1BROWSE:                                  case IDC_BASE + IDC_TOOLFDD1BROWSE:
                                         if (!winui_en) {                                          if (!winui_en) {
                                                 SendMessage(hWndMain, WM_COMMAND, IDM_FDD1OPEN, 0);                                                  SendMessage(g_hWndMain, WM_COMMAND, IDM_FDD1OPEN, 0);
                                         }                                          }
                                         break;                                          break;
   
Line 741  static LRESULT CALLBACK twproc(HWND hWnd Line 815  static LRESULT CALLBACK twproc(HWND hWnd
   
                                 case IDC_BASE + IDC_TOOLFDD2BROWSE:                                  case IDC_BASE + IDC_TOOLFDD2BROWSE:
                                         if (!winui_en) {                                          if (!winui_en) {
                                                 SendMessage(hWndMain, WM_COMMAND, IDM_FDD2OPEN, 0);                                                  SendMessage(g_hWndMain, WM_COMMAND, IDM_FDD2OPEN, 0);
                                         }                                          }
                                         break;                                          break;
   
Line 752  static LRESULT CALLBACK twproc(HWND hWnd Line 826  static LRESULT CALLBACK twproc(HWND hWnd
   
                                 case IDC_BASE + IDC_TOOLRESET:                                  case IDC_BASE + IDC_TOOLRESET:
                                         if (!winui_en) {                                          if (!winui_en) {
                                                 SendMessage(hWndMain, WM_COMMAND, IDM_RESET, 0);                                                  SendMessage(g_hWndMain, WM_COMMAND, IDM_RESET, 0);
                                                 SetForegroundWindow(hWndMain);                                                  SetForegroundWindow(g_hWndMain);
                                         }                                          }
                                         break;                                          break;
   
                                 case IDC_BASE + IDC_TOOLPOWER:                                  case IDC_BASE + IDC_TOOLPOWER:
                                         if (!winui_en) {                                          if (!winui_en) {
                                                 SendMessage(hWndMain, WM_CLOSE, 0, 0L);                                                  SendMessage(g_hWndMain, WM_CLOSE, 0, 0L);
                                         }                                          }
                                         break;                                          break;
   
                                 case IDM_SKINSEL:                                  case IDM_TOOL_SKINSEL:
                                         soundmng_disable(SNDPROC_TOOL);                                          soundmng_disable(SNDPROC_TOOL);
                                         r = dlgs_selectfile(hWnd, &skinui, np2tool.skin,                                          r = dlgs_openfile(hWnd, &fpSkin, np2tool.skin,
                                                                                         NELEMENTS(np2tool.skin), NULL);                                                                                          NELEMENTS(np2tool.skin), NULL);
                                         soundmng_enable(SNDPROC_TOOL);                                          soundmng_enable(SNDPROC_TOOL);
                                         if (r) {                                          if (r) {
Line 773  static LRESULT CALLBACK twproc(HWND hWnd Line 847  static LRESULT CALLBACK twproc(HWND hWnd
                                         }                                          }
                                         break;                                          break;
   
                                 case IDM_SKINDEF:                                  case IDM_TOOL_SKINDEF:
                                         np2tool.skin[0] = '\0';                                          np2tool.skin[0] = '\0';
                                         skinchange(hWnd);                                          skinchange(hWnd);
                                         break;                                          break;
   
                                 case IDM_SKINMRU + 0:                                  case IDM_TOOL_SKINMRU + 0:
                                 case IDM_SKINMRU + 1:                                  case IDM_TOOL_SKINMRU + 1:
                                 case IDM_SKINMRU + 2:                                  case IDM_TOOL_SKINMRU + 2:
                                 case IDM_SKINMRU + 3:                                  case IDM_TOOL_SKINMRU + 3:
                                         file_cpyname(np2tool.skin,                                          file_cpyname(np2tool.skin,
                                                                         np2tool.skinmru[LOWORD(wp) - IDM_SKINMRU],                                                          np2tool.skinmru[LOWORD(wp) - IDM_TOOL_SKINMRU],
                                                                         NELEMENTS(np2tool.skin));                                                          NELEMENTS(np2tool.skin));
                                         skinchange(hWnd);                                          skinchange(hWnd);
                                         break;                                          break;
   
                                 case IDM_TOOLCLOSE:                                  case IDM_CLOSE:
                                         SendMessage(hWnd, WM_CLOSE, 0, 0);                                          SendMessage(hWnd, WM_CLOSE, 0, 0);
                                         break;                                          break;
   
                                 default:                                  default:
                                         if (!winui_en) {                                          if (!winui_en) {
                                                 return(SendMessage(hWndMain, msg, wp, lp));                                                  return(SendMessage(g_hWndMain, uMsg, wp, lp));
                                         }                                          }
                                         break;                                          break;
                         }                          }
Line 802  static LRESULT CALLBACK twproc(HWND hWnd Line 876  static LRESULT CALLBACK twproc(HWND hWnd
   
                 case WM_KEYDOWN:                                                // TABを押した時に復帰                  case WM_KEYDOWN:                                                // TABを押した時に復帰
                         if ((short)wp == VK_TAB) {                          if ((short)wp == VK_TAB) {
                                 idc = GetWindowLong(hWnd, GTWL_FOCUS);                                  idc = (UINT)GetWindowLongPtr(hWnd, GTWLP_FOCUS);
                                 if (idc < IDC_MAXITEMS) {                                  if (idc < IDC_MAXITEMS) {
                                         SetFocus(toolwin.sub[idc]);                                          SetFocus(toolwin.sub[idc]);
                                 }                                  }
                                 return(0);                                  return(0);
                         }                          }
                         return(SendMessage(hWndMain, msg, wp, lp));                          return(SendMessage(g_hWndMain, uMsg, wp, lp));
   
                 case WM_KEYUP:                  case WM_KEYUP:
                         if ((short)wp == VK_TAB) {                          if ((short)wp == VK_TAB) {
                                 return(0);                                  return(0);
                         }                          }
                         return(SendMessage(hWndMain, msg, wp, lp));                          return(SendMessage(g_hWndMain, uMsg, wp, lp));
   
                 case WM_PAINT:                  case WM_PAINT:
                         toolwinpaint(hWnd);                          toolwinpaint(hWnd);
                         break;                          break;
   
                 case WM_DRAWITEM:                  case WM_DRAWITEM:
                         tooldrawbutton(hWnd, wp, (LPDRAWITEMSTRUCT)lp);                          tooldrawbutton(hWnd, (UINT)wp, (LPDRAWITEMSTRUCT)lp);
                         break;                          break;
   
                 case WM_ENTERMENULOOP:                  case WM_ENTERMENULOOP:
Line 883  static LRESULT CALLBACK twproc(HWND hWnd Line 957  static LRESULT CALLBACK twproc(HWND hWnd
   
                 case WM_LBUTTONDBLCLK:                  case WM_LBUTTONDBLCLK:
                         np2tool.type ^= 1;                          np2tool.type ^= 1;
                         wlex = np2_winlocexallwin(hWndMain);                          wlex = np2_winlocexallwin(g_hWndMain);
                         winlocex_setholdwnd(wlex, hWnd);                          winlocex_setholdwnd(wlex, hWnd);
                         np2class_windowtype(hWnd, (np2tool.type & 1) << 1);                          np2class_windowtype(hWnd, (np2tool.type & 1) << 1);
                         winlocex_move(wlex);                          winlocex_move(wlex);
Line 892  static LRESULT CALLBACK twproc(HWND hWnd Line 966  static LRESULT CALLBACK twproc(HWND hWnd
                         break;                          break;
   
                 default:                  default:
                         return(DefWindowProc(hWnd, msg, wp, lp));                          return(DefWindowProc(hWnd, uMsg, wp, lp));
         }          }
         return(0);          return(0);
 }  }
Line 904  BOOL toolwin_initapp(HINSTANCE hInstance Line 978  BOOL toolwin_initapp(HINSTANCE hInstance
         wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;          wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
         wc.lpfnWndProc = twproc;          wc.lpfnWndProc = twproc;
         wc.cbClsExtra = 0;          wc.cbClsExtra = 0;
         wc.cbWndExtra = GTWL_SIZE;          wc.cbWndExtra = GTWLP_SIZE;
         wc.hInstance = hInstance;          wc.hInstance = hInstance;
         wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));          wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
         wc.hCursor = LoadCursor(NULL, IDC_ARROW);          wc.hCursor = LoadCursor(NULL, IDC_ARROW);
Line 914  BOOL toolwin_initapp(HINSTANCE hInstance Line 988  BOOL toolwin_initapp(HINSTANCE hInstance
         return(RegisterClass(&wc));          return(RegisterClass(&wc));
 }  }
   
 void toolwin_create(void) {  void toolwin_create(HINSTANCE hInstance) {
   
         HBITMAP hbmp;          HBITMAP hbmp;
         BITMAP  bmp;          BITMAP  bmp;
           TCHAR   szCaption[128];
         HWND    hWnd;          HWND    hWnd;
   
         if (toolwin.hwnd) {          if (toolwin.hwnd) {
Line 930  void toolwin_create(void) { Line 1005  void toolwin_create(void) {
         }          }
         GetObject(hbmp, sizeof(BITMAP), &bmp);          GetObject(hbmp, sizeof(BITMAP), &bmp);
         toolwin.hbmp = hbmp;          toolwin.hbmp = hbmp;
         hWnd = CreateWindow(np2toolclass, np2tooltitle,  
           loadstringresource(LOWORD(IDS_CAPTION_TOOL),
                                                                                   szCaption, NELEMENTS(szCaption));
           hWnd = CreateWindow(np2toolclass, szCaption,
                                                         WS_SYSMENU | WS_MINIMIZEBOX,                                                          WS_SYSMENU | WS_MINIMIZEBOX,
                                                         np2tool.posx, np2tool.posy,                                                          np2tool.posx, np2tool.posy,
                                                         bmp.bmWidth, bmp.bmHeight,                                                          bmp.bmWidth, bmp.bmHeight,
                                                         NULL, NULL, hInst, NULL);                                                          NULL, NULL, hInstance, NULL);
         winloc_setclientsize(hWnd, bmp.bmWidth, bmp.bmHeight);          winloc_setclientsize(hWnd, bmp.bmWidth, bmp.bmHeight);
         toolwin.hwnd = hWnd;          toolwin.hwnd = hWnd;
         if (hWnd == NULL) {          if (hWnd == NULL) {
Line 942  void toolwin_create(void) { Line 1020  void toolwin_create(void) {
         }          }
         UpdateWindow(hWnd);          UpdateWindow(hWnd);
         ShowWindow(hWnd, SW_SHOWNOACTIVATE);          ShowWindow(hWnd, SW_SHOWNOACTIVATE);
         SetForegroundWindow(hWndMain);          SetForegroundWindow(g_hWndMain);
         return;          return;
   
 twope_err2:  twope_err2:
Line 1004  void toolwin_setfdd(UINT8 drv, const OEM Line 1082  void toolwin_setfdd(UINT8 drv, const OEM
                 sub = toolwin.sub[fddlist[drv]];                  sub = toolwin.sub[fddlist[drv]];
                 if (sub) {                  if (sub) {
                         remakefddlist(sub, fdd);                          remakefddlist(sub, fdd);
                         SetForegroundWindow(hWndMain);                          SetForegroundWindow(g_hWndMain);
                 }                  }
         }          }
 }  }

Removed from v.1.19  
changed lines
  Added in v.1.25


RetroPC.NET-CVS <cvs@retropc.net>