##// END OF EJS Templates
improve new tooltip
Matthias BUSSONNIER -
Show More
@@ -307,14 +307,19 b' option.introspection {'
307 307 }
308 308
309 309 /*properties of tooltip before "expand"*/
310 .smalltooltip {
310 .smalltooltip{
311 311 text-overflow: ellipsis;
312 312 overflow: hidden;
313 height:15%;
313 height:20px;
314 }
315 .tooltip div
316 {
317 height: 200px;
318 overflow : auto;
314 319 }
315
316 320 .tooltip {
317 321 /*transition when "expand"ing tooltip */
322 overflow : hidden;
318 323 font-size: 14px;
319 324 -webkit-transition-property: height;
320 325 -webkit-transition-duration: 1s;
@@ -355,6 +360,7 b' option.introspection {'
355 360 padding-left:7px;
356 361 font-family: monospace;
357 362 min-height:50px;
363 max-height : 70%;
358 364 }
359 365
360 366 /*fixed part of the completion*/
@@ -165,12 +165,14 b' var IPython = (function (IPython) {'
165 165 // get the event.
166 166 if (this.tooltip_timeout != null){
167 167 clearTimeout(this.tooltip_timeout);
168 $('#tooltip').remove();
168 $('#tooltip').addClass('hidden');
169 169 this.tooltip_timeout = null;
170 170 }
171 171 }
172 172
173 173 CodeCell.prototype.finish_tooltip = function (reply) {
174 IPython.tooltip.show(reply,this.code_mirror.cursorCoords());
175 return;
174 176 // Extract call tip data; the priority is call, init, main.
175 177 defstring = reply.call_def;
176 178 if (defstring == null) { defstring = reply.init_definition; }
@@ -15,11 +15,64 b' var IPython = (function (IPython) {'
15 15
16 16 var Tooltip = function (notebook) {
17 17 this.tooltip = $('#tooltip');
18 this.text = $('<pre/>')
19 this.text.html('something');
18 this.text = $('<div/>')
19 .addClass('smalltooltip');
20 20 this.tooltip.css('left',50+'px');
21 21 this.tooltip.css('top',50+'px');
22 this.tooltip.append(this.text);
22
23 var tooltip = this.tooltip;
24 var text = this.text;
25
26 var expandspan=$('<span/>').text('Expand')
27 .addClass('ui-icon')
28 .addClass('ui-icon-plus');
29 var expandlink=$('<a/>').attr('href',"#")
30 .addClass("ui-corner-all") //rounded corner
31 .attr('role',"button")
32 .attr('id','expanbutton')
33 .append(expandspan)
34 .click(function(){
35 text.removeClass('smalltooltip');
36 text.addClass('bigtooltip');
37 $('#expanbutton').remove();
38 //setTimeout(function(){that.code_mirror.focus();}, 50);
39 });
40
41 var morelink=$('<a/>').attr('href',"#");
42 morelink.attr('role',"button");
43 morelink.addClass('ui-button');
44 //morelink.addClass("ui-corner-all"); //rounded corner
45 //morelink.addClass('ui-state-default');
46 var morespan=$('<span/>').text('Open in Pager');
47 morespan.addClass('ui-icon');
48 morespan.addClass('ui-icon-arrowstop-l-n');
49 morelink.append(morespan);
50 morelink.click(function(){
51 var msg_id = IPython.notebook.kernel.execute(name+"?");
52 IPython.notebook.msg_cell_map[msg_id] = IPython.notebook.get_selected_cell().cell_id;
53 that.remove_and_cancel_tooltip();
54 setTimeout(function(){that.code_mirror.focus();}, 50);
55 });
56
57 var closelink=$('<a/>').attr('href',"#");
58 closelink.attr('role',"button");
59 closelink.addClass('ui-button');
60 //closelink.addClass("ui-corner-all"); //rounded corner
61 //closelink.adClass('ui-state-default'); // grey background and blue cross
62 var closespan=$('<span/>').text('Close');
63 closespan.addClass('ui-icon');
64 closespan.addClass('ui-icon-close');
65 closelink.append(closespan);
66 closelink.click(function(){
67 that.remove_and_cancel_tooltip();
68 setTimeout(function(){that.code_mirror.focus();}, 50);
69 });
70 //construct the tooltip
71 tooltip.append(closelink);
72 tooltip.append(expandlink);
73 tooltip.append(morelink);
74
75 tooltip.append(this.text);
23 76 };
24 77
25 78
@@ -39,9 +92,32 b' var IPython = (function (IPython) {'
39 92 this.tooltip_timeout = null;
40 93 }
41 94 }
42 Tooltip.prototype.show = function()
95 Tooltip.prototype.show = function(reply,pos)
43 96 {
44 this.tooltip.removeClass('hidden');
97 this.tooltip.css('left',pos.x+'px');
98 this.tooltip.css('top',pos.yBot+'px');
99 this.tooltip.removeClass('hidden');
100
101 // build docstring
102 defstring = reply.call_def;
103 if (defstring == null) { defstring = reply.init_definition; }
104 if (defstring == null) { defstring = reply.definition; }
105
106 docstring = reply.call_docstring;
107 if (docstring == null) { docstring = reply.init_docstring; }
108 if (docstring == null) { docstring = reply.docstring; }
109 if (docstring == null) { docstring = "<empty docstring>"; }
110
111 this.text.children().remove();
112
113 var pre=$('<pre/>').html(utils.fixConsole(docstring));
114 if(defstring){
115 var defstring_html = $('<pre/>').html(utils.fixConsole(defstring));
116 this.text.append(defstring_html);
117 }
118 this.text.append(pre)
119
120
45 121 }
46 122
47 123 Tooltip.prototype.showInPager = function(){
@@ -193,7 +193,7 b' data-notebook-id={{notebook_id}}'
193 193 </div>
194 194
195 195 </div>
196 <div id='tooltip' class='tooltip smalltooltip ui-corner-all hidden'></div>
196 <div id='tooltip' class='tooltip ui-corner-all hidden'></div>
197 197
198 198
199 199 {% end %}
General Comments 0
You need to be logged in to leave comments. Login now