kxKinetix
kxType = kxRedJavaPlugIn

kxModuleDefinition HangmanLogic = 
	{
	//  The name of the plug-in, as appears publicly (in menu, palette, etc.)...
	kxPublicName = "Hangman Logic"

	//	The version of the plug-in (not currently used)...
	kxVersion = "1.0"

	//	The creation date/time of the plug-in...
	kxCreationTime = "01/06/97  12:19:00 AM"

	//	The author of the plug-in...
	kxAuthor = "Kinetix"

	//	A short (one line) description of the plug-in's purpose in life...
	kxShortDescription = "Simple plug-in test -- reusable game logic for hangman type games."

	//	URL of help document for plug-in.
	//  kxHelpDoc = "http://www.mysite.com/Docs/HangmanLogic/help.html"

	//	large (32x32) icon...
	kxLargeIcon = kxBmResType "ModIcons.dll" "HANG02" 0xFF00FF	

	//	small (16x16) icon...
	kxSmallIcon = kxBmResType "ModIcons.dll" "HANG01" 0xFF00FF  

	//	The Smalltalk class which controls the behavior of the plug-in inside the
	//	authoring tool...
	kxSmalltalkProxyClass = RedBasicProxy	

	//	The Java package which contains the Java code for the plug-in...
	kxPlugInPackage = "kinetix.hyperb3.userPlugIns"

	//	The Java class which implements the plug-in...
	kxPlugInClass = HangmanPlugIn

	//	If true (the default), the classes which compose this plug-in are assumed to be in a
	//	class library (CAB or JAR) and are not published with the title.
	//	If false, the classes are published with the title.
	kxPlugInClassesInLibrary = false

	// The Smalltalk editor classes used to edit the properties of this plug-in...
	kxPropertyEditors =  RedFieldsEditor OpusLabelCommentEditor ModuleStateEditor PortEditor

	//	The persistent data for the plug-in.  The author can set these in the tool
	//	through the property dialog...
	kxPersistentFields =
		{
		kxField NumTries = 
			{
			kxJavaSignature = "I"
			kxAccessor = fiSetNumTries
			kxDescription = "The number of incorrect tries allowed before user is hanged."
			kxDefault = 6
			}
		}

	//	The input ports...
	kxInputPorts =
		{
		kxInclude "Basic.ipt"

		kxPort TryLetter =
			{
			kxJavaMethod = wiTryLetter
			kxJavaSignature = "(LString;)V"
			kxPublicNames = "Try Letter" "Letter" "None"
			}

		kxPort NewWord =
			{
			kxJavaMethod = wiNewPhrase
			kxJavaSignature = "(LString;)V"
			kxPublicNames = "New Word" "Word or Phrase" "None"
			}
		}

	//	The input port menu structure...
	kxInputPortsMenu =
		{
		Reset
		kxSeparator
		TryLetter
		NewWord
		kxMenu "More" =
			{
			kxInclude "Basic.imn"
			}
		}

	//	The output ports...
	kxOutputPorts =
		{
		kxPort ItsAMatch =
			{
			kxJavaSignature = "(LString;I)V"
			kxPublicNames = "It's a Match!" "Character" "Position" "None"
			}

		kxPort ItsAMiss =
			{
			kxJavaSignature = "()V"
			kxPublicNames = "It's a Miss!" "None"
			}

		kxPort YouWin =
			{
			kxJavaSignature = "()V"
			kxPublicNames = "You Win!" "None"
			}

		kxPort YouLose =
			{
			kxJavaSignature = "()V"
			kxPublicNames = "You Lose!" "None"
			}
		}

	//	The output port menu structure...
	kxOutputPortsMenu =
		{
		ItsAMatch
		ItsAMiss
		YouWin
		YouLose
		}

	}