Custom Control Bar functions  

Share your tips and tricks here or get help with any Panotour 2.0 problem!
No bug reports (of any kind) in this forum!
no avatar
R_NPS
New member
 
Posts: 9
Joined: Mon Mar 24, 2014 6:17 pm
Location: USA

Custom Control Bar functions

by R_NPS » Mon Mar 31, 2014 6:31 pm

Has anyone been successful in creating a custom control bar function to open a an image gallery and/or a web video? It seemed initially like this should be an easy task since plugins already exist for these functions, however I can not get the buttons to call the correct actions (or any actions for that matter).

I do not know much (or anything really) about coding, but by examining the extant code I was able to have new png icons display in a custom control bar - now I just need some help getting them to actually function and become useful.

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Mon Mar 31, 2014 10:19 pm

Hi.. I have requested blank button functions to be added for this reason.. Not sure when this will be added to PTP V2... At the moment it would only be achievable via hand coding... Not even sure that is possible.. Never tried it.. I will give it a test for you... It should be doable.... ;)

Destiny..

no avatar
R_NPS
New member
 
Posts: 9
Joined: Mon Mar 24, 2014 6:17 pm
Location: USA

Re: Custom Control Bar functions

by R_NPS » Thu Apr 03, 2014 2:05 pm

Yes, I am getting the feeling that it is likely not possible. The coding is where I hit a wall (I am no programmer), I appreciate you looking into it & letting me know if you find anything. I may otherwise just have to come up with an alternative interface design/look.

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Fri Apr 04, 2014 7:20 am

Tell me which features you would like added to the menu and which menu theme you want to use.. I will try to add them for you...

Destiny..

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Tue Apr 08, 2014 8:52 am

Hi.. Custom menus are not easy... I am using some of the code from other menu features to get it to work, the issues are, they then conflict... So far I can get my custom menu buttons to work, but not with other kolor menu buttons.. I need to test it more so I have a unique code and split it away from other features... I will see if I can find an easy to use solution. I just wish Kolor had taken on board some of the requested features during the early days of development, one of which was blank menu buttons where plugins could be added. The issue was, the design brief was decided long before the VIP Room was established.. There was no consultation with users prior to the build starting.. This I feel has now led to big design issues partially with Pano specific features... There is a Feature Request thread on this forum, but.. are they really taken into consideration. I honestly believe that PTP needs to be totally reviewed.. I sure hope that PTP V3 fill the many black holes..

All feature request need to be listed and ticked off if they have merit. Then those features need to be tested to see if doable. The successful features can then be categorised into groups.

http://www.destinyvirtualtours.com/PTPV ... mmenu.html

Destiny..

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Tue Apr 08, 2014 11:00 am

I think the answer could be quite easily fixed by Kolor... In the main xml, you can include xml code files...

<include url="%FIRSTXML%/customsubmenu_skin.xml"/>

I tried to do this but mine over rides the tour so I have to find a way to make them different.. so they can live together.. It might be a case that there are two menus which is ok in my opinion.. I think the answer to many fixes would be to have sub-xml files that can be included in the main xml file.. XML plugins in many ways...

Destiny....

no avatar
R_NPS
New member
 
Posts: 9
Joined: Mon Mar 24, 2014 6:17 pm
Location: USA

Re: Custom Control Bar functions

by R_NPS » Tue Apr 08, 2014 1:34 pm

Wow, your new menu bar does a nice job getting those plugin functions working. I appreciate someone with more know how taking the time to look into this. It's far better than what I had tried to cobble together from looking at the code of the existing plugins (and realized I may have gone in over-my-head). It's too bad that this apparently overrides the standard set? I think I am settling in to eventually having the web video/gallery/website box buttons separate from the main control bar - though floating icons don't always seem to re-size/re-position appropriately on smaller screens. But a second bar would be better than these floating icons.

A blank menu/control bar button to interact with any of their plugins would have been a perfect feature to include with Kolor's whole 'plugin' setup, and I'll certainly put it up on the feature requests section if it's not already. It seems like a highly useful feature to leave out (especially for a product that seems aimed more at non-programmers).

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Tue Apr 08, 2014 2:10 pm

There is an other option and that would be just to add button icons next to the menu... That is easy to achieve. You can put a background image there too, make it all look like a menu.. I will try that tomorrow... There would be restriction like they would not be able to hide..

Destiny..

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Wed Apr 09, 2014 2:01 am

I tried adding two buttons to the menu and extending the menu background but its not a solution.. In full screen they get left behind since they are not part of the menu... The buttons also do not remain with the menu when resizing.. So back to the drawing board.. =(

http://www.destinyvirtualtours.com/PTPV ... mmenu.html

Destiny..

no avatar
netline
Member
 
Posts: 81
Joined: Sat May 05, 2012 9:29 pm
Location: Knysna, South Africa

Re: Custom Control Bar functions

by netline » Wed Apr 09, 2014 9:36 am

Destiny would you mind sharing your contact me script? It would be appreciated!

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Wed Apr 09, 2014 10:34 am

This is my xml file for the skin... The red marked areas relate to the menu buttons.. I have extend the menu to 100 marked in red..

All you need to do is add a gallery and a website box with the menu.. Then take reference to my XY positions.. This really is not the best option since the buttons change position depending on the size of the browser.. I need to work out how to add a sub menu xml which will really mean having two menus..

My menu buttons are here.. but I would assume you would want to create your own.. http://www.destinyvirtualtours.com/PTPV ... /icons.zip

Destiny....

<!-- ******************* -->
<!-- Classic Control Bar -->
<!-- ******************* -->

<krpano theme2barbuilt="false" theme2backgroundwidthwhenclosed="0" theme2backgroundwidthwhenopened="0" theme2IsOpened="false" />
<events name="theme2events" onxmlcomplete="theme2buildMenuBar();" keep="true"/>
<action name="theme2buildMenuBar">
ifnot (theme2barbuilt, theme2buildMenu(); set(theme2barbuilt, true););
</action>

<action name="theme2buildMenu">

set(theme2button_pos, 20);



if (device.desktop,
set(layer[theme2btn_display_help].x, get(theme2button_pos));
set(layer[theme2btn_close_help ].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);

if (device.fullscreensupport,
set(layer[theme2btn_openfs ].x, get(theme2button_pos));
set(layer[theme2btn_closefs].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);



set(layer[theme2btn_autorotate_on ].x, get(theme2button_pos));
set(layer[theme2btn_autorotate_off].x, get(theme2button_pos));
inc(theme2button_pos, 36);


set(layer[theme2btn_autotour_on ].x, get(theme2button_pos));
set(layer[theme2btn_autotour_off].x, get(theme2button_pos));
inc(theme2button_pos, 36);

set(layer[theme2btn_sound_on ].x, get(theme2button_pos));
set(layer[theme2btn_sound_off].x, get(theme2button_pos));
inc(theme2button_pos, 36);




set(layer[theme2btn_home].x, get(theme2button_pos));
set(layer[theme2btn_home].x, get(theme2button_pos));
inc(theme2button_pos, 36);

if (device.desktop,
set(layer[theme2btn_right].x, get(theme2button_pos));
inc(theme2button_pos, 36);
set(layer[theme2btn_left].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);
if (device.desktop,
set(layer[theme2btn_down].x, get(theme2button_pos));
inc(theme2button_pos, 36);
set(layer[theme2btn_up].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);
if (device.desktop,
set(layer[theme2btn_out].x, get(theme2button_pos));
inc(theme2button_pos, 36);
set(layer[theme2btn_in].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);
if (scene.count GT 1,
set(layer[theme2btn_next_pano].x, get(theme2button_pos));
inc(theme2button_pos, 36);
set(layer[theme2btn_prev_pano].x, get(theme2button_pos));
inc(theme2button_pos, 36);
);

inc(theme2button_pos, 100);

set(theme2backgroundwidthwhenopened, get(theme2button_pos));


add(theme2VerifyVisibility, 20, 20);
if(theme2backgroundwidthwhenopened == 20,
set(theme2backgroundwidthwhenopened, 0);
);



</action>

<events name="theme2StartTourEvents" onTourStart="theme2CallOnStartTour();" keep="true" />

<action name="theme2CallOnStartTour">

set(layer[theme2menu_controlbar_bg_img].width, get(theme2button_pos));
set(layer[theme2menu_controlbar_bg].width, get(theme2button_pos));
theme2showMenuControls();
</action>

<style name="theme2_btn_style"
keep="true"
alpha="0.8"
edge="right" align="right"
width="36" height="36"
zorder="2"
onover="theme2ctrlbaronoveraction();"
onout="theme2ctrlbaronoutaction();"
onhover="showTooltip(bottom, theme2menuTooltipStyle, bottom);"
/>
<action name="theme2ctrlbaronoveraction">
tween(alpha,1,0.1,easeoutquad);
tween(y,-2,0.1,easeoutquad);
</action>
<action name="theme2ctrlbaronoutaction">
tween(alpha,0.8);
tween(y,0,0.1,easeoutquad);
hideTooltip();
</action>

<layer name="theme2menu_controlbar_bg_img"
keep="true"
align="bottom"
x="0" y="10"
url="%FIRSTXML%/graphics/classiccontrolbar/footer.png"
zorder="0"
width="40"
height="40"
scale9grid="10|10|80|80"
visible="false"
/>
<layer name="theme2menu_controlbar_bg"
keep="true"
align="bottom"
x="0" y="10"
type="container"
zorder="1"
width="40"
height="40"
visible="false"
alpha="1.0"
>



<layer name="theme2btn_in"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_zoom_in.png"
ondown="set(fov_moveforce, -1);"
onup="set(fov_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classiczoomInTip"
devices="desktop"
visible="false"
/>
<layer name="theme2btn_out"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_zoom_out.png"
ondown="set(fov_moveforce, +1);"
onup="set(fov_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classiczoomOutTip"
devices="desktop"
visible="false"
/>

<layer name="theme2btn_home"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_home.png"
onclick="theme2btn_home_action();"
style="theme2_btn_style"
tooltip="controlBar_classichomeTip"
visible="false"
/>
<layer name="theme2btn_left"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_move_left.png"
ondown="set(hlookat_moveforce, -1);"
onup="set(hlookat_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classicmoveLeftTip"
devices="desktop"
visible="false"
/>
<layer name="theme2btn_right"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_move_right.png"
ondown="set(hlookat_moveforce, +1);"
onup="set(hlookat_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classicmoveRightTip"
devices="desktop"
visible="false"
/>

<layer name="theme2btn_up"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_move_up.png"
ondown="set(vlookat_moveforce, -1);"
onup="set(vlookat_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classicmoveUpTip"
devices="desktop"
visible="false"
/>
<layer name="theme2btn_down"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_move_down.png"
ondown="set(vlookat_moveforce, +1);"
onup="set(vlookat_moveforce, 0);"
style="theme2_btn_style"
tooltip="controlBar_classicmoveDownTip"
devices="desktop"
visible="false"
/>


<layer name="theme2btn_sound_on"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_start_sound.png"
onclick="playTourSounds();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicsoundsOnTip"
/>
<layer name="theme2btn_sound_off"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_stop_sound.png"
onclick="stopTourSounds();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicsoundsOffTip"
/>


<layer name="theme2btn_prev_pano"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_previous_scene.png"
onclick="loadPreviousScene();"
style="theme2_btn_style"
tooltip="controlBar_classicprevSceneTip"
visible="false"
/>
<layer name="theme2btn_next_pano"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_next_scene.png"
onclick="loadNextScene();"
style="theme2_btn_style"
tooltip="controlBar_classicnextSceneTip"
visible="false"
/>



<layer name="theme2btn_openfs"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_enter_fs.png"
onclick="enterFullscreen();"
style="theme2_btn_style"
devices="fullscreensupport"
visible="false"
tooltip="controlBar_classicopenFsTip"
/>
<layer name="theme2btn_closefs"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_close_fs.png"
onclick="exitFullscreen();"
style="theme2_btn_style"
visible="false"
devices="fullscreensupport"
tooltip="controlBar_classiccloseFsTip"
/>

<layer name="theme2btn_autorotate_on"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_start_autorotation.png"
onclick="startautorotation();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicautorotateOnTip"
/>
<layer name="theme2btn_autorotate_off"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_stop_autorotation.png"
onclick="stopautorotation();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicautorotateOffTip"
/>


<layer name="theme2btn_autotour_on"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_start_automatic_tour.png"
onclick="startautotour();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicautotourOnTip"
/>
<layer name="theme2btn_autotour_off"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_stop_automatic_tour.png"
onclick="stopautotour();"
style="theme2_btn_style"
visible="false"
tooltip="controlBar_classicautotourOffTip"
/>


<layer name="theme2btn_display_help"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_help.png"
onclick="theme2displayHelp();"
style="theme2_btn_style"
devices="desktop"
visible="false"
tooltip="controlBar_classicdisplayHelpTip"
/>
<layer name="theme2btn_close_help"
url="%FIRSTXML%/graphics/classiccontrolbar/btn_help.png"
onclick="theme2closeHelp();"
style="theme2_btn_style"
visible="false"
devices="desktop"
tooltip="controlBar_classichideHelpTip"
/>



</layer>




<action name="theme2hideMenuControls">
set(theme2IsOpened, false);
theme2updateFullscreenButtons();

theme2updateSoundButtons();

if (scene.count GT 1,
set(layer[theme2btn_prev_pano].visible, false);
set(layer[theme2btn_next_pano].visible, false);
);
theme2updateAutorotationButtons();

theme2updateAutotourButtons();

set(layer[theme2btn_up].visible , false);
set(layer[theme2btn_down].visible, false);
set(layer[theme2btn_home].visible, false);
set(layer[theme2btn_right].visible, false);
set(layer[theme2btn_left].visible , false);
set(layer[theme2btn_in].visible , false);
set(layer[theme2btn_out].visible, false);




theme2updateHelpButtons();


set(layer[theme2menu_controlbar_bg_img].visible, true);
set(layer[theme2menu_controlbar_bg].visible, true);
tween(layer[theme2menu_controlbar_bg_img].width , get(theme2backgroundwidthwhenclosed));
tween(layer[theme2menu_controlbar_bg].width , get(theme2backgroundwidthwhenclosed));
tween(layer[theme2menu_controlbar_bg_img].alpha, 0.8);
</action>
<action name="theme2showMenuControls">
set(theme2IsOpened, true);
if(theme2backgroundwidthwhenopened == 0,
set(layer[theme2menu_controlbar_bg_img].visible, false);
set(layer[theme2menu_controlbar_bg].visible, false);
,
set(layer[theme2menu_controlbar_bg_img].visible, true);
set(layer[theme2menu_controlbar_bg].visible, true);
);
tween(layer[theme2menu_controlbar_bg_img].alpha, 0.8);
tween(layer[theme2menu_controlbar_bg_img].width, get(theme2backgroundwidthwhenopened), 0.5, easeOutQuad, theme2showMenuButtons(););
tween(layer[theme2menu_controlbar_bg].width, get(theme2backgroundwidthwhenopened), 0.5, easeOutQuad, theme2showMenuButtons(););
</action>
<action name="theme2showMenuButtons">
if (device.desktop,
set(layer[theme2btn_up].visible , true);
set(layer[theme2btn_down].visible, true);
);
if (device.desktop,
set(layer[theme2btn_right].visible, true);
set(layer[theme2btn_left].visible , true);
);
if (device.desktop,
set(layer[theme2btn_in].visible , true);
set(layer[theme2btn_out].visible, true);
);
set(layer[theme2btn_home].visible, true);




theme2updateHelpButtons();


theme2updateFullscreenButtons();

theme2updateSoundButtons();

if (scene.count GT 1,
set(layer[theme2btn_prev_pano].visible, true);
set(layer[theme2btn_next_pano].visible, true);
);
theme2updateAutorotationButtons();

theme2updateAutotourButtons();

</action>

<layer name="theme2helpScreen" align="center" keep="true" onclick="theme2closeHelp();" url="%FIRSTXML%/graphics/classiccontrolbar/help_screen_bg.png" visible="false" zorder="97" height="10%" width="prop" alpha="0.8" />

<layer name="theme2helpScreenFg" align="center" keep="true" onclick="theme2closeHelp();" displayed="false"
url="%FIRSTXML%/graphics/classiccontrolbar/help_screen_fg.png"
alpha="0.8"
height="50%"
width="prop"
zorder="98"
visible="false" />
<action name="theme2displayHelp">
set(layer[theme2helpScreenFg].displayed,true);
set(layer[theme2helpScreen].visible,true);
tween(layer[theme2helpScreen].height, 50%, 1, easeOutQuad,
set(layer[theme2helpScreenFg].visible,true);
);
theme2updateHelpButtons();
</action>
<action name="theme2closeHelp">
set(layer[theme2helpScreenFg].displayed,false);
set(layer[theme2helpScreenFg].visible,false);
tween(layer[theme2helpScreen].height, 10%, 1, easeOutQuad,
set(layer[theme2helpScreen].visible,false);
);
theme2updateHelpButtons();
</action>
<action name="theme2HideHelpButtons">
set(layer[theme2btn_display_help].visible, false);
set(layer[theme2btn_close_help].visible, false);
</action>
<action name="theme2ShowHelpButtons">
if (layer[theme2helpScreenFg].displayed,
set(layer[theme2btn_close_help].visible, true);
set(layer[theme2btn_display_help].visible, false);
,
set(layer[theme2btn_display_help].visible, true);
set(layer[theme2btn_close_help].visible, false);
);
</action>
<action name="theme2updateHelpButtons">
if (device.desktop,
set(theme2DisplayHelpButtons, false);
if (theme2IsOpened, set(theme2DisplayHelpButtons, true););
if (theme2DisplayHelpButtons,
theme2ShowHelpButtons();
,
theme2HideHelpButtons();
);
,
theme2HideHelpButtons();
);
</action>



<events name="theme2menufullscreenchangeevent"
onenterfullscreen="theme2updateFullscreenButtons();"
onexitfullscreen="theme2updateFullscreenButtons();"
keep="true"/>
<action name="theme2HideFullscreenButtons">
set(layer[theme2btn_openfs].visible , false);
set(layer[theme2btn_closefs].visible, false);
</action>
<action name="theme2ShowFullscreenButtons">
if (device.fullscreensupport,
if(tour_fullscreen,
set(layer[theme2btn_openfs].visible , false);
set(layer[theme2btn_closefs].visible, true);
,
set(layer[theme2btn_openfs].visible ,true);
set(layer[theme2btn_closefs].visible,false);
);
,
theme2HideFullscreenButtons();
);
</action>
<action name="theme2updateFullscreenButtons">
set(theme2DisplayFullscreenButtons, false);
if (theme2IsOpened, set(theme2DisplayFullscreenButtons, true););
if (theme2DisplayFullscreenButtons,
theme2ShowFullscreenButtons();
,
theme2HideFullscreenButtons();
);
</action>

<events name="theme2AutorotationEvents"
onstartautorotation="theme2updateAutorotationButtons();"
onresumeautorotation="theme2updateAutorotationButtons();"
onstopautorotation="theme2updateAutorotationButtons();"
onpauseautorotation="theme2updateAutorotationButtons();"
keep="true"/>
<action name="theme2HideAutorotationButtons">
set(layer[theme2btn_autorotate_off].visible, false);
set(layer[theme2btn_autorotate_on].visible , false);
</action>
<action name="theme2ShowAutorotationButtons">
if(tour_autorotateenabled==false,
set(layer[theme2btn_autorotate_off].visible, false);
set(layer[theme2btn_autorotate_on].visible , true);
,
set(layer[theme2btn_autorotate_off].visible, true);
set(layer[theme2btn_autorotate_on].visible , false);
);
</action>
<action name="theme2updateAutorotationButtons">
set(theme2DisplayAutorotationButtons, false);
if (theme2IsOpened, set(theme2DisplayAutorotationButtons, true););
if (theme2DisplayAutorotationButtons,
theme2ShowAutorotationButtons();
,
theme2HideAutorotationButtons();
);
</action>


<events name="theme2AutotourEvents"
onstartautotour="theme2updateAutotourButtons();"
onstopautotour="theme2updateAutotourButtons();"
keep="true"/>
<action name="theme2HideAutotourButtons">
set(layer[theme2btn_autotour_off].visible, false);
set(layer[theme2btn_autotour_on].visible , false);
</action>
<action name="theme2ShowAutotourButtons">
if (tour_autotourenabled == false,
set(layer[theme2btn_autotour_off].visible, false);
set(layer[theme2btn_autotour_on].visible , true);
,
set(layer[theme2btn_autotour_off].visible, true);
set(layer[theme2btn_autotour_on].visible , false);
);
</action>
<action name="theme2updateAutotourButtons">
set(theme2DisplayAutotourButtons, false);
if (theme2IsOpened, set(theme2DisplayAutotourButtons, true););
if (theme2DisplayAutotourButtons,
theme2ShowAutotourButtons();
,
theme2HideAutotourButtons();
);
</action>

<events name="theme2playstopsoundsevent"
playtoursoundsevent="theme2updateSoundButtons();"
stoptoursoundsevent="theme2updateSoundButtons();"
keep="true" />
<action name="theme2HideSoundButtons">
set(layer[theme2btn_sound_off].visible, false);
set(layer[theme2btn_sound_on].visible , false);
</action>
<action name="theme2ShowSoundButtons">
if (tour_soundson == false,
set(layer[theme2btn_sound_off].visible, false);
set(layer[theme2btn_sound_on].visible , true);
,
set(layer[theme2btn_sound_off].visible, true);
set(layer[theme2btn_sound_on].visible , false);
);
</action>
<action name="theme2updateSoundButtons">
set(theme2DisplaySoundButtons, false);
if (theme2IsOpened, set(theme2DisplaySoundButtons, true););
if (theme2DisplaySoundButtons,
theme2ShowSoundButtons();
,
theme2HideSoundButtons();
);
</action>


<action name="theme2btn_home_action">
lookto(get(panoview.h),get(panoview.v),get(panoview.fov),smooth(100,20,50));
</action>


<textstyle name="theme2menuTooltipStyle"
font="Helvetica"
fontsize="16"
bold="true"
italic="false"
background="false"
border="false"
alpha="0.8"
blendmode="layer"
textcolor="0xe6e6e6"
effect="glow(0x111111,0.8);"
origin="bottom"
yoffset="60"
edge="center"
xoffset="0"
textalign="center"
noclip="true"
devices="flash"
/>
<layer name="theme2menuTooltipStyle"
keep="true"
enabled="false"
capture="false"
url="%FIRSTXML%/graphics/textfield.swf"
align="center"
background="true"
backgroundcolor="0xdedede"
backgroundalpha="0.8"
border="false"
bordercolor="0xffffff"
css="color:#e6e6e6;font-family:Helvetica;font-weight:bold;font-size:16px;text-align:center;"
width="200"
height="20"
autoheight="true"
edge="bottom"
textshadow="1.0"
selectable="false"
zorder="0"
html=""
visible="false"
devices="html5"
/>

<!-- ************** -->
<!-- Website Viewer -->
<!-- ************** -->

<ptplugin name="websiteViewer" engine="kolorBox">
<settings>
<option name="position" value="center" type="string" />
<option name="margin_x" value="0" type="int" />
<option name="margin_y" value="0" type="int" />
<option name="draggable_box" value="false" type="bool" />
<option name="container_auto_size" value="true" type="bool" />
<option name="container_width" value="100" type="int" />
<option name="container_width_unit" value="percent" type="string" />
<option name="container_height" value="100" type="int" />
<option name="container_height_unit" value="percent" type="string" />
<option name="container_color" value="ffffff" type="string" />
<option name="container_alpha" value="0.8" type="float" />
<option name="container_topleft_border_radius" value="15" type="int" />
<option name="container_topright_border_radius" value="15" type="int" />
<option name="container_bottomleft_border_radius" value="15" type="int" />
<option name="container_bottomright_border_radius" value="15" type="int" />
<option name="container_border_width" value="0" type="int" />
<option name="container_border_color" value="ffffff" type="string" />
<option name="overlay_displayed" value="false" type="bool" />
<option name="overlay_color" value="000000" type="string" />
<option name="overlay_alpha" value="0.500007629510948" type="float" />
<option name="title_displayed" value="false" type="bool" />
<option name="title_position" value="top" type="string" />
<option name="title_font" value="Verdana" type="string" />
<option name="title_size" value="14" type="int" />
<option name="title_weight" value="normal" type="string" />
<option name="title_decoration" value="normal" type="string" />
<option name="title_color" value="000000" type="string" />
<option name="caption_displayed" value="false" type="bool" />
<option name="iframe_scrolling" value="auto" type="string" />
<option name="iframe_default_width" value="1100" type="int" />
<option name="iframe_default_height" value="800" type="int" />
<option name="iframe_devices_width" value="1100" type="int" />
<option name="iframe_devices_height" value="800" type="int" />
<option name="force_ios_scrolling" value="true" type="bool" />
<option name="fullscreen_displayed" value="true" type="bool" />
<option name="fullscreen_position" value="topleft" type="string" />
<option name="close_displayed" value="true" type="bool" />
<option name="close_position" value="topright" type="string" />
<option name="close_callback" value="invokeKrFunction('closeKolorBoxCallback-websiteViewer')" type="string" />
<option name="zorder" value="3" type="int" />
</settings>
<internaldata>

</internaldata>
</ptplugin>

<action name="kolorBoxJsReady-websiteViewer">
set(ptplugin[websiteViewer].jsready, true);
</action>

<action name="openWebsite-websiteViewer">
ifnot(ptplugin[websiteViewer].isOpen,
set(ptplugin[websiteViewer].isOpen, true);
set(ptplugin[websiteViewer].doNotDeleteMe, false);
getmessage(boxurl, %1);
txtadd(boxurl, ?iframe=true);
getmessage(boxtitle, %2);
pauseautorotation();
js(invokePluginFunction(websiteViewer, loadSingleArrayItem, get(boxurl), get(boxtitle)));
events.dispatch(onremovedisplayedobject);
);
</action>

<action name="toggleWebsite-websiteViewer">
js(invokePluginFunction(websiteViewer, toggleKolorBox, %1));
</action>


<action name="closeKolorBox-websiteViewer">
js(invokePluginFunction(websiteViewer, closeKolorBox));
</action>

<action name="closeKolorBoxCallback-websiteViewer">
resumeautorotation();
set(ptplugin[websiteViewer].isOpen, false);
</action>

<events name="kolorBoxEvents-websiteViewer"
keep="true"
/>
<!-- ******************************************* -->
<!-- Button : bottomleft -->
<!-- ******************************************* -->
<layer name="button"
keep="true"
url="%FIRSTXML%/graphics/button/pictures-nikon-icon.png"
align="bottomleft"
x="460"
y="10"
zorder="4"
visible="false"
onclick="buttonOnClick"
height="36"
width="36"
/>
<action name="buttonOnClick">
showGallery-gallery();
</action>

<events name="buttonevents"
onTourStart="showbutton();"
hidetourcontrols="hidebutton();"
showtourcontrols="showbutton();"
keep="true" />
<action name="hidebutton">set(layer[button].visible, false);</action>
<action name="showbutton">set(layer[button].visible, true);</action>

<!-- ******************************************* -->
<!-- Button : bottomleft -->
<!-- ******************************************* -->
<layer name="button1"
keep="true"
url="%FIRSTXML%/graphics/button1/www.png"
align="bottomleft"
x="420"
y="14"
zorder="5"
visible="false"
onclick="button1OnClick"
height="32"
width="32"
/>
<action name="button1OnClick">
openWebsite-websiteViewer(button1websiteViewer|websiteViewer|displaywebsitewebsite_url, button1websiteViewer|websiteViewer|displaywebsitewebsite_title);
</action>

<events name="button1events"
onTourStart="showbutton1();"
hidetourcontrols="hidebutton1();"
showtourcontrols="showbutton1();"
keep="true" />
<action name="hidebutton1">set(layer[button1].visible, false);</action>
<action name="showbutton1">set(layer[button1].visible, true);</action>


<!-- ******* -->
<!-- Gallery -->
<!-- ******* -->

<ptplugin name="gallery" engine="kolorBox">
<settings>
<option name="position" value="center" type="string" />
<option name="margin_x" value="0" type="int" />
<option name="margin_y" value="0" type="int" />
<option name="draggable_box" value="false" type="bool" />
<option name="slideshow_autoplay" value="false" type="bool" />
<option name="slideshow" value="5000" type="int" />
<option name="container_auto_size" value="true" type="bool" />
<option name="container_width" value="100" type="int" />
<option name="container_width_unit" value="percent" type="string" />
<option name="container_height" value="100" type="int" />
<option name="container_height_unit" value="percent" type="string" />
<option name="container_color" value="ffffff" type="string" />
<option name="container_alpha" value="0.8" type="float" />
<option name="container_topleft_border_radius" value="15" type="int" />
<option name="container_topright_border_radius" value="15" type="int" />
<option name="container_bottomleft_border_radius" value="15" type="int" />
<option name="container_bottomright_border_radius" value="15" type="int" />
<option name="container_border_width" value="0" type="int" />
<option name="container_border_color" value="ffffff" type="string" />
<option name="overlay_displayed" value="true" type="bool" />
<option name="overlay_color" value="000000" type="string" />
<option name="overlay_alpha" value="0.500007629510948" type="float" />
<option name="item_border_width" value="0" type="int" />
<option name="item_border_color" value="ffffff" type="string" />
<option name="title_displayed" value="false" type="bool" />
<option name="caption_displayed" value="false" type="bool" />
<option name="play_displayed" value="true" type="bool" />
<option name="play_position" value="bottomleft" type="string" />
<option name="navigation_displayed" value="true" type="bool" />
<option name="navigation_position" value="bottom" type="string" />
<option name="fullscreen_displayed" value="true" type="bool" />
<option name="fullscreen_position" value="topleft" type="string" />
<option name="close_displayed" value="true" type="bool" />
<option name="close_position" value="topright" type="string" />
<option name="close_callback" value="invokeKrFunction('closeKolorBoxCallback-gallery')" type="string" />
<option name="zorder" value="6" type="int" />
</settings>
<internaldata>
<item name="item_1" title="" caption="" value="custommenudata/graphics/gallery/automonous-1.jpg"/>
<item name="item_2" title="" caption="" value="custommenudata/graphics/gallery/pool.jpg"/>
</internaldata>
</ptplugin>

<action name="kolorBoxJsReady-gallery">
set(ptplugin[gallery].jsready, true);
</action>

<action name="showGallery-gallery">
ifnot(ptplugin[gallery].isOpen,
set(ptplugin[gallery].isOpen, true);
set(ptplugin[gallery].doNotDeleteMe, false);
pauseautorotation();
js(invokePluginFunction(gallery, openKolorBox, %1));
events.dispatch(onremovedisplayedobject);
);
</action>

<action name="toggleGallery-gallery">
js(invokePluginFunction(gallery, toggleKolorBox, %1));
</action>


<action name="closeKolorBox-gallery">
js(invokePluginFunction(gallery, closeKolorBox));
</action>

<action name="closeKolorBoxCallback-gallery">
resumeautorotation();
set(ptplugin[gallery].isOpen, false);
</action>

<events name="kolorBoxEvents-gallery"
keep="true"
/>

<!-- Sounds Management -->
<action name="play3DLocalSounds">
if (xml.scene, if (scene[get(xml.scene)].haslocalsounds, playpanolocalsounds();););
</action>
<action name="stop3DLocalSounds">
if (xml.scene, if (scene[get(xml.scene)].haslocalsounds, stoppanolocalsounds();););
</action>
<action name="set3DLocalSoundsVolume">
if (xml.scene, if (scene[get(xml.scene)].haslocalsounds, setpanolocalsoundsvolume();););
</action>
<action name="playTourSounds">
set(tour_soundson, true);events.dispatch(playtoursoundsevent);
play3DLocalSounds();
</action>
<action name="stopTourSounds">
set(tour_soundson, false);events.dispatch(stoptoursoundsevent);
stop3DLocalSounds();
if (tour_current_played_sound,
stopsound(get(tour_current_played_sound));
delete(tour_current_played_sound);
);
</action>
<action name="setTourSoundsVolume">
set(tour_soundsvolume, %1);
set3DLocalSoundsVolume();
</action>
<!-- Fullscreen Management -->
<action name="exitFullScreen" devices="fullscreensupport">set(tour_fullscreen,false);js(setFullscreen(false));</action>
<action name="enterFullScreen" devices="fullscreensupport">set(tour_fullscreen,true);js(setFullscreen(true));</action>
<action name="switchFullScreen">if(tour_fullscreen,exitFullScreen();,enterFullScreen(););</action>


<events name="krpanoExitFullscreenEvent"
onexitfullscreen="if(tour_fullscreen,exitFullScreenChangeEvent(););"
keep="true" />

<action name="exitFullScreenChangeEvent" devices="fullscreensupport">set(tour_fullscreen,false);events.dispatch(onexitfullscreen);</action>
<action name="enterFullScreenChangeEvent" devices="fullscreensupport">set(tour_fullscreen,true);events.dispatch(onenterfullscreen);</action>
<action name="exitFullScreenFallback">set(fullscreen,false);</action>
<action name="enterFullScreenFallback">set(fullscreen,true);</action>

<action name="resizeFullScreenEvent">delayedcall(0,updatescreen(););</action>
</krpano>

no avatar
R_NPS
New member
 
Posts: 9
Joined: Mon Mar 24, 2014 6:17 pm
Location: USA

Re: Custom Control Bar functions

by R_NPS » Wed Apr 09, 2014 4:49 pm

I have settled for using 'simple buttons' beside the menu, since including them within the bar seems overly difficult to code. To handle the buttons floating on the screen I have just set the control bar background alpha to zero and included a footer along the entire bottom of the tour - so when the button icons move/re-size horizontally they still appear to be part of the control menu set. I guess this will work for now.
Attachments
ScreenShot018.jpg

User avatar
Destiny
Moderator
 
Posts: 5114
Joined: Mon Apr 26, 2010 11:55 pm
Location: Australia

Re: Custom Control Bar functions

by Destiny » Wed Apr 09, 2014 6:19 pm

Yes, a button is the only opton really... At least there is an option and this method is quite easiy to achive.. I hope an better option will come in time....

Destiny..


Return to Using Panotour / Panotour Pro

Who is online

Users browsing this forum: No registered users and 1 guest