Blame test.c

Packit Service 8876fe
#include <stdlib.h>
Packit Service 8876fe
#include <stdio.h>
Packit Service 8876fe
#include <string.h>
Packit Service 8876fe
#include <signal.h>
Packit Service 8876fe
Packit Service 8876fe
#include "newt.h"
Packit Service 8876fe
Packit Service 8876fe
struct callbackInfo {
Packit Service 8876fe
    newtComponent en;
Packit Service 8876fe
    char * state;
Packit Service 8876fe
};
Packit Service 8876fe
Packit Service 8876fe
void disableCallback(newtComponent co, void * data) {
Packit Service 8876fe
    struct callbackInfo * cbi = data;
Packit Service 8876fe
Packit Service 8876fe
    if (*cbi->state == ' ') {
Packit Service 8876fe
	newtEntrySetFlags(cbi->en, NEWT_FLAG_DISABLED, NEWT_FLAGS_RESET);
Packit Service 8876fe
    } else {
Packit Service 8876fe
	newtEntrySetFlags(cbi->en, NEWT_FLAG_DISABLED, NEWT_FLAGS_SET);
Packit Service 8876fe
    }
Packit Service 8876fe
Packit Service 8876fe
    newtRefresh();
Packit Service 8876fe
}
Packit Service 8876fe
Packit Service 8876fe
void suspend(void * d) {
Packit Service 8876fe
    newtSuspend();
Packit Service 8876fe
    raise(SIGTSTP);
Packit Service 8876fe
    newtResume();
Packit Service 8876fe
}
Packit Service 8876fe
Packit Service 8876fe
void helpCallback(newtComponent co, void * tag) {
Packit Service 8876fe
    newtWinMessage("Help", "Ok", tag);
Packit Service 8876fe
}
Packit Service 8876fe
Packit Service 8876fe
int main(void) {
Packit Service 8876fe
    newtComponent b1, b2, r1, r2, r3, e2, e3, l1, l2, l3, scale;
Packit Service 8876fe
    newtComponent lb, t, rsf, timeLabel;
Packit Service 8876fe
    newtComponent cs[10];
Packit Service 8876fe
    newtComponent f, chklist, e1;
Packit Service 8876fe
    struct callbackInfo cbis[3];
Packit Service 8876fe
    char results[10];
Packit Service 8876fe
    const char * enr2, * enr3, *scaleVal;
Packit Service 8876fe
    void ** selectedList;
Packit Service 8876fe
    int i, numsel;
Packit Service 8876fe
    char buf[20];
Packit Service 8876fe
    const char * spinner = "-\\|/";
Packit Service 8876fe
    const char * spinState;
Packit Service 8876fe
    struct newtExitStruct es;
Packit Service 8876fe
Packit Service 8876fe
    newtInit();
Packit Service 8876fe
    newtCls();
Packit Service 8876fe
Packit Service 8876fe
    newtSetSuspendCallback(suspend, NULL);
Packit Service 8876fe
    newtSetHelpCallback(helpCallback);
Packit Service 8876fe
Packit Service 8876fe
    newtDrawRootText(0, 0, "Newt test program");
Packit Service 8876fe
    newtPushHelpLine(NULL);
Packit Service 8876fe
    newtDrawRootText(-50, 0, "More root text");
Packit Service 8876fe
Packit Service 8876fe
    newtOpenWindow(2, 2, 30, 10, "first window");
Packit Service 8876fe
    newtOpenWindow(10, 5, 65, 16, "window 2");
Packit Service 8876fe
Packit Service 8876fe
    f = newtForm(NULL, "This is some help text", 0);
Packit Service 8876fe
    chklist = newtForm(NULL, NULL, 0);
Packit Service 8876fe
Packit Service 8876fe
    b1 = newtButton(3, 1, "Exit");
Packit Service 8876fe
    b2 = newtButton(18, 1, "Update");
Packit Service 8876fe
    r1 = newtRadiobutton(20, 10, "Choice 1", 0, NULL);
Packit Service 8876fe
    r2 = newtRadiobutton(20, 11, "Choice 2", 1, r1);
Packit Service 8876fe
    r3 = newtRadiobutton(20, 12, "Choice 3", 0, r2);
Packit Service 8876fe
    rsf = newtForm(NULL, NULL, 0);
Packit Service 8876fe
    newtFormAddComponents(rsf, r1, r2, r3, NULL);
Packit Service 8876fe
    newtFormSetBackground(rsf, NEWT_COLORSET_CHECKBOX);
Packit Service 8876fe
Packit Service 8876fe
    for (i = 0; i < 10; i++) {
Packit Service 8876fe
	sprintf(buf, "Check %d", i);
Packit Service 8876fe
	cs[i] = newtCheckbox(3, 10 + i, buf, ' ', NULL, &results[i]);
Packit Service 8876fe
	newtFormAddComponent(chklist, cs[i]);
Packit Service 8876fe
    }
Packit Service 8876fe
Packit Service 8876fe
    l1 = newtLabel(3, 6, "Scale:");
Packit Service 8876fe
    l2 = newtLabel(3, 7, "Scrolls:");
Packit Service 8876fe
    l3 = newtLabel(3, 8, "Hidden:");
Packit Service 8876fe
    e1 = newtEntry(12, 6, "", 20, &scaleVal, 0);
Packit Service 8876fe
    e2 = newtEntry(12, 7, "Default", 20, &enr2, NEWT_FLAG_SCROLL);
Packit Service 8876fe
/*    e3 = newtEntry(12, 8, NULL, 20, &enr3, NEWT_FLAG_HIDDEN); */
Packit Service 8876fe
    e3 = newtEntry(12, 8, NULL, 20, &enr3, NEWT_FLAG_PASSWORD);
Packit Service 8876fe
Packit Service 8876fe
    cbis[0].state = &results[0];
Packit Service 8876fe
    cbis[0].en = e1;
Packit Service 8876fe
    newtComponentAddCallback(cs[0], disableCallback, &cbis[0]);
Packit Service 8876fe
Packit Service 8876fe
    scale = newtScale(3, 14, 32, 100);
Packit Service 8876fe
Packit Service 8876fe
    newtFormSetHeight(chklist, 3);
Packit Service 8876fe
Packit Service 8876fe
    newtFormAddComponents(f, b1, b2, l1, l2, l3, e1, e2, e3, chklist, NULL);
Packit Service 8876fe
    newtFormAddComponents(f, rsf, scale, NULL);
Packit Service 8876fe
Packit Service 8876fe
    lb = newtListbox(45, 1, 6, NEWT_FLAG_MULTIPLE | NEWT_FLAG_BORDER |
Packit Service 8876fe
				NEWT_FLAG_SCROLL | NEWT_FLAG_SHOWCURSOR);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "First", (void *) 1);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Second", (void *) 2);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Third", (void *) 3);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Fourth", (void *) 4);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Sixth", (void *) 6);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Seventh", (void *) 7);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Eighth", (void *) 8);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Ninth", (void *) 9);
Packit Service 8876fe
    newtListboxAppendEntry(lb, "Tenth", (void *) 10);
Packit Service 8876fe
Packit Service 8876fe
    newtListboxInsertEntry(lb, "Fifth", (void *) 5, (void *) 4);
Packit Service 8876fe
    newtListboxInsertEntry(lb, "Eleventh", (void *) 11, (void *) 10);
Packit Service 8876fe
    newtListboxDeleteEntry(lb, (void *) 11);
Packit Service 8876fe
Packit Service 8876fe
    spinState = spinner;
Packit Service 8876fe
    timeLabel = newtLabel(45, 8, "Spinner: -");
Packit Service 8876fe
Packit Service 8876fe
    t = newtTextbox(45, 10, 17, 5, NEWT_FLAG_WRAP);
Packit Service 8876fe
    newtTextboxSetText(t, "This is some text does it look okay?\nThis should be alone.\nThis shouldn't be printed");
Packit Service 8876fe
Packit Service 8876fe
    newtFormAddComponents(f, lb, timeLabel, t, NULL);
Packit Service 8876fe
    newtRefresh();
Packit Service 8876fe
    newtFormSetTimer(f, 200);
Packit Service 8876fe
Packit Service 8876fe
    do {
Packit Service 8876fe
	newtFormRun(f, &es);
Packit Service 8876fe
Packit Service 8876fe
	if (es.reason == NEWT_EXIT_COMPONENT && es.u.co == b2) {
Packit Service 8876fe
	    newtScaleSet(scale, atoi(scaleVal));
Packit Service 8876fe
	    newtRefresh();
Packit Service 8876fe
	} else if (es.reason == NEWT_EXIT_TIMER) {
Packit Service 8876fe
	    spinState++;
Packit Service 8876fe
	    if (!*spinState) spinState = spinner;
Packit Service 8876fe
	    sprintf(buf, "Spinner: %c", *spinState);
Packit Service 8876fe
	    newtLabelSetText(timeLabel, buf);
Packit Service 8876fe
	}
Packit Service 8876fe
    } while (es.reason != NEWT_EXIT_COMPONENT || es.u.co == b2);
Packit Service 8876fe
Packit Service 8876fe
    numsel = 0;
Packit Service 8876fe
    selectedList = newtListboxGetSelection(lb, &numsel);
Packit Service 8876fe
Packit Service 8876fe
    newtPopWindow();
Packit Service 8876fe
    newtPopWindow();
Packit Service 8876fe
    newtFinished();
Packit Service 8876fe
Packit Service 8876fe
    printf("got string 1: %s\n", scaleVal);
Packit Service 8876fe
    printf("got string 2: %s\n", enr2);
Packit Service 8876fe
    printf("got string 3: %s\n", enr3);
Packit Service 8876fe
Packit Service 8876fe
    newtFormDestroy(f);
Packit Service 8876fe
Packit Service 8876fe
    printf("\nSelected listbox items (%d):\n", numsel);
Packit Service 8876fe
    if(selectedList) {
Packit Service 8876fe
	for(i = 0; i < numsel; i++)
Packit Service 8876fe
	    printf("#%d\n", (int)(long) selectedList[i]);
Packit Service 8876fe
    }
Packit Service 8876fe
    free(selectedList);
Packit Service 8876fe
Packit Service 8876fe
    return 0;
Packit Service 8876fe
}