/** * * @param widget * @param msg */ void cwt_msgbox_set_msg(CWT_WIDGET_PTR widget, const CWT_CHAR* msg) { if( msg ) { CWT_WIDGET_PTR label; const CWT_CHAR *ptr = msg; StringBufferPtr sb; sb = strbuf_new_defaults(); while( *ptr ) { if( *ptr == '\n' ) { label = cwt_new_widget(0, CWT_WT_LABEL, widget); cwt_label_set_text(label, strbuf_cstr(sb)); strbuf_clear(sb); } else { strbuf_append_char(sb, *ptr); } ptr++; } if( strbuf_size(sb) > 0 ) { label = cwt_new_widget(0, CWT_WT_LABEL, widget); cwt_label_set_text(label, strbuf_cstr(sb)); } strbuf_delete(sb); widget->need_layout = TRUE; } }
void test() { // tests for strbuf_new struct strbuf* sb = strbuf_new(2); printf("strbuf_new() passes tests\n"); // tests for strbuf_add strbuf_add(sb, "H", 1); ASSERT(sb->len == 1); ASSERT(sb->limit == 2); strbuf_add(sb, "ello", 4); ASSERT(sb->len == 5); strbuf_addstr(sb, ",world!"); ASSERT(sb->len == 12); printf("strbuf_add() and strbuf_addstr() passes tests\n"); char *s = strbuf_str(sb); ASSERT(strcmp(s, "Hello,world!") == 0); free(s); printf("strbuf_str() passes tests\n"); char c = strbuf_pop(sb); ASSERT(c = '!'); s = strbuf_str(sb); ASSERT(strcmp(s, "Hello,world") == 0); free(s); printf("strbuf_pop() passes tests\n"); strbuf_delete(sb, 5); s = strbuf_str(sb); ASSERT(strcmp(s, "Helloworld") == 0); free(s); printf("strbuf_delete() passes tests\n"); strbuf_push(sb, c); s = strbuf_str(sb); ASSERT(strcmp(s, "Helloworld!") == 0); free(s); printf("strbuf_push() passes tests\n"); free(strbuf_dealloc(sb)); return; }
void _cwt_destroy_input(CWT_WIDGET_PTR widget) { CWT_INPUT_PTR input = (CWT_INPUT_PTR)widget; JQ_ASSERT(widget); strbuf_delete(input->strbuf); }