diff options
Diffstat (limited to 'webkit/tools/test_shell/test_shell_webthemecontrol.h')
-rw-r--r-- | webkit/tools/test_shell/test_shell_webthemecontrol.h | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/webkit/tools/test_shell/test_shell_webthemecontrol.h b/webkit/tools/test_shell/test_shell_webthemecontrol.h deleted file mode 100644 index b439f81..0000000 --- a/webkit/tools/test_shell/test_shell_webthemecontrol.h +++ /dev/null @@ -1,178 +0,0 @@ -// Copyright (c) 2011 The Chromium Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// TestShellWebTheme::Control implements the generic rendering of controls -// needed by TestShellWebTheme::Engine. See the comments in that class -// header file for why this class is needed and used. -// -// This class implements a generic set of widgets using Skia. The widgets -// are optimized for testability, not a pleasing appearance. -// - -#ifndef WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBTHEMECONTROL_H_ -#define WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBTHEMECONTROL_H_ - -#include "base/basictypes.h" -#include "third_party/skia/include/core/SkColor.h" -#include "third_party/skia/include/core/SkRect.h" - -class SkCanvas; - -namespace TestShellWebTheme { - -class Control { - public: - // This list of states mostly mirrors the list in - // third_party/WebKit/WebCore/platform/ThemeTypes.h but is maintained - // separately since that isn't public and also to minimize dependencies. - // Note that the WebKit ThemeTypes seem to imply that a control can be - // in multiple states simultaneously but WebThemeEngine only allows for - // a single state at a time. - // - // Some definitions for the various states: - // Disabled - indicates that a control can't be modified or selected - // (corresponds to HTML 'disabled' attribute) - // ReadOnly - indicates that a control can't be modified but can be - // selected - // Normal - the normal state of control on the page when it isn't - // focused or otherwise active - // Hot - when the mouse is hovering over a part of the control, - // all the other parts are considered "hot" - // Hover - when the mouse is directly over a control (the CSS - // :hover pseudo-class) - // Focused - when the control has the keyboard focus - // Pressed - when the control is being triggered (by a mousedown or - // a key event). - // Indeterminate - when set to indeterminate (only for progress bar) - enum State { - kUnknown_State = 0, - kDisabled_State, - kReadOnly_State, - kNormal_State, - kHot_State, - kHover_State, - kFocused_State, - kPressed_State, - kIndeterminate_State - }; - - // This list of types mostly mirrors the list in - // third_party/WebKit/WebCore/platform/ThemeTypes.h but is maintained - // separately since that isn't public and also to minimize dependencies. - // - // Note that what the user might think of as a single control can be - // made up of multiple parts. For example, a single scroll bar contains - // six clickable parts - two arrows, the "thumb" indicating the current - // position on the bar, the other two parts of the bar (before and after - // the thumb) and the "gripper" on the thumb itself. - // - enum Type { - kUnknown_Type = 0, - kTextField_Type, - kPushButton_Type, - kUncheckedBox_Type, - kCheckedBox_Type, - kIndeterminateCheckBox_Type, - kUncheckedRadio_Type, - kCheckedRadio_Type, - kHorizontalScrollTrackBack_Type, - kHorizontalScrollTrackForward_Type, - kHorizontalScrollThumb_Type, - kHorizontalScrollGrip_Type, - kVerticalScrollTrackBack_Type, - kVerticalScrollTrackForward_Type, - kVerticalScrollThumb_Type, - kVerticalScrollGrip_Type, - kLeftArrow_Type, - kRightArrow_Type, - kUpArrow_Type, - kDownArrow_Type, - kHorizontalSliderTrack_Type, - kHorizontalSliderThumb_Type, - kDropDownButton_Type, - kProgressBar_Type - }; - - // canvas is the canvas to draw onto, and rect gives the size of the - // control. ctype and cstate specify the type and state of the control. - Control(SkCanvas* canvas, const SkIRect& rect, - Type ctype, State cstate); - ~Control(); - - // Draws the control. - void draw(); - - // Use this for TextField controls instead, because the logic - // for drawing them is dependent on what WebKit tells us to do. - // If draw_edges is true, draw an edge around the control. If - // fill_content_area is true, fill the content area with the given color. - void drawTextField(bool draw_edges, bool fill_content_area, SkColor color); - - // Use this for drawing ProgressBar controls instead, since we - // need to know the rect to fill inside the bar. - void drawProgressBar(const SkIRect& fill_rect); - - private: - // Draws a box of size specified by irect, filled with the given color. - // The box will have a border drawn in the default edge color. - void box(const SkIRect& irect, SkColor color); - - - // Draws a triangle of size specified by the three pairs of coordinates, - // filled with the given color. The box will have an edge drawn in the - // default edge color. - void triangle(int x0, int y0, int x1, int y1, int x2, int y2, - SkColor color); - - // Draws a rectangle the size of the control with rounded corners, filled - // with the specified color (and with a border in the default edge color). - void roundRect(SkColor color); - - // Draws an oval the size of the control, filled with the specified color - // and with a border in the default edge color. - void oval(SkColor color); - - // Draws a circle centered in the control with the specified radius, - // filled with the specified color, and with a border draw in the - // default edge color. - void circle(SkScalar radius, SkColor color); - - // Draws a box the size of the control, filled with the outer_color and - // with a border in the default edge color, and then draws another box - // indented on all four sides by the specified amounts, filled with the - // inner color and with a border in the default edge color. - void nested_boxes(int indent_left, int indent_top, - int indent_right, int indent_bottom, - SkColor outer_color, SkColor inner_color); - - // Draws a line between the two points in the given color. - void line(int x0, int y0, int x1, int y1, SkColor color); - - // Draws a distinctive mark on the control for each state, so that the - // state of the control can be determined without needing to know which - // color is which. - void markState(); - - SkCanvas* canvas_; - const SkIRect irect_; - const Type type_; - const State state_; - const SkColor edge_color_; - const SkColor bg_color_; - const SkColor fg_color_; - - // The following are convenience accessors for irect_. - const int left_; - const int right_; - const int top_; - const int bottom_; - const int width_; - const int height_; - - DISALLOW_COPY_AND_ASSIGN(Control); -}; - -} // namespace TestShellWebTheme - -#endif // WEBKIT_TOOLS_TEST_SHELL_TEST_SHELL_WEBTHEMECONTROL_H_ |