Sfoglia il codice sorgente

Add slides on CLI + links

Laurent Laffont 12 anni fa
parent
commit
077359537d

File diff suppressed because it is too large
+ 301 - 301
examples/presentation/js/Presentation.deploy.js


File diff suppressed because it is too large
+ 383 - 383
examples/presentation/js/Presentation.js


+ 209 - 157
examples/presentation/st/Presentation.st

@@ -1,70 +1,148 @@
 Smalltalk current createPackage: 'Presentation' properties: #{}!
-Widget subclass: #Slide
-	instanceVariableNames: 'presentation'
+Widget subclass: #Presentation
+	instanceVariableNames: 'currentSlide slides'
 	category: 'Presentation'!
 
-!Slide methodsFor: 'accessing'!
+!Presentation methodsFor: 'accessing'!
 
-presentation
-	^presentation
+title
+	^ self class title.
 !
 
-presentation: aPresentation
-	presentation := aPresentation
+author
+	^'John Smith'
 !
 
-id
-	^ self class name
+url
+	^'http://jtalk-project.org'
 !
 
-cssClass
-	^'slide'
+description
+	^'A presentation written in Jtalk'
 !
 
-backgroundColor
-	^'#555'
+email
+	^'john@smith.com'
 !
 
-title
-	^ self id
+slides
+	slides ifNil: [self initSlides].
+	^slides
+!
+
+slideClasses
+	^self subclassResponsibility
+!
+
+currentSlide
+	^currentSlide
+!
+
+currentSlide: aSlide
+	currentSlide := aSlide
+!
+
+slideTransition
+	^'fade'
+!
+
+style
+	"Should return a CSS style"
+	^ ''
 ! !
 
-!Slide methodsFor: 'actions'!
+!Presentation methodsFor: 'actions'!
 
-show
-	self backgroundColor ifNotNil: [
-		(window jQuery: '#slides') css: 'background' color: self backgroundColor].
-	(window jQuery: '.slide') hide: self presentation slideTransition options: #() duration: 300.
-	(window jQuery: '#', self id) show: self presentation slideTransition options: #() duration: 300.
+nextSlide
+	| next |
+	self currentSlide ifNotNil: [
+		next := self slides 
+			at: (self currentSlideIndex) + 1
+			ifAbsent: [nil].
+		next ifNotNil: [currentSlide := next. next show]]
+!
+
+showCurrentSlide
+	self currentSlide ifNotNil: [
+		'.slide' asJQuery hide.
+		('#', self currentSlide id) asJQuery show.
+          	'title' asJQuery text: self title, ' - ', self currentSlide id.
+        ]
+!
+
+previousSlide
+	| next |
+	self currentSlide ifNotNil: [
+		next := self slides 
+			at: (self currentSlideIndex) - 1
+			ifAbsent: [nil].
+		next ifNotNil: [currentSlide := next. next show]]
+!
+
+moveAt: anInteger
+	| next |
+	next := self slides 
+			at: anInteger
+			ifAbsent: [nil].
+	next ifNotNil: [currentSlide := next. next show]
+!
+
+currentSlideIndex
+	^ self slides indexOf: self currentSlide ifAbsent: [1]
 ! !
 
-!Slide methodsFor: 'rendering'!
+!Presentation methodsFor: 'enumerating'!
+
+slidesDo: aBlockWithArg
+	self slides do: [:aSlide| aBlockWithArg value: aSlide].
+! !
+
+!Presentation methodsFor: 'initialization'!
+
+initSlides
+	slides := self slideClasses collect: [:each | each on: self]
+! !
+
+!Presentation methodsFor: 'rendering'!
 
 renderOn: html
-	html div class: self cssClass; id: self id; with: [
-		self renderSlideOn: html.
-		self renderMetaOn: html]
+	html style
+		type: 'text/css';
+		with: self style.
+	html div 
+		id: 'slides';
+		with: [self renderSlidesOn: html]
 !
 
-renderSlideOn: html
+renderSlidesOn: html
+	self slides do: [:each | 
+		each renderOn: html].
+	currentSlide ifNil: [currentSlide := self slides first].
+	self showCurrentSlide
+! !
+
+Presentation class instanceVariableNames: 'current'!
+
+!Presentation class methodsFor: 'accessing'!
+
+concretePresentations
+	^ self allSubclasses select: [:aPresentationClass| aPresentationClass isConcrete]
 !
 
-renderMetaOn: html
-	html div 
-		id: 'meta';
-		with: [
-			html p class: 'title'; with: self presentation title.
-			html p class: 'description'; with: self presentation description.
-			html a class: 'author'; with: self presentation author; href: 'mailto:', self presentation email.
-			html a class: 'url'; with: self presentation url; href: self presentation url]
+title
+	^ 'Slides'
 ! !
 
-!Slide class methodsFor: 'instance creation'!
+!Presentation class methodsFor: 'enumerating'!
 
-on: aPresentation
-	^self new
-		presentation: aPresentation;
-		yourself
+concretePresentationsDo: aBlockWithArg
+	self concretePresentations do: aBlockWithArg.
+! !
+
+!Presentation class methodsFor: 'testing'!
+
+isConcrete
+	^false
 ! !
 
 Widget subclass: #PresentationNavigator
@@ -270,150 +348,72 @@ open
 	^ self new open
 ! !
 
-Widget subclass: #Presentation
-	instanceVariableNames: 'currentSlide slides'
+Widget subclass: #Slide
+	instanceVariableNames: 'presentation'
 	category: 'Presentation'!
 
-!Presentation methodsFor: 'accessing'!
-
-title
-	^ self class title.
-!
-
-author
-	^'John Smith'
-!
-
-url
-	^'http://jtalk-project.org'
-!
-
-description
-	^'A presentation written in Jtalk'
-!
-
-email
-	^'john@smith.com'
-!
-
-slides
-	slides ifNil: [self initSlides].
-	^slides
-!
-
-slideClasses
-	^self subclassResponsibility
-!
-
-currentSlide
-	^currentSlide
-!
-
-currentSlide: aSlide
-	currentSlide := aSlide
-!
+!Slide methodsFor: 'accessing'!
 
-slideTransition
-	^'fade'
+presentation
+	^presentation
 !
 
-style
-	"Should return a CSS style"
-	^ ''
-! !
-
-!Presentation methodsFor: 'actions'!
-
-nextSlide
-	| next |
-	self currentSlide ifNotNil: [
-		next := self slides 
-			at: (self currentSlideIndex) + 1
-			ifAbsent: [nil].
-		next ifNotNil: [currentSlide := next. next show]]
+presentation: aPresentation
+	presentation := aPresentation
 !
 
-showCurrentSlide
-	self currentSlide ifNotNil: [
-		'.slide' asJQuery hide.
-		('#', self currentSlide id) asJQuery show.
-          	'title' asJQuery text: self title, ' - ', self currentSlide id.
-        ]
+id
+	^ self class name
 !
 
-previousSlide
-	| next |
-	self currentSlide ifNotNil: [
-		next := self slides 
-			at: (self currentSlideIndex) - 1
-			ifAbsent: [nil].
-		next ifNotNil: [currentSlide := next. next show]]
+cssClass
+	^'slide'
 !
 
-moveAt: anInteger
-	| next |
-	next := self slides 
-			at: anInteger
-			ifAbsent: [nil].
-	next ifNotNil: [currentSlide := next. next show]
+backgroundColor
+	^'#555'
 !
 
-currentSlideIndex
-	^ self slides indexOf: self currentSlide ifAbsent: [1]
-! !
-
-!Presentation methodsFor: 'enumerating'!
-
-slidesDo: aBlockWithArg
-	self slides do: [:aSlide| aBlockWithArg value: aSlide].
+title
+	^ self id
 ! !
 
-!Presentation methodsFor: 'initialization'!
+!Slide methodsFor: 'actions'!
 
-initSlides
-	slides := self slideClasses collect: [:each | each on: self]
+show
+	self backgroundColor ifNotNil: [
+		(window jQuery: '#slides') css: 'background' color: self backgroundColor].
+	(window jQuery: '.slide') hide: self presentation slideTransition options: #() duration: 300.
+	(window jQuery: '#', self id) show: self presentation slideTransition options: #() duration: 300.
 ! !
 
-!Presentation methodsFor: 'rendering'!
+!Slide methodsFor: 'rendering'!
 
 renderOn: html
-	html style
-		type: 'text/css';
-		with: self style.
-	html div 
-		id: 'slides';
-		with: [self renderSlidesOn: html]
+	html div class: self cssClass; id: self id; with: [
+		self renderSlideOn: html.
+		self renderMetaOn: html]
 !
 
-renderSlidesOn: html
-	self slides do: [:each | 
-		each renderOn: html].
-	currentSlide ifNil: [currentSlide := self slides first].
-	self showCurrentSlide
-! !
-
-Presentation class instanceVariableNames: 'current'!
-
-!Presentation class methodsFor: 'accessing'!
-
-concretePresentations
-	^ self allSubclasses select: [:aPresentationClass| aPresentationClass isConcrete]
+renderSlideOn: html
 !
 
-title
-	^ 'Slides'
-! !
-
-!Presentation class methodsFor: 'enumerating'!
-
-concretePresentationsDo: aBlockWithArg
-	self concretePresentations do: aBlockWithArg.
+renderMetaOn: html
+	html div 
+		id: 'meta';
+		with: [
+			html p class: 'title'; with: self presentation title.
+			html p class: 'description'; with: self presentation description.
+			html a class: 'author'; with: self presentation author; href: 'mailto:', self presentation email.
+			html a class: 'url'; with: self presentation url; href: self presentation url]
 ! !
 
-!Presentation class methodsFor: 'testing'!
+!Slide class methodsFor: 'instance creation'!
 
-isConcrete
-	^false
+on: aPresentation
+	^self new
+		presentation: aPresentation;
+		yourself
 ! !
 
 Slide subclass: #FOSDEMSlide
@@ -1824,6 +1824,19 @@ body {
 	-webkit-animation: rotate-horizontal 2s infinite alternate ease-in-out;
 }
 
+.slide#FOSDEMContributionsSlide {
+    background: white url("esug2011/images/asterix.png") 30px 130px no-repeat;
+}
+
+.slide#FOSDEMContributionsSlide .section {
+    margin-left: 250px;
+    margin-top: 200px;
+    font-family: "Droid Sans";
+    font-size: 26px;
+    font-weight: bold;
+}
+
+
 .slide#ide {
     background: black url("esug2011/images/ide_star_wars.png") center center no-repeat;
 }
@@ -1861,7 +1874,9 @@ slideClasses
 	FOSDEMTwitter.
 	FOSDEMCanvasSlide.
 	FOSDEMAmberBackend.
-	FOSDEMREPLSlide
+	FOSDEMREPLSlide.
+	FOSDEMCLISlide.
+	FOSDEMContributionsSlide
 }
 ! !
 
@@ -1924,3 +1939,40 @@ renderTweet: tweet on: html
 		]
 ! !
 
+FOSDEMSlide subclass: #FOSDEMCLISlide
+	instanceVariableNames: ''
+	category: 'Presentation'!
+
+!FOSDEMCLISlide methodsFor: 'rendering'!
+
+renderSlideOn: html
+	html h1: 'CLI'.
+	html with:  'amberc compiles .st files into node programs !!'.
+	self renderCodeSnippetOn: html.
+!
+
+codeSnippet
+	^ 
+'cd examples/nodejs/hello
+../../../bin/amberc -m Hello Hello.st Program
+node Program.js
+
+Hello world from Amber in Node.js'
+! !
+
+FOSDEMSlide subclass: #FOSDEMContributionsSlide
+	instanceVariableNames: ''
+	category: 'Presentation'!
+
+!FOSDEMContributionsSlide methodsFor: 'rendering'!
+
+renderSlideOn: html
+	html div class: 'section'; with: [
+		html p with: [
+			html a href: 'http://amber-lang.net'; with: 'amber-lang.net'].
+		html p with: [
+			html a href: 'https://github.com/NicolasPetton/amber'; with: 'github.com/NicolasPetton/amber'].
+		html p with: [
+			html a href: 'http://groups.google.com/group/amber-lang'; with: 'groups.google.com/group/amber-lang']]
+! !
+

Some files were not shown because too many files changed in this diff