scrollindlayer.java
来自「This is a resource based on j2me embedde」· Java 代码 · 共 171 行
JAVA
171 行
/* * * * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version * 2 only, as published by the Free Software Foundation. * * This program 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 * General Public License version 2 for more details (a copy is * included at /legal/license.txt). * * You should have received a copy of the GNU General Public License * version 2 along with this work; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA * 02110-1301 USA * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa * Clara, CA 95054 or visit www.sun.com if you need additional * information or have any questions. */package com.sun.midp.chameleon.layers;import com.sun.midp.chameleon.*;import com.sun.midp.chameleon.skins.resources.ScrollIndResourcesConstants;/** * A ScrollIndLayer is a region of the display used for showing scroll indicator * status either as arrows or bar. */public abstract class ScrollIndLayer extends CLayer { /** * Scrollbar operation types */ public static final int SCROLL_NONE = 0; public static final int SCROLL_LINEUP = 1; public static final int SCROLL_LINEDOWN= 2; public static final int SCROLL_PAGEUP = 3; public static final int SCROLL_PAGEDOWN= 4; public static final int SCROLL_THUMBTRACK= 5; /** * scrollIndArrow layer is just one for all scrollable layers. * It is chached and shared between all layers */ private static ScrollIndLayer scrollIndArrows; /** Scrollable layer */ protected CLayer scrollable; /** * True if special alert indicator bar should be drawn instead of * the regular one */ protected boolean alertMode; /** * Scrolling listener. * This layer is notified if the scroll indicator is changed */ protected ScrollListener listener; /** * Set the current vertical scroll position and proportion. * * @param scrollPosition vertical scroll position. * @param scrollProportion vertical scroll proportion. */ public abstract void setVerticalScroll(int scrollPosition, int scrollProportion); /** * Calculate layer bounds depending on the scrollable */ public abstract void setBounds(); /** * Common constructor. * @param layer the scrollable controlling the scrolling layer */ protected ScrollIndLayer(CLayer layer) { super(); setOpaque(false); setSupportsInput(true); scrollable = layer; alertMode = scrollable instanceof AlertLayer; } /** * Additional constructor. * @param layer the scrollable controlling the scrolling layer * @param listener the scrolling listener */ public ScrollIndLayer(CLayer layer, ScrollListener listener) { this(layer); this.listener = listener; } /** * Set new scrollable * @param layer new scrollable controlling the scrolling layer * @return true if the scrollable is changed, false - otherwise */ public boolean setScrollable(CLayer layer) { boolean ret = scrollable != layer; if (ret) { setVisible(false); scrollable = layer; alertMode = scrollable instanceof AlertLayer; } return ret; } /** * Set new listener * @param newListener new scrolling listener * @return true if the listener is changed, false - otherwise */ public boolean setListener(ScrollListener newListener) { boolean ret = listener != newListener; if (ret) { listener = newListener; if (listener != null) { listener.updateScrollIndicator(); } } return ret; } /** * Update bounds of layer * * @param layers - current layer can be dependant on this parameter */ public void update(CLayer[] layers) { super.update(layers); setBounds(); } /** * Called by MIDPWindow to initialize this layer */ protected void initialize() { super.initialize(); setBounds(); } public static ScrollIndLayer getInstance(int type) { ScrollIndLayer s = null; switch (type) { case ScrollIndResourcesConstants.MODE_ARROWS: if (scrollIndArrows == null) { scrollIndArrows = new ScrollArrowLayer(null, null); } s = scrollIndArrows; break; case ScrollIndResourcesConstants.MODE_BAR: s = new ScrollBarLayer(null, null); break; default: break; } return s; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?