chromium/ui/events/event_target_iterator.h

// Copyright 2013 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_EVENTS_EVENT_TARGET_ITERATOR_H_
#define UI_EVENTS_EVENT_TARGET_ITERATOR_H_

#include <memory>
#include <vector>

namespace ui {

class EventTarget;

// An interface that allows iterating over a set of EventTargets.
class EventTargetIterator {};

// Provides EventTargetIterator implementations for iterating over a list of
// EventTargets. The list is iterated in the reverse order, since typically the
// EventTargets are maintained in increasing z-order in the lists.
template <typename T>
class EventTargetIteratorPtrImpl : public EventTargetIterator {};

template <typename T>
class EventTargetIteratorUniquePtrImpl : public EventTargetIterator {};

}  // namespace ui

#endif  // UI_EVENTS_EVENT_TARGET_ITERATOR_H_