Skip to content

Commit 314cec9

Browse files
authored
Merge pull request #79 from hpi-swa-teaching/master
PowerSqueak v.1.0
2 parents f57f6f3 + ba24306 commit 314cec9

547 files changed

Lines changed: 2314 additions & 1371 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 65 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# 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)
1+
# **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)
22

33
A presentation tool for the Squeak development platform
44

@@ -10,17 +10,19 @@ Please check [Travis-ci](https://travis-ci.org/hpi-swa-teaching/SWT18-Project-09
1010

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

13-
## Overview
13+
## **Overview**
1414
* [Overview](https://github.com/hpi-swa-teaching/SWT18-Project-09#overview)
1515
* [Installation Instructions](https://github.com/hpi-swa-teaching/SWT18-Project-09#installation-instructions)
1616
* [Build status](https://github.com/hpi-swa-teaching/SWT18-Project-09#build-status)
1717
* [Using PowerSqueak](https://github.com/hpi-swa-teaching/SWT18-Project-09#using-powersqueak)
1818
* [Edit mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#edit-mode)
19+
* [Magnetic Raster](https://github.com/hpi-swa-teaching/SWT18-Project-09#magnetic-raster)
1920
* [Presentation mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#presentation-mode)
2021
* [Interactive/Non-Interactive mode](https://github.com/hpi-swa-teaching/SWT18-Project-09#interactivenon-interactive-mode)
2122
* [saving and loading](https://github.com/hpi-swa-teaching/SWT18-Project-09#saving-and-loading)
23+
* [list of shortcuts](https://github.com/hpi-swa-teaching/SWT18-Project-09#list-of-shortcuts)
2224

23-
## Installation Instructions
25+
## **Installation Instructions**
2426
For easy installation, please first install [Metacello](https://github.com/Metacello/metacello).
2527

2628
Then run the following code in your Squeak 5.1/6.0(trunk) image:
@@ -31,51 +33,89 @@ Metacello new
3133
load.
3234
```
3335

34-
## Build status
36+
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.
37+
38+
## **Build status**
3539
| [Release](https://github.com/hpi-swa-teaching/SWT18-Project-09/releases/latest) | master
3640
| ------------------------- | ------------------- |
3741
| [![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) |
3842
| [![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) |
3943

40-
## Using PowerSqueak
44+
## **Using PowerSqueak**
4145
To open PowerSqueak either
42-
* run: ``` PSPresentationTool open. ```
43-
* click PowerSqueak in the "Apps" drop-down-menu<br><img src="/pictures/apps-drawer.png" alt="Open PowerSqueak in the Apps menu" width="250">
44-
45-
### Edit mode
46-
During edit mode, you can use the buttons at the top to create, delete and navigate slides and to create different slide elements (like text boxes, and images) and drop them onto the slide.
47-
You may also drop in other Morphs, but be aware, that some features of those Morphs might not work as expected.
48-
49-
For advanced features like deleting morphs or resizing text, right-click the morph.
50-
<br><img src="/pictures/right-click.png" alt="Right-click example" width="400">
51-
52-
### Presentation mode
46+
* run: ``` PSPresentationTool open. ```
47+
* click PowerSqueak in the "Apps" drop-down-menu\
48+
<img src="pictures/apps-drawer.png" alt="Open PowerSqueak in the Apps menu" width="250">
49+
50+
### **Edit mode**
51+
During edit mode, you can use the buttons at the top to create and navigate slides.
52+
To create slides from templates or delete slides, use the "Slide" menu in the menu bar.
53+
To add slide elements like text or images, use the "Insert" menu to create a textfield/image in hand.
54+
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).
55+
56+
For advanced features like deleting morphs or resizing text, right-click the Morph.\
57+
<img src="pictures/right-click.png" alt="Right-click example" width="400">
58+
59+
#### **Magnetic Raster**
60+
PowerSqueak supports a magnetic raster for easy layouting.
61+
If the magnetic raster is active, resizing a Morph will automatically smap the corners of the Morph to an imaginary raster.\
62+
To enable the magnetic raster click:\
63+
<img src="pictures/magnetic-raster.png" alt="How to enable magnetic raster" width=250>\
64+
The button will change color, to indicate, that the raster is active\
65+
<img src="pictures/magnetic-raster-active.png" alt="Magnetic raster is enabled" width=250>
66+
67+
### **Presentation mode**
5368
To enter presentation mode, click the "Present" button.
5469

5570
To control your presentation during presentation mode, use:
5671

5772
| Key | Action |
5873
| ------- | ------- |
5974
| Esc | Leave presentation mode |
60-
| right arrow/page down | next slide |
61-
| left arrow/page up | previous slide |
62-
| Number keys | Jump to a slide number |
75+
| right arrow/arrow down/page down | next slide |
76+
| left arrow/arrow up/page up | previous slide |
77+
| Number keys | Jump to a slide number (0 = last slide) |
6378
| i | (de-)activate interactivity and (un-)hide cursor |
64-
#### Interactive/Non-Interactive mode
79+
80+
Because PowerSqueak supports slide selection with both arrow and page keys, most wireless presenters will work correctly with PowerSqueak, but pressing the present button on your presenter will not work, as the Squeak VM does not support function keys.
81+
82+
#### **Interactive/Non-Interactive mode**
6583
By pressing "i" during presentation mode, you can disable/enable interactivity and hide/unhide the cursor.
6684
This mode is added to avoid the visual clutter of the cursor and to keep text on slides from grabbing the keyboard input, which prevents you from changing slides.
6785

68-
Leaving presentation mode also enables interactivity and unhides the cursor.
86+
Leaving the presentation mode also enables interactivity and unhides the cursor.
6987

70-
### Saving and loading
88+
### **Saving and loading**
7189
PowerSqueak can save and load presentations to/from the file system.
7290

73-
Use the corresponding save/load buttons to save/load the presentation.
74-
If you want to view the saved files, go to the PSPresentation folder in your Squeak VMs folder.
75-
You can share presentations by copying any presentation in the PSPresentation folder into the PSPresentations folder of another image.
91+
Use the corresponding save/load buttons in the "File" menu to save/load the presentation.
92+
If you want to view the saved files, go to the ```PSPresentation``` directory in your Squeak VMs directory.
93+
You can share presentations by copying any presentation in the ```PSPresentation``` directory into the ```PSPresentation``` directory of another image.
7694
In the other image you can then load the presentation as usual in PowerSqueak.
7795

7896
``` diff
7997
- Warning: some morphs may crash your image if they are saved/loaded!
8098
- It is recommended, that you save your image before every save/load operation in PowerSqueak
8199
```
100+
101+
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
102+
103+
### **List of shortcuts**
104+
#### **Global schortcuts**
105+
| Key | Action|
106+
| ---- | ---- |
107+
| right arrow/arrow down/page down | next slide |
108+
| left arrow/arrow up/page up | previous slide |
109+
| Number keys | Jump to a slide number (0 = last slide) |
110+
| Cmd + t | Create a text field in hand |
111+
112+
### **Edit mode shortcuts**
113+
| Key | Action |
114+
| --- | --- |
115+
| Cmd + i | Create an image |
116+
117+
### **Presentation mode shortcuts**
118+
| Key | Action |
119+
| --- | --- |
120+
| i | (de-)activate interactivity and (un-)hide cursor |
121+
| Esc | Leave presentation mode |
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
A PSContentContainer is a container for a single morph put on a slide.
2+
It manages resizing and the context menu for its morph.
3+
Resizing is done with "handles", small rectangles, which can be dragged to resize the child morph.
4+
5+
Instance Variables
6+
content: <Morph>
7+
hasHandles: <Boolean>
8+
resizeHandles: <Dictionary>
9+
10+
content
11+
- The morph the container contains
12+
13+
hasHandles
14+
- Shows whether the container's handles exist
15+
16+
resizeHandles
17+
- Dictionary containing the resizeHandles at the container's corners
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
resizing
22
actionForCorner: aSymbol
33

4-
^ ('drag', aSymbol capitalized, 'Event:fromHandle:') asSymbol
4+
^ ('drag', aSymbol capitalized, 'Event:') asSymbol
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
context menu
2+
addContentMenuItemsTo: aMenu
3+
4+
aMenu defaultTarget: self content.
5+
(self content hasProperty: #wantsCustomContextMenu)
6+
ifTrue: [aMenu addList: self content customContextMenuContent]

packages/Presenter-Core.package/PSContentContainer.class/instance/addResizeHandles.st

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@ handles
22
addResizeHandles
33

44
self hasHandles ifFalse: [
5-
self addHandleAt: #topLeft.
6-
self addHandleAt: #topRight.
7-
self addHandleAt: #bottomRight.
8-
self addHandleAt: #bottomLeft.
9-
self placeHandles.
10-
self hasHandles: true]
5+
self
6+
addHandleAt: #topLeft;
7+
addHandleAt: #topRight;
8+
addHandleAt: #bottomRight;
9+
addHandleAt: #bottomLeft;
10+
placeHandles;
11+
hasHandles: true]

packages/Presenter-Core.package/PSContentContainer.class/instance/child..st

Lines changed: 0 additions & 4 deletions
This file was deleted.

packages/Presenter-Core.package/PSContentContainer.class/instance/child.st

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
content: aMorph
3+
4+
content := aMorph
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
accessing
2+
content
3+
4+
^ content

packages/Presenter-Core.package/PSContentContainer.class/instance/copyChildToHand.st

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ context menu
22
copyChildToHand
33

44
| copy |
5-
copy := self child copy.
5+
copy := self content copy.
66
copy center: ActiveHand center.
7-
ActiveHand grabMorph: copy.
7+
ActiveHand grabMorph: copy.
8+
^ copy

0 commit comments

Comments
 (0)