Skip to content

Commit a6c74c8

Browse files
committed
Merge branch 'inf3cti0n95-master' into develop
2 parents 667f455 + 385acb0 commit a6c74c8

File tree

2 files changed

+54
-4
lines changed

2 files changed

+54
-4
lines changed

examples/main.jsx

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,7 @@ import 'flexboxgrid';
99
import './main.css';
1010
import AppBar from '@material-ui/core/AppBar';
1111
import Card from '@material-ui/core/Card';
12-
import CardActions from '@material-ui/core/CardActions';
1312
import CardContent from '@material-ui/core/CardContent';
14-
import GridList from '@material-ui/core/GridList';
1513
import ExpandMore from '@material-ui/icons/ExpandMore';
1614
import CardHeader from '@material-ui/core/CardHeader';
1715
import GridListTile from '@material-ui/core/GridListTile';
@@ -23,18 +21,18 @@ import TextField from '@material-ui/core/TextField';
2321
import Switch from '@material-ui/core/Switch';
2422
import FormControlLabel from '@material-ui/core/FormControlLabel';
2523
import Collapse from '@material-ui/core/Collapse';
26-
import {MuiThemeProvider, createMuiTheme} from '@material-ui/core/styles';
24+
import {createMuiTheme, MuiThemeProvider} from '@material-ui/core/styles';
2725
import color from '@material-ui/core/colors/blueGrey';
2826

2927
import UndoIcon from '@material-ui/icons/Undo';
3028
import RedoIcon from '@material-ui/icons/Redo';
3129
import DeleteIcon from '@material-ui/icons/Delete';
3230
import SaveIcon from '@material-ui/icons/Save';
3331
import ClearIcon from '@material-ui/icons/Clear';
32+
import AddIcon from '@material-ui/icons/Add';
3433
import DownloadIcon from '@material-ui/icons/CloudDownload';
3534
import ZoomInIcon from '@material-ui/icons/ZoomIn';
3635
import ZoomOutIcon from '@material-ui/icons/ZoomOut';
37-
import RemoveIcon from '@material-ui/icons/Remove';
3836
import dataJson from './data.json';
3937
import dataJsonControlled from './data.json.controlled';
4038
import {SketchField, Tools} from '../src';
@@ -145,6 +143,7 @@ class SketchFieldDemo extends React.Component {
145143
expandBack: false,
146144
expandImages: false,
147145
expandControlled: false,
146+
text: 'a text, cool!',
148147
};
149148
}
150149

@@ -263,6 +262,8 @@ class SketchFieldDemo extends React.Component {
263262
}
264263
};
265264

265+
_addText = () => this._sketch.addText(this.state.text);
266+
266267
componentDidMount = () => {
267268
(function(console) {
268269
console.save = function(data, filename) {
@@ -427,6 +428,23 @@ class SketchFieldDemo extends React.Component {
427428
<ZoomOutIcon/>
428429
</IconButton>
429430
<br/>
431+
<div className="row">
432+
<div className="col-lg-7">
433+
<TextField
434+
label='Text'
435+
helperText='Add text to Sketch'
436+
onChange={(e) => this.setState({ text: e.target.value })}
437+
value={this.state.text}/>
438+
</div>
439+
<div className="col-lg-3">
440+
<IconButton
441+
color="primary"
442+
onClick={this._addText}>
443+
<AddIcon/>
444+
</IconButton>
445+
</div>
446+
</div>
447+
430448
<br/>
431449
<FormControlLabel
432450
control={

src/SketchField.jsx

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -516,6 +516,22 @@ class SketchField extends PureComponent {
516516
img.src = dataUrl
517517
};
518518

519+
addText = (text, options = {}) => {
520+
let canvas = this._fc;
521+
let iText = new fabric.IText(text, options);
522+
let opts = {
523+
left: (canvas.getWidth() - iText.width) * 0.5,
524+
top: (canvas.getHeight() - iText.height) * 0.5,
525+
};
526+
Object.assign(options, opts);
527+
iText.set({
528+
'left': options.left,
529+
'top': options.top
530+
});
531+
532+
canvas.add(iText);
533+
};
534+
519535
componentDidMount = () => {
520536
let {
521537
tool,
@@ -557,6 +573,22 @@ class SketchField extends PureComponent {
557573
canvas.on('object:moving', this._onObjectMoving);
558574
canvas.on('object:scaling', this._onObjectScaling);
559575
canvas.on('object:rotating', this._onObjectRotating);
576+
// Events binding
577+
canvas.on('object:added', this._onObjectAdded);
578+
canvas.on('object:modified', this._onObjectModified);
579+
canvas.on('object:removed', this._onObjectRemoved);
580+
canvas.on('mouse:down', this._onMouseDown);
581+
canvas.on('mouse:move', this._onMouseMove);
582+
canvas.on('mouse:up', this._onMouseUp);
583+
canvas.on('mouse:out', this._onMouseOut);
584+
canvas.on('object:moving', this._onObjectMoving);
585+
canvas.on('object:scaling', this._onObjectScaling);
586+
canvas.on('object:rotating', this._onObjectRotating);
587+
// IText Events fired on Adding Text
588+
// canvas.on("text:event:changed", console.log)
589+
// canvas.on("text:selection:changed", console.log)
590+
// canvas.on("text:editing:entered", console.log)
591+
// canvas.on("text:editing:exited", console.log)
560592

561593
this.disableTouchScroll();
562594

0 commit comments

Comments
 (0)