Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: ui/cc/cc/CCScrollbarLayerImpl.h

Issue 10701016: Initial import attempt, just to play with. Many things disabled/removed (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/cc/cc/CCScopedThreadProxy.h ('k') | ui/cc/cc/CCScrollbarLayerImpl.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/cc/cc/CCScrollbarLayerImpl.h
diff --git a/ui/cc/cc/CCScrollbarLayerImpl.h b/ui/cc/cc/CCScrollbarLayerImpl.h
new file mode 100644
index 0000000000000000000000000000000000000000..ece2b9571414bf4256fdb4ee4fd5ea1c7c046f31
--- /dev/null
+++ b/ui/cc/cc/CCScrollbarLayerImpl.h
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2012 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef CCScrollbarLayerImpl_h
+#define CCScrollbarLayerImpl_h
+
+#if USE(ACCELERATED_COMPOSITING)
+
+#include "ScrollbarThemeClient.h"
+#include "cc/CCLayerImpl.h"
+
+namespace WebCore {
+
+class ScrollView;
+
+class CCScrollbarLayerImpl : public CCLayerImpl {
+public:
+ static PassOwnPtr<CCScrollbarLayerImpl> create(int id);
+
+ void setScrollbarOverlayStyle(ScrollbarOverlayStyle scrollbarOverlayStyle) { m_scrollbarOverlayStyle = scrollbarOverlayStyle; }
+ void setTickmarks(const Vector<IntRect>& tickmarks) { m_tickmarks = tickmarks; }
+ void setIsScrollableAreaActive(bool isScrollableAreaActive) { m_isScrollableAreaActive = isScrollableAreaActive; }
+ void setIsScrollViewScrollbar(bool isScrollViewScrollbar) { m_isScrollViewScrollbar = isScrollViewScrollbar; }
+
+ void setOrientation(ScrollbarOrientation orientation) { m_orientation = orientation; }
+
+ void setControlSize(ScrollbarControlSize controlSize) { m_controlSize = controlSize; }
+
+ void setPressedPart(ScrollbarPart pressedPart) { m_pressedPart = pressedPart; }
+ void setHoveredPart(ScrollbarPart hoveredPart) { m_hoveredPart = hoveredPart; }
+
+ void setEnabled(bool enabled) { m_enabled = enabled; }
+
+ void setBackTrackTextureId(unsigned id) { m_backTrackTextureId = id; }
+ void setForeTrackTextureId(unsigned id) { m_foreTrackTextureId = id; }
+ void setThumbTextureId(unsigned id) { m_thumbTextureId = id; }
+
+ CCLayerImpl* scrollLayer() const { return m_scrollLayer; }
+ void setScrollLayer(CCLayerImpl* scrollLayer) { m_scrollLayer = scrollLayer; }
+
+ virtual void appendQuads(CCQuadCuller&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+
+protected:
+ explicit CCScrollbarLayerImpl(int id);
+
+private:
+ CCLayerImpl* m_scrollLayer;
+
+ // nested class only to avoid namespace problem
+ class CCScrollbar : public ScrollbarThemeClient {
+ public:
+ explicit CCScrollbar(CCScrollbarLayerImpl* owner) : m_owner(owner) { }
+
+ // ScrollbarThemeClient implementation
+ virtual int x() const;
+ virtual int y() const;
+ virtual int width() const;
+ virtual int height() const;
+ virtual IntSize size() const;
+ virtual IntPoint location() const;
+
+ virtual ScrollView* parent() const;
+ virtual ScrollView* root() const;
+
+ virtual void setFrameRect(const IntRect&);
+ virtual IntRect frameRect() const;
+
+ virtual void invalidate();
+ virtual void invalidateRect(const IntRect&);
+
+ virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const;
+ virtual void getTickmarks(Vector<IntRect>&) const;
+ virtual bool isScrollableAreaActive() const;
+ virtual bool isScrollViewScrollbar() const;
+
+ virtual IntPoint convertFromContainingWindow(const IntPoint& windowPoint);
+
+ virtual bool isCustomScrollbar() const;
+ virtual ScrollbarOrientation orientation() const;
+
+ virtual int value() const;
+ virtual float currentPos() const;
+ virtual int visibleSize() const;
+ virtual int totalSize() const;
+ virtual int maximum() const;
+ virtual ScrollbarControlSize controlSize() const;
+
+ virtual int lineStep() const;
+ virtual int pageStep() const;
+
+ virtual ScrollbarPart pressedPart() const;
+ virtual ScrollbarPart hoveredPart() const;
+
+ virtual void styleChanged();
+
+ virtual bool enabled() const;
+ virtual void setEnabled(bool);
+
+ private:
+ CCScrollbarLayerImpl* m_owner;
+
+ };
+ CCScrollbar m_scrollbar;
+
+ unsigned m_backTrackTextureId;
+ unsigned m_foreTrackTextureId;
+ unsigned m_thumbTextureId;
+
+ ScrollbarOverlayStyle m_scrollbarOverlayStyle;
+ Vector<IntRect> m_tickmarks;
+ bool m_isScrollableAreaActive;
+ bool m_isScrollViewScrollbar;
+
+ ScrollbarOrientation m_orientation;
+
+ ScrollbarControlSize m_controlSize;
+
+ ScrollbarPart m_pressedPart;
+ ScrollbarPart m_hoveredPart;
+
+ bool m_enabled;
+};
+
+}
+#endif // USE(ACCELERATED_COMPOSITING)
+
+#endif
« no previous file with comments | « ui/cc/cc/CCScopedThreadProxy.h ('k') | ui/cc/cc/CCScrollbarLayerImpl.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698