Blame view

sources/apps/files_svgedit/svg-edit/extensions/ext-helloworld.js 2.12 KB
42e4f8d60   Kload   add all apps
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
  /*
   * ext-helloworld.js
   *
   * Licensed under the Apache License, Version 2
   *
   * Copyright(c) 2010 Alexis Deveria
   *
   */
   
  /* 
  	This is a very basic SVG-Edit extension. It adds a "Hello World" button in
  	the left panel. Clicking on the button, and then the canvas will show the
   	user the point on the canvas that was clicked on.
  */
   
  svgEditor.addExtension("Hello World", function() {
  
  		return {
  			name: "Hello World",
  			// For more notes on how to make an icon file, see the source of
  			// the hellorworld-icon.xml
  			svgicons: "extensions/helloworld-icon.xml",
  			
  			// Multiple buttons can be added in this array
  			buttons: [{
  				// Must match the icon ID in helloworld-icon.xml
  				id: "hello_world", 
  				
  				// This indicates that the button will be added to the "mode"
  				// button panel on the left side
  				type: "mode", 
  				
  				// Tooltip text
  				title: "Say 'Hello World'", 
  				
  				// Events
  				events: {
  					'click': function() {
  						// The action taken when the button is clicked on.
  						// For "mode" buttons, any other button will 
  						// automatically be de-pressed.
  						svgCanvas.setMode("hello_world");
  					}
  				}
  			}],
  			// This is triggered when the main mouse button is pressed down 
  			// on the editor canvas (not the tool panels)
  			mouseDown: function() {
  				// Check the mode on mousedown
  				if(svgCanvas.getMode() == "hello_world") {
  				
  					// The returned object must include "started" with 
  					// a value of true in order for mouseUp to be triggered
  					return {started: true};
  				}
  			},
  			
  			// This is triggered from anywhere, but "started" must have been set
  			// to true (see above). Note that "opts" is an object with event info
  			mouseUp: function(opts) {
  				// Check the mode on mouseup
  				if(svgCanvas.getMode() == "hello_world") {
  					var zoom = svgCanvas.getZoom();
  					
  					// Get the actual coordinate by dividing by the zoom value
  					var x = opts.mouse_x / zoom;
  					var y = opts.mouse_y / zoom;
  					
  					var text = "Hello World!
  
  You clicked here: " 
  						+ x + ", " + y;
  						
  					// Show the text using the custom alert function
  					$.alert(text);
  				}
  			}
  		};
  });