package org.ebookdroid.ui.viewer;
import org.ebookdroid.core.ViewState;
import android.graphics.PointF;
import android.graphics.Rect;
import android.graphics.RectF;
import android.support.annotation.Nullable;
import android.support.annotation.WorkerThread;
import android.view.View;
import org.emdev.common.log.LogContext;
import org.emdev.common.log.LogManager;
public interface IView {
LogContext LCTX = LogManager.root().lctx("View");
View getView();
IActivityController getBase();
void invalidateScroll();
void invalidateScroll(final float newZoom, final float oldZoom, @Nullable PointF center);
void startPageScroll(final int dx, final int dy);
void startFling(final float vX, final float vY, final Rect limits);
void continueScroll();
/**
* Forces the scrolling to finish
*
* @return true if this call forced the scrolling to finish, false if it was already finished
*/
boolean forceFinishScroll();
void scrollBy(int x, int y);
void scrollTo(final int x, final int y);
void _scrollTo(final int x, final int y);
void onScrollChanged(final int curX, final int curY, final int oldX, final int oldY);
RectF getViewRect();
void changeLayoutLock(final boolean lock);
boolean isLayoutLocked();
@WorkerThread
void waitForInitialization();
void onDestroy();
float getScrollScaleRatio();
void stopScroller();
void redrawView();
void redrawView(final ViewState viewState);
int getScrollX();
int getScrollY();
int getWidth();
int getHeight();
PointF getBase(RectF viewRect);
void checkFullScreenMode();
boolean post(Runnable r);
boolean isScrollFinished();
}