@ -133,17 +133,6 @@ inline auto sumIf(size_t base, size_t addend, bool predicate) -> size_t {
void Layout : : recalculate ( ) {
size_t padding = 0 ;
size_t paddingBetween = 0 ;
size_t roomForShadow = 0 ;
if ( ! view - > getControl ( ) - > getZoomControl ( ) - > isZoomPresentationMode ( ) ) {
padding = XOURNAL_PADDING ;
paddingBetween = XOURNAL_PADDING_BETWEEN ;
roomForShadow = XOURNAL_ROOM_FOR_SHADOW ;
}
auto * settings = view - > getControl ( ) - > getSettings ( ) ;
size_t len = view - > viewPages . size ( ) ;
mapper . configureFromSettings ( len , settings ) ;
@ -163,11 +152,13 @@ void Layout::recalculate() {
}
// add space around the entire page area to accomodate older Wacom tablets with limited sense area.
size_t const vPadding = sumIf ( padding , settings - > getAddVerticalSpaceAmount ( ) , settings - > getAddVerticalSpace ( ) ) ;
size_t const hPadding = sumIf ( padding , settings - > getAddHorizontalSpaceAmount ( ) , settings - > getAddHorizontalSpace ( ) ) ;
size_t const vPadding =
sumIf ( XOURNAL_PADDING , settings - > getAddVerticalSpaceAmount ( ) , settings - > getAddVerticalSpace ( ) ) ;
size_t const hPadding =
sumIf ( XOURNAL_PADDING , settings - > getAddHorizontalSpaceAmount ( ) , settings - > getAddHorizontalSpace ( ) ) ;
minWidth = 2 * hPadding + ( widthCols . size ( ) - 1 ) * paddingBetween ;
minHeight = 2 * vPadding + ( heightRows . size ( ) - 1 ) * paddingBetween ;
minWidth = 2 * hPadding + ( widthCols . size ( ) - 1 ) * XOURNAL_PADDING_BETWEEN ;
minHeight = 2 * vPadding + ( heightRows . size ( ) - 1 ) * XOURNAL_PADDING_BETWEEN ;
minWidth = std : : accumulate ( begin ( widthCols ) , end ( widthCols ) , minWidth ) ;
minHeight = std : : accumulate ( begin ( heightRows ) , end ( heightRows ) , minHeight ) ;
@ -182,16 +173,6 @@ void Layout::layoutPages(int width, int height) {
}
valid = false ;
size_t padding = 0 ;
size_t paddingBetween = 0 ;
size_t roomForShadow = 0 ;
if ( ! view - > getControl ( ) - > getZoomControl ( ) - > isZoomPresentationMode ( ) ) {
padding = XOURNAL_PADDING ;
paddingBetween = XOURNAL_PADDING_BETWEEN ;
roomForShadow = XOURNAL_ROOM_FOR_SHADOW ;
}
size_t const len = this - > view - > viewPages . size ( ) ;
Settings * settings = this - > view - > getControl ( ) - > getSettings ( ) ;
@ -203,9 +184,10 @@ void Layout::layoutPages(int width, int height) {
// add space around the entire page area to accomodate older Wacom tablets with limited sense area.
int64_t const v_padding = sumIf ( padding , settings - > getAddVerticalSpaceAmount ( ) , settings - > getAddVerticalSpace ( ) ) ;
int64_t const v_padding =
sumIf ( XOURNAL_PADDING , settings - > getAddVerticalSpaceAmount ( ) , settings - > getAddVerticalSpace ( ) ) ;
int64_t const h_padding =
sumIf ( padding , settings - > getAddHorizontalSpaceAmount ( ) , settings - > getAddHorizontalSpace ( ) ) ;
sumIf ( XOURNAL_PADDING , settings - > getAddHorizontalSpaceAmount ( ) , settings - > getAddHorizontalSpace ( ) ) ;
int64_t const centeringXBorder = static_cast < int64_t > ( width - minWidth ) / 2 ;
int64_t const centeringYBorder = static_cast < int64_t > ( height - minHeight ) / 2 ;
@ -239,15 +221,15 @@ void Layout::layoutPages(int width, int height) {
// pair pages mode
if ( c % 2 = = 0 ) {
// align right
paddingLeft = paddingBetween - roomForShadow + columnPadding ;
paddingRight = roomForShadow ;
paddingLeft = XOURNAL_PADDING_BETWEEN - XOURNAL_ROOM_FOR_SHADOW + columnPadding ;
paddingRight = XOURNAL_ROOM_FOR_SHADOW ;
} else { // align left
paddingLeft = roomForShadow ;
paddingRight = paddingBetween - roomForShadow + columnPadding ;
paddingLeft = XOURNAL_ROOM_FOR_SHADOW ;
paddingRight = XOURNAL_PADDING_BETWEEN - XOURNAL_ROOM_FOR_SHADOW + columnPadding ;
}
} else { // not paired page mode - center
paddingLeft = paddingBetween / 2 + columnPadding / 2 ; // center justify
paddingRight = paddingBetween - paddingLeft + columnPadding / 2 ;
} else { // not paired page mode - center
paddingLeft = XOURNAL_PADDING_BETWEEN / 2 + columnPadding / 2 ; // center justify
paddingRight = XOURNAL_PADDING_BETWEEN - paddingLeft + columnPadding / 2 ;
}
x + = paddingLeft ;
@ -258,23 +240,23 @@ void Layout::layoutPages(int width, int height) {
x + = vDisplayWidth + paddingRight ;
}
} else {
x + = this - > widthCols [ c ] + paddingBetween ;
x + = this - > widthCols [ c ] + XOURNAL_PADDING_BETWEEN ;
}
}
x = borderX ;
y + = this - > heightRows [ r ] + paddingBetween ;
y + = this - > heightRows [ r ] + XOURNAL_PADDING_BETWEEN ;
}
int64_t totalWidth = borderX ;
for ( auto & & widthCol : this - > widthCols ) {
// accumulated - absolute pixel location for use by getViewAt() and updateVisibility()
totalWidth + = widthCol + paddingBetween ;
totalWidth + = widthCol + XOURNAL_PADDING_BETWEEN ;
widthCol = totalWidth ;
}
int64_t totalHeight = borderY ;
for ( auto & & heightRow : this - > heightRows ) {
totalHeight + = heightRow + paddingBetween ;
totalHeight + = heightRow + XOURNAL_PADDING_BETWEEN ;
heightRow = totalHeight ;
}
}
@ -303,9 +285,8 @@ void Layout::scrollAbs(double x, double y) {
void Layout : : ensureRectIsVisible ( int x , int y , int width , int height ) {
int offset = ( this - > view - > getControl ( ) - > getSettings ( ) - > isPresentationMode ( ) ) ? 0 : XOURNAL_PADDING / 2 ;
gtk_adjustment_clamp_page ( scrollHandling - > getHorizontal ( ) , x - offset , x + width + 2 * offset ) ;
gtk_adjustment_clamp_page ( scrollHandling - > getVertical ( ) , y - offset , y + height + 2 * offset ) ;
gtk_adjustment_clamp_page ( scrollHandling - > getHorizontal ( ) , x - 5 , x + width + 10 ) ;
gtk_adjustment_clamp_page ( scrollHandling - > getVertical ( ) , y - 5 , y + height + 10 ) ;
}