Commit Graph

1406 Commits

Author SHA1 Message Date
Léa Saviot
95327d0afc [poincare] Remove empty row/column in MatrixLayout.
Change-Id: I58f7b7f5e1256afd769f773bef8caea43a40c7a1
2018-01-15 11:58:06 +01:00
Léa Saviot
1717b470c8 [poincare] When replacing a layout, ask the parent to move the cursor.
Change-Id: I0ddb0e791d328c2f141aefc604569ef4fcc6c0c5
2018-01-15 11:58:06 +01:00
Léa Saviot
2c562fdf7a [expression_editor] Insert an empty matrix when adding a bracket.
Change-Id: I5bf6ab9e097637e0e49f0941fe02e4f5a8e373a2
2018-01-15 11:58:06 +01:00
Léa Saviot
663c90f764 [poincare] MatrixLayout.
Change-Id: I57c67a95fadcfd7ea320d4fef49e45b4e166a40d
2018-01-15 11:58:06 +01:00
Léa Saviot
dc9ab66f49 [poincare] Remove ParenthesisLayout.
Change-Id: I570e85eca45fb89fe0363a000dd7c12835996c15
2018-01-15 11:58:06 +01:00
Léa Saviot
cd9c0472c8 [poincare] BinomialCoefficientLayout.
Change-Id: I3ea9d9d7d9dbf2884c458eb17340700e14648044
2018-01-15 11:58:06 +01:00
Léa Saviot
5d39f177ba [poincare] Decide to delete EmptyLayouts when merging HorizontalLay.
A bool in HorizontalLayout::addOrMergeChildAtIndex decides whether to
delete the Emtpy new HorizontalLayout children.

Change-Id: Ie7acd7f5052891a929c2ae22cb74de389649cba2
2018-01-15 11:58:06 +01:00
Léa Saviot
5ec88dff8e [poincare] EmptyExpression now exist and can be parsed.
Change-Id: I226026fc866c556d9bf4f57c3622f71136dc841c
2018-01-15 11:58:06 +01:00
Léa Saviot
5f8bda5075 [poincare] Clean LayoutEngine's writeInfixExpressionLayoutTextInBuffer.
Change-Id: Ic8e958ef6d3ff965f76c2426d45323ac0d651d76
2018-01-15 11:58:06 +01:00
Léa Saviot
aaca93e914 [poincare] Helper function to create log layouts.
Change-Id: I4f43d11a48e1b8bdddb6660da11e3127778a0bae
2018-01-15 11:58:06 +01:00
Léa Saviot
29e877ec92 [poincare] NthRootLayout is now a BoundedStaticLayoutHierarchy.
It can now handle having an index or not (simple square root layout).

Change-Id: I7a3795c62873fa0a356719b8d572dd5a5be53c94
2018-01-15 11:58:05 +01:00
Léa Saviot
8d188279eb [poincare] BoundedStaticLayoutHierarchy.
Change-Id: I33a1f41458401be5aebbc183e692681b4418c861
2018-01-15 11:58:05 +01:00
Léa Saviot
6526a82c17 [poincare] No "Inside" position for ExpressionLayoutCursor.
Change-Id: Id979c372bb2c4acf8f8708380c7d1f2aeeb5ff06
2018-01-15 11:58:05 +01:00
Léa Saviot
dadcd83924 [poincare] Remove uses of outdated layouts, such as StringLayout.
Change-Id: I55bb846371c224f8f2e739b759725b0e02759ebd
2018-01-15 11:58:05 +01:00
Léa Saviot
55044d8e0b [poincare] Update Expression's privateCreateLayout().
We use the new layouts and no longer the old ones such as StringLayout
or BaselineRelativeLayout.

Change-Id: Ic15167b694c3adab46f348c8f823ce19b3e5ef33
2018-01-15 11:58:05 +01:00
Léa Saviot
23eccd2c75 [poincare] Cleaned the dynamic methods for layouts.
Change-Id: I17db05b01c75a638a56fe2c197a175fd1b04840d
2018-01-15 11:58:05 +01:00
Léa Saviot
65d7fd7a01 [poincare] Added comment to explain baselines.
Change-Id: I769c55c48c80bdce6deb8a7fc23ccc36bdc398a9
2018-01-15 11:58:05 +01:00
Léa Saviot
98faf01b53 [poincare] Better Fraction collapsing.
Change-Id: Ic898f522ae26cfcd5917f4da85715f85a5861b9f
2018-01-15 11:58:05 +01:00
Léa Saviot
9753228a3d [poincare] Use the VerticalOffsetLayouts.
Change-Id: I6dfc61f95016fd9863b7a4b1f41dc1784560807b
2018-01-15 11:58:04 +01:00
Léa Saviot
4009a0d879 [poincare] VerticalOffsetLayout and mustHaveLeftBrother() for Layouts.
Change-Id: Ibd4666806bb0af2a2babe892c8a9906747c18e9a
2018-01-15 11:58:04 +01:00
Léa Saviot
8a7e4e598c [expression_editor] Collapse brothers when adding a fraction.
Change-Id: I4d75fae152fca4a6671abd1e444f6aaa27c168b5
2018-01-15 11:58:04 +01:00
Léa Saviot
89760c0f42 [poincare] isCollapsable() for ExpressionLayouts.
Tells whether the layout should be collapsed into the numerator (or
denominator) of a new FractionLayout brother.

Change-Id: Id5c2a55667bec56340d73c2a63dc704fa56c9815
2018-01-15 11:58:04 +01:00
Léa Saviot
62ffb42472 [poincare] Fixed invalidation of layout baseline and position.
When adding, replacing or detaching a child.

Change-Id: I3ef212fbe270cee8d0e3a11402cc6df1228ee8d5
2018-01-15 11:58:04 +01:00
Léa Saviot
1ced6e2360 [poincare] Empty ListData constructor.
Change-Id: I882eb664d74399ab87ef9bd95bc1b255f5a5f87c
2018-01-15 11:58:04 +01:00
Léa Saviot
3fe7295f6c [poincare] ExpressionLayoutArray was a method, it is now a class.
Change-Id: Iddde7ed9d8a8539193c6547a9e718865ff8e8cc7
2018-01-15 11:58:04 +01:00
Léa Saviot
ccd25a360d [poincare] Serialize expression layout.
We can now convert layouts into text: we will be able to parse them
into an Expression.

Change-Id: I82f4834c08f5b2c5fb294bdcb9a49257b574e20b
2018-01-15 11:58:04 +01:00
Léa Saviot
fccd9b484b [poincare] Added UneditableHorizontalTrioLayout.
Change-Id: Ifd9fd6a0a0714853c1a8cd428b65076b704a8211
2018-01-15 11:58:03 +01:00
Léa Saviot
f39b365902 [poincare] Delete for BaselineRelativeLayout.
Change-Id: I7b16c52d7eaa0c5a6398aca9a34a017447593737
2018-01-15 11:58:03 +01:00
Léa Saviot
f307e15bac [poincare] Delete for HorizontalLayout.
Change-Id: Iff983beccc14195b09d54b5b5db668b8f7d4eca7
2018-01-15 11:58:03 +01:00
Léa Saviot
1a3c391237 [expression_editor/poincare] General "delete" rule.
Change-Id: I5c16f19aacdac312156f45c88c189adfb72f03e8
2018-01-15 11:58:03 +01:00
Léa Saviot
b0fd089d87 [poincare] Dynamic size of Bracket Left and Right layouts.
Change-Id: Icd0654dc7b63639d4513946b24c0855ffcb38c87
2018-01-15 11:58:03 +01:00
Léa Saviot
b47a5fa939 [poincare] Handle parentheses sizing.
Change-Id: I3f790c0eb73b566dd7de7089957ea0d4306821c2
2018-01-15 11:58:02 +01:00
Léa Saviot
0d8b6d5ace [escher/poincare] Handle toolbox input (VERY DIRTY).
Change-Id: I01de0ddd6f6500df278e3b4104110f6335289be1
2018-01-15 11:58:02 +01:00
Léa Saviot
8289e24cfe [expression_editor] Handle XNT event.
Change-Id: I0af832ec0f693c445e424d21795b14cfb4e54622
2018-01-15 11:58:02 +01:00
Léa Saviot
7b2c48465e [expression_editor] Handle Exp, Log, Power, Sqrt and Square events.
Change-Id: I96ab58d6f66fcb6aa95ba849d927236cfb5fcc28
2018-01-15 11:58:02 +01:00
Léa Saviot
940f2cf387 [poincare] Delete empty layouts when adding something next to them.
Change-Id: Ie89fa84edb0bdd57ead42fac68cbb564c5327556
2018-01-15 11:58:02 +01:00
Léa Saviot
4d94764c36 [expression_editor] Controller code cleaning.
Change-Id: Ifb31ad712ce9c59e21fc3d670d05f60a15669d60
2018-01-15 11:58:02 +01:00
Léa Saviot
241d37afa5 [poincare] Recompute baselines when needed.
Change-Id: I4ec717402a4dfd287aa95f45189e1734e4f5e3ed
2018-01-15 11:58:02 +01:00
Léa Saviot
b3598e1713 [expression_editor] Insert text char by char, using CharLayout.
Change-Id: Id5b146bf875c1cf1d9ac949258d43a5ed415a334
2018-01-15 11:58:02 +01:00
Léa Saviot
d72de7c484 [poincare] ExpressionLayout edition.
Change-Id: I505320c32fcc3ffb516f345091a89afad90ebf56
2018-01-15 11:58:02 +01:00
Léa Saviot
0cc1d99a54 [poincare] Static and Dynamic Layout hierarchies.
Change-Id: I3b47dbd76552b77db762482932518a74c1996cc0
2018-01-15 11:58:01 +01:00
Léa Saviot
a4c014c75e [expression_editor/poincare] Move Down in an ExpressionLayout.
Change-Id: I87f3394cce5eb4936ab926d5e92fdf44d4473cf7
2018-01-15 11:58:01 +01:00
Léa Saviot
fc8cd6c06e [expression_editor/poincare] Move Up in an ExpressionLayout.
Change-Id: I75fd91233729afd4eb77d8e9d53c102a632643ea
2018-01-15 11:58:01 +01:00
Léa Saviot
29e549d475 [expression_editor/poincare] Move Right in an ExpressionLayout.
Change-Id: Ib5f018666350d6bb061272ae7b04b6f721d50e84
2018-01-15 11:58:01 +01:00
Léa Saviot
f49168d779 [poincare] Use editable String and BaselineRelative layouts.
Change-Id: I978c4aa43772b294251b948fc20bb0d8b8b05a08
2018-01-15 11:58:01 +01:00
Léa Saviot
78c02e6871 [expression_editor/poincare] Move Left in an ExpressionLayout.
Change-Id: Id69def65e0976bfb045c1da6e8786a2f5797120c
2018-01-15 11:58:01 +01:00
Léa Saviot
8f6a27bee8 [TO REMOVE] Bigger test case.
Change-Id: I72c0474000aab5eec5ebada2e09c0f7f555c8e2b
2018-01-15 11:58:01 +01:00
Léa Saviot
589926284c [poincare] absoluteOrigin() is public in ExpressionLayout.
Change-Id: I7e381887e3c62c36c72536ed7ef280bcc637ead4
2018-01-15 11:58:01 +01:00
Léa Saviot
73810bbd9a [poincare] ExpressionLayout cursor.
Change-Id: I2367d20754189608a7925f0d8e8dfe361fed0fd0
2018-01-15 11:58:01 +01:00
Émilie Feral
81e0148325 [poincare] Clean symbols w(n) and w(n+1) are unused 2017-12-20 17:41:03 +01:00