| 40 #include "../common/toolbar.h" |
40 #include "../common/toolbar.h" |
| 41 |
41 |
| 42 #include <cx/mempool.h> |
42 #include <cx/mempool.h> |
| 43 |
43 |
| 44 |
44 |
| 45 static UiObject* create_window(const char *title, BOOL simple) { |
45 static UiObject* create_window(const char *title, BOOL simple, BOOL sidebar) { |
| 46 CxMempool *mp = cxMempoolCreateSimple(256); |
46 CxMempool *mp = cxMempoolCreateSimple(256); |
| 47 UiObject *obj = cxCalloc(mp->allocator, 1, sizeof(UiObject)); |
47 UiObject *obj = cxCalloc(mp->allocator, 1, sizeof(UiObject)); |
| 48 obj->ref = 0; |
48 obj->ref = 0; |
| 49 |
49 |
| 50 obj->ctx = uic_context(obj, mp); |
50 obj->ctx = uic_context(obj, mp); |
| 51 |
51 |
| 52 MainWindow *window = [[MainWindow alloc] init:obj]; |
52 MainWindow *window = [[MainWindow alloc] init:obj withSidebar:sidebar]; |
| 53 [[WindowManager sharedWindowManager] addWindow:window]; |
53 [[WindowManager sharedWindowManager] addWindow:window]; |
| 54 window.releasedWhenClosed = false; |
54 window.releasedWhenClosed = false; |
| 55 |
55 |
| 56 obj->wobj = (__bridge void*)window; |
56 obj->wobj = (__bridge void*)window; |
| 57 |
57 |
| 62 |
62 |
| 63 return obj; |
63 return obj; |
| 64 } |
64 } |
| 65 |
65 |
| 66 UiObject* ui_window(const char *title, void *window_data) { |
66 UiObject* ui_window(const char *title, void *window_data) { |
| 67 UiObject *obj = create_window(title, FALSE); |
67 UiObject *obj = create_window(title, FALSE, FALSE); |
| 68 obj->window = window_data; |
68 obj->window = window_data; |
| 69 return obj; |
69 return obj; |
| 70 } |
70 } |
| 71 |
71 |
| 72 UiObject* ui_simple_window(const char *title, void *window_data) { |
72 UiObject* ui_simple_window(const char *title, void *window_data) { |
| 73 UiObject *obj = create_window(title, TRUE); |
73 UiObject *obj = create_window(title, TRUE, FALSE); |
| 74 obj->window = window_data; |
74 obj->window = window_data; |
| 75 return obj; |
75 return obj; |
| 76 } |
76 } |
| 77 |
77 |
| |
78 UiObject* ui_sidebar_window(const char *title, void *window_data) { |
| |
79 UiObject *obj = create_window(title, FALSE, TRUE); |
| |
80 obj->window = window_data; |
| |
81 return obj; |
| |
82 } |
| 78 |
83 |
| 79 /* --------------------------------- File Dialogs --------------------------------- */ |
84 /* --------------------------------- File Dialogs --------------------------------- */ |
| 80 |
85 |
| 81 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
86 void ui_openfiledialog(UiObject *obj, unsigned int mode, ui_callback file_selected_callback, void *cbdata) { |
| 82 NSOpenPanel *openPanel = [NSOpenPanel openPanel]; |
87 NSOpenPanel *openPanel = [NSOpenPanel openPanel]; |