e0922d6a5841a56fd2b144ec6c3ee0d65f2a7bc0
[platform/framework/web/crosswalk-tizen.git] /
1 /*
2  * Copyright (C) 2009 Apple Inc.
3  * Copyright (C) 2009 Google Inc.
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions and the following disclaimer.
11  * 2. Redistributions in binary form must reproduce the above copyright
12  *    notice, this list of conditions and the following disclaimer in the
13  *    documentation and/or other materials provided with the distribution.
14  *
15  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
16  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
19  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */
27
28 #ifndef MediaControlsPainter_h
29 #define MediaControlsPainter_h
30
31 #include "wtf/Allocator.h"
32
33 namespace blink {
34
35 struct PaintInfo;
36
37 class ComputedStyle;
38 class IntRect;
39 class LayoutObject;
40
41 class MediaControlsPainter {
42   STATIC_ONLY(MediaControlsPainter);
43
44  public:
45   static bool paintMediaMuteButton(const LayoutObject&,
46                                    const PaintInfo&,
47                                    const IntRect&);
48   static bool paintMediaPlayButton(const LayoutObject&,
49                                    const PaintInfo&,
50                                    const IntRect&);
51 #if defined(OS_TIZEN)
52   static bool paintMediaSeekBackButton(const LayoutObject&,
53                                        const PaintInfo&,
54                                        const IntRect&);
55   static bool paintMediaSeekForwardButton(const LayoutObject&,
56                                           const PaintInfo&,
57                                           const IntRect&);
58 #endif
59   static bool paintMediaToggleClosedCaptionsButton(const LayoutObject&,
60                                                    const PaintInfo&,
61                                                    const IntRect&);
62   static bool paintMediaSlider(const LayoutObject&,
63                                const PaintInfo&,
64                                const IntRect&);
65   static bool paintMediaSliderThumb(const LayoutObject&,
66                                     const PaintInfo&,
67                                     const IntRect&);
68   static bool paintMediaVolumeSlider(const LayoutObject&,
69                                      const PaintInfo&,
70                                      const IntRect&);
71   static bool paintMediaVolumeSliderThumb(const LayoutObject&,
72                                           const PaintInfo&,
73                                           const IntRect&);
74   static bool paintMediaFullscreenButton(const LayoutObject&,
75                                          const PaintInfo&,
76                                          const IntRect&);
77   static bool paintMediaOverlayPlayButton(const LayoutObject&,
78                                           const PaintInfo&,
79                                           const IntRect&);
80 #if defined(TIZEN_VIDEO_MANUAL_ROTATION_SUPPORT)
81   static bool paintMediaRotateButton(const LayoutObject&,
82                                      const PaintInfo&,
83                                      const IntRect&);
84 #endif
85 #if defined(TIZEN_MULTIMEDIA_SUPPORT)
86   static bool paintMediaOverlaySpinner(const LayoutObject&,
87                                        const PaintInfo&,
88                                        const IntRect&);
89 #endif
90   static bool paintMediaCastButton(const LayoutObject&,
91                                    const PaintInfo&,
92                                    const IntRect&);
93   static bool paintMediaTrackSelectionCheckmark(const LayoutObject&,
94                                                 const PaintInfo&,
95                                                 const IntRect&);
96   static bool paintMediaClosedCaptionsIcon(const LayoutObject&,
97                                            const PaintInfo&,
98                                            const IntRect&);
99   static bool paintMediaSubtitlesIcon(const LayoutObject&,
100                                       const PaintInfo&,
101                                       const IntRect&);
102   static bool paintMediaOverflowMenu(const LayoutObject&,
103                                      const PaintInfo&,
104                                      const IntRect&);
105   static bool paintMediaDownloadIcon(const LayoutObject&,
106                                      const PaintInfo&,
107                                      const IntRect&);
108   static void adjustMediaSliderThumbSize(ComputedStyle&);
109
110  private:
111   static void adjustMediaSliderThumbPaintSize(const IntRect&,
112                                               const ComputedStyle&,
113                                               IntRect& rectOut);
114   static void paintMediaSliderInternal(const LayoutObject&,
115                                        const PaintInfo&,
116                                        const IntRect&);
117 };
118
119 }  // namespace blink
120
121 #endif  // MediaControlsPainter_h