14e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 24e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 34e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)// found in the LICENSE file. 44e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 54e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)package org.chromium.content.browser; 64e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 74e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)/** 84e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Used to register listeners that can be notified of changes to the position of a view. 94e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 104e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)public interface PositionObserver { 114e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) public interface Listener { 124e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) /** 134e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Called during predraw if the position of the underlying view has changed. 144e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 154e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void onPositionChanged(int positionX, int positionY); 164e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) } 174e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 184e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) /** 194e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * @return The current x position of the observed view. 204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) int getPositionX(); 224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) /** 244e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * @return The current y position of the observed view. 254e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 264e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) int getPositionY(); 274e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 284e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) /** 294e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Register a listener to be called when the position of the underlying view changes. 304e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 314e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void addListener(Listener listener); 324e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) 334e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) /** 344e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) * Remove a previously installed listener. 354e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) */ 364e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles) void removeListener(Listener listener); 374e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)} 38