| 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 <stddef.h> | 8 #include <stddef.h> |
| 9 #include <uxtheme.h> | 9 #include <uxtheme.h> |
| 10 #include <vsstyle.h> | 10 #include <vsstyle.h> |
| (...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 case kTextField: | 457 case kTextField: |
| 458 PaintTextField(hdc, part, state, rect, extra.text_field); | 458 PaintTextField(hdc, part, state, rect, extra.text_field); |
| 459 return; | 459 return; |
| 460 case kTrackbarThumb: | 460 case kTrackbarThumb: |
| 461 case kTrackbarTrack: | 461 case kTrackbarTrack: |
| 462 PaintTrackbar(canvas, hdc, part, state, rect, extra.trackbar); | 462 PaintTrackbar(canvas, hdc, part, state, rect, extra.trackbar); |
| 463 return; | 463 return; |
| 464 case kWindowResizeGripper: | 464 case kWindowResizeGripper: |
| 465 PaintWindowResizeGripper(hdc, rect); | 465 PaintWindowResizeGripper(hdc, rect); |
| 466 return; | 466 return; |
| 467 case kCaptionMin: |
| 468 case kCaptionMax: |
| 469 case kCaptionRestore: |
| 470 case kCaptionClose: |
| 471 PaintCaptionButton(hdc, part, state, rect, extra); |
| 472 return; |
| 467 case kComboboxArrow: | 473 case kComboboxArrow: |
| 468 case kSliderTrack: | 474 case kSliderTrack: |
| 469 case kSliderThumb: | 475 case kSliderThumb: |
| 470 case kMaxPart: | 476 case kMaxPart: |
| 471 NOTREACHED(); | 477 NOTREACHED(); |
| 472 } | 478 } |
| 473 } | 479 } |
| 474 | 480 |
| 475 SkColor NativeThemeWin::GetSystemColor(ColorId color_id) const { | 481 SkColor NativeThemeWin::GetSystemColor(ColorId color_id) const { |
| 476 // TODO: Obtain the correct colors using GetSysColor. | 482 // TODO: Obtain the correct colors using GetSysColor. |
| (...skipping 1079 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1556 HANDLE handle = GetThemeHandle(TAB); | 1562 HANDLE handle = GetThemeHandle(TAB); |
| 1557 RECT rect_win = rect.ToRECT(); | 1563 RECT rect_win = rect.ToRECT(); |
| 1558 if (handle && draw_theme_) | 1564 if (handle && draw_theme_) |
| 1559 return draw_theme_(handle, hdc, TABP_BODY, 0, &rect_win, NULL); | 1565 return draw_theme_(handle, hdc, TABP_BODY, 0, &rect_win, NULL); |
| 1560 | 1566 |
| 1561 // Classic just renders a flat color background. | 1567 // Classic just renders a flat color background. |
| 1562 FillRect(hdc, &rect_win, reinterpret_cast<HBRUSH>(COLOR_3DFACE + 1)); | 1568 FillRect(hdc, &rect_win, reinterpret_cast<HBRUSH>(COLOR_3DFACE + 1)); |
| 1563 return S_OK; | 1569 return S_OK; |
| 1564 } | 1570 } |
| 1565 | 1571 |
| 1572 HRESULT NativeThemeWin::PaintCaptionButton(HDC hdc, |
| 1573 Part part, |
| 1574 State state, |
| 1575 const gfx::Rect&rect, |
| 1576 const ExtraParams& extra) const { |
| 1577 HANDLE handle = GetThemeHandle(WINDOW); |
| 1578 RECT rect_win = rect.ToRECT(); |
| 1579 if (handle && draw_theme_) { |
| 1580 int part_id = GetWindowsPart(part, state, extra); |
| 1581 int state_id = GetWindowsState(part, state, extra); |
| 1582 return draw_theme_(handle, hdc, part_id, state_id, &rect_win, NULL); |
| 1583 } |
| 1584 |
| 1585 // Adjust classic_state based on part, state, and extras. |
| 1586 int classic_state = 0; |
| 1587 switch (part) { |
| 1588 case kCaptionMin: |
| 1589 classic_state |= DFCS_CAPTIONMIN; |
| 1590 break; |
| 1591 case kCaptionMax: |
| 1592 classic_state |= DFCS_CAPTIONMAX; |
| 1593 break; |
| 1594 case kCaptionRestore: |
| 1595 classic_state |= DFCS_CAPTIONRESTORE; |
| 1596 break; |
| 1597 case kCaptionClose: |
| 1598 classic_state |= DFCS_CAPTIONCLOSE; |
| 1599 break; |
| 1600 default: |
| 1601 NOTREACHED(); |
| 1602 break; |
| 1603 } |
| 1604 |
| 1605 switch (state) { |
| 1606 case kDisabled: |
| 1607 classic_state |= DFCS_INACTIVE; |
| 1608 break; |
| 1609 case kHovered: |
| 1610 classic_state |= DFCS_HOT; |
| 1611 break; |
| 1612 case kNormal: |
| 1613 break; |
| 1614 case kPressed: |
| 1615 classic_state |= DFCS_PUSHED; |
| 1616 break; |
| 1617 case kNumStates: |
| 1618 NOTREACHED(); |
| 1619 break; |
| 1620 } |
| 1621 |
| 1622 DrawFrameControl(hdc, &rect_win, DFC_CAPTION, classic_state); |
| 1623 return S_OK; |
| 1624 } |
| 1625 |
| 1566 HRESULT NativeThemeWin::PaintTextField( | 1626 HRESULT NativeThemeWin::PaintTextField( |
| 1567 HDC hdc, | 1627 HDC hdc, |
| 1568 Part part, | 1628 Part part, |
| 1569 State state, | 1629 State state, |
| 1570 const gfx::Rect& rect, | 1630 const gfx::Rect& rect, |
| 1571 const TextFieldExtraParams& extra) const { | 1631 const TextFieldExtraParams& extra) const { |
| 1572 int state_id = ETS_NORMAL; | 1632 int state_id = ETS_NORMAL; |
| 1573 switch (state) { | 1633 switch (state) { |
| 1574 case kDisabled: | 1634 case kDisabled: |
| 1575 state_id = ETS_DISABLED; | 1635 state_id = ETS_DISABLED; |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1747 case kScrollbarLeftArrow: | 1807 case kScrollbarLeftArrow: |
| 1748 case kScrollbarRightArrow: | 1808 case kScrollbarRightArrow: |
| 1749 case kScrollbarUpArrow: | 1809 case kScrollbarUpArrow: |
| 1750 return SBP_ARROWBTN; | 1810 return SBP_ARROWBTN; |
| 1751 case kScrollbarHorizontalThumb: | 1811 case kScrollbarHorizontalThumb: |
| 1752 return SBP_THUMBBTNHORZ; | 1812 return SBP_THUMBBTNHORZ; |
| 1753 case kScrollbarVerticalThumb: | 1813 case kScrollbarVerticalThumb: |
| 1754 return SBP_THUMBBTNVERT; | 1814 return SBP_THUMBBTNVERT; |
| 1755 case kWindowResizeGripper: | 1815 case kWindowResizeGripper: |
| 1756 return SP_GRIPPER; | 1816 return SP_GRIPPER; |
| 1817 case kCaptionMin: |
| 1818 return WP_MINBUTTON; |
| 1819 case kCaptionMax: |
| 1820 return WP_MAXBUTTON; |
| 1821 case kCaptionRestore: |
| 1822 return WP_RESTOREBUTTON; |
| 1823 case kCaptionClose: |
| 1824 return WP_CLOSEBUTTON; |
| 1757 case kComboboxArrow: | 1825 case kComboboxArrow: |
| 1758 case kInnerSpinButton: | 1826 case kInnerSpinButton: |
| 1759 case kMenuList: | 1827 case kMenuList: |
| 1760 case kMenuCheckBackground: | 1828 case kMenuCheckBackground: |
| 1761 case kMenuPopupBackground: | 1829 case kMenuPopupBackground: |
| 1762 case kMenuItemBackground: | 1830 case kMenuItemBackground: |
| 1763 case kProgressBar: | 1831 case kProgressBar: |
| 1764 case kScrollbarHorizontalTrack: | 1832 case kScrollbarHorizontalTrack: |
| 1765 case kScrollbarVerticalTrack: | 1833 case kScrollbarVerticalTrack: |
| 1766 case kScrollbarHorizontalGripper: | 1834 case kScrollbarHorizontalGripper: |
| (...skipping 174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1941 switch (state) { | 2009 switch (state) { |
| 1942 case kDisabled: | 2010 case kDisabled: |
| 1943 case kHovered: | 2011 case kHovered: |
| 1944 case kNormal: | 2012 case kNormal: |
| 1945 case kPressed: | 2013 case kPressed: |
| 1946 return 1; // gripper has no windows state | 2014 return 1; // gripper has no windows state |
| 1947 case kNumStates: | 2015 case kNumStates: |
| 1948 NOTREACHED(); | 2016 NOTREACHED(); |
| 1949 return 0; | 2017 return 0; |
| 1950 } | 2018 } |
| 2019 case kCaptionMin: |
| 2020 switch (state) { |
| 2021 case kDisabled: |
| 2022 return MINBS_DISABLED; |
| 2023 case kHovered: |
| 2024 return MINBS_HOT; |
| 2025 case kNormal: |
| 2026 return MINBS_NORMAL; |
| 2027 case kPressed: |
| 2028 return MINBS_PUSHED; |
| 2029 case kNumStates: |
| 2030 NOTREACHED(); |
| 2031 return 0; |
| 2032 } |
| 2033 case kCaptionMax: |
| 2034 switch (state) { |
| 2035 case kDisabled: |
| 2036 return MAXBS_DISABLED; |
| 2037 case kHovered: |
| 2038 return MAXBS_HOT; |
| 2039 case kNormal: |
| 2040 return MAXBS_NORMAL; |
| 2041 case kPressed: |
| 2042 return MAXBS_PUSHED; |
| 2043 case kNumStates: |
| 2044 NOTREACHED(); |
| 2045 return 0; |
| 2046 } |
| 2047 case kCaptionRestore: |
| 2048 switch (state) { |
| 2049 case kDisabled: |
| 2050 return RBS_DISABLED; |
| 2051 case kHovered: |
| 2052 return RBS_HOT; |
| 2053 case kNormal: |
| 2054 return RBS_NORMAL; |
| 2055 case kPressed: |
| 2056 return RBS_PUSHED; |
| 2057 case kNumStates: |
| 2058 NOTREACHED(); |
| 2059 return 0; |
| 2060 } |
| 2061 case kCaptionClose: |
| 2062 switch (state) { |
| 2063 case kDisabled: |
| 2064 return CBS_DISABLED; |
| 2065 case kHovered: |
| 2066 return CBS_HOT; |
| 2067 case kNormal: |
| 2068 return CBS_NORMAL; |
| 2069 case kPressed: |
| 2070 return CBS_PUSHED; |
| 2071 case kNumStates: |
| 2072 NOTREACHED(); |
| 2073 return 0; |
| 2074 } |
| 1951 case kComboboxArrow: | 2075 case kComboboxArrow: |
| 1952 case kInnerSpinButton: | 2076 case kInnerSpinButton: |
| 1953 case kMenuList: | 2077 case kMenuList: |
| 1954 case kMenuCheckBackground: | 2078 case kMenuCheckBackground: |
| 1955 case kMenuPopupBackground: | 2079 case kMenuPopupBackground: |
| 1956 case kMenuItemBackground: | 2080 case kMenuItemBackground: |
| 1957 case kProgressBar: | 2081 case kProgressBar: |
| 1958 case kScrollbarHorizontalTrack: | 2082 case kScrollbarHorizontalTrack: |
| 1959 case kScrollbarVerticalTrack: | 2083 case kScrollbarVerticalTrack: |
| 1960 case kScrollbarHorizontalGripper: | 2084 case kScrollbarHorizontalGripper: |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2083 break; | 2207 break; |
| 2084 case LAST: | 2208 case LAST: |
| 2085 NOTREACHED(); | 2209 NOTREACHED(); |
| 2086 break; | 2210 break; |
| 2087 } | 2211 } |
| 2088 theme_handles_[theme_name] = handle; | 2212 theme_handles_[theme_name] = handle; |
| 2089 return handle; | 2213 return handle; |
| 2090 } | 2214 } |
| 2091 | 2215 |
| 2092 } // namespace ui | 2216 } // namespace ui |
| OLD | NEW |