added new extension prims (done)

snap8
Jens Mönig 2022-04-04 19:48:29 +02:00
rodzic 8565e8e92f
commit 6882b46021
4 zmienionych plików z 20 dodań i 14 usunięć

Wyświetl plik

@ -11,6 +11,7 @@
* new MOUSE POSITION primitive reporter in the SENSING category
* new "position" choice in OF reporter's attribute dropdown, reports a list of XY coordinates
* new "categories" choice in MY reporter's dropdown, reports an ordered list of all category names whose indices match the "category" reported elsewhere
* new localization extension primitives (prefixed "loc_")
* new "Tad" costume series, thanks, Meghan and Brian!
* **Notable Changes:**
* exporting a library includes dependencies (auto-select all referenced blocks)
@ -36,7 +37,8 @@
* extensions: added new extension primitive "loc_translate(text)"
* extensions: added more extension translation primitives, under construction
* objects: tweaked ASK menu display distinction for FALSE Booleans
* extensions: tweaked localization extension prims, under construction
* extensions: tweaked localization extension prims, under construction
* extensions, gui: added new extension prims (done)
### 2022-04-03
* objects: added shortcut support for ASK menu items

Wyświetl plik

@ -20,7 +20,7 @@
<script src="src/threads.js?version=2022-03-31"></script>
<script src="src/objects.js?version=2022-04-04"></script>
<script src="src/scenes.js?version=2022-03-03"></script>
<script src="src/gui.js?version=2022-03-17"></script>
<script src="src/gui.js?version=2022-04-04"></script>
<script src="src/paint.js?version=2021-07-05"></script>
<script src="src/lists.js?version=2022-02-07"></script>
<script src="src/byob.js?version=2022-03-23"></script>

Wyświetl plik

@ -29,7 +29,7 @@
/*global modules, List, StageMorph, Costume, SpeechSynthesisUtterance, Sound,
IDE_Morph, CamSnapshotDialogMorph, SoundRecorderDialogMorph, isSnapObject, nop,
Color, Process, contains, localize, SnapTranslator*/
Color, Process, contains, localize, SnapTranslator, isString*/
/*jshint esversion: 11, bitwise: false*/
@ -806,16 +806,19 @@ SnapExtensions.primitives.set(
}
);
/*
SnapExtensions.primitives.set(
'loc_set(language, [msg])',
function (lang, msg, proc) {
if (arguments.length === 1) {
return SnapTranslator.language;
var ide = this.parentThatIsA(IDE_Morph),
disabled = ['receiveGo', 'receiveCondition', 'receiveMessage'],
callback = null;
ide.loadNewProject = false;
if (isString(msg) && !contains(disabled, proc.topBlock.selector)) {
callback = () => ide.broadcast(msg);
}
ide.setLanguage(lang, callback, true, true); // don't save, delay
}
);
*/
SnapExtensions.primitives.set(
'loc_translations()',

Wyświetl plik

@ -86,7 +86,7 @@ BlockVisibilityDialogMorph, ThreadManager*/
// Global stuff ////////////////////////////////////////////////////////
modules.gui = '2022-March-18';
modules.gui = '2022-April-04';
// Declarations
@ -6611,7 +6611,7 @@ IDE_Morph.prototype.languageMenu = function () {
menu.popup(world, pos);
};
IDE_Morph.prototype.setLanguage = function (lang, callback, noSave) {
IDE_Morph.prototype.setLanguage = function (lang, callback, noSave, delay) {
var translation = document.getElementById('language'),
src = this.resourceURL('locale', 'lang-' + lang + '.js');
SnapTranslator.unload();
@ -6619,16 +6619,17 @@ IDE_Morph.prototype.setLanguage = function (lang, callback, noSave) {
document.head.removeChild(translation);
}
if (lang === 'en') {
return this.reflectLanguage('en', callback, noSave);
return this.reflectLanguage('en', callback, noSave, delay);
}
translation = document.createElement('script');
translation.id = 'language';
translation.onload = () => this.reflectLanguage(lang, callback, noSave);
translation.onload = () =>
this.reflectLanguage(lang, callback, noSave, delay);
document.head.appendChild(translation);
translation.src = src;
};
IDE_Morph.prototype.reflectLanguage = function (lang, callback, noSave) {
IDE_Morph.prototype.reflectLanguage = function (lang, callback, noSave, delay) {
var projectData,
urlBar = location.hash;
SnapTranslator.language = lang;
@ -6658,12 +6659,12 @@ IDE_Morph.prototype.reflectLanguage = function (lang, callback, noSave) {
this.newProject();
location.hash = urlBar;
} else {
this.openProjectString(projectData);
this.openProjectString(projectData, delay ? callback : null);
}
if (!noSave) {
this.saveSetting('language', lang);
}
if (callback) {callback.call(this); }
if (callback && !delay) {callback.call(this); }
};
// IDE_Morph blocks scaling