NebulousLabs/Sia — pull request #232 by DavidVorick (2014-09-16 15:31:45+00:00)
Title: Box

This is rather incomplete code.

The general approach that I was taking (though I don't think I held to that at all at this point - was more just trying to leave room to switch to it later) was to pass each portion of the function a box (top left corner, bottom right corner) and say "do stuff in this box"

So the main bar get's the whole program, it slices off the 16 left columns for itself, then if the wallet stuff is active it passes what remains onto the wallet drawer. If the settings stuff is active, it passes what remains onto that. Something to that effect.

You figure out what to draw by looking at the context struct, which right now is just a global state. I think that it's the right concept, but the wrong implementation again. Should probably do something that sections off the variables better:

```
globalContext{
walletModeContext{
walletContext{
}
}

settingsModeContext{
}
}
```

something like that. Then you just set the variables, and you only unset them if you want to clear something. Then, when the user switches between modes, the program remembers what they were doing because nobody cleared the context struct.

====

In terms of functionality, there is absolutely none. I started working on wallets, but I realized that you really need to work on settings first. Settings is where you should tell the client how to find the server (hostname, etc.), and set up any directories for stuff you download.

Then you should go to 'participants', which will create participants on the network. You should implement 'join' and 'create' (just RPC calls to the server) so you can set up a local network.

After you have a network with wallets on it (or rather, a server that's listening on an actual network), you can implement the wallet stuff, like loading a list of wallets.

There are functions in the server that should already do everything you need through RPC. You shouldn't have to implement anything more on the server side, so ask before you write redundant code.