blob: ec4a1cd8a92be4c44aa99604a6787536435aa498 [file] [log] [blame]
// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_VIEWS_DEBUG_UTILS_H_
#define UI_VIEWS_DEBUG_UTILS_H_
#include <sstream>
#include <string>
#include "ui/views/views_export.h"
namespace views {
class View;
class Widget;
// Log the view hierarchy.
VIEWS_EXPORT void PrintViewHierarchy(const View* view);
// Print the view hierarchy to |out|.
VIEWS_EXPORT void PrintViewHierarchy(const View* view, std::ostringstream* out);
// Log the focus traversal hierarchy.
VIEWS_EXPORT void PrintFocusHierarchy(const View* view);
// Log the information of the widget to |out|. |detailed| controls the amount of
// information logged.
VIEWS_EXPORT void PrintWidgetInformation(const Widget& widget,
bool detailed,
std::ostringstream* out);
#if !defined(NDEBUG)
// Returns string containing a graph of the views hierarchy in graphViz DOT
// language (http://graphviz.org/). Can be called within debugger and saved
// to a file to compile/view.
VIEWS_EXPORT std::string PrintViewGraph(const View* view);
#endif
} // namespace views
#endif // UI_VIEWS_DEBUG_UTILS_H_