diff --git a/src/css/builder.css b/src/css/builder.css index a01c0329..61201367 100644 --- a/src/css/builder.css +++ b/src/css/builder.css @@ -1674,3 +1674,21 @@ input.screenCoordinate::-webkit-inner-spin-button { #eventHandlerDialog .wrap_right .container .CodeMirror .CodeMirror-scroll { height: 464px; } + +.eventHandlerIcon { + display: inline-block; + position: relative; + top: 2px; + left: 4px; + margin-right: 4px; + text-indent: -3000px; + height: 20px; + width: 20px; + background-repeat: no-repeat; + background-position: left top; + background-image: url('images/eventHandlerIcon.png'); +} + +.eventHandlerIcon:hover { + opacity: 0.8; +} diff --git a/src/css/images/eventHandlerIcon.png b/src/css/images/eventHandlerIcon.png new file mode 100644 index 00000000..13ff5fdf Binary files /dev/null and b/src/css/images/eventHandlerIcon.png differ diff --git a/src/js/views/outline.js b/src/js/views/outline.js index 765b39e9..fd2d32ef 100644 --- a/src/js/views/outline.js +++ b/src/js/views/outline.js @@ -160,7 +160,9 @@ return null; return model.getSelectedNode() || model.getActivePage(); }, - _renderPageNode: function (domNode, node) { + _renderSpecialNode: function (domNode, node) { + var id, titleNode, element, icon; + // Display ID when type is Page. if (node.getType() === "Page") { //set page id var id = node.getProperty('id'), @@ -170,6 +172,20 @@ .appendTo(domNode.find("> a")); titleNode.text(' (' + id + ')'); } + + // Add event handler icon to outline view. + if (node.hasEventHandlers()) { + element = domNode.find('a'); + icon = $('Event Handler') + .click(function(e) { + // After 0.1 second will trigger open dialog action + // Because property view construction is delayed. + setTimeout(function() { + $('#eventHandlerElement').trigger('click'); + }, 100); + }); + element.append(icon); + } }, _render: function (domNode, data) { var labelFunc, parentNode = data.getParent(), newTopLevelNode; @@ -187,7 +203,7 @@ $('