| 102:64ded9f6a6c6 | 103:6606616eca9f |
|---|---|
| 160 cxListClear(list->data); | 160 cxListClear(list->data); |
| 161 } | 161 } |
| 162 | 162 |
| 163 UIEXPORT void ui_list_update(UiList *list) { | 163 UIEXPORT void ui_list_update(UiList *list) { |
| 164 if(list->update) { | 164 if(list->update) { |
| 165 list->update(list, 0); | 165 list->update(list, -1); |
| 166 } | 166 } |
| 167 } | 167 } |
| 168 | 168 |
| 169 void ui_list_addobsv(UiList *list, ui_callback f, void *data) { | 169 void ui_list_addobsv(UiList *list, ui_callback f, void *data) { |
| 170 list->observers = ui_add_observer(list->observers, f, data); | 170 list->observers = ui_add_observer(list->observers, f, data); |
| 304 | 304 |
| 305 | 305 |
| 306 void ui_int_set(UiInteger* i, int64_t value) { | 306 void ui_int_set(UiInteger* i, int64_t value) { |
| 307 if (i) { | 307 if (i) { |
| 308 if (i->set) { | 308 if (i->set) { |
| 309 ui_setop_enable(TRUE); | |
| 309 i->set(i, value); | 310 i->set(i, value); |
| 311 ui_setop_enable(FALSE); | |
| 310 } else { | 312 } else { |
| 311 i->value = value; | 313 i->value = value; |
| 312 } | 314 } |
| 313 } | 315 } |
| 314 } | 316 } |
| 322 } | 324 } |
| 323 | 325 |
| 324 void ui_double_set(UiDouble* d, double value) { | 326 void ui_double_set(UiDouble* d, double value) { |
| 325 if (d) { | 327 if (d) { |
| 326 if (d->set) { | 328 if (d->set) { |
| 329 ui_setop_enable(TRUE); | |
| 327 d->set(d, value); | 330 d->set(d, value); |
| 331 ui_setop_enable(FALSE); | |
| 328 } else { | 332 } else { |
| 329 d->value = value; | 333 d->value = value; |
| 330 } | 334 } |
| 331 } | 335 } |
| 332 } | 336 } |
| 341 } | 345 } |
| 342 | 346 |
| 343 void ui_string_set(UiString* s, const char* value) { | 347 void ui_string_set(UiString* s, const char* value) { |
| 344 if (s) { | 348 if (s) { |
| 345 if (s->set) { | 349 if (s->set) { |
| 350 ui_setop_enable(TRUE); | |
| 346 s->set(s, value); | 351 s->set(s, value); |
| 352 ui_setop_enable(FALSE); | |
| 347 } else { | 353 } else { |
| 348 if(s->value.free) { | 354 if(s->value.free) { |
| 349 s->value.free(s->value.ptr); | 355 s->value.free(s->value.ptr); |
| 350 } | 356 } |
| 351 if (value) { | 357 if (value) { |
| 369 } | 375 } |
| 370 | 376 |
| 371 void ui_text_set(UiText* s, const char* value) { | 377 void ui_text_set(UiText* s, const char* value) { |
| 372 if (s) { | 378 if (s) { |
| 373 if (s->set) { | 379 if (s->set) { |
| 380 ui_setop_enable(TRUE); | |
| 374 s->set(s, value); | 381 s->set(s, value); |
| 382 ui_setop_enable(FALSE); | |
| 375 } else { | 383 } else { |
| 376 if(s->value.free) { | 384 if(s->value.free) { |
| 377 s->value.free(s->value.ptr); | 385 s->value.free(s->value.ptr); |
| 378 } | 386 } |
| 379 if (value) { | 387 if (value) { |
| 424 to->setposition = from->setposition; | 432 to->setposition = from->setposition; |
| 425 to->position = from->position; | 433 to->position = from->position; |
| 426 to->selection = from->selection; | 434 to->selection = from->selection; |
| 427 to->length = from->length; | 435 to->length = from->length; |
| 428 to->remove = from->remove; | 436 to->remove = from->remove; |
| 437 to->restore = from->restore; | |
| 438 to->save = from->save; | |
| 439 to->destroy = from->destroy; | |
| 429 | 440 |
| 430 to->obj = from->obj; | 441 to->obj = from->obj; |
| 431 // do not copy the undo manager | 442 // do not copy the undo manager, data1, data2 |
| 432 } | 443 } |
| 433 | 444 |
| 434 void uic_range_copy(UiRange *from, UiRange *to) { | 445 void uic_range_copy(UiRange *from, UiRange *to) { |
| 435 to->get = from->get; | 446 to->get = from->get; |
| 436 to->set = from->set; | 447 to->set = from->set; |
| 466 s->get(s); | 477 s->get(s); |
| 467 } | 478 } |
| 468 | 479 |
| 469 void uic_text_save(UiText *t) { | 480 void uic_text_save(UiText *t) { |
| 470 if(!t->obj) return; | 481 if(!t->obj) return; |
| 471 t->get(t); | 482 t->save(t); |
| 472 t->position(t); | 483 t->position(t); |
| 473 } | 484 } |
| 474 | 485 |
| 475 void uic_range_save(UiRange *r) { | 486 void uic_range_save(UiRange *r) { |
| 476 if(!r->obj) return; | 487 if(!r->obj) return; |
| 510 t->position = NULL; | 521 t->position = NULL; |
| 511 t->selection = NULL; | 522 t->selection = NULL; |
| 512 t->length = NULL; | 523 t->length = NULL; |
| 513 t->remove = NULL; | 524 t->remove = NULL; |
| 514 t->obj = NULL; | 525 t->obj = NULL; |
| 515 t->undomgr = NULL; | |
| 516 } | 526 } |
| 517 | 527 |
| 518 void uic_range_unbind(UiRange *r) { | 528 void uic_range_unbind(UiRange *r) { |
| 519 r->get = NULL; | 529 r->get = NULL; |
| 520 r->set = NULL; | 530 r->set = NULL; |
| 612 UiObserverDestructor *destr = cxMalloc(mp->allocator, sizeof(UiObserverDestructor)); | 622 UiObserverDestructor *destr = cxMalloc(mp->allocator, sizeof(UiObserverDestructor)); |
| 613 destr->list = list; | 623 destr->list = list; |
| 614 destr->observer = observer; | 624 destr->observer = observer; |
| 615 cxMempoolSetDestructor(destr, (cx_destructor_func)observer_destructor); | 625 cxMempoolSetDestructor(destr, (cx_destructor_func)observer_destructor); |
| 616 } | 626 } |
| 627 | |
| 628 static int ui_set_op = 0; | |
| 629 | |
| 630 void ui_setop_enable(int set) { | |
| 631 ui_set_op = set; | |
| 632 } | |
| 633 | |
| 634 int ui_get_setop(void) { | |
| 635 return ui_set_op; | |
| 636 } |