internal override void SetWindowStyle(IntPtr handle, CreateParams cp) {
Hwnd hwnd = Hwnd.ObjectFromHandle (handle);
SetHwndStyles(hwnd, cp);
if (WindowMapping [hwnd.Handle] != null) {
Carbon.WindowAttributes attributes = Carbon.WindowAttributes.kWindowCompositingAttribute | Carbon.WindowAttributes.kWindowStandardHandlerAttribute;
if ((cp.Style & ((int)WindowStyles.WS_MINIMIZEBOX)) != 0) {
attributes |= Carbon.WindowAttributes.kWindowCollapseBoxAttribute;
}
if ((cp.Style & ((int)WindowStyles.WS_MAXIMIZEBOX)) != 0) {
attributes |= Carbon.WindowAttributes.kWindowResizableAttribute | Carbon.WindowAttributes.kWindowHorizontalZoomAttribute | Carbon.WindowAttributes.kWindowVerticalZoomAttribute;
}
if ((cp.Style & ((int)WindowStyles.WS_SYSMENU)) != 0) {
attributes |= Carbon.WindowAttributes.kWindowCloseBoxAttribute;
}
if ((cp.ExStyle & ((int)WindowExStyles.WS_EX_TOOLWINDOW)) != 0) {
attributes = Carbon.WindowAttributes.kWindowStandardHandlerAttribute | Carbon.WindowAttributes.kWindowCompositingAttribute;
}
attributes |= Carbon.WindowAttributes.kWindowLiveResizeAttribute;
Carbon.WindowAttributes outAttributes = Carbon.WindowAttributes.kWindowNoAttributes;
GetWindowAttributes ((IntPtr)WindowMapping [hwnd.Handle], ref outAttributes);
ChangeWindowAttributes ((IntPtr)WindowMapping [hwnd.Handle], attributes, outAttributes);
}
}