<% import random, re, string sys.stdout=req def rc(): return "#%06x" % random.randint(0,16777216) things = {'control' : { 'kbd' : {'desc' : 'resizable, velocity sensitive keyboard. right click adds a note to the chord, middle click resets..'}, 'grid' : {'desc' : 'x-y control surface'}, 'ngrid' : {'desc' : 'multi-parameter x-y control surface'}, 'filter' : {'desc' : """since im no mathemetician, biquad was very useless. straight RBJ rip here, middle click on the squares to change filter type, right click drag to adjust Q.."""}, 'nob' : {'desc' : """ this was the first knob but it requires Tkzinc"""}, 'knob' : {'desc' : """knob..multiple levels of precision: left button 1.0, middle 10.0, right 0.1"""} }, 'edit' : { 'mat' : {'desc' : 'general purpose editing surface'}, 'lg' : {'desc' : 'multi-set vector editor'}, 'tile' : {'desc' : 'drum/grid/list editor'} }, 'analyze' : { 'sp' : {'desc' : 'rgb-pixmap'}, 'spectrum' : {'desc' : 'dual-band spectrum graph'}, 'img' : {'desc' : """ create an empty img and you will get the broken-image icon, which sets up dnd - just drop some images in

they output a symbol which is filename sans extension when clicked.. """} }, 'container' : { 'dd' : {'desc' : 'drag\'n\'drop'}, 'tree' : {'desc': 'heirarchical data management'}, 'q' : {'desc' : 'queue'}, 'dm' : {'desc' : 'dropdownmenu'} }, '?' : { 'README' :{'desc' : """ these are my pd gui objects, designed to be patchable on the fly for modular, rearrangable interfaces for composition, analysis, whatever you need.. suggested input is a 3 button mouse or a touch-screen (although i haven't tested on one, so if you have an extra, let me know..) - to use them in a patch, if the widget is 'thingy', create an object [widget thingy thingy1]. the id doesnt have to be unique, but its not a bad idea.. all the attributes are settable via normal messages... some might like an inspector, this wouldnt be too hard to add..also id love if X windows and the toolkits above supported multiple cursors with independent focii for larger or multipoint-touch applications, but such is not the case currently...so enjoy the 2d single-cursor goodness """}, 'INSTALL' : {'desc' : """ cd /usr/local/lib/pd && cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/pure-data co extensions/gui/ix
echo -path /usr/local/lib/pd/extensions/gui/ix >> ~/.pdrc
install any missing DEPS """}, 'DEPS' : {'desc' : """ tcl >=8.5:
cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/tcl co tcl && cd tcl/unix&& ./configure && make install & cd ../..
cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/tktoolkit co tk && cd tk/unix&& ./configure --enable-xft && make install & cd ../..

widgets are currently hosted by the [widget] external
cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/pure-data co externals/miXed && cd externals/miXed && make && cp bin/* /usr/local/lib/pd/extra
-or- checkout all of externals and in cd externals/build && scons install

a cornucopia of Tk libraries are utilised
for ext in blt snack tkdnd tkimg tkpath tktable tktreectrl ; do cvs -d :pserver:anonymous@cvs.sf.net:/cvsroot/$ext co $ext; cd $ext && ./configure && make install && cd ..; done
last i checked tkpath was actually a module in tclbitprint
and thats all.. """} }} script = [] for cat in things.iterkeys(): script.append("""document.getElementById('%s_items').style.display='none'""" % cat) script.append("""document.getElementById('cat_%s').style.backgroundColor='gray'""" % cat) print "" script = [] for cat in things.iterkeys(): for item in things[cat].iterkeys(): script.append("""document.getElementById('item_info_%s').style.display='none'""" % item) script.append("""document.getElementById('item_%s').style.backgroundColor='gray'""" % item) print "" def getprops(item): props = "" for line in re.findall(r"#\.[^@]*\n",open("/usr/local/lib/pd/extensions/gui/ix/" + item + ".wid").read()): props += re.sub("#\.","",line) return props %> topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>
<% for cat in things.iterkeys(): print """ %(cat)s  """ % {'fg' : rc(), 'bg' : rc(), 'cat' : cat} print """
""" % {'bg' : rc()} for cat in things.iterkeys(): print """" print "
" for cat in things.iterkeys(): for item in things[cat].iterkeys(): print """""" % {'item' : item, 'props' : getprops(item), 'content' : things[cat][item]['desc']} %>