More work on ccenter
This commit is contained in:
parent
b03e16405b
commit
fc86922ec7
@ -5,6 +5,208 @@
|
|||||||
extern struct bbs_config conf;
|
extern struct bbs_config conf;
|
||||||
extern CDKSCREEN *cdkscreen;
|
extern CDKSCREEN *cdkscreen;
|
||||||
|
|
||||||
|
void edit_mail_area_file(int confer, int area) {
|
||||||
|
char *entrytext;
|
||||||
|
CDKENTRY *areaFile = newCDKEntry(cdkscreen, 11, 11, "</B/32>Area Path & Filename<!32>", NULL, A_NORMAL, ' ', vMIXED, 48, 1, 1024, TRUE, FALSE);
|
||||||
|
|
||||||
|
setCDKEntry(areaFile, conf.mail_conferences[confer]->mail_areas[area]->path, 1, 1024, TRUE);
|
||||||
|
|
||||||
|
entrytext = activateCDKEntry(areaFile, 0);
|
||||||
|
|
||||||
|
if (areaFile->exitType == vNORMAL) {
|
||||||
|
if (conf.mail_conferences[confer]->mail_areas[area]->path != NULL) {
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
}
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->path = strdup(entrytext);
|
||||||
|
}
|
||||||
|
destroyCDKEntry(areaFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void edit_mail_area_name(int confer, int area) {
|
||||||
|
char *entrytext;
|
||||||
|
CDKENTRY *areaName = newCDKEntry(cdkscreen, 11, 11, "</B/32>Area Name<!32>", NULL, A_NORMAL, ' ', vMIXED, 48, 1, 64, TRUE, FALSE);
|
||||||
|
|
||||||
|
setCDKEntry(areaName, conf.mail_conferences[confer]->mail_areas[area]->name, 1, 64, TRUE);
|
||||||
|
|
||||||
|
entrytext = activateCDKEntry(areaName, 0);
|
||||||
|
|
||||||
|
if (areaName->exitType == vNORMAL) {
|
||||||
|
if (conf.mail_conferences[confer]->mail_areas[area]->name != NULL) {
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->name);
|
||||||
|
}
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->name = strdup(entrytext);
|
||||||
|
}
|
||||||
|
destroyCDKEntry(areaName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_mail_area_qwkname(int confer, int area) {
|
||||||
|
char *entrytext;
|
||||||
|
CDKENTRY *areaQWKName = newCDKEntry(cdkscreen, 11, 11, "</B/32>Area QWK/Bluewave Name<!32>", NULL, A_NORMAL, ' ', vMIXED, 48, 1, 8, TRUE, FALSE);
|
||||||
|
|
||||||
|
setCDKEntry(areaQWKName, conf.mail_conferences[confer]->mail_areas[area]->qwkname, 1, 8, TRUE);
|
||||||
|
|
||||||
|
entrytext = activateCDKEntry(areaQWKName, 0);
|
||||||
|
|
||||||
|
if (areaQWKName->exitType == vNORMAL) {
|
||||||
|
if (conf.mail_conferences[confer]->mail_areas[area]->qwkname != NULL) {
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->qwkname);
|
||||||
|
}
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->qwkname = strdup(entrytext);
|
||||||
|
}
|
||||||
|
destroyCDKEntry(areaQWKName);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_mail_area_type(int confer, int area) {
|
||||||
|
char *itemList[] = {"Local",
|
||||||
|
"Echomail",
|
||||||
|
"Netmail",
|
||||||
|
"Newsgroup"};
|
||||||
|
int selection;
|
||||||
|
int doexit = 0;
|
||||||
|
CDKSCROLL *mailAreaType = newCDKScroll(cdkscreen, 11, 11, RIGHT, 7, 30, "</B/32>Area Type<!32>", itemList, 4,FALSE, A_STANDOUT, TRUE, FALSE);
|
||||||
|
|
||||||
|
if (conf.mail_conferences[confer]->mail_areas[area]->type == TYPE_LOCAL_AREA) {
|
||||||
|
setCDKScrollCurrent(mailAreaType, 0);
|
||||||
|
} else if (conf.mail_conferences[confer]->mail_areas[area]->type == TYPE_ECHOMAIL_AREA) {
|
||||||
|
setCDKScrollCurrent(mailAreaType, 1);
|
||||||
|
} else if (conf.mail_conferences[confer]->mail_areas[area]->type == TYPE_NETMAIL_AREA) {
|
||||||
|
setCDKScrollCurrent(mailAreaType, 2);
|
||||||
|
} else {
|
||||||
|
setCDKScrollCurrent(mailAreaType, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
while(!doexit) {
|
||||||
|
selection = activateCDKScroll(mailAreaType, 0);
|
||||||
|
if (mailAreaType->exitType == vESCAPE_HIT) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch(selection) {
|
||||||
|
case 0:
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->type = TYPE_LOCAL_AREA;
|
||||||
|
doexit = 1;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->type = TYPE_ECHOMAIL_AREA;
|
||||||
|
doexit = 1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->type = TYPE_NETMAIL_AREA;
|
||||||
|
doexit = 1;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area]->type = TYPE_NEWSGROUP_AREA;
|
||||||
|
doexit = 1;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
destroyCDKScroll(mailAreaType);
|
||||||
|
}
|
||||||
|
|
||||||
|
void display_error() {
|
||||||
|
char *message[] = {"A conference must have at least one area!"};
|
||||||
|
char *buttons[] = {" OK "};
|
||||||
|
CDKDIALOG *dialog = newCDKDialog(cdkscreen, 11, 11, message, 1, buttons, 1, A_STANDOUT, FALSE, TRUE, FALSE);
|
||||||
|
activateCDKDialog(dialog, 0);
|
||||||
|
destroyCDKDialog(dialog);
|
||||||
|
}
|
||||||
|
|
||||||
|
void delete_mail_area(int confer, int area) {
|
||||||
|
char *message[] = {"Do you want to Delete Related Files?"};
|
||||||
|
char *buttons[] = {" Yes ", " No "};
|
||||||
|
char filename[PATH_MAX];
|
||||||
|
|
||||||
|
if (conf.mail_conferences[confer]->mail_area_count == 1) {
|
||||||
|
display_error();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
CDKDIALOG *dialog = newCDKDialog(cdkscreen, 11, 11, message, 1, buttons, 2, A_STANDOUT, FALSE, TRUE, FALSE);
|
||||||
|
|
||||||
|
int selection = activateCDKDialog(dialog, 0);
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (dialog->exitType == vESCAPE_HIT || (dialog->exitType == vNORMAL && selection == 1)) {
|
||||||
|
// do nothing
|
||||||
|
} else {
|
||||||
|
snprintf(filename, PATH_MAX, "%s.jdt", conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
unlink(filename);
|
||||||
|
snprintf(filename, PATH_MAX, "%s.jdx", conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
unlink(filename);
|
||||||
|
snprintf(filename, PATH_MAX, "%s.jhr", conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
unlink(filename);
|
||||||
|
snprintf(filename, PATH_MAX, "%s.jlr", conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
unlink(filename);
|
||||||
|
snprintf(filename, PATH_MAX, "%s.cmhw", conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
unlink(filename);
|
||||||
|
}
|
||||||
|
destroyCDKDialog(dialog);
|
||||||
|
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->name);
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->path);
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]->qwkname);
|
||||||
|
free(conf.mail_conferences[confer]->mail_areas[area]);
|
||||||
|
|
||||||
|
for (i=area;i<conf.mail_conferences[confer]->mail_area_count - 1;i++) {
|
||||||
|
conf.mail_conferences[confer]->mail_areas[area] = conf.mail_conferences[confer]->mail_areas[area+1];
|
||||||
|
}
|
||||||
|
conf.mail_conferences[confer]->mail_area_count--;
|
||||||
|
conf.mail_conferences[confer]->mail_areas = (struct mail_area **)realloc(conf.mail_conferences[confer]->mail_areas, sizeof(struct mail_area *) * conf.mail_conferences[confer]->mail_area_count);
|
||||||
|
}
|
||||||
|
|
||||||
|
void edit_mail_area(int confer, int area) {
|
||||||
|
char *itemList[] = {"Name",
|
||||||
|
"Path & Filename",
|
||||||
|
"QWK/BlueWave Name",
|
||||||
|
"Read Sec. Level",
|
||||||
|
"Write Sec. Level",
|
||||||
|
"Type",
|
||||||
|
"Delete Mail Area"};
|
||||||
|
|
||||||
|
char buffer[1024];
|
||||||
|
int selection;
|
||||||
|
|
||||||
|
snprintf(buffer, 1024, "</B/32>%s<!32>", conf.mail_conferences[confer]->mail_areas[area]->name);
|
||||||
|
|
||||||
|
CDKSCROLL *editAreaList = newCDKScroll(cdkscreen, 9, 9, RIGHT, 10, 30, buffer, itemList, 7, FALSE, A_STANDOUT, TRUE, FALSE);
|
||||||
|
|
||||||
|
while (1) {
|
||||||
|
selection = activateCDKScroll(editAreaList, 0);
|
||||||
|
if (editAreaList->exitType == vESCAPE_HIT) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
switch(selection) {
|
||||||
|
case 0:
|
||||||
|
edit_mail_area_name(confer, area);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
edit_mail_area_file(confer, area);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
edit_mail_area_qwkname(confer, area);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
choose_sec_level(&conf.mail_conferences[confer]->mail_areas[area]->read_sec_level, 11, 11, conf.mail_conferences[confer]->mail_areas[area]->read_sec_level);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
choose_sec_level(&conf.mail_conferences[confer]->mail_areas[area]->write_sec_level, 11, 11, conf.mail_conferences[confer]->mail_areas[area]->write_sec_level);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
edit_mail_area_type(confer, area);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
delete_mail_area(confer, area);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
destroyCDKScroll(editAreaList);
|
||||||
|
}
|
||||||
|
|
||||||
void edit_mail_areas(int confer) {
|
void edit_mail_areas(int confer) {
|
||||||
char **itemlist;
|
char **itemlist;
|
||||||
int selection;
|
int selection;
|
||||||
@ -35,7 +237,7 @@ void edit_mail_areas(int confer) {
|
|||||||
// add new
|
// add new
|
||||||
} else {
|
} else {
|
||||||
// edit existing
|
// edit existing
|
||||||
//edit_mail_conference(selection - 1);
|
edit_mail_area(confer, selection - 1);
|
||||||
}
|
}
|
||||||
destroyCDKScroll(mailAreaList);
|
destroyCDKScroll(mailAreaList);
|
||||||
for (i=0;i<conf.mail_conferences[confer]->mail_area_count+1;i++) {
|
for (i=0;i<conf.mail_conferences[confer]->mail_area_count+1;i++) {
|
||||||
|
@ -313,6 +313,7 @@ void choose_sec_level(int *result, int x, int y, int selected) {
|
|||||||
res = (lvls[selection]);
|
res = (lvls[selection]);
|
||||||
|
|
||||||
*result = res;
|
*result = res;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
destroyCDKScroll(secLevelOpts);
|
destroyCDKScroll(secLevelOpts);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user