Difference between revisions of "Education Project/Effort/Math baseline alignment/Discover starmath"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Notes for starmath - 972)
Line 1: Line 1:
 +
== Page Needs restructuring ==
 +
 +
test_baseline code
 +
<pre>
 +
diff -u -r1.7 rect.hxx
 +
--- inc/rect.hxx 24 Apr 2008 13:57:29 -0000 1.7
 +
+++ inc/rect.hxx 23 Sep 2008 13:00:13 -0000
 +
@@ -62,6 +62,7 @@
 +
// Note: however, italic spaces can be negative!
 +
//
 +
 +
// possible flags for the 'Draw' function below (just for debugging)
 +
#define SM_RECT_CORE 0x0001
 +
#define SM_RECT_ITALIC 0x0002
 +
@@ -112,6 +113,12 @@
 +
bHasAlignInfo;
 +
 +
protected:
 +
+ void test_baseline()
 +
+ {
 +
+   if (!bHasBaseline) {
 +
+     int i = 0;
 +
+   }
 +
+ }
 +
void BuildRect (const OutputDevice &rDev, const SmFormat *pFormat,
 +
                            const XubString &rText, USHORT nBorderWidth);
 +
void Init(const OutputDevice &rDev, const SmFormat *pFormat,
 +
</pre>
 +
 +
While setting break point at every test_baseline and writing an expression 'a over b = c' we can learn the flow of starmath module.
 +
Backtrace:
 +
 +
<pre>
 +
 +
#0  SmBinHorNode::Arrange (this=0xadc1765c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:1036
 +
#1  0x02821df3 in SmLineNode::Arrange (this=0xadc1779c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:806
 +
#2  0x0282208d in SmExpressionNode::Arrange (this=0xadc1779c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:854
 +
#3  0x02821df3 in SmLineNode::Arrange (this=0xadb902b0, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:806
 +
#4  0x0281c0dd in SmTableNode::Arrange (this=0xadb90490, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:750
 +
#5  0x027efca4 in SmDocShell::ArrangeFormula (this=0xb00da1e0) at /home/dev/OOo/starmath/source/document.cxx:307
 +
#6  0x027f19fb in SmDocShell::Draw (this=0xb00da1e0, rDev=@0xad7f104c, rPosition=@0xbfe646e4) at /home/dev/OOo/starmath/source/document.cxx:456
 +
#7  0x02834d38 in SmGraphicWindow::Paint (this=0xad7f104c) at /home/dev/OOo/starmath/source/view.cxx:318
 +
 +
</pre>
 +
 
This page is a draft, and contains a short description of starmath module
 
This page is a draft, and contains a short description of starmath module
  

Revision as of 13:03, 23 September 2008

Page Needs restructuring

test_baseline code

diff -u -r1.7 rect.hxx
--- inc/rect.hxx	24 Apr 2008 13:57:29 -0000	1.7
+++ inc/rect.hxx	23 Sep 2008 13:00:13 -0000
@@ -62,6 +62,7 @@
 // Note: however, italic spaces can be negative!
 //
 
 // possible flags for the 'Draw' function below (just for debugging)
 #define SM_RECT_CORE	0x0001
 #define SM_RECT_ITALIC	0x0002
@@ -112,6 +113,12 @@
 			bHasAlignInfo;
 
 protected:
+			void test_baseline()
+			{
+			  if (!bHasBaseline) {
+			    int i = 0;
+			  }
+			}
 			void BuildRect (const OutputDevice &rDev, const SmFormat *pFormat,
                             const XubString &rText, USHORT nBorderWidth);
 			void Init(const OutputDevice &rDev, const SmFormat *pFormat,

While setting break point at every test_baseline and writing an expression 'a over b = c' we can learn the flow of starmath module. Backtrace:


#0  SmBinHorNode::Arrange (this=0xadc1765c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:1036
#1  0x02821df3 in SmLineNode::Arrange (this=0xadc1779c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:806
#2  0x0282208d in SmExpressionNode::Arrange (this=0xadc1779c, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:854
#3  0x02821df3 in SmLineNode::Arrange (this=0xadb902b0, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:806
#4  0x0281c0dd in SmTableNode::Arrange (this=0xadb90490, rDev=@0xb00da560, rFormat=@0xb00da220) at /home/dev/OOo/starmath/source/node.cxx:750
#5  0x027efca4 in SmDocShell::ArrangeFormula (this=0xb00da1e0) at /home/dev/OOo/starmath/source/document.cxx:307
#6  0x027f19fb in SmDocShell::Draw (this=0xb00da1e0, rDev=@0xad7f104c, rPosition=@0xbfe646e4) at /home/dev/OOo/starmath/source/document.cxx:456
#7  0x02834d38 in SmGraphicWindow::Paint (this=0xad7f104c) at /home/dev/OOo/starmath/source/view.cxx:318

This page is a draft, and contains a short description of starmath module

inc -> contains al includes prj -> build.lst, d.lst qa -> does contain one unoapi directory FIXME : role ?

sdi -> role ? for menus creation ?

source : the main directory, containing .hxx .src and .cxx

Q: what is obsolete ?

in source

action.cxx : undo, redo, repeat / wip

cfgitem.hxx relative to fonts attributes, and sizes / to be verified

commands.src : does contain the menu entries. // reminder : add l/r_bar_arrow

config.cxx : SmConfig class implementation

detreg.cxx role ? // FIXME

dialog.cxx : everything dialogs, link with vcl/sfx2

Classes : SmAlignDialog : exact role ?

document.cxx :

SmDocShell::ArrangeFormula() -> usefull ?

SmDocShell::UpdateText() -> usefull too ?

SmEditWindow::DataChanged -> i.e.


format.cxx : all formating stuff for fonts

mathml .cxx /.hxx : uff ... needs more info  :)

mathtype.cxx:

SM <-> MathType conversion

math glyphs handling ?

arrays: containing unicode correspondance list, aSelectorList, aIntegralOpt ..,

StarMath to Unicode conversion

! strange conditional breaks inside switch()

Personal tools