mirror of
https://github.com/bitburner-official/bitburner-src.git
synced 2024-11-20 14:43:48 +01:00
Merge branch 'dev' of https://github.com/Undeemiss/bitburner into message-refactor
This commit is contained in:
commit
58bd2de8e5
@ -22,109 +22,96 @@ function error_process(err, error_callback) {
|
|||||||
if (err && error_callback) error_callback(err);
|
if (err && error_callback) error_callback(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
greenworks.ugcGetItems = function (options, ugc_matching_type, ugc_query_type, success_callback, error_callback) {
|
if (greenworks) {
|
||||||
if (typeof options !== "object") {
|
greenworks.ugcGetItems = function (options, ugc_matching_type, ugc_query_type, success_callback, error_callback) {
|
||||||
error_callback = success_callback;
|
if (typeof options !== "object") {
|
||||||
success_callback = ugc_query_type;
|
error_callback = success_callback;
|
||||||
ugc_query_type = ugc_matching_type;
|
success_callback = ugc_query_type;
|
||||||
ugc_matching_type = options;
|
ugc_query_type = ugc_matching_type;
|
||||||
options = {
|
ugc_matching_type = options;
|
||||||
app_id: greenworks.getAppId(),
|
options = {
|
||||||
page_num: 1,
|
app_id: greenworks.getAppId(),
|
||||||
};
|
page_num: 1,
|
||||||
}
|
};
|
||||||
greenworks._ugcGetItems(options, ugc_matching_type, ugc_query_type, success_callback, error_callback);
|
}
|
||||||
};
|
greenworks._ugcGetItems(options, ugc_matching_type, ugc_query_type, success_callback, error_callback);
|
||||||
|
};
|
||||||
|
|
||||||
greenworks.ugcGetUserItems = function (
|
greenworks.ugcGetUserItems = function (
|
||||||
options,
|
|
||||||
ugc_matching_type,
|
|
||||||
ugc_list_sort_order,
|
|
||||||
ugc_list,
|
|
||||||
success_callback,
|
|
||||||
error_callback,
|
|
||||||
) {
|
|
||||||
if (typeof options !== "object") {
|
|
||||||
error_callback = success_callback;
|
|
||||||
success_callback = ugc_list;
|
|
||||||
ugc_list = ugc_list_sort_order;
|
|
||||||
ugc_list_sort_order = ugc_matching_type;
|
|
||||||
ugc_matching_type = options;
|
|
||||||
options = {
|
|
||||||
app_id: greenworks.getAppId(),
|
|
||||||
page_num: 1,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
greenworks._ugcGetUserItems(
|
|
||||||
options,
|
options,
|
||||||
ugc_matching_type,
|
ugc_matching_type,
|
||||||
ugc_list_sort_order,
|
ugc_list_sort_order,
|
||||||
ugc_list,
|
ugc_list,
|
||||||
success_callback,
|
success_callback,
|
||||||
error_callback,
|
error_callback,
|
||||||
);
|
) {
|
||||||
};
|
if (typeof options !== "object") {
|
||||||
|
error_callback = success_callback;
|
||||||
|
success_callback = ugc_list;
|
||||||
|
ugc_list = ugc_list_sort_order;
|
||||||
|
ugc_list_sort_order = ugc_matching_type;
|
||||||
|
ugc_matching_type = options;
|
||||||
|
options = {
|
||||||
|
app_id: greenworks.getAppId(),
|
||||||
|
page_num: 1,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
greenworks._ugcGetUserItems(
|
||||||
|
options,
|
||||||
|
ugc_matching_type,
|
||||||
|
ugc_list_sort_order,
|
||||||
|
ugc_list,
|
||||||
|
success_callback,
|
||||||
|
error_callback,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
greenworks.ugcSynchronizeItems = function (options, sync_dir, success_callback, error_callback) {
|
greenworks.ugcSynchronizeItems = function (options, sync_dir, success_callback, error_callback) {
|
||||||
if (typeof options !== "object") {
|
if (typeof options !== "object") {
|
||||||
error_callback = success_callback;
|
error_callback = success_callback;
|
||||||
success_callback = sync_dir;
|
success_callback = sync_dir;
|
||||||
sync_dir = options;
|
sync_dir = options;
|
||||||
options = {
|
options = {
|
||||||
app_id: greenworks.getAppId(),
|
app_id: greenworks.getAppId(),
|
||||||
page_num: 1,
|
page_num: 1,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
greenworks._ugcSynchronizeItems(options, sync_dir, success_callback, error_callback);
|
greenworks._ugcSynchronizeItems(options, sync_dir, success_callback, error_callback);
|
||||||
};
|
};
|
||||||
|
|
||||||
greenworks.publishWorkshopFile = function (
|
greenworks.publishWorkshopFile = function (
|
||||||
options,
|
options,
|
||||||
file_path,
|
file_path,
|
||||||
image_path,
|
image_path,
|
||||||
title,
|
title,
|
||||||
description,
|
description,
|
||||||
success_callback,
|
success_callback,
|
||||||
error_callback,
|
error_callback,
|
||||||
) {
|
) {
|
||||||
if (typeof options !== "object") {
|
if (typeof options !== "object") {
|
||||||
error_callback = success_callback;
|
error_callback = success_callback;
|
||||||
success_callback = description;
|
success_callback = description;
|
||||||
description = title;
|
description = title;
|
||||||
title = image_path;
|
title = image_path;
|
||||||
image_path = file_path;
|
image_path = file_path;
|
||||||
file_path = options;
|
file_path = options;
|
||||||
options = {
|
options = {
|
||||||
app_id: greenworks.getAppId(),
|
app_id: greenworks.getAppId(),
|
||||||
tags: [],
|
tags: [],
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
greenworks._publishWorkshopFile(options, file_path, image_path, title, description, success_callback, error_callback);
|
greenworks._publishWorkshopFile(
|
||||||
};
|
options,
|
||||||
|
file_path,
|
||||||
|
image_path,
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
success_callback,
|
||||||
|
error_callback,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
greenworks.updatePublishedWorkshopFile = function (
|
greenworks.updatePublishedWorkshopFile = function (
|
||||||
options,
|
|
||||||
published_file_handle,
|
|
||||||
file_path,
|
|
||||||
image_path,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
success_callback,
|
|
||||||
error_callback,
|
|
||||||
) {
|
|
||||||
if (typeof options !== "object") {
|
|
||||||
error_callback = success_callback;
|
|
||||||
success_callback = description;
|
|
||||||
description = title;
|
|
||||||
title = image_path;
|
|
||||||
image_path = file_path;
|
|
||||||
file_path = published_file_handle;
|
|
||||||
published_file_handle = options;
|
|
||||||
options = {
|
|
||||||
tags: [], // No tags are set
|
|
||||||
};
|
|
||||||
}
|
|
||||||
greenworks._updatePublishedWorkshopFile(
|
|
||||||
options,
|
options,
|
||||||
published_file_handle,
|
published_file_handle,
|
||||||
file_path,
|
file_path,
|
||||||
@ -133,161 +120,184 @@ greenworks.updatePublishedWorkshopFile = function (
|
|||||||
description,
|
description,
|
||||||
success_callback,
|
success_callback,
|
||||||
error_callback,
|
error_callback,
|
||||||
);
|
) {
|
||||||
};
|
if (typeof options !== "object") {
|
||||||
|
error_callback = success_callback;
|
||||||
|
success_callback = description;
|
||||||
|
description = title;
|
||||||
|
title = image_path;
|
||||||
|
image_path = file_path;
|
||||||
|
file_path = published_file_handle;
|
||||||
|
published_file_handle = options;
|
||||||
|
options = {
|
||||||
|
tags: [], // No tags are set
|
||||||
|
};
|
||||||
|
}
|
||||||
|
greenworks._updatePublishedWorkshopFile(
|
||||||
|
options,
|
||||||
|
published_file_handle,
|
||||||
|
file_path,
|
||||||
|
image_path,
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
success_callback,
|
||||||
|
error_callback,
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
// An utility function for publish related APIs.
|
// An utility function for publish related APIs.
|
||||||
// It processes remains steps after saving files to Steam Cloud.
|
// It processes remains steps after saving files to Steam Cloud.
|
||||||
function file_share_process(file_name, image_name, next_process_func, error_callback, progress_callback) {
|
function file_share_process(file_name, image_name, next_process_func, error_callback, progress_callback) {
|
||||||
if (progress_callback) progress_callback("Completed on saving files on Steam Cloud.");
|
if (progress_callback) progress_callback("Completed on saving files on Steam Cloud.");
|
||||||
greenworks.fileShare(
|
greenworks.fileShare(
|
||||||
|
file_name,
|
||||||
|
function () {
|
||||||
|
greenworks.fileShare(
|
||||||
|
image_name,
|
||||||
|
function () {
|
||||||
|
next_process_func();
|
||||||
|
},
|
||||||
|
function (err) {
|
||||||
|
error_process(err, error_callback);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
function (err) {
|
||||||
|
error_process(err, error_callback);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Publishing user generated content(ugc) to Steam contains following steps:
|
||||||
|
// 1. Save file and image to Steam Cloud.
|
||||||
|
// 2. Share the file and image.
|
||||||
|
// 3. publish the file to workshop.
|
||||||
|
greenworks.ugcPublish = function (
|
||||||
file_name,
|
file_name,
|
||||||
function () {
|
title,
|
||||||
greenworks.fileShare(
|
description,
|
||||||
|
image_name,
|
||||||
|
success_callback,
|
||||||
|
error_callback,
|
||||||
|
progress_callback,
|
||||||
|
) {
|
||||||
|
var publish_file_process = function () {
|
||||||
|
if (progress_callback) progress_callback("Completed on sharing files.");
|
||||||
|
greenworks.publishWorkshopFile(
|
||||||
|
file_name,
|
||||||
image_name,
|
image_name,
|
||||||
function () {
|
title,
|
||||||
next_process_func();
|
description,
|
||||||
|
function (publish_file_id) {
|
||||||
|
success_callback(publish_file_id);
|
||||||
},
|
},
|
||||||
function (err) {
|
function (err) {
|
||||||
error_process(err, error_callback);
|
error_process(err, error_callback);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
},
|
};
|
||||||
function (err) {
|
greenworks.saveFilesToCloud(
|
||||||
error_process(err, error_callback);
|
[file_name, image_name],
|
||||||
},
|
function () {
|
||||||
);
|
file_share_process(file_name, image_name, publish_file_process, error_callback, progress_callback);
|
||||||
|
},
|
||||||
|
function (err) {
|
||||||
|
error_process(err, error_callback);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Update publish ugc steps:
|
||||||
|
// 1. Save new file and image to Steam Cloud.
|
||||||
|
// 2. Share file and images.
|
||||||
|
// 3. Update published file.
|
||||||
|
greenworks.ugcPublishUpdate = function (
|
||||||
|
published_file_id,
|
||||||
|
file_name,
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
image_name,
|
||||||
|
success_callback,
|
||||||
|
error_callback,
|
||||||
|
progress_callback,
|
||||||
|
) {
|
||||||
|
var update_published_file_process = function () {
|
||||||
|
if (progress_callback) progress_callback("Completed on sharing files.");
|
||||||
|
greenworks.updatePublishedWorkshopFile(
|
||||||
|
published_file_id,
|
||||||
|
file_name,
|
||||||
|
image_name,
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
function () {
|
||||||
|
success_callback();
|
||||||
|
},
|
||||||
|
function (err) {
|
||||||
|
error_process(err, error_callback);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
greenworks.saveFilesToCloud(
|
||||||
|
[file_name, image_name],
|
||||||
|
function () {
|
||||||
|
file_share_process(file_name, image_name, update_published_file_process, error_callback, progress_callback);
|
||||||
|
},
|
||||||
|
function (err) {
|
||||||
|
error_process(err, error_callback);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Greenworks Utils APIs implmentation.
|
||||||
|
greenworks.Utils.move = function (source_dir, target_dir, success_callback, error_callback) {
|
||||||
|
fs.rename(source_dir, target_dir, function (err) {
|
||||||
|
if (err) {
|
||||||
|
if (error_callback) error_callback(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (success_callback) success_callback();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
greenworks.init = function () {
|
||||||
|
if (this.initAPI()) return true;
|
||||||
|
if (!this.isSteamRunning()) throw new Error("Steam initialization failed. Steam is not running.");
|
||||||
|
var appId;
|
||||||
|
try {
|
||||||
|
appId = fs.readFileSync("steam_appid.txt", "utf8");
|
||||||
|
} catch (e) {
|
||||||
|
throw new Error(
|
||||||
|
"Steam initialization failed. Steam is running," +
|
||||||
|
"but steam_appid.txt is missing. Expected to find it in: " +
|
||||||
|
require("path").resolve("steam_appid.txt"),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (!/^\d+ *\r?\n?$/.test(appId)) {
|
||||||
|
throw new Error(
|
||||||
|
"Steam initialization failed. " +
|
||||||
|
"steam_appid.txt appears to be invalid; " +
|
||||||
|
"it should contain a numeric ID: " +
|
||||||
|
appId,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
throw new Error(
|
||||||
|
"Steam initialization failed, but Steam is running, " +
|
||||||
|
"and steam_appid.txt is present and valid." +
|
||||||
|
"Maybe that's not really YOUR app ID? " +
|
||||||
|
appId.trim(),
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
var EventEmitter = require("events").EventEmitter;
|
||||||
|
greenworks.__proto__ = EventEmitter.prototype;
|
||||||
|
EventEmitter.call(greenworks);
|
||||||
|
|
||||||
|
greenworks._steam_events.on = function () {
|
||||||
|
greenworks.emit.apply(greenworks, arguments);
|
||||||
|
};
|
||||||
|
|
||||||
|
process.versions["greenworks"] = greenworks._version;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Publishing user generated content(ugc) to Steam contains following steps:
|
|
||||||
// 1. Save file and image to Steam Cloud.
|
|
||||||
// 2. Share the file and image.
|
|
||||||
// 3. publish the file to workshop.
|
|
||||||
greenworks.ugcPublish = function (
|
|
||||||
file_name,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
image_name,
|
|
||||||
success_callback,
|
|
||||||
error_callback,
|
|
||||||
progress_callback,
|
|
||||||
) {
|
|
||||||
var publish_file_process = function () {
|
|
||||||
if (progress_callback) progress_callback("Completed on sharing files.");
|
|
||||||
greenworks.publishWorkshopFile(
|
|
||||||
file_name,
|
|
||||||
image_name,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
function (publish_file_id) {
|
|
||||||
success_callback(publish_file_id);
|
|
||||||
},
|
|
||||||
function (err) {
|
|
||||||
error_process(err, error_callback);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
greenworks.saveFilesToCloud(
|
|
||||||
[file_name, image_name],
|
|
||||||
function () {
|
|
||||||
file_share_process(file_name, image_name, publish_file_process, error_callback, progress_callback);
|
|
||||||
},
|
|
||||||
function (err) {
|
|
||||||
error_process(err, error_callback);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Update publish ugc steps:
|
|
||||||
// 1. Save new file and image to Steam Cloud.
|
|
||||||
// 2. Share file and images.
|
|
||||||
// 3. Update published file.
|
|
||||||
greenworks.ugcPublishUpdate = function (
|
|
||||||
published_file_id,
|
|
||||||
file_name,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
image_name,
|
|
||||||
success_callback,
|
|
||||||
error_callback,
|
|
||||||
progress_callback,
|
|
||||||
) {
|
|
||||||
var update_published_file_process = function () {
|
|
||||||
if (progress_callback) progress_callback("Completed on sharing files.");
|
|
||||||
greenworks.updatePublishedWorkshopFile(
|
|
||||||
published_file_id,
|
|
||||||
file_name,
|
|
||||||
image_name,
|
|
||||||
title,
|
|
||||||
description,
|
|
||||||
function () {
|
|
||||||
success_callback();
|
|
||||||
},
|
|
||||||
function (err) {
|
|
||||||
error_process(err, error_callback);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
greenworks.saveFilesToCloud(
|
|
||||||
[file_name, image_name],
|
|
||||||
function () {
|
|
||||||
file_share_process(file_name, image_name, update_published_file_process, error_callback, progress_callback);
|
|
||||||
},
|
|
||||||
function (err) {
|
|
||||||
error_process(err, error_callback);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
// Greenworks Utils APIs implmentation.
|
|
||||||
greenworks.Utils.move = function (source_dir, target_dir, success_callback, error_callback) {
|
|
||||||
fs.rename(source_dir, target_dir, function (err) {
|
|
||||||
if (err) {
|
|
||||||
if (error_callback) error_callback(err);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (success_callback) success_callback();
|
|
||||||
});
|
|
||||||
};
|
|
||||||
|
|
||||||
greenworks.init = function () {
|
|
||||||
if (this.initAPI()) return true;
|
|
||||||
if (!this.isSteamRunning()) throw new Error("Steam initialization failed. Steam is not running.");
|
|
||||||
var appId;
|
|
||||||
try {
|
|
||||||
appId = fs.readFileSync("steam_appid.txt", "utf8");
|
|
||||||
} catch (e) {
|
|
||||||
throw new Error(
|
|
||||||
"Steam initialization failed. Steam is running," +
|
|
||||||
"but steam_appid.txt is missing. Expected to find it in: " +
|
|
||||||
require("path").resolve("steam_appid.txt"),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
if (!/^\d+ *\r?\n?$/.test(appId)) {
|
|
||||||
throw new Error(
|
|
||||||
"Steam initialization failed. " +
|
|
||||||
"steam_appid.txt appears to be invalid; " +
|
|
||||||
"it should contain a numeric ID: " +
|
|
||||||
appId,
|
|
||||||
);
|
|
||||||
}
|
|
||||||
throw new Error(
|
|
||||||
"Steam initialization failed, but Steam is running, " +
|
|
||||||
"and steam_appid.txt is present and valid." +
|
|
||||||
"Maybe that's not really YOUR app ID? " +
|
|
||||||
appId.trim(),
|
|
||||||
);
|
|
||||||
};
|
|
||||||
|
|
||||||
var EventEmitter = require("events").EventEmitter;
|
|
||||||
greenworks.__proto__ = EventEmitter.prototype;
|
|
||||||
EventEmitter.call(greenworks);
|
|
||||||
|
|
||||||
greenworks._steam_events.on = function () {
|
|
||||||
greenworks.emit.apply(greenworks, arguments);
|
|
||||||
};
|
|
||||||
|
|
||||||
process.versions["greenworks"] = greenworks._version;
|
|
||||||
|
|
||||||
module.exports = greenworks;
|
module.exports = greenworks;
|
||||||
|
@ -25,7 +25,7 @@ process.on("uncaughtException", function () {
|
|||||||
|
|
||||||
// We want to fail gracefully if we cannot connect to Steam
|
// We want to fail gracefully if we cannot connect to Steam
|
||||||
try {
|
try {
|
||||||
if (greenworks.init()) {
|
if (greenworks && greenworks.init()) {
|
||||||
log.info("Steam API has been initialized.");
|
log.info("Steam API has been initialized.");
|
||||||
} else {
|
} else {
|
||||||
const error = "Steam API has failed to initialize.";
|
const error = "Steam API has failed to initialize.";
|
||||||
|
@ -8,6 +8,39 @@ const storage = require("./storage");
|
|||||||
const config = new Config();
|
const config = new Config();
|
||||||
|
|
||||||
function getMenu(window) {
|
function getMenu(window) {
|
||||||
|
const canZoomIn = utils.getZoomFactor() <= 2;
|
||||||
|
const zoomIn = () => {
|
||||||
|
const currentZoom = utils.getZoomFactor();
|
||||||
|
const newZoom = currentZoom + 0.1;
|
||||||
|
if (newZoom <= 2.0) {
|
||||||
|
utils.setZoomFactor(window, newZoom);
|
||||||
|
refreshMenu(window);
|
||||||
|
} else {
|
||||||
|
log.log("Max zoom out");
|
||||||
|
utils.writeToast(window, "Cannot zoom in anymore", "warning");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const canZoomOut = utils.getZoomFactor() >= 0.5;
|
||||||
|
const zoomOut = () => {
|
||||||
|
const currentZoom = utils.getZoomFactor();
|
||||||
|
const newZoom = currentZoom - 0.1;
|
||||||
|
if (newZoom >= 0.5) {
|
||||||
|
utils.setZoomFactor(window, newZoom);
|
||||||
|
refreshMenu(window);
|
||||||
|
} else {
|
||||||
|
log.log("Max zoom in");
|
||||||
|
utils.writeToast(window, "Cannot zoom out anymore", "warning");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const canResetZoom = utils.getZoomFactor() !== 1;
|
||||||
|
const resetZoom = () => {
|
||||||
|
utils.setZoomFactor(window, 1);
|
||||||
|
refreshMenu(window);
|
||||||
|
log.log("Reset zoom");
|
||||||
|
};
|
||||||
|
|
||||||
return Menu.buildFromTemplate([
|
return Menu.buildFromTemplate([
|
||||||
{
|
{
|
||||||
label: "File",
|
label: "File",
|
||||||
@ -289,45 +322,45 @@ function getMenu(window) {
|
|||||||
submenu: [
|
submenu: [
|
||||||
{
|
{
|
||||||
label: "Zoom In",
|
label: "Zoom In",
|
||||||
enabled: utils.getZoomFactor() <= 2,
|
enabled: canZoomIn,
|
||||||
accelerator: "CommandOrControl+numadd",
|
accelerator: "CommandOrControl+numadd",
|
||||||
click: () => {
|
click: zoomIn,
|
||||||
const currentZoom = utils.getZoomFactor();
|
},
|
||||||
const newZoom = currentZoom + 0.1;
|
{
|
||||||
if (newZoom <= 2.0) {
|
label: "Zoom In (non numpad)",
|
||||||
utils.setZoomFactor(window, newZoom);
|
enabled: canZoomIn,
|
||||||
refreshMenu(window);
|
visible: false,
|
||||||
} else {
|
accelerator: "CommandOrControl+Plus",
|
||||||
log.log("Max zoom out");
|
acceleratorWorksWhenHidden: true,
|
||||||
utils.writeToast(window, "Cannot zoom in anymore", "warning");
|
click: zoomIn,
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Zoom Out",
|
label: "Zoom Out",
|
||||||
enabled: utils.getZoomFactor() >= 0.5,
|
enabled: canZoomOut,
|
||||||
accelerator: "CommandOrControl+numsub",
|
accelerator: "CommandOrControl+numsub",
|
||||||
click: () => {
|
click: zoomOut,
|
||||||
const currentZoom = utils.getZoomFactor();
|
},
|
||||||
const newZoom = currentZoom - 0.1;
|
{
|
||||||
if (newZoom >= 0.5) {
|
label: "Zoom Out (non numpad)",
|
||||||
utils.setZoomFactor(window, newZoom);
|
enabled: canZoomOut,
|
||||||
refreshMenu(window);
|
accelerator: "CommandOrControl+-",
|
||||||
} else {
|
visible: false,
|
||||||
log.log("Max zoom in");
|
acceleratorWorksWhenHidden: true,
|
||||||
utils.writeToast(window, "Cannot zoom out anymore", "warning");
|
click: zoomOut,
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: "Reset Zoom",
|
label: "Reset Zoom",
|
||||||
enabled: utils.getZoomFactor() !== 1,
|
enabled: canResetZoom,
|
||||||
accelerator: "CommandOrControl+num0",
|
accelerator: "CommandOrControl+num0",
|
||||||
click: () => {
|
click: resetZoom,
|
||||||
utils.setZoomFactor(window, 1);
|
},
|
||||||
refreshMenu(window);
|
{
|
||||||
log.log("Reset zoom");
|
label: "Reset Zoom (non numpad)",
|
||||||
},
|
enabled: canResetZoom,
|
||||||
|
accelerator: "CommandOrControl+0",
|
||||||
|
visible: false,
|
||||||
|
acceleratorWorksWhenHidden: true,
|
||||||
|
click: resetZoom,
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
Loading…
Reference in New Issue
Block a user