add drag files

modify glyflist
This commit is contained in:
kekee000 2016-04-21 21:51:15 +08:00
parent 0d4e918efb
commit b9b10a3a38
4 changed files with 31 additions and 17 deletions

File diff suppressed because one or more lines are too long

View File

@ -35,7 +35,7 @@
box-sizing: border-box; box-sizing: border-box;
display: block; display: block;
.path { .path {
fill: #232830; fill: #666;
} }
} }

View File

@ -6,22 +6,12 @@
define( define(
function (require) { function (require) {
var i18n = require('./i18n/i18n'); var i18n = require('./i18n/i18n');
var GLYFViewer = require('./widget/glyfviewer/GLYFViewer');
var GLYFEditor = require('./widget/GLYFEditor');
var ProjectViewer = require('./widget/ProjectViewer');
var Spliter = require('./widget/Spliter');
var TTFManager = require('./widget/TTFManager');
var Toolbar = require('./widget/Toolbar');
var Pager = require('./widget/Pager');
var program = require('./widget/program'); var program = require('./widget/program');
var controller = require('./controller/default'); var controller = require('./controller/default');
var actions = require('./controller/actions'); var actions = require('./controller/actions');
function loadFiles(files) {
function onUpFile(e) { var file = files[0];
var file = e.target.files[0];
if (program.data.action === 'open' && program.loader.supportLoad(file.name)) { if (program.data.action === 'open' && program.loader.supportLoad(file.name)) {
program.loader.load(file, { program.loader.load(file, {
type: file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase(), type: file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase(),
@ -34,10 +24,9 @@ define(
} }
else if (program.data.action === 'import' && program.loader.supportImport(file.name)) { else if (program.data.action === 'import' && program.loader.supportImport(file.name)) {
if (program.ttfManager.get()) { if (program.ttfManager.get()) {
var ext = file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase(); var ext = file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase();
var reg = new RegExp('\.' + ext + '$', 'i'); var reg = new RegExp('\.' + ext + '$', 'i');
var files = Array.prototype.slice.call(e.target.files).filter(function (f) { var files = Array.prototype.slice.call(files).filter(function (f) {
return reg.test(f.name); return reg.test(f.name);
}); });
@ -59,10 +48,22 @@ define(
else { else {
alert(i18n.lang.msg_not_support_file_type); alert(i18n.lang.msg_not_support_file_type);
} }
}
function onUpFile(e) {
loadFiles(e.target.files);
e.target.value = ''; e.target.value = '';
} }
function onDrop(e) {
e.stopPropagation();
e.preventDefault();
var file = e.dataTransfer.files[0];
var ext = file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase();
program.data.action = ext === 'svg' ? 'import' : 'open';
loadFiles(e.dataTransfer.files);
}
function bindEvent() { function bindEvent() {
$('.action-groups').delegate('[data-action]', 'click', function (e) { $('.action-groups').delegate('[data-action]', 'click', function (e) {
var action = this.getAttribute('data-action'); var action = this.getAttribute('data-action');
@ -73,6 +74,11 @@ define(
}); });
document.getElementById('font-import').addEventListener('change', onUpFile); document.getElementById('font-import').addEventListener('change', onUpFile);
// 阻止拖拽默认事件
$(document).on('dragleave drop dragenter dragover', function (e) {
e.preventDefault();
});
document.getElementById('glyf-list').addEventListener('drop', onDrop);
} }
var entry = { var entry = {
@ -88,16 +94,21 @@ define(
program.config = require('./config'); program.config = require('./config');
// 拖拽面板管理器
var Spliter = require('./widget/Spliter');
program.spliter = new Spliter($('#glyf-list-spliter')); program.spliter = new Spliter($('#glyf-list-spliter'));
// glyf查看器命令组 // glyf查看器命令组
var Toolbar = require('./widget/Toolbar');
var viewerCommandMenu = new Toolbar($('#glyf-list-commandmenu'), { var viewerCommandMenu = new Toolbar($('#glyf-list-commandmenu'), {
commands: require('./menu/viewer') commands: require('./menu/viewer')
}); });
var Pager = require('./widget/Pager');
program.viewerPager = new Pager($('#glyf-list-pager')); program.viewerPager = new Pager($('#glyf-list-pager'));
// glyf查看器 // glyf查看器
var GLYFViewer = require('./widget/glyfviewer/GLYFViewer');
program.viewer = new GLYFViewer($('#glyf-list'), { program.viewer = new GLYFViewer($('#glyf-list'), {
commandMenu: viewerCommandMenu commandMenu: viewerCommandMenu
}); });
@ -108,15 +119,18 @@ define(
}); });
// 字体查看器 // 字体查看器
var GLYFEditor = require('./widget/GLYFEditor');
program.editor = new GLYFEditor($('#glyf-editor'), { program.editor = new GLYFEditor($('#glyf-editor'), {
commandMenu: editorCommandMenu commandMenu: editorCommandMenu
}); });
// 项目管理 // 项目管理
var ProjectViewer = require('./widget/ProjectViewer');
program.project = require('./widget/project'); program.project = require('./widget/project');
program.projectViewer = new ProjectViewer($('#project-list')); program.projectViewer = new ProjectViewer($('#project-list'));
// ttf管理 // ttf管理
var TTFManager = require('./widget/TTFManager');
program.ttfManager = new TTFManager(); program.ttfManager = new TTFManager();
// 导入导出器 // 导入导出器

View File

@ -15,7 +15,7 @@ define(
+ '<i data-action="edit" class="ico i-edit" title="' + i18n.lang.edit + '"></i>' + '<i data-action="edit" class="ico i-edit" title="' + i18n.lang.edit + '"></i>'
+ '<i data-action="del" class="ico i-del" title="' + i18n.lang.del + '"></i>' + '<i data-action="del" class="ico i-del" title="' + i18n.lang.del + '"></i>'
+ '<svg class="glyf" viewbox="0 0 ${unitsPerEm} ${unitsPerEm}">' + '<svg class="glyf" viewbox="0 0 ${unitsPerEm} ${unitsPerEm}">'
+ '<g transform="scale(1, -1) translate(0, -${translateY}) scale(0.95, 0.95) ">' + '<g transform="scale(1, -1) translate(0, -${translateY}) scale(0.9, 0.9) ">'
+ '<path class="path" ${fillColor} ${d}/></g>' + '<path class="path" ${fillColor} ${d}/></g>'
+ '</svg>' + '</svg>'
+ '<div data-field="unicode" class="unicode" title="${unicode}">${unicode}</div>' + '<div data-field="unicode" class="unicode" title="${unicode}">${unicode}</div>'