1 4 package gnu.jemacs.buffer; 5 import gnu.lists.LList; 6 7 public abstract class EFrame 8 { 9 public static EFrame selectedFrame; 10 public EWindow selectedWindow; 11 12 static int counter; 13 protected int id = ++counter; 14 public EWindow firstWindow; 15 16 public static String defaultName () 17 { 18 return "Emacs"; 19 } 20 21 public EFrame () 22 { 23 if (selectedFrame == null) 24 selectedFrame = this; 25 } 26 27 public EFrame (EWindow win) 28 { 29 win.frame = this; 30 firstWindow = win; 31 win.nextWindow = win; 32 win.prevWindow = win; 33 EWindow.setSelected(win); 34 } 35 36 public void validate () 37 { 38 } 39 40 public void delete() 41 { 42 for (;;) 43 { 44 EWindow win = firstWindow; 45 if (win == null) 46 break; 47 win.deleteNoValidate(); 48 } 49 if (this == selectedFrame) 50 selectedFrame = null; 51 } 52 53 public abstract boolean isLive(); 54 55 public EWindow getFirstWindow() 56 { 57 return firstWindow; 58 } 59 60 public EWindow getLastWindow() 61 { 62 return firstWindow.prevWindow; 63 } 64 65 public static EFrame getSelectedFrame() 66 { 67 return selectedFrame; 68 } 69 70 public EWindow getSelectedWindow() 71 { 72 return selectedWindow; 73 } 74 75 public EWindow otherWindow(int count) 76 { 77 return selectedWindow.getNextWindowInFrame(count); 78 } 79 80 public abstract void setMenu(LList menu); 81 82 public abstract String ask(String prompt); 83 84 public String toString() 85 { 86 StringBuffer sbuf = new StringBuffer (100); 87 sbuf.append("#<frame #"); 88 sbuf.append(id); 89 sbuf.append('>'); 90 return sbuf.toString(); 91 } 92 } 93 | Popular Tags |