

/**********************************************************************
                                modulsystem
 **********************************************************************/



// später wird hieraus Gadtools NewMenu dynamisch erzeugt, um customized
//   Menüs anbieten zu können:

/* User soll eigene Menüpunkte definieren können, hinter denen sich */
/* Rexx-Scripte, CLI-Kommandos, Newsbreaker-Module oder ähnliches verbergen. */

/* Eines Tages wird diese Routine verschwinden                  */
/*   und alle Funktionen werden dynamisch aufgerufen            */
/*   über ihre Adresse. Vorteil: EIN  lowlevel-Interface        */
/*   für Menüsystem, Messages, ARexx, wasweißich ... möglich!   */

/*   Problem: wie springe ich eine Funktion dynamisch an?       */
// Callback:
/*   siehe dazu die LISTSORT-Sortiersubroutine                  */


/* Wäre schön einfach: Sprungadressen der Module gleich in NewMenu */
/* So auf switch verzichtet werden kann in DoMenus. Wie geht das?  */


struct Modul {
		UBYTE	mod_ID;			/* Eindeutige Schlüssel-Nummer des Befehls-Moduls */
		char	mod_DefComKey;	/* Default Command Key für Menu */
		char	*mod_Name;		/* Informativer Name vom Modul, z.B. "Öffnen" */
		char	*mod_Hilfe;		/* kurzer Hilfstext */
		char	*mod_HelpLink;	/* Weitergehende Hilfe, Link zu AmigaGuide-Dokument-Seite */
	};

struct Men2Mod {	// zum Mappen von MenuNum und Modul
		ULONG	MenuNum;			/* Intuition-Menünummer für NewMenu */
		UBYTE	ModID;				/* das dazugehörige Befehlsmodul */
	};

static struct Modul 	ModulListe[] = {
		{ 1,	'o',	"Öffnen",	"Öffnet eine Datei", 		NULL },
		{ 2,	'q',	"Ende",		"Beendet dieses Programm", 	NULL },
		{ 3,	'm',	"Gruppe",	"Wählt eine Gruppe",		NULL }
	};


