87 lines
3.3 KiB
Plaintext
87 lines
3.3 KiB
Plaintext
_window = 1
|
|
begin enum 1
|
|
_circularView
|
|
_OvalView
|
|
end enum
|
|
|
|
void local fn BuildWindow
|
|
CGRect r = fn CGRectMake( 0, 0, 400, 400 )
|
|
window _window, @"Rosetta Code Death Star", r, NSWindowStyleMaskTitled + NSWindowStyleMaskClosable + NSWindowStyleMaskMiniaturizable
|
|
WindowSetBackgroundColor( _window, fn ColorBlack )
|
|
|
|
r = fn CGRectMake( 20, 20, 360, 360 )
|
|
subclass view _circularView, r, _window
|
|
|
|
r = fn CGRectMake( 50, 170, 200, 180 )
|
|
subclass view _OvalView,r, _circularView
|
|
end fn
|
|
|
|
local fn OvalView( tag as NSInteger )
|
|
CGRect r = fn ViewBounds( tag )
|
|
ViewSetWantsLayer( tag, YES )
|
|
CFArrayRef cols = @[fn ColorWithRGB(0.125,0.125,0.125,1),fn ColorWithRGB(0.425,0.425,0.4425,1),fn ColorWithRGB(0.725,0.725,0.725,1),fn ColorWithRGB(0.925,0.925,0.925,1),fn ColorWhite,fn ColorWhite ]
|
|
|
|
CALayerRef layer = fn CALayerInit
|
|
ViewSetLayer( tag, layer )
|
|
CALayerSetCornerRadius( layer, r.size.height / 2.0 )
|
|
CALayerSetMasksToBounds( layer, YES )
|
|
CALayerSetBorderWidth( layer, 0.25 )
|
|
CALayerSetBorderColor( layer, fn ColorBlue )
|
|
|
|
CAGradientLayerRef gradLayer = fn CAGradientLayerInit
|
|
CAGradientLayerSetColors( gradLayer, cols )
|
|
CALayerSetCornerRadius( gradLayer, r.size.Height / 2.0 )
|
|
CAGradientLayerSetStartPoint( gradLayer, fn CGPointMake(1,0) )
|
|
CAGradientLayerSetEndPoint( gradLayer, fn CGPointMake(0,1) )
|
|
CALayerSetShadowOffset( gradLayer, fn CGSizeMake( 10, -10 ) )
|
|
CALayerSetShadowRadius( gradLayer, 3.0 )
|
|
CALayerSetShadowOpacity( gradLayer, 0.4 )
|
|
CALayerSetFrame( gradLayer, fn CGRectMake(0,0,200,200) )
|
|
|
|
CALayerAddSublayer( layer, gradLayer )
|
|
end fn
|
|
|
|
local fn CircularView( tag as NSinteger )
|
|
CGRect r = fn ViewBounds( tag )
|
|
ViewSetWantsLayer( tag, YES )
|
|
CFArrayRef cols = @[fn ColorWithRGB(0.125,0.125,0.125,1),fn ColorWithRGB(0.425,0.425,0.4425,1),fn ColorWithRGB(0.725,0.725,0.725,1),fn ColorWithRGB(0.925,0.925,0.925,1),fn ColorWhite,fn ColorWhite ]
|
|
CALayerRef layer = fn CALayerInit
|
|
|
|
ViewSetLayer( tag, layer )
|
|
CALayerSetCornerRadius( layer, r.size.width / 2.0 )
|
|
CALayerSetMasksToBounds( layer, YES )
|
|
CALayerSetBorderWidth( layer, 0.25 )
|
|
CALayerSetBorderColor( layer, fn ColorBlack )
|
|
|
|
CAGradientLayerRef gradLayer = fn CAGradientLayerInit
|
|
CALayerSetCornerRadius( gradLayer, r.size.width / 2.0 )
|
|
CAGradientLayerSetColors( gradLayer, cols )
|
|
CAGradientLayerSetStartPoint( gradLayer, fn CGPointMake( 0,0.2 ) )
|
|
CAGradientLayerSetEndPoint( gradLayer, fn CGPointMake( 1,1 ) )
|
|
CALayerSetShadowOffset( gradLayer, fn CGSizeMake( 10, -10 ) )
|
|
CALayerSetShadowRadius( gradLayer, 3.0 )
|
|
CALayerSetShadowOpacity( gradLayer, 0.4 )
|
|
CALayerSetFrame( gradLayer, fn CGRectMake(0,0,360,360) )
|
|
CALayerAddSublayer( layer, gradLayer )
|
|
end fn
|
|
|
|
|
|
void local fn DoDialog( ev as long, tag as long, wnd as long )
|
|
select ( ev )
|
|
case _viewDrawRect
|
|
select ( tag )
|
|
case _circularView : fn CircularView( tag )
|
|
|
|
case _OvalView : fn OvalView( tag)
|
|
|
|
end select
|
|
case _windowWillClose : end
|
|
end select
|
|
end fn
|
|
|
|
on dialog fn DoDialog
|
|
|
|
fn BuildWindow
|
|
|
|
HandleEvents
|