ui/cocoa/window.m

changeset 1174
8b8da1adef7d
parent 1126
bd1fe6134c1a
child 1175
1943f7411e50
equal deleted inserted replaced
1173:ce0e443174d7 1174:8b8da1adef7d
48 static int window_default_height = 550; 48 static int window_default_height = 550;
49 49
50 static int splitview_window_default_pos = -1; 50 static int splitview_window_default_pos = -1;
51 static UiBool splitview_window_use_prop = TRUE; 51 static UiBool splitview_window_use_prop = TRUE;
52 52
53 static void main_window_destroy(UiObject *obj) {
54 MainWindow *window = (__bridge MainWindow*)obj->wobj;
55 [[WindowManager sharedWindowManager] closeWindow:window];
56 }
57
53 static UiObject* create_window(const char *title, BOOL simple, BOOL sidebar, BOOL splitview) { 58 static UiObject* create_window(const char *title, BOOL simple, BOOL sidebar, BOOL splitview) {
54 UiObject *obj = uic_object_new_toplevel(); 59 UiObject *obj = uic_object_new_toplevel();
55 60
56 MainWindow *window = [[MainWindow alloc] init:obj withSidebar:sidebar withSplitview:splitview]; 61 MainWindow *window = [[MainWindow alloc] init:obj withSidebar:sidebar withSplitview:splitview];
57 [[WindowManager sharedWindowManager] addWindow:window];
58 window.releasedWhenClosed = false; // TODO: we still need a cleanup strategy
59 62
60 obj->wobj = (__bridge void*)window; 63 obj->wobj = (__bridge void*)window;
64 obj->destroy = main_window_destroy;
61 65
62 MainWindowController *controller = [[MainWindowController alloc] initWithWindow:obj window:window]; 66 MainWindowController *controller = [[MainWindowController alloc] initWithWindow:obj window:window];
63 window.windowController = controller; 67 window.windowController = controller;
64 [window setNextResponder:(NSResponder*)controller]; 68 [window setNextResponder:(NSResponder*)controller];
65 objc_setAssociatedObject(window, "windowcontroller", controller, OBJC_ASSOCIATION_RETAIN); 69 [[WindowManager sharedWindowManager] addWindow:controller];
66 70
67 return obj; 71 return obj;
68 } 72 }
69 73
70 UiObject* ui_window(const char *title) { 74 UiObject* ui_window(const char *title) {

mercurial