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;
display: block;
.path {
fill: #232830;
fill: #666;
}
}

View File

@ -6,22 +6,12 @@
define(
function (require) {
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 controller = require('./controller/default');
var actions = require('./controller/actions');
function onUpFile(e) {
var file = e.target.files[0];
function loadFiles(files) {
var file = files[0];
if (program.data.action === 'open' && program.loader.supportLoad(file.name)) {
program.loader.load(file, {
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)) {
if (program.ttfManager.get()) {
var ext = file.name.slice(file.name.lastIndexOf('.') + 1).toLowerCase();
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);
});
@ -59,10 +48,22 @@ define(
else {
alert(i18n.lang.msg_not_support_file_type);
}
}
function onUpFile(e) {
loadFiles(e.target.files);
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() {
$('.action-groups').delegate('[data-action]', 'click', function (e) {
var action = this.getAttribute('data-action');
@ -73,6 +74,11 @@ define(
});
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 = {
@ -88,16 +94,21 @@ define(
program.config = require('./config');
// 拖拽面板管理器
var Spliter = require('./widget/Spliter');
program.spliter = new Spliter($('#glyf-list-spliter'));
// glyf查看器命令组
var Toolbar = require('./widget/Toolbar');
var viewerCommandMenu = new Toolbar($('#glyf-list-commandmenu'), {
commands: require('./menu/viewer')
});
var Pager = require('./widget/Pager');
program.viewerPager = new Pager($('#glyf-list-pager'));
// glyf查看器
var GLYFViewer = require('./widget/glyfviewer/GLYFViewer');
program.viewer = new GLYFViewer($('#glyf-list'), {
commandMenu: viewerCommandMenu
});
@ -108,15 +119,18 @@ define(
});
// 字体查看器
var GLYFEditor = require('./widget/GLYFEditor');
program.editor = new GLYFEditor($('#glyf-editor'), {
commandMenu: editorCommandMenu
});
// 项目管理
var ProjectViewer = require('./widget/ProjectViewer');
program.project = require('./widget/project');
program.projectViewer = new ProjectViewer($('#project-list'));
// ttf管理
var TTFManager = require('./widget/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="del" class="ico i-del" title="' + i18n.lang.del + '"></i>'
+ '<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>'
+ '</svg>'
+ '<div data-field="unicode" class="unicode" title="${unicode}">${unicode}</div>'