diff --git a/xwords4/wince/ceclrsel.c b/xwords4/wince/ceclrsel.c index ac6fcf449..8f8a024df 100644 --- a/xwords4/wince/ceclrsel.c +++ b/xwords4/wince/ceclrsel.c @@ -225,8 +225,8 @@ myChooseColor( CEAppGlobals* globals, HWND hwnd, COLORREF* cref ) XP_LOGF( "setting up IDD_COLOREDITDLG" ); - result = DH(DialogBoxParam)( globals->hInst, (LPCTSTR)IDD_COLOREDITDLG, hwnd, - (DLGPROC)EditColorsDlg, (long)&state ); + result = DialogBoxParam( globals->hInst, (LPCTSTR)IDD_COLOREDITDLG, hwnd, + (DLGPROC)EditColorsDlg, (long)&state ); XP_LOGF( "DialogBoxParam=>%d", result ); @@ -266,7 +266,6 @@ initColorData( ColorsDlgState* cState, HWND hDlg ) for ( i = 0; i < NUM_EDITABLE_COLORS; ++i ) { COLORREF ref = cState->inColors[i]; cState->colors[i] = ref; - XP_LOGF( "ref[%d] = 0x%lx", i, (unsigned long)ref ); cState->brushes[i] = CreateSolidBrush( ref ); cState->buttons[i] = GetDlgItem( hDlg, FIRST_BUTTON + i ); } @@ -305,6 +304,8 @@ wrapChooseColor( ColorsDlgState* cState, HWND owner, XP_U16 button ) cState->colors[index] = clrref; DeleteObject( cState->brushes[index] ); cState->brushes[index] = CreateSolidBrush( clrref ); + XP_LOGF( "%s: may need to invalidate the button since color's changed", + __FUNCTION__ ); } #else CHOOSECOLOR ccs; @@ -336,11 +337,20 @@ wrapChooseColor( ColorsDlgState* cState, HWND owner, XP_U16 button ) #endif } /* wrapChooseColor */ +static void +ceDrawColorButton( ColorsDlgState* cState, DRAWITEMSTRUCT* dis ) +{ + HBRUSH brush = brushForButton( cState, dis->hwndItem ); + XP_ASSERT( !!brush ); + FillRect( dis->hDC, &dis->rcItem, brush ); +} /* ceDrawColorButton */ + LRESULT CALLBACK ColorsDlg( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { ColorsDlgState* cState; XP_U16 wid; + BOOL result = FALSE; if ( message == WM_INITDIALOG ) { SetWindowLong( hDlg, GWL_USERDATA, lParam ); @@ -349,7 +359,7 @@ ColorsDlg( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) cState->cancelled = XP_TRUE; cState->inited = XP_FALSE; - return TRUE; + result = TRUE; } else { cState = (ColorsDlgState*)GetWindowLong( hDlg, GWL_USERDATA ); if ( !!cState ) { @@ -361,15 +371,10 @@ ColorsDlg( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) switch (message) { - case WM_CTLCOLORBTN: { - HDC hdcButton = (HDC)wParam; - HWND hwndButton = (HWND)lParam; - HBRUSH brush = brushForButton( cState, hwndButton ); - /* if ( !!brush ) { */ - /* SetSysColors( hdcButton ) */ - /* } */ - return (BOOL)brush; - } + case WM_DRAWITEM: /* passed when button has BS_OWNERDRAW style */ + ceDrawColorButton( cState, (DRAWITEMSTRUCT*)lParam ); + result = TRUE; + break; case WM_COMMAND: wid = LOWORD(wParam); @@ -382,25 +387,27 @@ ColorsDlg( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) case IDCANCEL: deleteButtonBrushes( cState ); EndDialog(hDlg, wid); - return TRUE; + result = TRUE; + break; default: /* it's one of the color buttons. Set up with the appropriate color and launch ChooseColor */ wrapChooseColor( cState, hDlg, wid ); - return TRUE; + result = TRUE; + break; } } } } - return FALSE; + return result; } /* ColorsDlg */ XP_Bool ceDoColorsEdit( HWND hwnd, CEAppGlobals* globals, COLORREF* colors ) { -#if 1 +#ifdef _WIN32_WCE MessageBox( globals->hWnd, L"Color selection will be fixed in the next Beta.", L"Sorry...", MB_OK ); diff --git a/xwords4/wince/xwords4.rc b/xwords4/wince/xwords4.rc index d1d6cc7cd..51c18235c 100755 --- a/xwords4/wince/xwords4.rc +++ b/xwords4/wince/xwords4.rc @@ -425,45 +425,45 @@ FONT 8, "System" BEGIN LTEXT "Dbl letter:",DLBLTR_LABEL,CLR_COL_1,CLR_ROW_1, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",DLBLTR_BUTTON,CLR_COL_2,CLR_ROW_1,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",DLBLTR_BUTTON,CLR_COL_2,CLR_ROW_1,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Dbl word:",DBLWRD_LABEL,CLR_COL_3,CLR_ROW_1, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",DBLWRD_BUTTON,CLR_COL_4,CLR_ROW_1,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",DBLWRD_BUTTON,CLR_COL_4,CLR_ROW_1,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Triple letter:",TPLLTR_LABEL,CLR_COL_1,CLR_ROW_2, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",TPLLTR_BUTTON,CLR_COL_2,CLR_ROW_2,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",TPLLTR_BUTTON,CLR_COL_2,CLR_ROW_2,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Triple word:",TPLWRD_LABEL,CLR_COL_3,CLR_ROW_2, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",TPLWRD_BUTTON,CLR_COL_4,CLR_ROW_2,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",TPLWRD_BUTTON,CLR_COL_4,CLR_ROW_2,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Empty cell:",EMPTYCELL_LABEL,CLR_COL_1,CLR_ROW_3, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",EMPCELL_BUTTON,CLR_COL_2,CLR_ROW_3,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",EMPCELL_BUTTON,CLR_COL_2,CLR_ROW_3,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Tile bkgnd:",TILEBACK_LABEL,CLR_COL_3,CLR_ROW_3, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",TBACK_BUTTON,CLR_COL_4,CLR_ROW_3,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",TBACK_BUTTON,CLR_COL_4,CLR_ROW_3,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Player 1:",PLAYER1_LABEL,CLR_COL_1,CLR_ROW_4, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",PLAYER1_BUTTON,CLR_COL_2,CLR_ROW_4,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",PLAYER1_BUTTON,CLR_COL_2,CLR_ROW_4,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Player 2:",PLAYER2_LABEL,CLR_COL_3,CLR_ROW_4, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",PLAYER2_BUTTON,CLR_COL_4,CLR_ROW_4,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",PLAYER2_BUTTON,CLR_COL_4,CLR_ROW_4,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Player 3:",PLAYER3_LABEL,CLR_COL_1,CLR_ROW_5, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",PLAYER3_BUTTON,CLR_COL_2,CLR_ROW_5,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",PLAYER3_BUTTON,CLR_COL_2,CLR_ROW_5,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW LTEXT "Player 4:",PLAYER4_LABEL,CLR_COL_3,CLR_ROW_5, CLR_LAB_WIDTH,CLR_LAB_HT - PUSHBUTTON "",PLAYER4_BUTTON,CLR_COL_4,CLR_ROW_5,CLR_BUT_WIDTH,CLR_BUT_HT + PUSHBUTTON "",PLAYER4_BUTTON,CLR_COL_4,CLR_ROW_5,CLR_BUT_WIDTH,CLR_BUT_HT,BS_OWNERDRAW DEFPUSHBUTTON "OK",IDOK,15,BUTTON_ROW,28,14