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

version 1.19, 2005/03/20 13:12:49 version 1.23, 2007/01/08 08:52:21
Line 89  typedef struct { Line 89  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 197  static void calctextsize(OEMCHAR *path,  Line 195  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 396  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 460  static void toolwincreate(HWND hWnd) { Line 462  static void toolwincreate(HWND hWnd) {
                 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 482  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 802  static LRESULT CALLBACK twproc(HWND hWnd Line 805  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]);
                                 }                                  }
Line 821  static LRESULT CALLBACK twproc(HWND hWnd Line 824  static LRESULT CALLBACK twproc(HWND 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 904  BOOL toolwin_initapp(HINSTANCE hInstance Line 907  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);

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


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