full fullscreen and zoom to fit

pull/68/head
Michael Aschauer 2018-10-22 12:35:17 +02:00
rodzic ccf38caec3
commit d2f76901bb
2 zmienionych plików z 60 dodań i 38 usunięć

Wyświetl plik

@ -16,7 +16,9 @@ IDE_Morph.prototype.init = function(isAutoFill) {
'Embroidery tools'
);
// this.isAnimating = false;
this.cloud = new BeetleCloud('/api');
this.paletteWidth = 250; // initially same as logo width
//MorphicPreferences.globalFontFamily = 'Sans, Helvetica, Arial';
this.cloud = new BeetleCloud('/api');
};
// change logo
@ -138,7 +140,7 @@ IDE_Morph.prototype.buildPanes = function () {
this.createStatusDisplay();
this.createStageHandle();
this.createPaletteHandle();
};
StageHandleMorph.prototype.init = function (target) {
@ -149,6 +151,7 @@ StageHandleMorph.prototype.init = function (target) {
this.isDraggable = false;
this.noticesTransparentClick = true;
this.setExtent(new Point(12, 50));
};
IDE_Morph.prototype.origSetStageExtent = IDE_Morph.prototype.setStageExtent;
@ -222,7 +225,7 @@ IDE_Morph.prototype.createControlBar = function () {
}
this.controlBar = new Morph();
this.controlBar.color = this.frameColor;
//this.controlBar.color = this.frameColor;
this.controlBar.color = new Color(250, 250, 250);
this.controlBar.setHeight(this.logo.height()); // height is fixed
this.controlBar.mouseClickLeft = function () {
@ -596,7 +599,7 @@ IDE_Morph.prototype.toggleAppMode = function (appMode) {
this.controlBar.steppingButton,
//this.controlBar.largeStageSizeButton,
this.spriteEditor,
//this.paletteHandle,
this.paletteHandle,
this.stageHandle,
this.palette,
this.statusDisplay,
@ -617,9 +620,12 @@ IDE_Morph.prototype.toggleAppMode = function (appMode) {
morph.hide();
}
});
this.stage.add(this.controlBar);
this.controlBar.alpha = 0;
} else {
this.setColor(this.backgroundColor);
this.controlBar.setColor(this.frameColor);
this.controlBar.setColor(this.controlBar.color);
this.add(this.controlBar);
elements.forEach(function (e) {
e.show();
});
@ -916,16 +922,16 @@ IDE_Morph.prototype.createStatusDisplay = function () {
elements.push(zoomOutButton);
var resetCameraButton = new PushButtonMorph(
var fitScreenButton = new PushButtonMorph(
null,
function () { stage.camera.reset(); },
'Reset View'
function () { stage.camera.fitScene(); },
'Zoom to Fit'
);
resetCameraButton.columns = 4;
resetCameraButton.newColumn = 2;
elements.push(resetCameraButton);
var toggleTurboButton = new ToggleMorph(
elements.push(fitScreenButton);
fitScreenButton.columns = 4;
fitScreenButton.newColumn = 2;
var toggleTurboButton = new ToggleMorph(
'checkbox',
null,
function () {
@ -951,8 +957,16 @@ IDE_Morph.prototype.createStatusDisplay = function () {
function () {
return !stage.turtleShepherd.isMetric();
});
toggleUnitButton.newLines = 3;
elements.push(toggleUnitButton);
toggleUnitButton.newLines = 2;
elements.push(toggleUnitButton);
var resetCameraButton = new PushButtonMorph(
null,
function () { stage.camera.reset(); },
'Reset View'
);
elements.push(resetCameraButton);
resetCameraButton.newLines = 3;
var downloadSVGButton = new PushButtonMorph(
null,
@ -1016,7 +1030,7 @@ IDE_Morph.prototype.fixLayout = function (situation) {
// categories
this.categories.setLeft(this.logo.left());
this.categories.setTop(this.logo.bottom());
this.categories.setTop(this.logo.bottom()+1);
this.categories.setWidth(this.paletteWidth);
}
@ -1029,11 +1043,13 @@ IDE_Morph.prototype.fixLayout = function (situation) {
if (situation !== 'refreshPalette') {
// stage
if (this.isAppMode) {
this.stage.setScale(Math.floor(Math.min(
(this.width() - padding * 2) / this.stage.dimensions.x,
(this.height() - this.controlBar.height() * 2 - padding * 2) /
this.stage.dimensions.y ) * 10) / 10);
this.stage.setScale(this.width() / this.stage.dimensions.x);
//this.stage.setScale(3);
this.stage.setCenter(this.center());
//this.stage.setTop(this.controlBar.bottom());
//this.stage.setLeft(0);
this.controlBar.setTop(0);
this.controlBar.setRight(this.width() - padding);
} else {
this.stage.setScale(this.isSmallStage ? this.stageRatio : 1);
this.stage.setTop(this.logo.bottom() + padding);
@ -2262,9 +2278,6 @@ DialogBoxMorph.prototype.informWithLink = function (
};
IDE_Morph.prototype.toggleStageSize = function (isSmall, forcedRatio) {
};
ProjectDialogMorph.prototype.installCloudProjectList = function (pl) {
var myself = this;

Wyświetl plik

@ -130,7 +130,7 @@ SpriteMorph.prototype.addStitch = function(x1, y1, x2, y2) {
//console.log(w, x2, y2);
//console.log(this.cache);
}
this.reRender();
this.lastJumped = false;
};
@ -152,6 +152,7 @@ SpriteMorph.prototype.addJumpLine = function(x1, y1, x2, y2) {
stage.myJumpLines.add(line);
this.lastJumped = true;
this.reRender();
};
SpriteMorph.prototype.addStitchPoint = function(x2, y2) {
@ -188,6 +189,8 @@ SpriteMorph.prototype.addStitchPoint = function(x2, y2) {
line.visible = stage.renderer.showingStitchPoints;
stage.myStitchPoints.add(line);
this.reRender();
};
SpriteMorph.prototype.addDensityPoint = function(x1, y1) {
@ -212,6 +215,7 @@ SpriteMorph.prototype.addDensityPoint = function(x1, y1) {
circle.translateZ(0.03);
circle.visible = true;
stage.myDensityPoints.add(circle);
this.reRender();
};
@ -579,7 +583,7 @@ SpriteMorph.prototype.clear = function () {
};
SpriteMorph.prototype.reRender = function () {
this.parentThatIsA(StageMorph).renderer.changed = true ;
//this.hide();
this.changed();
};
@ -941,11 +945,10 @@ StageMorph.prototype.initCamera = function () {
this.zoomFactor = 1.7;
this.applyZoom();
this.position.set(0,0,10);
//myself.controls.rotateLeft(radians(90));
} else {
this.position.set(0,0,10);
}
myself.controls.update();
myself.reRender();
};
@ -957,13 +960,15 @@ StageMorph.prototype.initCamera = function () {
center = boundingSphere.center,
distance = boundingSphere.radius;
this.reset();
this.position.set(center.x, center.y, center.z);
this.translateZ(distance * 1.2);
myself.controls.center.set(center.x, center.y, center.z);
myself.controls.dollyOut(1.2);
var width = Math.max(myself.width(), 480),
height = Math.max(myself.height(), 360);
this.zoomFactor = Math.max(width / distance, height / distance);
this.applyZoom();
this.position.set(center.x, center.y, 10);
myself.controls.center.set(center.x, center.y, 10);
myself.controls.update();
myself.reRender();
};
@ -1041,12 +1046,16 @@ StageMorph.prototype.rotateTurtle = function(h) {
StageMorph.prototype.originalStep = StageMorph.prototype.step;
StageMorph.prototype.step = function () {
this.originalStep();
if (!(this.isFastTracked && this.threads.processes.length)) {
this.renderCycle();
} else if (this.stepcounter % 12 == 0) {
this.renderCycle();
} else {
if (this.stepcounter % 12 == 0) {
this.renderCycle();
}
};
this.stepcounter++;
};