chromium/ui/base/models/tree_model.h

// 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_BASE_MODELS_TREE_MODEL_H_
#define UI_BASE_MODELS_TREE_MODEL_H_

#include <optional>
#include <string>
#include <vector>

#include "base/component_export.h"

namespace ui {

class ImageModel;
class TreeModel;

// TreeModelNode --------------------------------------------------------------

// Type of class returned from the model. This is a low-level interface.
// Generally you will want to use TreeNode or TreeNodeWithValue which provides
// a basic implementation for storing the tree hierarchy. See
// tree_node_model.h.
class TreeModelNode {};

// Observer for the TreeModel. Notified of significant events to the model.
class COMPONENT_EXPORT(UI_BASE) TreeModelObserver {};

// TreeModel ------------------------------------------------------------------

// The model for TreeView. This is a low-level interface and requires a lot
// of bookkeeping for the tree to be implemented. Generally you will want to
// use TreeNodeModel which provides a standard implementation for basic
// hierarchy and observer notification. See tree_node_model.h.
class COMPONENT_EXPORT(UI_BASE) TreeModel {};

}  // namespace ui

#endif  // UI_BASE_MODELS_TREE_MODEL_H_