Creating sidebar: Difference between revisions

From MozillaZine Knowledge Base
Jump to navigationJump to search
m (Dev : Extensions : Example Code : Opening Sidebar moved to Creating sidebar)
No edit summary
Line 30: Line 30:


Thanks to mozedit for this code
Thanks to mozedit for this code
----
If you do not need to preprocess the way your sidebar is opened here is an alternative method:
To add a sidebar requires two basic steps in your XUL overlay file.
First add a broadcaster to the "mainBroadcasterSet":
<broadcasterset id="mainBroadcasterSet">
  <broadcaster id="nameofSidebar"
                autoCheck="false"
                label="label"
                type="checkbox"
                group="sidebar"
                sidebarurl="chrome://extname/content/nameofsidebar.xul"
                sidebartitle="titleofSidebar"
                oncommand="toggleSidebar('nameofSidebar');"/>
  </broadcasterset>
Secondly add an item to the View->Sidebar menu:
<menupopup id="viewSidebarMenu">
  <menuitem key="nameofSidebarKey"
            accesskey="&NameofSidebar.accesskey;"
            observes="nameofSidebar"/>
</menupopup>
Optionally add a hotkey to invoke your sidebar:
  <keyset id="mainKeyset">
    <key id="keyopenNameofSidebar"
        key="&NameofSidebar.commandkey;"
        command="nameofSidebar"
        modifiers="accel" />
  </keyset>
And you are done. Adding an item to the context menu is also optional and depends on your needs and requirements.


[[Category:Example code]]
[[Category:Example code]]

Revision as of 15:30, 14 February 2006

This page is part of the extension development documentation project.

Ask your questions in MozillaZine Forums. Also try browsing example code.

Note: development documentation is in process of being moved to Mozilla Development Center (MDC).

This is how to add a sidebar (and a menu item to open it) using JavaScript and XUL. The first file is the XUL file:

<broadcasterset id="mainBroadcasterSet">
	<broadcaster id="nameofSidebar"
		autoCheck="false"
		label="label"
		type="checkbox" 
		group="sidebar"
		sidebarurl=""
		sidebartitle="title"
		oncommand="openSidebar();"/>
</broadcasterset>
<popup id="contentAreaContextMenu">
	<menuitem id="openSideBar"
               label="Open Sidebar"
               accesskey=""
               oncommand="openSidebar();"/>
</popup>

Here is the js file:

function openSidebar(){
	var url="The url, chrome or http";
	var sidebar = document.getElementById('nameofSidebar')
	sidebar.setAttribute('sidebarurl',url);
	toggleSidebar('nameofSidebar');
}

Thanks to mozedit for this code


If you do not need to preprocess the way your sidebar is opened here is an alternative method:

To add a sidebar requires two basic steps in your XUL overlay file. First add a broadcaster to the "mainBroadcasterSet":

<broadcasterset id="mainBroadcasterSet">
  <broadcaster id="nameofSidebar"
               autoCheck="false"
               label="label"
               type="checkbox" 
               group="sidebar"
               sidebarurl="chrome://extname/content/nameofsidebar.xul"
               sidebartitle="titleofSidebar"
               oncommand="toggleSidebar('nameofSidebar');"/>
 </broadcasterset>

Secondly add an item to the View->Sidebar menu:

<menupopup id="viewSidebarMenu">
  <menuitem key="nameofSidebarKey"
            accesskey="&NameofSidebar.accesskey;"
            observes="nameofSidebar"/>
</menupopup>

Optionally add a hotkey to invoke your sidebar:

 <keyset id="mainKeyset">
   <key id="keyopenNameofSidebar"
        key="&NameofSidebar.commandkey;"
        command="nameofSidebar"
        modifiers="accel" />
 </keyset>

And you are done. Adding an item to the context menu is also optional and depends on your needs and requirements.