Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ui/native_theme/native_theme_win.h" | 5 #include "ui/native_theme/native_theme_win.h" |
| 6 | 6 |
| 7 #include <windows.h> | 7 #include <windows.h> |
| 8 #include <uxtheme.h> | 8 #include <uxtheme.h> |
| 9 #include <vsstyle.h> | 9 #include <vsstyle.h> |
| 10 #include <vssym32.h> | 10 #include <vssym32.h> |
| (...skipping 933 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 944 &rect_win, NULL); | 944 &rect_win, NULL); |
| 945 } | 945 } |
| 946 | 946 |
| 947 HRESULT NativeThemeWin::PaintMenuItemBackground( | 947 HRESULT NativeThemeWin::PaintMenuItemBackground( |
| 948 HDC hdc, | 948 HDC hdc, |
| 949 State state, | 949 State state, |
| 950 const gfx::Rect& rect, | 950 const gfx::Rect& rect, |
| 951 const MenuItemExtraParams& extra) const { | 951 const MenuItemExtraParams& extra) const { |
| 952 HANDLE handle = GetThemeHandle(MENU); | 952 HANDLE handle = GetThemeHandle(MENU); |
| 953 RECT rect_win = rect.ToRECT(); | 953 RECT rect_win = rect.ToRECT(); |
| 954 int state_id; | 954 int state_id = MPI_NORMAL; |
| 955 switch (state) { | 955 switch (state) { |
| 956 case kDisabled: | 956 case kDisabled: |
| 957 state_id = extra.is_selected ? MPI_DISABLEDHOT : MPI_DISABLED; | 957 state_id = extra.is_selected ? MPI_DISABLEDHOT : MPI_DISABLED; |
| 958 break; | 958 break; |
| 959 case kHovered: | 959 case kHovered: |
| 960 state_id = MPI_HOT; | 960 state_id = MPI_HOT; |
| 961 break; | 961 break; |
| 962 case kNormal: | 962 case kNormal: |
| 963 state_id = MPI_NORMAL; | |
| 964 break; | 963 break; |
| 965 case kPressed: | 964 case kPressed: |
| 966 case kNumStates: | 965 case kNumStates: |
| 967 NOTREACHED(); | 966 NOTREACHED(); |
| 968 break; | 967 break; |
| 969 } | 968 } |
| 970 | 969 |
| 971 if (handle && draw_theme_) | 970 if (handle && draw_theme_) |
| 972 return draw_theme_(handle, hdc, MENU_POPUPITEM, state_id, &rect_win, NULL); | 971 return draw_theme_(handle, hdc, MENU_POPUPITEM, state_id, &rect_win, NULL); |
| 973 | 972 |
| 974 if (extra.is_selected) | 973 if (extra.is_selected) |
| 975 FillRect(hdc, &rect_win, GetSysColorBrush(COLOR_HIGHLIGHT)); | 974 FillRect(hdc, &rect_win, GetSysColorBrush(COLOR_HIGHLIGHT)); |
| 976 return S_OK; | 975 return S_OK; |
| 977 } | 976 } |
| 978 | 977 |
| 979 HRESULT NativeThemeWin::PaintPushButton(HDC hdc, | 978 HRESULT NativeThemeWin::PaintPushButton(HDC hdc, |
| 980 Part part, | 979 Part part, |
| 981 State state, | 980 State state, |
| 982 const gfx::Rect& rect, | 981 const gfx::Rect& rect, |
| 983 const ButtonExtraParams& extra) const { | 982 const ButtonExtraParams& extra) const { |
| 984 int state_id; | 983 int state_id = extra.is_default ? PBS_DEFAULTED : PBS_NORMAL; |
| 985 switch (state) { | 984 switch (state) { |
| 986 case kDisabled: | 985 case kDisabled: |
| 987 state_id = PBS_DISABLED; | 986 state_id = PBS_DISABLED; |
| 988 break; | 987 break; |
| 989 case kHovered: | 988 case kHovered: |
| 990 state_id = PBS_HOT; | 989 state_id = PBS_HOT; |
| 991 break; | 990 break; |
| 992 case kNormal: | 991 case kNormal: |
| 993 state_id = extra.is_default ? PBS_DEFAULTED : PBS_NORMAL; | |
| 994 break; | 992 break; |
| 995 case kPressed: | 993 case kPressed: |
| 996 state_id = PBS_PRESSED; | 994 state_id = PBS_PRESSED; |
| 997 break; | 995 break; |
| 998 case kNumStates: | 996 case kNumStates: |
| 999 NOTREACHED(); | 997 NOTREACHED(); |
| 1000 break; | 998 break; |
| 1001 } | 999 } |
| 1002 | 1000 |
| 1003 RECT rect_win = rect.ToRECT(); | 1001 RECT rect_win = rect.ToRECT(); |
| 1004 return PaintButton(hdc, state, extra, BP_PUSHBUTTON, state_id, &rect_win); | 1002 return PaintButton(hdc, state, extra, BP_PUSHBUTTON, state_id, &rect_win); |
| 1005 } | 1003 } |
| 1006 | 1004 |
| 1007 HRESULT NativeThemeWin::PaintRadioButton(HDC hdc, | 1005 HRESULT NativeThemeWin::PaintRadioButton(HDC hdc, |
| 1008 Part part, | 1006 Part part, |
| 1009 State state, | 1007 State state, |
| 1010 const gfx::Rect& rect, | 1008 const gfx::Rect& rect, |
| 1011 const ButtonExtraParams& extra) const { | 1009 const ButtonExtraParams& extra) const { |
| 1012 int state_id; | 1010 int state_id = extra.checked ? RBS_CHECKEDNORMAL : RBS_UNCHECKEDNORMAL; |
| 1013 switch (state) { | 1011 switch (state) { |
| 1014 case kDisabled: | 1012 case kDisabled: |
| 1015 state_id = extra.checked ? RBS_CHECKEDDISABLED : RBS_UNCHECKEDDISABLED; | 1013 state_id = extra.checked ? RBS_CHECKEDDISABLED : RBS_UNCHECKEDDISABLED; |
| 1016 break; | 1014 break; |
| 1017 case kHovered: | 1015 case kHovered: |
| 1018 state_id = extra.checked ? RBS_CHECKEDHOT : RBS_UNCHECKEDHOT; | 1016 state_id = extra.checked ? RBS_CHECKEDHOT : RBS_UNCHECKEDHOT; |
| 1019 break; | 1017 break; |
| 1020 case kNormal: | 1018 case kNormal: |
| 1021 state_id = extra.checked ? RBS_CHECKEDNORMAL : RBS_UNCHECKEDNORMAL; | |
| 1022 break; | 1019 break; |
| 1023 case kPressed: | 1020 case kPressed: |
| 1024 state_id = extra.checked ? RBS_CHECKEDPRESSED : RBS_UNCHECKEDPRESSED; | 1021 state_id = extra.checked ? RBS_CHECKEDPRESSED : RBS_UNCHECKEDPRESSED; |
| 1025 break; | 1022 break; |
| 1026 case kNumStates: | 1023 case kNumStates: |
| 1027 NOTREACHED(); | 1024 NOTREACHED(); |
| 1028 break; | 1025 break; |
| 1029 } | 1026 } |
| 1030 | 1027 |
| 1031 RECT rect_win = rect.ToRECT(); | 1028 RECT rect_win = rect.ToRECT(); |
| 1032 return PaintButton(hdc, state, extra, BP_RADIOBUTTON, state_id, &rect_win); | 1029 return PaintButton(hdc, state, extra, BP_RADIOBUTTON, state_id, &rect_win); |
| 1033 } | 1030 } |
| 1034 | 1031 |
| 1035 HRESULT NativeThemeWin::PaintCheckbox(HDC hdc, | 1032 HRESULT NativeThemeWin::PaintCheckbox(HDC hdc, |
| 1036 Part part, | 1033 Part part, |
| 1037 State state, | 1034 State state, |
| 1038 const gfx::Rect& rect, | 1035 const gfx::Rect& rect, |
| 1039 const ButtonExtraParams& extra) const { | 1036 const ButtonExtraParams& extra) const { |
| 1040 int state_id; | 1037 int state_id = extra.checked ? |
| 1038 CBS_CHECKEDNORMAL : | |
| 1039 (extra.indeterminate ? CBS_MIXEDNORMAL : CBS_UNCHECKEDNORMAL); | |
| 1041 switch (state) { | 1040 switch (state) { |
| 1042 case kDisabled: | 1041 case kDisabled: |
| 1043 state_id = extra.checked ? | 1042 state_id = extra.checked ? |
| 1044 CBS_CHECKEDDISABLED : | 1043 CBS_CHECKEDDISABLED : |
| 1045 (extra.indeterminate ? CBS_MIXEDDISABLED : CBS_UNCHECKEDDISABLED); | 1044 (extra.indeterminate ? CBS_MIXEDDISABLED : CBS_UNCHECKEDDISABLED); |
| 1046 break; | 1045 break; |
| 1047 case kHovered: | 1046 case kHovered: |
| 1048 state_id = extra.checked ? | 1047 state_id = extra.checked ? |
| 1049 CBS_CHECKEDHOT : | 1048 CBS_CHECKEDHOT : |
| 1050 (extra.indeterminate ? CBS_MIXEDHOT : CBS_UNCHECKEDHOT); | 1049 (extra.indeterminate ? CBS_MIXEDHOT : CBS_UNCHECKEDHOT); |
| 1051 break; | 1050 break; |
| 1052 case kNormal: | 1051 case kNormal: |
| 1053 state_id = extra.checked ? | |
| 1054 CBS_CHECKEDNORMAL : | |
| 1055 (extra.indeterminate ? CBS_MIXEDNORMAL : CBS_UNCHECKEDNORMAL); | |
| 1056 break; | 1052 break; |
| 1057 case kPressed: | 1053 case kPressed: |
| 1058 state_id = extra.checked ? | 1054 state_id = extra.checked ? |
| 1059 CBS_CHECKEDPRESSED : | 1055 CBS_CHECKEDPRESSED : |
| 1060 (extra.indeterminate ? CBS_MIXEDPRESSED : CBS_UNCHECKEDPRESSED); | 1056 (extra.indeterminate ? CBS_MIXEDPRESSED : CBS_UNCHECKEDPRESSED); |
| 1061 break; | 1057 break; |
| 1062 case kNumStates: | 1058 case kNumStates: |
| 1063 NOTREACHED(); | 1059 NOTREACHED(); |
| 1064 break; | 1060 break; |
| 1065 } | 1061 } |
| 1066 | 1062 |
| 1067 RECT rect_win = rect.ToRECT(); | 1063 RECT rect_win = rect.ToRECT(); |
| 1068 return PaintButton(hdc, state, extra, BP_CHECKBOX, state_id, &rect_win); | 1064 return PaintButton(hdc, state, extra, BP_CHECKBOX, state_id, &rect_win); |
| 1069 } | 1065 } |
| 1070 | 1066 |
| 1071 HRESULT NativeThemeWin::PaintMenuList(HDC hdc, | 1067 HRESULT NativeThemeWin::PaintMenuList(HDC hdc, |
| 1072 State state, | 1068 State state, |
| 1073 const gfx::Rect& rect, | 1069 const gfx::Rect& rect, |
| 1074 const MenuListExtraParams& extra) const { | 1070 const MenuListExtraParams& extra) const { |
| 1075 HANDLE handle = GetThemeHandle(MENULIST); | 1071 HANDLE handle = GetThemeHandle(MENULIST); |
| 1076 RECT rect_win = rect.ToRECT(); | 1072 RECT rect_win = rect.ToRECT(); |
| 1077 int state_id; | 1073 int state_id = CBXS_NORMAL; |
| 1078 switch (state) { | 1074 switch (state) { |
| 1079 case kDisabled: | 1075 case kDisabled: |
| 1080 state_id = CBXS_DISABLED; | 1076 state_id = CBXS_DISABLED; |
| 1081 break; | 1077 break; |
| 1082 case kHovered: | 1078 case kHovered: |
| 1083 state_id = CBXS_HOT; | 1079 state_id = CBXS_HOT; |
| 1084 break; | 1080 break; |
| 1085 case kNormal: | 1081 case kNormal: |
| 1086 state_id = CBXS_NORMAL; | |
| 1087 break; | 1082 break; |
| 1088 case kPressed: | 1083 case kPressed: |
| 1089 state_id = CBXS_PRESSED; | 1084 state_id = CBXS_PRESSED; |
| 1090 break; | 1085 break; |
| 1091 case kNumStates: | 1086 case kNumStates: |
| 1092 NOTREACHED(); | 1087 NOTREACHED(); |
| 1093 break; | 1088 break; |
| 1094 } | 1089 } |
| 1095 | 1090 |
| 1096 if (handle && draw_theme_) | 1091 if (handle && draw_theme_) |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1144 NOTREACHED(); | 1139 NOTREACHED(); |
| 1145 break; | 1140 break; |
| 1146 } | 1141 } |
| 1147 } | 1142 } |
| 1148 return PaintScaledTheme(handle, hdc, SBP_ARROWBTN, state_id, rect); | 1143 return PaintScaledTheme(handle, hdc, SBP_ARROWBTN, state_id, rect); |
| 1149 } | 1144 } |
| 1150 | 1145 |
| 1151 int classic_state = DFCS_SCROLLDOWN; | 1146 int classic_state = DFCS_SCROLLDOWN; |
| 1152 switch (part) { | 1147 switch (part) { |
| 1153 case kScrollbarDownArrow: | 1148 case kScrollbarDownArrow: |
| 1154 classic_state = DFCS_SCROLLDOWN; | |
| 1155 break; | 1149 break; |
| 1156 case kScrollbarLeftArrow: | 1150 case kScrollbarLeftArrow: |
| 1157 classic_state = DFCS_SCROLLLEFT; | 1151 classic_state = DFCS_SCROLLLEFT; |
| 1158 break; | 1152 break; |
| 1159 case kScrollbarRightArrow: | 1153 case kScrollbarRightArrow: |
| 1160 classic_state = DFCS_SCROLLRIGHT; | 1154 classic_state = DFCS_SCROLLRIGHT; |
| 1161 break; | 1155 break; |
| 1162 case kScrollbarUpArrow: | 1156 case kScrollbarUpArrow: |
| 1163 classic_state = DFCS_SCROLLUP; | 1157 classic_state = DFCS_SCROLLUP; |
| 1164 break; | 1158 break; |
| (...skipping 23 matching lines...) Expand all Loading... | |
| 1188 | 1182 |
| 1189 HRESULT NativeThemeWin::PaintScrollbarThumb( | 1183 HRESULT NativeThemeWin::PaintScrollbarThumb( |
| 1190 HDC hdc, | 1184 HDC hdc, |
| 1191 Part part, | 1185 Part part, |
| 1192 State state, | 1186 State state, |
| 1193 const gfx::Rect& rect, | 1187 const gfx::Rect& rect, |
| 1194 const ScrollbarThumbExtraParams& extra) const { | 1188 const ScrollbarThumbExtraParams& extra) const { |
| 1195 HANDLE handle = GetThemeHandle(SCROLLBAR); | 1189 HANDLE handle = GetThemeHandle(SCROLLBAR); |
| 1196 RECT rect_win = rect.ToRECT(); | 1190 RECT rect_win = rect.ToRECT(); |
| 1197 | 1191 |
| 1198 int part_id; | 1192 int part_id = SBP_THUMBBTNVERT; |
| 1199 switch (part) { | 1193 switch (part) { |
| 1200 case NativeTheme::kScrollbarHorizontalThumb: | 1194 case kScrollbarHorizontalThumb: |
| 1201 part_id = SBP_THUMBBTNHORZ; | 1195 part_id = SBP_THUMBBTNHORZ; |
| 1202 break; | 1196 break; |
| 1203 case NativeTheme::kScrollbarVerticalThumb: | 1197 case kScrollbarVerticalThumb: |
| 1204 part_id = SBP_THUMBBTNVERT; | |
| 1205 break; | 1198 break; |
| 1206 case NativeTheme::kScrollbarHorizontalGripper: | 1199 case kScrollbarHorizontalGripper: |
| 1207 part_id = SBP_GRIPPERHORZ; | 1200 part_id = SBP_GRIPPERHORZ; |
| 1208 break; | 1201 break; |
| 1209 case NativeTheme::kScrollbarVerticalGripper: | 1202 case kScrollbarVerticalGripper: |
| 1210 part_id = SBP_GRIPPERVERT; | 1203 part_id = SBP_GRIPPERVERT; |
| 1211 break; | 1204 break; |
| 1212 default: | 1205 default: |
| 1213 NOTREACHED(); | 1206 NOTREACHED(); |
| 1214 break; | 1207 break; |
| 1215 } | 1208 } |
| 1216 | 1209 |
| 1217 int state_id; | 1210 int state_id = SCRBS_NORMAL; |
| 1218 switch (state) { | 1211 switch (state) { |
| 1219 case kDisabled: | 1212 case kDisabled: |
| 1220 state_id = SCRBS_DISABLED; | 1213 state_id = SCRBS_DISABLED; |
| 1221 break; | 1214 break; |
| 1222 case kHovered: | 1215 case kHovered: |
| 1223 state_id = extra.is_hovering ? SCRBS_HOVER : SCRBS_HOT; | 1216 state_id = extra.is_hovering ? SCRBS_HOVER : SCRBS_HOT; |
| 1224 break; | 1217 break; |
| 1225 case kNormal: | 1218 case kNormal: |
| 1226 state_id = SCRBS_NORMAL; | |
| 1227 break; | 1219 break; |
| 1228 case kPressed: | 1220 case kPressed: |
| 1229 state_id = SCRBS_PRESSED; | 1221 state_id = SCRBS_PRESSED; |
| 1230 break; | 1222 break; |
| 1231 case kNumStates: | 1223 case kNumStates: |
| 1232 NOTREACHED(); | 1224 NOTREACHED(); |
| 1233 break; | 1225 break; |
| 1234 } | 1226 } |
| 1235 | 1227 |
| 1236 if (handle && draw_theme_) | 1228 if (handle && draw_theme_) |
| 1237 return PaintScaledTheme(handle, hdc, part_id, state_id, rect); | 1229 return PaintScaledTheme(handle, hdc, part_id, state_id, rect); |
| 1238 | 1230 |
| 1239 // Draw it manually. | 1231 // Draw it manually. |
| 1240 if ((part_id == SBP_THUMBBTNHORZ) || (part_id == SBP_THUMBBTNVERT)) | 1232 if ((part_id == SBP_THUMBBTNHORZ) || (part_id == SBP_THUMBBTNVERT)) |
| 1241 DrawEdge(hdc, &rect_win, EDGE_RAISED, BF_RECT | BF_MIDDLE); | 1233 DrawEdge(hdc, &rect_win, EDGE_RAISED, BF_RECT | BF_MIDDLE); |
| 1242 // Classic mode doesn't have a gripper. | 1234 // Classic mode doesn't have a gripper. |
| 1243 return S_OK; | 1235 return S_OK; |
| 1244 } | 1236 } |
| 1245 | 1237 |
| 1246 HRESULT NativeThemeWin::PaintScrollbarTrack( | 1238 HRESULT NativeThemeWin::PaintScrollbarTrack( |
| 1247 SkCanvas* canvas, | 1239 SkCanvas* canvas, |
| 1248 HDC hdc, | 1240 HDC hdc, |
| 1249 Part part, | 1241 Part part, |
| 1250 State state, | 1242 State state, |
| 1251 const gfx::Rect& rect, | 1243 const gfx::Rect& rect, |
| 1252 const ScrollbarTrackExtraParams& extra) const { | 1244 const ScrollbarTrackExtraParams& extra) const { |
| 1253 HANDLE handle = GetThemeHandle(SCROLLBAR); | 1245 HANDLE handle = GetThemeHandle(SCROLLBAR); |
| 1254 RECT rect_win = rect.ToRECT(); | 1246 RECT rect_win = rect.ToRECT(); |
| 1255 | 1247 |
| 1256 int part_id; | 1248 const int part_id = extra.is_upper ? |
|
sky
2014/07/11 19:09:17
When I come across code with nested ternary operat
Peter Kasting
2014/07/11 19:19:55
As I said in the previous patch, I don't normally
| |
| 1257 switch (part) { | 1249 ((part == kScrollbarHorizontalTrack) ? |
| 1258 case NativeTheme::kScrollbarHorizontalTrack: | 1250 SBP_UPPERTRACKHORZ : SBP_UPPERTRACKVERT) : |
| 1259 part_id = extra.is_upper ? SBP_UPPERTRACKHORZ : SBP_LOWERTRACKHORZ; | 1251 ((part == kScrollbarHorizontalTrack) ? |
| 1260 break; | 1252 SBP_LOWERTRACKHORZ : SBP_LOWERTRACKVERT); |
| 1261 case NativeTheme::kScrollbarVerticalTrack: | |
| 1262 part_id = extra.is_upper ? SBP_UPPERTRACKVERT : SBP_LOWERTRACKVERT; | |
| 1263 break; | |
| 1264 default: | |
| 1265 NOTREACHED(); | |
| 1266 break; | |
| 1267 } | |
| 1268 | 1253 |
| 1269 int state_id; | 1254 int state_id = SCRBS_NORMAL; |
| 1270 switch (state) { | 1255 switch (state) { |
| 1271 case kDisabled: | 1256 case kDisabled: |
| 1272 state_id = SCRBS_DISABLED; | 1257 state_id = SCRBS_DISABLED; |
| 1273 break; | 1258 break; |
| 1274 case kHovered: | 1259 case kHovered: |
| 1275 state_id = SCRBS_HOVER; | 1260 state_id = SCRBS_HOVER; |
| 1276 break; | 1261 break; |
| 1277 case kNormal: | 1262 case kNormal: |
| 1278 state_id = SCRBS_NORMAL; | |
| 1279 break; | 1263 break; |
| 1280 case kPressed: | 1264 case kPressed: |
| 1281 state_id = SCRBS_PRESSED; | 1265 state_id = SCRBS_PRESSED; |
| 1282 break; | 1266 break; |
| 1283 case kNumStates: | 1267 case kNumStates: |
| 1284 NOTREACHED(); | 1268 NOTREACHED(); |
| 1285 break; | 1269 break; |
| 1286 } | 1270 } |
| 1287 | 1271 |
| 1288 if (handle && draw_theme_) | 1272 if (handle && draw_theme_) |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 1306 | 1290 |
| 1307 HRESULT NativeThemeWin::PaintSpinButton( | 1291 HRESULT NativeThemeWin::PaintSpinButton( |
| 1308 HDC hdc, | 1292 HDC hdc, |
| 1309 Part part, | 1293 Part part, |
| 1310 State state, | 1294 State state, |
| 1311 const gfx::Rect& rect, | 1295 const gfx::Rect& rect, |
| 1312 const InnerSpinButtonExtraParams& extra) const { | 1296 const InnerSpinButtonExtraParams& extra) const { |
| 1313 HANDLE handle = GetThemeHandle(SPIN); | 1297 HANDLE handle = GetThemeHandle(SPIN); |
| 1314 RECT rect_win = rect.ToRECT(); | 1298 RECT rect_win = rect.ToRECT(); |
| 1315 int part_id = extra.spin_up ? SPNP_UP : SPNP_DOWN; | 1299 int part_id = extra.spin_up ? SPNP_UP : SPNP_DOWN; |
| 1316 int state_id; | 1300 int state_id = extra.spin_up ? UPS_NORMAL : DNS_NORMAL; |
| 1317 switch (state) { | 1301 switch (state) { |
| 1318 case kDisabled: | 1302 case kDisabled: |
| 1319 state_id = extra.spin_up ? UPS_DISABLED : DNS_DISABLED; | 1303 state_id = extra.spin_up ? UPS_DISABLED : DNS_DISABLED; |
| 1320 break; | 1304 break; |
| 1321 case kHovered: | 1305 case kHovered: |
| 1322 state_id = extra.spin_up ? UPS_HOT : DNS_HOT; | 1306 state_id = extra.spin_up ? UPS_HOT : DNS_HOT; |
| 1323 break; | 1307 break; |
| 1324 case kNormal: | 1308 case kNormal: |
| 1325 state_id = extra.spin_up ? UPS_NORMAL : DNS_NORMAL; | |
| 1326 break; | 1309 break; |
| 1327 case kPressed: | 1310 case kPressed: |
| 1328 state_id = extra.spin_up ? UPS_PRESSED : DNS_PRESSED; | 1311 state_id = extra.spin_up ? UPS_PRESSED : DNS_PRESSED; |
| 1329 break; | 1312 break; |
| 1330 case kNumStates: | 1313 case kNumStates: |
| 1331 NOTREACHED(); | 1314 NOTREACHED(); |
| 1332 break; | 1315 break; |
| 1333 } | 1316 } |
| 1334 | 1317 |
| 1335 if (handle && draw_theme_) | 1318 if (handle && draw_theme_) |
| 1336 return draw_theme_(handle, hdc, part_id, state_id, &rect_win, NULL); | 1319 return draw_theme_(handle, hdc, part_id, state_id, &rect_win, NULL); |
| 1337 DrawFrameControl(hdc, &rect_win, DFC_SCROLL, extra.classic_state); | 1320 DrawFrameControl(hdc, &rect_win, DFC_SCROLL, extra.classic_state); |
| 1338 return S_OK; | 1321 return S_OK; |
| 1339 } | 1322 } |
| 1340 | 1323 |
| 1341 HRESULT NativeThemeWin::PaintTrackbar( | 1324 HRESULT NativeThemeWin::PaintTrackbar( |
| 1342 SkCanvas* canvas, | 1325 SkCanvas* canvas, |
| 1343 HDC hdc, | 1326 HDC hdc, |
| 1344 Part part, | 1327 Part part, |
| 1345 State state, | 1328 State state, |
| 1346 const gfx::Rect& rect, | 1329 const gfx::Rect& rect, |
| 1347 const TrackbarExtraParams& extra) const { | 1330 const TrackbarExtraParams& extra) const { |
| 1348 const int part_id = extra.vertical ? | 1331 const int part_id = extra.vertical ? |
| 1349 ((part == kTrackbarTrack) ? TKP_TRACKVERT : TKP_THUMBVERT) : | 1332 ((part == kTrackbarTrack) ? TKP_TRACKVERT : TKP_THUMBVERT) : |
| 1350 ((part == kTrackbarTrack) ? TKP_TRACK : TKP_THUMBBOTTOM); | 1333 ((part == kTrackbarTrack) ? TKP_TRACK : TKP_THUMBBOTTOM); |
| 1351 | 1334 |
| 1352 int state_id = 0; | 1335 int state_id = TUS_NORMAL; |
| 1353 switch (state) { | 1336 switch (state) { |
| 1354 case kDisabled: | 1337 case kDisabled: |
| 1355 state_id = TUS_DISABLED; | 1338 state_id = TUS_DISABLED; |
| 1356 break; | 1339 break; |
| 1357 case kHovered: | 1340 case kHovered: |
| 1358 state_id = TUS_HOT; | 1341 state_id = TUS_HOT; |
| 1359 break; | 1342 break; |
| 1360 case kNormal: | 1343 case kNormal: |
| 1361 state_id = TUS_NORMAL; | |
| 1362 break; | 1344 break; |
| 1363 case kPressed: | 1345 case kPressed: |
| 1364 state_id = TUS_PRESSED; | 1346 state_id = TUS_PRESSED; |
| 1365 break; | 1347 break; |
| 1366 case kNumStates: | 1348 case kNumStates: |
| 1367 NOTREACHED(); | 1349 NOTREACHED(); |
| 1368 break; | 1350 break; |
| 1369 } | 1351 } |
| 1370 | 1352 |
| 1371 // Make the channel be 4 px thick in the center of the supplied rect. (4 px | 1353 // Make the channel be 4 px thick in the center of the supplied rect. (4 px |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1572 state_id = ETS_DISABLED; | 1554 state_id = ETS_DISABLED; |
| 1573 break; | 1555 break; |
| 1574 case kHovered: | 1556 case kHovered: |
| 1575 state_id = ETS_HOT; | 1557 state_id = ETS_HOT; |
| 1576 break; | 1558 break; |
| 1577 case kNormal: | 1559 case kNormal: |
| 1578 if (extra.is_read_only) | 1560 if (extra.is_read_only) |
| 1579 state_id = ETS_READONLY; | 1561 state_id = ETS_READONLY; |
| 1580 else if (extra.is_focused) | 1562 else if (extra.is_focused) |
| 1581 state_id = ETS_FOCUSED; | 1563 state_id = ETS_FOCUSED; |
| 1582 else | |
| 1583 state_id = ETS_NORMAL; | |
| 1584 break; | 1564 break; |
| 1585 case kPressed: | 1565 case kPressed: |
| 1586 state_id = ETS_SELECTED; | 1566 state_id = ETS_SELECTED; |
| 1587 break; | 1567 break; |
| 1588 case kNumStates: | 1568 case kNumStates: |
| 1589 NOTREACHED(); | 1569 NOTREACHED(); |
| 1590 break; | 1570 break; |
| 1591 } | 1571 } |
| 1592 | 1572 |
| 1593 RECT rect_win = rect.ToRECT(); | 1573 RECT rect_win = rect.ToRECT(); |
| (...skipping 403 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1997 | 1977 |
| 1998 base::win::ScopedCreateDC bitmap_dc(CreateCompatibleDC(NULL)); | 1978 base::win::ScopedCreateDC bitmap_dc(CreateCompatibleDC(NULL)); |
| 1999 base::win::ScopedSelectObject select_bitmap(bitmap_dc, mask_bitmap); | 1979 base::win::ScopedSelectObject select_bitmap(bitmap_dc, mask_bitmap); |
| 2000 RECT local_rect = { 0, 0, width, height }; | 1980 RECT local_rect = { 0, 0, width, height }; |
| 2001 DrawFrameControl(bitmap_dc, &local_rect, type, state); | 1981 DrawFrameControl(bitmap_dc, &local_rect, type, state); |
| 2002 | 1982 |
| 2003 // We're going to use BitBlt with a b&w mask. This results in using the dest | 1983 // We're going to use BitBlt with a b&w mask. This results in using the dest |
| 2004 // dc's text color for the black bits in the mask, and the dest dc's | 1984 // dc's text color for the black bits in the mask, and the dest dc's |
| 2005 // background color for the white bits in the mask. DrawFrameControl draws the | 1985 // background color for the white bits in the mask. DrawFrameControl draws the |
| 2006 // check in black, and the background in white. | 1986 // check in black, and the background in white. |
| 2007 int bg_color_key; | 1987 int bg_color_key = COLOR_MENU; |
| 2008 int text_color_key; | 1988 int text_color_key = COLOR_MENUTEXT; |
| 2009 switch (control_state) { | 1989 switch (control_state) { |
| 2010 case kDisabled: | 1990 case kDisabled: |
| 2011 bg_color_key = is_selected ? COLOR_HIGHLIGHT : COLOR_MENU; | 1991 bg_color_key = is_selected ? COLOR_HIGHLIGHT : COLOR_MENU; |
| 2012 text_color_key = COLOR_GRAYTEXT; | 1992 text_color_key = COLOR_GRAYTEXT; |
| 2013 break; | 1993 break; |
| 2014 case kHovered: | 1994 case kHovered: |
| 2015 bg_color_key = COLOR_HIGHLIGHT; | 1995 bg_color_key = COLOR_HIGHLIGHT; |
| 2016 text_color_key = COLOR_HIGHLIGHTTEXT; | 1996 text_color_key = COLOR_HIGHLIGHTTEXT; |
| 2017 break; | 1997 break; |
| 2018 case kNormal: | 1998 case kNormal: |
| 2019 bg_color_key = COLOR_MENU; | |
| 2020 text_color_key = COLOR_MENUTEXT; | |
| 2021 break; | 1999 break; |
| 2022 case kPressed: | 2000 case kPressed: |
| 2023 case kNumStates: | 2001 case kNumStates: |
| 2024 NOTREACHED(); | 2002 NOTREACHED(); |
| 2025 bg_color_key = COLOR_MENU; | |
| 2026 text_color_key = COLOR_MENUTEXT; | |
| 2027 break; | 2003 break; |
| 2028 } | 2004 } |
| 2029 COLORREF old_bg_color = SetBkColor(hdc, GetSysColor(bg_color_key)); | 2005 COLORREF old_bg_color = SetBkColor(hdc, GetSysColor(bg_color_key)); |
| 2030 COLORREF old_text_color = SetTextColor(hdc, GetSysColor(text_color_key)); | 2006 COLORREF old_text_color = SetTextColor(hdc, GetSysColor(text_color_key)); |
| 2031 BitBlt(hdc, rect.x(), rect.y(), width, height, bitmap_dc, 0, 0, SRCCOPY); | 2007 BitBlt(hdc, rect.x(), rect.y(), width, height, bitmap_dc, 0, 0, SRCCOPY); |
| 2032 SetBkColor(hdc, old_bg_color); | 2008 SetBkColor(hdc, old_bg_color); |
| 2033 SetTextColor(hdc, old_text_color); | 2009 SetTextColor(hdc, old_text_color); |
| 2034 | 2010 |
| 2035 return S_OK; | 2011 return S_OK; |
| 2036 } | 2012 } |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2083 break; | 2059 break; |
| 2084 case LAST: | 2060 case LAST: |
| 2085 NOTREACHED(); | 2061 NOTREACHED(); |
| 2086 break; | 2062 break; |
| 2087 } | 2063 } |
| 2088 theme_handles_[theme_name] = handle; | 2064 theme_handles_[theme_name] = handle; |
| 2089 return handle; | 2065 return handle; |
| 2090 } | 2066 } |
| 2091 | 2067 |
| 2092 } // namespace ui | 2068 } // namespace ui |
| OLD | NEW |