Started work on a control center
This commit is contained in:
parent
3b1add6a40
commit
fdf9470ae7
39
utils/ccenter/Makefile
Normal file
39
utils/ccenter/Makefile
Normal file
@ -0,0 +1,39 @@
|
||||
OS := $(shell uname -s)
|
||||
|
||||
ifeq ($(OS), FreeBSD)
|
||||
CC=cc
|
||||
CFLAGS=-I/usr/local/include
|
||||
LDFLAGS=-L/usr/local/lib
|
||||
endif
|
||||
ifeq ($(OS), NetBSD)
|
||||
CC=cc
|
||||
CFLAGS=-I/usr/pkg/include
|
||||
LDFLAGS=-L/usr/pkg/lib
|
||||
endif
|
||||
ifeq ($(OS), Linux)
|
||||
CC=gcc
|
||||
CFLAGS=
|
||||
LDFLAGS=
|
||||
endif
|
||||
ifeq ($(OS), Darwin)
|
||||
CC=cc
|
||||
CFLAGS=
|
||||
LDFLAGS=
|
||||
endif
|
||||
|
||||
|
||||
CC=cc
|
||||
CFLAGS=-I/usr/local/include
|
||||
DEPS = main.c
|
||||
|
||||
OBJ = main.o
|
||||
%.o: %.c $(DEPS)
|
||||
$(CC) -c -o $@ $< $(CFLAGS) -I../../deps/cdk-5.0-20161210/include/
|
||||
|
||||
ccenter: $(OBJ)
|
||||
$(CC) -o ccenter -o $@ $^ ../../deps/cdk-5.0-20161210/libcdk.a $(CFLAGS) $(LDFLAGS) -lncurses
|
||||
|
||||
.PHONY: clean
|
||||
|
||||
clean:
|
||||
rm -f $(OBJ) ccenter
|
100
utils/ccenter/main.c
Normal file
100
utils/ccenter/main.c
Normal file
@ -0,0 +1,100 @@
|
||||
#include <curses.h>
|
||||
#include <cdk.h>
|
||||
|
||||
CDKSCREEN *cdkscreen = 0;
|
||||
|
||||
void displayLabel() {
|
||||
CDKLABEL *label;
|
||||
char *message[] ={
|
||||
" ,$.",
|
||||
" `S$$$S'",
|
||||
" .$²$. $$",
|
||||
" `Sn. ' ` $$",
|
||||
" $$s,sSSsSSSs ,sSSSs. ,4S$$Ss $$ $$$ ,sS$$Ss, $$ $$ ,sSSSs.",
|
||||
" $$$² $$² $$ `' $$ $$' `$$. $$' $$' `4S $$ $$ `' $$",
|
||||
" $$ )$ $$ ,$$$$$$ $$ .$$ $$ $$ $$$$ ,$$$$$$",
|
||||
" $$ $$ $$ $$ $$ `$$$$$$$² $$, $$ ,sS $$ $$ $$ $$",
|
||||
" $$' $$ `$$$$`SS $$, $$$ `4S$$SS' $$ $$ `$$$$`SS",
|
||||
" `$$. ,sS$$$s`$$ $$. .,",
|
||||
" `$Ss $$ $$ sS sS sS$s `$$, ,$$",
|
||||
" `4$$$$$$$' $$$$. $$$$. $$, ²S$$$$S'",
|
||||
" $$ $$ $$ $$ `$$",
|
||||
" $$$$' $$$$' 4$$'"};
|
||||
|
||||
label = newCDKLabel(cdkscreen, COLS / 2 - 35, LINES / 2 - 7, message, 14, FALSE, FALSE);
|
||||
drawCDKLabel(label, FALSE);
|
||||
}
|
||||
|
||||
void displayAbout() {
|
||||
CDKDIALOG *aboutWindow;
|
||||
char *message[] = {"<C>Control Centre for MagickaBBS",
|
||||
"<C>Copyright (c) 2017 Andrew Pamment"};
|
||||
char *buttons[] = {"OK"};
|
||||
aboutWindow = newCDKDialog(cdkscreen, 10, 5, message, 2, buttons, 1, 0, TRUE, TRUE, FALSE);
|
||||
|
||||
activateCDKDialog(aboutWindow, 0);
|
||||
|
||||
destroyCDKDialog(aboutWindow);
|
||||
}
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
WINDOW *cursesWin = 0;
|
||||
CDK_PARAMS params;
|
||||
CDKMENU *mainMenu;
|
||||
|
||||
int selection;
|
||||
int doexit = 0;
|
||||
char *menuItems[MAX_MENU_ITEMS][MAX_SUB_ITEMS];
|
||||
int menuLength[] = {7, 2};
|
||||
menuItems[0][0] = strdup("Main");
|
||||
menuItems[0][1] = strdup("System Config");
|
||||
menuItems[0][2] = strdup("System Paths");
|
||||
menuItems[0][3] = strdup("Mail Conferences");
|
||||
menuItems[0][4] = strdup("File Directories");
|
||||
menuItems[0][5] = strdup("Text Files");
|
||||
menuItems[0][6] = strdup("Exit");
|
||||
menuItems[1][0] = strdup("Misc");
|
||||
menuItems[1][1] = strdup("About");
|
||||
int locations[1] = {LEFT, RIGHT};
|
||||
|
||||
CDKparseParams(argc, argv, ¶ms, CDK_CLI_PARAMS);
|
||||
|
||||
cursesWin = initscr();
|
||||
|
||||
cdkscreen = initCDKScreen(cursesWin);
|
||||
initCDKColor();
|
||||
|
||||
displayLabel();
|
||||
|
||||
mainMenu = newCDKMenu(cdkscreen, menuItems, 2, menuLength, locations, TOP, A_NORMAL, A_NORMAL);
|
||||
setCDKMenuTitleHighlight(mainMenu, A_STANDOUT);
|
||||
setCDKMenuSubTitleHighlight(mainMenu, A_STANDOUT);
|
||||
|
||||
while(!doexit) {
|
||||
selection = activateCDKMenu(mainMenu, 0);
|
||||
if (mainMenu->exitType == vESCAPE_HIT) {
|
||||
doexit = 1;
|
||||
} else if (mainMenu->exitType == vNORMAL) {
|
||||
switch(selection / 100) {
|
||||
case 0:
|
||||
switch (selection % 100) {
|
||||
case 5:
|
||||
doexit = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
switch (selection % 100) {
|
||||
case 0:
|
||||
displayAbout();
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
destroyCDKScreen(cdkscreen);
|
||||
endCDK();
|
||||
return 0;
|
||||
}
|
Reference in New Issue
Block a user