Skip to content

Commit

Permalink
Toggle mirrored mode
Browse files Browse the repository at this point in the history
  • Loading branch information
danielstankiewicz committed Dec 1, 2014
1 parent ba1a544 commit 0d43ae5
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 10 deletions.
2 changes: 1 addition & 1 deletion boilerplate-single.html

Large diffs are not rendered by default.

10 changes: 3 additions & 7 deletions src/remark.html
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,11 @@ <h1>Help</h1>
</tr>
<tr>
<td>
<span class="key">b</span>
</td>
<td>Toggle blackout mode</td>
</tr>
<tr>
<td>
<span class="key">b</span>&nbsp;/
<span class="key">m</span>&nbsp;/
<span class="key">f</span>
</td>
<td>Toggle fullscreen mode</td>
<td>Toggle blackout / mirrored / fullscreen mode</td>
</tr>
<tr>
<td>
Expand Down
13 changes: 13 additions & 0 deletions src/remark.less
Original file line number Diff line number Diff line change
Expand Up @@ -429,6 +429,19 @@ html.remark-container, body.remark-container {
}
}

/************/
/* Mirrored */
/************/

.remark-container.remark-mirrored-mode:not(.remark-presenter-mode) {
.remark-slides-area {
-webkit-transform: scaleX(-1);
-moz-transform: scaleX(-1);
-ms-transform: scaleX(-1);
-o-transform: scaleX(-1);
}
}

/************/
/* Printing */
/************/
Expand Down
3 changes: 3 additions & 0 deletions src/remark/controllers/inputs/keyboard.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ function addKeyboardEventListeners (events) {
case 'b':
events.emit('toggleBlackout');
break;
case 'm':
events.emit('toggleMirrored');
break;
case 'c':
events.emit('createClone');
break;
Expand Down
5 changes: 5 additions & 0 deletions src/remark/models/slideshow.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ function Slideshow (events, options) {
self.togglePresenterMode = togglePresenterMode;
self.toggleHelp = toggleHelp;
self.toggleBlackout = toggleBlackout;
self.toggleMirrored = toggleMirrored;
self.toggleFullscreen = toggleFullscreen;
self.createClone = createClone;

Expand Down Expand Up @@ -98,6 +99,10 @@ function Slideshow (events, options) {
events.emit('toggleBlackout');
}

function toggleMirrored() {
events.emit('toggleMirrored');
}

function toggleFullscreen () {
events.emit('toggleFullscreen');
}
Expand Down
4 changes: 2 additions & 2 deletions src/remark/resources.js

Large diffs are not rendered by default.

4 changes: 4 additions & 0 deletions src/remark/views/slideshowView.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,10 @@ function SlideshowView (events, dom, containerElement, slideshow) {
utils.toggleClass(self.containerElement, 'remark-blackout-mode');
});

events.on('toggleMirrored', function () {
utils.toggleClass(self.containerElement, 'remark-mirrored-mode');
});

events.on('hideOverlay', function () {
utils.removeClass(self.containerElement, 'remark-blackout-mode');
utils.removeClass(self.containerElement, 'remark-help-mode');
Expand Down
5 changes: 5 additions & 0 deletions test/remark/controllers/defaultController_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,11 @@ describe('Controller', function () {
events.emit.should.be.calledWithExactly('toggleBlackout');
});

it('should toggle mirrored mode when pressing "m"', function () {
events.emit('keypress', {which: 109});
events.emit.should.be.calledWithExactly('toggleMirrored');
});

beforeEach(function () {
createController();
});
Expand Down
14 changes: 14 additions & 0 deletions test/remark/views/slideshowView_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,20 @@ describe('SlideshowView', function () {

utils.hasClass(containerElement, 'remark-blackout-mode').should.equal(false);
});

it('should toggle mirrored on event', function () {
events.emit('toggleMirrored');

utils.hasClass(containerElement, 'remark-mirrored-mode').should.equal(true);
});

it('should leave toggle mirrored on event', function () {
utils.addClass(containerElement, 'remark-mirrored-mode');
events.emit('toggleMirrored');

utils.hasClass(containerElement, 'remark-mirrored-mode').should.equal(false);
});

});

function triggerEvent(element, eventName) {
Expand Down

0 comments on commit 0d43ae5

Please sign in to comment.