|
|
| version 1.2, 2004/03/25 10:41:13 | version 1.6, 2004/04/07 13:15:40 |
|---|---|
| Line 416 typedef struct { | Line 416 typedef struct { |
| HWND hwnd; | HWND hwnd; |
| WINLOCEX wlex; | WINLOCEX wlex; |
| DD2HDL dd2hdl; | DD2HDL dd2hdl; |
| int width; | |
| int height; | |
| } SKBDWIN; | } SKBDWIN; |
| typedef struct { | typedef struct { |
| Line 435 static const INITBL np2skini[] = { | Line 437 static const INITBL np2skini[] = { |
| {"WindposY", INITYPE_SINT32, &skbdcfg.posy, 0}, | {"WindposY", INITYPE_SINT32, &skbdcfg.posy, 0}, |
| {"windtype", INITYPE_BOOL, &skbdcfg.type, 0}}; | {"windtype", INITYPE_BOOL, &skbdcfg.type, 0}}; |
| static void skpalcnv(CMNPAL *dst, 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) | |
| case 16: | case 16: |
| for (i=0; i<pals; i++) { | for (i=0; i<pals; i++) { |
| dst[i].pal16 = dd2_get16pal(skbdwin.dd2hdl, src[i]); | dst[i].pal16 = dd2_get16pal(skbdwin.dd2hdl, src[i]); |
| } | } |
| break; | 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 | |
| } | } |
| } | } |
| static void skpaintmsg(HWND hWnd) { | static void skdrawkeys(HWND hWnd, BOOL redraw) { |
| HDC hdc; | |
| PAINTSTRUCT ps; | |
| RECT rect; | RECT rect; |
| RECT draw; | RECT draw; |
| CMNVRAM *vram; | CMNVRAM *vram; |
| TRACEOUT(("skpaintmsg")); | |
| GetClientRect(hWnd, &rect); | GetClientRect(hWnd, &rect); |
| draw.left = 0; | draw.left = 0; |
| draw.top = 0; | draw.top = 0; |
| draw.right = min(SOFTKBD_WIDTH, rect.right - rect.left); | draw.right = min(skbdwin.width, rect.right - rect.left); |
| draw.bottom = min(SOFTKBD_HEIGHT, rect.bottom - rect.top); | draw.bottom = min(skbdwin.height, rect.bottom - rect.top); |
| hdc = BeginPaint(hWnd, &ps); | |
| vram = dd2_bsurflock(skbdwin.dd2hdl); | vram = dd2_bsurflock(skbdwin.dd2hdl); |
| if (vram) { | if (vram) { |
| softkbd_paint(vram, skpalcnv); | softkbd_paint(vram, skpalcnv, redraw); |
| dd2_bsurfunlock(skbdwin.dd2hdl); | dd2_bsurfunlock(skbdwin.dd2hdl); |
| dd2_blt(skbdwin.dd2hdl, NULL, &draw); | dd2_blt(skbdwin.dd2hdl, NULL, &draw); |
| } | } |
| } | |
| static void skpaintmsg(HWND hWnd) { | |
| HDC hdc; | |
| PAINTSTRUCT ps; | |
| hdc = BeginPaint(hWnd, &ps); | |
| skdrawkeys(hWnd, TRUE); | |
| EndPaint(hWnd, &ps); | EndPaint(hWnd, &ps); |
| } | } |
| Line 483 static LRESULT CALLBACK skproc(HWND hWnd | Line 502 static LRESULT CALLBACK skproc(HWND hWnd |
| switch(msg) { | switch(msg) { |
| case WM_CREATE: | case WM_CREATE: |
| np2class_wmcreate(hWnd); | np2class_wmcreate(hWnd); |
| winloc_setclientsize(hWnd, SOFTKBD_WIDTH, SOFTKBD_HEIGHT); | winloc_setclientsize(hWnd, skbdwin.width, skbdwin.height); |
| np2class_windowtype(hWnd, (skbdcfg.type & 1) + 1); | np2class_windowtype(hWnd, (skbdcfg.type & 1) + 1); |
| break; | break; |
| Line 589 BOOL skbdwin_initialize(HINSTANCE hPreIn | Line 608 BOOL skbdwin_initialize(HINSTANCE hPreIn |
| return(FAILURE); | return(FAILURE); |
| } | } |
| } | } |
| softkbd_initialize(); | |
| return(SUCCESS); | return(SUCCESS); |
| } | } |
| void skbdwin_deinitialize(void) { | |
| softkbd_deinitialize(); | |
| } | |
| void skbdwin_create(void) { | void skbdwin_create(void) { |
| HWND hwnd; | HWND hwnd; |
| Line 600 void skbdwin_create(void) { | Line 625 void skbdwin_create(void) { |
| return; | return; |
| } | } |
| ZeroMemory(&skbdwin, sizeof(skbdwin)); | ZeroMemory(&skbdwin, sizeof(skbdwin)); |
| if (softkbd_getsize(&skbdwin.width, &skbdwin.height) != SUCCESS) { | |
| return; | |
| } | |
| hwnd = CreateWindow(np2skclass, np2skcaption, | hwnd = CreateWindow(np2skclass, np2skcaption, |
| WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | | WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | |
| WS_MINIMIZEBOX, | WS_MINIMIZEBOX, |
| skbdcfg.posx, skbdcfg.posy, | skbdcfg.posx, skbdcfg.posy, |
| SOFTKBD_WIDTH, SOFTKBD_HEIGHT, | skbdwin.width, skbdwin.height, |
| NULL, NULL, hInst, NULL); | NULL, NULL, hInst, NULL); |
| skbdwin.hwnd = hwnd; | skbdwin.hwnd = hwnd; |
| if (hwnd == NULL) { | if (hwnd == NULL) { |
| Line 612 void skbdwin_create(void) { | Line 640 void skbdwin_create(void) { |
| } | } |
| ShowWindow(hwnd, SW_SHOWNOACTIVATE); | ShowWindow(hwnd, SW_SHOWNOACTIVATE); |
| UpdateWindow(hwnd); | UpdateWindow(hwnd); |
| skbdwin.dd2hdl = dd2_create(hwnd, SOFTKBD_WIDTH, SOFTKBD_HEIGHT); | skbdwin.dd2hdl = dd2_create(hwnd, skbdwin.width, skbdwin.height); |
| if (skbdwin.dd2hdl == NULL) { | if (skbdwin.dd2hdl == NULL) { |
| goto skcre_err2; | goto skcre_err2; |
| } | } |
| Line 639 HWND skbdwin_gethwnd(void) { | Line 667 HWND skbdwin_gethwnd(void) { |
| return(skbdwin.hwnd); | return(skbdwin.hwnd); |
| } | } |
| void skbdwin_process(void) { | |
| if ((skbdwin.hwnd) && (softkbd_process())) { | |
| skdrawkeys(skbdwin.hwnd, FALSE); | |
| } | |
| } | |
| void skbdwin_readini(void) { | void skbdwin_readini(void) { |
| char path[MAX_PATH]; | char path[MAX_PATH]; |