ui/common/document.c

changeset 1089
a3db51a94b37
parent 795
d466b6edfebc
equal deleted inserted replaced
1088:09459f07ab11 1089:a3db51a94b37
47 document->ctx = ctx; 47 document->ctx = ctx;
48 return &document->doc; 48 return &document->doc;
49 } 49 }
50 50
51 void ui_document_destroy(void *doc) { 51 void ui_document_destroy(void *doc) {
52 uic_context_destroy(ui_document_context(doc), doc);
53 }
54
55 void ui_document_ref(void *doc) {
52 UiContext *ctx = ui_document_context(doc); 56 UiContext *ctx = ui_document_context(doc);
53 if(ctx) { 57 if(ctx) {
54 UiEvent ev; 58 ctx->ref++;
55 ev.window = NULL; 59 }
56 ev.document = doc; 60 }
57 ev.obj = NULL;
58 ev.eventdata = NULL;
59 ev.eventdatatype = 0;
60 ev.intval = 0;
61 61
62 if(ctx->close_callback) { 62 void ui_document_unref(void *doc) {
63 ctx->close_callback(&ev, ctx->close_data); 63 UiContext *ctx = ui_document_context(doc);
64 if(ctx) {
65 if(--ctx->ref == 0) {
66 uic_context_destroy(ctx, doc);
64 } 67 }
65 cxMempoolFree(ctx->mp);
66 } 68 }
67 } 69 }
68 70
69 UiContext* ui_document_context(void *doc) { 71 UiContext* ui_document_context(void *doc) {
70 if(doc) { 72 if(doc) {

mercurial