Update reader.
@@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" GeneratedByTileIconifier="true">
|
||||
<VisualElements ShowNameOnSquare150x150Logo="on" Square150x150Logo="VisualElements\MediumIconReader.png" Square70x70Logo="VisualElements\SmallIconReader.png" ForegroundText="light" BackgroundColor="#004fe2" TileIconifierColorSelection="Default" TileIconifierCreatedWithUpgrade="true" />
|
||||
</Application>
|
||||
|
After Width: | Height: | Size: 7.6 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<ShortcutItemImage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<OriginalBytes>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</OriginalBytes>
|
||||
<OriginalPath>E:\Profiles\Bruce\Desktop\tilesassets\medium.scale-140.png</OriginalPath>
|
||||
<Height>100</Height>
|
||||
<Width>100</Width>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</ShortcutItemImage>
|
||||
|
After Width: | Height: | Size: 5.1 KiB |
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<ShortcutItemImage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<OriginalBytes>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</OriginalBytes>
|
||||
<OriginalPath>E:\Profiles\Bruce\Desktop\tilesassets\small.scale-140.png</OriginalPath>
|
||||
<Height>50</Height>
|
||||
<Width>50</Width>
|
||||
<X>0</X>
|
||||
<Y>0</Y>
|
||||
</ShortcutItemImage>
|
||||
@@ -34,4 +34,11 @@
|
||||
<scale dpi="180">splash\manager\splash.scale-180.png</scale>
|
||||
<scale dpi="default">splash\manager\splash.png</scale>
|
||||
</resource>
|
||||
<resource id="reader">
|
||||
<scale dpi="80">splash\reader\splash.scale-80.png</scale>
|
||||
<scale dpi="100">splash\reader\splash.scale-100.png</scale>
|
||||
<scale dpi="140">splash\reader\splash.scale-140.png</scale>
|
||||
<scale dpi="180">splash\reader\splash.scale-180.png</scale>
|
||||
<scale dpi="default">splash\reader\splash.png</scale>
|
||||
</resource>
|
||||
</resources>
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
@@ -32,7 +32,7 @@
|
||||
ForegroundText='light'
|
||||
BackgroundColor='#004fe2'>
|
||||
<DefaultTile ShowName='allLogos' />
|
||||
<SplashScreen Image="VisualElements\splash\manager\splash.png"
|
||||
<SplashScreen Image="VisualElements\splash\reader\splash.png"
|
||||
BackgroundColor="#004fe2" DarkModeBackgroundColor='#002770' />
|
||||
</VisualElements>
|
||||
</Application>
|
||||
|
||||
@@ -35,6 +35,8 @@
|
||||
try {
|
||||
inst.sendAsync(body, encoding, function(resp) {
|
||||
if (c) c(resp);
|
||||
}, function(err) {
|
||||
if (e) e(err);
|
||||
});
|
||||
} catch (ex) { if (e) e(ex); }
|
||||
});
|
||||
|
||||
@@ -0,0 +1,285 @@
|
||||
(function(global) {
|
||||
function isString(obj) {
|
||||
return typeof obj === "string" || obj instanceof String;
|
||||
}
|
||||
|
||||
function isFunction(obj) {
|
||||
return typeof obj === "function";
|
||||
}
|
||||
|
||||
function isBool(obj) {
|
||||
return typeof obj === "boolean" || obj instanceof Boolean;
|
||||
}
|
||||
|
||||
function isNumber(obj) {
|
||||
return typeof obj === "number" || obj instanceof Number;
|
||||
}
|
||||
|
||||
function isDate(obj) {
|
||||
return obj instanceof Date;
|
||||
}
|
||||
|
||||
function isDevToolsOpen() {
|
||||
if (window.__IE_DEVTOOLBAR_CONSOLE_COMMAND_LINE) {
|
||||
return true; // IE10 或更早版本
|
||||
}
|
||||
if (window.__BROWSERTOOLS_CONSOLE) {
|
||||
return true; // IE11
|
||||
}
|
||||
if (window.__BROWSERTOOLS_DOMEXPLORER_ADDED) {
|
||||
return true; // IE11
|
||||
}
|
||||
return false;
|
||||
}
|
||||
var APIs = [
|
||||
"Windows.ApplicationModel.DesignMode.designModeEnabled",
|
||||
"Windows.ApplicationModel.Resources.Core.ResourceContext",
|
||||
"Windows.ApplicationModel.Resources.Core.ResourceManager",
|
||||
"Windows.ApplicationModel.Search.Core.SearchSuggestionManager",
|
||||
"Windows.ApplicationModel.Search.SearchQueryLinguisticDetails",
|
||||
"Windows.Data.Text.SemanticTextQuery",
|
||||
"Windows.Foundation.Collections.CollectionChange",
|
||||
"Windows.Foundation.Uri",
|
||||
"Windows.Globalization.ApplicationLanguages",
|
||||
"Windows.Globalization.Calendar",
|
||||
"Windows.Globalization.DateTimeFormatting",
|
||||
"Windows.Globalization.Language",
|
||||
"Windows.Phone.UI.Input.HardwareButtons",
|
||||
"Windows.Storage.ApplicationData",
|
||||
"Windows.Storage.CreationCollisionOption",
|
||||
"Windows.Storage.BulkAccess.FileInformationFactory",
|
||||
"Windows.Storage.FileIO",
|
||||
"Windows.Storage.FileProperties.ThumbnailType",
|
||||
"Windows.Storage.FileProperties.ThumbnailMode",
|
||||
"Windows.Storage.FileProperties.ThumbnailOptions",
|
||||
"Windows.Storage.KnownFolders",
|
||||
"Windows.Storage.Search.FolderDepth",
|
||||
"Windows.Storage.Search.IndexerOption",
|
||||
"Windows.Storage.Streams.RandomAccessStreamReference",
|
||||
"Windows.UI.ApplicationSettings.SettingsEdgeLocation",
|
||||
"Windows.UI.ApplicationSettings.SettingsCommand",
|
||||
"Windows.UI.ApplicationSettings.SettingsPane",
|
||||
"Windows.UI.Core.AnimationMetrics",
|
||||
"Windows.UI.Input.EdgeGesture",
|
||||
"Windows.UI.Input.EdgeGestureKind",
|
||||
"Windows.UI.Input.PointerPoint",
|
||||
"Windows.UI.ViewManagement.HandPreference",
|
||||
"Windows.UI.ViewManagement.InputPane",
|
||||
"Windows.UI.ViewManagement.UISettings",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBar",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarBitmapIcon",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarIconButton",
|
||||
"Windows.UI.WebUI.Core.WebUICommandBarSymbolIcon",
|
||||
"Windows.UI.WebUI.WebUIApplication",
|
||||
];
|
||||
for (var i = 0; i < APIs.length; i++) {
|
||||
var api = APIs[i];
|
||||
apiNs = api.split(".");
|
||||
var lastNs = global;
|
||||
for (var j = 0; j < apiNs.length - 1; j++) {
|
||||
var ns = apiNs[j];
|
||||
if (typeof lastNs[ns] === "undefined") lastNs[ns] = {};
|
||||
lastNs = lastNs[ns];
|
||||
}
|
||||
var leaf = apiNs[apiNs.length - 1];
|
||||
if ("abcdefghijklmnopqrstuvwxyz".indexOf(leaf[0]) < 0) {
|
||||
lastNs[leaf] = {};
|
||||
Object.defineProperty(lastNs[leaf], "current", {
|
||||
get: function() { return null; },
|
||||
enumerable: true,
|
||||
});
|
||||
}
|
||||
}
|
||||
Object.defineProperty(Windows.ApplicationModel.DesignMode, "designModeEnabled", {
|
||||
get: isDevToolsOpen,
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Foundation.Collections.CollectionChange = {
|
||||
reset: 0,
|
||||
itemInserted: 1,
|
||||
itemRemoved: 2,
|
||||
itemChanged: 3
|
||||
};
|
||||
Windows.Foundation.Uri = function(uri) {
|
||||
var inst = null;
|
||||
if (arguments.length === 2) {
|
||||
inst = external.Utilities.createUri2(uri, arguments[1]);
|
||||
} else {
|
||||
inst = external.Utilities.createUri(uri);
|
||||
}
|
||||
inst.jsType = this;
|
||||
return inst;
|
||||
};
|
||||
Windows.Globalization.ApplicationLanguages = {};
|
||||
Object.defineProperty(Windows.Globalization.ApplicationLanguages, "languages", {
|
||||
get: function() {
|
||||
try {
|
||||
var list = [];
|
||||
var langs = external.System.Locale.recommendLocaleNames;
|
||||
langs.forEach(function(item) {
|
||||
list.push(item);
|
||||
});
|
||||
return list;
|
||||
} catch (e) {
|
||||
return navigator.languages;
|
||||
}
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Object.defineProperty(Windows.Globalization.ApplicationLanguages, "Languages", {
|
||||
get: function() {
|
||||
return Windows.Globalization.ApplicationLanguages.languages;
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Globalization.LanguageLayoutDirection = {
|
||||
ltr: 0,
|
||||
rtl: 1,
|
||||
ttbLtr: 2,
|
||||
ttbRtl: 3
|
||||
};
|
||||
Windows.Globalization.Language = function(languageTag) {
|
||||
var inst = external.System.Locale.createLanguage(languageTag);
|
||||
inst.jsType = this;
|
||||
return inst;
|
||||
};
|
||||
Object.defineProperty(Windows.Globalization.Language, "currentInputMethodLanguageTag", {
|
||||
get: function() {
|
||||
return external.System.Locale.currentInputMethodLanguageTag;
|
||||
},
|
||||
enumerable: true,
|
||||
});
|
||||
Windows.Globalization.Language.isWellFormed = external.System.Locale.isWellFormed;
|
||||
Windows.Globalization.Language.getMuiCompatibleLanguageListFromLanguageTags = external.System.Locale.getMuiCompatibleLanguageListFromLanguageTags;
|
||||
Windows.Globalization.Calendar = function(args) {
|
||||
var inst = null;
|
||||
if (arguments.length === 0) {
|
||||
inst = external.Utilities.createCalendar(args);
|
||||
} else if (arguments.length === 1) {
|
||||
inst = external.Utilities.createCalendar2(args);
|
||||
} else if (arguments.length === 3) {
|
||||
inst = external.Utilities.createCalendar3(args, arguments[1], arguments[2], arguments[3]);
|
||||
} else if (arguments.length === 4) {
|
||||
inst = external.Utilities.createCalendar4(args, arguments[1], arguments[2], arguments[3], arguments[4]);
|
||||
}
|
||||
return inst;
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting = {};
|
||||
Windows.Globalization.DateTimeFormatting.DayFormat = {
|
||||
default: 1,
|
||||
none: 0
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.DayOfWeekFormat = {
|
||||
none: 0,
|
||||
default: 1,
|
||||
abberviated: 2,
|
||||
full: 3
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.HourFormat = {
|
||||
none: 0,
|
||||
default: 1
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.MinuteFormat = {
|
||||
none: 0,
|
||||
default: 1
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.MonthFormat = {
|
||||
none: 0,
|
||||
default: 1,
|
||||
abberviated: 2,
|
||||
full: 3,
|
||||
numeric: 4
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.SecondFormat = {
|
||||
default: 1,
|
||||
none: 0
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.YearFormat = {
|
||||
default: 1,
|
||||
none: 0,
|
||||
abberviated: 2,
|
||||
full: 3,
|
||||
};
|
||||
Windows.Globalization.DateTimeFormatting.DateTimeFormatter = function() {
|
||||
var args = Array.prototype.slice.call(arguments);
|
||||
var inst = null;
|
||||
if (args.length === 1) inst = external.Utilities.createDateTimeFormatterFromTemplate(args[0]);
|
||||
else if (args.length === 2) inst = external.Utilities.CreateDateTimeFormatterFromTemplateAndLanguages(args[0], args[1]);
|
||||
else if (args.length === 3) inst = external.Utilities.CreateDateTimeFormatterFromTimeEnums(args[0], args[1], args[2]);
|
||||
else if (args.length === 4) inst = external.Utilities.CreateDateTimeFormatterFromDateEnums(args[0], args[1], args[2], args[3]);
|
||||
else if (args.length === 5) inst = external.Utilities.CreateDateTimeFormatterFromTemplateFull(args[0], args[1], args[2], args[3], args[4]);
|
||||
else if (args.length === 8) inst = external.Utilities.CreateDateTimeFormatterFromDateTimeEnums(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7]);
|
||||
else if (args.length === 11) inst = external.Utilities.CreateDateTimeFormatterFromDateTimeEnumsFull(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10]);
|
||||
return inst;
|
||||
};
|
||||
Windows.Storage.CreationCollisionOption = {
|
||||
generateUniqueName: 0,
|
||||
replaceExisting: 1,
|
||||
failIfExists: 2,
|
||||
openIfExists: 3
|
||||
};
|
||||
Windows.Storage.FileProperties = {
|
||||
ThumbnailType: {
|
||||
image: 0,
|
||||
icon: 1
|
||||
},
|
||||
ThumbnailMode: {
|
||||
pictureView: 0,
|
||||
videosView: 1,
|
||||
musicView: 2,
|
||||
documentsView: 3,
|
||||
listView: 4,
|
||||
singleItem: 5
|
||||
},
|
||||
ThumbnailType: {
|
||||
image: 0,
|
||||
icon: 1
|
||||
},
|
||||
VideoOrientation: {
|
||||
normal: 0,
|
||||
rotate90: 90,
|
||||
rotate180: 180,
|
||||
rotate270: 270
|
||||
},
|
||||
PhotoOrientation: {
|
||||
unspecified: 0,
|
||||
normal: 1,
|
||||
flipHorizontal: 2,
|
||||
rotate180: 3,
|
||||
flipVertical: 4,
|
||||
transpose: 5,
|
||||
rotate270: 6,
|
||||
transverse: 7,
|
||||
rotate90: 8
|
||||
},
|
||||
};
|
||||
Windows.Storage.Search = {
|
||||
FolderDepth: function() {},
|
||||
IndexerOption: function() {}
|
||||
};
|
||||
Windows.Storage.Search.FolderDepth.deep = 1;
|
||||
Windows.Storage.Search.FolderDepth.shallow = 0;
|
||||
Windows.Storage.Search.IndexerOption.useIndexerWhenAvailable = 0;
|
||||
Windows.Storage.Search.IndexerOption.onlyUseIndexer = 1;
|
||||
Windows.Storage.Search.IndexerOption.doNotUseIndexer = 2;
|
||||
Windows.Storage.Search.IndexerOption.onlyUseIndexerAndOptimizeForIndexedProperties = 3;
|
||||
Windows.UI.ApplicationSettings.SettingsEdgeLocation = {
|
||||
right: 0,
|
||||
left: 1
|
||||
};
|
||||
Windows.UI.Input.EdgeGestureKind = {
|
||||
touch: 0,
|
||||
keyboard: 1,
|
||||
mouse: 2
|
||||
};
|
||||
Windows.UI.ViewManagement.HandPreference = {
|
||||
leftHanded: 0,
|
||||
rightHanded: 1
|
||||
};
|
||||
Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode = {
|
||||
default: 0,
|
||||
minimal: 1,
|
||||
compact: 2
|
||||
};
|
||||
})(this);
|
||||
@@ -2,6 +2,7 @@
|
||||
var strres = external.StringResources;
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var metadata = conf.getSection("PackageReader:AppMetadatas");
|
||||
|
||||
function createLocalizedCompare(locale) {
|
||||
return function(a, b) {
|
||||
@@ -15,6 +16,26 @@
|
||||
};
|
||||
}
|
||||
var pagemgr = new PageManager();
|
||||
(function() {
|
||||
var nstrutil = Bridge.NString;
|
||||
var boolTrue = ["true", "1", "yes", "on", "y", "t", "zhen", "真"];
|
||||
var boolFalse = ["false", "0", "no", "off", "n", "f", "jia", "假"];
|
||||
global.parseBool = function(str) {
|
||||
if (typeof str === "boolean") return str;
|
||||
str = "" + str;
|
||||
for (var i = 0; i < boolTrue.length; i++) {
|
||||
if (nstrutil.equals(str, boolTrue[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < boolFalse.length; i++) {
|
||||
if (nstrutil.equals(str, boolFalse[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})();
|
||||
OnLoad.add(function() {
|
||||
var mgr = Package.manager;
|
||||
var nstr = Bridge.NString;
|
||||
@@ -24,8 +45,59 @@
|
||||
return Bridge.String.tolower(Bridge.String.trim(item.Identity.FullName));
|
||||
});
|
||||
var themeColor = Bridge.UI.themeColor;
|
||||
var reader = Package.reader;
|
||||
var appitems = [
|
||||
"Id",
|
||||
"StartPage",
|
||||
"EntryPoint",
|
||||
"Executable",
|
||||
"BackgroundColor",
|
||||
"DisplayName",
|
||||
"Description",
|
||||
"ShortName",
|
||||
"ForegroundText",
|
||||
"SmallLogo",
|
||||
"Square30x30Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Logo",
|
||||
"Square150x150Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo",
|
||||
"Square310x310Logo",
|
||||
"Tall150x310Logo",
|
||||
"LockScreenLogo",
|
||||
"LockScreenNotification",
|
||||
"DefaultSize",
|
||||
"AppListEntry",
|
||||
"VisualGroup",
|
||||
"MinWidth",
|
||||
];
|
||||
var defaultItems = [
|
||||
"Id",
|
||||
"DisplayName",
|
||||
"BackgroundColor",
|
||||
"ForegroundText",
|
||||
"ShortName",
|
||||
"Square44x44Logo",
|
||||
"SmallLogo"
|
||||
];
|
||||
var metaitemlist = [];
|
||||
for (var i = 0; i < appitems.length; i++) {
|
||||
var item = appitems[i];
|
||||
var isenable = metadata.getKey(item).value;
|
||||
if (isenable === null || isenable === void 0 || isenable === "") {
|
||||
isenable = defaultItems.indexOf(item) >= 0;
|
||||
}
|
||||
if (parseBool(isenable) == true) {
|
||||
metaitemlist.push(item);
|
||||
}
|
||||
}
|
||||
reader.updateApplicationReadItems(metaitemlist);
|
||||
pagemgr.register("reader", document.getElementById("tag-reader"), document.getElementById("page-reader"));
|
||||
pagemgr.register("acquire", document.getElementById("tag-acquire"), document.getElementById("page-acquire"));
|
||||
pagemgr.register("search", document.getElementById("tag-search"), document.getElementById("page-search"));
|
||||
pagemgr.go("reader");
|
||||
});
|
||||
})(this);
|
||||
@@ -57,6 +57,7 @@
|
||||
try {
|
||||
var obj = nodes[i].getAttribute('data-res-resxml');
|
||||
var strres = external.StringResources;
|
||||
if (!strres) strres = Bridge.External.WinJsStringRes;
|
||||
if (strres) {
|
||||
try {
|
||||
nodes[i].textContent = strres.get(obj);
|
||||
|
||||
@@ -8,10 +8,13 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="js/module.js"></script>
|
||||
<script type="text/javascript" src="js/polyfill-ie.js"></script>
|
||||
<script type="text/javascript" src="js/polyfill-winrt.js"></script>
|
||||
<link rel="stylesheet" href="libs/winjs/1.0/css/ui-light.css" id="winjs-style-1">
|
||||
<link rel="stylesheet" href="libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/en-us/base.strings.js"></script>
|
||||
<script type="text/javascript" src="libs/winjs/1.0/js/en-us/ui.strings.js"></script>
|
||||
<script type="text/javascript" src="js/color.js"></script>
|
||||
<script type="text/javascript" src="js/promise.js"></script>
|
||||
<script type="text/javascript" src="js/bridge.js"></script>
|
||||
@@ -60,13 +63,13 @@
|
||||
<div class="page full guide fold">
|
||||
<main class="main">
|
||||
<div id="page-reader" style="display: none;" class="ispage padding">
|
||||
<h2>读取</h2>
|
||||
<p>请选择一个包,获取其信息。</p>
|
||||
<h2 data-res-resxml="READER_READER_TITLE"></h2>
|
||||
<p data-res-resxml="READER_READER_DESC"></p>
|
||||
<div>
|
||||
<label for="read-pkgpath">文件路径</label>
|
||||
<label for="read-pkgpath" data-res-resxml="READER_READER_FILEPATH"></label>
|
||||
<div class="itemrow">
|
||||
<input type="text" id="read-pkgpath" style="margin-right: 10px;">
|
||||
<button id="read-browse">浏览</button>
|
||||
<button id="read-browse" data-res-resxml="READER_READER_BROWSER"></button>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
@@ -76,7 +79,9 @@
|
||||
readBrowse.onclick = function() {
|
||||
var explorer = external.Storage.Explorer;
|
||||
explorer.file(
|
||||
"{appxpkg}|*.appx;*.appxbundle;*.msix;*.msixbundle|{allfiles}|*.*",
|
||||
"{appxpkg}|*.appx;*.appxbundle;*.msix;*.msixbundle|{allfiles}|*.*"
|
||||
.replace("{appxpkg}", stringRes("READER_READER_APPXFILE"))
|
||||
.replace("{allfiles}", stringRes("READER_READER_ALLFILES")),
|
||||
lastDir,
|
||||
function(result) {
|
||||
if (!result) return;
|
||||
@@ -90,20 +95,20 @@
|
||||
</div>
|
||||
<div class="itemrow">
|
||||
<input type="checkbox" id="read-usepri" style="margin-left: 0;">
|
||||
<label for="read-usepri">需要解析 PRI 资源文件</label>
|
||||
<label for="read-usepri" data-res-resxml="READER_READER_USEPRI"></label>
|
||||
</div>
|
||||
<style>
|
||||
.part-read-button {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
</style>
|
||||
<button id="read-btn" class="part-read-button">读取</button>
|
||||
<button id="read-result-save" class="part-read-button">将读取结果保存为文件</button>
|
||||
<button id="read-result-xml" class="part-read-button">保存为 XML 文件</button>
|
||||
<button id="read-result-json" class="part-read-button">保存为 JSON 文件</button>
|
||||
<button id="read-btn" class="part-read-button" data-res-resxml="READER_READER_READ"></button>
|
||||
<button id="read-result-save" class="part-read-button" data-res-resxml="READER_READER_SAVEFILE"></button>
|
||||
<button id="read-result-xml" class="part-read-button" data-res-resxml="READER_READER_SAVEXML"></button>
|
||||
<button id="read-result-json" class="part-read-button" data-res-resxml="READER_READER_SAVEJSON"></button>
|
||||
<br>
|
||||
<progress id="read-loading" style="display: none;"></progress>
|
||||
<p style="margin-bottom: 2px; margin-top: 5px;">读取结果:</p>
|
||||
<p style="margin-bottom: 2px; margin-top: 5px;" data-res-resxml="READER_READER_RESULT"></p>
|
||||
<iframe id="read-result" width="100%" frameborder="0" src="report.html"></iframe>
|
||||
<script>
|
||||
(function() {
|
||||
@@ -112,7 +117,7 @@
|
||||
|
||||
function readResultResizeEvent(e) {
|
||||
var parent = readResult.parentElement.parentElement;
|
||||
var newHeight = parent.getBoundingClientRect().height - readResult.getBoundingClientRect().top - 24;
|
||||
var newHeight = parent.getBoundingClientRect().height - readResult.getBoundingClientRect().top - 60;
|
||||
//console.log(e, parent.getBoundingClientRect().height, readResult.getBoundingClientRect().top, newHeight);
|
||||
readResult.style.height = parseInt(newHeight) + "px";
|
||||
}
|
||||
@@ -123,6 +128,8 @@
|
||||
</script>
|
||||
<script>
|
||||
(function(global) {
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var readBtn = document.getElementById("read-btn");
|
||||
var readResult = document.getElementById("read-result");
|
||||
var readPkgpath = document.getElementById("read-pkgpath");
|
||||
@@ -132,6 +139,7 @@
|
||||
var readSave = document.getElementById("read-result-save");
|
||||
var readToXml = document.getElementById("read-result-xml");
|
||||
var readToJson = document.getElementById("read-result-json");
|
||||
readUsepri.checked = set.getKey("PackageReader:DefaultParsingPriFile").readBool();
|
||||
readResult.style.display = "none";
|
||||
readBtn.onclick = function() {
|
||||
var self = this;
|
||||
@@ -160,7 +168,7 @@
|
||||
onCompleted();
|
||||
readResult.contentWindow.setReport({
|
||||
status: false,
|
||||
message: "请选择一个有效文件"
|
||||
message: stringRes("READER_READER_PLEASESELECT")
|
||||
});
|
||||
self.disabled = false;
|
||||
return;
|
||||
@@ -187,7 +195,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在保存文件";
|
||||
span.textContent = stringRes("READER_READER_SAVINGHTML");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -199,7 +207,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{htmlfile}|*.html;*.htm",
|
||||
"{htmlfile}|*.html;*.htm".replace("{htmlfile}", stringRes("READER_READER_HTMLFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -216,7 +224,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -238,7 +246,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在生成 JSON 文件,请稍候... \n这可能需要比较长的时间。";
|
||||
span.textContent = stringRes("READER_READER_SAVEINGJSON");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -250,7 +258,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{jsonzipfile}|*.zip",
|
||||
"{jsonzipfile}|*.zip".replace("{jsonzipfile}", stringRes("READER_READER_JSONFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -259,7 +267,7 @@
|
||||
}).then(function(filepath) {
|
||||
return new Promise(function(c, e) {
|
||||
if (!readPkgpath.value) {
|
||||
e(new Error("请选择一个有效文件"));
|
||||
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
||||
return;
|
||||
}
|
||||
try {
|
||||
@@ -284,7 +292,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -307,7 +315,7 @@
|
||||
progress.classList.add("win-ring");
|
||||
progress.style.color = "white";
|
||||
var span = document.createElement("span");
|
||||
span.textContent = "正在生成 XML 文件,请稍候... \n这可能需要比较长的时间。";
|
||||
span.textContent = stringRes("READER_READER_SAVEINGXML");
|
||||
progress.style.marginRight = "10px";
|
||||
cont.setAttribute("style", "display: flex; flex-direction: row; align-items: center; display: -ms-flexbox; -ms-flex-direction: row; -ms-align-items: center;")
|
||||
cont.appendChild(progress);
|
||||
@@ -319,7 +327,7 @@
|
||||
return dlg.show().then(function(id) {
|
||||
return new Promise(function(c, e) {
|
||||
external.Storage.save(
|
||||
"{xmlzipfile}|*.zip",
|
||||
"{xmlzipfile}|*.zip".replace("{xmlzipfile}", stringRes("READER_READER_XMLFILE")),
|
||||
lastDir,
|
||||
"report-" + new Date().getTime(),
|
||||
c
|
||||
@@ -329,7 +337,7 @@
|
||||
return new Promise(function(c, e) {
|
||||
try {
|
||||
if (!readPkgpath.value) {
|
||||
e(new Error("请选择一个有效文件"));
|
||||
e(new Error(stringRes("READER_READER_PLEASESELECT")));
|
||||
return;
|
||||
}
|
||||
var pkg = Package.reader.package(readPkgpath.value);
|
||||
@@ -353,7 +361,7 @@
|
||||
});
|
||||
}).then(null, function(err) {
|
||||
dlg.hide().then(function() {
|
||||
dlg.title = "保存时发生问题";
|
||||
dlg.title = stringRes("READER_READER_SAVEERR");
|
||||
dlg.content = err.message || err;
|
||||
dlg.commands.push(new WinJS.UI.ContentDialogCommand(
|
||||
getPublicRes(800)
|
||||
@@ -369,35 +377,35 @@
|
||||
</script>
|
||||
</div>
|
||||
<div id="page-acquire" style="display: none;" class="ispage padding">
|
||||
<h2>获取</h2>
|
||||
<h2 data-res-resxml="READER_ACQUIRE_TITLE"></h2>
|
||||
<div id="acquire-forbidden" style="width: 100%;">
|
||||
<p>由于来自 store.rg-adguard.net 的限制,现在暂时无法实现对包的获取。请自行打开下面 URL 进行访问。</p>
|
||||
<p data-res-resxml="READER_ACQUIRE_PROHIBIT"></p>
|
||||
<a onclick="external.Process.open ('https://store.rg-adguard.net')">store.rg-adguard.net</a>
|
||||
</div>
|
||||
<div id="acquire-enable" style="width: 100%;">
|
||||
<p>请在下面的输入框中输入要查询的内容,设置好参数后将进行查询。</p>
|
||||
<p data-res-resxml="READER_ACQUIRE_DESC"></p>
|
||||
<div>
|
||||
<div>
|
||||
<input type="text" id="acquire-input">
|
||||
<select id="acquire-valuetype" name="type">
|
||||
<option value="url">分享链接</option>
|
||||
<option value="ProductId">产品 ID</option>
|
||||
<option value="PackageFamilyName">包系列名</option>
|
||||
<option value="CategoryId">类别 ID</option>
|
||||
<select id="acquire-valuetype" name="type" value="url">
|
||||
<option value="url" data-res-resxml="READER_ACQUIRE_SHAREDURL"></option>
|
||||
<option value="ProductId" data-res-resxml="READER_ACQUIRE_PRODUCTID"></option>
|
||||
<option value="PackageFamilyName" data-res-resxml="READER_ACQUIRE_PFN"></option>
|
||||
<option value="CategoryId" data-res-resxml="READER_ACQUIRE_CATEGORYID"></option>
|
||||
</select>
|
||||
<select id="acquire-channel" name="ring">
|
||||
<option title="Windows Insider Fast" value="WIF">快速</option>
|
||||
<option title="Windows Insider Slow" value="WIS">慢速</option>
|
||||
<option title="Release Preview" value="RP" selected>发布预览</option>
|
||||
<option title="Default OS" value="Retail">正式</option>
|
||||
<select id="acquire-channel" name="ring" value="RP">
|
||||
<option title="Windows Insider Fast" value="WIF" data-res-resxml="READER_ACQUIRE_WIF"></option>
|
||||
<option title="Windows Insider Slow" value="WIS" data-res-resxml="READER_ACQUIRE_WIS"></option>
|
||||
<option title="Release Preview" value="RP" data-res-resxml="READER_ACQUIRE_RP"></option>
|
||||
<option title="Default OS" value="Retail" data-res-resxml="READER_ACQUIRE_RETAIL"></option>
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<div class="itemrow">
|
||||
<input type="checkbox" id="acquire-smartquery" style="margin-left: 0px;">
|
||||
<label for="acquire-smartquery">自动查询</label>
|
||||
<label for="acquire-smartquery" data-res-resxml="READER_ACQUIRE_SMARTQUERY"></label>
|
||||
</div>
|
||||
<button id="acquire-query">查询</button>
|
||||
<button id="acquire-query" data-res-resxml="READER_ACQUIRE_QUERY"></button>
|
||||
</div>
|
||||
</div>
|
||||
<style>
|
||||
@@ -492,17 +500,19 @@
|
||||
}
|
||||
</style>
|
||||
<div id="acquire-template" class="acquire-item" style="display: none;">
|
||||
<div id="name" class="top" title="Identity Name">Identity Name</div>
|
||||
<div id="name" class="top" title="Identity Name"></div>
|
||||
<div class="medium">
|
||||
<div id="ext" title="File Type">Appx</div>
|
||||
<div id="version" title="Version">1.0.0.0</div>
|
||||
<div id="architecture" title="Processor Architecture">neutral</div>
|
||||
<div id="ext" title="File Type"></div>
|
||||
<div id="version" title="Version"></div>
|
||||
<div id="architecture" title="Processor Architecture"></div>
|
||||
<div id="publisherId" title="Identity Publisher Id"></div>
|
||||
<div id="size" title="File Size"></div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div id="hashpart"><span>SHA-1: </span><span id="hash"></span></div>
|
||||
<div><a download id="download" href="">点击下载</a></div>
|
||||
<div>
|
||||
<a download id="download" href="" data-res-resxml="READER_ACQUIRE_CLICKDOWNLOAD"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="acquire-loading">
|
||||
@@ -514,17 +524,17 @@
|
||||
</div>
|
||||
</div>
|
||||
<div id="acquire-result" style="width: 100%;">
|
||||
<p style="font-weight: normal;" title="Category ID"><span>类别 ID</span>: <span id="acquire-categoryid" style="user-select: text; -ms-user-select: element;"></span></p>
|
||||
<h3>以下可能为检索到的应用</h3>
|
||||
<p style="font-weight: normal;" title="Category ID"><span data-res-resxml="READER_ACQUIRE_CATEGORYID"></span>: <span id="acquire-categoryid" style="user-select: text; -ms-user-select: element;"></span></p>
|
||||
<h3 data-res-resxml="READER_ACQUIRE_RESULTAPPS"></h3>
|
||||
<div id="acquire-list-app" style="width: 100%;"></div>
|
||||
<h3>以下可能为检索到的依赖项</h3>
|
||||
<h3 data-res-resxml="READER_ACQUIRE_RESULTDEPS"></h3>
|
||||
<div id="acquire-list-dep" style="width: 100%;"></div>
|
||||
</div>
|
||||
<script>
|
||||
(function(global) {
|
||||
var conf = external.Config.current;
|
||||
var set = conf.getSection("Settings");
|
||||
var isForbidden = !set.getKey("EnableAcquire").readBool(false);
|
||||
var isForbidden = !set.getKey("PackageReader:EnableAcquire").readBool(false);
|
||||
var acquireInput = document.getElementById("acquire-input");
|
||||
var acquireValuetype = document.getElementById("acquire-valuetype");
|
||||
var acquireChannel = document.getElementById("acquire-channel");
|
||||
@@ -578,7 +588,7 @@
|
||||
keys.forEach(function(k, i) {
|
||||
var listview = listView[k];
|
||||
var p = document.createElement("p");
|
||||
p.textContent = "还没有内容...";
|
||||
p.textContent = stringRes("READER_ACQUIRE_NOCONTENT");
|
||||
listview.emptyView = p;
|
||||
});
|
||||
acquireLoading.statusBar = new TransitionPanel(acquireLoading, {
|
||||
@@ -607,7 +617,7 @@
|
||||
acquireValuetype.disabled =
|
||||
acquireChannel.disabled = true;
|
||||
queryFunc = StoreRG.test;
|
||||
acquireLoadingLabel.textContent = "正在查询...";
|
||||
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_QUERYING");
|
||||
queryFunc(acquireInput.value, acquireValuetype.value, acquireChannel.value).then(function(result) {
|
||||
acquireCategoryid.textContent = result.categoryId;
|
||||
var applist = [];
|
||||
@@ -628,7 +638,7 @@
|
||||
return item.file;
|
||||
});
|
||||
listView.deps.refresh();
|
||||
acquireLoadingLabel.textContent = "已获取到 {0} 个信息"
|
||||
acquireLoadingLabel.textContent = stringRes("READER_ACQUIRE_RESULTCNT")
|
||||
.replace("{0}", applist.length + deplist.length);
|
||||
}, function(err) {
|
||||
dataSrc.apps.clear();
|
||||
@@ -654,6 +664,13 @@
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
<div id="page-search" style="display: none;" class="ispage padding">
|
||||
<h2 data-res-resxml="READER_SEARCH_TITLE"></h2>
|
||||
<div id="search-forbidden" style="width: 100%;">
|
||||
<p data-res-resxml="READER_SEARCH_PROHIBIT"></p>
|
||||
<a onclick="external.Process.open ('https://dbox.tools')">dbox.tools</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
<aside class="win-ui-dark">
|
||||
<nav class="container">
|
||||
@@ -677,15 +694,19 @@
|
||||
<ul class="list">
|
||||
<li id="tag-reader">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_MANAGE"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_READER_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-acquire">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_MANAGE"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_ACQUIRE_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-search">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="READER_SEARCH_TITLE"></span>
|
||||
</li>
|
||||
<li id="tag-settings">
|
||||
<div role="img"></div>
|
||||
<span class="win-type-base" data-res-resxml="MANAGER_SETTINGS"></span>
|
||||
<span class="win-type-base" data-res-resxml="READER_SETTINGS_TITLE"></span>
|
||||
</li>
|
||||
<script>
|
||||
(function(global) {
|
||||
|
||||
@@ -195,6 +195,42 @@
|
||||
</table>
|
||||
<script>
|
||||
(function(global) {
|
||||
var imageItem = [
|
||||
"LockScreenLogo",
|
||||
"Logo",
|
||||
"SmallLogo",
|
||||
"Square150x150Logo",
|
||||
"Square30x30Logo",
|
||||
"Square310x310Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Tall150x310Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo"
|
||||
];
|
||||
|
||||
function toLowerCase(str) {
|
||||
if (typeof str !== "string") return "";
|
||||
return str.replace(/[A-Z]/g, function(ch) {
|
||||
return String.fromCharCode(ch.charCodeAt(0) + 32);
|
||||
});
|
||||
}
|
||||
|
||||
function trim(str) {
|
||||
return str.replace(/^\s+|\s+$/g, "");
|
||||
}
|
||||
|
||||
function isImageItem(item) {
|
||||
var tl = trim(toLowerCase(item));
|
||||
for (var i = 0; i < imageItem.length; i++) {
|
||||
var lower = trim(toLowerCase(imageItem[i]));
|
||||
if (lower == tl) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
if (typeof Array.prototype.forEach !== "function") {
|
||||
Array.prototype.forEach = function(callback, thisArg) {
|
||||
var T, k;
|
||||
@@ -317,7 +353,7 @@
|
||||
var tdv = document.createElement("td");
|
||||
tdk.textContent = key;
|
||||
tdv.textContent = t[key];
|
||||
if (typeof t[key + "_Base64"] !== "undefined") {
|
||||
if (typeof t[key + "_Base64"] !== "undefined" && isImageItem(key)) {
|
||||
tdv.innerHTML = "";
|
||||
var img = document.createElement("img");
|
||||
img.src = t[key + "_Base64"];
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
var settingItems = {
|
||||
appinstaller: getSettingsItem("appinstaller.html", getLibRes("appinstaller.exe", 300)),
|
||||
manager: getSettingsItem("manager.html", getStringRes("MANAGER_APPTITLE")),
|
||||
reader: getSettingsItem("reader.html", getStringRes("READER_APPTITLE")),
|
||||
settings: getSettingsItem("settings.html", getLibRes("settings.exe", 200)),
|
||||
};
|
||||
Object.defineProperty(global, "settingPages", {
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Package Manager Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../js/module.js"></script>
|
||||
<script type="text/javascript" src="../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../js/color.js"></script>
|
||||
<script type="text/javascript" src="../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../js/event.js"></script>
|
||||
<script type="text/javascript" src="../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../js/init.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="page.css">
|
||||
<script type="text/javascript" src="reader/preinit.js"></script>
|
||||
<script type="text/javascript" src="reader/items.js"></script>
|
||||
<script type="text/javascript" src="reader/init.js"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="settingpage" class="pagecontainer full">
|
||||
<div class="page full guide">
|
||||
<aside class="left win-ui-dark">
|
||||
<header aria-label="Header content" role="banner" class="titlebanner" id="pagebanner" style="height: 120px;">
|
||||
<button id="back" class="win-backbutton pagetitlewb-backbutton" onclick="Bridge.Frame.callEvent ('InvokeBackPage')" style="margin-left: 20px; transform: scale(0.72);"></button>
|
||||
<h2 class="titlearea win-type-ellipsis" id="apptitle" style="">
|
||||
<span class="pagetitlewb-title" id="apptitlestr" style="margin-left: 10px; margin-right: 20px;" data-res-resxml="READER_APPTITLE"></span>
|
||||
</h2>
|
||||
</header>
|
||||
<nav class="container">
|
||||
<ul class="list">
|
||||
</ul>
|
||||
</nav>
|
||||
</aside>
|
||||
<iframe class="main right" defer loading="lazy" async></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,158 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/toggle/toggle.css">
|
||||
<script type="text/javascript" src="../../libs/toggle/toggle.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("appitems");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="page-title" data-res-resxml="READER_SETTINGS_APPITEMS"></h2>
|
||||
<div class="win-settings-section">
|
||||
<p data-res-resxml="READER_SETTINGS_APPITEMS_DESC"></p>
|
||||
<style>
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table th,
|
||||
table td {
|
||||
border: 1px solid #ccc;
|
||||
padding: 5px;
|
||||
}
|
||||
</style>
|
||||
<table style="max-width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th data-res-resxml="READER_SETTINGS_APPITEMS_ITEM"></th>
|
||||
<th data-res-resxml="READER_SETTINGS_APPITEMS_DESCRIPTION"></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="appitem-list"></tbody>
|
||||
</table>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var appItemList = document.getElementById("appitem-list");
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var appitemset = ini.getSection("PackageReader:AppMetadatas");
|
||||
var appitems = [
|
||||
"Id",
|
||||
"StartPage",
|
||||
"EntryPoint",
|
||||
"Executable",
|
||||
"BackgroundColor",
|
||||
"DisplayName",
|
||||
"Description",
|
||||
"ShortName",
|
||||
"ForegroundText",
|
||||
"SmallLogo",
|
||||
"Square30x30Logo",
|
||||
"Square44x44Logo",
|
||||
"Square70x70Logo",
|
||||
"Square71x71Logo",
|
||||
"Logo",
|
||||
"Square150x150Logo",
|
||||
"WideLogo",
|
||||
"Wide310x150Logo",
|
||||
"Square310x310Logo",
|
||||
"Tall150x310Logo",
|
||||
"LockScreenLogo",
|
||||
"LockScreenNotification",
|
||||
"DefaultSize",
|
||||
"AppListEntry",
|
||||
"VisualGroup",
|
||||
"MinWidth",
|
||||
];
|
||||
var defaultItems = [
|
||||
"Id",
|
||||
"DisplayName",
|
||||
"BackgroundColor",
|
||||
"ForegroundText",
|
||||
"ShortName",
|
||||
"Square44x44Logo",
|
||||
"SmallLogo"
|
||||
];
|
||||
for (var i = 0; i < appitems.length; i++) {
|
||||
var item = appitems[i];
|
||||
var isenable = appitemset.getKey(item).value;
|
||||
if (isenable === null || isenable === void 0 || isenable === "") {
|
||||
isenable = defaultItems.indexOf(item) >= 0;
|
||||
}
|
||||
var dispItem = stringRes("APPMETADATA_" + item);
|
||||
var tr = document.createElement("tr");
|
||||
var tdCheck = document.createElement("td");
|
||||
var tdItem = document.createElement("td");
|
||||
var tdDesc = document.createElement("td");
|
||||
tr.appendChild(tdCheck);
|
||||
tr.appendChild(tdItem);
|
||||
tr.appendChild(tdDesc);
|
||||
var checkbox = document.createElement("input");
|
||||
tdCheck.appendChild(checkbox);
|
||||
checkbox.type = "checkbox";
|
||||
checkbox.checked = isenable;
|
||||
checkbox.id = "appitem_" + item;
|
||||
checkbox.setAttribute("data-metadata", item);
|
||||
var label = document.createElement("label");
|
||||
tdItem.appendChild(label);
|
||||
label.setAttribute("for", checkbox.id);
|
||||
label.style.fontWeight = "normal";
|
||||
label.textContent = item;
|
||||
label.title = item;
|
||||
var labelDesc = document.createElement("label");
|
||||
tdDesc.appendChild(labelDesc);
|
||||
labelDesc.textContent = dispItem;
|
||||
labelDesc.title = dispItem;
|
||||
labelDesc.setAttribute("for", checkbox.id);
|
||||
labelDesc.style.fontWeight = "normal";
|
||||
appItemList.appendChild(tr);
|
||||
checkbox.onchange = function() {
|
||||
appitemset.getKey(this.getAttribute("data-metadata")).value = this.checked;
|
||||
}
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,192 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/toggle/toggle.css">
|
||||
<script type="text/javascript" src="../../libs/toggle/toggle.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("general");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="page-title" data-res-fromfile="publicRes (101)"></h2>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="save-wnd-size" id="save-wnd-size-label" data-res-fromfile="publicRes (125)"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("save-wnd-size-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "save-wnd-size";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:SavePosAndSizeBeforeCancel", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:SavePosAndSizeBeforeCancel").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="default-wndwidth" data-res-fromfile="publicRes(126)"></label><br>
|
||||
<input type="number" id="default-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="default-wndheight" data-res-fromfile="publicRes(127)"></label><br>
|
||||
<input type="number" id="default-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var defWndWInput = document.getElementById("default-wndwidth");
|
||||
var defWndHInput = document.getElementById("default-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var defwk = setsect.getKey("PackageReader:DefaultWidth");
|
||||
var defhk = setsect.getKey("PackageReader:DefaultHeight");
|
||||
defWndWInput.value = defwk.value;
|
||||
defWndHInput.value = defhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
defwk.value = parseInt(defWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
defhk.value = parseInt(defWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(defWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(defWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(defWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(defWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="min-wndwidth" data-res-fromfile="publicRes (128)"></label><br>
|
||||
<input type="number" id="min-wndwidth" inputmode="numeric"><br><br>
|
||||
<label class="win-label" for="min-wndheight" data-res-fromfile="publicRes (129)"></label><br>
|
||||
<input type="number" id="min-wndheight" inputmode="numeric">
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
var minWndWInput = document.getElementById("min-wndwidth");
|
||||
var minWndHInput = document.getElementById("min-wndheight");
|
||||
var setsect = ini.getSection("Settings");
|
||||
var minwk = setsect.getKey("PackageReader:MinimumWidth");
|
||||
var minhk = setsect.getKey("PackageReader:MinimumHeight");
|
||||
minWndWInput.value = minwk.value;
|
||||
minWndHInput.value = minhk.value;
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
|
||||
function inputDefaultWidthChangeEvent(e) {
|
||||
minwk.value = parseInt(minWndWInput.value);
|
||||
}
|
||||
|
||||
function inputDefaultHeightChangeEvent(e) {
|
||||
minhk.value = parseInt(minWndHInput.value);
|
||||
}
|
||||
var debounced_idwc = debounce(inputDefaultWidthChangeEvent, 500);
|
||||
var debounced_idhc = debounce(inputDefaultHeightChangeEvent, 500);
|
||||
eventutil.addEvent(minWndWInput, "input", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "propertychange", debounced_idwc);
|
||||
eventutil.addEvent(minWndWInput, "change", debounced_idwc);
|
||||
eventutil.addEvent(minWndHInput, "input", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "propertychange", debounced_idhc);
|
||||
eventutil.addEvent(minWndHInput, "change", debounced_idhc);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="enable-usepri" id="enable-usepri-label" data-res-resxml="READER_SETTINGS_USEPRI"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("enable-usepri-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "enable-usepri";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:DefaultParsingPriFile", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:DefaultParsingPriFile").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
<div class="win-settings-section">
|
||||
<br>
|
||||
<label class="win-label" for="enable-acquire" id="enable-acquire-label" data-res-resxml="READER_SETTINGS_ENABLEACQUIRE"></label>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var label = document.getElementById("enable-acquire-label");
|
||||
var toggle = new Toggle();
|
||||
toggle.create();
|
||||
toggle.parent = label.parentNode;
|
||||
toggle.showlabel = true;
|
||||
var winjsres = Bridge.External.WinJsStringRes;
|
||||
toggle.setStatusText(winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/on"), winjsres.getString("ms-resource://Microsoft.WinJS.1.0/ui/off"));
|
||||
toggle.inputId = "enable-acquire";
|
||||
var ini = Bridge.External.Config.GetConfig();
|
||||
toggle.addEventListener("change", function() {
|
||||
ini.set("Settings", "PackageReader:EnableAcquire", toggle.checked);
|
||||
});
|
||||
toggle.checked = parseBool(ini.getSection("Settings").getKey("PackageReader:EnableAcquire").value);
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>App Installer Settings</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<script type="text/javascript" src="../../js/module.js"></script>
|
||||
<script type="text/javascript" src="../../js/polyfill-ie.js"></script>
|
||||
<link rel="stylesheet" href="../../libs/winjs/2.0/css/ui-light.css" id="winjs-style">
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/base.js"></script>
|
||||
<script type="text/javascript" src="../../libs/winjs/1.0/js/ui.js"></script>
|
||||
<script type="text/javascript" src="../../js/color.js"></script>
|
||||
<script type="text/javascript" src="../../js/promise.js"></script>
|
||||
<script type="text/javascript" src="../../js/bridge.js"></script>
|
||||
<script type="text/javascript" src="../../js/dpimodes.js"></script>
|
||||
<script type="text/javascript" src="../../js/resources.js"></script>
|
||||
<script type="text/javascript" src="../../js/animation.js"></script>
|
||||
<link rel="stylesheet" href="../../fonts/fonts.css">
|
||||
<script type="text/javascript" src="../../js/event.js"></script>
|
||||
<script type="text/javascript" src="../../js/tileback.js"></script>
|
||||
<script type="text/javascript" src="../../js/load.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/contentdlg.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/contentdlg.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../../libs/msgbox/msgbox.css">
|
||||
<script type="text/javascript" src="../../libs/msgbox/msgbox.js"></script>
|
||||
<script type="text/javascript" src="../../js/init.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="../page.css">
|
||||
<link rel="stylesheet" type="text/css" href="../subpage.css">
|
||||
<script type="text/javascript" src="preinit.js"></script>
|
||||
<script type="text/javascript" src="initsame.js"></script>
|
||||
<script>
|
||||
try {
|
||||
window.parent.setItemHighlight("guide");
|
||||
} catch (e) {}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="pagecontainer full pagesection">
|
||||
<div class="section padding">
|
||||
<div class="bottom-compensate">
|
||||
<h2 id="guide-title"></h2>
|
||||
<p id="guide-desc" style="white-space: pre-wrap;"></p>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function() {
|
||||
"use strict";
|
||||
var res = Bridge.Resources;
|
||||
var stru = Bridge.String;
|
||||
var title = document.getElementById("guide-title");
|
||||
title.textContent = stru.format(res.byname("IDS_TITLEFORMAT"), stringRes("READER_APPTITLE"));
|
||||
var text = document.getElementById("guide-desc");
|
||||
text.textContent = res.byname("IDS_GUIDETEXT_COMMON");
|
||||
})();
|
||||
</script>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,96 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
var page = document.querySelector("#settingpage");
|
||||
var guide = page.querySelector(".page.guide");
|
||||
var slide = guide.querySelector("aside");
|
||||
setTimeout(function() {
|
||||
var barcolor = visual["BackgroundColor"];
|
||||
slide.style.backgroundColor = barcolor;
|
||||
slide.style.color = Color.getSuitableForegroundTextColor(Color.parse(barcolor), [Color.Const.white, Color.Const.black]).stringify();
|
||||
}, 50);
|
||||
var content = guide.querySelector(".main");
|
||||
var list = slide.querySelector("ul");
|
||||
var backbtn = slide.querySelector("#back");
|
||||
var title = slide.querySelector("#apptitle");
|
||||
list.innerHTML = "";
|
||||
var items = pages;
|
||||
var tags = Object.keys(items);
|
||||
var eventutil = Windows.UI.Event.Util;
|
||||
for (var i = 0; i < tags.length; i++) {
|
||||
var tag = tags[i];
|
||||
var item = items[tag];
|
||||
var li = document.createElement("li");
|
||||
li.setAttribute("data-page", item.page);
|
||||
li.setAttribute("data-tag", item.tag);
|
||||
li.innerHTML = item.title;
|
||||
eventutil.addEvent(li, "click", function() {
|
||||
if (li.hasAttribute("data-require-disabled")) return;
|
||||
content.style.display = "none";
|
||||
for (var j = 0; j < list.children.length; j++) {
|
||||
var child = list.children[j];
|
||||
if (child.classList.contains("selected"))
|
||||
child.classList.remove("selected");
|
||||
}
|
||||
content.src = this.getAttribute("data-page");
|
||||
setTimeout(function() {
|
||||
content.style.display = "";
|
||||
Windows.UI.Animation.runAsync(content, [Windows.UI.Animation.Keyframes.Flyout.toLeft, Windows.UI.Animation.Keyframes.Opacity.visible]);
|
||||
}, 0);
|
||||
this.classList.add("selected");
|
||||
});
|
||||
list.appendChild(li);
|
||||
}
|
||||
content.src = guidePage.page;
|
||||
/*for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
child.click();
|
||||
break;
|
||||
}*/
|
||||
var jumppage = "";
|
||||
try { var args = cmdargs; if (args.length > 1) jumppage = args[1]; } catch (e) {}
|
||||
if (jumppage && jumppage.length > 0 && !Bridge.External.jump2) {
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), jumppage)) {
|
||||
Bridge.External.jump2 = true;
|
||||
setTimeout(function(thisnode) {
|
||||
thisnode.click();
|
||||
}, 0, child)
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
global.setDisabledForOperation = function(disabled) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (disabled) {
|
||||
child.setAttribute("data-require-disabled", "true");
|
||||
} else {
|
||||
child.removeAttribute("data-require-disabled");
|
||||
}
|
||||
}
|
||||
if (disabled) {
|
||||
backbtn.disabled = true;
|
||||
title.style.marginLeft = backbtn.style.marginLeft;
|
||||
} else {
|
||||
backbtn.disabled = false;
|
||||
title.style.marginLeft = "";
|
||||
}
|
||||
}
|
||||
global.setItemHighlight = function(tag) {
|
||||
var list = document.querySelector("#settingpage .guide aside ul");
|
||||
for (var i = 0; i < list.children.length; i++) {
|
||||
var child = list.children[i];
|
||||
if (Bridge.NString.equals(child.getAttribute("data-tag"), tag)) {
|
||||
if (!child.classList.contains("selected")) child.classList.add("selected");
|
||||
} else {
|
||||
if (child.classList.contains("selected")) child.classList.remove("selected");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
@@ -0,0 +1,21 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function ready(e) {
|
||||
Windows.UI.DPI.mode = 1
|
||||
var pagesection = document.querySelector(".pagesection");
|
||||
if (pagesection) {
|
||||
var backcolor = slideback;
|
||||
setTimeout(function() {
|
||||
var h2style = document.getElementById("h2-style");
|
||||
if (!h2style) {
|
||||
h2style = document.createElement("style");
|
||||
h2style.id = "h2-style";
|
||||
}
|
||||
h2style.innerHTML = ".main h2 { color: " + Color.getSuitableForegroundTextColor(Color.parse("#F3F3F3"), [Color.parse(backcolor), Color.Const.black]).RGBA.stringify() + " }";
|
||||
document.head.appendChild(h2style);
|
||||
}, 0);
|
||||
}
|
||||
}
|
||||
OnLoad.add(ready);
|
||||
})(this);
|
||||
@@ -0,0 +1,25 @@
|
||||
(function(global) {
|
||||
"use strict";
|
||||
|
||||
function getPage(tag, page, display) {
|
||||
return {
|
||||
tag: tag,
|
||||
page: page,
|
||||
title: display
|
||||
};
|
||||
}
|
||||
var pages = {
|
||||
general: getPage("general", "reader/general.html", getPublicRes(101)),
|
||||
appitems: getPage("appitems", "reader/appitems.html", stringRes("READER_SETTINGS_APPITEMS")),
|
||||
};
|
||||
Object.defineProperty(global, "pages", {
|
||||
get: function() {
|
||||
return pages;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(global, "guidePage", {
|
||||
get: function() {
|
||||
return getPage("guide", "reader/guide.html", "guide");
|
||||
}
|
||||
});
|
||||
})(this);
|
||||
@@ -0,0 +1,30 @@
|
||||
(function(global) {
|
||||
var storage = Bridge.External.Storage;
|
||||
var path = storage.path;
|
||||
var root = path.getDir(path.program);
|
||||
var exepath = path.combine(root, "settings.exe");
|
||||
var id = "Reader";
|
||||
var ve = Bridge.External.VisualElements.get(id);
|
||||
var slideback = ve["BackgroundColor"];
|
||||
global.slideback = slideback;
|
||||
global.exepath = exepath;
|
||||
global.visual = ve;
|
||||
var strutil = Bridge.External.String;
|
||||
var nstrutil = Bridge.NString;
|
||||
var boolTrue = ["true", "1", "yes", "on", "y", "t", "zhen", "真"];
|
||||
var boolFalse = ["false", "0", "no", "off", "n", "f", "jia", "假"];
|
||||
global.parseBool = function(str) {
|
||||
str = "" + str;
|
||||
for (var i = 0; i < boolTrue.length; i++) {
|
||||
if (nstrutil.equals(str, boolTrue[i])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < boolFalse.length; i++) {
|
||||
if (nstrutil.equals(str, boolFalse[i])) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
};
|
||||
})(this);
|
||||
|
After Width: | Height: | Size: 358 KiB |
@@ -0,0 +1,17 @@
|
||||
Copyright © 2000-2018 SharpZipLib Contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this
|
||||
software and associated documentation files (the "Software"), to deal in the Software
|
||||
without restriction, including without limitation the rights to use, copy, modify, merge,
|
||||
publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
|
||||
to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or
|
||||
substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
||||
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
@@ -1,76 +0,0 @@
|
||||
NOTICE
|
||||
|
||||
This product includes software developed by third parties.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
PriTools (PriFormat)
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This product includes code derived from the PriTools project
|
||||
developed by chausner.
|
||||
|
||||
Original Project:
|
||||
Name: PriTools
|
||||
Author: chausner
|
||||
Project Homepage: https://github.com/chausner/PriTools
|
||||
Source Repository: https://github.com/chausner/PriTools/tree/master
|
||||
License: Apache License, Version 2.0
|
||||
License File: LICENSE.PriTools.chausner
|
||||
|
||||
The original PriFormat project has been modified in this product, including:
|
||||
- Renamed from "PriFormat" to "PriFileFormat"
|
||||
- Adapted to support Microsoft .NET Framework 4.6
|
||||
- Added support for the COM IStream interface
|
||||
- Modified resource cleanup and disposal logic
|
||||
- Changed namespaces and internal structure
|
||||
|
||||
These modifications were made by the authors of this product.
|
||||
The original copyright and license notices
|
||||
are retained in accordance with the Apache License, Version 2.0.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
pugixml
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This product includes pugixml, which is licensed under the MIT License.
|
||||
|
||||
License File:
|
||||
LICENSE.pugixml
|
||||
|
||||
----------------------------------------------------------------------
|
||||
RapidJSON
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This product includes RapidJSON, which is licensed under the MIT License.
|
||||
|
||||
License File:
|
||||
LICENSE.RapidJSON
|
||||
|
||||
----------------------------------------------------------------------
|
||||
markdown.js
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This product includes markdown.js (also known as markdown-js).
|
||||
|
||||
Original Project:
|
||||
Name: markdown.js
|
||||
Source Repository: https://github.com/evilstreak/markdown-js
|
||||
License: MIT License
|
||||
License File: LICENSE.markdown.js
|
||||
|
||||
----------------------------------------------------------------------
|
||||
WinJS
|
||||
----------------------------------------------------------------------
|
||||
|
||||
This product includes Microsoft WinJS (Windows Library for JavaScript).
|
||||
|
||||
Original Project:
|
||||
Name: WinJS
|
||||
Author: Microsoft Corporation
|
||||
Project Homepage: https://github.com/winjs/winjs
|
||||
License: MIT License
|
||||
License File: LICENSE.WinJS
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
End of notices.
|
||||
@@ -77,6 +77,7 @@ text-align: center;
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
<li>CodeMirror (MIT License) - <a href="https://codemirror.net/" target="_blank">https://codemirror.net/</a></li>
|
||||
<li>Json.NET (MIT License) - <a href="https://www.newtonsoft.com/json" target="_blank">https://www.newtonsoft.com/json</a></li>
|
||||
<li>SharpZipLib (MIT License) - <a href="https://icsharpcode.github.io/SharpZipLib/" target="_blank">https://icsharpcode.github.io/SharpZipLib/</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>四、免责声明</h2>
|
||||
|
||||
@@ -79,6 +79,7 @@ text-align: center;
|
||||
<li>markdown.js (MIT License) - <a href="https://github.com/evilstreak/markdown-js" target="_blank">https://github.com/evilstreak/markdown-js</a></li>
|
||||
<li>CodeMirror (MIT License) - <a href="https://codemirror.net/" target="_blank">https://codemirror.net/</a></li>
|
||||
<li>Json.NET (MIT License) - <a href="https://www.newtonsoft.com/json" target="_blank">https://www.newtonsoft.com/json</a></li>
|
||||
<li>SharpZipLib (MIT License) - <a href="https://icsharpcode.github.io/SharpZipLib/" target="_blank">https://icsharpcode.github.io/SharpZipLib/</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Disclaimer</h2>
|
||||
|
||||