mirror of
https://github.com/flynx/PortableMag.git
synced 2025-11-01 04:20:20 +00:00
added an editor concept...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
b23bdeda49
commit
06dc49b97a
121
index.html
121
index.html
@ -59,6 +59,25 @@
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.current-page-indicator {
|
||||||
|
position: absolute;
|
||||||
|
box-sizing:border-box;
|
||||||
|
opacity: 0.8;
|
||||||
|
|
||||||
|
/*
|
||||||
|
border: solid blue 10px;
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
-webkit-transition: all 0.2s ease;
|
||||||
|
-moz-transition: all 0.2s ease;
|
||||||
|
-o-transition: all 0.2s ease;
|
||||||
|
-ms-transition: all 0.2s ease;
|
||||||
|
transition: all 0.2s ease;
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<script src="ext-lib/jquery.js"></script>
|
<script src="ext-lib/jquery.js"></script>
|
||||||
@ -74,11 +93,49 @@
|
|||||||
<script src="magazine.js"></script>
|
<script src="magazine.js"></script>
|
||||||
<script src="layout.js"></script>
|
<script src="layout.js"></script>
|
||||||
<script src="navigator.js"></script>
|
<script src="navigator.js"></script>
|
||||||
|
<script src="editor.js"></script>
|
||||||
|
|
||||||
<script src="platform.js"></script>
|
<script src="platform.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
|
function setupEditor(){
|
||||||
|
var indicator = $('.current-page-indicator')
|
||||||
|
// remove
|
||||||
|
$('<button>Remove</button>')
|
||||||
|
.appendTo(indicator)
|
||||||
|
.click(function(){
|
||||||
|
removePage()
|
||||||
|
})
|
||||||
|
|
||||||
|
$('<button>Shift Left</button>')
|
||||||
|
.appendTo(indicator)
|
||||||
|
.click(function(){
|
||||||
|
shiftPageLeft()
|
||||||
|
})
|
||||||
|
$('<button>Shift Right</button>')
|
||||||
|
.appendTo(indicator)
|
||||||
|
.click(function(){
|
||||||
|
shiftPageRight()
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
function clearEditor(){
|
||||||
|
$('.current-page-indicator').children().remove()
|
||||||
|
}
|
||||||
|
|
||||||
|
var toggleEditor = createCSSClassToggler(
|
||||||
|
'.chrome',
|
||||||
|
'editor',
|
||||||
|
function(action){
|
||||||
|
if(action == 'on'){
|
||||||
|
setupEditor()
|
||||||
|
} else {
|
||||||
|
clearEditor()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
// general window behavior...
|
// general window behavior...
|
||||||
$(window)
|
$(window)
|
||||||
@ -92,30 +149,29 @@ $(document).ready(function(){
|
|||||||
title: 'Global',
|
title: 'Global',
|
||||||
doc: '',
|
doc: '',
|
||||||
|
|
||||||
36: firstPage, // Home
|
Home: firstPage,
|
||||||
35: lastPage, // End
|
End: lastPage,
|
||||||
37: {
|
Left: {
|
||||||
'default': prevPage, // Left
|
default: prevPage,
|
||||||
'ctrl': prevArticle, // ctrl-Left
|
ctrl: prevArticle,
|
||||||
},
|
},
|
||||||
39: {
|
Right: {
|
||||||
'default': nextPage, // Right
|
default: nextPage,
|
||||||
'ctrl': nextArticle, // ctrl-Right
|
ctrl: nextArticle,
|
||||||
},
|
},
|
||||||
32: {
|
Space: {
|
||||||
'default': nextPage, // Space
|
default: nextPage,
|
||||||
'shift': prevPage // shift-Space
|
shift: prevPage
|
||||||
},
|
},
|
||||||
// combined navigation with actions..
|
// combined navigation with actions..
|
||||||
38: function(){togglePageView()}, // Up
|
Up: function(){togglePageView()},
|
||||||
40: function(){togglePageView()}, // Down
|
Down: function(){togglePageView()},
|
||||||
|
|
||||||
70: function(){ // F
|
F: function(){ togglePageFitMode() },
|
||||||
togglePageFitMode()
|
E: function(){ toggleEditor() },
|
||||||
},
|
B: {
|
||||||
66: {
|
default: toggleBookmark,
|
||||||
'default': toggleBookmark, // B
|
ctrl: function(){ toggleThemes() },
|
||||||
'ctrl': function(){toggleThemes()}, // ctrl-B
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -144,6 +200,24 @@ $(document).ready(function(){
|
|||||||
.on('magazineDataLoaded', loadMagazineChrome)
|
.on('magazineDataLoaded', loadMagazineChrome)
|
||||||
|
|
||||||
|
|
||||||
|
// move the page indicator...
|
||||||
|
// NOTE: this is to be used for page-specific toolbars etc.
|
||||||
|
.on('pageChanged', function(){
|
||||||
|
var cur = $('.current.page')
|
||||||
|
var indicator = $('.current-page-indicator')
|
||||||
|
var shift = getElementShift($('.magazine'))
|
||||||
|
// XXX this is a stub...
|
||||||
|
// reverse the align...
|
||||||
|
indicator
|
||||||
|
.width(cur.width())
|
||||||
|
.height(cur.height())
|
||||||
|
.css({
|
||||||
|
left: getPageInMagazineOffset(cur),
|
||||||
|
top: 0,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
$('.viewer').css('overflow', 'hidden')
|
$('.viewer').css('overflow', 'hidden')
|
||||||
|
|
||||||
//loadState()
|
//loadState()
|
||||||
@ -161,7 +235,6 @@ $(document).ready(function(){
|
|||||||
toggleThemes('dark-viewer')
|
toggleThemes('dark-viewer')
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// hide the splash...
|
// hide the splash...
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
$('.splash').fadeOut()
|
$('.splash').fadeOut()
|
||||||
@ -183,6 +256,7 @@ $(document).ready(function(){
|
|||||||
<div class="chrome">
|
<div class="chrome">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!-- Splash screen -->
|
<!-- Splash screen -->
|
||||||
<div class="splash noSwipe">
|
<div class="splash noSwipe">
|
||||||
<!-- XXX replace this with a background-image logo... -->
|
<!-- XXX replace this with a background-image logo... -->
|
||||||
@ -853,6 +927,13 @@ $(document).ready(function(){
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- current indicator - used for the editor -->
|
||||||
|
<div class="current-page-indicator"></div>
|
||||||
|
<!-- current indicator (end)-->
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
12
layout.js
12
layout.js
@ -224,6 +224,17 @@ function handleScrollRelease(evt, data){
|
|||||||
|
|
||||||
/********************************************************* helpers ***/
|
/********************************************************* helpers ***/
|
||||||
|
|
||||||
|
function getPageInMagazineOffset(page, scale){
|
||||||
|
if(page == null){
|
||||||
|
page = $('.current.page')
|
||||||
|
} else if(typeof(page) == typeof(7)){
|
||||||
|
page = $($('.page')[page])
|
||||||
|
}
|
||||||
|
|
||||||
|
return page.position().left / (scale == null ? getMagazineScale() : scale)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// XXX there is something here that depends on scale that is either not
|
// XXX there is something here that depends on scale that is either not
|
||||||
// compensated, or is over compensated...
|
// compensated, or is over compensated...
|
||||||
function getMagazineOffset(page, scale, align){
|
function getMagazineOffset(page, scale, align){
|
||||||
@ -258,6 +269,7 @@ function getMagazineOffset(page, scale, align){
|
|||||||
// the viewer...
|
// the viewer...
|
||||||
var w = mag.outerWidth(true)
|
var w = mag.outerWidth(true)
|
||||||
// XXX this depends on scale...
|
// XXX this depends on scale...
|
||||||
|
//var pos = getPageInMagazineOffset(page, scale)
|
||||||
var pos = page.position().left//*scale
|
var pos = page.position().left//*scale
|
||||||
|
|
||||||
var l = 0
|
var l = 0
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user