summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/rendlay.cpp
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2020-09-07 01:40:41 +1000
committer Vas Crabb <vas@vastheman.com>2020-09-07 01:40:41 +1000
commit67ec5e5b43738128a696aea19b299ee0ed8a17a0 (patch)
tree13ace47db8c58d5cd8931e23fce9c01763bbd9fd /src/emu/rendlay.cpp
parent7fe5f1858d8ec9b687ac3874ecf232ca29365694 (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.cpp19
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);