DHTMLX Docs & Samples Explorer

Two-State Button Creation

Position
Text
Image
Add?
Source
<script type="text/javascript" src="../../codebase/dhtmlxcommon.js"></script>
<script type="text/javascript" src="../../codebase/dhtmlxtoolbar.js"></script>
<link rel="stylesheet" type="text/css" href="../../codebase/skins/dhtmlxtoolbar_dhx_skyblue.css"></link>
 
<div id="toolbarObj"></div>
<div style="margin-top: 20px;">
<table cellspacing="0" cellpadding="2" border="0">
    <tr>
        <td style="padding-right: 5px;">Position</td>
        <td><input id="txt1" type="text" value="1" style="width: 30px;"></td>
    </tr>
    <tr>
        <td style="padding-right: 5px;">Text</td>
        <td><input id="txt2" type="text" value="Button"></td>
    </tr>
    <tr>
        <td style="padding-right: 5px;">Image</td>
        <td><table cellspacing="0" cellpadding="2" border="0"><tr>
            <td><img id="new"     onclick="changeImage(this);" src="../common/imgs/new.gif"     style="border: #707070 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="open"    onclick="changeImage(this);" src="../common/imgs/open.gif"    style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="save"    onclick="changeImage(this);" src="../common/imgs/save.gif"    style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="save_as" onclick="changeImage(this);" src="../common/imgs/save_as.gif" style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="undo"    onclick="changeImage(this);" src="../common/imgs/undo.gif"    style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="redo"    onclick="changeImage(this);" src="../common/imgs/redo.gif"    style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="cut"     onclick="changeImage(this);" src="../common/imgs/cut.gif"     style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="copy"    onclick="changeImage(this);" src="../common/imgs/copy.gif"    style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="paste"   onclick="changeImage(this);" src="../common/imgs/paste.gif"   style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
            <td><img id="print"   onclick="changeImage(this);" src="../common/imgs/print.gif"   style="border: #E0E0E0 1px solid; width: 18px; height: 18px; cursor: pointer;"></td>
        </tr></table></td>
    </tr>
    <tr>
        <td style="padding-right: 5px;">Add?</td>
        <td><input type="button" value="Add" onclick="add();"></td>
    </tr>
</table>
<table cellspacing="0" cellpadding="2" border="0" style="margin-top: 10px;">
    <tr>
        <td style="padding-right: 5px;"><select id="sel"></select></td>
        <td><input type="button" value="Remove" onclick="remove();"></td>
    </tr>
</table>
</div>
<script>
var sel = document.getElementById("sel");
var toolbar = new dhtmlXToolbarObject("toolbarObj");
toolbar.setIconsPath("../common/imgs/");
toolbar.loadXML("../common/dhxtoolbar_button2state.xml?etc=" + new Date().getTime(), updateList);
var img = "new";
var lastImg = document.getElementById("new");
function changeImage(imgObj) {
    img = imgObj.id;
    imgObj.style.border = "#707070 1px solid";
    lastImg.style.border = "#E0E0E0 1px solid";
    lastImg = imgObj;
}
function add() {
    var id = String(new Date().getTime());
    var pos = Number(document.getElementById("txt1").value);
    var text = String(document.getElementById("txt2").value);
    toolbar.addButtonTwoState(id, pos, (text.length > 0 ? text: null), img + ".gif", null);
    updateList();
}
function getId() {
    var id = sel.options[sel.selectedIndex].value;
    return id;
}
function remove() {
    if (sel.options.length == 0) {
        return;
    }
    toolbar.removeItem(getId());
    updateList();
}
function updateList() {
    sel.options.length = 0;
    toolbar.forEachItem(function(itemId) {
        if (toolbar.getType(itemId) == "buttonTwoState") {
            sel.options.add(new Option("'" + itemId + "' (" + toolbar.getItemText(itemId) + ")", itemId));
        }
    });
}
</script>