Post Reply 
 
Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
LiveScratcher.DirectUI
07-17-2009, 09:14 PM
Post: #1
LiveScratcher.DirectUI
The DirectUI package is currently a work in progress, and may change completely at some point.

I'm not going to post a full list of functions and how they work here, but you can take a look with code like:
for (var i in DirectUI) Console.print("Found: "+i);
for (var i in DirectUI.Value) Console.print("Found: Value."+i);
etc.


A test package I used for testing that might help to get started follows:
JAVASCRIPT Code
function getGlobal(){
	return (function(){
		return this;
	}).call(null);
}
 
function registerDependencies(packageapi) {
	var g=getGlobal();
	var dependencies=packageapi.getDependencies();
	for (var i in dependencies) {
		var name=dependencies[i];
		var shortname=name.split(".").pop();
		g[shortname]=packageapi.getExport(name);
	}
}
 
 
var myXml='\
<element resid=ExtraCheckboxResID class="UserOptionsItem" layout=BorderLayout()>\
	<element layoutpos=left layout=FillLayout()>\
		<Checkbox id=atom(idDisableStuffplugChk) text="&Disable StuffPlug" accname="&Disable StuffPlug" accdesc="Disable StuffPlug" tooltip=false shortcut=82 accdefaction="Press" Class="CheckBox" Padding=Rect(0,2,0,2) Margin=rect(4,3,4,3) Layout=BorderLayout() TextPadding=Rect(2,2,2,2) TextAlign=20>\
			<ButtonIcon LayoutPos=left/>\
			<ButtonText LayoutPos=client Margin=Rect(1,0,0,0)/>\
		</Checkbox>\
	</element>\
</element>\
';
var createFromXml={};
 
var tested=false;
function DirectUICallback(resid,root) {
	if (resid=="logonFrameResID") {
		var userOptionsGroup=root.FindDescendent("idUserOptionsGroup");
		if (userOptionsGroup) {
			var c=createFromXml.ExtraCheckboxResID({});
			userOptionsGroup.Add&copy;;
		} else throw ("userOptionsGroup not found");
	}
}
 
function parseXML(xml) {
	var parser=new UIFileParser.Parser(xml);
	var compiled=parser.compile();
	var ret={};
	var callback=new UIFileParser.ToDUICallback();
	for (var i in compiled.elements)
		ret[i]=(compiled.elements[i])(callback);
	return ret;
}
 
function onInitialize(packageapi) {
	registerDependencies(packageapi);
	Console.show();
	Console.print("TestPackage loaded");
	Console.print("Checkbox parsing:");
	createFromXml=parseXML(myXml);
	DirectUI.RegisterEventHandler({onCreatedElement: DirectUICallback });
 
}
 
function onDeinitialize() {
}

Find all posts by this user
Quote this message in a reply
Post Reply 


Forum Jump: