亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? thebox.java

?? 手機郵箱撒的方式方式方式的
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
                    else
                    	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));                	
    
                    //do the ticker stuff
                    Functions.Ticker(tText, tIndex, 1, tY, cw - 1, g, Graphics.TOP | Graphics.LEFT);
                    tIndex = (short) ((tIndex + 1) % tText.length());
                    return;
                }
            }
    
            // screen parameters
            int screenHeight = getHeight();
            int screenWidth = getWidth();
            if (Settings.fontSize == Settings.FONT_NORMAL)
            	g.setFont(Font.getDefaultFont());
            else
            	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE));

            int fontHeight = g.getFont().getHeight();
            
            //fill the screen with white color
            g.setColor(0x00ffffff); // white color
            g.fillRect(0, 0, screenWidth, screenHeight);
    
    
            if (isBusy()) {
                paintIsBusy();
                return;
            }
    
            //synchronization saves us from crashing, when the storage is being modified in another thread(ie deleting)
            //so the size of storage is changed and we may take an element that is out of array index
            synchronized (storage) {
                final int size = storage.getSize();
                  //System.out.println( "DEBUG TheBox.paint() - storage size: " + storage.getSize() );
                  // vertical coordinate where to start painting
                int actItem = 0;    // actually painted item
                if (Settings.fontSize == Settings.FONT_NORMAL) {
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_MEDIUM)); //set font size for box's headline
                } else {
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_BOLD, Font.SIZE_LARGE)); //set font size for box's headline            	
                }
    
                // -3 because of headline's spacing
                actItem = getActuallyPaintedItem(g, g.getFont().getHeight() - 3, fontHeight, screenHeight);
                if (pageJump != 0) {
                    cur = actItem;
                    pageJump = 0;
                }
    
                //headline: for example the folder name and number of currently 
                // selected message
                int y = g.getFont().getHeight() + 3;
                printTitle(g);
    
                // paint messages
                while (y < screenHeight && actItem < size) {
                      //System.out.println("DEBUG TheBox.paint() - actItem: " + actItem);
                    //MessageHeader mail = (MessageHeader) storage.getMessageAt( size - actItem - 1 );
                    MessageHeader mail = storage.getMessageAt( actItem );
                    if ( mail.isEmpty() ) {
                        if ( actItem == cur) {
                            empties += (direction)?1:-1;
                            cur = moveCurrent(cur, direction);
                            printTitle(g);
                        }
                    	++actItem;
                    	continue;
                    }

                    if (actItem == cur) { //fill the selected item's background
                        g.setColor(121, 111, 255);
                        g.fillRect(0, y, screenWidth, 2 * fontHeight);
                        g.setColor(255, 255, 255);
                    } else {
                        g.setColor(0x00000000);
                    }

                      // horizontal coordinate where to start painting
                    int x = 1;

                    if (storage instanceof ThreadedEmails) {
                        ThreadedEmails tm = (ThreadedEmails)storage;
                        int level = tm.getLevel( mail.getThreadingMessageID() );
                          // we want to indent only first 10 levels because 
                          //   there is not enought space for message left
                        level = Math.min(level, 10);
                        x += ( 5 * level );
                    }

                    //icons
                    drawIcons(mail, g, x, y);
                    x += 12;
                    //has attachments
                    if (mail.messageFormat == MessageHeader.FRT_MULTI) {
                        g.drawImage(imAttch, x - 3, y + 3, Graphics.TOP | Graphics.LEFT);
                        x += 4;
                    }
                    //is flagged
                    if (mail.flagged) {
                    	g.drawImage(imFlagged, x - 3, y, Graphics.TOP | Graphics.LEFT);
                    	x += 12;
                    }
    
                    // subject
                    String newSbj = mail.getSubject().length() == 0 ? Lang.get(Lang.TB_NO_SUBJECT) : mail.getSubject();
                    if (g.getFont().stringWidth(newSbj) > screenWidth - x - 1) {	//does it fit to the display?				
                        newSbj = Functions.cutString(newSbj, 0, screenWidth - x - 1 - g.getFont().stringWidth(".."), g).trim() + "..";
                    }
                    g.drawString(newSbj, x + 1, y, Graphics.TOP | Graphics.LEFT);
    
    
                    y += fontHeight;
                    
                    // paint header details
                    y = headerDetailsPainter.paint(g, mail, actItem == cur, 
                        new ScreenParameters(fontHeight, screenWidth, y));
                    
                    // paint items below header details
                    y = belowHeaderDetailsPainter.paint(g, mail, actItem == cur, 
                        new ScreenParameters(fontHeight, screenWidth, y));
                    
                    // paint the line separating each mail
                    g.setColor(228, 228, 228);
                    g.drawLine(0, y, screenWidth, y);
                    ++y;
                    ++actItem;
                } // while
            } // synchronized
        } catch (Throwable t) {
            System.err.println("ERROR - TheBox.paint()");
            t.printStackTrace();
        }
    }
    
    protected class HeaderDetailsPainter implements MessagePartPainter {

        public int getHeight(Graphics g, boolean isMailSelected) {
            if (!isMailSelected) {
                return 0;
            } else {
                Font font = g.getFont();
                if (Settings.fontSize == Settings.FONT_NORMAL)
                	g.setFont(Font.getDefaultFont());
                else
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE));
                int messageFontHeight = g.getFont().getHeight();
                g.setFont(font);

                return (isMailSelected) ? messageFontHeight + 1 : messageFontHeight;
            }
        }

        /**
         * Paints header details. Called by method paint.
         * Paints all header details on single line. If the line is too long, uses
         * ticker to scroll through the line.
         * This implementation paints header details only if the mail is currently
         * selected. See parameter isMailSelected.
         * 
         * @param g the graphics object used for painting.
         * @param mail the mail which header details will be painted
         * @param isMailSelected true if the mail which header details are painted is
         *  currently selected.
         * @param screenParameters the parameters of the screen
         * @return vertical (y) position on the screen where next item can be painted
         */
        public int paint(Graphics g, MessageHeader mail, boolean isMailSelected, ScreenParameters screenParameters) {
            if (!isMailSelected) {
                return screenParameters.actYPosition;
            } else {

                int screenWidth = screenParameters.screenWidth;
                int y = screenParameters.actYPosition;
                int fontHeight = screenParameters.defaultFontHeight;

                if (Settings.fontSize == Settings.FONT_NORMAL)
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_SMALL));
                else
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));                	
                
                //Build the string which will be shown below
                //message header
                String info = (TheBox.this == getMujMail().getInBox()) ? 
                		Lang.get(Lang.ML_FROM) + " " + mail.getFrom() + " " + 
                		mail.getRecipients() + " " +
                		Lang.get(Lang.ML_MAIL_ACCOUNT) + " " + mail.getAccountID() 
                		: mail.getRecipients();
                		
                //add size to the info string
                info = mail.getSize() < 1024 ? info + "  " + Lang.get(Lang.ML_SIZE) + " " + mail.getSize() + "B" : info + "  " + Lang.get(Lang.ML_SIZE) + " " + mail.getSize() / 1024 + "kB";
                //display time, depending if its today or not, 86400000 = 24*60*60*1000
                if (System.currentTimeMillis() / 86400000 == mail.getTime() / 86400000) {
                    info = info + "  " + Lang.get(Lang.ML_TIME) + " " + mail.getShortTimeStr();
                } else {
                    info = info + "  " + Lang.get(Lang.ML_TIME) + " " + mail.getTimeStr().substring(5, 11);
                }

                //does it fit in?	
                if (tickerEnabled && g.getFont().stringWidth(info) > screenWidth - 1) {
                    if (tickerTimer == null) { //lets init the ticker																			
                        StringBuffer bf = new StringBuffer(info);
                        short space = (short) (screenWidth / (2 * g.getFont().charWidth(' ')));
                        for (short i = 0; i < space; i++) //lets fill it with half of screen of spaces
                        {
                            bf.append(' ');
                        }
                        tText = bf.toString();
                        info = Functions.cutString(info, 0, screenWidth - 1, g);
                        g.drawString(info, 1, y, Graphics.TOP | Graphics.LEFT);
                        tickerTimer = new Timer();
                        tY = y;
                        tickerTimer.schedule(new Ticker(), 100, 100);
                    }
                } else {
                    g.drawString(info, 1, y, Graphics.TOP | Graphics.LEFT);
                }

                y += fontHeight;
                if (Settings.fontSize == Settings.FONT_NORMAL)
                	g.setFont(Font.getDefaultFont());
                else
                	g.setFont(Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_LARGE));

                return y;
            }
        }
        
        
    }

    /**
     * Interface for objects used to paint parts of messages while painting
     * the list of messages from this box.
     * Such objects are used in method paint of the class TheBox.
     * To change the way of painting of given part, redefine method setXXXPainter()
     * in the descendant of the class TheBox and set to variable used to paint
     * given message part another object implementing this interface.
     */
    protected interface MessagePartPainter {
        /** Dummy instance - does not paint anything. */
        public static final MessagePartPainter DEFAULT_PAINTER = new DefaultPainter();
        
        /**
         * Gets the height of this message part.
         * @param g the graphics object used for painting.
         * @param isMailSelected true if this mail is currently selected.
         * @return the height of this message part
         */
        public int getHeight(Graphics g, boolean isMailSelected);
        
        /**
         * Paints given message part.
         * 
         * @param g the graphics object used for painting.
         * @param mail the mail which part is painted
         * @param isMailSelected true if this mail is currently selected.
         * @param screenParameters the parameters of the screen
         * @return vertical (y) position on the screen where next item can be painted
         */
        public int paint(Graphics g, MessageHeader mail, boolean isMailSelected, ScreenParameters screenParameters);
        
        /**
         * Default implementation that does not paint anything.
         */
        public static class DefaultPainter implements MessagePartPainter {

            public int getHeight(Graphics g, boolean isMailSelected) {
                return 0;
            }

            public int paint(Graphics g, MessageHeader mail, boolean isMailSelected, ScreenParameters screenParameters) {
                return screenParameters.actYPosition;
            }
            
        }
    }
        
    /**
     * Represents screen parameters.
     */
    protected static class ScreenParameters {
        private final int defaultFontHeight;
        private final int screenWidth;
        private final int actYPosition;

        /**
         * 
         * @param defaultFontHeight the height of default font
         * @param screenWidth the width of the screen
         * @param actYPosition actual position when painting in the screen
         */
        public ScreenParameters(int defaultFontHeight, int screenWidth, int actYPosition) {
            this.defaultFontHeight = defaultFontHeight;
            this.screenWidth = screenWidth;
            this.actYPosition = actYPosition;
        }

    }
    
    
    //#ifdef MUJMAIL_TOUCH_SCR
    protected class EventListener extends  MujMailPointerEventListener.MujMailPointerEventListenerAdapter {
    //#else
//#     protected class EventListener {
    //#endif
        public void down() {
            pageJump = 1;
            repaint();
        }

        public void up() {
            pageJump = -1;
            repaint();
        }

        public void left() {
            commandAction(exit, TheBox.this);
        }

        public void right() {
        }

        public void fire() {
            if ( cur >= 0 && cur < storage.getSize() ) {
                commandAction(viewMessage, TheBox.this);
            }
        }

        public void downQuartersStar() {
            direction = true;
            shiftSelectedIndex(true);
        }

        public void upQuartersSlash() {
            direction = false;
            shiftSelectedIndex(false);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品国产欧美| 不卡av在线免费观看| 欧美日韩国产在线观看| 一区二区不卡在线视频 午夜欧美不卡在 | 一区二区三区在线影院| 成人av中文字幕| 亚洲欧美日韩系列| 在线观看av不卡| 天堂精品中文字幕在线| 欧美一二区视频| 国产真实乱偷精品视频免| 亚洲国产精品黑人久久久| 91免费看视频| 日韩精彩视频在线观看| 日韩欧美一区二区视频| 毛片一区二区三区| 国产欧美日韩另类视频免费观看| 99久久精品99国产精品| 亚洲高清视频的网址| 日韩午夜在线播放| 国产91精品一区二区| 樱桃视频在线观看一区| 欧美一区二区三区在线视频| 国产精品一二三| 亚洲三级在线看| 日韩免费电影网站| 99久久婷婷国产综合精品 | 欧美日韩视频一区二区| 麻豆视频一区二区| 最新国产成人在线观看| 91精品国产综合久久精品图片 | 日韩中文字幕一区二区三区| 久久综合久久鬼色| 99久久精品免费看国产免费软件| 午夜电影一区二区| 国产午夜精品福利| 欧美午夜精品免费| 成人性视频免费网站| 亚洲午夜国产一区99re久久| 国产亚洲一本大道中文在线| 欧美日韩一区视频| 国产成人综合自拍| 香蕉久久一区二区不卡无毒影院| 国产片一区二区| 欧美一区二区三区在线观看视频| 91免费国产在线观看| 国产真实乱偷精品视频免| 午夜精品久久久久久| 中文字幕一区二区三区乱码在线| 日韩欧美一区二区视频| 欧美日韩在线播放三区四区| 99久久国产综合色|国产精品| 国精产品一区一区三区mba视频 | 久久精品视频免费| 欧美日韩精品一区视频| 国产.精品.日韩.另类.中文.在线.播放| 亚洲一区二区欧美日韩| 国产精品国产三级国产有无不卡| 精品国产乱码久久久久久久| 欧美日韩国产成人在线91| 99久久久久久99| 高清不卡一二三区| 久久99精品国产91久久来源| 亚洲成人中文在线| 亚洲精品免费电影| 国产精品丝袜黑色高跟| 欧美成人国产一区二区| 欧美色图天堂网| 北条麻妃一区二区三区| 国产91精品精华液一区二区三区| 免费观看91视频大全| 91香蕉国产在线观看软件| 美女网站视频久久| 午夜精品在线视频一区| 亚洲精品国产一区二区精华液| 久久久www成人免费无遮挡大片| 日韩一区二区免费电影| 日本精品一区二区三区高清| 色悠久久久久综合欧美99| 国产v综合v亚洲欧| 日本不卡视频一二三区| 日韩中文字幕1| 日日摸夜夜添夜夜添国产精品| 亚洲五码中文字幕| 亚洲免费伊人电影| 洋洋av久久久久久久一区| 亚洲三级小视频| 亚洲卡通欧美制服中文| 成人免费在线播放视频| 亚洲欧美日韩一区二区三区在线观看| 亚洲视频一区二区在线观看| 亚洲最色的网站| 亚洲高清一区二区三区| 日本亚洲一区二区| 久久99久久精品欧美| 国产一区二区三区免费在线观看| 国产麻豆视频一区| 国产成人午夜高潮毛片| 成人精品视频网站| av一区二区不卡| 在线观看日韩高清av| 欧美人狂配大交3d怪物一区| 欧美一区二区视频在线观看2020| www日韩大片| 国产精品青草久久| 亚洲精品成人少妇| 三级在线观看一区二区| 日韩国产欧美三级| 国产综合一区二区| 成人毛片老司机大片| 色综合天天做天天爱| 日本韩国精品在线| 欧美精品电影在线播放| 日韩欧美综合在线| 久久婷婷综合激情| 亚洲色图视频网站| 丝袜诱惑亚洲看片| 国模无码大尺度一区二区三区| 91麻豆免费视频| 欧美日韩1区2区| 精品国产乱码久久久久久闺蜜 | 精品久久久久久久一区二区蜜臀| 2022国产精品视频| 国产精品美女久久久久久久| 亚洲va天堂va国产va久| 极品少妇一区二区三区精品视频| 成人中文字幕合集| 欧美色视频一区| 亚洲精品一区二区三区蜜桃下载| 中文字幕视频一区| 日本不卡高清视频| www.久久精品| 欧美精品粉嫩高潮一区二区| 久久久蜜臀国产一区二区| 亚洲美女区一区| 国产一区在线视频| 欧美亚洲高清一区| 国产午夜精品一区二区三区嫩草| 午夜精品福利一区二区三区av | 日韩精品一区二区三区老鸭窝| 亚洲欧洲日韩综合一区二区| 美女尤物国产一区| 一本一道久久a久久精品综合蜜臀| 日韩欧美aaaaaa| 中文字幕在线视频一区| 视频一区视频二区中文字幕| 不卡欧美aaaaa| 精品黑人一区二区三区久久| 亚洲国产精品一区二区久久| 99视频超级精品| 久久影院视频免费| 日本系列欧美系列| 91国产丝袜在线播放| 中文字幕乱码一区二区免费| 久久国产精品色| 欧美日韩aaaaa| 亚洲高清免费观看高清完整版在线观看| 国产精品77777竹菊影视小说| 日韩一区二区三区四区| 亚洲成人一区二区| 欧洲精品在线观看| 综合自拍亚洲综合图不卡区| 国产成人在线视频免费播放| 欧美va亚洲va香蕉在线| 日韩成人av影视| 欧美精品免费视频| 亚洲成人精品影院| 色哟哟国产精品| 亚洲人成网站色在线观看| www.66久久| 亚洲欧美日韩精品久久久久| 99久久精品国产麻豆演员表| 亚洲天堂网中文字| 成人久久久精品乱码一区二区三区| 久久久久久久久久电影| 国产一区日韩二区欧美三区| 久久久亚洲精品石原莉奈| 韩日av一区二区| 精品免费日韩av| 国产激情视频一区二区在线观看| 国产色91在线| 高清久久久久久| 欧美精品一区二| 激情成人综合网| 久久久久国产精品免费免费搜索| 国产aⅴ精品一区二区三区色成熟| 国产亚洲va综合人人澡精品| 国产成a人无v码亚洲福利| 欧美国产日韩在线观看| 99久久精品99国产精品| 一级做a爱片久久| 欧美日韩视频在线第一区| 久久激情综合网| 欧美激情一区在线观看| 色综合久久66| 蜜臀久久99精品久久久久宅男 | 国产精品入口麻豆九色| 91丨porny丨国产入口| 亚洲国产一区二区三区| 91精品麻豆日日躁夜夜躁|