📄 main.xul
字号:
<?xml version="1.0"?>
<?xml-stylesheet href="chrome://global/skin" type="text/css"?>
<?xml-stylesheet href="main.css" type="text/css"?>
<!DOCTYPE window SYSTEM "chrome://dtv/locale/main.dtd">
<!-- add hidechrome="true" to eliminate title bar -->
<window id="main" title="&main.title;"
windowtype="main"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:html="http://www.w3.org/1999/xhtml"
hidechrome="true"
onload="onLoad();"
onunload="onUnload();"
onclose="return onClose();"
orient="vertical"
sizemode="normal"
width="1000" height="680"
persist="screenX screenY width height">
<script src="chrome://dtv/content/dnd.js"/>
<script src="chrome://dtv/content/main.js"/>
<popupset><popup id="contextPopup"></popup></popupset>
<!-- TITLEBAR -->
<hbox height="25" container="1" id="titlebar" class="titlebar"
ondblclick="maximizeOrRestore();" >
<!-- MAIN MENUBAR -->
<hbox>
<menubar id="titlebar-menu"
ondblclick="event.stopPropagation(); return false;">
<menu id="file-menu" label="&main.menu.file;" accesskey="&main.menu.file.access;" class="titlebar-toplevel" style="margin-left: 10px;">
<menupopup id="file-popup">
<menuitem id="menuitem-file-open" label="&main.menu.file.open;" acceltext="&main.menu.file.open.accel;" accesskey="&main.menu.file.open.access;" command="open" />
<menuitem label="&main.menu.file.checkversion;" accesskey="&main.menu.file.checkversion.access;" command="checkversion" />
<menuseparator />
<menuitem id="menuitem-video-remove" label="&main.menu.file.removevideo;" accesskey="&main.menu.file.removevideo.access;" command="removevideo" />
<menuitem id="menuitem-video-save" label="&main.menu.file.savevideoas;" accesskey="&main.menu.file.savevideoas.access;" command="savevideoas" />
<menuitem label="&main.menu.file.copyvideourl;" accesskey="&main.menu.file.copyvideourl.access;" command="copyvideourl" />
<menuseparator />
<menuitem label="&main.menu.file.quit;" accesskey="&main.menu.file.quit.access;" command="quit" />
</menupopup>
</menu>
<menu id="edit-menu" label="&main.menu.edit;" accesskey="&main.menu.edit.access;" class="titlebar-toplevel">
<menupopup id="edit-popup">
<menuitem label="&main.menu.edit.copy;" acceltext="&main.menu.edit.copy.accel;" accesskey="&main.menu.edit.copy.access;" command="copy" />
<menuitem label="&main.menu.edit.paste;" acceltext="&main.menu.edit.paste.accel;" accesskey="&main.menu.edit.paste.access;" command="paste" />
<menuitem label="&main.menu.edit.selectall;" acceltext="&main.menu.edit.selectall.accel;" accesskey="&main.menu.edit.selectall.access;" command="selectall" />
<menuseparator />
<menuitem label="&main.menu.edit.preferences;" accesskey="&main.menu.edit.preferences.access;" command="openprefs" />
</menupopup>
</menu>
<menu id="channel-menu" label="&main.menu.channel;" accesskey="&main.menu.channel.access;" class="titlebar-toplevel">
<menupopup id="channel-popup">
<menuitem label="&main.menu.channel.add;" acceltext="&main.menu.channel.add.accel;" accesskey="&main.menu.channel.add.access;" command="addchannel"/>
<menuitem label="&main.menu.channel.newsearchchannel;" accesskey="H" command="newsearchchannel"/>
<menuitem label="&main.menu.channel.newchannelfolder;" acceltext="&main.menu.channel.newchannelfolder.accel;" accesskey="&main.menu.channel.newchannelfolder.access;" command="newchannelfolder"/>
<menuitem label="&main.menu.channel.newchannelguide;" accesskey="&main.menu.channel.newchannelguide.access;" command="newchannelguide"/>
<menuseparator/>
<menuitem id="menuitem-channel-rename" label="&main.menu.channel.rename;" accesskey="&main.menu.channel.rename.access;" command="renamechannel"/>
<menuitem id="menuitem-channel-remove" label="&main.menu.channel.remove;" accesskey="&main.menu.channel.remove.access;" command="removechannel"/>
<menuseparator/>
<menuitem id="menuitem-channel-update" label="&main.menu.channel.update;" accesskey="&main.menu.channel.update.access;" command="updatechannel"/>
<menuitem label="&main.menu.channel.updateall;" accesskey="&main.menu.channel.updateall.access;" command="updateall"/>
<menuseparator/>
<menuitem label="&main.menu.channel.tellafriend;" accesskey="&main.menu.channel.tellafriend.access;" command="recommendcurrentchannel" />
<menuitem label="&main.menu.channel.copyurl;" accesskey="&main.menu.channel.copyurl.access;" command="copychannellink"/>
</menupopup>
</menu>
<menu id="playlist-menu" label="&main.menu.playlist;" accesskey="&main.menu.playlist.access;" class="titlebar-toplevel">
<menupopup id="playlist-popup">
<menuitem label="&main.menu.playlist.newplaylist;" accesskey="&main.menu.playlist.newplaylist.access;" acceltext="&main.menu.playlist.newplaylist.accel;" command="newplaylist"/>
<menuitem label="&main.menu.playlist.newplaylistfolder;" accesskey="&main.menu.playlist.newplaylistfolder.access;" acceltext="&main.menu.playlist.newplaylistfolder.accel;" command="newplaylistfolder"/>
<menuseparator/>
<menuitem id="menuitem-playlist-rename" label="&main.menu.playlist.rename;" accesskey="&main.menu.playlist.rename.access;" command="renameplaylist"/>
<menuitem id="menuitem-playlist-remove" label="&main.menu.playlist.remove;" accesskey="&main.menu.playlist.remove.access;" command="removeplaylist"/>
</menupopup>
</menu>
<menu id="playback-menu" label="&main.menu.playback;" accesskey="&main.menu.playback.access;" class="titlebar-toplevel">
<menupopup id="video-popup">
<menuitem id="menuitem-play" label="&main.menu.playback.play;" pause-label="&main.menu.playback.pause;" play-label="&main.menu.playback.play;" acceltext="&main.menu.playback.play.accel;" accesskey="&main.menu.playback.play.access;" command="playpausevideo" />
<menuitem label="&main.menu.playback.stop;" acceltext="&main.menu.playback.stop.accel;" accesskey="&main.menu.playback.stop.access;" command="stopvideo" />
<menuseparator/>
<menuitem label="&main.menu.playback.next;" acceltext="&main.menu.playback.next.accel;" accesskey="&main.menu.playback.next.access;" command="nextvideo" />
<menuitem label="&main.menu.playback.previous;" acceltext="&main.menu.playback.previous.accel;" accesskey="&main.menu.playback.previous.access;" command="previousvideo" />
<menuseparator/>
<menuitem label="&main.menu.playback.fullscreen;" accesskey="&main.menu.playback.fullscreen.access;" command="fullscreen" acceltext="&main.menu.playback.fullscreen.accel;" />
</menupopup>
</menu>
<menu id="help-menu" label="&main.menu.help;" accesskey="&main.menu.help.access;" class="titlebar-toplevel">
<menupopup id="help-popup">
<menuitem label="&main.menu.help.about;" accesskey="&main.menu.help.about.access;" command="about"/>
<menuitem label="&main.menu.help.donate;" accesskey="&main.menu.help.donate.access;" command="donate"/>
</menupopup>
</menu>
</menubar>
</hbox>
<!-- / MAIN MENUBAR -->
<!-- WINDOW TITLE -->
<titlebar flex="1" container="1">
<caption flex="1" label="&main.title;"/>
</titlebar>
<!-- / WINDOW TITLE -->
<!-- WINDOW BUTTONS -->
<hbox flex="0" width="55" height="24" align="center">
<image id="titlebar-buttons-minimize" class="titlebar-button" onclick="minimize();" />
<image id="titlebar-buttons-maximize" class="titlebar-button" onclick="maximizeOrRestore();" />
<image id="titlebar-buttons-close" class="titlebar-button" onclick="handleExit();" />
</hbox>
<!-- / WINDOW BUTTONS -->
</hbox>
<!-- / TITLEBAR -->
<!-- CONTENT AREA -->
<hbox flex="1">
<resizer id="resizer-left" dir="left" class="side-resizer" oncommand="return doResize(event);" />
<!-- CHANNEL BAR -->
<browser id="channelsDisplay" src="" type="content"
flex="0" width="200" minwidth="50" maxwidth="400"
ondraggesture="return onDragGesture(event, 'channelsDisplay');"
ondragover="return onDragOver(event, 'channelsDisplay');"
ondragexit="return onDragExit(event, 'channelsDisplay');"
ondragdrop="return onDragDrop(event, 'channelsDisplay');"
/>
<!-- / CHANNEL BAR -->
<!-- DIVIDER -->
<splitter id="mainSplitter" collapse="before" width="10"/>
<!-- / DIVIDER -->
<browser id="mainDisplay" src="" type="content" flex="1"
ondraggesture="return onDragGesture(event, 'mainDisplay');"
ondragover="return onDragOver(event, 'mainDisplay');"
ondragexit="return onDragExit(event, 'mainDisplay');"
ondragdrop="return onDragDrop(event, 'mainDisplay');" />
<vbox id="video-box" flex="1" collapsed="true">
<browser flex="1" id="mainDisplayVideo"
src="chrome://dtv/content/video-display-vlc.html"
type="content" />
<browser id="videoInfoDisplay" src="" type="content"
height="40px"/>
</vbox>
<resizer id="resizer-right" dir="right" class="side-resizer" oncommand="return doResize(event);" />
</hbox>
<!-- / CONTENT AREA -->
<!-- BOTTOM -->
<hbox flex="0" height="64" id="bottom" class="bottom" align="center">
<hbox flex="0" container="1" width="245" height="64" minheight="64" id="bottom-left">
<hbox flex="0" maxheight="29" id="bottom-left-search" >
<textbox type="autocomplete" flex="1" id="search-textbox" onkeydown="onSearchKeyDown(event);">
<stack onclick="jsbridge.showSearchMenu();">
<hbox>
<image id="search-icon" />
<popupset><popup id="searchMenu"></popup></popupset>
</hbox>
<image class="searchbar-dropmarker-image" />
</stack>
</textbox>
</hbox>
</hbox>
<spacer flex="0" width="245" id="bottom-left-blank" collapsed="true" />
<stack flex="0" width="220" id="bottom-progress">
<label id="progress-text" left="5" top="7">00:00:00</label>
<image id="progress-slider" class="progress-slider-inactive" left="61" top="10"/>
</stack>
<spacer flex="1"/>
<hbox flex="0" id="bottom-buttons" width="185" align="center">
<image id="bottom-buttons-previous" class="bottom-buttons-previous-inactive" />
<image id="bottom-buttons-stop" class="bottom-buttons-stop-inactive" />
<image id="bottom-buttons-play" class="bottom-buttons-play-inactive" />
<image id="bottom-buttons-fullscreen" class="bottom-buttons-fullscreen-inactive" />
<image id="bottom-buttons-next" class="bottom-buttons-next-inactive" />
</hbox>
<spacer flex="1"/>
<stack flex="0" id="volume">
<image left="98" top="26" src="images/bottom-volume-slider.png" id="knob"/>
</stack>
<resizer dir="bottomright" id="resizer-bottom-right" oncommand="return doResize(event);"/>
<spacer flex="0" width="20" id="bottom-right-blank" collapsed="true" />
</hbox>
<command id="showsearchmenu" oncommand="jsbridge.showSearchMenu();" />
<command id="open" oncommand="openFile();" />
<command id="checkversion" oncommand="pybridge.checkForUpdates();" />
<command id="removevideo" oncommand="pybridge.removeCurrentItems();" />
<command id="savevideoas" oncommand="jsbridge.saveVideo();" />
<command id="copyvideourl" oncommand="pybridge.copyCurrentItemURL();" />
<command id="quit" oncommand="handleExit();" />
<command id="copy" oncommand="clipboardCopy();" />
<command id="paste" oncommand="clipboardPaste();" />
<command id="selectall" oncommand="pybridge.selectAllItems();" />
<command id="addchannel" oncommand="pybridge.addChannel();" />
<command id="newsearchchannel" oncommand="pybridge.createNewSearchChannel();" />
<command id="newchannelfolder" oncommand="pybridge.createNewChannelFolder();" />
<command id="newchannelguide" oncommand="pybridge.createNewChannelGuide();" />
<command id="renamechannel" oncommand="pybridge.renameCurrentChannel();" />
<command id="removechannel" oncommand="pybridge.removeCurrentChannel();" />
<command id="updatechannel" oncommand="pybridge.updateCurrentChannel();" />
<command id="updateall" oncommand="pybridge.updateChannels();" />
<command id="copychannellink" oncommand="pybridge.copyChannelLink();" />
<command id="recommendcurrentchannel" oncommand="pybridge.recommendCurrentChannel();" />
<command id="newplaylist" oncommand="pybridge.createNewPlaylist();" />
<command id="newplaylistfolder" oncommand="pybridge.createNewPlaylistFolder();" />
<command id="renameplaylist" oncommand="pybridge.renameCurrentPlaylist();" />
<command id="removeplaylist" oncommand="pybridge.removeCurrentPlaylist();" />
<command id="playpausevideo" oncommand="pybridge.playPause();" />
<command id="stopvideo" oncommand="pybridge.stop();" />
<command id="nextvideo" oncommand="pybridge.skip(1);" />
<command id="previousvideo" oncommand="pybridge.skipPrevious();" />
<command id="fullscreen" oncommand="onFullscreenActivate();" />
<command id="about" oncommand="window.openDialog('chrome://dtv/content/about.xul','aboutdialog','chrome,dependent,centerscreen');" />
<command id="donate" oncommand="pybridge.openDonatePage();" />
<command id="openprefs" oncommand="window.openDialog('chrome://dtv/content/prefs.xul','prefs','chrome,dependent,centerscreen');" />
</window>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -