„Ich versuche, eine Komponente zu schreiben, die einen Baum von Ordnern zeigt“
CDK hat das CDKFSELECT
Widget.
Es zeigt eine Liste von Verzeichnissen und Dateien an, die für Sie arbeiten könnten, oder der Quellcode von CDKFSELECT könnte für Ihre eigene benutzerdefinierte geschriebene Lösung verwendet werden.
CDKFSELECT *fSelect = 0;
/*
Height of zero means to extent of xterm
Width of zero means to extent of xterm
*/
int HEIGHT = 0;
int WIDTH = 0;
char *title = new char[strlen("Pick a file to open") + 1];
strcpy(title, "Pick a file to open");
char *prompt = new char[strlen("==> ") + 1];
strcpy(prompt, "==> ");
char *directoryAttribute = new char[strlen("</B>") + 1]; /* bold */
strcpy(directoryAttribute, "</B>");
char *fileAttribute = new char[strlen("</N>") + 1]; /* normal */
strcpy(fileAttribute, "</N>");
char *linkAttribute = new char[strlen("</D>") + 1]; /* dim */
strcpy(linkAttribute, "</D>");
char *sockAttribute = new char[strlen("</D>") + 1]; /* dim */
strcpy(sockAttribute, "</D>");
boolean displayBox = TRUE;
boolean displayShadow = FALSE;
fSelect = newCDKFselect(pCdkScreen,
TOP, LEFT, HEIGHT, WIDTH,
title, prompt,
A_NORMAL, '_', A_REVERSE,
directoryAttribute, fileAttribute, linkAttribute, sockAttribute,
displayBox, displayShadow);
char *filename = activateCDKFselect(fSelect, 0);
/*
2014-06-13, using DDD, filename being correctly populated
by CDK
*/
/* do other stuff... */
/*
free the memory of any dynamically created objects
that were created with new or malloc, or such
*/
destroyCDKFselect(fSelect);
delete [] title;
delete [] prompt;
delete [] directoryAttribute;
delete [] fileAttribute;
delete [] linkAttribute;
delete [] sockAttribute;