Migrated darwin/window.m.
This commit is contained in:
parent
c36d5079db
commit
6e584f26d3
|
@ -62,7 +62,7 @@ struct uiWindow {
|
||||||
{
|
{
|
||||||
uiWindow *v;
|
uiWindow *v;
|
||||||
|
|
||||||
v = (uiWindow *) mapGet(self->windows, w);
|
v = uiWindow(mapGet(self->windows, w));
|
||||||
// this CAN (and IS ALLOWED TO) return NULL, just in case we're called with some OS X-provided window as the key window
|
// this CAN (and IS ALLOWED TO) return NULL, just in case we're called with some OS X-provided window as the key window
|
||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
|
@ -71,16 +71,9 @@ struct uiWindow {
|
||||||
|
|
||||||
static windowDelegateClass *windowDelegate = nil;
|
static windowDelegateClass *windowDelegate = nil;
|
||||||
|
|
||||||
static void onDestroy(uiWindow *);
|
static void uiWindowDestroy(uiControl *c)
|
||||||
|
|
||||||
uiDarwinDefineControlWithOnDestroy(
|
|
||||||
uiWindow, // type name
|
|
||||||
window, // handle
|
|
||||||
onDestroy(this); // on destroy
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onDestroy(uiWindow *w)
|
|
||||||
{
|
{
|
||||||
|
uiWindow *w = uiWindow(c);
|
||||||
NSView *childView;
|
NSView *childView;
|
||||||
|
|
||||||
// hide the window
|
// hide the window
|
||||||
|
@ -94,26 +87,53 @@ static void onDestroy(uiWindow *w)
|
||||||
[windowDelegate unregisterWindow:w];
|
[windowDelegate unregisterWindow:w];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void windowCommitShow(uiControl *c)
|
uiDarwinControlDefaultHandle(uiWindow, window)
|
||||||
|
// TODO?
|
||||||
|
uiDarwinControlDefaultParent(uiWindow, window)
|
||||||
|
uiDarwinControlDefaultSetParent(uiWindow, window)
|
||||||
|
// end TODO
|
||||||
|
|
||||||
|
static int uiWindowToplevel(uiControl *c)
|
||||||
|
{
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int uiWindowVisible(uiControl *c)
|
||||||
|
{
|
||||||
|
uiWindow *w = uiWindow(c);
|
||||||
|
|
||||||
|
return [w->window isVisible];
|
||||||
|
}
|
||||||
|
|
||||||
|
static void uiWindowShow(uiControl *c)
|
||||||
{
|
{
|
||||||
uiWindow *w = (uiWindow *) c;
|
uiWindow *w = (uiWindow *) c;
|
||||||
|
|
||||||
[w->window makeKeyAndOrderFront:w->window];
|
[w->window makeKeyAndOrderFront:w->window];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void windowCommitHide(uiControl *c)
|
static void uiWindowHide(uiControl *c)
|
||||||
{
|
{
|
||||||
uiWindow *w = (uiWindow *) c;
|
uiWindow *w = (uiWindow *) c;
|
||||||
|
|
||||||
[w->window orderOut:w->window];
|
[w->window orderOut:w->window];
|
||||||
}
|
}
|
||||||
|
|
||||||
static void windowContainerUpdateState(uiControl *c)
|
uiDarwinControlDefaultEnabled(uiWindow, window)
|
||||||
|
uiDarwinControlDefaultEnable(uiWindow, window)
|
||||||
|
uiDarwinControlDefaultDisable(uiWindow, window)
|
||||||
|
|
||||||
|
static void uiWindowSyncEnableState(uiControl *c, int enabled)
|
||||||
{
|
{
|
||||||
uiWindow *w = uiWindow(c);
|
uiWindow *w = uiWindow(c);
|
||||||
|
|
||||||
if (w->child != NULL)
|
if (w->child != NULL)
|
||||||
controlUpdateState(w->child);
|
uiControlSyncUpdateState(w->child, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void uiWindowSetSuperview(uiDarwinControl *c, NSView *superview)
|
||||||
|
{
|
||||||
|
// TODO
|
||||||
}
|
}
|
||||||
|
|
||||||
static void windowRelayout(uiDarwinControl *c)
|
static void windowRelayout(uiDarwinControl *c)
|
||||||
|
@ -165,8 +185,8 @@ void uiWindowSetChild(uiWindow *w, uiControl *child)
|
||||||
uiControlSetParent(w->child, uiControl(w));
|
uiControlSetParent(w->child, uiControl(w));
|
||||||
childView = (NSView *) uiControlHandle(w->child);
|
childView = (NSView *) uiControlHandle(w->child);
|
||||||
[[w->window contentView] addSubview:childView];
|
[[w->window contentView] addSubview:childView];
|
||||||
uiDarwinControlTriggerRelayout(uiDarwinControl(w));
|
|
||||||
}
|
}
|
||||||
|
windowRelayout(w);
|
||||||
}
|
}
|
||||||
|
|
||||||
int uiWindowMargined(uiWindow *w)
|
int uiWindowMargined(uiWindow *w)
|
||||||
|
@ -177,8 +197,7 @@ int uiWindowMargined(uiWindow *w)
|
||||||
void uiWindowSetMargined(uiWindow *w, int margined)
|
void uiWindowSetMargined(uiWindow *w, int margined)
|
||||||
{
|
{
|
||||||
w->margined = margined;
|
w->margined = margined;
|
||||||
if (w->child != NULL)
|
windowRelayout(w);
|
||||||
uiDarwinControlTriggerRelayout(uiDarwinControl(w));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int defaultOnClosing(uiWindow *w, void *data)
|
static int defaultOnClosing(uiWindow *w, void *data)
|
||||||
|
@ -192,7 +211,7 @@ uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar)
|
||||||
|
|
||||||
finalizeMenus();
|
finalizeMenus();
|
||||||
|
|
||||||
w = (uiWindow *) uiNewControl(uiWindow);
|
uiDarwinNewControl(uiWindow, w);
|
||||||
|
|
||||||
w->window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, (CGFloat) width, (CGFloat) height)
|
w->window = [[NSWindow alloc] initWithContentRect:NSMakeRect(0, 0, (CGFloat) width, (CGFloat) height)
|
||||||
styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
|
styleMask:(NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask)
|
||||||
|
@ -211,12 +230,6 @@ uiWindow *uiNewWindow(const char *title, int width, int height, int hasMenubar)
|
||||||
[windowDelegate registerWindow:w];
|
[windowDelegate registerWindow:w];
|
||||||
uiWindowOnClosing(w, defaultOnClosing, NULL);
|
uiWindowOnClosing(w, defaultOnClosing, NULL);
|
||||||
|
|
||||||
uiDarwinFinishNewControl(w, uiWindow);
|
|
||||||
uiControl(w)->CommitShow = windowCommitShow;
|
|
||||||
uiControl(w)->CommitHide = windowCommitHide;
|
|
||||||
uiControl(w)->ContainerUpdateState = windowContainerUpdateState;
|
|
||||||
uiDarwinControl(w)->Relayout = windowRelayout;
|
|
||||||
|
|
||||||
return w;
|
return w;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue