OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 21 matching lines...) Expand all Loading... |
32 #define WebThemeEngine_h | 32 #define WebThemeEngine_h |
33 | 33 |
34 #include "WebCanvas.h" | 34 #include "WebCanvas.h" |
35 #include "WebColor.h" | 35 #include "WebColor.h" |
36 #include "WebSize.h" | 36 #include "WebSize.h" |
37 | 37 |
38 namespace blink { | 38 namespace blink { |
39 | 39 |
40 struct WebRect; | 40 struct WebRect; |
41 | 41 |
42 // FIXME: crbug.com/327471. We need to merge the Apple and non-Apple implementat
ions. | |
43 | |
44 class WebThemeEngine { | 42 class WebThemeEngine { |
45 public: | 43 public: |
46 // The current state of the associated Part. | 44 // The current state of the associated Part. |
47 enum State { | 45 enum State { |
48 StateDisabled, | 46 StateDisabled, |
49 StateHover, // non-Apple | 47 StateHover, // non-Apple |
50 StateNormal, // non-Apple | 48 StateNormal, // non-Apple |
51 StatePressed, | 49 StatePressed, |
52 StateFocused, // non-Apple | 50 StateFocused, // non-Apple |
53 StateReadonly, // non-Apple | 51 StateReadonly, // non-Apple |
54 StateInactive, // Apple-specific | 52 StateInactive, // Apple-specific |
55 StateActive, // Apple-specific | 53 StateActive, // Apple-specific |
56 }; | 54 }; |
57 | 55 |
58 // FIXME: The next section describes stuff only used on the Apple port. | |
59 enum Size { | |
60 SizeRegular, | |
61 SizeSmall, | |
62 }; | |
63 | |
64 enum ScrollbarOrientation { | |
65 ScrollbarOrientationHorizontal, | |
66 ScrollbarOrientationVertical, | |
67 }; | |
68 | |
69 enum ScrollbarParent { | |
70 ScrollbarParentScrollView, | |
71 ScrollbarParentRenderLayer, | |
72 }; | |
73 | |
74 struct ScrollbarInfo { | |
75 ScrollbarOrientation orientation; | |
76 ScrollbarParent parent; | |
77 int maxValue; | |
78 int currentValue; | |
79 int visibleSize; | |
80 int totalSize; | |
81 }; | |
82 | |
83 virtual void paintScrollbarThumb(WebCanvas*, State, Size, const WebRect&, co
nst ScrollbarInfo&) { } | |
84 | |
85 // FIXME: The remaining definitions are only used on the non-Apple ports. | |
86 | |
87 // The UI part which is being accessed. | 56 // The UI part which is being accessed. |
88 enum Part { | 57 enum Part { |
89 // ScrollbarTheme parts | 58 // ScrollbarTheme parts |
90 PartScrollbarDownArrow, | 59 PartScrollbarDownArrow, |
91 PartScrollbarLeftArrow, | 60 PartScrollbarLeftArrow, |
92 PartScrollbarRightArrow, | 61 PartScrollbarRightArrow, |
93 PartScrollbarUpArrow, | 62 PartScrollbarUpArrow, |
94 PartScrollbarHorizontalThumb, | 63 PartScrollbarHorizontalThumb, |
95 PartScrollbarVerticalThumb, | 64 PartScrollbarVerticalThumb, |
96 PartScrollbarHorizontalTrack, | 65 PartScrollbarHorizontalTrack, |
97 PartScrollbarVerticalTrack, | 66 PartScrollbarVerticalTrack, |
98 PartScrollbarCorner, | 67 PartScrollbarCorner, |
99 | 68 |
100 // RenderTheme parts | 69 // RenderTheme parts |
101 PartCheckbox, | 70 PartCheckbox, |
102 PartRadio, | 71 PartRadio, |
103 PartButton, | 72 PartButton, |
104 PartTextField, | 73 PartTextField, |
105 PartMenuList, | 74 PartMenuList, |
106 PartSliderTrack, | 75 PartSliderTrack, |
107 PartSliderThumb, | 76 PartSliderThumb, |
108 PartInnerSpinButton, | 77 PartInnerSpinButton, |
109 PartProgressBar | 78 PartProgressBar |
110 }; | 79 }; |
111 | 80 |
112 | |
113 // Extra parameters for drawing the PartScrollbarHorizontalTrack and | 81 // Extra parameters for drawing the PartScrollbarHorizontalTrack and |
114 // PartScrollbarVerticalTrack. | 82 // PartScrollbarVerticalTrack. |
115 struct ScrollbarTrackExtraParams { | 83 struct ScrollbarTrackExtraParams { |
116 bool isBack; // Whether this is the 'back' part or the 'forward' part. | 84 bool isBack; // Whether this is the 'back' part or the 'forward' part. |
117 | 85 |
118 // The bounds of the entire track, as opposed to the part being painted. | 86 // The bounds of the entire track, as opposed to the part being painted. |
119 int trackX; | 87 int trackX; |
120 int trackY; | 88 int trackY; |
121 int trackWidth; | 89 int trackWidth; |
122 int trackHeight; | 90 int trackHeight; |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 // like vertical scrollbar thumbs, the width will be the required width of | 152 // like vertical scrollbar thumbs, the width will be the required width of |
185 // the track while the height will be the minimum height. | 153 // the track while the height will be the minimum height. |
186 virtual WebSize getSize(Part) { return WebSize(); } | 154 virtual WebSize getSize(Part) { return WebSize(); } |
187 // Paint the given the given theme part. | 155 // Paint the given the given theme part. |
188 virtual void paint(WebCanvas*, Part, State, const WebRect&, const ExtraParam
s*) { } | 156 virtual void paint(WebCanvas*, Part, State, const WebRect&, const ExtraParam
s*) { } |
189 }; | 157 }; |
190 | 158 |
191 } // namespace blink | 159 } // namespace blink |
192 | 160 |
193 #endif | 161 #endif |
OLD | NEW |