mirror of
https://github.com/piskelapp/piskel.git
synced 2023-08-10 21:12:52 +03:00
Merge branch 'master' into gh-pages
This commit is contained in:
commit
843a61b25a
@ -12,39 +12,48 @@ body {
|
|||||||
* Application layout
|
* Application layout
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
.main-wrapper {
|
||||||
|
position: absolute;
|
||||||
|
top: 5px;
|
||||||
|
right: 0;
|
||||||
|
bottom: 5px;
|
||||||
|
left: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.column-wrapper {
|
.column-wrapper {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-size: 0;
|
font-size: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 100px; /* Reserve room for tools on the left edge of the screen. */
|
left: 100px; /* Reserve room for tools on the left edge of the screen. */
|
||||||
top: 10px;
|
top: 0;
|
||||||
right: 50px; /* Reserve room for actions on the right edge of the screen. */
|
right: 50px; /* Reserve room for actions on the right edge of the screen. */
|
||||||
bottom: 10px;
|
bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.column {
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.left-column {
|
.left-column {
|
||||||
display: inline-block;
|
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin-right: 7px;
|
margin-right: 7px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.main-column {
|
.main-column {
|
||||||
display: inline-block;
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.drawing-canvas-container {
|
|
||||||
font-size: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.right-column {
|
.right-column {
|
||||||
display: inline-block;
|
|
||||||
vertical-align: top;
|
vertical-align: top;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.drawing-canvas-container {
|
||||||
|
font-size: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.sticky-section {
|
.sticky-section {
|
||||||
display: table;
|
display: table;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
156
index.html
156
index.html
@ -16,96 +16,98 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="css/preview-film-section.css">
|
<link rel="stylesheet" type="text/css" href="css/preview-film-section.css">
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="sticky-section left-sticky-section" id="tool-section">
|
<div id="main-wrapper" class="main-wrapper">
|
||||||
<div class="wrap">
|
<div class="sticky-section left-sticky-section" id="tool-section">
|
||||||
<ul id="tools-container" class="tools-wrapper"></ul>
|
<div class="wrap">
|
||||||
<div class="palette-wrapper">
|
<ul id="tools-container" class="tools-wrapper"></ul>
|
||||||
<div class="tool-icon tool-color-picker">
|
<div class="palette-wrapper">
|
||||||
<input id="color-picker" class="color {hash:true}" type="text" value="" />
|
<div class="tool-icon tool-color-picker">
|
||||||
<input id="secondary-color-picker" class="secondary-color-picker color {hash:true}" type="text" value="" />
|
<input id="color-picker" class="color {hash:true}" type="text" value="" />
|
||||||
</div>
|
<input id="secondary-color-picker" class="secondary-color-picker color {hash:true}" type="text" value="" />
|
||||||
<div class="tool-icon tool-palette">
|
|
||||||
<div id="palette" class="palette">
|
|
||||||
<span class="tool-icon palette-color transparent-color" data-color="TRANSPARENT" title="Transparent"></span>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="tool-icon tool-palette">
|
||||||
</div>
|
<div id="palette" class="palette">
|
||||||
</div>
|
<span class="tool-icon palette-color transparent-color" data-color="TRANSPARENT" title="Transparent"></span>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div id="application-action-section" class="sticky-section right-sticky-section">
|
|
||||||
<div class="wrap">
|
|
||||||
<div id="settings" class="tool-icon gear-icon" title="Preferences" rel="tooltip" data-placement="left"></div>
|
|
||||||
<a class="tool-icon gallery-icon" title="Visit gallery" href="http://juliandescottes.github.io/piskel-website/" rel="tooltip" data-placement="left" target="_blank"></a>
|
|
||||||
<div class="tool-icon save-icon" title="Save to gallery" onclick="piskel.storeSheet()" rel="tooltip" data-placement="left" ></div>
|
|
||||||
<div class="tool-icon upload-cloud-icon" title="Upload as an animated GIF" onclick="piskel.uploadAsAnimatedGIF()" rel="tooltip" data-placement="left">
|
|
||||||
<span class="label">GIF</span>
|
|
||||||
</div>
|
|
||||||
<div class="tool-icon upload-cloud-icon" title="Upload as a spritesheet PNG" onclick="piskel.uploadAsSpritesheetPNG()" rel="tooltip" data-placement="left">
|
|
||||||
<span class="label">PNG</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="drawer">
|
|
||||||
<div class="drawer-content">
|
|
||||||
<div class="settings-section">
|
|
||||||
<div class="settings-title">
|
|
||||||
Canvas settings:
|
|
||||||
</div>
|
|
||||||
<div class="settings-item">
|
|
||||||
<label>Background:</label>
|
|
||||||
<div id="background-picker-wrapper" class="background-picker-wrapper">
|
|
||||||
<div class="background-picker light-picker-background" data-background-class="light-canvas-background"
|
|
||||||
rel="tooltip" data-placement="bottom" title="light / high contrast">
|
|
||||||
</div>
|
|
||||||
<div class="background-picker medium-picker-background" data-background-class="medium-canvas-background"
|
|
||||||
rel="tooltip" data-placement="bottom" title="medium / high contrast">
|
|
||||||
</div>
|
|
||||||
<div class="background-picker lowcont-medium-picker-background" data-background-class="lowcont-medium-canvas-background"
|
|
||||||
rel="tooltip" data-placement="bottom" title="medium / low contrast">
|
|
||||||
</div>
|
|
||||||
<div class="background-picker lowcont-dark-picker-background" data-background-class="lowcont-dark-canvas-background"
|
|
||||||
rel="tooltip" data-placement="bottom" title="dark / low contrast">
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="settings-item">
|
</div>
|
||||||
<label for="show-grid">Show grid:</label> <input id="show-grid" type="checkbox"/>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="application-action-section" class="sticky-section right-sticky-section">
|
||||||
|
<div class="wrap">
|
||||||
|
<div id="settings" class="tool-icon gear-icon" title="Preferences" rel="tooltip" data-placement="left"></div>
|
||||||
|
<a class="tool-icon gallery-icon" title="Visit gallery" href="http://juliandescottes.github.io/piskel-website/" rel="tooltip" data-placement="left" target="_blank"></a>
|
||||||
|
<div class="tool-icon save-icon" title="Save to gallery" onclick="piskel.storeSheet()" rel="tooltip" data-placement="left" ></div>
|
||||||
|
<div class="tool-icon upload-cloud-icon" title="Upload as an animated GIF" onclick="piskel.uploadAsAnimatedGIF()" rel="tooltip" data-placement="left">
|
||||||
|
<span class="label">GIF</span>
|
||||||
|
</div>
|
||||||
|
<div class="tool-icon upload-cloud-icon" title="Upload as a spritesheet PNG" onclick="piskel.uploadAsSpritesheetPNG()" rel="tooltip" data-placement="left">
|
||||||
|
<span class="label">PNG</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="drawer">
|
||||||
|
<div class="drawer-content">
|
||||||
|
<div class="settings-section">
|
||||||
|
<div class="settings-title">
|
||||||
|
Canvas settings:
|
||||||
|
</div>
|
||||||
|
<div class="settings-item">
|
||||||
|
<label>Background:</label>
|
||||||
|
<div id="background-picker-wrapper" class="background-picker-wrapper">
|
||||||
|
<div class="background-picker light-picker-background" data-background-class="light-canvas-background"
|
||||||
|
rel="tooltip" data-placement="bottom" title="light / high contrast">
|
||||||
|
</div>
|
||||||
|
<div class="background-picker medium-picker-background" data-background-class="medium-canvas-background"
|
||||||
|
rel="tooltip" data-placement="bottom" title="medium / high contrast">
|
||||||
|
</div>
|
||||||
|
<div class="background-picker lowcont-medium-picker-background" data-background-class="lowcont-medium-canvas-background"
|
||||||
|
rel="tooltip" data-placement="bottom" title="medium / low contrast">
|
||||||
|
</div>
|
||||||
|
<div class="background-picker lowcont-dark-picker-background" data-background-class="lowcont-dark-canvas-background"
|
||||||
|
rel="tooltip" data-placement="bottom" title="dark / low contrast">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="settings-item">
|
||||||
|
<label for="show-grid">Show grid:</label> <input id="show-grid" type="checkbox"/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="column-wrapper">
|
<div id="column-wrapper" class="column-wrapper">
|
||||||
<div class='left-column'>
|
<div class='column left-column'>
|
||||||
|
|
||||||
<!-- List of frames: -->
|
<!-- List of frames: -->
|
||||||
<div id="preview-list-wrapper" class="preview-list-wrapper">
|
<div id="preview-list-wrapper" class="preview-list-wrapper">
|
||||||
<div id="preview-list-scroller" class="preview-list-scroller">
|
<div id="preview-list-scroller" class="preview-list-scroller">
|
||||||
<ul class="preview-list" id="preview-list"></ul>
|
<ul class="preview-list" id="preview-list"></ul>
|
||||||
|
</div>
|
||||||
|
<div class="top-overflow"></div>
|
||||||
|
<div class="bottom-overflow"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top-overflow"></div>
|
|
||||||
<div class="bottom-overflow"></div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class='main-column'>
|
<div class='column main-column'>
|
||||||
<!-- Drawing area: -->
|
<!-- Drawing area: -->
|
||||||
<div id="drawing-canvas-container" class="drawing-canvas-container canvas-container">
|
<div id="drawing-canvas-container" class="drawing-canvas-container canvas-container">
|
||||||
<div class="canvas-background"></div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="right-column">
|
|
||||||
<!-- Animation preview: -->
|
|
||||||
<div class='preview-container'>
|
|
||||||
<div id='preview-canvas-container' class="canvas-container">
|
|
||||||
<div class="canvas-background"></div>
|
<div class="canvas-background"></div>
|
||||||
</div>
|
</div>
|
||||||
<div>
|
</div>
|
||||||
<span id="display-fps" class="display-fps">12 FPS</span>
|
|
||||||
<input id="preview-fps" class="range-fps" type="range" min="1" max="24" value="12"/>
|
<div class="column right-column">
|
||||||
</div>
|
<!-- Animation preview: -->
|
||||||
|
<div class='preview-container'>
|
||||||
|
<div id='preview-canvas-container' class="canvas-container">
|
||||||
|
<div class="canvas-background"></div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<span id="display-fps" class="display-fps">12 FPS</span>
|
||||||
|
<input id="preview-fps" class="range-fps" type="range" min="1" max="24" value="12"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -60,8 +60,10 @@
|
|||||||
|
|
||||||
$(window).resize($.proxy(this.startDPIUpdateTimer_, this));
|
$(window).resize($.proxy(this.startDPIUpdateTimer_, this));
|
||||||
|
|
||||||
|
$.subscribe(Events.USER_SETTINGS_CHANGED, $.proxy(this.onUserSettingsChange_, this));
|
||||||
$.subscribe(Events.FRAME_SIZE_CHANGED, $.proxy(this.updateDPI_, this));
|
$.subscribe(Events.FRAME_SIZE_CHANGED, $.proxy(this.updateDPI_, this));
|
||||||
$.subscribe(Events.USER_SETTINGS_CHANGED, $.proxy(this.onUserSettingsChange_, this));
|
|
||||||
|
this.updateDPI_();
|
||||||
};
|
};
|
||||||
|
|
||||||
ns.DrawingController.prototype.initMouseBehavior = function() {
|
ns.DrawingController.prototype.initMouseBehavior = function() {
|
||||||
@ -88,7 +90,7 @@
|
|||||||
*/
|
*/
|
||||||
ns.DrawingController.prototype.onUserSettingsChange_ = function (evt, settingsName, settingsValue) {
|
ns.DrawingController.prototype.onUserSettingsChange_ = function (evt, settingsName, settingsValue) {
|
||||||
if(settingsName == pskl.UserSettings.SHOW_GRID) {
|
if(settingsName == pskl.UserSettings.SHOW_GRID) {
|
||||||
this.forceRendering_();
|
this.updateDPI_();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -268,13 +270,20 @@
|
|||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
ns.DrawingController.prototype.calculateDPI_ = function() {
|
ns.DrawingController.prototype.calculateDPI_ = function() {
|
||||||
var availableViewportHeight = $('.main-column').height(),
|
var availableViewportHeight = $('#main-wrapper').height(),
|
||||||
leftSectionWidth = $('.left-column').width(),
|
leftSectionWidth = $('.left-column').outerWidth(true),
|
||||||
rightSectionWidth = $('.right-column').width(),
|
rightSectionWidth = $('.right-column').outerWidth(true),
|
||||||
availableViewportWidth = $('body').width() - leftSectionWidth - rightSectionWidth,
|
availableViewportWidth = $('#main-wrapper').width() - leftSectionWidth - rightSectionWidth,
|
||||||
framePixelHeight = this.framesheet.getCurrentFrame().getHeight(),
|
framePixelHeight = this.framesheet.getCurrentFrame().getHeight(),
|
||||||
framePixelWidth = this.framesheet.getCurrentFrame().getWidth();
|
framePixelWidth = this.framesheet.getCurrentFrame().getWidth();
|
||||||
var dpi = pskl.PixelUtils.calculateDPI(availableViewportHeight, availableViewportWidth, framePixelHeight, framePixelWidth);
|
|
||||||
|
if (pskl.UserSettings.get(pskl.UserSettings.SHOW_GRID)) {
|
||||||
|
availableViewportWidth = availableViewportWidth - (framePixelWidth * Constants.GRID_STROKE_WIDTH);
|
||||||
|
availableViewportHeight = availableViewportHeight - (framePixelHeight * Constants.GRID_STROKE_WIDTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
var dpi = pskl.PixelUtils.calculateDPI(
|
||||||
|
availableViewportHeight, availableViewportWidth, framePixelHeight, framePixelWidth);
|
||||||
|
|
||||||
return dpi;
|
return dpi;
|
||||||
};
|
};
|
||||||
@ -286,6 +295,19 @@
|
|||||||
var dpi = this.calculateDPI_();
|
var dpi = this.calculateDPI_();
|
||||||
this.renderer.updateDPI(dpi);
|
this.renderer.updateDPI(dpi);
|
||||||
this.overlayRenderer.updateDPI(dpi);
|
this.overlayRenderer.updateDPI(dpi);
|
||||||
|
|
||||||
|
var currentFrameHeight = this.framesheet.getCurrentFrame().getHeight();
|
||||||
|
var canvasHeight = currentFrameHeight * dpi;
|
||||||
|
if (pskl.UserSettings.get(pskl.UserSettings.SHOW_GRID)) {
|
||||||
|
canvasHeight += Constants.GRID_STROKE_WIDTH * currentFrameHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
var verticalGapInPixel = Math.floor(($('#main-wrapper').height() - canvasHeight) / 2);
|
||||||
|
$('#column-wrapper').css({
|
||||||
|
'top': verticalGapInPixel + 'px',
|
||||||
|
'height': canvasHeight + 'px'
|
||||||
|
});
|
||||||
|
|
||||||
this.forceRendering_();
|
this.forceRendering_();
|
||||||
};
|
};
|
||||||
})();
|
})();
|
@ -97,7 +97,8 @@
|
|||||||
|
|
||||||
$("#preview-list").sortable({
|
$("#preview-list").sortable({
|
||||||
placeholder: "preview-tile-drop-proxy",
|
placeholder: "preview-tile-drop-proxy",
|
||||||
update: $.proxy(this.onUpdate_, this)
|
update: $.proxy(this.onUpdate_, this),
|
||||||
|
items: ".preview-tile"
|
||||||
});
|
});
|
||||||
$("#preview-list").disableSelection();
|
$("#preview-list").disableSelection();
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user