Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Encapsulate presentation-specific values. #60

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

sellout
Copy link

@sellout sellout commented Aug 8, 2016

This introduces a class epresent-presentation that holds anything
specific to a particular presentation. It also makes things much more
lexically-scoped (although there is still too much that depends on
epresent--default-presentation).

This is a first step toward two features:

  1. running multiple presentations simultaneously and
  2. having a 2nd frame for a presentation, displaying speaker notes, etc.

The one “breaking” change here is that the epresent-mode-line variable
has changed. It’s now a function (taking an epresent-presentation
instance) that evaluates to a mode-line format.

This introduces a class `epresent-presentation` that holds anything
specific to a particular presentation. It also makes things much more
lexically-scoped (although there is still too much that depends on
`epresent--default-presentation`).

This is a first step toward two features:

1. running multiple presentations simultaneously and
2. having a 2nd frame for a presentation, displaying speaker notes, etc.

The one “breaking” change here is that the `epresent-mode-line` variable
has changed. It’s now a function (taking an `epresent-presentation`
instance) that evaluates to a mode-line format.
@sellout
Copy link
Author

sellout commented Aug 9, 2016

Some (second) thoughts I’m having about this. Overall, I think it’s very helpful, but there is at least one part that I’m not certain how to deal with – the frame slot in epresent-presentation.

I encapsulated it because at the time I was thinking that some presentations might have a single slides frame while others have a slides frame, plus speaker notes, and perhaps even others that have different frame setups – e.g., if there are multiple projectors, and the presenter wants different content on each, in addition to a third with speaker notes.

However … in the multiple-presentation case, I’d like to have a single slides frame and a single speakernotes frame, and then be able to cycle through the live presentations, using the same frames, rather than having a distinct set of frames for each presentation.

So, perhaps a set of frames is independent of the presentation, and there is some (customizable) mapping between presentations and frames.

Thoughts?

@eschulte
Copy link
Owner

I like the encapsulation and the idea of being able to cycle through speaker notes at the same time as having the presentation up.

W.R.T. speaker notes, here is what my ideal would be. Write the speaker notes in sub-headings with some tag the indicates that subheading is not to be displayed in the presentation (e.g., COMMENT). When launching the presentation, add an option to keep the original Org-mode file visible in the existing window, while launching the presentation full screen on another monitor. Then provide for the following control options. (1) In the presentation window, standard epresent keybindings apply, (2) in the "notes" window standard Org-mode bindings apply. This would be really great if it allowed the speaker to make edits and evaluate code blocks on the fly with the presentation automatically updating. I don't know if or how this fits into the encapsulation model you've developed, just sharing my thoughts.

Thanks for all of these great contributions!

@sellout sellout mentioned this pull request Jan 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants