Undocking behavior

This forum is for questions / discussions regarding development of addons / tweaks for MediaMonkey.

Moderator: Gurus

fizzjob
Posts: 401
Joined: Fri Mar 30, 2007 12:37 pm

Undocking behavior

Post by fizzjob » Tue Jun 21, 2016 3:36 pm

I'm trying to figure out how to natively make my HTML Now Playing Panel go full-screen. I've been able to figure out how to move it around from within the UI:

Code: Select all

Sub dockPanel(where)
	Dim panel : set Panel = CreateObject("SongsDB.SDBApplication")
	Panel.Objects("htmlpanel").dockedTo = where
End Sub
That code is in the html file that the panel loads - a javascript function calls the vbscript and it works fine if I just want to move the panel around within MediaMonkey. But if I try to pass that sub a parameter of 0 to undock, the panel just disappears. When I re-dock the panel, it's just a blank white panel.

The secondary trick is to make the panel go fullscreen, but that's irrelevant if I can't figure out the undocking issue first.
Image

Peke
Posts: 11054
Joined: Tue Jun 10, 2003 7:21 pm
Location: Serbia
Contact:

Re: Undocking behavior

Post by Peke » Tue Jun 21, 2016 6:47 pm

Can you make small VBS sample with just resize function in order to track reasons?
Best regards,
Pavle
MM Core Developer and Admin of free MediaMonkey extensions Hosting
Image
Image
How to add Images to forum

fizzjob
Posts: 401
Joined: Fri Mar 30, 2007 12:37 pm

Re: Undocking behavior

Post by fizzjob » Wed Jun 22, 2016 9:54 am

This should illustrate the disappearing panel issue. I've added a sub to toggle the panel's handle so you can see that manually undocking and docking the panel works.

For some reason, if I open the same HTML file in IE it's not controlling the panel. I swear that was working for me before and I don't think anything I did should have broken that. It's a secondary concern if I can get the panel undocking properly, but I'm confused by it all the same.

Both of these should go into /scripts/auto:

panel.html

Code: Select all

<!DOCTYPE HTML>
<html>
<head>
	<meta http-equiv="X-UA-Compatible" content="IE=10">
	<meta http-equiv="X-Frame-Options" content="allow">
	<title>Test Panel</title>
	<script type="text/vbscript">
	<!--
	Sub dockPanel(where)
		Dim panel : set Panel = CreateObject("SongsDB.SDBApplication")
		Panel.Objects("testpanel").dockedTo = where
	End Sub
	
	Sub toggleHandle()
		Dim panel : set Panel = CreateObject("SongsDB.SDBApplication")
		If Panel.Objects("testpanel").ShowCaption = true Then
			Panel.Objects("testpanel").ShowCaption = false
		Else
			Panel.Objects("testpanel").ShowCaption = true
		End If
	End Sub
	-->
	</script>
</head>
<body style="background-color:#000000; color:#FFFFFF">
	<input type="button" value="Top" onclick="vbscript:dockPanel('3')">
	<input type="button" value="Bottom" onclick="vbscript:dockPanel('4')">
	<input type="button" value="Left" onclick="vbscript:dockPanel('1')">
	<input type="button" value="Right" onclick="vbscript:dockPanel('2')">
	<input type="button" value="Undock" onclick="vbscript:dockPanel('0')">
	<input type="button" value="Toggle Handle" onclick="vbscript:toggleHandle()">
</body>
</html>
testpanel.vbs

Code: Select all

Dim testPanel : Set testPanel = SDB.UI.NewDockablePersistentPanel("testpanel")
Dim testHtmlPnl
Dim Mnu

Sub OnStartup
	If testPanel.IsNew then
		testPanel.DockedTo = 3
		testPanel.Common.Height = 500
	End If
	testPanel.Caption = "testpanel"
	testPanel.ShowCaption = 0
	Set testHtmlPnl = SDB.UI.NewActiveX(testPanel, "Shell.Explorer.2")
	testHtmlPnl.Common.Align = 5
	testHtmlPnl.Interf.Navigate SDB.ScriptsPath & "Auto\panel.html"
	Set SDB.Objects("testpanel") = testPanel
	Set SDB.Objects("htmltestpanel") = testHtmlPnl 
	Set Sep = SDB.UI.AddMenuItemSep(SDB.UI.Menu_View,0,0) 
	Set Mnu = SDB.UI.AddMenuItem(SDB.UI.Menu_View,0,0) 
	SDB.Objects("TestPanelMenuItem") = Mnu
	SDB.Objects("TestPanelSeparator") = Sep
	Mnu.Caption = "testpanel" 
	Mnu.Checked = testPanel.Common.Visible 
	Script.RegisterEvent Mnu, "OnClick", "ShowPanel"
End Sub

Sub ShowPanel(Item) 
	testPanel.Common.Visible = not testPanel.Common.Visible 
	Mnu.Checked = testPanel.Common.Visible
End Sub
Image

Post Reply