HACKER Q&A
📣 samsquire

How do I program GUIs to be commutative?


I'm working on a personal project to make GUIs commutative.

https://github.com/samsquire/additive-guis

I am struggling to add the commutative property to a layout. I am inspired by N3 syntax, to make GUIs renderable in any order according to rules.

How should I go about this problem?

I want to be able to specify where things are on the screen with rules. Such as the following:

todoField above todosList

todosList above todoFilters

submitTodo rightOf todoField


  👤 photawe Accepted Answer ✓
It's interesting that your idea already has traction.

To me, this seems overly complicated. And what I mean by that, is that the user needs to hold the whole concept in his mind. And while this works wonders for very simple scenarios, as things get more complex, everything will end up being more complex and soon the user won't know which is what.

I would suggest you employ a grid concept, where you have columns and rows, and bind fields to those.

If you're familiar (or want to get familiar) with .Net's xaml Grid control, it handles pretty much every situation you can think of.


👤 thedevindevops
I would agree with photawe, the closest thing to what you seem to be describing would be nested grid layouts