–> Download script with Quartz composer
AppleScript名:QuartzComoserでグラフ表示てすと v5(Window Controllerを追加) |
— Created 2015-11-03 by Takaaki Naganoya — Modified 2017-10-18 by Takaaki Naganoya — 2017 Piyomaru Software use AppleScript version "2.4" use scripting additions use framework "Foundation" use framework "Quartz" use framework "AppKit" use framework "Carbon" — AEInteractWithUser() is in Carbon property NSMutableDictionary : a reference to current application’s NSMutableDictionary property NSWindowCloseButton : a reference to current application’s NSWindowCloseButton property NSScreen : a reference to current application’s NSScreen property NSPredicate : a reference to current application’s NSPredicate property NSDictionary : a reference to current application’s NSDictionary property NSBackingStoreBuffered : a reference to current application’s NSBackingStoreBuffered property NSMutableArray : a reference to current application’s NSMutableArray property NSTitledWindowMask : a reference to current application’s NSTitledWindowMask property NSString : a reference to current application’s NSString property NSWindow : a reference to current application’s NSWindow property NSNumber : a reference to current application’s NSNumber property NSNormalWindowLevel : a reference to current application’s NSNormalWindowLevel property QCView : a reference to current application’s QCView property NSColor : a reference to current application’s NSColor property NSWindowController : a reference to current application’s NSWindowController if current application’s AEInteractWithUser(-1, missing value, missing value) is not equal to 0 then return set chartData to NSMutableArray’s new() –chartData’s addObject:(NSMutableDictionary’s dictionaryWithObjectsAndKeys_("練馬区", "label", 3, "value", missing value))–older way (Obsolete in 10.13) chartData’s addObject:(my recWithLabels:{"label", "value"} andValues:{"練馬区", 3}) chartData’s addObject:(my recWithLabels:{"label", "value"} andValues:{"青梅市", 1}) chartData’s addObject:(my recWithLabels:{"label", "value"} andValues:{"中野区", 2}) –上記データの最大値を求める set aMaxRec to chartData’s filteredArrayUsingPredicate:(NSPredicate’s predicateWithFormat_("SELF.value == %@.@max.value", chartData)) set aMax to value of aMaxRec set aMaxVal to (first item of aMax) as integer –Scalingの最大値を求める if aMaxVal ≥ 10 then set aScaleMax to (10 div aMaxVal) set aScaleMin to aScaleMax div 10 else set aScaleMax to (10 / aMaxVal) set aScaleMin to 1 end if try set aPath to path to resource "Chart.qtz" on error return end try set qtPath to NSString’s stringWithString:(POSIX path of aPath) set aView to QCView’s alloc()’s init() set qtRes to (aView’s loadCompositionFromFile:qtPath) aView’s setValue:chartData forInputKey:"Data" aView’s setValue:(NSNumber’s numberWithFloat:(0.5)) forInputKey:"Scale" aView’s setValue:(NSNumber’s numberWithFloat:(0.2)) forInputKey:"Spacing" aView’s setAutostartsRendering:true set maXFrameRate to aView’s maxRenderingFrameRate() ( aView’s setValue:(NSNumber’s numberWithFloat:aScaleMax / 10) forInputKey:"Scale") set aWin to (my makeWinWithView(aView, 800, 600, "AppleScript Composition Test")) set wController to NSWindowController’s alloc()wController’s initWithWindow:aWin aWin’s makeFirstResponder:aView wController’s showWindow:me aWin’s makeKeyAndOrderFront:me delay 5 my closeWin:aWin aView’s stopRendering() –レンダリング停止 –make Window for Display on makeWinWithView(aView, aWinWidth, aWinHeight, aTitle) set aScreen to NSScreen’s mainScreen() set aFrame to {{0, 0}, {aWinWidth, aWinHeight}} set aBacking to NSTitledWindowMask set aDefer to NSBackingStoreBuffered — Window set aWin to NSWindow’s alloc() (aWin’s initWithContentRect:aFrame styleMask:aBacking backing:aDefer defer:false screen:aScreen) aWin’s setBackgroundColor:(NSColor’s whiteColor()) aWin’s setTitle:aTitle aWin’s setDelegate:me aWin’s setDisplaysWhenScreenProfileChanges:true aWin’s setHasShadow:true aWin’s setIgnoresMouseEvents:false aWin’s setLevel:(NSNormalWindowLevel) aWin’s setOpaque:false aWin’s setReleasedWhenClosed:true aWin’s |center|() aWin’s makeKeyAndOrderFront:(me) –aWin’s movableByWindowBackground:true — Set Custom View aWin’s setContentView:aView –Set Close Button set closeButton to NSWindow’s standardWindowButton:(NSWindowCloseButton) forStyleMask:(NSTitledWindowMask) return aWin end makeWinWithView –close win on closeWin:aWindow repeat with n from 10 to 1 by -1 (aWindow’s setAlphaValue:n / 10) delay 0.02 end repeat aWindow’s |close|() end closeWin: on recWithLabels:theKeys andValues:theValues return (NSDictionary’s dictionaryWithObjects:theValues forKeys:theKeys) as record end recWithLabels:andValues: |
More from my site
(Visited 44 times, 1 visits today)