mirror of
https://github.com/holub/mame
synced 2025-07-01 16:19:38 +03:00
Made internal debugger window editors appear over the window to which it is related (makes it a little bit clearer).
This commit is contained in:
parent
9827546e83
commit
bbf703252e
@ -156,11 +156,12 @@ class DView_edit
|
|||||||
DISABLE_COPYING(DView_edit);
|
DISABLE_COPYING(DView_edit);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DView_edit(): active(0), container(nullptr) { }
|
DView_edit(DView* owner): active(0), container(nullptr), owner(owner) { }
|
||||||
~DView_edit() { }
|
~DView_edit() { }
|
||||||
int active;
|
int active;
|
||||||
render_container * container;
|
render_container * container;
|
||||||
std::string str;
|
std::string str;
|
||||||
|
DView* owner;
|
||||||
};
|
};
|
||||||
|
|
||||||
/***************************************************************************
|
/***************************************************************************
|
||||||
@ -180,7 +181,8 @@ public:
|
|||||||
type(0),
|
type(0),
|
||||||
state(0),
|
state(0),
|
||||||
ofs_x(0),
|
ofs_x(0),
|
||||||
ofs_y(0)
|
ofs_y(0),
|
||||||
|
editor(this)
|
||||||
{
|
{
|
||||||
this->target = target;
|
this->target = target;
|
||||||
//dv->container = render_target_get_component_container(target, name, &pos);
|
//dv->container = render_target_get_component_container(target, name, &pos);
|
||||||
@ -914,7 +916,7 @@ void debug_internal::init_debugger(running_machine &machine)
|
|||||||
debug_font = m_machine->render().font_alloc(font_name);
|
debug_font = m_machine->render().font_alloc(font_name);
|
||||||
|
|
||||||
debug_font_width = 0;
|
debug_font_width = 0;
|
||||||
if(font_size == 0)
|
if(font_size < 8)
|
||||||
debug_font_height = 16; // default
|
debug_font_height = 16; // default
|
||||||
else
|
else
|
||||||
debug_font_height = font_size;
|
debug_font_height = font_size;
|
||||||
@ -1226,34 +1228,27 @@ static void on_memory_region(DView *dv, const ui_menu_event *event)
|
|||||||
|
|
||||||
static void render_editor(DView_edit *editor)
|
static void render_editor(DView_edit *editor)
|
||||||
{
|
{
|
||||||
float width, maxwidth;
|
DView* dv = editor->owner;
|
||||||
float x1, y1, x2, y2;
|
rectangle r;
|
||||||
|
const char* str = editor->str.c_str();
|
||||||
|
int str_x = 2 * BORDER_XTHICKNESS;
|
||||||
|
// int editor_width;
|
||||||
|
|
||||||
editor->container->empty();
|
dview_get_rect(dv,RECT_DVIEW_HSB,r);
|
||||||
/* get the size of the text */
|
|
||||||
editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str.c_str(), 0.0f, 0.0f, 1.0f, JUSTIFY_CENTER, WRAP_TRUNCATE,
|
|
||||||
DRAW_NONE, ARGB_WHITE, ARGB_BLACK, &width, nullptr);
|
|
||||||
width += 2 * UI_BOX_LR_BORDER;
|
|
||||||
maxwidth = MAX(width, 0.5f);
|
|
||||||
|
|
||||||
/* compute our bounds */
|
// editor_width = debug_font->string_width(debug_font_height, debug_font_aspect, editor->str.c_str());
|
||||||
x1 = 0.5f - 0.5f * maxwidth;
|
|
||||||
x2 = x1 + maxwidth;
|
|
||||||
y1 = 0.25f;
|
|
||||||
y2 = 0.45f - UI_BOX_TB_BORDER;
|
|
||||||
|
|
||||||
/* draw a box */
|
dview_draw_box(dv,RECT_DVIEW_HSB,0,0,r.width(),r.height(),rgb_t(0xff,0xff,0xff,0xff));
|
||||||
editor->container->manager().machine().ui().draw_outlined_box(editor->container, x1, y1, x2, y2, UI_BACKGROUND_COLOR);
|
dview_draw_line(dv,RECT_DVIEW_HSB,0,0,r.width(),0,rgb_t(0xff,0xc0,0xc0,0xc0));
|
||||||
|
dview_draw_line(dv,RECT_DVIEW_HSB,r.width(),0,r.width(),r.height(),rgb_t(0xff,0x60,0x60,0x60));
|
||||||
/* take off the borders */
|
dview_draw_line(dv,RECT_DVIEW_HSB,r.width(),r.height(),0,r.height(),rgb_t(0xff,0x60,0x60,0x60));
|
||||||
x1 += UI_BOX_LR_BORDER;
|
dview_draw_line(dv,RECT_DVIEW_HSB,0,r.height(),0,0,rgb_t(0xff,0xc0,0xc0,0xc0));
|
||||||
x2 -= UI_BOX_LR_BORDER;
|
|
||||||
y1 += UI_BOX_TB_BORDER;
|
|
||||||
|
|
||||||
/* draw the text within it */
|
|
||||||
editor->container->manager().machine().ui().draw_text_full(editor->container, editor->str.c_str(), x1, y1, x2 - x1, JUSTIFY_CENTER, WRAP_TRUNCATE,
|
|
||||||
DRAW_NORMAL, UI_TEXT_COLOR, UI_TEXT_BG_COLOR, nullptr, nullptr);
|
|
||||||
|
|
||||||
|
for(int x=0;x<strlen(str);x++)
|
||||||
|
{
|
||||||
|
dview_draw_char(dv,RECT_DVIEW_HSB,str_x,BORDER_YTHICKNESS,r.height(),rgb_t(0xff,0x00,0x00,0x00),(UINT16)str[x]);
|
||||||
|
str_x += debug_font->char_width(r.height(),debug_font_aspect,(UINT16)str[x]) + 2*BORDER_XTHICKNESS;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-------------------------------------------------
|
/*-------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user