Sunday, 19. April 2009, 19:07:29
I'm at the point where I want to build networks and component. I have everything figured out how I want it work data-wise and how everything is stored internally. All that is done. Now, I just need to build the damn thing. Only thing is that I'm stuck. I have no idea how this would work visually.
Sure, connecting components and selecting EXISTING components to place in your network is easy. I'm talking about creating a new component interface. How do I add new inputs? How do I ask the user to select the type and enter the instance name? Isn't that a bit tedious?
I have half a mind to enable a command line where you can tell the GUI what to do. I also think having text based definitions for interfaces wouldn't be a bad idea.
type AddInt32 : component
{
inputs:
Int32 a,b;
outputs:
Int32 out;
}
The main objective here is to specify the inputs, outputs and interface name. That's it. That's all a component interface is.
Perhaps I can have a button that creates a new, blank, interface would work. It'll display it blank. And then you can click on an icon on the component itself to display the textual definition where you can update it. This would work well for other types as well.
I could also have each component in the component list treeview have a popup where you can insert that component as a new input or output, or to copy its type in the clipboard.
Any ideas? I've been staring at this for two days. I have no clue what would work best. I don't think this kind of thing really works that great in a visual mode. This is one area where everything is telling me stick with what has worked in the past, text.
If I don't come up with anything better, that's what I'm going to implement. Unfortunately, this means my implementing a text editor. Are there any open source editors that aren't GPL (and are similar to BSD license)? I'll take a look and see if I can find one and port it.
Luckily, connections are simple. Simply click and drag. I can't wait to get to that part. But by then, I'll be working on the runtime engine.
Yeah, I'm thinking I'm gonna implement a command line and a textual mode for different aspects. The text editor could also be used to implement scripts. For those that want traditional dataflow (w/ scripts), what scipting language should I use to start off? I need something rather simple where I can add bindings to existing types and variables. I'm thinking I'll build my own scripting language that looks similar to C. I already have my own parser generator. May as well use it. And I can add dataflow operators to the language. Other people can implement their own scripting language later on.