Skip to content

Commit

Permalink
Merge pull request #143 from hpi-swa-teaching/SoSe19
Browse files Browse the repository at this point in the history
SoSe19
  • Loading branch information
LeonMatthes committed Jul 26, 2019
2 parents 314cec9 + daa7a57 commit b8c853b
Show file tree
Hide file tree
Showing 767 changed files with 4,018 additions and 1,189 deletions.
3 changes: 2 additions & 1 deletion .squot
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
OrderedDictionary {
'packages\/BaselineOfPresenter.package' : #SquotCypressCodeSerializer,
'packages\/Presenter-Core.package' : #SquotCypressCodeSerializer,
'packages\/Presenter-Tests.package' : #SquotCypressCodeSerializer
'packages\/Presenter-Tests.package' : #SquotCypressCodeSerializer,
'packages\/Presenter-Compatibility-Tests.package' : #SquotCypressCodeSerializer
}
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ os:
smalltalk:
- Squeak-5.0
- Squeak-5.1
- Squeak-5.2
- Squeak-trunk

matrix:
Expand Down
71 changes: 41 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,28 @@
# **PowerSqueak** [![Build Status](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09.svg?branch=release)](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09)[![Coverage Status](https://coveralls.io/repos/github/hpi-swa-teaching/SWT18-Project-09/badge.svg?branch=release)](https://coveralls.io/github/hpi-swa-teaching/SWT18-Project-09?branch=release)
# **PowerSqueak** [![Build Status](https://travis-ci.org/hpi-swa-teaching/PowerSqueak.svg?branch=release)](https://travis-ci.org/hpi-swa-teaching/PowerSqueak)[![Coverage Status](https://coveralls.io/repos/github/hpi-swa-teaching/SWT18-Project-09/badge.svg?branch=release)](https://coveralls.io/github/hpi-swa-teaching/SWT18-Project-09?branch=release)

A presentation tool for the Squeak development platform

Supported platforms:
* Squeak 5.1
* Squeak 5.2

Squeak 6.0/Trunk is also a target plattform, but due to the fast changing nature of Trunk, certain versions of Squeak Trunk may not work.
Please check [Travis-ci](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09) for the current build status.
Please check [Travis-ci](https://travis-ci.org/hpi-swa-teaching/PowerSqueak) for the current build status.

Squeak 5.0 is officially unsupported (see [Travis-ci](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09)).
Squeak 5.0 is officially unsupported (see [Travis-ci](https://travis-ci.org/hpi-swa-teaching/PowerSqueak)).

## **Overview**
* [Overview](https://github.com/hpi-swa-teaching/SWT18-Project-09#overview)
* [Installation Instructions](https://github.com/hpi-swa-teaching/SWT18-Project-09#installation-instructions)
* [Build status](https://github.com/hpi-swa-teaching/SWT18-Project-09#build-status)
* [Using PowerSqueak](https://github.com/hpi-swa-teaching/SWT18-Project-09#using-powersqueak)
* [Edit mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#edit-mode)
* [Magnetic Raster](https://github.com/hpi-swa-teaching/SWT18-Project-09#magnetic-raster)
* [Presentation mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#presentation-mode)
* [Interactive/Non-Interactive mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#interactivenon-interactive-mode)
* [saving and loading](https://github.com/hpi-swa-teaching/SWT18-Project-09#saving-and-loading)
* [list of shortcuts](https://github.com/hpi-swa-teaching/SWT18-Project-09#list-of-shortcuts)
* [Overview](https://github.com/hpi-swa-teaching/PowerSqueak#overview)
* [Installation Instructions](https://github.com/hpi-swa-teaching/PowerSqueak#installation-instructions)
* [Build status](https://github.com/hpi-swa-teaching/PowerSqueak#build-status)
* [Using PowerSqueak](https://github.com/hpi-swa-teaching/PowerSqueak#using-powersqueak)
* [Edit mode](https://github.com/hpi-swa-teaching/PowerSqueak#edit-mode)
* [Snapping Raster](https://github.com/hpi-swa-teaching/PowerSqueak#snapping-raster)
* [Drag & Drop](https://github.com/hpi-swa-teaching/PowerSqueak#drag-&-drop)
* [Presentation mode](https://github.com/hpi-swa-teaching/PowerSqueak#presentation-mode)
* [Interactive/Non-Interactive mode](https://github.com/hpi-swa-teaching/PowerSqueak#interactivenon-interactive-mode)
* [saving and loading](https://github.com/hpi-swa-teaching/PowerSqueak#saving-and-loading)
* [list of shortcuts](https://github.com/hpi-swa-teaching/PowerSqueak#list-of-shortcuts)

## **Installation Instructions**
For easy installation, please first install [Metacello](https://github.com/Metacello/metacello).
Expand All @@ -29,16 +31,16 @@ Then run the following code in your Squeak 5.1/6.0(trunk) image:
``` smalltalk
Metacello new
baseline: 'Presenter';
repository: 'github://hpi-swa-teaching/SWT18-Project-09:release/packages';
repository: 'github://hpi-swa-teaching/PowerSqueak:release/packages';
load.
```

Alternatively, download the .sar file from the [latest release](https://github.com/hpi-swa-teaching/SWT18-Project-09/releases/latest) and install it into your Squeak image via drag and drop.
Alternatively, download the .sar file from the [latest release](https://github.com/hpi-swa-teaching/PowerSqueak/releases/latest) and install it into your Squeak image via drag and drop.

## **Build status**
| [Release](https://github.com/hpi-swa-teaching/SWT18-Project-09/releases/latest) | master
| [Release](https://github.com/hpi-swa-teaching/PowerSqueak/releases/latest) | master
| ------------------------- | ------------------- |
| [![Build Status](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09.svg?branch=release)](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09) | [![Build Status](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09.svg?branch=master)](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09) |
| [![Build Status](https://travis-ci.org/hpi-swa-teaching/PowerSqueak.svg?branch=release)](https://travis-ci.org/hpi-swa-teaching/PowerSqueak) | [![Build Status](https://travis-ci.org/hpi-swa-teaching/PowerSqueak.svg?branch=master)](https://travis-ci.org/hpi-swa-teaching/PowerSqueak) |
| [![Coverage Status](https://coveralls.io/repos/github/hpi-swa-teaching/SWT18-Project-09/badge.svg?branch=release)](https://coveralls.io/github/hpi-swa-teaching/SWT18-Project-09?branch=release) | [![Coverage Status](https://coveralls.io/repos/github/hpi-swa-teaching/SWT18-Project-09/badge.svg?branch=master)](https://coveralls.io/github/hpi-swa-teaching/SWT18-Project-09?branch=master) |

## **Using PowerSqueak**
Expand All @@ -48,21 +50,24 @@ To open PowerSqueak either
<img src="pictures/apps-drawer.png" alt="Open PowerSqueak in the Apps menu" width="250">

### **Edit mode**
During edit mode, you can use the buttons at the top to create and navigate slides.
To create slides from templates or delete slides, use the "Slide" menu in the menu bar.
To add slide elements like text or images, use the "Insert" menu to create a textfield/image in hand.
During edit mode, you can use the menu to save, load or export a presentation. You can insert a text field, an image, a shape or slide numbers with the "insert" button. You can hide, delete, duplicate, move or save a slide as a layout with the "slide" button in the menu bar (see shortcuts).
You may also drop other Morphs onto slides, but be aware, that some features of those Morphs might not work as expected (scaling most of the time does not work correctly).

For advanced features like deleting morphs or resizing text, right-click the Morph.\
<img src="pictures/right-click.png" alt="Right-click example" width="400">
<img src="pictures/right_click.PNG" alt="Right-click example" width="400">

#### **Magnetic Raster**
PowerSqueak supports a magnetic raster for easy layouting.
If the magnetic raster is active, resizing a Morph will automatically smap the corners of the Morph to an imaginary raster.\
To enable the magnetic raster click:\
<img src="pictures/magnetic-raster.png" alt="How to enable magnetic raster" width=250>\
The button will change color, to indicate, that the raster is active\
<img src="pictures/magnetic-raster-active.png" alt="Magnetic raster is enabled" width=250>
You can now use the features in the Menu bar to edit your text. \
<img src="pictures/menu-bar.png" alt="Advanced Menu Bar" width = 400>

#### **Snapping Raster**
PowerSqueak supports a snapping raster for easy layouting.
If the snapping raster is active, resizing a Morph will automatically snap the corners of the Morph to an imaginary raster.\
To enable the snapping raster click the button. It will change its color to show that it's activated.
You can select your snap size by clicking on the small arrow right next to the snap button.\
<img src="pictures/snap.png" alt="How to enable raster" width=250>

#### **Drag & Drop**
You can drag a miniature slide with the left mouseclick and drop it anywhere. If you want to change the position of a miniature, drag the miniature and drop it on the lower half of the above slide.

### **Presentation mode**
To enter presentation mode, click the "Present" button.
Expand Down Expand Up @@ -100,14 +105,16 @@ In the other image you can then load the presentation as usual in PowerSqueak.

You may also export your presentation to a list of .png files, which will get exported into the ```PSPresentationsExports``` folder in your Squeak VMS directory

### **List of shortcuts**
#### **Global schortcuts**
#### **List of shortcuts**
### **Global schortcuts**
| Key | Action|
| ---- | ---- |
| right arrow/arrow down/page down | next slide |
| left arrow/arrow up/page up | previous slide |
| Number keys | Jump to a slide number (0 = last slide) |
| Cmd + t | Create a text field in hand |
| delete | Delete slide (miniature needs to be selected) |
| delete | Delete morph (morph needs to be selected and for deleting a text field, mouse needs to be outside of morph)

### **Edit mode shortcuts**
| Key | Action |
Expand All @@ -119,3 +126,7 @@ You may also export your presentation to a list of .png files, which will get ex
| --- | --- |
| i | (de-)activate interactivity and (un-)hide cursor |
| Esc | Leave presentation mode |

Credits:
* Team 2018: Leon Bein, Tom Braun, Maximilian König, Jonas Zimmermann, Leon Matthes
* Team 2019: Mark Bader, Vincent Opitz, Julian Berger, Katharina Wille, Mona Sobhani
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,17 @@ baseline: spec
do: [
spec
package: 'Presenter-Core';
package: 'Presenter-Tests' with: [spec requires: #('Presenter-Core')];
yourself.
package: 'Presenter-Tests' with: [spec requires: #('Presenter-Core')].
spec
group: 'default' with: #('Presenter-Core');
group: 'tests' with: #('Presenter-Tests')];
yourself.
group: 'tests' with: #('Presenter-Tests').
spec
preLoadDoIt: #preLoad;
postLoadDoIt: #postLoad.
postLoadDoIt: #postLoad].
spec
for: #(#'squeak5.1.x' #'squeak5.2.x')
do: [
spec
package: 'Presenter-Compatibility-Tests';
package: 'Presenter-Tests' with: [spec requires: #('Presenter-Compatibility-Tests')]]

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@
"class" : {
},
"instance" : {
"baseline:" : "LM 6/13/2018 13:41",
"baseline:" : "VO 6/4/2019 17:07",
"postLoad" : "LM 6/13/2018 13:51",
"preLoad" : "LM 6/20/2018 18:45" } }
4 changes: 4 additions & 0 deletions packages/Presenter-Compatibility-Tests.package/.filetree
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"noMethodMetaData" : true,
"separateMethodMetaAndSource" : false,
"useCypressPropertiesFile" : true }
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
SquotTrackedObjectMetadata {
#objectClassName : #PackageInfo,
#objectsReplacedByNames : true,
#serializer : #SquotCypressCodeSerializer
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
*Presenter-Compatibility-Tests
deny: unexpected equals: actual

^self
deny: unexpected = actual
description: 'Actual equals unexpected'
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"class" : {
},
"instance" : {
"deny:equals:" : "eem 11/19/2018 09:45" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
"name" : "TestCase" }
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
SystemOrganization addCategory: #'Presenter-Compatibility-Tests'!
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*Presenter-Core
isPSMiniature

^ false
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*Presenter-Core
isPSSlide

^ false
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"class" : {
},
"instance" : {
"isPSMiniature" : "VO 6/13/2019 18:21",
"isPSSlide" : "mb 6/5/2019 19:40" } }
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
{
"name" : "Morph" }
Original file line number Diff line number Diff line change
@@ -1,17 +1,13 @@
A PSContentContainer is a container for a single morph put on a slide.
It manages resizing and the context menu for its morph.
It manages resizing and the context menu for its morph aswell as executing the morph's scripts.
Resizing is done with "handles", small rectangles, which can be dragged to resize the child morph.

Instance Variables
content: <Morph>
hasHandles: <Boolean>
resizeHandles: <Dictionary>

content
- The morph the container contains

hasHandles
- Shows whether the container's handles exist

resizeHandles
- Dictionary containing the resizeHandles at the container's corners
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
constants
borderColor

^ (TranslucentColor r: 0.64 g: 0.64 b: 0.64 alpha: 0.5)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
constants
borderWidth

^ 5
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
constants
minimumExtent

^ (self borderWidth @ self borderWidth) * 2 + self minimumMorphExtent
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
constants
minimumMorphExtent

^ 1 @ 1
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
submorphs-add/remove
abandon

self slideContainer ifNotNil: [self slideContainer removeSelection].
super abandon

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,4 @@ addResizeHandles
addHandleAt: #topRight;
addHandleAt: #bottomRight;
addHandleAt: #bottomLeft;
placeHandles;
hasHandles: true]
placeHandles]
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
buttons
bringToFrontData

^ Dictionary withAll: {
#label -> 'To Front'.
#contextMenuLabel -> 'Bring to front'.
#action -> #comeToFront.
#size -> #bigButtonSize.
#name -> #bringToFrontButton.
#model -> self}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ createHandleOnMove: aSymbol
| handle |
handle := RectangleMorph new
extent: self resizeHandleSize;
color: self handleColor.
color: self handleColor;
yourself.
handle on: #mouseMove send: aSymbol to: self.
^ handle
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
context menu
defaultActions

^ {self grabChildData.
self deleteData.
self recolorData.
self bringToFrontData.
self sendToBackData.
self duplicateData.
self openScriptingToolData} asOrderedCollection

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
submorphs-add/remove
deleteContent

self slideContainer ifNotNil: [self slideContainer removeSelection].
self abandon.
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
buttons
deleteData

^ Dictionary withAll: {
#label -> 'Delete'.
#contextMenuLabel -> 'Delete'.
#action -> #deleteContent.
#size -> #bigButtonSize.
#name -> #DeleteButton.
#model -> self}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
buttons
duplicateData

^ Dictionary withAll: {
#label -> 'Duplicate'.
#contextMenuLabel -> 'Duplicate morph'.
#action -> #copyChildToHand.
#size -> #bigButtonSize.
#name -> #duplicateButton.
#model -> self}

This file was deleted.

Loading

0 comments on commit b8c853b

Please sign in to comment.