add function for checking changed.
fix changed flag bug.
@@ -389,7 +389,7 @@ | ||
389 | 389 | return NULL; |
390 | 390 | } |
391 | 391 | |
392 | -EXPORT W extbbslist_editcontext_append(extbbslist_editcontext_t *ctx, CONST TC *title, W title_len, CONST TC *url, W url_len) | |
392 | +LOCAL W extbbslist_editcontext_append_common(extbbslist_editcontext_t *ctx, CONST TC *title, W title_len, CONST TC *url, W url_len) | |
393 | 393 | { |
394 | 394 | extbbslist_item_t *item, *senti; |
395 | 395 | W err; |
@@ -414,11 +414,22 @@ | ||
414 | 414 | senti = extbbslist_editcontext_sentinelnode(ctx); |
415 | 415 | extbbslist_item_QueInsert(item, senti); |
416 | 416 | ctx->num++; |
417 | - ctx->changed = True; | |
418 | 417 | |
419 | 418 | return 0; |
420 | 419 | } |
421 | 420 | |
421 | +EXPORT W extbbslist_editcontext_append(extbbslist_editcontext_t *ctx, CONST TC *title, W title_len, CONST TC *url, W url_len) | |
422 | +{ | |
423 | + W err; | |
424 | + | |
425 | + err = extbbslist_editcontext_append_common(ctx, title, title_len, url, url_len); | |
426 | + if (err < 0) { | |
427 | + return err; | |
428 | + } | |
429 | + ctx->changed = True; | |
430 | + return 0; | |
431 | +} | |
432 | + | |
422 | 433 | EXPORT W extbbslist_editcontext_update(extbbslist_editcontext_t *ctx, W i, CONST TC *title, W title_len, CONST TC *url, W url_len) |
423 | 434 | { |
424 | 435 | extbbslist_item_t *item; |
@@ -636,11 +647,16 @@ | ||
636 | 647 | ctx->selected.index = i; |
637 | 648 | } |
638 | 649 | |
639 | -IMPORT W extbbslist_editcontext_getselect(extbbslist_editcontext_t *ctx) | |
650 | +EXPORT W extbbslist_editcontext_getselect(extbbslist_editcontext_t *ctx) | |
640 | 651 | { |
641 | 652 | return ctx->selected.index; |
642 | 653 | } |
643 | 654 | |
655 | +EXPORT Bool extbbslist_editcontext_ischanged(extbbslist_editcontext_t *ctx) | |
656 | +{ | |
657 | + return ctx->changed; | |
658 | +} | |
659 | + | |
644 | 660 | EXPORT VOID extbbslist_editcontext_setviewrect(extbbslist_editcontext_t *ctx, W l, W t, W r, W b) |
645 | 661 | { |
646 | 662 | ctx->view_l = l; |
@@ -731,7 +747,7 @@ | ||
731 | 747 | senti = extbbslist_sentinelnode(list); |
732 | 748 | item = extbbslist_item_nextnode(senti); |
733 | 749 | for (; item != senti;) { |
734 | - err = extbbslist_editcontext_append(ctx, item->title, item->title_len, item->url.tc, item->url.tc_len); | |
750 | + err = extbbslist_editcontext_append_common(ctx, item->title, item->title_len, item->url.tc, item->url.tc_len); | |
735 | 751 | if (err < 0) { |
736 | 752 | extbbslist_editcontext_delete(ctx); |
737 | 753 | return NULL; |
@@ -56,6 +56,7 @@ | ||
56 | 56 | IMPORT W extbbslist_editcontext_deleteitem(extbbslist_editcontext_t *ctx, W i); |
57 | 57 | IMPORT VOID extbbslist_editcontext_setselect(extbbslist_editcontext_t *ctx, W i); |
58 | 58 | IMPORT W extbbslist_editcontext_getselect(extbbslist_editcontext_t *ctx); |
59 | +IMPORT Bool extbbslist_editcontext_ischanged(extbbslist_editcontext_t *ctx); | |
59 | 60 | IMPORT VOID extbbslist_editcontext_setviewrect(extbbslist_editcontext_t *ctx, W l, W t, W r, W b); |
60 | 61 | IMPORT VOID extbbslist_editcontext_getviewrect(extbbslist_editcontext_t *ctx, W *l, W *t, W *r, W *b); |
61 | 62 | IMPORT VOID extbbslist_editcontext_scrollviewrect(extbbslist_editcontext_t *ctx, W dh, W dv); |