/* 	J_Main.java	Title:			Virtual Control Surface	Author:			root	Description:	Copyright © 2001 Jason LamportAll Rights Reserved*/package com.strangelight.v4control;import com.strangelight.*;import com.strangelight.salsa.*;//	import javax.swing.*;//	import com.apple.macos.*;import java.awt.*;import java.awt.event.*;import java.util.*;import com.apple.jdirect.*;import com.apple.mrj.jdirect.*;public class J_Main implements ActionListener, V4ControlLib_interface {	static D d;	// = new D();	static Stack open_docs = new Stack();		protected static void init() {		D.macsBug("about to call init_native_lib...");		int native_err = j_init();		D.bug_native("init_native_lib call complete!");		if ( native_err != 0 ) throw new E_Unknown(			Integer.toString(native_err)		);		D.init();		J_DialControl.init();		J_InputBus_Popup.init();	}		public static void remove_me( V_Rack it ) {		if ( it == null ) throw new NullPointerException();		open_docs.removeElement( it );	}	public J_Main() {		try {			init();						// For Java Look and Feel, re-comment the following code.			/*						try {				UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());			} catch (Exception e) { 				//	e.printStackTrace();			}			//	com.apple.macos.useScreenMenuBar=true;			//	*/			d = new D();			ApplicationMBar.swapActionListener( ApplicationMBar.NEW, this );			ApplicationMBar.swapActionListener( ApplicationMBar.QUIT, this );			ApplicationMBar.swapActionListener( ApplicationMBar.PREFERENCES_, this );			ApplicationMBar.swapActionListener( ApplicationMBar.TEST_1, d );			ApplicationMBar.swapActionListener( ApplicationMBar.TEST_2, d );			//	d.dispose();			//						} catch (Exception e) {			e.printStackTrace();		}	}		public void actionPerformed(ActionEvent e) {		if ( e.getSource() == ApplicationMBar.getItem(ApplicationMBar.NEW) ) {			open_docs.push( new V_Rack() );		} else if ( e.getSource() == ApplicationMBar.getItem(ApplicationMBar.QUIT) ) {			D.bug_native("about to j_finalize()...");			j_finalize();			D.macsBug("finalization complete... about to System.exit(0).");			System.exit(0);		} else {			D.bug( e.paramString() );		}	}	// Main entry point	static public void main(String[] args) {		new J_Main();	}		private static native int j_init();	private static native void j_finalize();}