| 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) { |