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 |