From 90ab89559ad6c425bbc074c09ed37b909f9d6057 Mon Sep 17 00:00:00 2001 From: megacz Date: Fri, 30 Jan 2004 07:01:39 +0000 Subject: [PATCH] 2003/06/18 05:53:37 darcs-hash:20040130070139-2ba56-16e89e8a4a90cba6cc72faebe42bcae7141942d5.gz --- Makefile | 2 +- src/org/xwt/SpecialBoxProperty.java | 63 +++++++++++++++-------------------- 2 files changed, 28 insertions(+), 37 deletions(-) diff --git a/Makefile b/Makefile index 841b277..e3ac858 100644 --- a/Makefile +++ b/Makefile @@ -27,7 +27,7 @@ c_objects := $(c_sources:src/%.c=bin-$(platform)/%.c.o) gcc_path := $(shell pwd)/gcc/install #gcc_optimizations := -O9 -ffast-math -fomit-frame-pointer -foptimize-sibling-calls -finline-functions #gcc_optimzations += -funroll-loops -ffunction-sections -fdata-sections -gcc_optimizations := -O0 +gcc_optimizations := -O2 debug := gcc_flags := $(gcc_optimizations) $(debug) -Isrc/org/ijg gcj_flags := -fCLASSPATH=bin diff --git a/src/org/xwt/SpecialBoxProperty.java b/src/org/xwt/SpecialBoxProperty.java index 24cc971..d55fd38 100644 --- a/src/org/xwt/SpecialBoxProperty.java +++ b/src/org/xwt/SpecialBoxProperty.java @@ -655,9 +655,34 @@ class SpecialBoxProperty { specialBoxProperties.put("apply", new SpecialBoxProperty() { public void put(Box b, Object value) { } - public Object get(Box b) { return new Apply(b); } + public Object get(final Box b) { return public Object call(JS.Array args) throws JS.Exn { + + // apply a template + if (args.elementAt(0) instanceof String) { + String templatename = (String)args.elementAt(0); + Template t = Template.getTemplate(templatename, null); + if (t == null) { + if (Log.on) Log.logJS(this, "template " + templatename + " not found"); + } else { + if (ThreadMessage.suspendThread()) try { + JS.Callable callback = args.length() < 2 ? null : (Callable)args.elementAt(1); + t.apply(b, null, null, callback, 0, t.numUnits()); + } finally { + ThreadMessage.resumeThread(); + } + } + + // apply a list of properties + } else if (args.elementAt(0) instanceof JS && !(args.elementAt(0) instanceof Box)) { + JS s = (JS)args.elementAt(0); + Object[] keys = s.keys(); + for(int j=0; j