Added support for 'Fit to ...' zoom options

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@653 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
Alexis Deveria
2009-09-16 14:12:51 +00:00
parent fe42d462b5
commit b6a1128fd1
2 changed files with 65 additions and 5 deletions

View File

@@ -422,13 +422,26 @@ function svg_edit_setup() {
$('#zoom_dropdown li').bind('mouseup',function() {
var item = $(this);
var val = item.attr('data-val');
var res = svgCanvas.getResolution();
var scrbar = 15;
if(val) {
//TODO: Calculate proper zoom from here.
var w_area = $('#workarea');
var z_info = svgCanvas.setBBoxZoom(val, w_area.width()-scrbar, w_area.height()-scrbar);
if(!z_info) return;
var zoomlevel = z_info.zoom;
var bb = z_info.bbox;
$('#zoom').val(zoomlevel*100);
setResolution(res.w * zoomlevel, res.h * zoomlevel);
var scrLeft = bb.x * zoomlevel;
var scrOffX = w_area.width()/2 - (bb.width * zoomlevel)/2;
w_area[0].scrollLeft = Math.max(0,scrLeft - scrOffX);
var scrTop = bb.y * zoomlevel;
var scrOffY = w_area.height()/2 - (bb.height * zoomlevel)/2;
w_area[0].scrollTop = Math.max(0,scrTop - scrOffY);
} else {
var percent = parseInt(item.text());
$('#zoom').val(percent);
var zoomlevel = percent/100;
var res = svgCanvas.getResolution();
setResolution(res.w * zoomlevel, res.h * zoomlevel, true);
svgCanvas.setZoom(zoomlevel);
}