Explorar el Código

changes the cursor in the editor on ctrl to make it more obvious that it
is clickable.

Nicolas Petton hace 10 años
padre
commit
a81de26c46
Se han modificado 4 ficheros con 62 adiciones y 6 borrados
  1. 3 0
      css/helios.css
  2. 4 0
      css/helios.less
  3. 40 5
      src/Helios-Core.js
  4. 15 1
      src/Helios-Core.st

+ 3 - 0
css/helios.css

@@ -15,6 +15,9 @@ html[xmlns] .clearfix {
 * html .clearfix {
   height: 1%;
 }
+body.navigation .CodeMirror pre {
+  cursor: pointer !important;
+}
 .cm-s-helios.CodeMirror {
   font-family: Consolas, "Liberation Mono", Courier, monospace;
   line-height: 16px;

+ 4 - 0
css/helios.less

@@ -19,6 +19,10 @@ html[xmlns] .clearfix {
 	height: 1%;
 }
 
+body.navigation .CodeMirror pre {
+	cursor: pointer !important;
+}
+
 .cm-s-helios {
 	&.CodeMirror {
 		font-family: Consolas, "Liberation Mono", Courier, monospace;

+ 40 - 5
src/Helios-Core.js

@@ -3954,19 +3954,54 @@ protocol: 'initialization',
 fn: function (){
 var self=this;
 return smalltalk.withContext(function($ctx1) { 
-var $1,$2;
+var $1,$2,$3;
 self._registerServices();
-$1=self._keyBinder();
-_st($1)._setupEvents();
-$2=_st($1)._setupHelper();
+$1=self._setupEvents();
+$ctx1.sendIdx["setupEvents"]=1;
+$2=self._keyBinder();
+_st($2)._setupEvents();
+$3=_st($2)._setupHelper();
 return self}, function($ctx1) {$ctx1.fill(self,"setup",{},globals.HLManager)})},
 args: [],
-source: "setup\x0a\x09self registerServices.\x0a    self keyBinder \x0a\x09\x09setupEvents;\x0a\x09\x09setupHelper",
+source: "setup\x0a\x09self \x0a\x09\x09registerServices;\x0a\x09\x09setupEvents.\x0a    self keyBinder \x0a\x09\x09setupEvents;\x0a\x09\x09setupHelper",
 messageSends: ["registerServices", "setupEvents", "keyBinder", "setupHelper"],
 referencedClasses: []
 }),
 globals.HLManager);
 
+smalltalk.addMethod(
+smalltalk.method({
+selector: "setupEvents",
+protocol: 'private',
+fn: function (){
+var self=this;
+return smalltalk.withContext(function($ctx1) { 
+var $1,$2,$3,$4;
+$1="body"._asJQuery();
+$ctx1.sendIdx["asJQuery"]=1;
+_st($1)._keydown_((function(event){
+return smalltalk.withContext(function($ctx2) {
+$2=_st(event)._ctrlKey();
+if(smalltalk.assert($2)){
+$3="body"._asJQuery();
+$ctx2.sendIdx["asJQuery"]=2;
+return _st($3)._addClass_("navigation");
+};
+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,1)})}));
+$4="body"._asJQuery();
+$ctx1.sendIdx["asJQuery"]=3;
+_st($4)._keyup_((function(event){
+return smalltalk.withContext(function($ctx2) {
+return _st("body"._asJQuery())._removeClass_("navigation");
+}, function($ctx2) {$ctx2.fillBlock({event:event},$ctx1,3)})}));
+return self}, function($ctx1) {$ctx1.fill(self,"setupEvents",{},globals.HLManager)})},
+args: [],
+source: "setupEvents\x0a\x09\x22on ctrl keydown, adds a 'navigation' css class to <body>\x0a\x09for the CodeMirror navigation links. See `HLCodeWidget`.\x22\x0a\x09\x0a\x09'body' asJQuery keydown: [ :event |\x0a\x09\x09event ctrlKey ifTrue: [\x0a\x09\x09\x09'body' asJQuery addClass: 'navigation' ] ].\x0a\x09\x09\x09\x0a\x09'body' asJQuery keyup: [ :event |\x0a\x09\x09'body' asJQuery removeClass: 'navigation' ]",
+messageSends: ["keydown:", "asJQuery", "ifTrue:", "ctrlKey", "addClass:", "keyup:", "removeClass:"],
+referencedClasses: []
+}),
+globals.HLManager);
+
 smalltalk.addMethod(
 smalltalk.method({
 selector: "show:",

+ 15 - 1
src/Helios-Core.st

@@ -1245,7 +1245,9 @@ defaultEnvironment
 !HLManager methodsFor: 'initialization'!
 
 setup
-	self registerServices.
+	self 
+		registerServices;
+		setupEvents.
     self keyBinder 
 		setupEvents;
 		setupHelper
@@ -1259,6 +1261,18 @@ registerServices
 		registerErrorHandler;
 		registerProgressHandler;
 		registerTranscript
+!
+
+setupEvents
+	"on ctrl keydown, adds a 'navigation' css class to <body>
+	for the CodeMirror navigation links. See `HLCodeWidget`."
+	
+	'body' asJQuery keydown: [ :event |
+		event ctrlKey ifTrue: [
+			'body' asJQuery addClass: 'navigation' ] ].
+			
+	'body' asJQuery keyup: [ :event |
+		'body' asJQuery removeClass: 'navigation' ]
 ! !
 
 !HLManager methodsFor: 'rendering'!