#include <picogui.h>
pghandle left, right, main_w;
pghandle ctx;
int add(struct pgEvent *evt){
int i,q;
pghandle line;
ctx = pgEnterContext();
for (q=0;q<3;q++) {
line = pgNewWidget(PG_WIDGET_LABEL, PG_DERIVE_INSIDE, left);
pgSetWidget(PGDEFAULT, PG_WP_SIDE, PG_S_TOP, 0);
for (i=0;i<5;i++) {
pgNewWidget(PG_WIDGET_FIELD, PG_DERIVE_INSIDE, line);
pgSetWidget(PGDEFAULT,
//PG_WP_SIDE, PG_S_LEFT, /* crash */
PG_WP_TEXT, pgNewString("x"),
0);
}
}
return 0;
}
int rm(struct pgEvent *evt){
pgDeleteHandleContext(ctx);
return 0;
}
int update(struct pgEvent *evt){
pgUpdate();
}
int main(){
pgInit(0, NULL);
main_w = pgRegisterApp(PG_APP_NORMAL, NULL, 0);
/* without this, buttons just flick instead of nice stretch */
main_w = pgNewWidget(PG_WIDGET_BOX, 0, 0);
left = pgNewWidget(PG_WIDGET_LABEL, PG_DERIVE_INSIDE, main_w);
pgSetWidget(PGDEFAULT, PG_WP_SIDE, PG_S_LEFT, 0);
right = pgNewWidget(PG_WIDGET_LABEL, PG_DERIVE_INSIDE, main_w);
pgSetWidget(PGDEFAULT, PG_WP_SIDE, PG_S_RIGHT, 0);
pgNewWidget(PG_WIDGET_BUTTON, PG_DERIVE_INSIDE, right);
pgSetWidget(PGDEFAULT, PG_WP_TEXT, pgNewString("add"), 0);
pgBind(PGDEFAULT, PGBIND_ANY, add, NULL);
pgNewWidget(PG_WIDGET_BUTTON, PG_DERIVE_INSIDE, right);
pgSetWidget(PGDEFAULT, PG_WP_TEXT, pgNewString("rm"), 0);
pgBind(PGDEFAULT, PGBIND_ANY, rm, NULL);
pgNewWidget(PG_WIDGET_BUTTON, PG_DERIVE_INSIDE, right);
pgSetWidget(PGDEFAULT, PG_WP_TEXT, pgNewString("update"), 0);
pgBind(PGDEFAULT, PGBIND_ANY, update, NULL);
pgNewWidget(PG_WIDGET_BUTTON, PG_DERIVE_INSIDE, right);
pgSetWidget(PGDEFAULT, PG_WP_TEXT, pgNewString("dummy"), 0);
pgUpdate();
while (1) pgEventPoll();
pgEventLoop();
return 0;
}