Diff for /np2/win9x/subwind.cpp between versions 1.7 and 1.17

version 1.7, 2004/04/08 13:08:22 version 1.17, 2007/12/28 20:36:40
Line 20  static void wintypechange(HWND hWnd, UIN Line 20  static void wintypechange(HWND hWnd, UIN
   
         WINLOCEX        wlex;          WINLOCEX        wlex;
   
         wlex = np2_winlocexallwin(hWndMain);          wlex = np2_winlocexallwin(g_hWndMain);
         winlocex_setholdwnd(wlex, hWnd);          winlocex_setholdwnd(wlex, hWnd);
         np2class_windowtype(hWnd, type);          np2class_windowtype(hWnd, type);
         winlocex_move(wlex);          winlocex_move(wlex);
Line 36  enum { Line 36  enum {
         KDISPCFG_MIDI   = 0x80          KDISPCFG_MIDI   = 0x80
 };  };
   
 enum {  
         IDM_KDCLOSE             = 3000  
 };  
   
 typedef struct {  typedef struct {
         HWND            hwnd;          HWND            hwnd;
         WINLOCEX        wlex;          WINLOCEX        wlex;
Line 49  typedef struct { Line 45  typedef struct {
 typedef struct {  typedef struct {
         int             posx;          int             posx;
         int             posy;          int             posy;
         BYTE    mode;          UINT8   mode;
         BYTE    type;          UINT8   type;
 } KDISPCFG;  } KDISPCFG;
   
 static  KDISPWIN        kdispwin;  static  KDISPWIN        kdispwin;
 static  KDISPCFG        kdispcfg;  static  KDISPCFG        kdispcfg;
   
 static const char kdispapp[] = "Key Display";  static const TCHAR kdispclass[] = _T("NP2-KeyDispWin");
 static const char kdispclass[] = "NP2-KeyDispWin";  
 static const char str_kdclose[] = "&Close";  
   
 static const UINT32 kdisppal[KEYDISP_PALS] =  static const UINT32 kdisppal[KEYDISP_PALS] =
                                                                         {0x00000000, 0xffffffff, 0xf9ff0000};                                                                          {0x00000000, 0xffffffff, 0xf9ff0000};
   
 static const INITBL kdispini[] = {  static const OEMCHAR kdispapp[] = OEMTEXT("Key Display");
         {"WindposX", INITYPE_SINT32,    &kdispcfg.posx,                 0},  static const PFTBL kdispini[] = {
         {"WindposY", INITYPE_SINT32,    &kdispcfg.posy,                 0},                                  PFVAL("WindposX", PFTYPE_SINT32,        &kdispcfg.posx),
         {"keydmode", INITYPE_UINT8,             &kdispcfg.mode,                 0},                                  PFVAL("WindposY", PFTYPE_SINT32,        &kdispcfg.posy),
         {"windtype", INITYPE_BOOL,              &kdispcfg.type,                 0}};                                  PFVAL("keydmode", PFTYPE_UINT8,         &kdispcfg.mode),
                                   PFVAL("windtype", PFTYPE_BOOL,          &kdispcfg.type)};
   
   
 static BYTE kdgetpal8(CMNPALFN *self, UINT num) {  static UINT8 kdgetpal8(CMNPALFN *self, UINT num) {
   
         if (num < KEYDISP_PALS) {          if (num < KEYDISP_PALS) {
                 return(kdisppal[num] >> 24);                  return(kdisppal[num] >> 24);
Line 119  static void kdsetwinsize(void) { Line 114  static void kdsetwinsize(void) {
         int                     height;          int                     height;
         WINLOCEX        wlex;          WINLOCEX        wlex;
   
         wlex = np2_winlocexallwin(hWndMain);          wlex = np2_winlocexallwin(g_hWndMain);
         winlocex_setholdwnd(wlex, kdispwin.hwnd);          winlocex_setholdwnd(wlex, kdispwin.hwnd);
         keydisp_getsize(&width, &height);          keydisp_getsize(&width, &height);
         winloc_setclientsize(kdispwin.hwnd, width, height);          winloc_setclientsize(kdispwin.hwnd, width, height);
Line 127  static void kdsetwinsize(void) { Line 122  static void kdsetwinsize(void) {
         winlocex_destroy(wlex);          winlocex_destroy(wlex);
 }  }
   
 static void kdsetdispmode(BYTE mode) {  static void kdsetdispmode(UINT8 mode) {
   
         HMENU   hmenu;          HMENU   hmenu;
   
Line 155  static void kdopenpopup(HWND hWnd, LPARA Line 150  static void kdopenpopup(HWND hWnd, LPARA
         POINT   pt;          POINT   pt;
   
         hMenu = CreatePopupMenu();          hMenu = CreatePopupMenu();
         menu_addmenubar(hMenu, np2class_gethmenu(hWnd));          menu_addmenu(hMenu, 0, np2class_gethmenu(hWnd), FALSE);
         AppendMenu(hMenu, MF_SEPARATOR, 0, NULL);          menu_addmenures(hMenu, -1, IDR_CLOSE, TRUE);
         AppendMenu(hMenu, MF_STRING, IDM_KDCLOSE, str_kdclose);  
         pt.x = LOWORD(lp);          pt.x = LOWORD(lp);
         pt.y = HIWORD(lp);          pt.y = HIWORD(lp);
         ClientToScreen(hWnd, &pt);          ClientToScreen(hWnd, &pt);
Line 187  static LRESULT CALLBACK kdproc(HWND hWnd Line 181  static LRESULT CALLBACK kdproc(HWND hWnd
                                         kdsetdispmode(KEYDISP_MODEMIDI);                                          kdsetdispmode(KEYDISP_MODEMIDI);
                                         break;                                          break;
   
                                 case IDM_KDCLOSE:                                  case IDM_CLOSE:
                                         return(SendMessage(hWnd, WM_CLOSE, 0, 0));                                          return(SendMessage(hWnd, WM_CLOSE, 0, 0));
                         }                          }
                         break;                          break;
Line 221  static LRESULT CALLBACK kdproc(HWND hWnd Line 215  static LRESULT CALLBACK kdproc(HWND hWnd
   
                 case WM_KEYDOWN:                  case WM_KEYDOWN:
                 case WM_KEYUP:                  case WM_KEYUP:
                         SendMessage(hWndMain, msg, wp, lp);                          SendMessage(g_hWndMain, msg, wp, lp);
                         break;                          break;
   
                 case WM_ENTERMENULOOP:                  case WM_ENTERMENULOOP:
Line 278  static LRESULT CALLBACK kdproc(HWND hWnd Line 272  static LRESULT CALLBACK kdproc(HWND hWnd
         return(0L);          return(0L);
 }  }
   
 BOOL kdispwin_initialize(HINSTANCE hPreInst) {  BOOL kdispwin_initialize(HINSTANCE hInstance) {
   
         WNDCLASS        wc;          WNDCLASS        wc;
   
         if (!hPreInst) {          ZeroMemory(&wc, sizeof(wc));
                 ZeroMemory(&wc, sizeof(wc));          wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
                 wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;          wc.lpfnWndProc = kdproc;
                 wc.lpfnWndProc = kdproc;          wc.cbClsExtra = 0;
                 wc.cbClsExtra = 0;          wc.cbWndExtra = NP2GWLP_SIZE;
                 wc.cbWndExtra = NP2GWL_SIZE;          wc.hInstance = hInstance;
                 wc.hInstance = hInst;          wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
                 wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON2));          wc.hCursor = LoadCursor(NULL, IDC_ARROW);
                 wc.hCursor = LoadCursor(NULL, IDC_ARROW);          wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
                 wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);          wc.lpszMenuName = MAKEINTRESOURCE(IDR_KEYDISP);
                 wc.lpszMenuName = MAKEINTRESOURCE(IDR_KEYDISP);          wc.lpszClassName = kdispclass;
                 wc.lpszClassName = kdispclass;          if (!RegisterClass(&wc)) {
                 if (!RegisterClass(&wc)) {                  return(FAILURE);
                         return(FAILURE);  
                 }  
         }          }
         keydisp_initialize();          keydisp_initialize();
         return(SUCCESS);          return(SUCCESS);
 }  }
   
 void kdispwin_create(void) {  void kdispwin_create(HINSTANCE hInstance) {
   
           TCHAR           szCaption[128];
         HWND            hwnd;          HWND            hwnd;
         BYTE            mode;          UINT8           mode;
         CMNPALFN        palfn;          CMNPALFN        palfn;
   
         if (kdispwin.hwnd != NULL) {          if (kdispwin.hwnd != NULL) {
                 return;                  return;
         }          }
         ZeroMemory(&kdispwin, sizeof(kdispwin));          ZeroMemory(&kdispwin, sizeof(kdispwin));
         hwnd = CreateWindow(kdispclass, kdispapp,  
           loadstringresource(LOWORD(IDS_CAPTION_KEYDISP),
                                                                                   szCaption, NELEMENTS(szCaption));
           hwnd = CreateWindow(kdispclass, szCaption,
                                                 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |                                                  WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
                                                 WS_MINIMIZEBOX,                                                  WS_MINIMIZEBOX,
                                                 kdispcfg.posx, kdispcfg.posy,                                                  kdispcfg.posx, kdispcfg.posy,
                                                 CW_USEDEFAULT, CW_USEDEFAULT,                                                  KEYDISP_WIDTH, KEYDISP_HEIGHT,
                                                 NULL, NULL, hInst, NULL);                                                  NULL, NULL, hInstance, NULL);
         kdispwin.hwnd = hwnd;          kdispwin.hwnd = hwnd;
         if (hwnd == NULL) {          if (hwnd == NULL) {
                 goto kdcre_err1;                  goto kdcre_err1;
Line 345  void kdispwin_create(void) { Line 341  void kdispwin_create(void) {
         palfn.userdata = (long)kdispwin.dd2hdl;          palfn.userdata = (long)kdispwin.dd2hdl;
         keydisp_setpal(&palfn);          keydisp_setpal(&palfn);
         kdispwin_draw(0);          kdispwin_draw(0);
         SetForegroundWindow(hWndMain);          SetForegroundWindow(g_hWndMain);
         return;          return;
   
 kdcre_err2:  kdcre_err2:
Line 368  HWND kdispwin_gethwnd(void) { Line 364  HWND kdispwin_gethwnd(void) {
         return(kdispwin.hwnd);          return(kdispwin.hwnd);
 }  }
   
 void kdispwin_draw(BYTE cnt) {  void kdispwin_draw(UINT8 cnt) {
   
         BYTE    flag;          UINT8   flag;
   
         if (kdispwin.hwnd) {          if (kdispwin.hwnd) {
                 if (!cnt) {                  if (!cnt) {
Line 386  void kdispwin_draw(BYTE cnt) { Line 382  void kdispwin_draw(BYTE cnt) {
   
 void kdispwin_readini(void) {  void kdispwin_readini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         ZeroMemory(&kdispcfg, sizeof(kdispcfg));          ZeroMemory(&kdispcfg, sizeof(kdispcfg));
         kdispcfg.posx = CW_USEDEFAULT;          kdispcfg.posx = CW_USEDEFAULT;
         kdispcfg.posy = CW_USEDEFAULT;          kdispcfg.posy = CW_USEDEFAULT;
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_read(path, kdispapp, kdispini, sizeof(kdispini)/sizeof(INITBL));          ini_read(path, kdispapp, kdispini, NELEMENTS(kdispini));
 }  }
   
 void kdispwin_writeini(void) {  void kdispwin_writeini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_write(path, kdispapp, kdispini, sizeof(kdispini)/sizeof(INITBL));          ini_write(path, kdispapp, kdispini, NELEMENTS(kdispini));
 }  }
 #endif  #endif
   
Line 426  typedef struct { Line 422  typedef struct {
 static  MDBGWIN         mdbgwin;  static  MDBGWIN         mdbgwin;
 static  MDBGCFG         mdbgcfg;  static  MDBGCFG         mdbgcfg;
   
 static const char mdbgapp[] = "Memory Map";  static const TCHAR mdbgtitle[] = _T("Memory Map");
 static const char mdbgclass[] = "NP2-MemDbgWin";  static const TCHAR mdbgclass[] = _T("NP2-MemDbgWin");
 static const INITBL mdbgini[] = {  
         {"WindposX", INITYPE_SINT32,    &mdbgcfg.posx,                  0},  #if defined(OSLANG_UTF8)
         {"WindposY", INITYPE_SINT32,    &mdbgcfg.posy,                  0},  static const OEMCHAR mdbgapp[] = OEMTEXT("Memory Map");
         {"windtype", INITYPE_BOOL,              &mdbgcfg.type,                  0}};  #else
   #define mdbgapp         mdbgtitle
   #endif
   static const PFTBL mdbgini[] = {
                                   PFVAL("WindposX", PFTYPE_SINT32,        &mdbgcfg.posx),
                                   PFVAL("WindposY", PFTYPE_SINT32,        &mdbgcfg.posy),
                                   PFVAL("windtype", PFTYPE_BOOL,          &mdbgcfg.type)};
   
   
 static void mdpalcnv(CMNPAL *dst, const RGB32 *src, UINT pals, UINT bpp) {  static void mdpalcnv(CMNPAL *dst, const RGB32 *src, UINT pals, UINT bpp) {
Line 439  static void mdpalcnv(CMNPAL *dst, const  Line 441  static void mdpalcnv(CMNPAL *dst, const 
         UINT    i;          UINT    i;
   
         switch(bpp) {          switch(bpp) {
   #if defined(SUPPORT_16BPP)
                   case 16:
                           for (i=0; i<pals; i++) {
                                   dst[i].pal16 = dd2_get16pal(mdbgwin.dd2hdl, src[i]);
                           }
                           break;
   #endif
   #if defined(SUPPORT_24BPP)
                   case 24:
   #endif
   #if defined(SUPPORT_32BPP)
                 case 32:                  case 32:
   #endif
   #if defined(SUPPORT_24BPP) || defined(SUPPORT_32BPP)
                         for (i=0; i<pals; i++) {                          for (i=0; i<pals; i++) {
                                 dst[i].pal32.d = src[i].d;                                  dst[i].pal32.d = src[i].d;
                         }                          }
                         break;                          break;
   #endif
         }          }
 }  }
   
Line 497  static LRESULT CALLBACK mdproc(HWND hWnd Line 513  static LRESULT CALLBACK mdproc(HWND hWnd
                         mdpaintmsg(hWnd);                          mdpaintmsg(hWnd);
                         break;                          break;
   
                   case WM_LBUTTONDOWN:
                           if (mdbgcfg.type & 1) {
                                   return(SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0L));
                           }
                           break;
   
                   case WM_LBUTTONDBLCLK:
                           mdbgcfg.type ^= 1;
                           wintypechange(hWnd, (mdbgcfg.type & 1) + 1);
                           sysmng_update(SYS_UPDATEOSCFG);
                           break;
   
                 case WM_KEYDOWN:                  case WM_KEYDOWN:
                 case WM_KEYUP:                  case WM_KEYUP:
                         SendMessage(hWndMain, msg, wp, lp);                          SendMessage(g_hWndMain, msg, wp, lp);
                         break;                          break;
   
                 case WM_ENTERMENULOOP:                  case WM_ENTERMENULOOP:
Line 553  static LRESULT CALLBACK mdproc(HWND hWnd Line 581  static LRESULT CALLBACK mdproc(HWND hWnd
         return(0);          return(0);
 }  }
   
 BOOL memdbg_initialize(HINSTANCE hInstance) {  BOOL mdbgwin_initialize(HINSTANCE hInstance) {
   
         WNDCLASS        wc;          WNDCLASS        wc;
   
         wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW;          wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
         wc.lpfnWndProc = mdproc;          wc.lpfnWndProc = mdproc;
         wc.cbClsExtra = 0;          wc.cbClsExtra = 0;
         wc.cbWndExtra = 0;          wc.cbWndExtra = 0;
         wc.hInstance = hInstance;          wc.hInstance = hInstance;
         wc.hIcon = NULL;          wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
         wc.hCursor = LoadCursor(NULL, IDC_ARROW);          wc.hCursor = LoadCursor(NULL, IDC_ARROW);
         wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);          wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
         wc.lpszMenuName = NULL;          wc.lpszMenuName = NULL;
Line 574  BOOL memdbg_initialize(HINSTANCE hInstan Line 602  BOOL memdbg_initialize(HINSTANCE hInstan
         return(SUCCESS);          return(SUCCESS);
 }  }
   
 void memdbg_create(void) {  void mdbgwin_create(HINSTANCE hInstance) {
   
         HWND    hwnd;          HWND    hWnd;
   
         if (mdbgwin.hwnd != NULL) {          if (mdbgwin.hwnd != NULL) {
                 return;                  return;
         }          }
         ZeroMemory(&mdbgwin, sizeof(mdbgwin));          ZeroMemory(&mdbgwin, sizeof(mdbgwin));
         memdbg32_getsize(&mdbgwin.width, &mdbgwin.height);          memdbg32_getsize(&mdbgwin.width, &mdbgwin.height);
         hwnd = CreateWindow(mdbgclass, mdbgapp,          hWnd = CreateWindow(mdbgclass, mdbgtitle,
                                                 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |                                                  WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
                                                 WS_MINIMIZEBOX,                                                  WS_MINIMIZEBOX,
                                                 mdbgcfg.posx, mdbgcfg.posy,                                                  mdbgcfg.posx, mdbgcfg.posy,
                                                 mdbgwin.width, mdbgwin.height,                                                  mdbgwin.width, mdbgwin.height,
                                                 NULL, NULL, hInst, NULL);                                                  NULL, NULL, hInstance, NULL);
         mdbgwin.hwnd = hwnd;          mdbgwin.hwnd = hWnd;
         if (hwnd == NULL) {          if (hWnd == NULL) {
                 goto mdcre_err1;                  goto mdcre_err1;
         }          }
         ShowWindow(hwnd, SW_SHOWNOACTIVATE);          ShowWindow(hWnd, SW_SHOWNOACTIVATE);
         UpdateWindow(hwnd);          UpdateWindow(hWnd);
         mdbgwin.dd2hdl = dd2_create(hwnd, mdbgwin.width, mdbgwin.height);          mdbgwin.dd2hdl = dd2_create(hWnd, mdbgwin.width, mdbgwin.height);
         if (mdbgwin.dd2hdl == NULL) {          if (mdbgwin.dd2hdl == NULL) {
                 goto mdcre_err2;                  goto mdcre_err2;
         }          }
         InvalidateRect(hwnd, NULL, TRUE);          InvalidateRect(hWnd, NULL, TRUE);
         SetForegroundWindow(hWndMain);          SetForegroundWindow(g_hWndMain);
         return;          return;
   
 mdcre_err2:  mdcre_err2:
         DestroyWindow(hwnd);          DestroyWindow(hWnd);
   
 mdcre_err1:  mdcre_err1:
         return;          return;
 }  }
   
 void memdbg_destroy(void) {  void mdbgwin_destroy(void) {
   
         if (mdbgwin.hwnd) {          if (mdbgwin.hwnd) {
                 DestroyWindow(mdbgwin.hwnd);                  DestroyWindow(mdbgwin.hwnd);
         }          }
 }  }
   
 void memdbg_process(void) {  void mdbgwin_process(void) {
   
         if ((mdbgwin.hwnd) && (memdbg32_process())) {          if ((mdbgwin.hwnd) && (memdbg32_process())) {
                 mddrawwin(mdbgwin.hwnd, FALSE);                  mddrawwin(mdbgwin.hwnd, FALSE);
         }          }
 }  }
   
 HWND memdbg_gethwnd(void) {  HWND mdbgwin_gethwnd(void) {
   
         return(mdbgwin.hwnd);          return(mdbgwin.hwnd);
 }  }
   
 void memdbg_readini(void) {  void mdbgwin_readini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         mdbgcfg.posx = CW_USEDEFAULT;          mdbgcfg.posx = CW_USEDEFAULT;
         mdbgcfg.posy = CW_USEDEFAULT;          mdbgcfg.posy = CW_USEDEFAULT;
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_read(path, mdbgapp, mdbgini, sizeof(mdbgini)/sizeof(INITBL));          ini_read(path, mdbgapp, mdbgini, NELEMENTS(mdbgini));
 }  }
   
 void memdbg_writeini(void) {  void mdbgwin_writeini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_write(path, mdbgapp, mdbgini, sizeof(mdbgini)/sizeof(INITBL));          ini_write(path, mdbgapp, mdbgini, NELEMENTS(mdbgini));
 }  }
 #endif  #endif
   
Line 669  typedef struct { Line 697  typedef struct {
 static  SKBDWIN         skbdwin;  static  SKBDWIN         skbdwin;
 static  SKBDCFG         skbdcfg;  static  SKBDCFG         skbdcfg;
   
 static const char skbdapp[] = "Soft Keyboard";  static const TCHAR skbdclass[] = _T("NP2-SoftKBDWin");
 static const char skbdclass[] = "NP2-SoftKBDWin";  
 static const INITBL skbdini[] = {  static const OEMCHAR skbdapp[] = OEMTEXT("Soft Keyboard");
         {"WindposX", INITYPE_SINT32,    &skbdcfg.posx,                  0},  static const PFTBL skbdini[] = {
         {"WindposY", INITYPE_SINT32,    &skbdcfg.posy,                  0},                                  PFVAL("WindposX", PFTYPE_SINT32,        &skbdcfg.posx),
         {"windtype", INITYPE_BOOL,              &skbdcfg.type,                  0}};                                  PFVAL("WindposY", PFTYPE_SINT32,        &skbdcfg.posy),
                                   PFVAL("windtype", PFTYPE_BOOL,          &skbdcfg.type)};
   
 static void skpalcnv(CMNPAL *dst, const RGB32 *src, UINT pals, UINT bpp) {  static void skpalcnv(CMNPAL *dst, const RGB32 *src, UINT pals, UINT bpp) {
   
         UINT    i;          UINT    i;
   
         switch(bpp) {          switch(bpp) {
 #if defined(SUPPORT_8BPP)  
                 case 8:  
                         break;  
 #endif  
 #if defined(SUPPORT_16BPP)  #if defined(SUPPORT_16BPP)
                 case 16:                  case 16:
                         for (i=0; i<pals; i++) {                          for (i=0; i<pals; i++) {
Line 770  static LRESULT CALLBACK skproc(HWND hWnd Line 795  static LRESULT CALLBACK skproc(HWND hWnd
   
                 case WM_KEYDOWN:                  case WM_KEYDOWN:
                 case WM_KEYUP:                  case WM_KEYUP:
                         SendMessage(hWndMain, msg, wp, lp);                          SendMessage(g_hWndMain, msg, wp, lp);
                         break;                          break;
   
                 case WM_ENTERMENULOOP:                  case WM_ENTERMENULOOP:
Line 824  static LRESULT CALLBACK skproc(HWND hWnd Line 849  static LRESULT CALLBACK skproc(HWND hWnd
         return(0L);          return(0L);
 }  }
   
 BOOL skbdwin_initialize(HINSTANCE hPreInst) {  BOOL skbdwin_initialize(HINSTANCE hInstance) {
   
         WNDCLASS        wc;          WNDCLASS        wc;
   
         if (!hPreInst) {          ZeroMemory(&wc, sizeof(wc));
                 ZeroMemory(&wc, sizeof(wc));          wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
                 wc.style = CS_BYTEALIGNCLIENT | CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;          wc.lpfnWndProc = skproc;
                 wc.lpfnWndProc = skproc;          wc.cbClsExtra = 0;
                 wc.cbClsExtra = 0;          wc.cbWndExtra = NP2GWLP_SIZE;
                 wc.cbWndExtra = NP2GWL_SIZE;          wc.hInstance = hInstance;
                 wc.hInstance = hInst;          wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_ICON2));
                 wc.hIcon = LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICON2));          wc.hCursor = LoadCursor(NULL, IDC_ARROW);
                 wc.hCursor = LoadCursor(NULL, IDC_ARROW);          wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);
                 wc.hbrBackground = (HBRUSH)GetStockObject(NULL_BRUSH);          wc.lpszMenuName = NULL;
                 wc.lpszMenuName = NULL;          wc.lpszClassName = skbdclass;
                 wc.lpszClassName = skbdclass;          if (!RegisterClass(&wc)) {
                 if (!RegisterClass(&wc)) {                  return(FAILURE);
                         return(FAILURE);  
                 }  
         }          }
         softkbd_initialize();          softkbd_initialize();
         return(SUCCESS);          return(SUCCESS);
Line 853  void skbdwin_deinitialize(void) { Line 876  void skbdwin_deinitialize(void) {
         softkbd_deinitialize();          softkbd_deinitialize();
 }  }
   
 void skbdwin_create(void) {  void skbdwin_create(HINSTANCE hInstance) {
   
           TCHAR   szCaption[128];
         HWND    hwnd;          HWND    hwnd;
   
         if (skbdwin.hwnd != NULL) {          if (skbdwin.hwnd != NULL) {
Line 864  void skbdwin_create(void) { Line 888  void skbdwin_create(void) {
         if (softkbd_getsize(&skbdwin.width, &skbdwin.height) != SUCCESS) {          if (softkbd_getsize(&skbdwin.width, &skbdwin.height) != SUCCESS) {
                 return;                  return;
         }          }
         hwnd = CreateWindow(skbdclass, skbdapp,  
           loadstringresource(LOWORD(IDS_CAPTION_SOFTKEY),
                                                                                   szCaption, NELEMENTS(szCaption));
           hwnd = CreateWindow(skbdclass, szCaption,
                                                 WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |                                                  WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION |
                                                 WS_MINIMIZEBOX,                                                  WS_MINIMIZEBOX,
                                                 skbdcfg.posx, skbdcfg.posy,                                                  skbdcfg.posx, skbdcfg.posy,
                                                 skbdwin.width, skbdwin.height,                                                  skbdwin.width, skbdwin.height,
                                                 NULL, NULL, hInst, NULL);                                                  NULL, NULL, hInstance, NULL);
         skbdwin.hwnd = hwnd;          skbdwin.hwnd = hwnd;
         if (hwnd == NULL) {          if (hwnd == NULL) {
                 goto skcre_err1;                  goto skcre_err1;
Line 881  void skbdwin_create(void) { Line 908  void skbdwin_create(void) {
                 goto skcre_err2;                  goto skcre_err2;
         }          }
         InvalidateRect(hwnd, NULL, TRUE);          InvalidateRect(hwnd, NULL, TRUE);
         SetForegroundWindow(hWndMain);          SetForegroundWindow(g_hWndMain);
         return;          return;
   
 skcre_err2:  skcre_err2:
Line 912  void skbdwin_process(void) { Line 939  void skbdwin_process(void) {
   
 void skbdwin_readini(void) {  void skbdwin_readini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         skbdcfg.posx = CW_USEDEFAULT;          skbdcfg.posx = CW_USEDEFAULT;
         skbdcfg.posy = CW_USEDEFAULT;          skbdcfg.posy = CW_USEDEFAULT;
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_read(path, skbdapp, skbdini, sizeof(skbdini)/sizeof(INITBL));          ini_read(path, skbdapp, skbdini, NELEMENTS(skbdini));
 }  }
   
 void skbdwin_writeini(void) {  void skbdwin_writeini(void) {
   
         char    path[MAX_PATH];          OEMCHAR path[MAX_PATH];
   
         initgetfile(path, sizeof(path));          initgetfile(path, NELEMENTS(path));
         ini_write(path, skbdapp, skbdini, sizeof(skbdini)/sizeof(INITBL));          ini_write(path, skbdapp, skbdini, NELEMENTS(skbdini));
 }  }
 #endif  #endif
   

Removed from v.1.7  
changed lines
  Added in v.1.17


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