diff options
author | 2020-09-07 01:40:41 +1000 | |
---|---|---|
committer | 2020-09-07 01:40:41 +1000 | |
commit | 67ec5e5b43738128a696aea19b299ee0ed8a17a0 (patch) | |
tree | 13ace47db8c58d5cd8931e23fce9c01763bbd9fd /src/emu/rendlay.cpp | |
parent | 7fe5f1858d8ec9b687ac3874ecf232ca29365694 (diff) |
Finished adding new mechanism for allowing parts of views to be hidden.
Changed name of element to "collection" and initial visibility attribute
to "visible", and added them to documentation. Also added them to
complay.py.
Fixed issue with collection inside group, and improved initial view
selection behaviour.
Updated some internal layouts to demonstrate new features, including
et3400, irrmaze, ltcasino, mekd3/mekd4, seawolf and vgmplay.
Removed all uses of cpanel, marquee and overlay from internal layouts
and removed them from complay.py to actively discourage use. Also
cleaned up view names in layouts that were using them in place of
spaces, and removed some superfluous name attributes on elements that
won't do anything useful with an output value anyway.
Made vgmplay cycle visualiser modes when visualiser screen is clicked.
Fixed a copy/paste error in bus/rs232/hlemouse.cpp while I'm at it.
Diffstat (limited to 'src/emu/rendlay.cpp')
-rw-r--r-- | src/emu/rendlay.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/emu/rendlay.cpp b/src/emu/rendlay.cpp index 1d4a8f23265..3eedf6c728f 100644 --- a/src/emu/rendlay.cpp +++ b/src/emu/rendlay.cpp @@ -1116,7 +1116,7 @@ void layout_group::resolve_bounds(environment &env, group_map &groupmap, std::ve { set_render_bounds_xy(m_bounds, 0.0F, 0.0F, 1.0F, 1.0F); environment local(env); - resolve_bounds(local, m_groupnode, groupmap, seen, true, false, true); + resolve_bounds(local, m_groupnode, groupmap, seen, true, false, false, true); } seen.pop_back(); } @@ -1127,6 +1127,7 @@ void layout_group::resolve_bounds( group_map &groupmap, std::vector<layout_group const *> &seen, bool empty, + bool collection, bool repeat, bool init) { @@ -1216,16 +1217,16 @@ void layout_group::resolve_bounds( environment local(env); for (int i = 0; !m_bounds_resolved && (count > i); ++i) { - resolve_bounds(local, *itemnode, groupmap, seen, empty, true, !i); + resolve_bounds(local, *itemnode, groupmap, seen, empty, false, true, !i); local.increment_parameters(); } } - else if (!strcmp(itemnode->get_name(), "vistoggle")) + else if (!strcmp(itemnode->get_name(), "collection")) { if (!env.get_attribute_string(*itemnode, "name", nullptr)) - throw layout_syntax_error("vistoggle must have name attribute"); + throw layout_syntax_error("collection must have name attribute"); environment local(env); - resolve_bounds(local, *itemnode, groupmap, seen, empty, false, true); + resolve_bounds(local, *itemnode, groupmap, seen, empty, true, false, true); } else { @@ -1241,7 +1242,7 @@ void layout_group::resolve_bounds( m_bounds_resolved = resolved; } - if (!repeat) + if (!collection && !repeat) m_bounds_resolved = true; } @@ -3364,12 +3365,12 @@ void layout_view::add_items( local.increment_parameters(); } } - else if (!strcmp(itemnode->get_name(), "vistoggle")) + else if (!strcmp(itemnode->get_name(), "collection")) { char const *name(env.get_attribute_string(*itemnode, "name", nullptr)); if (!name) - throw layout_syntax_error("vistoggle must have name attribute"); - m_defvismask |= u32(env.get_attribute_bool(*itemnode, "enabled", true) ? 1 : 0) << m_vistoggles.size(); // TODO: make this less hacky + throw layout_syntax_error("collection must have name attribute"); + m_defvismask |= u32(env.get_attribute_bool(*itemnode, "visible", true) ? 1 : 0) << m_vistoggles.size(); // TODO: make this less hacky view_environment local(env, true); m_vistoggles.emplace_back(name, local.visibility_mask()); add_items(layers, local, *itemnode, elemmap, groupmap, orientation, trans, color, false, false, true); |