I have some basic code in C that creates a couple of elements and tries to 
print out the list of attributes associated with one of them (a text area in 
the example below), but when I run it, all the attribute names I expected to 
see are NULL even though IupGetAllAttributes said there would be several (7 in 
this example). I must be doing something obviously wrong, and to be honest, 
I've forgotten most of programming in C... 

Any ideas one what I'm doing wrong here?

#include "iup.h"
#include <stdlib.h>
#include <malloc.h>
#include <stdio.h>

int main(int argc, char** argv) {
        IupOpen(argc, argv);
        Ihandle *text = IupText(NULL);
        IupSetAttribute(text, "MULTILINE", "YES");
        IupSetAttribute(text, "EXPAND", "YES");
        Ihandle *button = IupButton("Press me", NULL);
        Ihandle *box = IupVbox(text, button, NULL);
        Ihandle *dialog = IupDialog(box);
        IupSetAttribute(dialog, "SIZE", "320x200");
        IupShow(dialog);

        int names_count = IupGetAllAttributes(text, NULL, -1);
        printf("attribute count: %d\n", names_count);
        char **names = calloc(names_count, sizeof(char*));
        IupGetAllAttributes(text, names, names_count);
        for (int i = 0; i < names_count; i++) {
                printf("attribute: %s\n", names[i]);
        }
        IupMainLoop();
        IupClose();
}


Output 

attribute count: 7
attribute: (null)
attribute: (null)
attribute: (null)
attribute: (null)
attribute: (null)
attribute: (null)
attribute: (null)



_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to