Quick Sign In:  

Forum: VirtualDJ Skins

Topic: Making a panel visible when skin is loaded

This topic is old and might contain outdated or incorrect information.

Hello I would like to make a pannel visible, every time skin DJ is loaded, or when Virtual DJ is opened. I tried init action but it didn' t worked.

<init action="skin_panel 'waveform_no' on"/>

Is there any other way to make this, happen ?
 

Posted Thu 19 Sep 13 @ 3:49 am
djdadPRO InfinityDevelopment ManagerMember since 2005
It should work. But also depends if this panel is part of a group, and how the other panels of the same group are visible. Also have in mind, that this action is executed firat, so if another panel is visible in the same graphics area, the other one will overlap this one.
 

Posted Thu 19 Sep 13 @ 8:36 am
Actually this is not happening. Every pannel is off and the visibility doesn' t contain any statement. Actually I turned every pannel in that group at visible="no". Also there isn' t any overlapping pannel. What I want to do is to dissable the waveforms at the start up. The only way to cycle throw this group is by a button. So, as I mentrioned, there isn' t any pannel pop-up above, neither any other pannel from the same group whitch is enabled automatically. Is there anything else, whitch might be wrong ?
 

Posted Thu 19 Sep 13 @ 12:16 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
so all rhythm panels are inside the same group that the waveform_no panel is ?
Can you post the full code here (all the panels deceleration) ?
 

Posted Thu 19 Sep 13 @ 12:26 pm
All waveform pannels are in one group. I double checked the ids so everything is all right. Here is the code of every pannel

Ps: sorry for the crowdy screen that will follow, but I don' t know how to use "quote" on a forum.

<pannel id="waveform_no" group="waveforms" visible="yes">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2634"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_no_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2719"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_simple" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2014"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_reversed" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2014"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_mirror" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2014"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_simple_double" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2184"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_mirror_double" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="2184"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_simple_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="1844"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_reversed_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="1844"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_mirror_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="1844"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_simple_double_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="+2354-26"/>
<up x="+0" y="+0"/>
</pannel>

<pannel id="waveform_mirror_double_video" group="waveforms" visible="no">
<size width="1366" height="85"/>
<pos x="0" y="26"/>
<down x="+0" y="+2354-26"/>
<up x="+0" y="+0"/>
</pannel>

Also the init action

<init action="skin_panel 'waveform_no' on"/>

Something else I didn' t mension, is that at the beggining of the skin I have set version="7" should I change that to something else ?
I am using the latest home free version

 

Posted Thu 19 Sep 13 @ 12:54 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Ok, code is fine, so the waveform_no panel should appear. Do you have panel="panelname" to ALL elements displayed in that area ? For example <rhythmzone panel="waveformX" ... > ?
You said that the panel is not appearing. So, you see the waveform instead or nothing ?
 

Posted Thu 19 Sep 13 @ 4:02 pm
I just double checked, every rhytmzone is on a pannel. Everything works fine exepts init. I can see the last pannel I used. For example if I close the virtual Dj on pannel waveform_mirrored_video, it opens back at this pannel. If I close it at waveform_no its turn back at waveform_no pannel as well. Even cycle button, cycles throw waveform_no (actully not a cycle button but it works as it should) so I guess pannels works fine.. Is there any chance that its just buggy ? I had some relative problems before and everything solved after a VDJ restart.

PS: I tryied init, before a couple of weak where scripting was at early level and there wasn' t some many scripts and it didn' t work. So I left it for the latest stage of the skinning :)

Edit: Ok I tryied init with a different group of pannels and it worked fine. So I guess there is something wrong with the coding... Any Ideas ? It will be hard to find the error I guess
 

Posted Thu 19 Sep 13 @ 4:39 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
Is there a chance that your skin has way a lot of panels, and the registry cant fit all the panel names there ?
Try to create a skin using just the waform panels along with some other basic elements, and see if that helps.

If it works that way, then try to rename your panels, using shorter names

There is also a chance the underscore character you have used to create issues. Not entirely sure though. It doesnt make much sense, but try to rename them without _ too.
 

Posted Thu 19 Sep 13 @ 6:42 pm
Basically a much much better way to achieve this is to tie the panels visibility with a variable...

<pannel id="waveform_no" group="waveforms" visible="var_equal '$WAVES' 0 ? true : false">

<pannel id="waveform_no_video" group="waveforms" visible="var_equal '$WAVES' 1 ? true : false">

<pannel id="waveform_simple" group="waveforms" visible="var_equal '$WAVES' 2 ? true : false">

<pannel id="waveform_reversed" group="waveforms" visible="var_equal '$WAVES' 3 ? true : false">

<pannel id="waveform_mirror" group="waveforms" visible="var_equal '$WAVES' 4 ? true : false">

<pannel id="waveform_simple_double" group="waveforms" visible="var_equal '$WAVES' 5 ? true : false">

<pannel id="waveform_mirror_double" group="waveforms" visible="var_equal '$WAVES' 6 ? true : false">

<pannel id="waveform_simple_video" group="waveforms" visible="var_equal '$WAVES' 7 ? true : false">

<pannel id="waveform_reversed_video" group="waveforms" visible="var_equal '$WAVES' 8 ? true : false">

<pannel id="waveform_mirror_video" group="waveforms" visible="var_equal '$WAVES' 9 ? true : false">

<pannel id="waveform_simple_double_video" group="waveforms" visible="var_equal '$WAVES' 10 ? true : false">

<pannel id="waveform_mirror_double_video" group="waveforms" visible="var_equal '$WAVES' 11 ? true : false">


And then set the desired variable on the init action

<init action="set '$WAVES' 3"/>

Also the button that "cycles" the waves can be outside the panels and have a very simple and elegant code:
<button action="cycle '$WAVES' 12" rightclick="cycle '$WAVES' -12">
 

Posted Thu 19 Sep 13 @ 11:55 pm
First of all, thanks for the time. Second thing, I fugured out a way to categorized those pannels with a much more better way. I will try that and will let you know the anwser. I think it will work. In the end phantoms Idea was first in my mind when init action worked, it I am sure it will work no matter the number of pannels there are. Thanks anyway. I will be back soon :)
 

Posted Fri 20 Sep 13 @ 2:47 am
Ok guys, I find a way out of this. I used a code like phantoms, with the difference that there are multiple panels overlapping. There are 2 panels which on is for video and the other one for simple waveforms without video display. Also the var is the same and the values also, for the two different panels. Here is the code:

<pannel id="videowave" group="waveforms" visible="yes">
<pannel id="normwave" group="waveforms" visible="no">


<pannel pannel="normwave" id="nowave" group="normwaves" visible="var_equal '$waves' 5 ? on : off">
<pannel pannel="videowave" id="novideo" group="videowaves" visible="var_equal '$waves' 5 ? on : off">

<pannel pannel="normwave" id="simplewave" group="normwaves" visible="var_equal '$waves' 0 ? on : off">
<pannel pannel="normwave" id="reversedwave" group="normwaves" visible="var_equal '$waves' 1 ? on : off">
<pannel pannel="normwave" id="mirrorwave" group="normwaves" visible="var_equal '$waves' 2 ? on : off">
<pannel pannel="normwave" id="wavedbsimple" group="normwaves" visible="var_equal '$waves' 3 ? on : off">
<pannel pannel="normwave" id="wavedbmirror" group="normwaves" visible="var_equal '$waves' 4 ? on : off">

<pannel pannel="videowave" id="simplevideo" group="videowaves" visible="var_equal '$waves' 0 ? on : off">
<pannel pannel="videowave" id="reversedvideo" group="videowaves" visible="var_equal '$waves' 1 ? on : off">
<pannel pannel="videowave" id="mirrorvideo" group="videowaves" visible="var_equal '$waves' 2 ? on : off">
<pannel pannel="videowave" id="simpledbvideo" group="videowaves" visible="var_equal '$waves' 3 ? on : off">
<pannel pannel="videowave" id="mirrordbvideo" group="videowaves" visible="var_equal '$waves' 4 ? on : off">

The cycle button is mapped like this

<button action="cycle '$waves' 5" rightclick="holding 500ms ? set '$waves' 5">

and the on/off video button like this (the rightclick action)

<button action="skin_panel 'video' on" rightclick="skin_panel 'videowave' on ? skin_panel 'normwave' on : skin_panel 'videowave' on" >

and finally init is mapped like this

<init action="set '$waves' 5"</init>

So when you open the skin the nowave is on (it will display a logo). After that if the last time you used the key you played video and the video pannels next to waveforms was active, it it will open the same panel with video panels. The videowaves group and normwaves are identical panels but with video panels at the two sides of the panel. So with that script someone can create only 2 video panels and not 2 panels for every different waveform. Also the cycle button don' t cycle over no waveform pannel and can return to normal cycle if the no waveform is active

I hope this script will help more skinners out there.
Thanks for the help guys cy around:)

Edit: One more question is there any difference between definitions "on" and "true" that phantom used ?
 

Posted Fri 20 Sep 13 @ 6:44 am
djdadPRO InfinityDevelopment ManagerMember since 2005
yes/true/on provide the same result. Same for no/false/off
 

Posted Fri 20 Sep 13 @ 12:48 pm
Thanks all for this useful information about loaded/unloaded pannelbuttons, it really works, BUT(!) I try use this pannel with the "rotation visual element", and it's can't work. i.e this formular:


<pannel id="videowave" group="waveforms" visible="yes">
<pannel id="normwave" group="waveforms" visible="no">

<pannel pannel="normwave" id="simplewave" group="normwaves" visible="var_equal '$waves' 0 ? on : off">

<visual pannel="simplewave" type="rotation" deck="1" source="deck 1 get rotation">
<size width="96" height="97"/>
<pos x="465" y="800"/>
<down x="788" y="1968"/>
<up x="1554" y="1319"/>
<clipmask x="1332" y="2217"/>
<mask x="1713" y="2508"/>
<selected x="465" y="800"/>
</visual>

Have they any idea? Thx!
 

Posted Tue 01 Oct 13 @ 4:13 pm
djdadPRO InfinityDevelopment ManagerMember since 2005
The visual will be visible only if the panel normwave is visible and variable $waves is zero. Are you sure those are true ?



 

Posted Tue 01 Oct 13 @ 4:28 pm


(Old topics and forums are automatically closed)