summaryrefslogtreecommitdiffstats
path: root/equipment.c
AgeCommit message (Collapse)Author
2011-09-21Tracking changes to tanks is trivialGravatar Dirk Hohndel
That's the one I should have started with. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-20Separate out the UI from the program logicGravatar Dirk Hohndel
The following are UI toolkit specific: gtk-gui.c - overall layout, main window of the UI divelist.c - list of dives subsurface maintains equipment.c - equipment / tank information for each dive info.c - detailed dive info print.c - printing The rest is independent of the UI: main.c i - program frame dive.c i - creates and maintaines the internal dive list structure libdivecomputer.c uemis.c parse-xml.c save-xml.c - interface with dive computers and the XML files profile.c - creates the data for the profile and draws it using cairo This commit should contain NO functional changes, just moving code around and a couple of minor abstractions. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-20Make 'struct DiveList' entirely internal to divelist.cGravatar Linus Torvalds
Passing it around is just annoying, and we only ever have one. Let's not burden all the users with the silly thing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Add "Apply"/"Cancel" buttons to dive equipment pageGravatar Linus Torvalds
It's too damn easy to make mistakes and not even notice them (odd gtk widget selection and keyboard input), or just start editing a cylinder thing and realize it was wrong. So instead of always saving the equipment information implicitly, add explicit "Apply" and "Cancel" buttons that save the information (or re-load it from the dive data structure) So now you need to press an extra button for your changes to *really* take effect. It can be a bit annoying, but it's better than the silent accidental equipment change that could happen before. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13Separate the notion of creating the cylinder widgets from showing themGravatar Linus Torvalds
Now we always create the MAX_CYLINDER sets of cylinder widgets. But we don't actually pack them into the frame - that's a separate phase. Right now we still do the stupid "always just pack two cylinders" thing, but the idea is that we can pack just as many as the dive needs on a per-dive basis. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13Make multiple cylinders actually workGravatar Linus Torvalds
This just always shows two cylinders, which is obviously bogus, but it's a good test-case for the multi-cylinder case. I need to figure out how to dynamically show the right number of cylinders, but that also involves the notion of adding a cylinder in order to fill out information that didn't use to exist. That's lower priority - now the infrastructure seems to be there. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13More work on abstracting the gtk cylinder widget thingGravatar Linus Torvalds
Ok, now we have an array of them, and most of the time we pass the right pointer back and forth. There's still a couple of places that hardcode "gtk_cylinder[0]" as the data, but by now they are mostly things that should iterate over all the cylinders. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13Start abstracting out the cylinder equipment widgetsGravatar Linus Torvalds
Create a "struct cylinder_widget" so that when we handle multiple cylinders, we can match them up with the actual cylinder data; Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13Always pack the widgets into boxes, not framesGravatar Linus Torvalds
Let's try to be consistent about this. Make the parent of each widget be a box. Maybe the frames come with boxes, but since I have no clue about gtk, I'm going to just always create them by hand. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-13Add a checkbox for nitrox settingsGravatar Linus Torvalds
Grey out the nitrox value unless the user explicitly checks the checkbox. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-11Pack all the equipment widgets into boxesGravatar Linus Torvalds
We really do want to "pack" them, rather than use up the whole size. I think. I may end up playing around more with this. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Add more static cylinder types - and pick them up from the dive logGravatar Linus Torvalds
This adds a few more predefined cylinder types to the static list, but perhaps more importantly, if we try to show a cylinder description that we haven't seen before, we automatically add that description to the list as well. This way, if people have their own cylinder types, our cylinder management will automatically figure them out and make it easy to enter them. NOTE! It might be best to add the new cylinder description at dive log load time, rather than at 'show' time. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Add new cylinder models to the cylinder model storeGravatar Linus Torvalds
We also need to actually fill the model store with the cylinder models we have in our dive lists to begin with. This makes it all *trivial* to add a new cylinder model: just use a new description, fill in the size and working pressure, and you're done. The type automatically gets filled in, unless that description already existed (in which case we leave it alone). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Let people manage their cylinders in cuft and psiGravatar Linus Torvalds
If the output units are set to cuft and psi, then we should show the cylinder size and pressure properly. NOTE! In the absense of pressure data, we *always* show the cylinder volume in liter. There's no way to convert it to imperial units, since the imperial units are not in physical size, but in air volume normalized to surface pressure.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-10Actually connect the cylinder configuration with the diveGravatar Linus Torvalds
It seems to be sufficiently useful to be worth updating the dive information now. This still doesn't handle multiple cylinders in any way. I need to think about the interface for that. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Getting closer to a usable cylinder management interfaceGravatar Linus Torvalds
Not quite there yet, though. And never mind multiple cylinders.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09First (broken) try at actually tracking cylinder typesGravatar Linus Torvalds
This doesn't actually change the cylinder type info in the dive, because it's too broken for that. Instead it prints out what it would change things to. The gtk2 notion of text input focus is *really* odd. Why is the cylinder type sometimes selected, and sometimes not? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-09Rename 'cylinder.c' as 'equipment.c'Gravatar Linus Torvalds
Make it about general equipment management, and start hooking up functions to show new equipment information when changing dives (and to flush changes to equipment information for the previously active dive). Nothing is hooked up yet, and it's now showing just one (really big) cylinder choice, so this is all broken. But it should make it possible to at least get somewhere some day. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>