- Timestamp:
- Oct 9, 1999, 6:28:25 PM (26 years ago)
- Location:
- trunk/src/user32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/button.cpp
r1210 r1229 1 /* $Id: button.cpp,v 1. 6 1999-10-09 11:03:22 sandervlExp $ */1 /* $Id: button.cpp,v 1.7 1999-10-09 16:28:24 cbratschi Exp $ */ 2 2 /* File: button.cpp -- Button type widgets 3 3 * … … 962 962 } else { 963 963 if (dwStyle & WS_DISABLED) 964 SetTextColor( hDC, GetSysColor(COLOR_GRAYTEXT) ); 965 DrawTextA( hDC, text, -1, &rtext, 966 DT_SINGLELINE | DT_VCENTER ); 964 { 965 RECT rect = rtext; 966 COLORREF oldMode; 967 HPEN oldPen; 968 969 //CB: bug in Open32 DrawText: underscore is always black!, need workaround 970 // extract to PaintText(HDC hdc,char* text,RECT* rect); 971 SetTextColor(hDC,GetSysColor(COLOR_3DHILIGHT)); 972 oldPen = SelectObject(hDC,GetSysColorPen(COLOR_3DHIGHLIGHT)); 973 DrawTextA(hDC,text,-1,&rect,DT_SINGLELINE | DT_VCENTER); 974 SetTextColor(hDC,GetSysColor(COLOR_GRAYTEXT)); 975 SelectObject(hDC,GetSysColorPen(COLOR_GRAYTEXT)); 976 oldMode = SetBkMode(hDC,TRANSPARENT); 977 OffsetRect(&rect,-1,-1); 978 DrawTextA(hDC,text,-1,&rect,DT_SINGLELINE | DT_VCENTER); 979 SetBkMode(hDC,oldMode); 980 SelectObject(hDC,oldPen); 981 } else DrawTextA(hDC,text,-1,&rtext,DT_SINGLELINE | DT_VCENTER); 967 982 } 968 983 } … … 1049 1064 GetWindowTextA(hwnd,text,textLen); 1050 1065 if (infoPtr->hFont) SelectObject( hDC, infoPtr->hFont ); 1051 if (dwStyle & WS_DISABLED)1052 SetTextColor( hDC, GetSysColor(COLOR_GRAYTEXT) );1053 1066 rc.left += 10; 1054 DrawTextA( hDC, text, -1, &rc, DT_SINGLELINE | DT_NOCLIP ); 1067 if (dwStyle & WS_DISABLED && 1068 GetSysColor(COLOR_GRAYTEXT) == GetBkColor(hDC)) 1069 PaintGrayOnGray( hDC,infoPtr->hFont,&rc,text,DT_SINGLELINE | DT_NOCLIP ); 1070 else 1071 { 1072 SetTextColor( hDC, (dwStyle & WS_DISABLED) ? 1073 GetSysColor(COLOR_GRAYTEXT) : 1074 GetSysColor(COLOR_BTNTEXT) ); 1075 DrawTextA( hDC, text, -1, &rc, 1076 DT_SINGLELINE | DT_NOCLIP ); 1077 } 1078 1055 1079 free(text); 1056 1080 } -
trunk/src/user32/uitools.cpp
r1143 r1229 1 /* $Id: uitools.cpp,v 1.1 0 1999-10-05 18:23:49 sandervlExp $ */1 /* $Id: uitools.cpp,v 1.11 1999-10-09 16:28:25 cbratschi Exp $ */ 2 2 /* 3 3 * User Interface Functions … … 8 8 * Copyright 1999 Christoph Bratschi 9 9 * Copyright 1999 Rene Pronk 10 * 11 * WINE version: 990923 10 12 */ 11 13 … … 617 619 618 620 621 static void UITOOLS_DrawCheckedRect( HDC dc, LPRECT rect ) 622 { 623 if(GetSysColor(COLOR_BTNHIGHLIGHT) == RGB(255, 255, 255)) 624 { 625 HBITMAP hbm = CreateBitmap(8, 8, 1, 1, wPattern_AA55); 626 HBRUSH hbsave; 627 HBRUSH hb = CreatePatternBrush(hbm); 628 COLORREF bg; 629 630 FillRect(dc, rect, GetSysColorBrush(COLOR_BTNFACE)); 631 bg = SetBkColor(dc, RGB(255, 255, 255)); 632 hbsave = (HBRUSH)SelectObject(dc, hb); 633 PatBlt(dc, rect->left, rect->top, rect->right-rect->left, rect->bottom-rect->top, 0x00FA0089); 634 SelectObject(dc, hbsave); 635 SetBkColor(dc, bg); 636 DeleteObject(hb); 637 DeleteObject(hbm); 638 } 639 else 640 { 641 FillRect(dc, rect, GetSysColorBrush(COLOR_BTNHIGHLIGHT)); 642 } 643 } 644 619 645 /************************************************************************ 620 646 * UITOOLS_DFC_ButtonPush … … 643 669 UITOOLS95_DrawRectEdge(dc, &myr, edge, (uFlags&DFCS_FLAT)|BF_RECT|BF_SOFT|BF_ADJUST); 644 670 645 if(GetSysColor(COLOR_BTNHIGHLIGHT) == RGB(255, 255, 255)) 646 { 647 HBITMAP hbm = CreateBitmap(8, 8, 1, 1, wPattern_AA55); 648 HBRUSH hbsave; 649 HBRUSH hb = CreatePatternBrush(hbm); 650 651 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNFACE)); 652 hbsave = (HBRUSH)SelectObject(dc, hb); 653 PatBlt(dc, myr.left, myr.top, myr.right-myr.left, myr.bottom-myr.top, 0x00FA0089); 654 SelectObject(dc, hbsave); 655 DeleteObject(hb); 656 DeleteObject(hbm); 671 UITOOLS_DrawCheckedRect( dc, &myr ); 657 672 } 658 673 else 659 674 { 660 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNHIGHLIGHT));661 }662 }663 else664 {665 675 if(uFlags & DFCS_MONO) 666 676 { … … 688 698 689 699 /************************************************************************ 690 * UITOOLS_DFC_ButtonCh cek700 * UITOOLS_DFC_ButtonCheck 691 701 * 692 702 * Draw a check/3state button coming from DrawFrameControl() … … 702 712 RECT myr; 703 713 int SmallDiam = UITOOLS_MakeSquareRect(r, &myr); 704 int BorderShrink = SmallDiam / 16; 705 706 if(BorderShrink < 1) BorderShrink = 1; 707 708 /* FIXME: The FillRect() sequence doesn't work for sizes less than */ 709 /* 4 pixels in diameter. Not really a problem but it isn't M$'s */ 710 /* 100% equivalent. */ 711 if(uFlags & (DFCS_FLAT|DFCS_MONO)) 712 { 713 FillRect(dc, &myr, GetSysColorBrush(COLOR_WINDOWFRAME)); 714 myr.left += 2 * BorderShrink; 715 myr.right -= 2 * BorderShrink; 716 myr.top += 2 * BorderShrink; 717 myr.bottom -= 2 * BorderShrink; 718 } 719 else 720 { 721 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNHIGHLIGHT)); 722 myr.right -= BorderShrink; 723 myr.bottom -= BorderShrink; 724 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNSHADOW)); 725 myr.left += BorderShrink; 726 myr.top += BorderShrink; 727 FillRect(dc, &myr, GetSysColorBrush(COLOR_3DLIGHT)); 728 myr.right -= BorderShrink; 729 myr.bottom -= BorderShrink; 730 FillRect(dc, &myr, GetSysColorBrush(COLOR_3DDKSHADOW)); 731 myr.left += BorderShrink; 732 myr.top += BorderShrink; 733 } 714 UINT flags = BF_RECT | BF_ADJUST; 715 716 if(uFlags & DFCS_FLAT) flags |= BF_FLAT; 717 else if(uFlags & DFCS_MONO) flags |= BF_MONO; 718 719 UITOOLS95_DrawRectEdge( dc, &myr, EDGE_SUNKEN, flags ); 734 720 735 721 if(uFlags & (DFCS_INACTIVE|DFCS_PUSHED)) 736 {737 722 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNFACE)); 738 } 739 else if(uFlags & DFCS_CHECKED) 740 { 741 if(GetSysColor(COLOR_BTNHIGHLIGHT) == RGB(255, 255, 255)) 742 { 743 HBITMAP hbm = CreateBitmap(8, 8, 1, 1, wPattern_AA55); 744 HBRUSH hbsave; 745 HBRUSH hb = CreatePatternBrush(hbm); 746 747 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNFACE)); 748 hbsave = (HBRUSH)SelectObject(dc, hb); 749 PatBlt(dc, myr.left, myr.top, myr.right-myr.left, myr.bottom-myr.top, 0x00FA0089); 750 SelectObject(dc, hbsave); 751 DeleteObject(hb); 752 DeleteObject(hbm); 753 } 754 else 755 { 756 FillRect(dc, &myr, GetSysColorBrush(COLOR_BTNHIGHLIGHT)); 757 } 758 } 723 else if( (uFlags & DFCS_BUTTON3STATE) && (uFlags & DFCS_CHECKED) ) 724 UITOOLS_DrawCheckedRect( dc, &myr ); 759 725 else 760 726 { … … 1139 1105 int tri = 290*SmallDiam/1000 -1; 1140 1106 int d46, d93; 1107 1108 /* 1109 * This fixes a problem with really tiny "scroll" buttons. In particular 1110 * with the updown control. 1111 * Making sure that the arrow is as least 3 pixels wide (or high). 1112 */ 1113 if (tri == 0) 1114 tri = 1; 1141 1115 1142 1116 switch(uFlags & 0xff)
Note:
See TracChangeset
for help on using the changeset viewer.