Initial import of Cobalt 2.8885 2016-07-27
diff --git a/src/third_party/skia/debugger/QT/SkDebuggerGUI.h b/src/third_party/skia/debugger/QT/SkDebuggerGUI.h
new file mode 100644
index 0000000..3f44550
--- /dev/null
+++ b/src/third_party/skia/debugger/QT/SkDebuggerGUI.h
@@ -0,0 +1,365 @@
+
+/*
+ * Copyright 2012 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SKDEBUGGERUI_H
+#define SKDEBUGGERUI_H
+
+
+#include "SkCanvas.h"
+#include "SkCanvasWidget.h"
+#include "SkDebugger.h"
+#include "SkGLWidget.h"
+#include "SkListWidget.h"
+#include "SkInspectorWidget.h"
+#include "SkRasterWidget.h"
+#include "SkImageWidget.h"
+#include "SkSettingsWidget.h"
+#include <QtCore/QVariant>
+#include <QtGui/QAction>
+#include <QtGui/QApplication>
+#include <QtGui/QButtonGroup>
+#include <QtGui/QHBoxLayout>
+#include <QtGui/QHeaderView>
+#include <QtGui/QListView>
+#include <QtGui/QListWidget>
+#include <QtGui/QMainWindow>
+#include <QtGui/QSplitter>
+#include <QtGui/QStatusBar>
+#include <QtGui/QToolBar>
+#include <QtGui/QVBoxLayout>
+#include <QtGui/QWidget>
+#include <QtGui/QMenu>
+#include <QtGui/QMenuBar>
+#include <vector>
+
+class SkTimedPicture;
+namespace sk_tools {
+    class PictureRenderer;
+}
+
+/** \class SkDebuggerGUI
+
+    Container for the UI and it's functions.
+ */
+class SkDebuggerGUI : public QMainWindow {
+    Q_OBJECT
+
+public:
+    /**
+        Constructs the view of the application.
+        @param parent  The parent container of this widget.
+     */
+    SkDebuggerGUI(QWidget *parent = 0);
+
+    ~SkDebuggerGUI();
+
+    /**
+        Updates the directory widget with the latest directory path stored in
+        the global class variable fPath.
+     */
+    void setupDirectoryWidget(const QString& path);
+
+    /**
+        Loads the specified file.
+    */
+    void openFile(const QString& filename);
+
+signals:
+    void commandChanged(int command);
+
+private slots:
+    /**
+        Toggles breakpoint view in the list widget.
+     */
+    void actionBreakpoints();
+
+    /**
+        Toggles between count and offset style of command indexing in GUI
+     */
+    void actionToggleIndexStyle();
+
+    /**
+        Profile the commands
+     */
+    void actionProfile();
+
+    /**
+        Cancels the command filter in the list widget.
+     */
+    void actionCancel();
+
+    /**
+        Clears the breakpoint state off of all commands marked as breakpoints.
+     */
+    void actionClearBreakpoints();
+
+    /**
+        Clears the deleted state off of all commands marked as deleted.
+     */
+    void actionClearDeletes();
+
+    /**
+        Applies a visible filter to all drawing commands other than the previous.
+     */
+    void actionCommandFilter();
+
+    /**
+        Closes the application.
+     */
+    void actionClose();
+
+    /**
+        Deletes the command in question.
+     */
+    void actionDelete();
+
+#if SK_SUPPORT_GPU
+    /**
+        Updates the visibility of the GL canvas widget and sample count of the GL surface.
+     */
+    void actionGLWidget();
+#endif
+
+    /**
+        Toggles the visibility of the inspector widget.
+     */
+    void actionInspector();
+
+    /**
+        Plays from the current step to the next breakpoint if it exists, otherwise
+        executes all remaining draw commands.
+     */
+    void actionPlay();
+
+    /**
+        Toggles the visibility of the raster canvas widget.
+     */
+    void actionRasterWidget(bool isToggled);
+
+    /**
+        Toggles the the overdraw visualization on and off
+     */
+    void actionOverdrawVizWidget(bool isToggled);
+
+    /**
+        Toggles the the mega visualization on and off
+     */
+    void actionMegaVizWidget(bool isToggled);
+
+    /**
+        Toggles using path ops to simplify the clip stack
+     */
+    void actionPathOpsWidget(bool );
+
+    /**
+        Applies the new texture filter override
+     */
+    void actionTextureFilter();
+
+    /**
+        Rewinds from the current step back to the start of the commands.
+     */
+    void actionRewind();
+
+    /**
+        Saves the current SKP with all modifications.
+     */
+    void actionSave();
+
+    /**
+        Saves the current SKP under a different name and/or location.
+     */
+    void actionSaveAs();
+
+    /**
+        Sends the scale factor information to the settings widget.
+     */
+    void actionScale(float scaleFactor);
+
+    /**
+        Toggles the settings widget visibility.
+     */
+    void actionSettings();
+
+    /**
+        Steps forward to the next draw command.
+     */
+    void actionStepBack();
+
+    /**
+        Steps backwards to the next draw command.
+     */
+    void actionStepForward();
+
+    /**
+        Called when the canvas is done being drawn to by SkCanvasWidget.
+     */
+    void drawComplete();
+
+    /**
+        Loads an skpicture selected from the directory.
+     */
+    void loadFile(QListWidgetItem *item);
+
+    /**
+        Toggles a dialog with a file browser for navigating to a skpicture. Loads
+        the selected file.
+     */
+    void openFile();
+
+    /**
+        Toggles whether drawing to a new command requires a double click
+        or simple focus.
+     */
+    void pauseDrawing(bool isPaused = true);
+
+    /**
+        Executes draw commands up to the selected command
+     */
+    void registerListClick(QListWidgetItem *item);
+
+    /**
+        Sets the command to active in the list widget.
+     */
+    void selectCommand(int command);
+
+    /**
+        Toggles the exclusive listing of commands set as deleted.
+     */
+    void showDeletes();
+
+    /**
+        Toggles a breakpoint on the current step in the list widget.
+     */
+    void toggleBreakpoint();
+
+    /**
+        Toggles the visibility of the directory widget.
+     */
+    void toggleDirectory();
+
+    /**
+        Filters the list widgets command visibility based on the currently
+        active selection.
+     */
+    void toggleFilter(QString string);
+
+private:
+    QSplitter fCentralSplitter;
+    QStatusBar fStatusBar;
+    QToolBar fToolBar;
+
+    QAction fActionOpen;
+    QAction fActionBreakpoint;
+    QAction fActionToggleIndexStyle;
+    QAction fActionProfile;
+    QAction fActionCancel;
+    QAction fActionClearBreakpoints;
+    QAction fActionClearDeletes;
+    QAction fActionClose;
+    QAction fActionCreateBreakpoint;
+    QAction fActionDelete;
+    QAction fActionDirectory;
+    QAction fActionGoToLine;
+    QAction fActionInspector;
+    QAction fActionSettings;
+    QAction fActionPlay;
+    QAction fActionPause;
+    QAction fActionRewind;
+    QAction fActionSave;
+    QAction fActionSaveAs;
+    QAction fActionShowDeletes;
+    QAction fActionStepBack;
+    QAction fActionStepForward;
+    QAction fActionZoomIn;
+    QAction fActionZoomOut;
+    QSignalMapper fMapper;
+
+    QWidget fSpacer;
+    QComboBox fFilter;
+
+    QSplitter fLeftColumnSplitter;
+    QWidget fMainAndRightColumnWidget;
+    QVBoxLayout fMainAndRightColumnLayout;
+    QHBoxLayout fCanvasSettingsAndImageLayout;
+    QVBoxLayout fSettingsAndImageLayout;
+
+    QListWidget fListWidget;
+    QListWidget fDirectoryWidget;
+
+    SkDebugger fDebugger;
+    SkCanvasWidget fCanvasWidget;
+    SkImageWidget fImageWidget;
+    SkInspectorWidget fInspectorWidget;
+    SkSettingsWidget fSettingsWidget;
+
+    QString fPath;
+    SkString fFileName;
+    SkTDArray<bool> fSkipCommands; // has a specific command been deleted?
+    bool fDirectoryWidgetActive;
+
+    QMenuBar fMenuBar;
+    QMenu fMenuFile;
+    QMenu fMenuEdit;
+    QMenu fMenuNavigate;
+    QMenu fMenuView;
+    QMenu fMenuWindows;
+
+    bool fBreakpointsActivated;
+    bool fIndexStyleToggle;
+    bool fDeletesActivated;
+    bool fPause;
+    bool fLoading;
+    int fPausedRow;
+
+    /**
+        Creates the entire UI.
+     */
+    void setupUi(QMainWindow *SkDebuggerGUI);
+
+    /**
+        Pipes a QString in with the location of the filename, proceeds to updating
+        the listwidget, combowidget and inspectorwidget.
+     */
+    void loadPicture(const SkString& fileName);
+
+    /**
+        Creates a picture of the current canvas.
+     */
+    void saveToFile(const SkString& filename);
+
+    /**
+        Populates the list widget with the vector of strings passed in.
+     */
+    void setupListWidget(SkTArray<SkString>* commands, SkTDArray<size_t>* offsets);
+
+    /**
+        Populates the combo box widget with the vector of strings passed in.
+     */
+    void setupComboBox(SkTArray<SkString>* command);
+
+    /**
+        Fills in the overview pane with text
+     */
+    void setupOverviewText(const SkTDArray<double>* typeTimes, double totTime, int numRuns);
+
+    /**
+        Fills in the clip stack pane with text
+     */
+    void setupClipStackText();
+
+    /**
+        Render the supplied picture several times tracking the time consumed
+        by each command.
+     */
+    void run(const SkPicture* pict,
+             sk_tools::PictureRenderer* renderer,
+             int repeats);
+};
+
+#endif // SKDEBUGGERUI_H