| version 1.5, 2003/11/04 19:23:03 | version 1.6, 2003/11/21 06:51:14 | 
| Line 6 | Line 6 | 
 | #include        "sysmng.h" | #include        "sysmng.h" | 
 | #include        "dialog.h" | #include        "dialog.h" | 
 | #include        "dialogs.h" | #include        "dialogs.h" | 
 | #include        "bit2res.h" |  | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 |  | #include        "dipswbmp.h" | 
 |  |  | 
 |  |  | 
 | #ifdef __cplusplus | #ifdef __cplusplus | 
| Line 67  static void setmpujmp(HWND hWnd, BYTE va | Line 67  static void setmpujmp(HWND hWnd, BYTE va | 
 | } | } | 
 | } | } | 
 |  |  | 
 | static void setmpuiodip(BYTE *image, int px, int py, int align, BYTE v) { |  | 
 |  |  | 
 | int             i, j, y; |  | 
 |  |  | 
 | px *= 9; |  | 
 | px++; |  | 
 | py *= 9; |  | 
 | for (i=0; i<4; i++, px+=9, v<<=1) { |  | 
 | y = py + ((v&0x80)?5:9); |  | 
 | for (j=0; j<3; j++) { |  | 
 | dlgs_linex(image, px, y+j, 7, align, 2); |  | 
 | } |  | 
 | } |  | 
 | } |  | 
 |  |  | 
 | static void setmpuintdip(BYTE *image, int px, int py, int align, BYTE v) { |  | 
 |  |  | 
 | dlgs_setjumpery(image, px + 3 - (mpu & 3), py, align); |  | 
 | } |  | 
 |  |  | 
 |  |  | 
 | // ---- | // ---- | 
 |  |  | 
| Line 206  static void mpucmddipsw(HWND hWnd) { | Line 186  static void mpucmddipsw(HWND hWnd) { | 
 | } | } | 
 | } | } | 
 |  |  | 
 | static void mpudrawdipsw(HWND hWnd, HDC hdc) { |  | 
 |  |  | 
 | BITMAPINFO      *bmi; |  | 
 | HBITMAP         hbmp; |  | 
 | BYTE            *image; |  | 
 | int                     align; |  | 
 | BYTE            *imgbtm; |  | 
 | HDC                     hmdc; |  | 
 |  |  | 
 | bmi = (BITMAPINFO *)_MALLOC(bit2res_getsize(&mpudip), "bitmap"); |  | 
 | if (bmi == NULL) { |  | 
 | return; |  | 
 | } |  | 
 | bit2res_sethead(bmi, &mpudip); |  | 
 | hbmp = CreateDIBSection(hdc, bmi, DIB_RGB_COLORS, |  | 
 | (void **)&image, NULL, 0); |  | 
 | bit2res_setdata(image, &mpudip); |  | 
 | align = ((mpudip.x + 7) / 2) & ~3; |  | 
 | imgbtm = image + align * (mpudip.y - 1); |  | 
 | setmpuiodip(imgbtm, 2, 1, align, mpu); |  | 
 | setmpuintdip(imgbtm, 9, 1, align, mpu); |  | 
 | hmdc = CreateCompatibleDC(hdc); |  | 
 | SelectObject(hmdc, hbmp); |  | 
 | BitBlt(hdc, 0, 0, mpudip.x, mpudip.y, hmdc, 0, 0, SRCCOPY); |  | 
 | DeleteDC(hmdc); |  | 
 | DeleteObject(hbmp); |  | 
 | _MFREE(bmi); |  | 
 | } |  | 
 |  |  | 
 | LRESULT CALLBACK MidiDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { | LRESULT CALLBACK MidiDialogProc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) { | 
 |  |  | 
 | switch(msg) { | switch(msg) { | 
| Line 280  LRESULT CALLBACK MidiDialogProc(HWND hWn | Line 231  LRESULT CALLBACK MidiDialogProc(HWND hWn | 
 |  |  | 
 | case WM_DRAWITEM: | case WM_DRAWITEM: | 
 | if (LOWORD(wp) == IDC_MPUDIP) { | if (LOWORD(wp) == IDC_MPUDIP) { | 
| mpudrawdipsw(hWnd, ((LPDRAWITEMSTRUCT)lp)->hDC); | dlgs_drawbmp(((LPDRAWITEMSTRUCT)lp)->hDC, | 
|  | dipswbmp_getmpu(mpu)); | 
 | } | } | 
 | return(FALSE); | return(FALSE); | 
 |  |  |