Exemple #1
0
 public void run(UI ui) throws InterruptedException {
   this.ui = ui;
   ui.setreceiver(this);
   while (sess.alive()) {
     Message msg;
     while ((msg = sess.getuimsg()) != null) {
       if (msg.type == Message.RMSG_NEWWDG) {
         int id = msg.uint16();
         String type = msg.string();
         Coord c = msg.coord();
         int parent = msg.uint16();
         Object[] args = msg.list();
         if (type.equals("cnt")) {
           args[0] = MainFrame.getInnerSize();
         } else if (type.equals("img") && args.length >= 1) {
           if (((String) args[0]).equals("gfx/ccscr"))
             c = MainFrame.getCenterPoint().add(-400, -300);
           if (((String) args[0]).equals("gfx/logo2"))
             c = MainFrame.getCenterPoint().add(-415, -300);
           if (((String) args[0]).indexOf("gfx/hud/prog/") >= 0) // new
           addons.HavenUtil.HourglassID = id; // new
         } else if (type.equals("charlist") && args.length >= 1) {
           c = MainFrame.getCenterPoint().add(-380, -50);
         } else if (type.equals("ibtn") && args.length >= 2) {
           if (((String) args[0]).equals("gfx/hud/buttons/ncu")
               && ((String) args[1]).equals("gfx/hud/buttons/ncd")) {
             c = MainFrame.getCenterPoint().add(86, 214);
           }
         } else if (type.equals("wnd") && c.x == 400 && c.y == 200) {
           c = MainFrame.getCenterPoint().add(0, -100);
         }
         ui.newwidget(id, type, c, parent, args);
       } else if (msg.type == Message.RMSG_WDGMSG) {
         int id = msg.uint16();
         String name = msg.string();
         ui.uimsg(id, name, msg.list());
       } else if (msg.type == Message.RMSG_DSTWDG) {
         int id = msg.uint16();
         ui.destroy(id);
         if (id == addons.HavenUtil.HourglassID) addons.HavenUtil.HourglassID = -1; // new
       }
     }
     synchronized (sess) {
       sess.wait();
     }
   }
 }