// 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_