application/main.c

changeset 503
fefdfe7b2fc5
parent 490
0206161e92d5
child 510
9f562a7de4a2
equal deleted inserted replaced
502:390c737daf08 503:fefdfe7b2fc5
33 #include <ui/ui.h> 33 #include <ui/ui.h>
34 #include <cx/buffer.h> 34 #include <cx/buffer.h>
35 #include <cx/utils.h> 35 #include <cx/utils.h>
36 36
37 #include "cx/string.h" 37 #include "cx/string.h"
38 #include "cx/list.h"
38 39
39 #if !defined(UI_COCOA) && !defined(UI_MOTIF) 40 #if !defined(UI_COCOA) && !defined(UI_MOTIF)
40 41
41 typedef struct { 42 typedef struct {
42 UiString *str1; 43 UiString *str1;
52 UiGeneric *image; 53 UiGeneric *image;
53 UiList *srclist1; 54 UiList *srclist1;
54 UiList *srclist2; 55 UiList *srclist2;
55 UiList *items; 56 UiList *items;
56 UiGeneric *web; 57 UiGeneric *web;
58 UiString *list_input;
57 } MyDocument; 59 } MyDocument;
58 60
59 MyDocument *doc1; 61 MyDocument *doc1;
60 MyDocument *doc2; 62 MyDocument *doc2;
61 63
166 doc->list = ui_list_new(docctx, "list"); 168 doc->list = ui_list_new(docctx, "list");
167 ui_list_append(doc->list, "test1"); 169 ui_list_append(doc->list, "test1");
168 ui_list_append(doc->list, "test2"); 170 ui_list_append(doc->list, "test2");
169 ui_list_append(doc->list, "test3"); 171 ui_list_append(doc->list, "test3");
170 doc->list2 = ui_list_new(docctx, "list2"); 172 doc->list2 = ui_list_new(docctx, "list2");
171 ui_list_append(doc->list2, "test1"); 173 ui_list_append(doc->list2, strdup("test1"));
172 ui_list_append(doc->list2, "test2"); 174 ui_list_append(doc->list2, strdup("test2"));
173 ui_list_append(doc->list2, "test3"); 175 ui_list_append(doc->list2, strdup("test3"));
174 doc->radio = ui_int_new(docctx, "radio"); 176 doc->radio = ui_int_new(docctx, "radio");
175 doc->tabview = ui_int_new(docctx, "tabview"); 177 doc->tabview = ui_int_new(docctx, "tabview");
176 doc->image = ui_generic_new(docctx, "image"); 178 doc->image = ui_generic_new(docctx, "image");
177 179
178 doc->srclist1 = ui_list_new(docctx, "srclist1"); 180 doc->srclist1 = ui_list_new(docctx, "srclist1");
188 ui_list_append(doc->items, "Item 2"); 190 ui_list_append(doc->items, "Item 2");
189 ui_list_append(doc->items, "Item 3"); 191 ui_list_append(doc->items, "Item 3");
190 192
191 doc->web = ui_generic_new(docctx, NULL); 193 doc->web = ui_generic_new(docctx, NULL);
192 194
195 doc->list_input = ui_string_new(docctx, "list_input");
196
193 //doc->text = ui_text_new(docctx, "text"); 197 //doc->text = ui_text_new(docctx, "text");
194 return doc; 198 return doc;
195 } 199 }
196 200
197 UiIcon *icon = NULL; 201 UiIcon *icon = NULL;
344 348
345 } 349 }
346 350
347 static void action_static_dropdown(UiEvent *event, void *userdata) { 351 static void action_static_dropdown(UiEvent *event, void *userdata) {
348 printf("dropdown[%d]: %s\n", event->intval, event->eventdata); 352 printf("dropdown[%d]: %s\n", event->intval, event->eventdata);
353 }
354
355 static void action_update_list(UiEvent *event, void *userdata) {
356 MyDocument *doc = event->document;
357
358 char *newvalue = ui_get(doc->list_input);
359 CxList *list2 = doc->list2->data;
360 cxListRemove(list2, 1);
361 cxListInsert(list2, 1, strdup(newvalue));
362
363 doc->list2->update(doc->list2, 1);
349 } 364 }
350 365
351 void application_startup(UiEvent *event, void *data) { 366 void application_startup(UiEvent *event, void *data) {
352 // global list 367 // global list
353 UiContext *global = ui_global_context(); 368 UiContext *global = ui_global_context();
434 model->columnsize[0] = -1; 449 model->columnsize[0] = -1;
435 model->getvalue = table_getvalue; 450 model->getvalue = table_getvalue;
436 ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = UI_ON, .contextmenu = menubuilder, .multiselection = TRUE, 451 ui_table(obj, .model = model, .list = doc->list2, .colspan = 2, .fill = UI_ON, .contextmenu = menubuilder, .multiselection = TRUE,
437 .onactivate = action_table_activate, .onactivatedata = "activate", 452 .onactivate = action_table_activate, .onactivatedata = "activate",
438 .onselection = action_table_activate, .onselectiondata = "selection"); 453 .onselection = action_table_activate, .onselectiondata = "selection");
454 ui_hbox(obj, .fill = UI_OFF) {
455 ui_textfield(obj, .value = doc->list_input);
456 ui_button(obj, .label = "Update List Item 1", .onclick = action_update_list);
457 }
439 } 458 }
440 ui_tab(obj, "Tab 2") { 459 ui_tab(obj, "Tab 2") {
441 ui_button(obj, .label = "Button 1 Start Thread", .onclick=action_start_thread); 460 ui_button(obj, .label = "Button 1 Start Thread", .onclick=action_start_thread);
442 ui_button(obj, .label = "Button 2 Notify Thread", .onclick=action_notify_thread); 461 ui_button(obj, .label = "Button 2 Notify Thread", .onclick=action_notify_thread);
443 ui_button(obj, .label = "Obj Ref", .onclick=action_button_ref); 462 ui_button(obj, .label = "Obj Ref", .onclick=action_button_ref);

mercurial