[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [sc-dev] [win32] discard SCSpawn?



hey julian, weak minds think alike!
the new version of the preset library (called Conductor)
has a GUIEvent class that is similar.  The basic idea
is that you get default sizing and an extensible set of
composite views.  While there is only one guievent at the moment,
there could be many for different styles.

The GUIEvent chosen (like model-t's there is only one
at the moment) acts as the parent dictionary of the
Conductor.  (Both are implemented as events, but that is
just for the syntactic sugar.)

Conductor gets rid of a lot of the cruft in the Preset library
and tries to be much more transparent and reconfigurable.
You can take a look at it on the wesleyan build.
The classes of interest are in SCCLassLibrary/Preset/Conductor/.
I have been using it with my class for testing purposes.
I will post a version on the SWIKI with an rfc later this week.

RJK
>>On 12/12/05, Scott Wilson <sdwilson@xxxxxxxxxxxx> wrote:
>>>  Correct me if I'm wrong, but don't both SCUM and SwingOSC already run
>>>  on all 3 platforms? GUI solutions are multiplying like rabbits.
>>>  Wouldn't it be best at this point to work on coming up with a common
>>>  class interface for GUIs regardless of what's under the hood?
>>
>>Quite agree. I would love for the GUI code in my library to work on
>>Linux and Windows, but I'm not going to spawn new versions every time
>>somebody gets a nifty idea for a new graphics platform. I'm
>>disorganized enough maintaining the one version as it is!
>>
>>My vote is for SwingOSC (with loopback for security) since it would
>>(in theory) involve the fewest changes. I could keep my lib in a Mac
>>version and use a simple sed or awk script to manufacture a SwingOSC
>>version.
>
>
> I once had started to make an event type \gui that tries to be an
> abstract GUI description which then can be filled in. It is just a
> sketch though, maybe it helps anyway.
>
>
>
>
>
>
> (
> x = (
> 		bounds: { Rect(~left, ~top, ~x, ~y) },
> 		windowbounds: { Rect(10, 250, 305, 200) },
> 		gap: Point(4,4),
> 		margin: Point(4,4),
> 		left:10, top:10, x: 200, y: 30,
> 		name: "Untitled",
> 		resizable: true,
> 		border: true,
> 		background: Color.white,
> 		target: nil,
> 		states: [["state1", Color.black, Color.clear],
> ["state2", Color.blue, Color.clear]],
> 		types: (
> 			window: #{
> 				~window = SCWindow(~name,
> ~windowbounds.value, ~resizable, ~border).front;
> 				~window.view.background = ~background;
> 				 ~target = ~window.view;
> 			},
> 			composite: #{ SCCompositeView(~target,
> ~bounds.value).background_(~background) },
> 			makeComposite: #{ |e| ~target = e[\composite].value },
> 			makeDecorator: #{ |e|
> 				~window.view.decorator = ~decorator =
> e[\decorator].value.postln;
> 			},
> 			slider: #{ SCSlider(~target,
> ~bounds.value).background_(~background) },
> 			button: #{ SCButton(~target,
> ~bounds.value).states_(~states).background_(~background) },
> 			decorator: #{ FlowLayout(~window.view.bounds,
> ~margin, ~gap) }
> 		)
>
> );
>
> );
>
>
> (
> y = ().parent_(x);
> y.use {
> 	~types[\window].value;
> 	~types.makeDecorator;
> 	~types[\slider].value;
> 	~background = Color.rand;
> //	~types.makeComposite;
> 	~types[\button].value;
> 	~types[\slider].value;
> 	~types[\button].value;
> 	~types[\slider].value;
> }
> )
> --
>
>
>
>
>
> .
> _______________________________________________
> sc-dev mailing list
> sc-dev@xxxxxxxxxxxxxxx
> http://www.create.ucsb.edu/mailman/listinfo/sc-dev
>