summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/debugger/win/editwininfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/debugger/win/editwininfo.h')
-rw-r--r--src/osd/modules/debugger/win/editwininfo.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/osd/modules/debugger/win/editwininfo.h b/src/osd/modules/debugger/win/editwininfo.h
new file mode 100644
index 00000000000..b89a710781a
--- /dev/null
+++ b/src/osd/modules/debugger/win/editwininfo.h
@@ -0,0 +1,56 @@
+// license:BSD-3-Clause
+// copyright-holders:Aaron Giles, Vas Crabb
+//============================================================
+//
+// editwininfo.h - Win32 debug window handling
+//
+//============================================================
+
+#ifndef __DEBUG_WIN_EDIT_WIN_INFO_H__
+#define __DEBUG_WIN_EDIT_WIN_INFO_H__
+
+#include "debugwin.h"
+
+#include "debugwininfo.h"
+
+
+class editwin_info : public debugwin_info
+{
+public:
+ editwin_info(debugger_windows_interface &debugger, bool is_main_console, LPCSTR title, WNDPROC handler);
+ virtual ~editwin_info();
+
+ virtual bool restore_field(HWND wnd);
+
+ virtual bool set_default_focus();
+
+protected:
+ static DWORD const COMBO_BOX_STYLE = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_VSCROLL;
+ static DWORD const COMBO_BOX_STYLE_EX = 0;
+
+ void set_editwnd_bounds(RECT const &bounds);
+ void set_editwnd_text(char const *text);
+ void editwnd_select_all();
+ void set_edit_defstr(char const *string) { m_edit_defstr = string; }
+
+ virtual void draw_contents(HDC dc);
+
+private:
+ virtual void process_string(char const *string) = 0;
+
+ LRESULT edit_proc(UINT message, WPARAM wparam, LPARAM lparam);
+
+ static LRESULT CALLBACK static_edit_proc(HWND wnd, UINT message, WPARAM wparam, LPARAM lparam);
+
+ static int const MAX_EDIT_STRING = 256;
+ static int const HISTORY_LENGTH = 20;
+
+ HWND m_editwnd;
+ astring m_edit_defstr;
+ WNDPROC m_original_editproc;
+ TCHAR m_history[HISTORY_LENGTH][MAX_EDIT_STRING];
+ int m_history_count;
+ int m_last_history;
+};
+
+#endif