[edit] [comment] [remove] |2006-08-07| e1 # Overview

The developers of Slidy and Slideous agreed to a common markup, stylesheet and script structure as well as user interface. Possible advantages might be:

  • User Level: Controlling slide shows is always the same, i.e. independent of the system used.
  • Author Level: Templates created by theme authors can be used with both systems.
  • Script Level: Experience sharing. Extension programmers can write addons ideally working with both systems.
 

[edit] [comment] [remove] |2006-08-07| e2 # Markup

DescriptionSlidySlideousS5Proposal
<title> required required required required
required metadata configuration copyright none generator, version, presdate, author, company, defaultView, controlvis supported, not required
layout element div, class= "background" div, id= "statusbar" div, class= "layout" statusbar customisable
slideshow element none none div, class= "presentation" none
slide element div, class= "slide" div, class= "slide" div, class= "slide" div, class= "slide"
hidden slide display:none display:none visibility: hidden" class= "hidden"
slide title h1, first child h1, first child h1, first child h1, first child
slide id, dynamically assigned "s" + i "slide" + i "s" + i
cover slide div, class= "slide cover" not explicite not explicite not explicite
toc slide none div, class= "slide toc" none div, class= "slide toc"
handout div, class= "handout" optionally one, following the slide div div, class= "handout" optionally one or more, embedded in the slide div div, class= "handout" optionally one or more, embedded in the slide div div, class= "handout" optionally one or more, embedded in the slide div
 

[edit] [comment] [remove] |2006-08-08| e3 # User Interface

DescriptionSlidySlideousS5Proposal
Keyboard Controls
Next Slide PgDn, Space Bar, Right Arrow PgDn, Space Bar, Return, Enter, Right Arrow PgDn, Space Bar, Return, Enter, Right Arrow PgDn, Space Bar, Return, Enter, Right Arrow
Previous Slide PgUp, Left Arrow PgUp, Left Arrow PgUp, Left Arrow PgUp, Left Arrow
Next Item PgDn, Space Bar, Right Arrow Space Bar, Right Arrow PgDn, Space Bar, Return, Enter, Right Arrow Space Bar, Right Arrow
Previous Item PgUp, Left Arrow Left Arrow PgUp, Left Arrow Left Arrow
First Slide Home Home Home Home
Last Slide End End End End
Goto Slide - - n+Return/Enter -
Show all Slides, Print Mode A (All) P (Print) T (Toggle) A, P
Show/Hide Statusbar F (Footer) S (Statusbar) C (Controls) F, S
Mouse Navigation On/Off K M K, M
Show ToC C C C
Control Font Size B/S, +/- +/- +/-
Help H H, ?
Mouse Control
Next Item/Page Left Button Click (no selection) Left Button Click (no selection) Left Button Click Left Button Click (no selection)
Content Selection Left Button Press + MouseMove Left Button Press + MouseMove + Left Button Release Left Button Press + MouseMove
Content Deselection Left Button Release Left Button Click Left Button Release
Complete incremental slide Shift + Left Button Click Shift + Left Button Click
Miscellaneous
Slide Counter Slide i/n i of n i/n any
ToC Select Box no yes yes optional
Help Button yes no no optional
Navigation Buttons no yes no optional
configuration variables no yes no optional
 

[edit] [comment] [remove] |2006-08-08| e4 # Script API

It is highly recommended to use a Static Object API in order to avoid polluting the global namespace. As there should be no more than one SlideShow Object per document, a static object should be sufficient.

The static object is named Slideous in Slideous. It will be named "X" in the following table, in need for a better name. The browser's window and document objects are abbreviated as win and doc.

DescriptionSlidySlideousS5Proposal
Event handlers
win.onload startup() X.init() startup() X.init()
win.onresize resized() anonymous() X.resize()
win.onscroll scrolled() X.scroll()
win.onbeforeprint beforePrint() X.beforeprint()
win.onafterprint afterPrint() X.afterprint()
doc.onmousedown X.mousedown(e) X.mousedown(e)
doc.onmouseup mouseButtonUp(e) X.mouseup(e) X.mouseup(e)
doc.onclick mouseButtonClick(e) X.click(e)
doc.onkeypress trap(e)
doc.onkeydown keyDown(e) X.keydown(e) X.keydown(e)
doc.onkeyup keys(e)
Navigational methods
first slide firstSlide() X.gotoslide(1) goTo(0) X.toSlide(0)
last slide lastSlide() X.gotoslide(n) goTo(n) X.toSlide(n)
next slide/item nextSlide(incr) X.next(incr) go(1) X.next(incr)
previous slide/item previousSlide(incr) X.previous(incr) go(-1) X.previous(incr)
goto slide X.gotoslide(i) goTo(i) X.toSlide(i)
UI related methods
show all slides toggleView() X.showall(bool) toggle() X.showAll(bool)
show/hide statusbar showToolbar() X.toggle- statusbar() X.showBar(bool)
mouse navigation on/off X.mouse- navigation(bool) X.mouse- Navigation(bool)
change font size smaller(), bigger() X.change- fontsize(delta) X.setFontSize (index)
Slide methods
get slide by index X.slide(idx)
get slide by id X.slideById(id)
get slide visibilty X.isVisible (slide)
get slide title X.slideTitle (slide)
get slide note X.slideNote (slide)
set slide visibility X.showSlide (slide, bool)
set slide note visibility X.showNote (slide, bool)
X properties
# of slides X.count
current slide index X.idx
view mode (bool) X.all
mouse navigation (bool) X.mouse
current font size index X.fontSize
localization of messages (arrays) X.msg.de, …, X.msg.en

It might be somewhat tidier, to collect all event handlers in an internal object, so we would have X.evt.mousedown instead of X.mousedown.