This PR introduces an "Add built-in palette" button to the palette customizer which will let you, well, do that. I also fixed #52 while I was at it - now if you try to add a palette with a name that already exists, it will be called "palette 2", or "palette 3", and so on.
On the dev side, I also introduced an abstraction for easily getting a c++ string from an operation that normally requires a lengthy buffer allocation ceremony, since this shit is EVERYWHERE in Win32. This should make interacting with windows a lot nicer and safer.
Closes #51 and #52.
This PR introduces an "Add built-in palette" button to the palette customizer which will let you, well, do that. I also fixed #52 while I was at it - now if you try to add a palette with a name that already exists, it will be called "palette 2", or "palette 3", and so on.
On the dev side, I also introduced an abstraction for easily getting a c++ string from an operation that normally requires a lengthy buffer allocation ceremony, since this shit is EVERYWHERE in Win32. This should make interacting with windows a lot nicer and safer.