No need for excuse ;-)
May i was a bit weird in explanation.
Again, it's really a minor issue, and i have to say sorry for wasting your time by try to help by improve code with "circumstance thing".
So 1st.
I have a WIP view selctor (custom_***.xml as a dialog ,
video of custom dialog ) which will offer some options (
a) set view(id)
b) lock/prefer view(id) for content using - here i can use the native info label $INFO[Container.Content]
- when i use dialog from within skinsettings window i will use custom labels anyway
- but when i use dialog from a media window i can use
xml:
<!--
<include condition="string.isempty(container.content)" content="locking_containercontent">
<param name="lock_containercontent" value="listing" />
<param name="lock_containercontent_view_id" value="$PARAM[view_id]" />
</include>
<include condition="container.content(movies)" content="locking_containercontent">
<param name="lock_containercontent" value="movies" />
<param name="lock_containercontent_view_id" value="$PARAM[view_id]" />
</include>
<include condition="container.content(sets)" content="locking_containercontent">
<param name="lock_containercontent" value="sets" />
<param name="lock_containercontent_view_id" value="$PARAM[view_id]" />
</include>
.... and so on
-->
- the generated strings will then be used as visible conditions for specific container.content and force specific view id groups to a visible state and hide non matching group id's
c) disbale a view(id) for/in a specific media Window ( videos,music,pictures,games,programs,addonbrowser)
- here i have to use and variable/condition to store it as an untranslated info label
- here will store an info label before opening the custom dialog(1105), for reasons ;-)
because $INFO[system.currentwindow] is translated/localiced string i had to use, intentionally i was thinking abaout using
xml:
<onclick>SetProperty(view_disable_mediawindow,$INFO[System.CurrentWindow*untranslatedinfolabel],home)</onclick>
and i wondered why a untranslated info label isn't available even if its shown in native debugoverlay
xml:
<item>
<icon>buttons/viewswitch.png</icon>
<label>ViewMode Select</label>
<label2>$INFO[Container.Viewmode]</label2>
<onclick condition="Window.IsActive(videos)">SetProperty(view_disable_mediawindow,videos,home)</onclick>
<onclick condition="Window.IsActive(music)">SetProperty(view_disable_mediawindow,music,home)</onclick>
<onclick condition="Window.IsActive(pictures)">SetProperty(view_disable_mediawindow,pictures,home)</onclick>
<onclick condition="Window.IsActive(games)">SetProperty(view_disable_mediawindow,games,home)</onclick>
<onclick condition="Window.IsActive(programs)">SetProperty(view_disable_mediawindow,programs,home)</onclick>
<onclick condition="Window.IsActive(playlist)">SetProperty(view_disable_mediawindow,playlist,home)</onclick>
<onclick condition="Window.IsActive(addonbrowser)">SetProperty(view_disable_mediawindow,addonbrowser,home)</onclick>
<onclick>ActivateWindow(1105)</onclick>
<property name="icon">default</property>
</item>
- when using that dialog from within a media window i could have used that label for auto detection like it's possible for lock/force container for content(foobar) via $INFO[Container.Content]
- i am also able to open that dialog from skinsettings window (where i set custom properties for such labels)
To the other thing which makes you wonder. (why just not only use visible tags for correspopnding container/group )
In my experiance there is a performance improvement when DONT loading a whole inlucde versus just hide the control via a visible condition.
This will become more importatnt the more viewtype containers i will offer/add in the skin.
Also i got a few a viewtypes which uses a lot of custom containers filled with dynamic and/or staic content.
When i just hide them via a visible tag, i saw in the logs, that kodi internally load the content even if its in hidden state, to have them available if a hidden state becomes true.
When exclude an specific include the "disasbled" include will not be loaded till the skin or xml is reloadeds/refreshed