/*
USED TO INTERFACE ZINC
http://www.multidmedia.com/software/zinc/downloads/
*/
class com.jgraup.rad.MDM
{
//
// PROPS
//
private static var _instance:MDM;
private var mdm;
private var mdminit:Function;
//
// CONTRUCTOR
//
public function MDM ( ){}
// ----------------------------
// PUBLIC FUNCTIONS
// ----------------------------
// ------------------------------------------- // Shortcuts
public static function mailTo ( email:String ):Void
{
//mdm.System.exec("mailto:support@multidmedia.com")
instance.mdm.System.exec ( "mailto:" + email )
}
public static function exec ( program:String, relativeToApp:Boolean, traceOutput:Boolean ):Void
{
program = webToLocal ( program );
if ( relativeToApp )
{
program = relativeToAbsolute ( program );
}
instance.mdm.System.exec ( program );
if ( traceOutput ) { instance.mdm.prompt ( program ); trace( program ) }
}
public static function exit ():Void
{
instance.mdm.exit();
// instance.mdm.prompt ( 'quit' );
// instance.mdm.Application.exit();
// fscommand ( "mdm.Application.exit" );
}
public static function startDrag ():Void
{
instance.mdm.Forms.MainForm.startDrag();
}
public static function stopDrag ():Void
{
instance.mdm.Forms.MainForm.stopDrag();
}
// ------------------------------------------- // Any Function
public static function custom ( type:String )
{
instance.customCmd.apply ( instance, arguments );
}
public function customCmd ( type:String )
{
/*
<code>
com.jgraup.rad.MDM.instance.custom ( 'prompt', 'This is a Message!' );
</code>
*/
var a:Array = arguments.slice ( 1, arguments.length);
mdm [ type ].apply ( mdm, a );
}
// ------------------------------------------- // Test Function
public function test():Void
{
var path = instance.mdm.Application.path;
mdm.prompt( path );
}
public function foo():Void
{
mdm.prompt( "foo message");
}
// ----------------------------
// PRIVATE FUNCTIONS
// ----------------------------
// -------------------------------------------- // UTILITIES
private static function relativeToAbsolute ( str ) : String
{
return instance.mdm.Application.path + str;;
}
private static function webToLocal ( str ) : String
{
var strArray = str.split ( "/" );
return strArray.join ( String.fromCharCode ( 92 ) );
}
// -------------------------------------------- // SINGLETON
public static function get instance( ):MDM
{
if ( _instance == undefined )
{
_instance = new MDM ( );
_instance._intiate ( );
}
return _instance;
}
public function _intiate():Void
{
mdminit();
mdm = _global [ 'mdm' ];
}
}