// PatchLauncher remix
~directory = "/Users/df/scwork/patches/functions/" ; // your function dir
Routine({
var patchArray, a, orig;
var window, fileNames, pathNames;
var top = 20, left = 25, rows = 0;
fileNames = Cocoa.getPathsInDirectory(~directory).select({| file | file.contains(".rtf") });
pathNames = Array.fill(fileNames.size, {arg i; ~directory++ Cocoa.getPathsInDirectory(~directory).select({| file | file.contains(".rtf") }).at(i) });
a = Array.fill(fileNames.size, {arg i; i});
orig = thisFunction;
patchArray = Array.fill(
fileNames.size
, { arg i; [
fileNames.at(i).asString
, pathNames.at(i)
]
}
);
window = SCWindow("Master"
, Rect(0, 695, SCWindow.screenBounds.width, 130)
, false
, false
).front;
window.view.background_(Color.rand);
SCButton(window, Rect(0, 112, 15, 15))
.states_([["X"]])
.action_({window.close});
SCButton(window, Rect(17, 112, 100, 15))
.states_([["DiR=>DeFaulT"]])
.action_({window.close; ~directory = nil; orig.value; });
SCButton(window, Rect(119, 112, 100, 15))
.states_([["GeT=>NeWDiR"]])
.action_({ CocoaDialog.getPaths({ arg paths;
paths.do({ arg p;
~directory = p.dirname++ "/";
~directory.postln;
})
},{
"cancelled".postln;
});
});
SCButton(window, Rect(221, 112, 100, 15))
.states_([["LoaD=>NeWDiR"]])
.action_({window.close; orig.value});
patchArray.do({
arg item, i;
b = SCButton(window
, Rect(
i*(SCWindow.screenBounds.width/fileNames.size)
, top
, SCWindow.screenBounds.width/fileNames.size
, 90))
.states_([[ item.at(0).basename, Color.black, Color.rand ]])
.action_({ a[i] = item.at(1).loadPath });
});
patchArray.do({
arg item, i;
SCButton(window
, Rect(
i*(SCWindow.screenBounds.width/fileNames.size)+(SCWindow.screenBounds.width/fileNames.size/4)+2
, 4
, SCWindow.screenBounds.width/fileNames.size/4
, 15))
.states_([[ "||", Color.black, Color.rand ]])
.action_({ a[i].free });
});
patchArray.do({
arg item, i;
SCButton(window
, Rect(
i*(SCWindow.screenBounds.width/fileNames.size)
, 4
, SCWindow.screenBounds.width/fileNames.size/4
, 15))
.states_([[ "/", Color.black, Color.rand ]])
.action_({ Document.open(item.at(1)) });
});
}).run
***************
/*authors so far: tom tlalim /f0 (typo fix 9lines from bottom) */ |