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

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

?? swingbuffer.java

?? A framework written in Java for implementing high-level and dynamic languages, compiling them into J
?? JAVA
字號:
// Copyright (c) 2002  Per M.A. Bothner.// This is free software;  for terms and warranty disclaimer see ./COPYING.package gnu.jemacs.swing;import java.io.*;import java.lang.reflect.InvocationTargetException;import gnu.jemacs.buffer.*;import gnu.mapping.*;import gnu.lists.CharSeq;import javax.swing.text.*;import java.awt.Color;/** An Emacs buffer implemented using the Swing toolkits. */public class SwingBuffer extends Buffer{  public DefaultStyledDocument doc;  public Caret curPosition = null;  public BufferContent content;  public StyledDocument modelineDocument;  public static javax.swing.text.StyleContext styles  = new javax.swing.text.StyleContext();  static public Style defaultStyle = styles.addStyle("default",null);  public Style inputStyle = defaultStyle;  public static Style redStyle = styles.addStyle("red", null);  static Style blueStyle = styles.addStyle("blue", null);  static  {    String version = System.getProperty("java.version");    if (version != null	&& (version.startsWith("1.2") || version.startsWith("1.3")))      {	StyleConstants.setFontFamily(defaultStyle, "Lucida Sans TypeWriter");	StyleConstants.setFontSize(defaultStyle, 14);      }    StyleConstants.setForeground(redStyle, Color.red);    StyleConstants.setForeground(blueStyle, Color.blue);  }  public SwingBuffer(String name)  {    this(name, new BufferContent());  }  public SwingBuffer(String name, BufferContent content)  {    super(name);    doc = new DefaultStyledDocument(content, styles);    this.content = content;    pointMarker = new Marker(this, 0, true);    markMarker = new Marker();    modelineDocument      = new javax.swing.text.DefaultStyledDocument(new javax.swing.text.StringContent(), styles);    // Needed for proper bidi (bi-directional text) handling.    // Does cause extra overhead, so should perhaps not be default.    // Instead only set it if we insert Hebrew/Arabic text?  FIXME.    doc.putProperty("i18n", Boolean.TRUE);    redrawModeline();  }  public void removeRegion (int start, int end)    throws javax.swing.text.BadLocationException  {    doc.remove(start, end - start);  }  public void removeAll ()  {    try      {	doc.remove(0, maxDot());      }    catch (javax.swing.text.BadLocationException ex)      {	throw new gnu.mapping.WrappedException(ex);      }  }  public void removeChar (int count)  {    remove(getDot(), count);  }  void remove (int point, int count)  {    try      {        if (count < 0)          {            count = - count;	    if (point - count < minDot())	      Signal.signal("Beginning of buffer");            point -= count;          }	else	  {	    if (point + count > maxDot())	      Signal.signal("End of buffer");	  }        doc.remove(point, count);	// Should not be needed, but seems to be.  Otherwise, getDot()	// returns its *old* value, which is `count' characters too high.	// The problem seesm to be that Swing does not properly update	// a Windows's caret position when the underlying Document has text	// removed.  Unfortunately, this fix probably won't do the right	// thing for *other windows* that reference the same buffer.  FIXME.	// (Strangely, the correct thing seems to happen for insertions.)	setDot(point);      }    catch (javax.swing.text.BadLocationException ex)      {        throw new Error("bad location: "+ex);      }    //doc.remove(index, count);  }  public void removePos(int ipos, int count)  {    remove(nextIndex(ipos), count);  }  public void save(Writer out)    throws Exception  {    int length = getLength();    int todo = length;    Segment segment = new Segment();    int offset = 0;    while (offset < length)      {        int count = length;        if (count > 4096)          count = 4096;        doc.getText(offset, count, segment);        out.write(segment.array, segment.offset, segment.count);        offset += count;      }  }  public void insert (char ch, int count)  {    pointMarker.insert(ch, count, inputStyle);  }  public void insert (int index, String string, Object style)  {    if (style == null)      style = defaultStyle;    try      {        doc.insertString(index, string, (Style) style);      }    catch (javax.swing.text.BadLocationException ex)      {        throw new Error("bad location: "+ex);      }  }  public void insert (String string, Object style)  {    insert(getDot(), string ,style);  }  public void insert (String string, Object style, int ipos)  {    insert (nextIndex(ipos), string, style);  }  public void insertFile(Reader in)    throws Exception  {    char[] buffer = new char[2048];    int offset = getDot();    for (;;)      {        int count = in.read(buffer, 0, buffer.length);        if (count <= 0)          break;        doc.insertString(offset, new String(buffer, 0, count), null);        offset += count;      }  }  public void redrawModeline ()  {    try      {        modelineDocument.remove(0, modelineDocument.getLength());                modelineDocument.insertString(0, "-----", redStyle);        modelineDocument.insertString(modelineDocument.getLength(),                                      "JEmacs: " + getName(),                                      blueStyle);        modelineDocument.insertString(modelineDocument.getLength(),                                      " ---",                                      redStyle);      }    catch (javax.swing.text.BadLocationException ex)      {        throw new Error("internal error in redraw-modeline- "+ex);      }  }  public long scan(char target, int start, int end,		   int count, boolean allowQuit)  {    if (end == 0)      end = count > 0 ? content.length() - 1 : 0;    return content.scan(target, start, end, count, allowQuit);  }  public int lineStartOffset(int offset)  {    return (int) content.scan('\n', offset, minDot(), -1, true);  }  public int getDot()  {    if (pointMarker.sequence == null)      return curPosition.getDot();    else      return pointMarker.getOffset();  }  public void setDot(int i)  {    if (i > maxDot())      throw new Error("set dot to "+i+ " max:"+maxDot());    if (pointMarker.sequence == null)      curPosition.setDot(i);    else      pointMarker.set(this, i);  }  public int maxDot()  {    // Subtract 1 for the content's final "\n".    return content.length() - 1;  }  public int getLength()  {    return doc.getLength();  }  public CharSeq getStringContent ()  {    return content.buffer;  }  public int createPos(int index, boolean isAfter)  {    return content.buffer.createPos(index, isAfter);  }  public Object get (int index)  {    return content.buffer.get(index);  }  public int size ()  {    return content.buffer.size();  }  public int nextIndex(int ipos)  {    return content.buffer.nextIndex(ipos);  }  public long savePointMark ()  {    int pointPosition = content.buffer.createPos(getDot(), false);    int markPosition = 0;  // FIXME    return ((long) markPosition) << 32 | ((long) pointPosition & 0xffffffffl);  }  public void restorePointMark (long pointMark)  {    int pointPosition = (int) pointMark;    int markPosition = (int) (pointMark >> 32);    setDot(content.buffer.nextIndex(pointPosition));    content.buffer.releasePos(pointPosition);    // Restore mark - FIXME    // content.releasePosition(markPosition);  }  public InPort openReader (int start, int count)  {    return new BufferReader(content.buffer, getPath(), start, count);  }  /**   * @see gnu.jemacs.buffer.Buffer#invoke(java.lang.Runnable)   */  public void invoke(Runnable doRun)  {    try    {      javax.swing.SwingUtilities.invokeAndWait(doRun);    }    catch (Exception e)    {      throw new WrappedException(e);    }  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米影视一区二区三区小说| 99国产精品国产精品毛片| 国模娜娜一区二区三区| 国产成人精品综合在线观看| 91日韩一区二区三区| 欧美成人女星排行榜| 中文字幕欧美一区| 免费人成网站在线观看欧美高清| 成人高清免费观看| 91麻豆精品国产| 亚洲欧美另类小说| 韩国av一区二区| 欧美日韩精品久久久| 亚洲国产精品av| 蜜臀av一区二区| 在线精品视频一区二区| 国产欧美精品区一区二区三区| 午夜精品在线看| 99国产精品视频免费观看| 精品久久久久久久久久久久久久久久久 | 久久久亚洲精品一区二区三区| 国产精品网站导航| 国产一区亚洲一区| 欧美一区二区三区喷汁尤物| 亚洲一级在线观看| 99视频精品免费视频| 久久久久久久综合色一本| 亚洲成av人片| 91国偷自产一区二区三区观看 | 日韩电影在线观看一区| 99re热这里只有精品视频| 久久在线观看免费| 久久精品99久久久| 精品视频免费在线| 亚洲精品国产a久久久久久| 国产美女在线精品| 久久久久久**毛片大全| 韩国毛片一区二区三区| 91精品国产欧美一区二区| 亚洲自拍偷拍图区| 91浏览器在线视频| 伊人色综合久久天天人手人婷| 99国产精品国产精品久久| 国产精品久久久久aaaa樱花| 成人久久18免费网站麻豆| 亚洲国产成人在线| 成人综合在线观看| 国产精品久久久久久久久动漫| 国产91精品一区二区麻豆网站| 精品国产一区二区三区av性色| 韩国三级在线一区| 久久免费的精品国产v∧| 国产自产高清不卡| 国产精品美女一区二区三区| 99国产精品99久久久久久| 99视频在线观看一区三区| 欧美一区二区三区四区五区| 夜夜揉揉日日人人青青一国产精品| 国产99精品国产| 中文字幕的久久| 91啪九色porn原创视频在线观看| 一区二区三区在线观看动漫| 精品婷婷伊人一区三区三| 美女脱光内衣内裤视频久久网站 | 粉嫩av亚洲一区二区图片| 欧美国产一区二区| 91国内精品野花午夜精品| 午夜在线成人av| 久久久久久久久99精品| 色综合久久久久综合体| 三级一区在线视频先锋 | 欧美日韩和欧美的一区二区| 捆绑调教一区二区三区| 久久精品亚洲国产奇米99| 91论坛在线播放| 麻豆91免费观看| 中文字幕亚洲视频| 欧美日韩国产三级| 国产成人自拍在线| 一区二区视频在线| 亚洲精品一线二线三线| 91视频xxxx| 国产最新精品免费| 亚洲一区二区三区四区在线观看 | 国产乱人伦精品一区二区在线观看 | 蜜桃精品视频在线| 国产精品久久久久9999吃药| 在线成人av网站| 成人免费视频caoporn| 亚洲大片一区二区三区| 久久人人爽人人爽| 91精品在线麻豆| 99re热这里只有精品免费视频| 老司机精品视频导航| 一区二区三区在线观看欧美| 久久久精品天堂| 欧美一区二区三区白人| 91免费版在线看| 国产精品亚洲一区二区三区在线| 天堂精品中文字幕在线| 亚洲欧美日韩国产一区二区三区 | 欧美一区二区三区四区视频| a级高清视频欧美日韩| 精品无人码麻豆乱码1区2区 | 91精品福利在线一区二区三区 | 一本一道综合狠狠老| 久久99精品国产| 午夜精品久久久久久久久久久| 亚洲欧洲美洲综合色网| 久久久久久久久久电影| 精品黑人一区二区三区久久| 91精品免费观看| 欧美性受xxxx黑人xyx性爽| av电影一区二区| 东方欧美亚洲色图在线| 国产一区二区三区| 久久精品99国产国产精| 日本91福利区| 麻豆免费看一区二区三区| 天堂蜜桃91精品| 日韩国产精品久久久| 日韩精品91亚洲二区在线观看| 亚洲午夜精品久久久久久久久| 综合激情成人伊人| 国产精品久久毛片| 亚洲视频在线一区| 亚洲欧美日韩国产综合在线| 亚洲精品国产一区二区精华液| 亚洲天堂av一区| 一级做a爱片久久| 一区二区三区电影在线播| 一区二区三区四区在线| 亚洲自拍另类综合| 丝瓜av网站精品一区二区| 天天av天天翘天天综合网色鬼国产| 污片在线观看一区二区| 日韩av在线播放中文字幕| 美女久久久精品| 国产伦精品一区二区三区免费| 国产成人啪免费观看软件| 成人av在线资源网站| 色婷婷综合久久久中文字幕| 欧美三级视频在线| 日韩三级视频在线看| 久久综合网色—综合色88| 国产欧美久久久精品影院| 亚洲视频一区在线观看| 亚洲一区二区3| 久久国产日韩欧美精品| 粉嫩aⅴ一区二区三区四区| 色播五月激情综合网| 欧美日韩国产经典色站一区二区三区| 91精品国产综合久久婷婷香蕉 | 久久99久久久久| 国产91综合一区在线观看| 91在线精品秘密一区二区| 欧美日韩国产123区| 久久久久久久久久看片| 亚洲男女毛片无遮挡| 麻豆91在线观看| aa级大片欧美| 91精品国产日韩91久久久久久| 国产网红主播福利一区二区| 亚洲一二三专区| 国产在线精品不卡| 在线观看视频一区二区 | 91蜜桃网址入口| 日韩亚洲电影在线| 国产精品私人自拍| 日本伊人午夜精品| 94-欧美-setu| 亚洲精品一区二区三区四区高清 | 国产成人一区二区精品非洲| 在线一区二区三区四区五区 | 日本伦理一区二区| 久久精品夜色噜噜亚洲aⅴ| 亚洲成a人v欧美综合天堂| 国产成人精品一区二区三区四区| 欧美色男人天堂| 国产精品视频一二三| 日韩成人av影视| 色婷婷久久综合| 国产女同性恋一区二区| 日本va欧美va精品| 欧美性大战久久| 亚洲啪啪综合av一区二区三区| 国模套图日韩精品一区二区 | 成人av电影在线| 日韩美女天天操| 性感美女久久精品| 色婷婷av一区二区三区大白胸| 久久精品视频在线免费观看 | 色妹子一区二区| 亚洲欧洲国产日韩| 国产精品一区专区| 精品国产伦理网| 韩国av一区二区三区在线观看| 欧美精品一卡两卡| 午夜电影网一区| 欧美日韩三级一区|