TUI generation library for C on Windows.
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.
Go to file
2020-01-09 09:55:07 +01:00
.gitignore Modified border logic to support user-defined border structures 2020-01-09 09:24:13 +01:00
framework.h Added existing project 2019-12-19 14:51:51 +01:00
LICENSE Initial commit 2019-12-19 14:43:20 +01:00
menu.c Modified border logic to support user-defined border structures 2020-01-09 09:24:13 +01:00
menu.h Added documentation for struct Border 2020-01-09 09:25:42 +01:00
MenuLib.sln Removed dependency to local testing project 2019-12-21 20:19:42 +01:00
MenuLib.vcxproj Changed cpp files to c files, removed unnecessary file 2019-12-21 20:13:38 +01:00
MenuLib.vcxproj.filters Changed cpp files to c files, removed unnecessary file 2019-12-21 20:13:38 +01:00
MenuLib.vcxproj.user Added existing project 2019-12-19 14:51:51 +01:00
pch.c Changed cpp files to c files, removed unnecessary file 2019-12-21 20:13:38 +01:00
pch.h Added existing project 2019-12-19 14:51:51 +01:00
README.md Added Style explanation 2020-01-09 09:55:07 +01:00

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
 */

Style hinzufügen

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

const struct MenuBoder 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 Styles am Besten direkt unter den #include Anweisungen einfügen. Der neue Style kann über den angegebenen Namen verwendet werden.