This repository has been archived on 2021-03-14. You can view files and clone it, but cannot push or open issues or pull requests.
menu-lib/README.md
2020-01-09 10:30:07 +01:00

2.6 KiB

MenuLib

CUI generation library for C on Windows

Einbindung in eine Visual Studio Projektmappe:

Repository klonen und das Projekt "MenuLib" zur Projektmappe hinzufügen:

Rechtsklick auf Projektmappe -> Hinzufügen -> Vorhandenes Projekt...

Verweis auf die Bibliothek im Aufruferprojekt anlegen:

Rechtsklick auf Aufruferprojekt -> Hinzufügen -> Verweis... Haken bei "MenuLib" setzen.

Zusätzliches Includeverzeichnis hinzufügen:

Rechtsklick auf Aufruferprojekt -> Eigenschaften -> Linked -> Eingabe -> Zusätzliche Abhängigkeiten -> Bearbeiten... Ordner, der "menu.h" enthält, auswählen

Headerdatei einbinden:

Zeile #include "menu.h" zur Quelldatei hinzufügen

Anwendungsbeispiel

struct MenuItem items[] = {
	{"Euklidscher Algorithmus",	'1', (void*)&euklid},		// String = Name des Menüpunktes
	{"Gerstenkorn",			'2', (void*)&gerste},		// Char = Taste zum Aufrufen
	{"Osterdatum ausrechnen",	'3', (void*)&ostern},		// (void*)&MethodenName = Methode, die aufgerufen wird
	{"ASCII Tabelle",		'4', (void*)&ascii},			// Methode MUSS nicht vom Typ void sein! 
	{"DB-Pruefziffer",		'5', (void*)&db},			// (void*)& MUSS immer davor stehen!
	{"Modulo 11",			'6', (void*)&mod11},
	{"BLANK",			NULL, (void*)NULL},		// Fügt einen leere Zeile hinzu -> Gliederung
	{"Namen TEST",			'a', (void*)&namen},
	{"Strings",			'b', (void*)&strHeader},
	{"BLANK",			NULL, (void*)NULL}, 
	{"Exit",			'q', (void*)&exit}		// exit beendet das Programm
};
show_menu(sizeof(items) / sizeof(struct MenuItem), items, "Vorlesungsaufgaben", true, true, &NO_BORDER); 
	
/* 
 * 1. Argument: Anzahl der Elemente; Einfach so lassen
 * 2. Argument: Vorher angelegtes struct; Einfach so lassen
 * 3. Argument: Titel des Menüs	 
 * 4. Argument: Menü im loop; Nach beenden der Methode wieder Menü aufrufen	
 * 5. Argument: Pause nach dem Ausführen der Methode; Ausgaben lesbar
 * 6. Argument: Style des Menüs: Standardmäßig wird DEFAULT, MODERN, SOLID und NO_BORDER unterstützt
 */

Border hinzufügen

Eigene Border-Styles können wie folgt hinzugefügt werden:

const struct MenuBorder NAME = {	 
 'a', 	// Char für den rechten und linken Rand
 'b', 	// Char für den oberen und unteren Rand
 'c', 	// Char für die linke obere Ecke
 'd', 	// Char für die rechte obere Ecke
 'e', 	// Char für die linke untere Ecke
 'f', 	// Char für die rechte untere Ecke
 'g', 	// Char zwischen Border und Titel - links
 'h'	// Char zwischen Border und Titel - rechts
}

Neue Border am Besten direkt unter den #include Anweisungen einfügen. Die neue Border kann über den angegebenen Namen, wie im obigen Beispiel erläutert, verwendet werden.