more on app mode

pull/95/head
Michael 2021-07-13 11:43:07 +02:00
rodzic ae6a6e7f38
commit f7cad3ed3e
4 zmienionych plików z 40 dodań i 49 usunięć

Wyświetl plik

@ -0,0 +1,2 @@
git pull upstream +refs/tags/v6.9.0:master
git pull upstream +refs/tags/v5.4.5:master

Wyświetl plik

@ -1,11 +1,12 @@
* 2021-08-13 (snap6 branch/ 2.7 dev)
- fix app mode?
* 2021-08-12 (snap6 branch)
- revert back to three r97 (too many small bugs no big pros? )
* 2021-08-12 (snap6 branch/ 2.7 dev)
- revert back to three r97 (too many small bugs no big pros? (issue #93)
- make fullscreen/appmode usable again
* 2021-07-08 (snap6 branch)
* 2021-07-08 (snap6 branch/ 2.7 dev)
- update and merge Snap 6.9.0
- update to Three r124
- remove tools library and merge Snap's new blocks (map, etc..)

Wyświetl plik

@ -133,14 +133,13 @@ IDE_Morph.prototype.createCorral = nop;
// build panes (do not add all)
IDE_Morph.prototype.buildPanes = function () {
this.createStage();
this.createLogo();
this.createControlBar();
this.createCategories();
this.createPalette();
this.createSpriteBar();
this.createSpriteEditor();
this.createStage();
//this.createCorralBar();
//this.createCorral();
this.createStatusDisplay();
@ -939,7 +938,7 @@ IDE_Morph.prototype.turtlestitchMenu = function () {
IDE_Morph.prototype.toggleAppMode = function (appMode) {
var world = this.world(),
elements = [
// this.logo,
this.logo,
this.controlBar.projectButton,
this.controlBar.settingsButton,
this.controlBar.stageSizeButton,
@ -951,17 +950,16 @@ IDE_Morph.prototype.toggleAppMode = function (appMode) {
this.stageHandle,
this.palette,
this.statusDisplay,
this.categories,
];
this.categories
];
this.isAppMode = isNil(appMode) ? !this.isAppMode : appMode;
if (this.isAppMode) {
this.wasSingleStepping = Process.prototype.enableSingleStepping;
if (this.wasSingleStepping) {
this.toggleSingleStepping();
}
this.wasSingleStepping = Process.prototype.enableSingleStepping;
if (this.wasSingleStepping) {
this.toggleSingleStepping();
}
this.setColor(this.appModeColor);
this.controlBar.setColor(this.color);
this.controlBar.appModeButton.refresh();
@ -985,7 +983,7 @@ IDE_Morph.prototype.toggleAppMode = function (appMode) {
elements.forEach(e =>
e.show()
);
this.stage.setScale(2);
this.stage.setScale(1);
// show all hidden dialogs
world.children.forEach(morph => {
if (morph instanceof DialogBoxMorph) {
@ -1012,7 +1010,6 @@ IDE_Morph.prototype.toggleAppMode = function (appMode) {
}
this.setExtent(this.world().extent());
};
// IDE_Morph resizing
IDE_Morph.prototype.setExtent = function (point) {
@ -1033,7 +1030,7 @@ IDE_Morph.prototype.setExtent = function (point) {
minExt = StageMorph.prototype.dimensions.add(
this.controlBar.height() + 10
);
}
}
} else {
if (this.stageRatio > 1) {
minExt = padding.add(StageMorph.prototype.dimensions);
@ -1042,7 +1039,7 @@ IDE_Morph.prototype.setExtent = function (point) {
StageMorph.prototype.dimensions.multiplyBy(this.stageRatio)
);
}
}
ext = point.max(minExt);
@ -1056,11 +1053,11 @@ IDE_Morph.prototype.setExtent = function (point) {
(maxHeight / this.stage.dimensions.y)
);
if (this.isAppMode) {
this.stageSetRatio = this.height() / this.width();
this.stageRatio = this.height() / this.width();
} else {
this.stageRatio = Math.min(maxRatio, Math.max(minRatio, this.stageRatio));
}
// apply
IDE_Morph.uber.setExtent.call(this, ext);
this.fixLayout();
@ -1475,20 +1472,12 @@ IDE_Morph.prototype.fixLayout = function (situation) {
if (situation !== 'refreshPalette') {
// stage
if (this.isAppMode) {
//this.stage.setScale(this.width() / this.stage.dimensions.x);
// temp hack!!
this.stage.setScale(Math.min(this.height() / this.stage.dimensions.y, this.width() / this.stage.dimensions.x));
//console.log(this.stageRatio, this.height() / this.width())
//this.stage.setScale(3);
this.stage.setCenter(this.center());
//this.stage.setTop(this.controlBar.bottom());
//this.stage.setLeft(0);
//this.stage.setWidth(this.width());
//this.stageSetRatio = this.height() / this.width()
this.controlBar.setTop(0);
this.controlBar.setRight(this.width() - padding);
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.setCenter(this.center());
} else {
this.stage.setScale(this.isSmallStage ? this.stageRatio : 1);
this.stage.setTop(this.logo.bottom() + padding);
@ -1515,14 +1504,13 @@ IDE_Morph.prototype.fixLayout = function (situation) {
));
}
this.statusDisplay.fixLayout();
}
Morph.prototype.trackChanges = true;
this.changed();
};
// SVG export
IDE_Morph.prototype.downloadSVG = function() {
svgStr = this.stage.turtleShepherd.toSVG();

Wyświetl plik

@ -943,11 +943,11 @@ SpriteMorph.prototype.drawTextScale = function (text, scale, trim) {
vy = Math.sin(radians(this.heading - 90));
nx = Math.cos(radians(this.heading ));
ny = Math.sin(radians(this.heading ));
if (!isNaN(text)) {
text = text.toString()
}
for(var i in text) {
var index = text.charCodeAt(i) - 33;
var x = this.xPosition();
@ -1869,7 +1869,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push('-');
blocks.push(block('doScreenshot'));
}
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
@ -1906,7 +1906,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
} else if (cat === 'pen') {
blocks.push(block('clear'));
@ -1923,7 +1923,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push(block('changeOpacity'));
blocks.push(block('getOpacity'));
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
blocks.push(this.makeBlockButton(cat));
} else if (cat === 'embroidery') {
@ -1948,7 +1948,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
} else if (cat === 'other') {
blocks.push(block('zoomToFit'));
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
@ -2061,7 +2061,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
// for debugging: ///////////////
if (this.world().isDevMode) {
blocks.push('-');
@ -2078,10 +2078,10 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push(block('reportStackSize'));
blocks.push(block('reportFrameCount'));
}
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
} else if (cat === 'operators') {
@ -2131,7 +2131,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
}
// for debugging: ///////////////
if (this.world().isDevMode) {
blocks.push('-');
txt = new TextMorph(localize(
@ -2144,7 +2144,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push(block('reportTypeOf'));
blocks.push(block('reportTextFunction'));
}
blocks.push('=');
blocks.push(this.makeBlockButton(cat));
@ -2295,7 +2295,7 @@ SpriteMorph.prototype.blockTemplates = function (category) {
blocks.push(block('reportMappedCode'));
blocks.push('=');
}
blocks.push(this.makeBlockButton());
}
return blocks;
@ -2706,7 +2706,7 @@ StageMorph.prototype.initCamera = function () {
myself.camera.fitScene = function () {
var boundingBox = new THREE.Box3().setFromObject(myself.myStitchLines),
boundingSphere = boundingBox.getBoundingSphere(new THREE.Vector3()), // center with new vector
boundingSphere = boundingBox.getBoundingSphere(),
center = boundingSphere.center,
distance = boundingSphere.radius;