diff --git a/dlls/commdlg/cdlg_Ca.rc b/dlls/commdlg/cdlg_Ca.rc index caa31047fb9..6c217e3927b 100644 --- a/dlls/commdlg/cdlg_Ca.rc +++ b/dlls/commdlg/cdlg_Ca.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Cs.rc b/dlls/commdlg/cdlg_Cs.rc index 69bc8f64d72..cb05794dc6c 100644 --- a/dlls/commdlg/cdlg_Cs.rc +++ b/dlls/commdlg/cdlg_Cs.rc @@ -105,8 +105,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Barvy" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Da.rc b/dlls/commdlg/cdlg_Da.rc index 0e89742fcc0..5d80b10c66f 100644 --- a/dlls/commdlg/cdlg_Da.rc +++ b/dlls/commdlg/cdlg_Da.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farve" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_De.rc b/dlls/commdlg/cdlg_De.rc index 4a8d7e04079..eae40609ea3 100644 --- a/dlls/commdlg/cdlg_De.rc +++ b/dlls/commdlg/cdlg_De.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farbe" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_En.rc b/dlls/commdlg/cdlg_En.rc index c5aaa25d438..79559b918ed 100644 --- a/dlls/commdlg/cdlg_En.rc +++ b/dlls/commdlg/cdlg_En.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Eo.rc b/dlls/commdlg/cdlg_Eo.rc index 4d9001fd6db..0d3dced4652 100644 --- a/dlls/commdlg/cdlg_Eo.rc +++ b/dlls/commdlg/cdlg_Eo.rc @@ -105,8 +105,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Koloro" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Es.rc b/dlls/commdlg/cdlg_Es.rc index 574912ef8c1..e1ac37a5e89 100644 --- a/dlls/commdlg/cdlg_Es.rc +++ b/dlls/commdlg/cdlg_Es.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Fi.rc b/dlls/commdlg/cdlg_Fi.rc index 5506d5e3c54..0ea15d60716 100644 --- a/dlls/commdlg/cdlg_Fi.rc +++ b/dlls/commdlg/cdlg_Fi.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Vri" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Fr.rc b/dlls/commdlg/cdlg_Fr.rc index 313f1eb0327..0b9d8bfb570 100644 --- a/dlls/commdlg/cdlg_Fr.rc +++ b/dlls/commdlg/cdlg_Fr.rc @@ -120,8 +120,8 @@ FONT 8, "Helv" CTEXT "AaBbYyZz",1093,104,81,149,37,SS_NOPREFIX | WS_VISIBLE } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Couleurs" FONT 8, "Helv" { @@ -142,7 +142,7 @@ FONT 8, "Helv" EDITTEXT 705, 226,152,18,12, WS_BORDER | WS_GROUP | WS_TABSTOP CONTROL "" ,720,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,14,140,86 CONTROL "" ,721,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP,4,116,140,28 - CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116 CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116 + CONTROL "" ,710,"STATIC",WS_BORDER|SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,4,118,116 CONTROL "" ,702,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 278,4,8,116 CONTROL "" ,709,"STATIC",SS_SIMPLE|WS_TABSTOP|WS_GROUP, 152,124,40,26 DEFPUSHBUTTON "Ok", 1, 4, 166, 44, 14, BS_DEFPUSHBUTTON | WS_GROUP | WS_TABSTOP diff --git a/dlls/commdlg/cdlg_Hu.rc b/dlls/commdlg/cdlg_Hu.rc index e2511d6c90c..551c7954efb 100644 --- a/dlls/commdlg/cdlg_Hu.rc +++ b/dlls/commdlg/cdlg_Hu.rc @@ -121,8 +121,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Szn" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_It.rc b/dlls/commdlg/cdlg_It.rc index c99884d4bac..ff27f61e632 100644 --- a/dlls/commdlg/cdlg_It.rc +++ b/dlls/commdlg/cdlg_It.rc @@ -120,8 +120,8 @@ FONT 8, "Helv" CTEXT "AaBbYyZz",1093,104,81,149,37,SS_NOPREFIX | WS_VISIBLE } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Colore" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Ja.rc b/dlls/commdlg/cdlg_Ja.rc index 145854d932f..13b1112bc4d 100644 --- a/dlls/commdlg/cdlg_Ja.rc +++ b/dlls/commdlg/cdlg_Ja.rc @@ -122,8 +122,8 @@ FONT 8, "System" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "F̐ݒ" FONT 8, "System" { diff --git a/dlls/commdlg/cdlg_Ko.rc b/dlls/commdlg/cdlg_Ko.rc index 62b47ecf164..ce728dbe340 100644 --- a/dlls/commdlg/cdlg_Ko.rc +++ b/dlls/commdlg/cdlg_Ko.rc @@ -105,8 +105,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Nl.rc b/dlls/commdlg/cdlg_Nl.rc index 9beed7ba947..d7f257191cf 100644 --- a/dlls/commdlg/cdlg_Nl.rc +++ b/dlls/commdlg/cdlg_Nl.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Kleur" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_No.rc b/dlls/commdlg/cdlg_No.rc index ed2c4573d06..f0948380f49 100644 --- a/dlls/commdlg/cdlg_No.rc +++ b/dlls/commdlg/cdlg_No.rc @@ -105,8 +105,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farge" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Pl.rc b/dlls/commdlg/cdlg_Pl.rc index 2aca9777119..7ac49d0467d 100644 --- a/dlls/commdlg/cdlg_Pl.rc +++ b/dlls/commdlg/cdlg_Pl.rc @@ -157,8 +157,8 @@ BEGIN CONTROL "&Pomoc", 1038, "BUTTON", BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_GROUP | WS_TABSTOP, 174, 75, 68, 14 END -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Color" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Pt.rc b/dlls/commdlg/cdlg_Pt.rc index 64785891bae..734a65a84b3 100644 --- a/dlls/commdlg/cdlg_Pt.rc +++ b/dlls/commdlg/cdlg_Pt.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Cor" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Ru.rc b/dlls/commdlg/cdlg_Ru.rc index a3b35ec3897..b51bf909cbb 100644 --- a/dlls/commdlg/cdlg_Ru.rc +++ b/dlls/commdlg/cdlg_Ru.rc @@ -122,8 +122,8 @@ FONT 8, "Ms Sans Serif" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION " " FONT 8, "Ms Sans Serif" { diff --git a/dlls/commdlg/cdlg_Sk.rc b/dlls/commdlg/cdlg_Sk.rc index 8e55f8a285f..000b6bb67ff 100644 --- a/dlls/commdlg/cdlg_Sk.rc +++ b/dlls/commdlg/cdlg_Sk.rc @@ -105,7 +105,7 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 200 +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 264, 185 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Farby" FONT 8, "Helv" diff --git a/dlls/commdlg/cdlg_Sv.rc b/dlls/commdlg/cdlg_Sv.rc index 028a0fb27b4..f76a86ce51c 100644 --- a/dlls/commdlg/cdlg_Sv.rc +++ b/dlls/commdlg/cdlg_Sv.rc @@ -122,8 +122,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Frg" FONT 8, "Helv" { diff --git a/dlls/commdlg/cdlg_Wa.rc b/dlls/commdlg/cdlg_Wa.rc index b4d8f53cfea..a875d0a4f43 100644 --- a/dlls/commdlg/cdlg_Wa.rc +++ b/dlls/commdlg/cdlg_Wa.rc @@ -127,8 +127,8 @@ FONT 8, "Helv" } -CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 200 -STYLE WS_CLIPCHILDREN | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU +CHOOSE_COLOR DIALOG LOADONCALL MOVEABLE DISCARDABLE 36, 24, 300, 185 +STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Coleurs" FONT 8, "Helv" { diff --git a/dlls/commdlg/colordlg.c b/dlls/commdlg/colordlg.c index fc6d4708752..a49e27c8d04 100644 --- a/dlls/commdlg/colordlg.c +++ b/dlls/commdlg/colordlg.c @@ -5,6 +5,10 @@ * Copyright 1996 Albrecht Kleine */ +/* BUGS : still seems to not refresh correctly + sometimes, especially when 2 instances of the + dialog are loaded at the same time */ + #include #include #include @@ -67,8 +71,12 @@ struct CCPRIVATE int s; int l; /* for temporary storing of hue,sat,lum */ int capturedGraph; /* control mouse captured */ + RECT focusRect; /* rectangle last focused item */ + HWND hwndFocus; /* handle last focused item */ }; +#define LCCPRIV struct CCPRIVATE * + /*********************************************************************** * CC_HSLtoRGB [internal] */ @@ -181,15 +189,54 @@ static int CC_RGBtoHSL(char c, int r, int g, int b) return result; /* is this integer arithmetic precise enough ? */ } + +/*********************************************************************** + * CC_DrawCurrentFocusRect [internal] + */ +void CC_DrawCurrentFocusRect( LCCPRIV lpp ) +{ + if (lpp->hwndFocus) + { + HDC hdc = GetDC(lpp->hwndFocus); + DrawFocusRect(hdc, &lpp->focusRect); + ReleaseDC(lpp->hwndFocus, hdc); + } +} + +/*********************************************************************** + * CC_DrawFocusRect [internal] + */ +void CC_DrawFocusRect( LCCPRIV lpp, HWND hwnd, int x, int y, int rows, int cols) +{ + RECT rect; + int dx, dy; + HDC hdc; + + CC_DrawCurrentFocusRect(lpp); /* remove current focus rect */ + /* calculate new rect */ + GetClientRect(hwnd, &rect); + dx = (rect.right - rect.left) / cols; + dy = (rect.bottom - rect.top) / rows; + rect.left += (x * dx) - 2; + rect.top += (y * dy) - 2; + rect.right = rect.left + dx; + rect.bottom = rect.top + dy; + /* draw it */ + hdc = GetDC(hwnd); + DrawFocusRect(hdc, &rect); + CopyRect(&lpp->focusRect, &rect); + lpp->hwndFocus = hwnd; + ReleaseDC(hwnd, hdc); +} + #define DISTANCE 4 /*********************************************************************** * CC_MouseCheckPredefColorArray [internal] * returns 1 if one of the predefined colors is clicked - * the choosen color is returned in *cr */ -static int CC_MouseCheckPredefColorArray( HWND hDlg, int dlgitem, int rows, int cols, - LPARAM lParam, COLORREF *cr ) +static int CC_MouseCheckPredefColorArray( LCCPRIV lpp, HWND hDlg, int dlgitem, int rows, int cols, + LPARAM lParam ) { HWND hwnd; POINT point; @@ -210,8 +257,8 @@ static int CC_MouseCheckPredefColorArray( HWND hDlg, int dlgitem, int rows, int { x = point.x / dx; y = point.y / dy; - *cr = predefcolors[y][x]; - /* FIXME: Draw_a_Focus_Rect() */ + lpp->lpcc->rgbResult = predefcolors[y][x]; + CC_DrawFocusRect(lpp, hwnd, x, y, rows, cols); return 1; } } @@ -220,19 +267,20 @@ static int CC_MouseCheckPredefColorArray( HWND hDlg, int dlgitem, int rows, int /*********************************************************************** * CC_MouseCheckUserColorArray [internal] - * return 1 if the user clicked a color (returned in *cr) + * return 1 if the user clicked a color */ -static int CC_MouseCheckUserColorArray( HWND hDlg, int dlgitem, int rows, int cols, - LPARAM lParam, COLORREF *cr, COLORREF*crarr ) +static int CC_MouseCheckUserColorArray( LCCPRIV lpp, HWND hDlg, int dlgitem, int rows, int cols, + LPARAM lParam ) { HWND hwnd; POINT point; RECT rect; int dx, dy, x, y; + COLORREF *crarr = lpp->lpcc->lpCustColors; CONV_POINTSTOPOINT(&(MAKEPOINTS(lParam)), &point); ClientToScreen(hDlg, &point); - hwnd=GetDlgItem(hDlg, dlgitem); + hwnd = GetDlgItem(hDlg, dlgitem); GetWindowRect(hwnd, &rect); if (PtInRect(&rect, point)) { @@ -244,8 +292,8 @@ static int CC_MouseCheckUserColorArray( HWND hDlg, int dlgitem, int rows, int co { x = point.x / dx; y = point.y / dy; - *cr = crarr[x+cols*y]; - /* FIXME: Draw_a_Focus_Rect() */ + lpp->lpcc->rgbResult = crarr[x + (cols * y) ]; + CC_DrawFocusRect(lpp, hwnd, x, y, rows, cols); return 1; } } @@ -397,13 +445,13 @@ static void CC_PaintTriangle( HWND hDlg, int y) { HDC hDC; long temp; - int w = GetDialogBaseUnits(); + int w = LOWORD(GetDialogBaseUnits()); POINT points[3]; int height; int oben; RECT rect; HWND hwnd = GetDlgItem(hDlg, 0x2be); - struct CCPRIVATE *lpp = (struct CCPRIVATE *)GetWindowLongA( hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA( hDlg, DWL_USER); if (IsWindowVisible( GetDlgItem(hDlg, 0x2c6))) /* if full size */ { @@ -441,7 +489,7 @@ static void CC_PaintCross( HWND hDlg, int x, int y) HDC hDC; int w = GetDialogBaseUnits(); HWND hwnd = GetDlgItem(hDlg, 0x2c6); - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA( hDlg, DWL_USER ); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA( hDlg, DWL_USER ); RECT rect; POINT point, p; HPEN hPen; @@ -451,7 +499,7 @@ static void CC_PaintCross( HWND hDlg, int x, int y) GetClientRect(hwnd, &rect); hDC = GetDC(hwnd); SelectClipRgn( hDC, CreateRectRgnIndirect(&rect)); - hPen = CreatePen(PS_SOLID, 2, 0); + hPen = CreatePen(PS_SOLID, 2, 0xffffff); /* -white- color */ hPen = SelectObject(hDC, hPen); point.x = ((long)rect.right * (long)x) / (long)MAXHORI; point.y = rect.bottom - ((long)rect.bottom * (long)y) / (long)MAXVERT; @@ -486,7 +534,7 @@ static void CC_PrepareColorGraph( HWND hDlg ) { int sdif, hdif, xdif, ydif, r, g, b, hue, sat; HWND hwnd = GetDlgItem(hDlg, 0x2c6); - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); HBRUSH hbrush; HDC hdc ; RECT rect, client; @@ -529,7 +577,7 @@ static void CC_PrepareColorGraph( HWND hDlg ) static void CC_PaintColorGraph( HWND hDlg ) { HWND hwnd = GetDlgItem( hDlg, 0x2c6 ); - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); HDC hDC; RECT rect; if (IsWindowVisible(hwnd)) /* if full size */ @@ -589,7 +637,7 @@ static void CC_PaintLumBar( HWND hDlg, int hue, int sat ) static void CC_EditSetRGB( HWND hDlg, COLORREF cr ) { char buffer[10]; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); int r = GetRValue(cr); int g = GetGValue(cr); int b = GetBValue(cr); @@ -612,7 +660,7 @@ static void CC_EditSetRGB( HWND hDlg, COLORREF cr ) static void CC_EditSetHSL( HWND hDlg, int h, int s, int l ) { char buffer[10]; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); lpp->updating = TRUE; if (IsWindowVisible( GetDlgItem(hDlg, 0x2c6) )) /* if full size */ { @@ -634,7 +682,7 @@ static void CC_EditSetHSL( HWND hDlg, int h, int s, int l ) static void CC_SwitchToFullSize( HWND hDlg, COLORREF result, LPRECT lprect ) { int i; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); EnableWindow( GetDlgItem(hDlg, 0x2cf), FALSE); CC_PrepareColorGraph(hDlg); @@ -670,6 +718,7 @@ static void CC_PaintPredefColorArray( HWND hDlg, int rows, int cols) HDC hdc; HBRUSH hBrush; int dx, dy, i, j, k; + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); GetClientRect(hwnd, &rect); dx = rect.right / cols; @@ -697,7 +746,8 @@ static void CC_PaintPredefColorArray( HWND hDlg, int rows, int cols) rect.left = k; } ReleaseDC(hwnd, hdc); - /* FIXME: draw_a_focus_rect */ + if (lpp->hwndFocus == hwnd) + CC_DrawCurrentFocusRect(lpp); } /*********************************************************************** * CC_PaintUserColorArray [internal] @@ -710,6 +760,7 @@ static void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, COLORREF* lpc HDC hdc; HBRUSH hBrush; int dx, dy, i, j, k; + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); GetClientRect(hwnd, &rect); @@ -740,7 +791,8 @@ static void CC_PaintUserColorArray( HWND hDlg, int rows, int cols, COLORREF* lpc } ReleaseDC(hwnd, hdc); } - /* FIXME: draw_a_focus_rect */ + if (lpp->hwndFocus == hwnd) + CC_DrawCurrentFocusRect(lpp); } @@ -768,7 +820,7 @@ static LONG CC_WMInitDialog( HWND hDlg, WPARAM wParam, LPARAM lParam, BOOL b16 ) HWND hwnd; RECT rect; POINT point; - struct CCPRIVATE * lpp; + LCCPRIV lpp; TRACE("WM_INITDIALOG lParam=%08lX\n", lParam); lpp = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(struct CCPRIVATE) ); @@ -851,7 +903,7 @@ static LONG CC_WMInitDialog( HWND hDlg, WPARAM wParam, LPARAM lParam, BOOL b16 ) } else CC_SwitchToFullSize(hDlg, lpp->lpcc->rgbResult, NULL); - res=TRUE; + res = TRUE; for (i = 0x2bf; i < 0x2c5; i++) SendMessageA( GetDlgItem(hDlg, i), EM_LIMITTEXT, 3, 0); /* max 3 digits: xyz */ if (CC_HookCallChk(lpp->lpcc)) @@ -896,7 +948,7 @@ static LRESULT CC_WMCommand( HWND hDlg, WPARAM wParam, LPARAM lParam, WORD notif UINT cokmsg; HDC hdc; COLORREF *cr; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); TRACE("CC_WMCommand wParam=%x lParam=%lx\n", wParam, lParam); switch (wParam) { @@ -1045,10 +1097,9 @@ static LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam ) { HDC hdc; PAINTSTRUCT ps; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); hdc = BeginPaint(hDlg, &ps); - EndPaint(hDlg, &ps); /* we have to paint dialog children except text and buttons */ CC_PaintPredefColorArray(hDlg, 6, 8); CC_PaintUserColorArray(hDlg, 2, 8, lpp->lpcc->lpCustColors); @@ -1057,14 +1108,8 @@ static LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam ) CC_PaintTriangle(hDlg, lpp->l); CC_PaintSelectedColor(hDlg, lpp->lpcc->rgbResult); CC_PaintColorGraph(hDlg); + EndPaint(hDlg, &ps); - /* special necessary for Wine */ - ValidateRect( GetDlgItem(hDlg, 0x2d0), NULL); - ValidateRect( GetDlgItem(hDlg, 0x2d1), NULL); - ValidateRect( GetDlgItem(hDlg, 0x2be), NULL); - ValidateRect( GetDlgItem(hDlg, 0x2c5), NULL); - ValidateRect( GetDlgItem(hDlg, 0x2c6), NULL); - /* hope we can remove it later -->FIXME */ return TRUE; } @@ -1074,7 +1119,7 @@ static LRESULT CC_WMPaint( HWND hDlg, WPARAM wParam, LPARAM lParam ) */ static LRESULT CC_WMLButtonUp( HWND hDlg, WPARAM wParam, LPARAM lParam ) { - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); if (lpp->capturedGraph) { lpp->capturedGraph = 0; @@ -1091,7 +1136,7 @@ static LRESULT CC_WMLButtonUp( HWND hDlg, WPARAM wParam, LPARAM lParam ) */ static LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam ) { - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); int r, g, b; if (lpp->capturedGraph) @@ -1128,15 +1173,14 @@ static LRESULT CC_WMMouseMove( HWND hDlg, LPARAM lParam ) */ static LRESULT CC_WMLButtonDown( HWND hDlg, WPARAM wParam, LPARAM lParam ) { - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); int r, g, b, i; i = 0; - if (CC_MouseCheckPredefColorArray(hDlg, 0x2d0, 6, 8, lParam, &lpp->lpcc->rgbResult)) + if (CC_MouseCheckPredefColorArray(lpp, hDlg, 0x2d0, 6, 8, lParam)) i = 1; else - if (CC_MouseCheckUserColorArray(hDlg, 0x2d1, 2, 8, lParam,&lpp->lpcc->rgbResult, - lpp->lpcc->lpCustColors)) + if (CC_MouseCheckUserColorArray(lpp, hDlg, 0x2d1, 2, 8, lParam)) i = 1; else if (CC_MouseCheckColorGraph(hDlg, 0x2c6, &lpp->h, &lpp->s, lParam)) @@ -1189,7 +1233,7 @@ static LRESULT WINAPI ColorDlgProc( HWND hDlg, UINT message, { int res; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); if (message != WM_INITDIALOG) { if (!lpp) @@ -1251,7 +1295,7 @@ LRESULT WINAPI ColorDlgProc16( HWND16 hDlg, UINT16 message, WPARAM16 wParam, LONG lParam ) { int res; - struct CCPRIVATE * lpp = (struct CCPRIVATE *)GetWindowLongA(hDlg, DWL_USER); + LCCPRIV lpp = (LCCPRIV)GetWindowLongA(hDlg, DWL_USER); if (message != WM_INITDIALOG) { if (!lpp)