All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jpedal.display.Display Maven / Gradle / Ivy

/*
 * ===========================================
 * Java Pdf Extraction Decoding Access Library
 * ===========================================
 *
 * Project Info:  http://www.idrsolutions.com
 * Help section for developers at http://www.idrsolutions.com/support/
 *
 * (C) Copyright 1997-2017 IDRsolutions and Contributors.
 *
 * This file is part of JPedal/JPDF2HTML5
 *
     This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


 *
 * ---------------
 * Display.java
 * ---------------
 */
package org.jpedal.display;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Rectangle;

import org.jpedal.objects.acroforms.AcroRenderer;
import org.jpedal.render.DynamicVectorRenderer;
import org.jpedal.text.TextLines;

public interface Display {

    /**
     * when no display is set
     */
    int NODISPLAY = 0;

    /**
     * show pages one at a time
     */
    int SINGLE_PAGE = 1;

    /**
     * show all pages
     */
    int CONTINUOUS = 2;

    /**
     * show all pages two at a time
     */
    int CONTINUOUS_FACING = 3;

    /**
     * show pages two at a time
     */
    int FACING = 4;

    /**
     * PageFlowing mode
     */
    int PAGEFLOW = 5;

    /**
     * Portfolio Detail mode
     */
    int PORTFOLIO_DETAIL = 6;

    /**
     * Portfolio Tile mode
     */
    int PORTFOLIO_TILE = 7;

    int DISPLAY_LEFT_ALIGNED = 1;

    int DISPLAY_CENTERED = 2;

    double getIndent();

    int[] getCursorBoxOnScreenAsArray();

    void forceRedraw();

    void setPageRotation(int displayRotation);

    void resetViewableArea();

    void paintPage(Graphics2D g2, AcroRenderer formRenderer, TextLines textLines);

    void updateCursorBoxOnScreen(int[] newOutlineRectangle, int outlineColor, int pageNumber, int x_size, int y_size);

    void drawCursor(Graphics g, float scaling);

    void drawFacing(Rectangle visibleRect);

    enum BoolValue {
        TURNOVER_ON,
        SEPARATE_COVER
    }

    /**
     * flag used in development of layout modes
     */
    boolean debugLayout = false;

    int[] getPageSize(int displayView);

    void decodeOtherPages(int pageNumber, int pageCount);

    void stopGeneratingPage();

    void refreshDisplay();

    Rectangle getDisplayedRectangle();

    void disableScreen();

    void flushPageCaches();

    void init(float scaling, int displayRotation, int pageNumber, DynamicVectorRenderer currentDisplay, boolean isInit);

    void drawBorder();

    void setup(boolean useAcceleration, PageOffsets currentOffset);

    int getYCordForPage(int page);

    int getYCordForPage(int page, float scaling);

    int getXCordForPage(int currentPage);

    void setThumbnailPanel(GUIThumbnailPanel thumbnails);

    void setScaling(float scaling);

    @SuppressWarnings("UnusedDeclaration")
    void setPageOffsets(int page);

    void dispose();

    void setAcceleration(boolean enable);

    void setAccelerationAlwaysRedraw(boolean enable);

    void setObjectValue(int type, Object newValue);

    int[] getHighlightedImage();

    void setHighlightedImage(int[] i);

    float getOldScaling();

    boolean getBoolean(BoolValue option);

    void setBoolean(BoolValue option, boolean value);

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy