(svn r14046) -Codechange: make the size of querystring "widgets" more configurable.

This commit is contained in:
rubidium
2008-08-11 22:08:56 +00:00
parent 3b4c3a3df6
commit 6995365535
6 changed files with 70 additions and 43 deletions

View File

@@ -8,6 +8,9 @@
#include "textbuf_gui.h"
#include "window_gui.h"
/**
* Data stored about a string that can be modified in the GUI
*/
struct QueryString {
StringID caption;
Textbuf text;
@@ -15,17 +18,39 @@ struct QueryString {
CharSetFilter afilter;
bool handled;
/**
* Make sure everything gets initialized properly.
*/
QueryString() : orig(NULL)
{
}
/**
* Make sure everything gets freed.
*/
~QueryString()
{
free((void*)this->orig);
}
void DrawEditBox(Window *w, int wid);
void HandleEditBox(Window *w, int wid);
int HandleEditBoxKey(Window *w, int wid, uint16 key, uint16 keycode, Window::EventState &state);
};
struct QueryStringBaseWindow : public Window, public QueryString {
char edit_str_buf[64];
char orig_str_buf[64];
const size_t edit_str_size;
char *edit_str_buf;
char *orig_str_buf;
QueryStringBaseWindow(const WindowDesc *desc, WindowNumber window_number = 0) : Window(desc, window_number)
QueryStringBaseWindow(size_t size, const WindowDesc *desc, WindowNumber window_number = 0) : Window(desc, window_number), edit_str_size(size)
{
this->edit_str_buf = CallocT<char>(size);
}
~QueryStringBaseWindow()
{
free(this->edit_str_buf);
}
void DrawEditBox(int wid);