Initial commit
This commit is contained in:
		
							
								
								
									
										1
									
								
								lib/command/afterpage.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/afterpage.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \afterpage{} | ||||
							
								
								
									
										2
									
								
								lib/command/amsbsy.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/amsbsy.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \boldsymbol | ||||
| \pmb{} | ||||
							
								
								
									
										6
									
								
								lib/command/amscd.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/amscd.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| @((( | ||||
| @))) | ||||
| @<<< | ||||
| @>>> | ||||
| @AAA | ||||
| @VVV | ||||
							
								
								
									
										2
									
								
								lib/command/amsfonts.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/amsfonts.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \mathbb | ||||
| \mathfrac | ||||
							
								
								
									
										59
									
								
								lib/command/amsmath.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								lib/command/amsmath.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| \\*  | ||||
| \\ | ||||
| \Big | ||||
| \big | ||||
| \Bigg | ||||
| \bigg | ||||
| \biggl | ||||
| \Biggr | ||||
| \biggr | ||||
| \bigl | ||||
| \Bigm | ||||
| \binom{}{}{}{}{}{} | ||||
| \cfrac[]{}{} | ||||
| \dbinom{}{}{}{}{}{} | ||||
| \ddddot{} | ||||
| \dddot{} | ||||
| \ddots{} | ||||
| \dfrac{}{} | ||||
| \dots | ||||
| \dotsb | ||||
| \dotsc | ||||
| \dotsi | ||||
| \dotsm | ||||
| \fracwithdelims()[] | ||||
| \genfrac{}{}{}{}{}{} | ||||
| \idotsint | ||||
| \leftroot | ||||
| \measuredangle | ||||
| \mod | ||||
| \nolimits | ||||
| \operatorname{} | ||||
| \overset | ||||
| \pmod | ||||
| \pod | ||||
| \rVert | ||||
| \rvert | ||||
| \xrightarrow | ||||
| \sideset | ||||
| \smash\spbreve | ||||
| \spcheck | ||||
| \spdddot | ||||
| \spddot | ||||
| \spdot | ||||
| \special | ||||
| \sphat | ||||
| \sptilde | ||||
| \stackrel | ||||
| \tag{} | ||||
| \tag*{} | ||||
| \tbinom{}{}{}{}{}{} | ||||
| \tfrac | ||||
| \uproot | ||||
| \varinjlim | ||||
| \varliminf | ||||
| \varlimsup | ||||
| \varprojlim | ||||
| Vmatrix | ||||
| vmatrix | ||||
|  | ||||
							
								
								
									
										486
									
								
								lib/command/amssymb.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										486
									
								
								lib/command/amssymb.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,486 @@ | ||||
| \{ | ||||
| \| | ||||
| \} | ||||
| \aleph | ||||
| \hat | ||||
| \check | ||||
| \acute | ||||
| \grave | ||||
| \bar | ||||
| \vec | ||||
| \dot | ||||
| \ddot | ||||
| \breve | ||||
| \tilde | ||||
| \allowdisplaybreaks | ||||
| \alpha | ||||
| \angle | ||||
| \approx | ||||
| \approxeq	 | ||||
| \arccos | ||||
| \arcsin | ||||
| \arctan | ||||
| \arg | ||||
| \Arrowvert | ||||
| \arrowvert | ||||
| \ast | ||||
| \asymp | ||||
| \backepsilon | ||||
| \backprime | ||||
| \backsim | ||||
| \backsimeq | ||||
| \backslash | ||||
| \barwedge | ||||
| \Bbbk | ||||
| \because  | ||||
| \beta | ||||
| \beth | ||||
| \between | ||||
| \bigcap | ||||
| \bigcirc | ||||
| \bigcup | ||||
| \bigodot | ||||
| \bigoplus | ||||
| \bigotimes | ||||
| \bigsqcup | ||||
| \bigstar | ||||
| \bigstrutjot | ||||
| \bigtriangledown | ||||
| \bigtriangleup | ||||
| \biguplus | ||||
| \bigvee | ||||
| \bigwedge | ||||
| \blacklozenge | ||||
| \blacksquare  | ||||
| \blacktriangle | ||||
| \blacktriangledown | ||||
| \blacktriangleleft | ||||
| \blacktriangleright | ||||
| \bot | ||||
| \bowtie | ||||
| \Box | ||||
| \boxdot | ||||
| \boxminus | ||||
| \boxplus | ||||
| \boxtimes | ||||
| \bracevert | ||||
| \bullet | ||||
| \Bumpeq | ||||
| \bumpeq | ||||
| \Cap | ||||
| \cap | ||||
| \cdot | ||||
| \cdots | ||||
| \centerdot | ||||
| \chi | ||||
| \circ | ||||
| \circeq | ||||
| \circlearrowleft | ||||
| \circlearrowright | ||||
| \circledast | ||||
| \circledcirc | ||||
| \circleddash | ||||
| \circledS | ||||
| \clubsuit | ||||
| \complement | ||||
| \cong | ||||
| \coprod | ||||
| \cos | ||||
| \cosh | ||||
| \cot | ||||
| \coth | ||||
| \csc | ||||
| \Cup | ||||
| \cup | ||||
| \curlyeqprec | ||||
| \curlyeqsucc | ||||
| \curlyvee | ||||
| \curlywedg | ||||
| \curvearrowleft | ||||
| \curvearrowright | ||||
| \dagger | ||||
| \daleth | ||||
| \dashleftarrow | ||||
| \dashrightarrow | ||||
| \dashv | ||||
| \ddagger | ||||
| \deg | ||||
| \Delta | ||||
| \delta | ||||
| \det | ||||
| \diagdown | ||||
| \diagup | ||||
| \Diamond | ||||
| \diamond | ||||
| \diamondsuit | ||||
| \digamma  | ||||
| \dim | ||||
| \div | ||||
| \divideontimes | ||||
| \dot | ||||
| \doteq | ||||
| \doteqdot | ||||
| \dotplus | ||||
| \doublebarwedge | ||||
| \Downarrow | ||||
| \downarrow | ||||
| \downdownarrows | ||||
| \downharpoonleft | ||||
| \downharpoonright | ||||
| \ell | ||||
| \emptyset | ||||
| \epsilon | ||||
| \eqcirc | ||||
| \eqslantgtr | ||||
| \eqslantless | ||||
| \equiv | ||||
| \eta | ||||
| \eth | ||||
| \exists | ||||
| \exp | ||||
| \fallingdotseq | ||||
| \Finv | ||||
| \flat | ||||
| \forall | ||||
| \frac | ||||
| \frown | ||||
| \Game | ||||
| \Gamma | ||||
| \gamma | ||||
| \gcd | ||||
| \geq | ||||
| \geqq | ||||
| \geqslant | ||||
| \gg | ||||
| \ggg | ||||
| \gimel | ||||
| \gnapprox | ||||
| \gneq | ||||
| \gneqq | ||||
| \gnsim | ||||
| \grave | ||||
| \gtrapprox | ||||
| \gtrdot | ||||
| \gtreqless | ||||
| \gtreqqless | ||||
| \gtrless | ||||
| \gtrsim | ||||
| \gvertneqq | ||||
| \hat | ||||
| \hbar | ||||
| \heartsuit | ||||
| \hom | ||||
| \hookleftarrow | ||||
| \hookrightarrow | ||||
| \hslash | ||||
| \iiiint | ||||
| \iiint | ||||
| \iint | ||||
| \Im | ||||
| \imath | ||||
| \in | ||||
| \inf | ||||
| \infty | ||||
| \int | ||||
| \intercal | ||||
| \iota | ||||
| \jmath | ||||
| \Join | ||||
| \kappa | ||||
| \ker | ||||
| \Lambda | ||||
| \lambda | ||||
| \langle | ||||
| \lceil | ||||
| \ldots | ||||
| \le | ||||
| \Leftarrow | ||||
| \leftarrow | ||||
| \leftarrowtail | ||||
| \leftharpoondown | ||||
| \leftharpoonup | ||||
| \leftleftarrows | ||||
| \Leftrightarrow | ||||
| \leftrightarrow | ||||
| \leftrightarrows | ||||
| \leftrightharpoons | ||||
| \leftrightsquigarrow | ||||
| \leftthreetimes | ||||
| \leq | ||||
| \leqq | ||||
| \leqslant | ||||
| \lessapprox | ||||
| \lessdot | ||||
| \lesseqgtr | ||||
| \lesseqqgtr | ||||
| \lessgtr | ||||
| \lesssim | ||||
| \lfloor | ||||
| \lg | ||||
| \lgroup | ||||
| \lhd | ||||
| \lim | ||||
| \liminf | ||||
| \limsup | ||||
| \ll | ||||
| \llcorner | ||||
| \Lleftarrow | ||||
| \lll | ||||
| \lmoustache | ||||
| \ln | ||||
| \lnapprox | ||||
| \lneq | ||||
| \lneqq | ||||
| \lnsim | ||||
| \log | ||||
| \Longleftarrow | ||||
| \longleftarrow | ||||
| \Longleftrightarrow | ||||
| \longleftrightarrow | ||||
| \longmapsto | ||||
| \Longrightarrow | ||||
| \longrightarrow | ||||
| \looparrowleft | ||||
| \looparrowright | ||||
| \lozenge | ||||
| \lrcorner | ||||
| \Lsh | ||||
| \lltimes | ||||
| \lvertneqq | ||||
| \mapsto | ||||
| \mathbb | ||||
| \max | ||||
| \mho | ||||
| \mid | ||||
| \min | ||||
| \models | ||||
| \mp | ||||
| \mu | ||||
| \multimap | ||||
| \nabla | ||||
| \natural | ||||
| \ncong | ||||
| \nearrow | ||||
| \neg | ||||
| \neq | ||||
| \nexists | ||||
| \ngeq | ||||
| \ngeqq | ||||
| \ngeqslant | ||||
| \ngtr | ||||
| \ni | ||||
| \nLeftarrow | ||||
| \nleftarrow | ||||
| \nLeftrightarrow | ||||
| \nleftrightarrow 258  | ||||
| \nleq | ||||
| \nleqq | ||||
| \nleqslant | ||||
| \nless | ||||
| \nmid | ||||
| \nparallel | ||||
| \nprec | ||||
| \npreceq | ||||
| \nRightarrow | ||||
| \nrightarrow | ||||
| \nshortmid | ||||
| \nshortparallel | ||||
| \nsim | ||||
| \nsubseteq | ||||
| \nsucc | ||||
| \nsucceq | ||||
| \nsupseteq | ||||
| \nsupseteqq | ||||
| \ntriangleleft | ||||
| \ntrianglelefteq | ||||
| \ntriangleright | ||||
| \ntrianglerighteq | ||||
| \nu | ||||
| \numberwithin | ||||
| \nVDash | ||||
| \nvDash | ||||
| \nvdash | ||||
| \nwarrow | ||||
| \odot | ||||
| \oint | ||||
| \Omega | ||||
| \omega | ||||
| \ominus | ||||
| \oplus | ||||
| \oslash | ||||
| \otimes | ||||
| \overbrace | ||||
| \overleftarrow | ||||
| \overline | ||||
| \overrightarrow | ||||
| \parallel | ||||
| \partial | ||||
| \perp | ||||
| \Phi | ||||
| \phi | ||||
| \Pi | ||||
| \pi | ||||
| \pitchfork | ||||
| \pm | ||||
| \pmb | ||||
| \Pr | ||||
| \prec | ||||
| \precapprox | ||||
| \preccurlyeq | ||||
| \preceq | ||||
| \precnapprox | ||||
| \precnsim | ||||
| \precsim | ||||
| \prime | ||||
| \prod | ||||
| \propto | ||||
| \Psi | ||||
| \psi | ||||
| \rangle | ||||
| \rceil | ||||
| \Re | ||||
| \real | ||||
| \rfloor | ||||
| \rgroup | ||||
| \rhd | ||||
| \rho | ||||
| \Rightarrow | ||||
| \rightarrow | ||||
| \rightarrowtail | ||||
| \rightharpoondown | ||||
| \rightharpoonup | ||||
| \rightleftarrows | ||||
| \rightleftharpoons | ||||
| \rightrightarrows | ||||
| \rightsquigarrow | ||||
| \rightthreetimes | ||||
| \risingdotseq | ||||
| \rmoustache | ||||
| \Rsh | ||||
| \rtimes | ||||
| \Xi | ||||
| \xi | ||||
| \zeta | ||||
| \wedge | ||||
| \widehat | ||||
| \widetilde | ||||
| \wp | ||||
| \wr | ||||
| \searrow | ||||
| \sec | ||||
| \setminus | ||||
| \sharp | ||||
| \shortmid | ||||
| \shortparallel | ||||
| \Sigma | ||||
| \sigma | ||||
| \sim | ||||
| \simeq | ||||
| \sin | ||||
| \sinh | ||||
| \smallfrown | ||||
| \smallsetminus | ||||
| \smallsmile | ||||
| \smile | ||||
| \spadesuit | ||||
| \sphericalangle | ||||
| \sqcap | ||||
| \sqcup | ||||
| \sqrt | ||||
| \sqsubset | ||||
| \sqsubseteq | ||||
| \sqsupset | ||||
| \sqsupseteq | ||||
| \square | ||||
| \star | ||||
| \Subset | ||||
| \subset | ||||
| \subseteq | ||||
| \subseteqq | ||||
| \subsetneq | ||||
| \subsetneqq | ||||
| \succ | ||||
| \succapprox | ||||
| \succcurlyeq | ||||
| \succeq | ||||
| \succnapprox | ||||
| \succnsim | ||||
| \succsim | ||||
| \sum | ||||
| \Supset | ||||
| \supset | ||||
| \supseteq | ||||
| \supseteqq | ||||
| \supsetneq | ||||
| \supsetneqq | ||||
| \surd | ||||
| \swarrow | ||||
| \sup | ||||
| \tan | ||||
| \tanh | ||||
| \tau | ||||
| \therefore | ||||
| \Theta | ||||
| \theta | ||||
| \thickapprox | ||||
| \thicksim | ||||
| \tilde | ||||
| \time | ||||
| \times | ||||
| \top | ||||
| \triangle | ||||
| \triangledown | ||||
| \triangleleft | ||||
| \trianglelefteq | ||||
| \triangleq | ||||
| \triangleright | ||||
| \trianglerighteq | ||||
| \twoheadleftarrow | ||||
| \twoheadrightarrow | ||||
| \ulcorner | ||||
| \underbrace | ||||
| \underleftarrow | ||||
| \underleftrightarrow | ||||
| \underline | ||||
| \underrightarrow | ||||
| \unlhd | ||||
| \unrhd | ||||
| \Uparrow | ||||
| \uparrow | ||||
| \Updownarrow | ||||
| \updownarrow | ||||
| \upharpoonleft | ||||
| \upharpoonright | ||||
| \uplus | ||||
| \Upsilon | ||||
| \upsilon | ||||
| \upuparrows | ||||
| \urcorner | ||||
| \varepsilon | ||||
| \varkappa | ||||
| \varnothing | ||||
| \varphi  | ||||
| \varpi | ||||
| \varpropto | ||||
| \varrho | ||||
| \varsigma | ||||
| \varsubsetneq | ||||
| \varsubsetneqq | ||||
| \varsupsetneq | ||||
| \varsupsetneqq | ||||
| \vartheta | ||||
| \vartriangle | ||||
| \vartriangleleft | ||||
| \vartriangleright | ||||
| \Vdash | ||||
| \vDash | ||||
| \vdash | ||||
| \vdots | ||||
| \vec | ||||
| \vee | ||||
| \veebar | ||||
| \Vvdash | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										2
									
								
								lib/command/amsxtra.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/amsxtra.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \accentedsymbol{} | ||||
| \actualchar | ||||
							
								
								
									
										1
									
								
								lib/command/array.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/array.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \firsthline | ||||
							
								
								
									
										0
									
								
								lib/command/babel.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/babel.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										17
									
								
								lib/command/bar.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								lib/command/bar.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| \bar{}{}[] | ||||
| \hlineon | ||||
| \legend{}{} | ||||
| \sethspace{} | ||||
| \setlinestyle{} | ||||
| \setdepth{} | ||||
| \setnumberpos{} | ||||
| \setprecision{} | ||||
| \setstretch{} | ||||
| \setstyle{} | ||||
| \setwidth{} | ||||
| \setxaxis{}{}{} | ||||
| \setxname{} | ||||
| \setxvaluetyp{} | ||||
| \setyaxis[]{}{}{} | ||||
| \setyname{} | ||||
|  | ||||
							
								
								
									
										2
									
								
								lib/command/bezier.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/bezier.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \bezier{}(,)(,)(,) | ||||
| \qbezier[](,)(,)(,) | ||||
							
								
								
									
										13
									
								
								lib/command/calc.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								lib/command/calc.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| \addtocounter{}{}	 | ||||
| \advance	 | ||||
| \Alph{} | ||||
| \alph{} | ||||
| \arabic{} | ||||
| \divide | ||||
| \equal | ||||
| \fnsymbol{} | ||||
| \multiply | ||||
| \newcounter{}[] | ||||
| \setcounter{}{} | ||||
| \stepconnter{} | ||||
| \the | ||||
							
								
								
									
										9
									
								
								lib/command/changebar.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								lib/command/changebar.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| \cbdelete[] | ||||
| \cbend | ||||
| \cbstart | ||||
| changebargrey | ||||
| \changebarsep | ||||
| \changebarwidth | ||||
| \deletebarwidth | ||||
| \nochangebars | ||||
| \outerbarstrue | ||||
							
								
								
									
										3
									
								
								lib/command/chicago.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/chicago.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \citeA{} | ||||
| \citeN{} | ||||
| \citeyear{} | ||||
							
								
								
									
										6
									
								
								lib/command/cite.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/cite.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| \@cite | ||||
| \cite{} | ||||
| \citen | ||||
| \shortcite | ||||
| \shortciteA | ||||
| \shortciteN | ||||
							
								
								
									
										0
									
								
								lib/command/color.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/color.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										6
									
								
								lib/command/curves.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/curves.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| \closecurve | ||||
| \curve[]() | ||||
| \curvedashes{} | ||||
| \curvesymbol{} | ||||
| \tagcurve[]() | ||||
| \scaleput(){} | ||||
							
								
								
									
										50
									
								
								lib/command/doc.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										50
									
								
								lib/command/doc.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| \*  | ||||
| \@idxitem | ||||
| \AltMacroFont | ||||
| \bslash | ||||
| \changes{}{}{} | ||||
| \CharacterTable{} | ||||
| \CheckModules | ||||
| \CheckSum{} | ||||
| \CodelineIndex | ||||
| \CodelineNumbered | ||||
| \DeleteShortVerb | ||||
| \DescribeEnv{} | ||||
| \DescribeMacro{} | ||||
| \DisableCrossrefs | ||||
| \docdate | ||||
| \DocInput{} | ||||
| \DocstyleParms | ||||
| \DoNotIndex | ||||
| \DontCheckModules{} | ||||
| \lndexlnput{} | ||||
| \IndexMin | ||||
| \IndexParms | ||||
| \indexPrologue{} | ||||
| \levelchar | ||||
| \MacrocodeTopsep | ||||
| \MacroFont | ||||
| \MacroIndent | ||||
| \MacroTopsep | ||||
| \main | ||||
| \MakePrivateLetters | ||||
| \MakeShortVerb{} | ||||
| \meta{} | ||||
| \Module | ||||
| \PrintChanges | ||||
| \PrintDescribeEnv | ||||
| \PrintDescribeMacro | ||||
| \PrintIndex | ||||
| \PrintMacroName | ||||
| \ps@titlepage | ||||
| \quotechar | ||||
| \RecordChanges | ||||
| \SortIndex | ||||
| \SpecialEnvIndex | ||||
| \SpecialEscapechar | ||||
| \SpecialIndex | ||||
| \SpecialMainIndex | ||||
| \SpecialUsageIndex | ||||
| \StopEventually | ||||
| \theCodelineNo | ||||
| \verbatimchar | ||||
							
								
								
									
										3
									
								
								lib/command/eclbip.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/eclbip.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \brush{} | ||||
| \leftnode[]{} | ||||
| \match | ||||
							
								
								
									
										5
									
								
								lib/command/ecltree.lts
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								lib/command/ecltree.lts
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| \chunk[]{} | ||||
| \GapDepth | ||||
| \GapWidth | ||||
| \drawwith{} | ||||
| \EdgeLabelSep | ||||
							
								
								
									
										13
									
								
								lib/command/eepic.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								lib/command/eepic.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| \arc{}{}{} | ||||
| \circle{} | ||||
| \circle*{} | ||||
| \ellipse{}{} | ||||
| \ellipse*{}{} | ||||
| \filltype{} | ||||
| \line(){} | ||||
| \maxovaldiam | ||||
| \oval(){} | ||||
| \path()  | ||||
| \spline() | ||||
| \Thicklines | ||||
| \thicklines | ||||
							
								
								
									
										2
									
								
								lib/command/endfloat.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/endfloat.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \figureplace | ||||
| \nomarkersintext | ||||
							
								
								
									
										2
									
								
								lib/command/endnotes.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/endnotes.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \endnote | ||||
| \enotesize | ||||
							
								
								
									
										16
									
								
								lib/command/epic.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								lib/command/epic.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| \shortstack | ||||
| \allinethickness{} | ||||
| \dashline[]{}[]() | ||||
| \dashlinestretch | ||||
| \dottedline[]{}() | ||||
| \drawline[]() | ||||
| \drawlinestretch | ||||
| \grid(,)(,)[,] | ||||
| \jput(){} | ||||
| \matrixput()(){}(){}{} | ||||
| \multyput | ||||
| \multiputlist | ||||
| \picsquare | ||||
| \rightnode[]{} | ||||
| \match{}{} | ||||
| \leftnode{}{} | ||||
							
								
								
									
										4
									
								
								lib/command/epsfig.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								lib/command/epsfig.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| \epsfig{} | ||||
| \psfigdriver{} | ||||
| \psdraft | ||||
| \psfull | ||||
							
								
								
									
										1
									
								
								lib/command/eufrac.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/eufrac.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \EuFrak | ||||
							
								
								
									
										1
									
								
								lib/command/euscript.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/euscript.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \EuScript | ||||
							
								
								
									
										6
									
								
								lib/command/fancybox.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/fancybox.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| \cornersize{} | ||||
| \cornersize*{} | ||||
| \doublebox{} | ||||
| \shadowbox{} | ||||
| \ovalbox{} | ||||
| \Ovalbox{} | ||||
							
								
								
									
										13
									
								
								lib/command/fancyheadings.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										13
									
								
								lib/command/fancyheadings.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| \cfoot[]{} | ||||
| \chead[]{} | ||||
| \fancyplain{}{} | ||||
| \footrule | ||||
| \footrulewidth | ||||
| \headrule | ||||
| \headrulewidth | ||||
| \headwidth | ||||
| \lfoot | ||||
| \lhead | ||||
| \rfoot | ||||
| \rhead | ||||
|  | ||||
							
								
								
									
										6
									
								
								lib/command/float.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/float.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| \floatname | ||||
| \floatplacement | ||||
| \floatstyle | ||||
| \listof | ||||
| \newfloat{}{}{}{} | ||||
| \restylefloat{} | ||||
							
								
								
									
										1
									
								
								lib/command/floatfig.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/floatfig.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \initfloatingfigs | ||||
							
								
								
									
										0
									
								
								lib/command/fontenc.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/fontenc.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										0
									
								
								lib/command/graphicx.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/graphicx.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										0
									
								
								lib/command/grapics.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/grapics.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										1
									
								
								lib/command/hangcaption.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/hangcaption.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \isucaption   | ||||
							
								
								
									
										2
									
								
								lib/command/hhline.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/hhline.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \hhline | ||||
| \hrule | ||||
							
								
								
									
										17
									
								
								lib/command/ifthen.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								lib/command/ifthen.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| \whiledo | ||||
| \Yarea | ||||
| \Ysize | ||||
| \Xsize | ||||
| \Xarea | ||||
| \boolean{} | ||||
| \ifthenelse | ||||
| \equal{}{} | ||||
| \isodd | ||||
| \lengthtest{} | ||||
| \newboolean | ||||
| \newif | ||||
| \newX | ||||
| \newY | ||||
| \not | ||||
| \or | ||||
| \setboolean | ||||
							
								
								
									
										4
									
								
								lib/command/index.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										4
									
								
								lib/command/index.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| \index{}{} | ||||
| \indexproofstyle | ||||
| \newindex{}{}{}{} | ||||
| \renewindex{}{}{}{} | ||||
							
								
								
									
										0
									
								
								lib/command/inputenc.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/inputenc.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										5
									
								
								lib/command/latexsym.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								lib/command/latexsym.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| \leadsto | ||||
| \Box | ||||
| \Join | ||||
| \lhd | ||||
| \Diamond | ||||
							
								
								
									
										1
									
								
								lib/command/layout.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/layout.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \layout | ||||
							
								
								
									
										5
									
								
								lib/command/longtable.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								lib/command/longtable.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| \endfirsthead | ||||
| \endfoot | ||||
| \endhead | ||||
| \endlastfoot | ||||
| \kill | ||||
							
								
								
									
										942
									
								
								lib/command/main_cmd.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										942
									
								
								lib/command/main_cmd.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,942 @@ | ||||
| \' | ||||
| \(  | ||||
| \)  | ||||
| \, | ||||
| \- | ||||
| \/ | ||||
| \: | ||||
| \; | ||||
| \= | ||||
| \> | ||||
| \! | ||||
| \@addtoreset{}{} | ||||
| \@cite | ||||
| \@dotsep | ||||
| \@dottedtocline{}{}{}{}{} | ||||
| \@evenfoot | ||||
| \@evenhead | ||||
| \@makecaption{}{} | ||||
| \@makefigcaption | ||||
| \@makefnmark | ||||
| \@makefntext | ||||
| \@mkboth | ||||
| \@oddfoot | ||||
| \@oddhead | ||||
| \@pnumwidth | ||||
| \@ptsize | ||||
| \@rightskip | ||||
| \@seccntformat | ||||
| \@startsection{}{}{}{}{}{} | ||||
| \@starttoc{} | ||||
| \@thefnmark | ||||
| \@tocrmarg | ||||
| \` | ||||
| \a' | ||||
| \a= | ||||
| \a' | ||||
| \abovedisplayshortskip | ||||
| \abovedisplayskip | ||||
| abstract | ||||
| \abstractname | ||||
| \accent | ||||
| \acro | ||||
| \addcontentsline{}{} | ||||
| \adddialect{}{} | ||||
| \addlanguage{} | ||||
| \addto | ||||
| \addtocontents{}{} | ||||
| \addtocounter{}{}	 | ||||
| \addtolength{}{} | ||||
| \AE | ||||
| \aleph | ||||
| \alsoname | ||||
| \amalg | ||||
| \Appendix | ||||
| \appendix | ||||
| \appendixname | ||||
| array | ||||
| \AtBeginDocument | ||||
| \AtEndDocument | ||||
| \AtEndOfClass | ||||
| \AtEndOfPackage | ||||
| \baselineskip | ||||
| \baselinestretch | ||||
| \batchfile{} | ||||
| \batchinput | ||||
| \Bbb | ||||
| \begin{} | ||||
| \belowdisplayshortskip | ||||
| \belowdisplayskip | ||||
| \bf | ||||
| \bfdefault | ||||
| Bflushleft | ||||
| Bflushright | ||||
| \bfseries | ||||
| \bibhang | ||||
| \bibindent | ||||
| \bibitem[]{} | ||||
| \bibliography{} | ||||
| \bibliographystyle{} | ||||
| \bibliographyunit[] | ||||
| \bibname | ||||
| \bibpunct | ||||
| \bigcircle | ||||
| \bigskip | ||||
| \bigskipamount | ||||
| bmatrix | ||||
| \bmod | ||||
| \boldmath | ||||
| book | ||||
| bookman | ||||
| \botfigrule | ||||
| \bottomcaption | ||||
| \bottomfraction | ||||
| bottomnumber | ||||
| \boxed{} | ||||
| bundle | ||||
| \bye | ||||
| calc | ||||
| \caption[]{} | ||||
| \caption*{} | ||||
| \captionwidth | ||||
| cases | ||||
| catalan | ||||
| \catcode | ||||
| cc | ||||
| \ccname | ||||
| CD | ||||
| center | ||||
| \centering | ||||
| centertags  | ||||
| changebar | ||||
| \chapter{} | ||||
| chapter | ||||
| \chapter*{} | ||||
| chapterbib | ||||
| \chaptermark | ||||
| \chaptername | ||||
| chicago | ||||
| Citation | ||||
| \cite[]{} | ||||
| citesort | ||||
| \cleardoublepage | ||||
| \clearemptydoublepage | ||||
| \clearpage | ||||
| \cline | ||||
| \CodelineFont | ||||
| collectmore | ||||
| color | ||||
| colordvi | ||||
| columnbadness | ||||
| \columnsep | ||||
| \colunnseprule | ||||
| \coluanwidth | ||||
| comment | ||||
| concrete | ||||
| \contentsline{}{}{} | ||||
| \contentsname | ||||
| Cor | ||||
| croatian | ||||
| cropmarks | ||||
| \csname | ||||
| \CurrentOption | ||||
| curves | ||||
| czech | ||||
| danish | ||||
| dashjoin | ||||
| \dblfigrule | ||||
| \dblfloatpagefraction | ||||
| \dblfloatsep | ||||
| \dbltextfloatsep  | ||||
| \dbltopfraction | ||||
| dbltopnumber | ||||
| dcolumn | ||||
| debugshow | ||||
| \DeclareErrorFont | ||||
| \DeclareFixedFont{}{}{}{}{}{} | ||||
| \DeclareFontEncoding{}{}{} | ||||
| \DeclareFontFamily{}{}{} | ||||
| \DeclareFontShape{}{}{}{}{}{} | ||||
| \DeclareFontSubstitution{}{}{}{} | ||||
| \DeclareMathAlphabet{}{}{}{}{} | ||||
| \DeclareMathOperator{} | ||||
| \DeclareMathOperator*{} | ||||
| \DeclareMathSizes{}{}{}{} | ||||
| \DeclareMathSymbol{}{}{}{}  | ||||
| \DeclareMathVersion{} | ||||
| \DeclareOption{}{} | ||||
| \DeclareOption*{} | ||||
| \DeclareSymbolFont{}{}{}{}{} | ||||
| \DeclareSymbolFontAlphabet{}{} | ||||
| Def | ||||
| \defaulthyphenchar | ||||
| deflist | ||||
| delarray | ||||
| \depth | ||||
| description | ||||
| \descriptionlabel | ||||
| \displaybreak[] | ||||
| \displaystyle | ||||
| doc | ||||
| document | ||||
| \documentclass[]{} | ||||
| \documentstyle[]{} | ||||
| \dotfill | ||||
| dottedjoin | ||||
| \doublerulesep | ||||
| doublespace | ||||
| \dq | ||||
| draft | ||||
| draftcopy | ||||
| drawjoin | ||||
| \driver | ||||
| dutch | ||||
| dvips | ||||
| dvitops | ||||
| \ecaption  | ||||
| eclbip | ||||
| ecltree | ||||
| eepic | ||||
| eepicemu | ||||
| \em | ||||
| \emergencystretch | ||||
| \emph{} | ||||
| empty | ||||
| emtex | ||||
| \enclname | ||||
| \encodingdefault | ||||
| \end{} | ||||
| \endcsname | ||||
| endfloat | ||||
| \endpostamble | ||||
| \endpreamble | ||||
| english | ||||
| \enlargethispage{} | ||||
| \enlargethispage* | ||||
| \enspace | ||||
| \ensuremath{} | ||||
| entry | ||||
| \entrylabel | ||||
| enumerate | ||||
| enumerate | ||||
| enumeration | ||||
| enumi | ||||
| enumii | ||||
| enumiii | ||||
| enumiv | ||||
| environment | ||||
| epic | ||||
| epsfig | ||||
| eqnarray | ||||
| eqnarray* | ||||
| \eqref | ||||
| equation | ||||
| equation | ||||
| equation* | ||||
| errorshow | ||||
| esperanto | ||||
| eucal | ||||
| eufrak | ||||
| euler | ||||
| euscript | ||||
| \evensidemargin | ||||
| Exa | ||||
| \ExecuteOptions | ||||
| executivepaper | ||||
| exscale | ||||
| \externaldocument | ||||
| \extracolsep | ||||
| \extrarowheight | ||||
| \extratabsurround | ||||
| \faketableofcontents | ||||
| \familydefault | ||||
| fancy | ||||
| fancybox | ||||
| fancyheadings | ||||
| \fbox{} | ||||
| \fboxrule | ||||
| \fboxsep | ||||
| figure | ||||
| figure | ||||
| \figurename | ||||
| figwindow | ||||
| filecontents | ||||
| \fill | ||||
| finalcolumnbadness | ||||
| final | ||||
| \Finale | ||||
| finnish | ||||
| fixed | ||||
| flatter | ||||
| flalign | ||||
| flalign* | ||||
| fleqn | ||||
| float | ||||
| floatfig | ||||
| floatingfigure | ||||
| \floatpagefraction | ||||
| \floatsep | ||||
| \flq | ||||
| \flqq | ||||
| \flushbottom | ||||
| \flushcolunms | ||||
| flushleft | ||||
| flushright | ||||
| \fminilength | ||||
| fminipage | ||||
| fnpara | ||||
| \fontdimen | ||||
| \fontencoding{} | ||||
| \fontfamily{} | ||||
| \fontseries{} | ||||
| \fontshape{} | ||||
| \fontsize{}{} | ||||
| \footnote{} | ||||
| footnote | ||||
| \footnotemark | ||||
| \footnoterule | ||||
| \footnotesep | ||||
| \footnotesize | ||||
| \footnotetext{} | ||||
| footnpag | ||||
| \footskip | ||||
| \framebox[][]{} | ||||
| FrameVerb | ||||
| francais | ||||
| french | ||||
| french | ||||
| \from{}{} | ||||
| \frq | ||||
| \frqq | ||||
| ftnright | ||||
| \fullref | ||||
| \fussy | ||||
| galician | ||||
| garamond | ||||
| gather | ||||
| gather* | ||||
| gathered | ||||
| \generateFile{}{}{} | ||||
| german | ||||
| german | ||||
| germanb | ||||
| \glossary | ||||
| \glossaryentry | ||||
| \glq | ||||
| \glqq | ||||
| graphics | ||||
| \grq | ||||
| \grqq | ||||
| hackalloc | ||||
| hangcaption | ||||
| harvard | ||||
| \hdotsfor[]{} | ||||
| \headheight | ||||
| headings | ||||
| \headsep | ||||
| \headtoname | ||||
| \height | ||||
| \help | ||||
| helvet | ||||
| here | ||||
| hhline | ||||
| \hline | ||||
| \hoffset | ||||
| \hrulefill | ||||
| \hspace | ||||
| \hspace* | ||||
| \Huge | ||||
| \huge | ||||
| \IfFileExists{}{}{} | ||||
| \iflanguage{}{}{} | ||||
| ifthen | ||||
| \ignorespaces | ||||
| \include{} | ||||
| \includeonly{} | ||||
| indentfirst | ||||
| index | ||||
| \indexentry | ||||
| \indexname | ||||
| infoshow | ||||
| \init | ||||
| \input | ||||
| inputenc | ||||
| \InputIfFileExists{}{}{} | ||||
| \intertext{} | ||||
| \intextsep | ||||
| intlimits | ||||
| isolatin1 | ||||
| \it | ||||
| italian | ||||
| \itdefault | ||||
| \item | ||||
| \itemindent | ||||
| itemize | ||||
| \itemsep | ||||
| \itshape | ||||
| jmb | ||||
| \jot | ||||
| \keepsilent | ||||
| \l@chapter | ||||
| \l@example | ||||
| \l@figure | ||||
| \l@paragraph | ||||
| \l@part | ||||
| \l@section | ||||
| \1@subparagraph | ||||
| \l@subsection | ||||
| \l@subsubsection | ||||
| \l@table | ||||
| \label{} | ||||
| \labelenumi | ||||
| \labelenumii | ||||
| \labelenumiii | ||||
| \labelemuniv | ||||
| \labelitemi | ||||
| \labelitemii | ||||
| \labelitemiii | ||||
| \labelitemiv | ||||
| \labelsep | ||||
| \labelwidth | ||||
| \landscape | ||||
| landscape | ||||
| \LARGE | ||||
| \Large | ||||
| \large | ||||
| \lasthline | ||||
| latexsym, | ||||
| layout | ||||
| \left | ||||
| \leftmargin | ||||
| \leftmark | ||||
| legalpaper | ||||
| Lem | ||||
| Lentry | ||||
| \Lentrylabel{} | ||||
| leqno | ||||
| letter | ||||
| letterpaper | ||||
| \letterspace | ||||
| letterspace | ||||
| \linebreak | ||||
| \linethickness | ||||
| \linewidth | ||||
| list | ||||
| \listfigurename | ||||
| \listfiles | ||||
| \listofexamples | ||||
| \listoffigures | ||||
| \listoftables | ||||
| \listparindent | ||||
| \listtablename | ||||
| ln | ||||
| \LoadClass[]{}[] | ||||
| loading | ||||
| \longpage | ||||
| longtable | ||||
| \lowercase | ||||
| lrbox | ||||
| lscape | ||||
| \LTcapwidth | ||||
| \LTchunksize | ||||
| \LTleft | ||||
| \LTpost | ||||
| \LTpre | ||||
| \LTright | ||||
| lucid | ||||
| lucidbrb | ||||
| lucidbry | ||||
| lucmath  | ||||
| \lVert | ||||
| \lvert | ||||
| \m@th | ||||
| macro | ||||
| macrocode | ||||
| macrocode* | ||||
| magyar | ||||
| \makeatletter | ||||
| \makeatother | ||||
| \makebox[][]{} | ||||
| \makeglossary | ||||
| makeidx | ||||
| \makelabel | ||||
| \maketitle | ||||
| \marginlabel{} | ||||
| \marginpar[]{} | ||||
| \marginparpush | ||||
| \marginparsep  | ||||
| \marginparwidth | ||||
| \markboth{}{} | ||||
| \markright{} | ||||
| \mathalpha | ||||
| \mathbf | ||||
| \mathbin | ||||
| \mathcal | ||||
| \mathclose | ||||
| \mathindent | ||||
| \mathit | ||||
| \mathnormal | ||||
| \mathop | ||||
| \mathopen | ||||
| \mathord | ||||
| \mathpunct | ||||
| \mathrel | ||||
| \mathrm | ||||
| \mathsf | ||||
| \mathsfsl | ||||
| \mathsurround | ||||
| \mathtt | ||||
| \mathversion | ||||
| \matrix | ||||
| matrix | ||||
| MaxMatrixCols | ||||
| \mbox{} | ||||
| \mddefault | ||||
| \mdseries | ||||
| \medskip | ||||
| \medskipamount | ||||
| \medspace | ||||
| \Mentry | ||||
| \Mentrylabel | ||||
| \message | ||||
| minipage  | ||||
| minitoc | ||||
| minitocdepth | ||||
| minitocoff | ||||
| mm | ||||
| moreverb | ||||
| mpfootnote | ||||
| \Msg | ||||
| \mspace | ||||
| \mtcfont | ||||
| \mtcindent | ||||
| mtimes | ||||
| mu | ||||
| multibox | ||||
| multicol | ||||
| multicols | ||||
| \multicolsep | ||||
| \multicolumn | ||||
| multind | ||||
| multirow | ||||
| multline | ||||
| multline* | ||||
| \multlinegap | ||||
| myheadings | ||||
| named | ||||
| namelimits | ||||
| \names | ||||
| nar  | ||||
| natbib | ||||
| \naturalwidth | ||||
| nature | ||||
| \NeedsTeXFormat{}[] | ||||
| \negmedspace | ||||
| \negthickspace | ||||
| \negthinspace | ||||
| newapa | ||||
| \newblock | ||||
| newcent | ||||
| \newcolunmtype{}[]{} | ||||
| \newcommand{} | ||||
| \newenvironment{}[]{}{} | ||||
| \newfont | ||||
| \newindex | ||||
| \newlength | ||||
| newlfont | ||||
| \newpage | ||||
| \newsavebox{} | ||||
| \nfssfont | ||||
| \nocite{} | ||||
| \nocorr | ||||
| \nocorrlist | ||||
| \nofiglist | ||||
| \nofiles | ||||
| \nohyphens | ||||
| \noindent | ||||
| nointlimits | ||||
| nonamelimits | ||||
| \nonfrenchspacing | ||||
| \nonumber | ||||
| \nopagebreak | ||||
| \normalem | ||||
| \normalfont | ||||
| \normalmarginpar | ||||
| \normalsize | ||||
| norsk | ||||
| nosumlimits | ||||
| \notablist | ||||
| \notag | ||||
| Notes | ||||
| notes | ||||
| \numberline | ||||
| nynorsk | ||||
| \oddsidemargin | ||||
| oldgerm | ||||
| oldlfont | ||||
| \oldstylenums | ||||
| \onecolumn | ||||
| openbib | ||||
| \openin | ||||
| \OptionNotUsed | ||||
| order | ||||
| \Ovalbox{} | ||||
| \ovalbox{} | ||||
| overcite | ||||
| oztex | ||||
| \p@enumi | ||||
| \p@enumii | ||||
| \p@enumiii | ||||
| \p@enumiv | ||||
| page | ||||
| \pagebreak | ||||
| \pagename | ||||
| \pagenumbering | ||||
| \pageref | ||||
| \pagestyle | ||||
| palatino | ||||
| pandora | ||||
| \paperheight | ||||
| \paperwidth | ||||
| \paragraph{} | ||||
| paragraph | ||||
| \parbox[]{}{} | ||||
| parentequation | ||||
| \parindent | ||||
| \parsep | ||||
| \parskip | ||||
| \part{} | ||||
| part | ||||
| \part*{} | ||||
| \partname | ||||
| \partopsep | ||||
| \PassOptionsToClass{}{} | ||||
| \PassOptionsToPackage{}{} | ||||
| pausing | ||||
| pc | ||||
| \phantom | ||||
| Piautolist | ||||
| picinpar | ||||
| picture | ||||
| pifont | ||||
| Pilist | ||||
| plain | ||||
| \plainfootrulewidth | ||||
| \plainheadrulewidth | ||||
| pmatrix | ||||
| polish | ||||
| portland | ||||
| \portrait | ||||
| portrait | ||||
| portuges | ||||
| \postamble | ||||
| \postinulticols | ||||
| \preamble | ||||
| \prefacename | ||||
| \premulticols | ||||
| \PreserveBackslash | ||||
| \ProcessOptions | ||||
| \ProcessOptions* | ||||
| program | ||||
| program | ||||
| programbox | ||||
| proof | ||||
| \proofmodetrue | ||||
| \protect | ||||
| \providecommand | ||||
| \ProvidesClass | ||||
| \ProvidesFile | ||||
| \ProvidesPackage | ||||
| \ps@ | ||||
| \ps@plain | ||||
| psamsfonts | ||||
| psboxit | ||||
| pstimesm | ||||
| pt | ||||
| \put | ||||
| \putbib | ||||
| \putfile | ||||
| \qquad | ||||
| \quad | ||||
| quotation | ||||
| Quote | ||||
| quote | ||||
| \raggedcolumns | ||||
| \raggedleft | ||||
| \raggedright | ||||
| \raisebox{}[][]{} | ||||
| \ratio | ||||
| \ref{} | ||||
| \refname{} | ||||
| \refstepcounter | ||||
| \reftextafter | ||||
| \reftextbefore | ||||
| \reftextcurrent | ||||
| \reftextfaceafter | ||||
| \reftextfacebefore | ||||
| \reftextfaraway | ||||
| \reftextvario{}{} | ||||
| Rem | ||||
| \renewconnnand{} | ||||
| \renewenvironment{}[]{}{} | ||||
| report | ||||
| reqno | ||||
| \RequirePackage | ||||
| resume | ||||
| \reversemarginpar | ||||
| \right | ||||
| \rightmargin | ||||
| \rightmark | ||||
| \rightskip | ||||
| \rm | ||||
| \rmdefault | ||||
| \rmfamily | ||||
| \Roman | ||||
| \roman | ||||
| Roman | ||||
| roman | ||||
| romanian | ||||
| rotate | ||||
| rotate | ||||
| rotating | ||||
| \rotcaption | ||||
| \rotdriver | ||||
| \rule | ||||
| russian | ||||
| \samepage | ||||
| \sAppendix | ||||
| \savebox{}[][]{} | ||||
| Sbox | ||||
| \sbox{} | ||||
| \sc | ||||
| \scdefault | ||||
| \scriptscriptstyle | ||||
| \scriptsize | ||||
| \scriptstyle | ||||
| \scshape | ||||
| \secdef | ||||
| secnumdepth | ||||
| \section{} | ||||
| section | ||||
| \section*{} | ||||
| \sectionmark | ||||
| \see   | ||||
| \seename | ||||
| \selectfont | ||||
| \selectlanguage | ||||
| seminar | ||||
| \seriesdefault  | ||||
| \setlength | ||||
| \setmargins | ||||
| \setmarginsrb | ||||
| \SetMathAlphabet | ||||
| \setpapersize | ||||
| \SetSymbolFont | ||||
| \settodepth | ||||
| \settoheight{}{} | ||||
| \settowidth{}{} | ||||
| \sf | ||||
| \sfdefault | ||||
| \sffamily | ||||
| \shabox | ||||
| shadow | ||||
| \shadowsize | ||||
| \shapedefault | ||||
| \shapepar | ||||
| shapepar | ||||
| \shortindexingoff | ||||
| \shortindexingon | ||||
| \shortpage | ||||
| \shoveleft | ||||
| \shoveright | ||||
| \showcols | ||||
| showidx | ||||
| \showprogress | ||||
| showtags | ||||
| sideways | ||||
| sidewaysfigure | ||||
| sidewaystable | ||||
| \skip | ||||
| \sl | ||||
| \sldefault | ||||
| slides, | ||||
| \sloppy | ||||
| slovak | ||||
| slovene | ||||
| \slshape | ||||
| \small | ||||
| smallmatrix | ||||
| \smallskip | ||||
| \smallskipamount | ||||
| \SortNoop | ||||
| \sout | ||||
| sp | ||||
| \space | ||||
| spacing | ||||
| spanish | ||||
| split | ||||
| \squarepar | ||||
| \ss | ||||
| StandardModuleDepth | ||||
| \stop | ||||
| \stretch{} | ||||
| \string | ||||
| \strut | ||||
| subarray | ||||
| subequations | ||||
| subfigure | ||||
| \subitem | ||||
| \subparagraph{} | ||||
| subparagraph | ||||
| \subsection{} | ||||
| subsection | ||||
| \substack | ||||
| \subsubitem | ||||
| \subsubsection{} | ||||
| subsubsection | ||||
| sumlimits | ||||
| \suntaxonly | ||||
| supertab | ||||
| supertabular | ||||
| supertabular* | ||||
| \suppressfloats | ||||
| \swabfamily | ||||
| swedish | ||||
| \symbol | ||||
| syntonly | ||||
| t1enc | ||||
| tabbing | ||||
| \tabbingsep | ||||
| \tabcolsep | ||||
| \table | ||||
| table | ||||
| \tablename | ||||
| \tableofcontents | ||||
| \tableplace | ||||
| tabular | ||||
| tabular* | ||||
| TabularC | ||||
| tabularx  | ||||
| tabularx | ||||
| \tabularxcolunm | ||||
| tabwindow | ||||
| tbtags | ||||
| \text{} | ||||
| \textbf{} | ||||
| \textfloatsep{} | ||||
| \textfraction{} | ||||
| \textfrak{} | ||||
| \textgoth{} | ||||
| \textheight{} | ||||
| \textit{} | ||||
| \textmd{} | ||||
| \textnormal{} | ||||
| \textrm{} | ||||
| \textsc{} | ||||
| \textsf{} | ||||
| \textsl{} | ||||
| \textstyle{} | ||||
| \textswab{} | ||||
| \texttt{} | ||||
| \textup{} | ||||
| textures | ||||
| \textwidth | ||||
| thebibliography | ||||
| \thechapter | ||||
| \theendnotes | ||||
| \heenumi | ||||
| \theenumii | ||||
| \theenumiii | ||||
| \theenumiv | ||||
| \theequation | ||||
| \thefootnote | ||||
| theglossary | ||||
| theindex | ||||
| \thempfootnote | ||||
| theorem | ||||
| \thepage | ||||
| \TheSbox | ||||
| \thesection | ||||
| \thesubfigure | ||||
| \thesubsection | ||||
| \thickspace | ||||
| \thinlines | ||||
| \thinspace | ||||
| \thispagestyle | ||||
| threeparttable | ||||
| threeparttable | ||||
| times | ||||
| \tiny | ||||
| tocdepth | ||||
| \today | ||||
| \tolerance | ||||
| \topcaption | ||||
| \topfigrule | ||||
| \topfraction | ||||
| \topmargin | ||||
| topnumber | ||||
| \topsep | ||||
| \topskip | ||||
| \totalheight | ||||
| totalnumber | ||||
| tracefnt | ||||
| \tracingfonts | ||||
| tracingmulticols | ||||
| \tracingtabularx | ||||
| trees | ||||
| \tt | ||||
| \ttdefault | ||||
| \ttfamily | ||||
| turkish | ||||
| turn | ||||
| \twlrm | ||||
| \twocolumn | ||||
| twocolumn | ||||
| twoside | ||||
| \typeout | ||||
| ulem | ||||
| \ULforem | ||||
| \uline | ||||
| unbalance | ||||
| \unboldmath | ||||
| \underset | ||||
| \unitlength | ||||
| \unskip | ||||
| \updefault | ||||
| upref | ||||
| \upshape | ||||
| \usage | ||||
| \usebox{} | ||||
| \usecounter | ||||
| \usefont | ||||
| \usepackage[]{}[] | ||||
| \uwave | ||||
| \vadjust | ||||
| \value | ||||
| varioref | ||||
| \vector | ||||
| Ventry | ||||
| \verb | ||||
| \verb* | ||||
| \vfill | ||||
| \vline | ||||
| vmargin | ||||
| \voffset | ||||
| \vpageref | ||||
| \vref | ||||
| \vrule | ||||
| \vspace | ||||
| \vspace* | ||||
| warningshow | ||||
| \WideMargins | ||||
| \width | ||||
| window | ||||
| \wlog | ||||
| wrapfig | ||||
| wrapfig | ||||
| wrapfigure | ||||
| \xleftarrow | ||||
| \xout | ||||
| xr | ||||
| \xspace | ||||
| xspace | ||||
							
								
								
									
										2
									
								
								lib/command/minitoc.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/minitoc.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \dominitoc | ||||
| \minitoc | ||||
							
								
								
									
										2
									
								
								lib/command/multibox.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/multibox.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \multiframe()(){}()[]{} | ||||
| \multimake()(){}()[]{} | ||||
							
								
								
									
										0
									
								
								lib/command/multicol.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										0
									
								
								lib/command/multicol.lst
									
									
									
									
									
										Executable file
									
								
							
							
								
								
									
										3
									
								
								lib/command/multind.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/multind.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \index{} | ||||
| \makeindex{}{} | ||||
| \printindex{}{} | ||||
							
								
								
									
										2
									
								
								lib/command/multirow.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/multirow.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \multirow{}[]{}[]{} | ||||
| \multirowsetup | ||||
							
								
								
									
										2
									
								
								lib/command/oldgerm.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/oldgerm.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \frakfamily | ||||
| \gothfamily | ||||
							
								
								
									
										9
									
								
								lib/command/pifont.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										9
									
								
								lib/command/pifont.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| \ding{} | ||||
| dingautolist | ||||
| \dingfill | ||||
| \dingline | ||||
| dinglist | ||||
| \Pifill{}{} | ||||
| \Pifont{} | ||||
| \Piline{}{} | ||||
| \Pisymbol{}{} | ||||
							
								
								
									
										3
									
								
								lib/command/psboxit.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/psboxit.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \psboxit{}{} | ||||
| \PScommands | ||||
| \spbox | ||||
							
								
								
									
										3
									
								
								lib/command/shadow.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/shadow.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \sboxrule | ||||
| \sboxsep | ||||
| \sdim | ||||
							
								
								
									
										2
									
								
								lib/command/shapepar.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										2
									
								
								lib/command/shapepar.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| \diamondpar | ||||
| \heartpar | ||||
							
								
								
									
										3
									
								
								lib/command/subfigure.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/subfigure.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \subfigcapskip | ||||
| \subfigtopskip | ||||
| \subfigure | ||||
							
								
								
									
										5
									
								
								lib/command/supertab.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								lib/command/supertab.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| \tablecaption{} | ||||
| \tablefirsthead{} | ||||
| \tablehead{} | ||||
| \tablelasttail{} | ||||
| \tabletail{} | ||||
							
								
								
									
										1
									
								
								lib/command/tabularx.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/tabularx.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \arraybackslash | ||||
							
								
								
									
										6
									
								
								lib/command/theorem.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										6
									
								
								lib/command/theorem.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| \newtheorem{}{} | ||||
| \theorembodyfont{} | ||||
| \theoremheaderfont{} | ||||
| \theorempostskipamount{} | ||||
| \theorempreskipamount{} | ||||
| \theoremstyle{} | ||||
							
								
								
									
										5
									
								
								lib/command/trees.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										5
									
								
								lib/command/trees.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,5 @@ | ||||
| \branch{}{}{}:,. | ||||
| \branchlabels{}{}{} | ||||
| \leaf{}{}{} | ||||
| \root() . | ||||
| \tbranch{}{}{}:,. | ||||
							
								
								
									
										11
									
								
								lib/command/verbatim.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								lib/command/verbatim.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| listing | ||||
| listing* | ||||
| listingcont | ||||
| listingcont* | ||||
| \listinginput[]{}{} | ||||
| \verbatimtabinput[]{} | ||||
| verbatim | ||||
| verbatim* | ||||
| verbatimcmd | ||||
| verbatimtab | ||||
| verbatimwrite | ||||
							
								
								
									
										3
									
								
								lib/command/version.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										3
									
								
								lib/command/version.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| \excludeversion | ||||
| \includeversion{} | ||||
| version | ||||
							
								
								
									
										1
									
								
								lib/command/xspace.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								lib/command/xspace.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| \@ | ||||
							
								
								
									
										11
									
								
								lib/conf/encode.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										11
									
								
								lib/conf/encode.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2004, http://conero.lrn.ru | ||||
| ###################################################### | ||||
| # | ||||
| #  Encode listing  format: latex encode  - tcl encode | ||||
| # | ||||
| ###################################################### | ||||
| latin1 iso8859-1 | ||||
							
								
								
									
										22
									
								
								lib/conf/package.lst
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								lib/conf/package.lst
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
| # | ||||
| #                LaTeX pacckage list | ||||
| # | ||||
| ###################################################### | ||||
| babel | ||||
| color | ||||
| grapics | ||||
| graphicx | ||||
| fontenc | ||||
| inputenc | ||||
| latexsym | ||||
| longtable | ||||
| multicol | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										161
									
								
								lib/conf/tle.conf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										161
									
								
								lib/conf/tle.conf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,161 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #                MAIN SETTINGS | ||||
| ###################################################### | ||||
|  | ||||
| ## LOCALE SETTING ## | ||||
| set locale "en" | ||||
|  | ||||
| ## BACKUP FILES ## | ||||
| set backup(create) "Yes" | ||||
| set backup(del) "No" | ||||
| set backup(autosave) "No" | ||||
|  | ||||
| ## HELP SYSTEM ## | ||||
| set help(encode) "koi8-r" | ||||
|  | ||||
| ## ISPELL SETTINGS ## | ||||
| set ispell_lib /usr/lib/ispell | ||||
| set ispell_startindex "1.0" | ||||
|  | ||||
| ## DIRECTORY SETTING ## | ||||
| set dir(tmp) [file join $env(HOME) tmp] | ||||
| set dir(doc) [file join $env(HOME) doc my] | ||||
|  | ||||
| ## TIMERS ## | ||||
| ## structure refresh time ## | ||||
| ## default 1 min ## | ||||
| set timers(refresh) 60000 | ||||
| ## autosave opened files time ## | ||||
| ## default 5 min ## | ||||
| set timers(autosave) 300000 | ||||
|  | ||||
| ###################################################### | ||||
| #                USER INTERFACE SETTINGS | ||||
| ###################################################### | ||||
|  | ||||
| ## MAIN WINDOW GEOMETRY ## | ||||
| set gui(geometry) "750x550+0+0" | ||||
|  | ||||
| ## NoteBook Tabs Specifies the side where to place the label of the pages. ## | ||||
| ## must be "top" or "bottom" | ||||
| set gui(tabsLabel) "top" | ||||
|  | ||||
| ## IMAGE THEME ## | ||||
| ## must be "default" "stroke" ## | ||||
| set theme "stroke" | ||||
|  | ||||
| ## SETING FONTS ## | ||||
| set font(normal) "Arial 10 normal roman" | ||||
| set font(bold) "Arial 10 bold roman" | ||||
|  | ||||
| ## SETING COLOR ## | ||||
| set color(selectbg) "#55c4d1" | ||||
| set color(bg) "#bbbbbb" | ||||
| set color(editBg) "#cccccc" | ||||
| set color(editFg) "#000000" | ||||
| set color(editTitleNormal) "#000000" | ||||
| set color(editTitleModify) "#0021ff" | ||||
| set color(lineNumberBg) "#bbbbbb" | ||||
| set color(lineNumberFg) "#000000" | ||||
|  | ||||
| ## HighLightning Color ## | ||||
| set color(procName) "#0021ff" | ||||
| set color(operator) "#0000a8" | ||||
| set color(keyWord) "#0000a8" | ||||
| set color(param) "#6a0082" | ||||
| set color(subParam) "#008282" | ||||
| set color(comments) "#9b9b9b" | ||||
| set color(var) "#e50000" | ||||
| set color(string) "#168400" | ||||
| set color(brace) "#d33434" | ||||
| set color(braceBG) "#000000" | ||||
| set color(braceFG) "#00feff" | ||||
| set color(percent) "#a500c6" | ||||
| set color(bindKey) "#a500c6" | ||||
|  | ||||
| ## RELIEF TOOL BUTTONS## | ||||
| ## must be flat, groove, raised, ridge, solid, sunken or link ## | ||||
| set relief(btn) link | ||||
|  | ||||
| ## RELIEF TOOL MENUS## | ||||
| ## must be flat, groove, raised, ridge, solid, or sunken ## | ||||
| set relief(menu) groove | ||||
|  | ||||
| ## SHOW TOOLBARS ## | ||||
| ## must be: tool(toolbar_file_name) flag | ||||
| ## where flag = 0 - hide, 1- show | ||||
| set tool(main) 1 | ||||
| set tool(insert) 0 | ||||
| set tool(math) 0 | ||||
| set tool(format) 0 | ||||
|  | ||||
|  | ||||
| ###################################################### | ||||
| #                EDITOR SETTINGS | ||||
| ###################################################### | ||||
| ## EDITOR FONTS ## | ||||
| set font(editNormal) "fixed" | ||||
| set font(editBold) "fixed" | ||||
| ## EXTERNAL EDITOR ## | ||||
| set editor(extern) "No" | ||||
| set editor(prog) "/usr/bin/emacs" | ||||
| ## AUTOMATICALLY WORD WRAPPING ## | ||||
| set editor(wrap) "word" ;# must be: none, word or char | ||||
| # this auto wraping string if string lenght more then editor(strLen) | ||||
| # must be "No" or "Yes" | ||||
| set editor(strWrap) "Yes" | ||||
| set editor(strLen) 100 | ||||
|  | ||||
| ###################################################### | ||||
| #         CONVERT/PREVIEW/PRINT SETTINGS | ||||
| ###################################################### | ||||
|  | ||||
| ## CONVERT ## | ||||
| ## %fileName - current file name | ||||
| ## %dirName - currennt directory name | ||||
| set convert_cmd(dvi) "latex" | ||||
| set convert_cmd(ps) "dvips -Pwww -j0 -ta4 -o %dirName/%fileName.ps %dirName/%fileName.dvi" | ||||
| set convert_cmd(pdf) "ps2pdf %dirName/%fileName.ps" | ||||
| set convert_cmd(html) "latex2html -no_navigation -split 0" | ||||
| set convert_cmd(img) "convert" | ||||
| ## PREVIEW ## | ||||
| set preview_cmd(dvi) "xdvi" | ||||
| set preview_cmd(ps) "gv" | ||||
| set preview_cmd(pdf) "acroread" | ||||
| set preview_cmd(html) "mozilla" | ||||
|  | ||||
| ###################################################### | ||||
| #         MATH AND TEXT RENDERING PARAMETERS | ||||
| ###################################################### | ||||
| # image resolution | ||||
| set render(res) "100x100" | ||||
| # image format | ||||
| set render(format) "gif" | ||||
| # background color | ||||
| set render(bg) "white" | ||||
| # foreground color | ||||
| set render(fg) "black" | ||||
| # on/off transparency | ||||
| set render(trans) 0 | ||||
| # on/off antialliasing | ||||
| set render(aa) 1 | ||||
|  | ||||
| ###################################################### | ||||
| # | ||||
| ###################################################### | ||||
|  | ||||
| set thumb(show) "Yes" | ||||
| set thumb(resolution) "100x100" | ||||
| set thumb(format) "png" ;# must be jpg, gif, png | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										94
									
								
								lib/conf/tmp/first_proj.tex~
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										94
									
								
								lib/conf/tmp/first_proj.tex~
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,94 @@ | ||||
| %-----------------------------------------------------% | ||||
| %                                                     % | ||||
| % <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>         % | ||||
| %  (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)                 % | ||||
| %                                                     % | ||||
| %-----------------------------------------------------% | ||||
|  | ||||
| \documentclass[12pt]{article} | ||||
|  | ||||
| \usepackage[koi8-r]{inputenc} | ||||
| \usepackage[english,russian]{babel} | ||||
|  | ||||
| \usepackage{a4wide} | ||||
| \usepackage{graphicx} | ||||
|  | ||||
| \begin{document} | ||||
|  | ||||
| \section{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
|  | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> | ||||
| <EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \subsection{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
| \begin{itemize} | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item N <20>ޣ<EFBFBD><DEA3> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \end{itemize} | ||||
|  | ||||
| \subsection{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
| \begin{itemize} | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \end{itemize} | ||||
|  | ||||
| \subsection{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
| \begin{itemize} | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD>, N <20>ޣ<EFBFBD><DEA3>) | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| \item <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><>. | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) | ||||
| \end{itemize} | ||||
|  | ||||
| \section{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
|  | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> C++, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> WxWindow - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (Linux, Windows, ...) | ||||
|  | ||||
| <EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MySQL <20><><EFBFBD><EFBFBD> Paradox (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) | ||||
|  | ||||
| \section{<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>} | ||||
|  | ||||
| \subsection{Personal} | ||||
|  | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | ||||
|  | ||||
| \textbf{\emph{add}} (\textbf{String} \textit{LastName}, \textbf{String} | ||||
| \textit{FirstName}, \textbf{String} \textit{MiddleName}, \textbf{Int} | ||||
| \textit{Schet}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \textbf{\emph{edit}} (\textbf{Int} \textit{Id}, (\textbf{String} \textit{LastName}, | ||||
| \textbf{String} \textit{FirstName}, \textbf{String} \textit{MiddleName}, | ||||
| \textbf{Int} \textit{Schet}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \textbf{\emph{del}} (\textbf{Int} \textit{Id}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \subsection{Payment} | ||||
|  | ||||
| <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>: | ||||
|  | ||||
| \textbf{\emph{add}} (\textbf{Int} \textit{IdPerson}, \textbf{Int} | ||||
| \textit{Summa}, \textbf{String} \textit{Date}, \textbf{String} | ||||
| \textit{PaymentName}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \textbf{\emph{edit}} (\textbf{Int} \textit{Id}, \textbf{Int} \textit{IdPerson},  | ||||
| \textbf{Int} \textit{Summa}, \textbf{String} \textit{Date}, \textbf{String} | ||||
| \textit{PaymentName}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
| \textbf{\emph{del}} (\textbf{Int} \textit{Id}) - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|  | ||||
|  | ||||
| \end{document} | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										69
									
								
								lib/gui/toolbar/format
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										69
									
								
								lib/gui/toolbar/format
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
| # Format ToolBar | ||||
|  | ||||
| menu insertsection.gif "Sections" { | ||||
|     cmd "AddTextFont title" "Title" "Alt-t" | ||||
|     cmd "AddTextFont author" "Author" "Alt-a" | ||||
|     cmd "AddTextFont date" "Date" "Alt-d" | ||||
|     cmd "AddTextCommand maketitle" "Make title" | ||||
|     cmd "AddTextDouble begin{tilepage} end{tilepage}" "Title page" | ||||
|     cmd "AddTextCommand tableofcontents" "Table of Contents" | ||||
|     cmd "AddTextCommand listoftables" "List of Tables" | ||||
|     cmd "AddTextCommand listoffigures "List of Figures" | ||||
|     cmd "AddTextDouble begin{thebibliography} end{thebibliography}" "The Bibliography" | ||||
|     cmd "AddTextCommand appendix "Appendix" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont part" "Part" | ||||
|     cmd "AddTextFont chapter" "Chapter" | ||||
|     cmd "AddTextFont section" "Section" | ||||
|     cmd "AddTextFont subsection" "SubSection" | ||||
|     cmd "AddTextFont subsubsection" "SubSubSection" | ||||
|     cmd "AddTextFont paragraph" "Paragraph"  | ||||
|     cmd "AddTextFont subparagraph" "SubParagraph" | ||||
|      | ||||
| } | ||||
| menu font_size.gif "Font size" { | ||||
|     cmd "AddTextFont tiny" "tiny" | ||||
|     cmd "AddTextFont scriptsize" "scriptsize" | ||||
|     cmd "AddTextFont footnotesize" "footnotesize" | ||||
|     cmd "AddTextFont small" "small"  | ||||
|     cmd "AddTextFont normalsize" "Normal" | ||||
|     cmd "AddTextFont large" "large" | ||||
|     cmd "AddTextFont Large" "Large" | ||||
|     cmd "AddTextFont LARGE" "LARGE" | ||||
|     cmd "AddTextFont huge" "huge" | ||||
|     cmd "AddTextFont Huge" "Huge" | ||||
| } | ||||
|  | ||||
| menu font_width.gif "Font type" { | ||||
|     cmd "AddTextFont textrm" "Romanic" | ||||
|     cmd "AddTextFont textsf" "Sans Serif" | ||||
|     cmd "AddTextFont texttt" "Typewriter Typeset" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont textmd" "Middle Face" | ||||
|     cmd "AddTextFont textbf" "Bold Face" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont textup" "Up" | ||||
|     cmd "AddTextFont textit" "Italic" | ||||
|     cmd "AddTextFont textsl" "Slanted" | ||||
|     cmd "AddTextFont textsc" "Small Caps" | ||||
| } | ||||
| button "AddTextFont emph" font_emph.gif "Emphasise" | ||||
| button "AddTextDouble begin{center} end{center}" align_center.gif "Align center" | ||||
| button "AddTextDouble begin{left} end{left}" align_left.gif "Align left" | ||||
| button "AddTextDouble  begin{right} end{right}" align_right.gif "Align right" | ||||
| button "AddTextDouble  begin{verbatim} end{verbatim}" verb.gif "Verbatim" | ||||
| Separator | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										17
									
								
								lib/gui/toolbar/insert
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										17
									
								
								lib/gui/toolbar/insert
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| button "AddText itemize" itemize.gif "Add itemize list" | ||||
| button "AddText enumerate" numerate.gif "Add enumerate list" | ||||
| button "AddText image" image.gif "Insert image" | ||||
| Separator | ||||
| button "InsertTableDialog" table.gif "Add table" | ||||
| button "AddText date" date_time.gif "Insert curent date-time" "Alt-d" | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										43
									
								
								lib/gui/toolbar/main
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										43
									
								
								lib/gui/toolbar/main
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| # Main Toolbar file | ||||
| # useage : | ||||
| # "Command" image.file "Hint for baloon" | ||||
|  | ||||
| button "FileDialog new" new.gif "New file" | ||||
| button "FileDialog open" open.gif "Open file" | ||||
| button "FileDialog close" close.gif "Close" | ||||
| Separator | ||||
| button "FileDialog save" save.gif "Save file" | ||||
| button "FileDialog save_as" save_as.gif "Save file as" | ||||
| button "FileDialog save_all" save_all.gif "Save all" | ||||
| Separator | ||||
| button "CutPast undo" undo.gif "Undo" | ||||
| Separator | ||||
| button "CutPast cut" cut.gif "Cut into clipboard" | ||||
| button "CutPast copy" copy.gif "Copy into clipboard" | ||||
| button "CutPast paste" paste.gif "Paste from clipboard" | ||||
| Separator | ||||
| button "Find" find.gif "Find" | ||||
| button "SpellCheck $nb.f[$nb raise].f.text" spellcheck.gif "Spell check" | ||||
| Separator | ||||
| button "Convert dvi" dvi.gif "Make DVI" | ||||
| button "Preview dvi" dvi_preview.gif "View DVI" "Alt-F5" | ||||
| button "Convert ps" ps.gif "Make PS" | ||||
| button "Preview ps" ps_preview.gif "View PS" "Alt-F6" | ||||
| button "Convert pdf" pdf.gif "Convert to PDF" | ||||
| button "Preview pdf" pdf_preview.gif "View PDF" "Alt-F7" | ||||
| button "Convert html" htmlconvert.gif "Convert to HTML" | ||||
| button "Preview html" html_preview.gif "View HTML" | ||||
| Separator | ||||
| button "PrintDialog print" print.gif "Print ..." | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										106
									
								
								lib/gui/toolbar/math
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										106
									
								
								lib/gui/toolbar/math
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,106 @@ | ||||
| ######################################################## | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################## | ||||
| #              Mathematical ToolBar | ||||
| # Author: Constantin i Mikhailenko (Const) | ||||
| ######################################################## | ||||
|  | ||||
| menu math/equation.gif "Math mode" { | ||||
|     cmd "AddTextDouble begin{math} end{math}" "math" | ||||
|     cmd "AddTextMath ( )" "( ... )" | ||||
|     cmd "AddTextMath $ $" "$ ... $" | ||||
|     cmd separator     | ||||
|     cmd "AddTextDouble begin{displaymath}\n end{displaymath}" "displaymath" | ||||
|     cmd "AddTextMath \[ \]" "[ ... ]" | ||||
|     cmd "AddTextMath $$ $$" "$$ ... $$" | ||||
|     cmd separator     | ||||
|     cmd "AddTextDouble begin{equation}\n end{equation}" "equation" | ||||
|     cmd "AddTextDouble begin{eqarray}\n end{eqarray}" "eqarray" | ||||
| } | ||||
|  | ||||
| menu math/alpha-nu.gif "Greek 1" { | ||||
|     imagecmd "AddTextCommand alpha" "\alpha" math/alpha.gif | ||||
|     imagecmd "AddTextCommand beta" "\beta" math/beta.gif | ||||
|     imagecmd "AddTextCommand gamma" "\gamma" math/gamma.gif | ||||
|     imagecmd "AddTextCommand delta" "\delta" math/delta.gif | ||||
|     imagecmd "AddTextCommand zeta" "\zeta" math/zeta.gif | ||||
|     imagecmd "AddTextCommand epsilon" "\epsilon" math/epsilon.gif | ||||
|     imagecmd "AddTextCommand varepsilon" "\varepsilon" math/varepsilon.gif | ||||
|     imagecmd "AddTextCommand eta" "\eta" math/eta.gif | ||||
|     imagecmd "AddTextCommand theta" "\theta" math/theta.gif | ||||
|     imagecmd "AddTextCommand vartheta" "\vartheta" math/vartheta.gif | ||||
|     imagecmd "AddTextCommand iota" "\iota" math/iota.gif | ||||
|     imagecmd "AddTextCommand kappa" "\kappa" math/kappa.gif | ||||
|     imagecmd "AddTextCommand lambda" "\lambda" math/lambda.gif | ||||
|     imagecmd "AddTextCommand mu" "\mu" math/mu.gif | ||||
|     imagecmd "AddTextCommand nu" "\nu" math/nu.gif | ||||
| } | ||||
|  | ||||
| menu math/xi-omega.gif "Greek 2" { | ||||
|     imagecmd "AddTextCommand xi" "\xi" math/xi.gif | ||||
|     imagecmd "AddTextCommand tau" "\tau" math/tau.gif | ||||
|     imagecmd "AddTextCommand upsilon" "\upsilon" math/upsilon.gif | ||||
|     imagecmd "AddTextCommand pi" "\pi" math/pi.gif | ||||
|     imagecmd "AddTextCommand varpi" "\varpi" math/varpi.gif | ||||
|     imagecmd "AddTextCommand rho" "\rho" math/rho.gif | ||||
|     imagecmd "AddTextCommand varrho" "\varrho" math/varrho.gif | ||||
|     imagecmd "AddTextCommand sigma" "\sigma" math/sigma.gif | ||||
|     imagecmd "AddTextCommand varsigma" "\varsigma" math/varsigma.gif | ||||
|     imagecmd "AddTextCommand o" "o" math/omikron.gif | ||||
|     imagecmd "AddTextCommand \phi" "\phi" math/phi.gif | ||||
|     imagecmd "AddTextCommand varphi" "\varphi" math/varphi.gif | ||||
|     imagecmd "AddTextCommand chi" "\chi" math/chi.gif | ||||
|     imagecmd "AddTextCommand psi" "\psi" math/psi.gif | ||||
|     imagecmd "AddTextCommand omega" "\omega" math/omega.gif | ||||
| } | ||||
|  | ||||
| menu math/omega.gif "Greek" { | ||||
|     imagecmd "AddTextCommand Gamma" "\Gamma" math/gamma.gif | ||||
|     imagecmd "AddTextCommand Delta" "\Delta" math/delta.gif | ||||
|     imagecmd "AddTextCommand Theta" "\Theta" math/theta.gif | ||||
|     imagecmd "AddTextCommand Xi" "\Xi" math/xi.gif | ||||
|     imagecmd "AddTextCommand Upsilon" "\Upsilon" math/upsilon.gif | ||||
|     imagecmd "AddTextCommand Pi" "\Pi" math/pi.gif | ||||
|     imagecmd "AddTextCommand Sigma" "\sigma" math/sigma.gif | ||||
|     imagecmd "AddTextCommand Phi" "\Phi" math/phi.gif | ||||
|     imagecmd "AddTextCommand Psi" "\Psi" math/psi.gif | ||||
|     imagecmd "AddTextCommand Omega" "\omega" math/omega.gif | ||||
| } | ||||
|  | ||||
| menu math/accent.gif "Accents" { | ||||
|     imagecmd "AddTextFont hat" "\hat{}" math/hat.gif | ||||
|     imagecmd "AddTextFont check" "\check{}" math/check.gif | ||||
|     imagecmd "AddTextFont breve" "\breve{}" math/breve.gif | ||||
|     imagecmd "AddTextFont acute" "\acute{}" math/acute.gif | ||||
|     imagecmd "AddTextFont grave" "\grave{}" math/grave.gif | ||||
|     imagecmd "AddTextFont tilde" "\tilde{}" math/tilde.gif | ||||
|     imagecmd "AddTextFont bar" "\bar{}" math/bar.gif | ||||
|     imagecmd "AddTextFont vec" "\vec{}" math/vec.gif | ||||
|     imagecmd "AddTextFont dot" "\dot{}" math/dot.gif | ||||
|     imagecmd "AddTextFont ddot" "\ddot{}" math/ddot.gif | ||||
|     cmd separator | ||||
|     imagecmd "AddTextFont widehat" "\widehat{}" math/widehat.gif | ||||
|     imagecmd "AddTextFont widetilde" "\widetilde{}" math/widetilde.gif | ||||
| } | ||||
|  | ||||
| menu math/math_font.gif "Mathematical fonts" { | ||||
|     cmd "AddTextFont mathnormal" "Normal" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont mathrm" "Romanic" | ||||
|     cmd "AddTextFont mathbf" "Boldface" | ||||
|     cmd "AddTextFont mathsf" "SansSerif" | ||||
|     cmd "AddTextFont mathtt" "TypeWriter Typeset" | ||||
|     cmd "AddTextFont mathit" "Italic" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont mathcal" "Calligraphic" | ||||
|     cmd separator | ||||
|     cmd "AddTextFont boldmath" "BoldMath" | ||||
|     cmd "AddTextFont unboldmath" "UnboldMath" | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										53
									
								
								lib/modules/about.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										53
									
								
								lib/modules/about.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,53 @@ | ||||
| ######################################################## | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################## | ||||
|  | ||||
| ## ABOUT DIALOG ## | ||||
| proc AboutDialog {} { | ||||
|     global dir tree nb ver font release | ||||
|      | ||||
|     set w .about | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "About ..."] | ||||
|     #wm resizable $w 0 0 | ||||
|     wm transient $w . | ||||
|      | ||||
|     frame $w.frmImg -borderwidth 2 -relief ridge -background black | ||||
|     image create photo imgAbout -format gif -file [file join $dir(img) tle.gif] | ||||
|     image create photo imgConero -format gif -file [file join $dir(img) conero.gif] | ||||
|      | ||||
|     label $w.frmImg.lblImg -image imgAbout -background black | ||||
|      | ||||
|     pack $w.frmImg.lblImg -side top -fill x | ||||
|      | ||||
|     frame $w.frmlbl -borderwidth 2 -relief ridge -background "#8700d1" | ||||
|     label $w.frmlbl.lblVersion -text "[::msgcat::mc Version] $ver$release"\ | ||||
|     -background "#8700d1" -foreground black | ||||
|     label $w.frmlbl.lblAuthorName -text "[::msgcat::mc Authors]:"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|     label $w.frmlbl.lblAuthor1 -text "Sergey Kalinin (aka BanZaj), banzaj@lrn.ru"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|     label $w.frmlbl.lblAuthor2 -text "Constantin I Makhailenko (aka Const), const@mail.ru"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|      | ||||
|     pack $w.frmlbl.lblVersion $w.frmlbl.lblAuthorName $w.frmlbl.lblAuthor1 $w.frmlbl.lblAuthor2 -side top -padx 5 | ||||
|     pack $w.frmImg -side top -fill x | ||||
|     pack $w.frmlbl  -side top -expand true -fill both | ||||
|      | ||||
|     bind $w <Escape> "destroy .about" | ||||
|     bind $w <Return> "destroy .about" | ||||
|     # | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										234
									
								
								lib/modules/addtext.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										234
									
								
								lib/modules/addtext.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,234 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc AddText {action} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "" || $node == "debug"} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set types { | ||||
|         {"EPS" {.eps}} | ||||
|         {"PDF" {.pdf}} | ||||
|         {"PNG" {.png}} | ||||
|         {"JPG" {.jpg}} | ||||
|         {"GIF" {.gif}} | ||||
|     } | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]] | ||||
|         set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end] | ||||
|         set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]] | ||||
|         set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end] | ||||
|         set selText [$text get $posBegin $posEnd] | ||||
|     } else { | ||||
|         set posBegin "$curLine.$cursor" | ||||
|         set endLine [expr $curLine +1] | ||||
|         set endCur 0 | ||||
|     } | ||||
|     switch -- $action { | ||||
|         enumerate { | ||||
|             #insert - 1 chars wordstart" "insert wordend - 1 chars" | ||||
|             $text insert $posBegin "\\begin\{enumerate\}\n" | ||||
|             $text insert [expr $curLine +1].0 "\\item \n" | ||||
|             $text insert [expr $curLine +2].0 "\\end\{enumerate\}" | ||||
|             set t [$text get $posBegin $curLine.end] | ||||
|             set curPos "[expr $curLine + 1]\.end"             | ||||
|         } | ||||
|         image { | ||||
|             set file [tk_getOpenFile -initialdir $dir(doc) -filetypes $types -parent .\ | ||||
|             -title "[::msgcat::mc "Select image"]"] | ||||
|             #set fileName [file tail $file] | ||||
|             if {$file == ""} { | ||||
|                 return | ||||
|             } | ||||
|             $text insert $posBegin "\\includegraphics\[\]\{$file\}\n" | ||||
|             set t [$text get $posBegin $curLine.end] | ||||
|             set curPos "$curLine\.[string last "\\" $t]" | ||||
|         }     | ||||
|         itemize { | ||||
|             $text insert $posBegin "\\begin\{itemize\}\n" | ||||
|             $text insert [expr $curLine +1].0 "\\item \n" | ||||
|             $text insert [expr $curLine +2].0 "\\end\{itemize\}" | ||||
|             set t [$text get $posBegin $curLine.end] | ||||
|             set curPos "[expr $curLine +1]\.end" | ||||
|         } | ||||
|         item { | ||||
|             set editLine [$text get [expr $curLine - 1].0 $pos]                 | ||||
|             if [regexp -nocase -all -- {(\\item)} $editLine match v1] { | ||||
|                 $text insert $curLine.0 "\\item " | ||||
|                 set curPos "$curLine\.6" | ||||
|             } else { | ||||
|                 return | ||||
|             } | ||||
|         } | ||||
|         date { | ||||
|             set editLine [$text get [expr $curLine - 1].0 $pos] | ||||
|             set unixTime [exec date +%s] | ||||
|             set dateTime [clock format $unixTime -format "%d.%m.%Y, %H:%M:%S"] | ||||
|             $text insert $curLine.0 "$dateTime" | ||||
|             set curPos "$curLine\.end" | ||||
|         } | ||||
|     } | ||||
|     $text mark set insert $curPos | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
| ###################################################### | ||||
|  | ||||
| proc AddTextFont {action} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "" || $node == "debug"} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]] | ||||
|         set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end] | ||||
|         set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]] | ||||
|         set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end] | ||||
|         set selText [$text get $posBegin $posEnd] | ||||
|         $text insert $endLine.$endCur "\}" | ||||
|         $text insert $posBegin "\\$action\{" | ||||
|         set t [$text get $posBegin $curLine.end] | ||||
|         set curPos "$endLine\.end" | ||||
|         $text mark set insert $curPos | ||||
|     } else { | ||||
|         set posBegin "$curLine.$cursor" | ||||
|         set endLine [expr $curLine +0] | ||||
|         $text insert $posBegin "\\$action\{\}" | ||||
|         $text mark set insert "$endLine.end - 1 chars" | ||||
|     } | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
| proc AddTextCommand {action} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "" || $node == "debug"} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]] | ||||
|         set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end] | ||||
|         set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]] | ||||
|         set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end] | ||||
|         set selText [$text get $posBegin $posEnd] | ||||
|         $text insert $posBegin "\\$action " | ||||
|         set t [$text get $posBegin $curLine.end] | ||||
|         set curPos "$endLine\.end" | ||||
|         $text mark set insert $curPos | ||||
|     } else { | ||||
|         set posBegin "$curLine.$cursor" | ||||
|         set endLine [expr $curLine +0] | ||||
|         $text insert $posBegin "\\$action " | ||||
|         $text mark set insert "$endLine.end" | ||||
|     } | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
| proc AddTextDouble {beginText endText} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "" || $node == "debug"} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set selIndex [$text tag ranges sel] | ||||
|      | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]] | ||||
|         set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end] | ||||
|         set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]] | ||||
|         set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end] | ||||
|         set selText [$text get $posBegin $posEnd] | ||||
|         if {[string range $endText 0 1] == "\n"} { | ||||
|             $text insert $endLine.$endCur " \\$endText" | ||||
|         } else { | ||||
|             $text insert $endLine.$endCur "\n\\[string trim $endText "\n"]" | ||||
|         } | ||||
|         $text insert $posBegin "\\$beginText " | ||||
|     } else { | ||||
|         set posBegin "$curLine.$cursor" | ||||
|         if {[string range $endText 0 1] == "\n"} { | ||||
|             $text insert $posBegin "\\$beginText  \\$endText" | ||||
|         } else { | ||||
|             $text insert $posBegin "\\$beginText  \n\\[string trim $endText "\n"]" | ||||
|             puts "$beginText  $endText" | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     set ind [expr [string length $beginText] + 2] | ||||
|     set curPos "$posBegin + $ind chars" | ||||
|     $text mark set insert $curPos | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
| proc AddTextMath {beginText endText} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "" || $node == "debug"} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set selIndex [$text tag ranges sel] | ||||
|      | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set curLine [string range $posBegin 0 [expr [string first "\." $posBegin] - 1]] | ||||
|         set cursor [string range $posBegin [expr [string first "\." $posBegin] + 1] end] | ||||
|         set endLine [string range $posEnd 0 [expr [string first "\." $posEnd] - 1]] | ||||
|         set endCur [string range $posEnd [expr [string first "\." $posBegin] + 1] end] | ||||
|         set selText [$text get $posBegin $posEnd] | ||||
|         if {[string range $endText 0 1] == "\n"} { | ||||
|             $text insert $endLine.$endCur " $endText" | ||||
|         } else { | ||||
|             $text insert $endLine.$endCur "[string trim $endText "\n"]" | ||||
|         } | ||||
|         $text insert $posBegin "$beginText " | ||||
|     } else { | ||||
|         set posBegin "$curLine.$cursor" | ||||
|         if {[string range $endText 0 1] == "\n"} { | ||||
|             $text insert $posBegin "$beginText  \\$endText" | ||||
|         } else { | ||||
|             $text insert $posBegin "$beginText  [string trim $endText "\n"]" | ||||
|         } | ||||
|     } | ||||
|     set ind [expr [string length $beginText] + 2] | ||||
|     set curPos "$posBegin + $ind chars" | ||||
|     $text mark set insert $curPos | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										84
									
								
								lib/modules/baloon.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										84
									
								
								lib/modules/baloon.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| ####################################################################### | ||||
| #                        Baloon help | ||||
| #                Author: Alexander Dederer | ||||
| # Usage: | ||||
| #   Set balloon tips to widget: | ||||
| #     balloon $widget set "Hello World" | ||||
| #     balloon [button .exit -text "exit" -command exit] set "Hello world" | ||||
| # | ||||
| #   Clear ballon tips from widget: | ||||
| #     balloon $widget clear | ||||
| # | ||||
| #   Show balloon tips on widget: | ||||
| #     balloon $widget show "Hello World" | ||||
| ####################################################################### | ||||
|  | ||||
| proc balloon { widget action args } { | ||||
|     global BALLOON font | ||||
|      | ||||
|     switch -- $action { | ||||
|         set { | ||||
|             if { $args != {{}} } { | ||||
|                 balloon $widget clear | ||||
|                 #bind $widget <Any-Enter> "after 1000 [list balloon %W show $args mousepointer %X %Y]" | ||||
|                 #bind $widget <Any-Leave> "catch { destroy %W.balloon }" | ||||
|                 bind $widget <Enter> " balloon $widget show $args " | ||||
|                 bind $widget <Leave> " wm withdraw .bubble " | ||||
|             } | ||||
|         } | ||||
|         show { | ||||
|             if ![winfo exists .bubble] { | ||||
|                 toplevel .bubble -relief flat -background black -bd 1 | ||||
|                 wm withdraw .bubble | ||||
|                 update | ||||
|                 array set attrFont [font actual fixed] | ||||
|                 set attrFont(-size) [expr $attrFont(-size) - 2] | ||||
|                 eval pack [message .bubble.txt -aspect 5000 -bg lightyellow \ | ||||
|                 -font $font(normal) -text [lindex $args 0]] | ||||
|                 pack .bubble.txt | ||||
|                 wm transient .bubble . | ||||
|                 wm overrideredirect .bubble 1 | ||||
|                 bind .bubble <Enter> "wm withdraw .bubble" | ||||
|             } | ||||
|              | ||||
|             if {$args == ""} {  wm withdraw .bubble  } | ||||
|             set text [lindex $args 0] | ||||
|              | ||||
|             set BALLOON $text | ||||
|             switch $text { | ||||
|                 ""        {   wm withdraw .bubble ; update  } | ||||
|                 "default" { | ||||
|                     after 1000 "raise_balloon $widget {$text}" | ||||
|                     after 7000 "if { \$BALLOON == {$text} } { wm withdraw .bubble ; update }" | ||||
|                 } | ||||
|             } ;# switch | ||||
|         } | ||||
|         clear { | ||||
|             catch { destroy .balloon } | ||||
|             bind $widget <Enter> {} | ||||
|             bind $widget <Leave> {} | ||||
|         } | ||||
|     } ;# switch action | ||||
| } ;# proc balloon | ||||
|  | ||||
|  | ||||
| proc raise_balloon {widget text} { | ||||
|     global BALLOON | ||||
|      | ||||
|     if { $BALLOON != $text } {   wm withdraw .bubble ; update ; return  } | ||||
|     set cur_widget [winfo containing [winfo pointerx .] [winfo pointery .]] | ||||
|     if { $cur_widget != $widget } {  return  } | ||||
|      | ||||
|     raise .bubble | ||||
|     .bubble.txt configure -text $text | ||||
|     set b_x [expr [winfo pointerx .] - [winfo reqwidth .bubble]/2] | ||||
|     set b_y [expr [winfo pointery .] + 15] | ||||
|     wm geometry .bubble +$b_x+$b_y | ||||
|     wm deiconify .bubble | ||||
|     update | ||||
|   } ;# proc raise_balloon | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										163
									
								
								lib/modules/completition.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										163
									
								
								lib/modules/completition.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,163 @@ | ||||
| ########################################################### | ||||
| #                Tcl/Tk Project Manager                   # | ||||
| #                Distrubuted under GPL                    # | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru  # | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru       # | ||||
| ########################################################### | ||||
| #                AutoCompletition Procedure               # | ||||
| #                    Author Alex DEDERER                  # | ||||
| #      Modify by Sergey (BanZaj) Kalinin  23.05.2002      # | ||||
| ########################################################### | ||||
|  | ||||
| proc auto_completition { widget } { | ||||
|     set start_word [$widget get "insert - 1 chars wordstart" insert] | ||||
|     set box        [$widget bbox insert] | ||||
|     set box_x      [expr [lindex $box 0] + [winfo rootx $widget] ] | ||||
|     set box_y      [expr [lindex $box 1] + [winfo rooty $widget] + [lindex $box 3] ]  | ||||
|      | ||||
|     set cnt 0 | ||||
|     set pos "1.0" | ||||
|     set last_pos "" | ||||
|     set pattern "$start_word\\w*" | ||||
|      | ||||
|     set list_word($start_word) 1 | ||||
|     while { ([set start [$widget search -count cnt -regexp -- $pattern $pos end]] != "") } { | ||||
|         set word [$widget get $start "$start + $cnt chars"] | ||||
|         if { ![string equal $start_word $word] }  { set list_word($word) 1 } | ||||
|         set pos [$widget index "$pos + [expr $cnt + 1] chars"] | ||||
|         if { [string equal $last_pos $pos] } { break } | ||||
|         set last_pos $pos | ||||
|     } ;# while | ||||
|      | ||||
|     bindtags $widget [list CompletitionBind [winfo toplevel $widget] $widget Text sysAfter all] | ||||
|     bind CompletitionBind <Escape>  "bindtags $widget {[list [winfo toplevel $widget] $widget Text sysAfter all]}; catch { destroy .aCompletition }" | ||||
|     bind CompletitionBind <Key>     { auto_completition_key %W %K %A ; break} | ||||
|     eval auto_completition_win $box_x $box_y [array names list_word] | ||||
| } ;# proc auto_completition | ||||
|  | ||||
| ## PROCEDURE LIST        ## | ||||
| ## by BanZaj             ## | ||||
| proc AutoComplit {} { | ||||
|     global cmd activeFile nb | ||||
|     set node $activeFile | ||||
|     if {$node == ""} {return} | ||||
|     set widget "$nb.f$node.f.text" | ||||
|      | ||||
|     set start_word [$widget get "insert - 1 chars wordstart" insert] | ||||
|     set box        [$widget bbox insert] | ||||
|     set box_x      [expr [lindex $box 0] + [winfo rootx $widget] ] | ||||
|     set box_y      [expr [lindex $box 1] + [winfo rooty $widget] + [lindex $box 3] ]  | ||||
|      | ||||
|     set cnt 0 | ||||
|     set pos "1.0" | ||||
|     set last_pos "" | ||||
|     set pattern "$start_word\\w*" | ||||
|     set i 0 | ||||
|      | ||||
|     for {set j 0} {$j <= [llength $cmd(all)]} {incr j} { | ||||
|         set line [lindex $cmd(all) $j] | ||||
|         if [regexp -nocase -all -- {(\\)([a-zA-Z]*)(\{\})} $line word] { | ||||
|             set word [string trim $word "\\"] | ||||
|             if {[string match "$start_word*" $word]} { | ||||
|                 set list_word($word) $word | ||||
|                 incr i | ||||
|             }         | ||||
|         } | ||||
|         if {[string match "$start_word*" $line]} { | ||||
|             set list_word($line) $line | ||||
|             incr i | ||||
|         } | ||||
|     } | ||||
|     if {[array names list_word] == ""} { | ||||
|         return | ||||
|     } | ||||
|     bindtags $widget [list CompletitionBind [winfo toplevel $widget] $widget Text sysAfter all] | ||||
|     bind CompletitionBind <Escape>  "bindtags $widget {[list [winfo toplevel $widget] $widget Text sysAfter all]}; catch { destroy .aCompletition }" | ||||
|     bind CompletitionBind <Key> {auto_completition_key %W %K %A ; break} | ||||
|     eval auto_completition_win $box_x $box_y [array names list_word] | ||||
| } ;# proc auto_completition_proc | ||||
|  | ||||
|  | ||||
| proc auto_completition_win { x y args} { | ||||
|     set win .aCompletition | ||||
|     if { [winfo exists $win] }  { destroy $win } | ||||
|     toplevel $win | ||||
|     wm transient $win . | ||||
|     wm overrideredirect $win 1 | ||||
|      | ||||
|     listbox $win.lBox -width 30 -border 2 -yscrollcommand "$win.yscroll set" -border 1 | ||||
|     scrollbar $win.yscroll -orient vertical -command  "$win.lBox yview" -width 13 -border 1 | ||||
|     pack $win.lBox -expand true -fill y -side left | ||||
|     pack $win.yscroll -side left -expand false -fill y | ||||
|      | ||||
|     foreach { word } $args { | ||||
|         $win.lBox insert end $word | ||||
|     } ;# foreach | insert all word  | ||||
|      | ||||
|     catch { $win.lBox activate 0 ; $win.lBox selection set 0 0 } | ||||
|      | ||||
|     if { [set height [llength $args]] > 10 } { set height 10 } | ||||
|     $win.lBox configure -height $height | ||||
|      | ||||
|     bind $win      <Escape> " destroy $win " | ||||
|     bind $win.lBox <Escape> " destroy $win " | ||||
|      | ||||
|     wm geom $win +$x+$y | ||||
| } ;# auto_completition_win | ||||
|  | ||||
|  | ||||
|  | ||||
| proc auto_completition_key { widget K A } { | ||||
|     set win .aCompletition | ||||
|     set ind [$win.lBox curselection] | ||||
|      | ||||
|     switch -- $K { | ||||
|         Prior   { | ||||
|             set up   [expr [$win.lBox index active] - [$win.lBox cget -height]] | ||||
|             if { $up < 0 } { set up 0 } | ||||
|             $win.lBox activate $up | ||||
|             $win.lBox selection clear 0 end | ||||
|             $win.lBox selection set $up $up | ||||
|         } | ||||
|         Next    { | ||||
|             set down [expr [$win.lBox index active] + [$win.lBox cget -height]] | ||||
|             if { $down >= [$win.lBox index end] }  { set down end } | ||||
|             $win.lBox activate $down | ||||
|             $win.lBox selection clear 0 end | ||||
|             $win.lBox selection set $down $down | ||||
|         } | ||||
|         Up      { | ||||
|             set up   [expr [$win.lBox index active] - 1] | ||||
|             if { $up < 0 } { set up 0 } | ||||
|             $win.lBox activate $up | ||||
|             $win.lBox selection clear 0 end | ||||
|             $win.lBox selection set $up $up | ||||
|         } | ||||
|         Down    { | ||||
|             set down [expr [$win.lBox index active] + 1] | ||||
|             if { $down >= [$win.lBox index end] }  { set down end } | ||||
|             $win.lBox activate $down  | ||||
|             $win.lBox selection clear 0 end  | ||||
|             $win.lBox selection set $down $down  | ||||
|         } | ||||
|         Return  { | ||||
|             $widget delete "insert - 1 chars wordstart" "insert wordend - 1 chars" | ||||
|             $widget insert "insert" [$win.lBox get [$win.lBox curselection]] | ||||
|             #$widget mark set insert "insert wordend - 1 chars" | ||||
|             #$widget see insert | ||||
|             eval [bind CompletitionBind <Escape>] | ||||
|         } | ||||
|         default { | ||||
|             $widget insert "insert" $A | ||||
|             eval [bind CompletitionBind <Escape>]  | ||||
|         } | ||||
|     } | ||||
| } ;# proc auto_completition_key | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										252
									
								
								lib/modules/convert.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										252
									
								
								lib/modules/convert.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,252 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
|  | ||||
| proc Latex2Html {} { | ||||
|     global tree module cmdString | ||||
|     set selFiles [$tree selection get] | ||||
|     if {[llength $selFiles] == 0} { | ||||
|         set answer [tk_messageBox\ | ||||
|         -message "[::msgcat::mc "Don't selected file"]"\ | ||||
|         -type ok -icon warning\ | ||||
|         -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return 0} | ||||
|         } | ||||
|     } | ||||
|     if {[llength $selFiles] == 1} { | ||||
|         if {$selFiles != ""} { | ||||
|             set file [$tree itemcget $selFiles -data] | ||||
|         } | ||||
|         CommandStringDialog $file | ||||
|     } | ||||
|     #puts $command | ||||
| } | ||||
| proc ConvertDialog {action} { | ||||
|     global nb files font color cmdString module tcl_platform module convert_cmd activeFile act | ||||
|     set act $action | ||||
|     if [info exists activeFile] { | ||||
|         set nod $activeFile | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {[info exists files($nod)] == 0} { | ||||
|         return | ||||
|     } | ||||
|     set file [lindex $files($nod) 0]     | ||||
|      | ||||
|     set w .cmd | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|      | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Command options"] | ||||
|     wm resizable $w 0 0 | ||||
|     wm transient $w . | ||||
|     frame $w.frmCombo -borderwidth 1 -background $color(bg) | ||||
|     frame $w.frmBtn -borderwidth 1 -background $color(bg) | ||||
|     pack $w.frmCombo $w.frmBtn -side top -fill x | ||||
|      | ||||
|     #    set combo [entry $w.frmCombo.entFind] | ||||
|     label $w.frmCombo.lblModule -text "[::msgcat::mc "Convert to"] \"$action\"" -background $color(bg) | ||||
|     label $w.frmCombo.lblFile -text "[::msgcat::mc "File"] \"$file\"" -background $color(bg) | ||||
|     set combo [entry $w.frmCombo.txtString] | ||||
|      | ||||
|     pack $w.frmCombo.lblModule $w.frmCombo.lblFile $combo -fill x -padx 2 -pady 2 -side top | ||||
|      | ||||
|     button $w.frmBtn.btnFind -text [::msgcat::mc "Run"]\ | ||||
|     -font $font(normal) -width 12 -relief groove -background $color(bg)\ | ||||
|     -command { | ||||
|         set convert_cmd($act) [.cmd.frmCombo.txtString get] | ||||
|         Convert $act | ||||
|         destroy .cmd | ||||
|     } | ||||
|     button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"]\ | ||||
|     -relief groove -width 12 -font $font(normal) -background $color(bg)\ | ||||
|     -command "destroy $w" | ||||
|     pack $w.frmBtn.btnFind $w.frmBtn.btnCancel -fill x -padx 2 -pady 2 -side left | ||||
|      | ||||
|     bind $w <Return> { | ||||
|         set convert_cmd($act) [.cmd.frmCombo.txtString get] | ||||
|         Convert $act | ||||
|         destroy .cmd | ||||
|     } | ||||
|     bind $w <Escape> "destroy $w" | ||||
|     $combo insert end "$convert_cmd($action)" | ||||
|     focus -force $combo | ||||
|      | ||||
| } | ||||
|  | ||||
| proc Convert {action} { | ||||
|     global dir nb files font activeFile tcl_platform module convert_cmd makeThread tree | ||||
|     set curDir [pwd] | ||||
|     #set node [$nb raise] | ||||
|     if [info exists activeFile] { | ||||
|         set nod $activeFile | ||||
|         while {[set parentNode [$tree parent $nod]] != "root"} { | ||||
|             set nod $parentNode | ||||
|         }         | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {[info exists files($nod)] == 0} { | ||||
|         return | ||||
|     } | ||||
|     if {$module(convert_$action) == ""} { | ||||
|         set answer [tk_messageBox\ | ||||
|         -message "[::msgcat::mc "Don't find programm"] $convert_cmd($action)"\ | ||||
|         -type ok -icon warning\ | ||||
|         -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return 0} | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     set text "$nb.f$nod.f.text" | ||||
|     set fullPath [lindex $files($nod) 0]     | ||||
|     set folder [file dirname $fullPath] | ||||
|     set file [file tail $fullPath] | ||||
|     set ext [string trim [file extension $file] {.}] | ||||
|     set name [file rootname $file] | ||||
|      | ||||
|     ## | ||||
|     set node "debug" | ||||
|     if {[$nb index $node] != -1} { | ||||
|         $nb delete debug | ||||
|     } | ||||
|     set w [$nb insert end $node -text [::msgcat::mc "Running project"]] | ||||
|     # create array with file names # | ||||
|     set w [frame $w.f] | ||||
|     pack $w -side top -fill both -expand true | ||||
|      | ||||
|     frame $w.frame -borderwidth 2 -relief ridge | ||||
|     pack $w.frame -side top -fill both -expand true | ||||
|      | ||||
|      | ||||
|     text $w.frame.text -yscrollcommand "$w.frame.yscroll set" \ | ||||
|     -relief sunken -wrap word -highlightthickness 0 -font $font(normal)\ | ||||
|     -selectborderwidth 0 -selectbackground #55c4d1 -width 10 -height 10 | ||||
|     scrollbar $w.frame.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \ | ||||
|     -command "$w.frame.text yview" | ||||
|      | ||||
|     pack $w.frame.text -side left -fill both -expand true | ||||
|     pack $w.frame.yscroll -side left -fill y | ||||
|      | ||||
|     ## READLINE WIDGET ## | ||||
|     frame $w.frmReadline -borderwidth 2 -relief ridge -height 5 | ||||
|     pack $w.frmReadline -side top -fill x | ||||
|     text $w.frmReadline.text2 -yscrollcommand "$w.frmReadline.yscroll2 set" \ | ||||
|     -relief sunken -wrap word -highlightthickness 0 -font $font(normal)\ | ||||
|     -selectborderwidth 0 -selectbackground #55c4d1 -width 10 -height 5 | ||||
|     scrollbar $w.frmReadline.yscroll2 -relief sunken -borderwidth {1} -width {10} -takefocus 0 \ | ||||
|     -command "$w.frmReadline.text2 yview" | ||||
|     pack $w.frmReadline.text2 -side left -fill both -expand true | ||||
|     pack $w.frmReadline.yscroll2 -side left -fill y | ||||
|      | ||||
|     bind $w.frmReadline.text2 <Return> ReadLine | ||||
|      | ||||
|     balloon $w.frmReadline.text2 set [::msgcat::mc "Enter LaTeX command here and push Enter"] | ||||
|      | ||||
|     pane::create $w.frame $w.frmReadline -orient horizontal -percent 0.9 | ||||
|      | ||||
|      | ||||
|     # key bindings # | ||||
|      | ||||
|     $nb raise $node | ||||
|     #insert debug data into text widget # | ||||
|     set pos [$w.frame.text index insert] | ||||
|     set lineNum [lindex [split $pos "."] 0] | ||||
|     $w.frame.text insert end "[::msgcat::mc "Work with file"] $fullPath\n" | ||||
|      | ||||
|     if {[catch {cd $folder}] != 0} {return ""} | ||||
|     FileDialog save | ||||
|     set cmdString $convert_cmd($action) | ||||
|     if [regexp -nocase "%dirName" $convert_cmd($action) v] { | ||||
|         regsub -all -- {%dirName} $cmdString $folder cmdString | ||||
|         puts "$cmdString" | ||||
|     } | ||||
|     if [regexp -nocase "%fileName" $convert_cmd($action) v] { | ||||
|         regsub -all -- {%fileName} $cmdString $name cmdString | ||||
|         puts "$cmdString" | ||||
|     } else { | ||||
|         set cmdString "$convert_cmd($action) $fullPath" | ||||
|     } | ||||
|     puts "$cmdString" | ||||
|     $w.frame.text insert end "[::msgcat::mc "Make"] $action [::msgcat::mc "file"]\n" | ||||
|     $w.frame.text insert end "$cmdString\n\n" | ||||
|      | ||||
|     set pipe [open "|$cmdString" "w+"] | ||||
|     set makeThread $pipe | ||||
|      | ||||
|     $w.frame.text insert end "----------------- [::msgcat::mc "Programm output"] -----------------\n" | ||||
|     $w.frame.text tag add bold $lineNum.0 $lineNum.end | ||||
|      | ||||
|     focus -force $w.frmReadline.text2 | ||||
|      | ||||
|     fileevent $pipe readable [list DebugInfo $w.frame.text $pipe $folder] | ||||
|     fconfigure $pipe -buffering none -blocking no | ||||
|     catch {cd $curDir} | ||||
| } | ||||
|  | ||||
| proc ReadLine {} { | ||||
|     global makeThread | ||||
|     set pos [.frmBody.frmEditor.noteBook.fdebug.f.frmReadline.text2 index insert] | ||||
|     set lineNumber [lindex [split $pos "."] 0] | ||||
|     set cmd  [.frmBody.frmEditor.noteBook.fdebug.f.frmReadline.text2 get $lineNumber.0 $lineNumber.end] | ||||
|     puts $cmd | ||||
|     fileevent $makeThread writable | ||||
|     if [info exists makeThread] { | ||||
|         puts $makeThread "$cmd" | ||||
|     } | ||||
|      | ||||
| } | ||||
|  | ||||
| proc ConvertImage {file} { | ||||
|     global dir convert_cmd render activeFile files nb thumb | ||||
|     set file [string trimleft [string trimright $file "\}"] "\{"] | ||||
|     set inFormat [GetExtention $file] | ||||
|     set name [file rootname  [file tail $file]] | ||||
|     set imgFile "$name.$thumb(format)" | ||||
|     puts "$file\t$imgFile" | ||||
|     set _dir [file join [file dirname $file] .thumb] | ||||
|      | ||||
|     if {[file exists $_dir] == 0} { file mkdir $_dir } | ||||
|     if [file exists [file join $_dir $imgFile]] { | ||||
|         puts "File exists [file join $_dir $imgFile]" | ||||
|         return "[file join $_dir $imgFile]" | ||||
|     } else { | ||||
|         puts "$convert_cmd(img) +adjoin +antialias -quality 10 -transparent $render(bg) -density $render(res) $file $_dir/$imgFile" | ||||
|     } | ||||
|      | ||||
|     #set file [file tail $file] | ||||
|     if {$render(trans) == 1} { | ||||
|         if {$render(aa) == 1} { | ||||
|             catch [exec $convert_cmd(img) +adjoin -antialias -quality 10 -transparent $render(bg) -scale $thumb(resolution) $file [file join $_dir $imgFile]] err | ||||
|         } else { | ||||
|             catch [exec $convert_cmd(img) +adjoin +antialias -quality 10 -transparent $render(bg) -scale $thumb(resolution) $file [file join $_dir $imgFile]] err | ||||
|         } | ||||
|     } else { | ||||
|         if {$render(aa) == 1} { | ||||
|             catch [exec $convert_cmd(img) +adjoin -antialias -quality 10 -scale $thumb(resolution) $file [file join $_dir $imgFile]] err | ||||
|         } else { | ||||
|             catch [exec $convert_cmd(img) +adjoin +antialias -quality 10 -scale $thumb(resolution) $file [file join $_dir $imgFile]] err | ||||
|         } | ||||
|     } | ||||
|     if {$err != ""} { | ||||
|         set answer [tk_messageBox -message "$err"\ | ||||
|         -type ok -icon warning -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return} | ||||
|         }         | ||||
|         puts $err | ||||
|     } | ||||
|     return "[file join $_dir $imgFile]" | ||||
| } | ||||
|  | ||||
|  | ||||
							
								
								
									
										674
									
								
								lib/modules/editor.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										674
									
								
								lib/modules/editor.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,674 @@ | ||||
| ######################################################### | ||||
| #                TkTeXeditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru | ||||
| ######################################################### | ||||
|  | ||||
|  | ||||
| ## FILE EDITOR WINDOW ## | ||||
| proc EditFile {file} { | ||||
|     global dir font tree nb files color files index status activeFile treeStruct ver | ||||
|     global editor backup status replace sysenc release | ||||
|     wm title . "TkLaTeXEditor $ver$release - $file" | ||||
|      | ||||
|     if {[file exists $file] == 0} { | ||||
|         set answer [tk_messageBox -message "$f [::msgcat::mc "File not found"]"\ | ||||
|         -type ok -icon warning -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return} | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     set fileName [file tail $file] | ||||
|     set fileDir [file dirname $file] | ||||
|     set dir(current) $fileDir | ||||
|     puts "============ $fileName $fileDir" | ||||
|     set node [InsertTreeNode $fileName $fileDir] | ||||
|     #set node [NodeInsert $fileName $fileDir ""] | ||||
|     set activeFile $node | ||||
|     set replace 0 ;# for Overwrite procedure# execute external editor # | ||||
|     if {$editor(extern)=="Yes"} { | ||||
|         set pipe [open "|$editor(prog) $file" "r"] | ||||
|         fileevent $pipe readable | ||||
|         fconfigure $pipe -buffering none -blocking no         | ||||
|         return | ||||
|     } | ||||
|     ## check active file and if them don't exists return 0 | ||||
|     if {[info exists files($node)] != 1} { | ||||
|         set files($node) [list $file 0] | ||||
|         set w [$nb insert end $node -text "$fileName"] | ||||
|     } else { | ||||
|         # puts "$file - already opened" | ||||
|         return | ||||
|     } | ||||
|     ## update statusbar info | ||||
|     $status(fileAttr) configure -text "[FileAttr $file]" | ||||
|     $status(fileSize) configure -text "[file size $file] b." | ||||
|     $status(encode) configure -text "[lindex $files($node) 2]" | ||||
|      | ||||
|     ## create frames and text widget # | ||||
|     frame $w.f -borderwidth 2 -relief ridge | ||||
|     pack $w.f -side top -fill both -expand true | ||||
|      | ||||
|     #supertext::text | ||||
|     supertext::text $w.f.text -yscrollcommand "$w.f.yscroll set" \ | ||||
|     -relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\ | ||||
|     -background $color(editBg) -foreground $color(editFg)\ | ||||
|     -selectborderwidth 0 -selectbackground $color(selectbg) -width 10 | ||||
|     # lines numbering | ||||
|      | ||||
|     #set txtLineNumber [text $w.f.text_lines -yscrollcommand "$w.f.yscroll set" \ | ||||
|     #-relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\ | ||||
|     #-background $color(lineNumberBg) -foreground $color(lineNumberFg)\ | ||||
|     #-selectborderwidth 0 -selectbackground $color(selectbg) -width 5] | ||||
|      | ||||
|     scrollbar $w.f.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \ | ||||
|     -command "$w.f.text yview" | ||||
|      | ||||
|     #pack $w.f.text_lines -side left -fill y | ||||
|     pack $w.f.text -side left -fill both -expand true | ||||
|     pack $w.f.yscroll -side left -fill y | ||||
|      | ||||
|     $nb raise $node | ||||
|     ## loadig tags for highlight procedure | ||||
|     LoadTag $w.f.text | ||||
|     #puts $w.f.text | ||||
|     ## BACKUP FILE CREATED ## | ||||
|     if {$backup(create) == "Yes"} { | ||||
|         file copy -force -- $file [file join $dir(tmp) $fileName~] | ||||
|     } | ||||
|     ## OPENED FILE ## | ||||
|     set fHandle [open "$file" r] | ||||
|     set sourceEnc [DocRecode $fHandle] | ||||
|     if {$sourceEnc == ""} { | ||||
|         set sourceEnc [encoding system] | ||||
|     } | ||||
|     lappend files($node) "$sourceEnc" ;# added encoding information | ||||
|     $status(encode) configure -text "[lindex $files($node) 2]" | ||||
|      | ||||
|     set lineNumber 1 | ||||
|     $treeStruct delete [$treeStruct nodes root] ;# delete all info about old structure | ||||
|     while {[gets $fHandle line]>=0} { | ||||
|         set line [encoding convertfrom $sourceEnc $line] | ||||
|         $w.f.text insert end "[string trimright $line]\n" | ||||
|         InsertStruct $node $line $lineNumber $fileDir | ||||
|         HighLightTEX $w.f.text $line $lineNumber $node | ||||
|         #$txtLineNumber insert end "$lineNumber\n" | ||||
|         incr lineNumber | ||||
|     } | ||||
|     close $fHandle | ||||
|     # key bindings # | ||||
|     set text $w.f.text | ||||
|     bind $text <Control-G> GoToLine | ||||
|     bind $text <Control-g> GoToLine | ||||
|     bind $text <Control-F> Find | ||||
|     bind $text <Control-f> Find | ||||
|     #bind $text <F2> SplitWindow | ||||
|     #bind $text <F6> {ConvertDialog ps} | ||||
|     #bind $text <F7> {ConvertDialog pdf} | ||||
|      | ||||
|     bind $text <Control-R> ReplaceDialog | ||||
|     bind $text <Control-r> ReplaceDialog | ||||
|     #bind $text <F4> {ReplaceCommand $w.frame.text 1} | ||||
|     bind $text <Control-S> {FileDialog save} | ||||
|     bind $text <Control-s> {FileDialog save} | ||||
|     bind $text <Control-A> {FileDialog save_as} | ||||
|     bind $text <Control-a> {FileDialog save_as} | ||||
|     bind $text <Control-W> {FileDialog close} | ||||
|     bind $text <Control-w> {FileDialog close} | ||||
|     bind $text <Control-X> "tk_textCut $w.f.text;break" | ||||
|     bind $text <Control-x> "tk_textCut $w.f.text;break" | ||||
|     bind $text <Control-C> "tk_textCopy $w.f.text;break" | ||||
|     bind $text <Control-c> "tk_textCopy $w.f.text;break" | ||||
|     bind $text <Control-V> "tk_textPaste $w.f.text;break" | ||||
|     bind $text <Control-v> "tk_textPaste $w.f.text;break" | ||||
|     bind $text <Control-q> exit | ||||
|     bind $text <Control-Q> exit | ||||
|     bind $text <Control-z> "$text undo" | ||||
|     bind $text <Control-Z> "$text undo" | ||||
|     bind $text <Alt-c> AutoComplit  | ||||
|     bind $text <Alt-C> AutoComplit  | ||||
|     bind $text <Alt-f> "GenerateFormula math" | ||||
|     bind $text <Alt-F> "GenerateFormula math" | ||||
|     bind $text <Alt-t> "GenerateFormula text" | ||||
|     bind $text <Alt-T> "GenerateFormula text" | ||||
|     bind $text <ButtonRelease-1> {$status(pos) configure -text [%W index insert]} | ||||
|     bind $text <Insert> {OverWrite} | ||||
|     bind $text <Button-3> {catch [PopupMenu %W %X %Y]} | ||||
|     bind $text <KeyRelease-Return> { | ||||
|         AddText item | ||||
|         set pos [%W index insert] | ||||
|         set line [lindex [split $pos "."] 0] | ||||
|         set editLine [%W get $line.0 $pos] | ||||
|         HighLightTEX %W $editLine $line [$nb raise] | ||||
|         set node [$nb raise] | ||||
|         if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1} | ||||
|         if {[lindex $files($node) 1] == 0} { | ||||
|             set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]] | ||||
|             $status(active) configure -text [::msgcat::mc "File modify"] | ||||
|             $nb itemconfigure $node -foreground $color(editTitleModify) | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     bind $text <KeyRelease> { | ||||
|         set node [$nb raise] | ||||
|         if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1} | ||||
|         set text "$nb.f$node.f.text" | ||||
|         set pos [$text index insert] | ||||
|         set line [lindex [split $pos "."] 0] | ||||
|         set symbol [lindex [split $pos "."] 1] | ||||
|         set editLine [$text get $line.0 $pos] | ||||
|         HighLightTEX $text $editLine $line $node | ||||
|         $status(pos) configure -text [$text index insert];# cursor position | ||||
|         if {$symbol >= $editor(strLen)} { | ||||
|             if {[Key %k] == "true"} { | ||||
|                  | ||||
|                 if {$editor(strWrap) == "Yes"} { | ||||
|                     #$text insert $line.end "\n" | ||||
|                     set p [$text search -backward -regexp -- {\s} $pos $line.0] | ||||
|                     if {$p !=""} { | ||||
|                         $text insert "$p + 1 chars" "\n" | ||||
|                     } | ||||
|                 } | ||||
|             }             | ||||
|         } | ||||
|         if {[Key %k] == "true"} { | ||||
|             if {[lindex $files($node) 1] == 0} { | ||||
|                 set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]] | ||||
|                 $status(active) configure -text [::msgcat::mc "File modify"] | ||||
|                 $nb itemconfigure $node -foreground $color(editTitleModify) | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     bind $text <KeyPress> { | ||||
|         if {[Key %k] == "true"} { | ||||
|             ReplaceChar %W | ||||
|         } | ||||
|         set node [$nb raise] | ||||
|         if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1} | ||||
|         set text "$nb.f$node.f.text" | ||||
|         set pos [$text index insert] | ||||
|         set line [lindex [split $pos "."] 0] | ||||
|         set symbol [lindex [split $pos "."] 1] | ||||
|         set editLine [$text get $line.0 $pos] | ||||
|         HighLightTEX $text $editLine $line $node | ||||
|         $status(pos) configure -text [$text index insert];# cursor position | ||||
|         if {$symbol >= $editor(strLen)} { | ||||
|             if {[Key %k] == "true"} { | ||||
|                 if {$editor(strWrap) == "Yes"} { | ||||
|                     #$text insert $line.end "\n" | ||||
|                     set p [$text search -backward -regexp -- {\s} $pos $line.0] | ||||
|                     if {$p !=""} { | ||||
|                         $text insert "$p + 1 chars" "\n" | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     bind $text <KeyPress-space> { | ||||
|         if {[Key %k] == "true"} { | ||||
|             ReplaceChar %W | ||||
|         }     | ||||
|     } | ||||
|     bind $text <KeyRelease-space> { | ||||
|         set node [$nb raise] | ||||
|         if {$node == "" || $node == "debug" || $node == "settings" || $node == "about"} {return 1} | ||||
|         if {[lindex $files($node) 1] == 0} { | ||||
|             set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]] | ||||
|             $status(active) configure -text [::msgcat::mc "File modify"] | ||||
|             $nb itemconfigure $node -foreground $color(editTitleModify) | ||||
|         } | ||||
|     }     | ||||
|     bind $text <Control-u> { | ||||
|         set i -1 | ||||
|         switch -- [%W get "insert - 1 chars"] { | ||||
|             \{ {set i [_searchCloseBracket %W \{ \} insert end]} | ||||
|             \[ {set i [_searchCloseBracket %W \[ \] insert end]} | ||||
|             (  {set i [_searchCloseBracket %W  (  ) insert end]} | ||||
|             \} {set i [_searchOpenBracket  %W \{ \} insert 1.0]} | ||||
|             \] {set i [_searchOpenBracket  %W \[ \] insert 1.0]} | ||||
|             )  {set i [_searchOpenBracket  %W  (  ) insert 1.0]} | ||||
|         } ;# switch | ||||
|         if { $i != -1 } { | ||||
|             %W mark set insert $i | ||||
|             %W see insert | ||||
|         } | ||||
|     } ;# bind | ||||
|     bindtags $text [list [winfo toplevel $text] $text Text sysAfter all] | ||||
|     bind sysAfter <Any-Key> {+ set i -1 | ||||
|     catch { | ||||
|         switch -- [%W get "insert - 1 chars"] { | ||||
|             \{ {set i [_searchCloseBracket %W \{ \} insert end]} | ||||
|             \[ {set i [_searchCloseBracket %W \[ \] insert end]} | ||||
|             ( {set i [_searchCloseBracket %W (   ) insert end]} | ||||
|             \} {set i [_searchOpenBracket  %W \{ \} insert 1.0]} | ||||
|             \] {set i [_searchOpenBracket  %W \[ \] insert 1.0]} | ||||
|             ) {set i [_searchOpenBracket  %W  (  ) insert 1.0]} | ||||
|         } ;# switch | ||||
|         catch { %W tag remove lightBracket 1.0 end } | ||||
|         if { $i != -1 } {%W tag add lightBracket "$i - 1 chars" $i} | ||||
|     } | ||||
| } ;# bind sysAfter | ||||
|  | ||||
| bind sysAfter <Button-1> [bind sysAfter <Any-Key>] | ||||
| focus -force $w.f.text | ||||
|  | ||||
| Timer $file "refresh" | ||||
| if {$backup(autosave) == "Yes"} { | ||||
|     Timer $file "autosave" | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| };# proc EditFile | ||||
|  | ||||
| proc _searchCloseBracket { widget o_bracket c_bracket start_pos end_pos } { | ||||
|     set o_count 1 | ||||
|     set c_count 0 | ||||
|     set found 0 | ||||
|     set pattern "\[\\$o_bracket\\$c_bracket\]" | ||||
|     set pos [$widget search -regexp -- $pattern $start_pos $end_pos] | ||||
|     while { ! [string equal $pos {}] } { | ||||
|         set char [$widget get $pos] | ||||
|         #tk_messageBox -title $pattern -message "char: $char; $pos; o_count=$o_count; c_count=$c_count" | ||||
|         if {[string equal $char $o_bracket]} {incr o_count ; set found 1} | ||||
|         if {[string equal $char $c_bracket]} {incr c_count ; set found 1} | ||||
|         if {($found == 1) && ($o_count == $c_count) } { return [$widget index "$pos + 1 chars"] } | ||||
|         set found 0 | ||||
|         set start_pos "$pos + 1 chars" | ||||
|         set pos [$widget search -regexp -- $pattern $start_pos $end_pos] | ||||
|     } ;# while search | ||||
|     return -1 | ||||
| } ;# proc _searchCloseBracket | ||||
|  | ||||
| # DEDERER | ||||
| ## Search open bracket in editor widget | ||||
| proc _searchOpenBracket { widget o_bracket c_bracket start_pos end_pos } { | ||||
|     set o_count 0 | ||||
|     set c_count 1 | ||||
|     set found 0 | ||||
|     set pattern "\[\\$o_bracket\\$c_bracket\]" | ||||
|     set pos [$widget search -backward -regexp -- $pattern "$start_pos - 1 chars" $end_pos] | ||||
|     while { ! [string equal $pos {}] } { | ||||
|         set char [$widget get $pos] | ||||
|         #tk_messageBox -title $pattern -message "char: $char; $pos; o_count=$o_count; c_count=$c_count" | ||||
|         if {[string equal $char $o_bracket]} {incr o_count ; set found 1} | ||||
|         if {[string equal $char $c_bracket]} {incr c_count ; set found 1} | ||||
|         if {($found == 1) && ($o_count == $c_count) } { return [$widget index "$pos + 1 chars"] } | ||||
|         set found 0 | ||||
|         set start_pos "$pos - 0 chars" | ||||
|         set pos [$widget search -backward -regexp -- $pattern $start_pos $end_pos] | ||||
|     } ;# while search | ||||
|     return -1 | ||||
| } ;# proc _searchOpenBracket | ||||
|  | ||||
| proc GoToLine {} { | ||||
|     global nb files font color | ||||
|     set node [$nb raise] | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     set file $files($node) | ||||
|     set w $nb.f$node.goto | ||||
|     set text "$nb.f$node.f.text" | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     # create the new "goto" window | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Goto line"] | ||||
|     wm resizable $w 0 0 | ||||
|     wm transient $w $nb.f$node | ||||
|      | ||||
|     label $w.text -text [::msgcat::mc "Line number"] -font $font(normal) -background $color(bg) | ||||
|     entry $w.entGoTo -width 6 -validate key -validatecommand "ValidNumber %W %P" | ||||
|     pack $w.text $w.entGoTo -side left -anchor nw  -padx 2 -pady 2 | ||||
|     set line [$w.entGoTo get] | ||||
|     bind $w.entGoTo <Return> "+GoToLineNumber $text $nb.f$node" | ||||
|      | ||||
|     bind $w.entGoTo <Escape> "destroy $w" | ||||
|     focus -force $w.entGoTo | ||||
| } | ||||
| ## Check input number ## | ||||
| proc ValidNumber {w value} { | ||||
|     if [string is integer $value] { | ||||
|         return 1 | ||||
|     } else { | ||||
|         bell | ||||
|         return 0 | ||||
|     } | ||||
| } | ||||
| ## GOTO LINE ## | ||||
| proc GoToLineNumber {text w} { | ||||
|     global status | ||||
|     set lineNumber [$w.goto.entGoTo get] | ||||
|     destroy $w.goto | ||||
|     catch { | ||||
|         $text mark set insert $lineNumber.0 | ||||
|         $text see insert | ||||
|     } | ||||
|     $status(pos) configure -text [$text index insert];# cursor position | ||||
| } | ||||
|  | ||||
| ## SEARCH DIALOG FORM ## | ||||
| set findHistory "" | ||||
| set findString "" | ||||
| set replaceString "" | ||||
| proc Find {} { | ||||
|     global nb files font findHistory findString color | ||||
|      | ||||
|     set node [$nb raise] | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     set file $files($node) | ||||
|     set w $nb.f$node.find | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set findString "" | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|      | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Find"] | ||||
|     wm resizable $w 0 0 | ||||
|     wm transient $w $nb.f$node | ||||
|     frame $w.frmCombo -borderwidth 1 -background $color(bg) | ||||
|     frame $w.frmBtn -borderwidth 1 -background $color(bg) | ||||
|     pack $w.frmCombo $w.frmBtn -side top -fill x | ||||
|      | ||||
|     #    set combo [entry $w.frmCombo.entFind] | ||||
|     set combo [ComboBox $w.frmCombo.txtLocale\ | ||||
|     -textvariable findString  -background $color(bg)\ | ||||
|     -selectbackground "#55c4d1" -selectborderwidth 0\ | ||||
|     -values $findHistory] | ||||
|      | ||||
|     pack $combo -fill x -padx 2 -pady 2 | ||||
|      | ||||
|     button $w.frmBtn.btnFind -text "[::msgcat::mc "Find"] - F3"\ | ||||
|     -font $font(normal) -width 12 -relief groove -background $color(bg)\ | ||||
|     -command "FindCommand $text $w" | ||||
|     button $w.frmBtn.btnCancel -text "[::msgcat::mc "Close"] - Esc"\ | ||||
|     -relief groove -width 12 -font $font(normal) -background $color(bg)\ | ||||
|     -command "destroy $w" | ||||
|     pack $w.frmBtn.btnFind $w.frmBtn.btnCancel -fill x -padx 2 -pady 2 -side left | ||||
|      | ||||
|     bind $w <Return> "FindCommand  $text $w" | ||||
|     bind $w <F3> "FindCommand  $text $w" | ||||
|     bind $w <Escape> "destroy $w" | ||||
|     focus -force $combo | ||||
|      | ||||
|     #    set findIndex [lsearch -exact $findHistory "$findString"] | ||||
|     $combo setvalue @0 | ||||
| } | ||||
|  | ||||
| proc FindCommand {text w} { | ||||
|     global findString findHistory | ||||
|     #    set findString [$entry get] | ||||
|     destroy $w | ||||
|     # if null string? do nothing | ||||
|     if {$findString == ""} { | ||||
|         return | ||||
|     } | ||||
|     # search "again" (starting from current position) | ||||
|     FindNext $text 0 | ||||
| } | ||||
|  | ||||
| proc FindNext {text {incr 1}} { | ||||
|     global findString findHistory | ||||
|     set t $text | ||||
|     # append find string into find history list # | ||||
|     if {[lsearch -exact $findHistory $findString] == -1} { | ||||
|         set findHistory [linsert $findHistory 0 $findString] | ||||
|     } | ||||
|      | ||||
|     set pos [$t index insert] | ||||
|     set line [lindex [split $pos "."] 0] | ||||
|     set x [lindex [split $pos "."] 1] | ||||
|     incr x $incr  | ||||
|      | ||||
|     set pos [$t search -nocase $findString $line.$x end] | ||||
|      | ||||
|     # if found then move the insert cursor to that position, otherwise beep | ||||
|     if {$pos != ""} { | ||||
|         $t mark set insert $pos | ||||
|         $t see $pos | ||||
|          | ||||
|         # highlight the found word | ||||
|         set line [lindex [split $pos "."] 0] | ||||
|         set x [lindex [split $pos "."] 1] | ||||
|         set x [expr {$x + [string length $findString]}] | ||||
|         $t tag remove sel 1.0 end | ||||
|         $t tag add sel $pos $line.$x | ||||
|         focus -force $t | ||||
|         return 1 | ||||
|     } else { | ||||
|         bell | ||||
|         return 0 | ||||
|     } | ||||
|     catch [$status(pos) configure -text [%W index insert]] ;# cursor position | ||||
|      | ||||
| } | ||||
| ## FIND FUNCTION PROCEDURE ## | ||||
| proc FindProc {text findString node} { | ||||
|     global nb status | ||||
|      | ||||
|     set pos "0.0" | ||||
|     $text see $pos | ||||
|     set line [lindex [split $pos "."] 0] | ||||
|     set x [lindex [split $pos "."] 1] | ||||
|      | ||||
|     set pos [$text search -nocase $findString $line.$x end] | ||||
|     $text mark set insert $pos | ||||
|     $text see $pos | ||||
|      | ||||
|     # highlight the found word | ||||
|     set line [lindex [split $pos "."] 0] | ||||
|     set x [lindex [split $pos "."] 1] | ||||
|     set x [expr {$x + [string length $findString]}] | ||||
|     $text tag remove sel 1.0 end | ||||
|     $text tag add sel $pos $line.$x | ||||
|     focus -force $text | ||||
|     catch [$status(pos) configure -text [$text index insert]] ;# cursor position | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| #3 REPLACE DIALOG FORM ## | ||||
| proc ReplaceDialog {} { | ||||
|     global nb font files findString replaceString text color | ||||
|     set node [$nb raise] | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     #set file $files($node) | ||||
|     set w .replace | ||||
|     set text "$nb.f$node.f.text" | ||||
|     #    set findString "" | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|      | ||||
|     # create the new "find" window | ||||
|     toplevel $w | ||||
|     wm transient $w $nb.f$node | ||||
|     wm title $w [::msgcat::mc "Replace"] | ||||
|     wm resizable $w 0 0 | ||||
|      | ||||
|     set f1 [frame $w.frmFind -background $color(bg)] | ||||
|     set f2 [frame $w.frmReplace -background $color(bg)] | ||||
|     set f3 [frame $w.frmBtn -borderwidth 1 -background $color(bg)] | ||||
|     pack $f1 $f2 $f3 -side top -fill x -expand true | ||||
|      | ||||
|     label $f1.lblFind -text [::msgcat::mc "Find"] -font $font(normal) -width 15 -anchor w -background $color(bg) | ||||
|     entry $f1.entFind -width 30 | ||||
|     pack $f1.lblFind $f1.entFind -side left -padx 2 -pady 2 | ||||
|     pack $f1.entFind -side left -fill x -expand true  -padx 2 -pady 2 | ||||
|      | ||||
|     label $f2.lblReplace -text [::msgcat::mc "Replace with"] -font $font(normal) -width 15 -anchor w -background $color(bg) | ||||
|     entry $f2.entReplace -width 30 | ||||
|     pack $f2.lblReplace $f2.entReplace -side left -padx 2 -pady 2 | ||||
|     pack $f2.entReplace -side left -fill x -expand true -padx 2 -pady 2 | ||||
|      | ||||
|     button $f3.btnFind -text "[::msgcat::mc "Find"] - Enter" -width 12 -pady 0 -font $font(normal) -relief groove -background $color(bg)\ | ||||
|     -command "ReplaceCommand $text $w $f1.entFind $f2.entReplace find" | ||||
|     button $f3.btnReplace -text "[::msgcat::mc "Replace"] - F4" -width 12 -pady 0\ | ||||
|     -font $font(normal) -relief groove -background $color(bg)\ | ||||
|     -command { | ||||
|         ReplaceCommand $text $w  .replace.frmFind.entFind .replace.frmReplace.entReplace replace | ||||
|         focus -force .replace | ||||
|     } | ||||
|     button $f3.btnReplaceAll -text [::msgcat::mc "Replace all"] -width 12 -pady 0\ | ||||
|     -font $font(normal) -relief groove -background $color(bg)\ | ||||
|     -command "ReplaceCommand $text $w $f1.entFind $f2.entReplace replace_all" | ||||
|     button $f3.btnCancel -text "[::msgcat::mc "Cancel"] - Esc" -command "destroy $w"\ | ||||
|     -width 12 -pady 0 -font $font(normal) -relief groove -background $color(bg) | ||||
|     pack $f3.btnFind $f3.btnReplace $f3.btnReplaceAll $f3.btnCancel\ | ||||
|     -side left -padx 2 -pady 2 -fill x | ||||
|      | ||||
|     bind $w <Return> "ReplaceCommand $text $w  $f1.entFind $f2.entReplace find" | ||||
|     bind $w <F4> "ReplaceCommand $text $w  $f1.entFind $f2.entReplace replace" | ||||
|     bind $w <Escape> "destroy $w" | ||||
|     focus -force $f1.entFind | ||||
|      | ||||
|     if {$findString != ""} { | ||||
|         $f1.entFind insert end $findString | ||||
|     } | ||||
|     if {$replaceString != ""} { | ||||
|         $f2.entReplace insert end $replaceString | ||||
|     } | ||||
| } | ||||
| ## REPLACE COMMAND ## | ||||
| proc ReplaceCommand {text w entFind entReplace command} { | ||||
|     global nb font files findString replaceString | ||||
|     set node [$nb raise] | ||||
|      | ||||
|     set findString [$entFind get] | ||||
|     set replaceString [$entReplace get] | ||||
|      | ||||
|     switch -- $command { | ||||
|         "find" { | ||||
|             FindNext $text 1 | ||||
|             focus -force .replace | ||||
|         } | ||||
|         "replace" { | ||||
|             if {[Replace $text 0]} { | ||||
|                 FindNext $text 1 | ||||
|                 if {[lindex $files($node) 1] == 0} { | ||||
|                     set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]] | ||||
|                 } | ||||
|                 focus -force .replace | ||||
|             } | ||||
|         } | ||||
|         "replace_all" { | ||||
|             set stringsReplace 0 | ||||
|             if {[Replace $text 0]} { | ||||
|                 if {[lindex $files($node) 1] == 0} { | ||||
|                     set files($node) [list [lindex $files($node) 0] 1 [lindex $files($node) 2]] | ||||
|                 } | ||||
|                 incr stringsReplace | ||||
|                 while {[Replace $text 1]} { | ||||
|                     incr stringsReplace | ||||
|                 } | ||||
|             } | ||||
|             tk_messageBox -icon info -title [::msgcat::mc "Replace"]\ | ||||
|             -parent $text -message\ | ||||
|             "[::msgcat::mc "Was replacement"] $stringsReplace." | ||||
|             destroy $w | ||||
|         } | ||||
|     } | ||||
| } | ||||
| ## REPLACE ONE WORD PROCEDURE ## | ||||
| proc Replace {text incr} { | ||||
|     global nb font files findString replaceString | ||||
|      | ||||
|     if {[FindNext $text $incr]} { | ||||
|         set selected [$text tag ranges sel] | ||||
|         set start [lindex $selected 0] | ||||
|         set end [lindex $selected 1] | ||||
|         $text delete $start $end | ||||
|         $text insert [$text index insert] $replaceString | ||||
|         return 1 | ||||
|     } else { | ||||
|         return 0 | ||||
|     } | ||||
|     #    focus -force .replace | ||||
| } | ||||
|  | ||||
| ## OVERWRITE SYMBOL PROCEDURE ## | ||||
| proc OverWrite {} { | ||||
|     global replace fontNormal status | ||||
|     if {$replace == 1} { | ||||
|         set replace 0 | ||||
|         $status(ovwrt) configure -text [::msgcat::mc "Insert"] -foreground black | ||||
|     } else { | ||||
|         set replace 1 | ||||
|         $status(ovwrt) configure -text [::msgcat::mc "Overwrite"] -foreground red | ||||
|     } | ||||
| } | ||||
|  | ||||
| proc ReplaceChar {text} { | ||||
|     global replace | ||||
|     set pos [$text index insert] | ||||
|     set posY [lindex [split $pos "."] 0] | ||||
|     set posX [lindex [split $pos "."] 1] | ||||
|     if {$replace == 1} { | ||||
|         $text delete $posY.$posX $posY.[expr $posX + 1] | ||||
|     } | ||||
| } | ||||
|  | ||||
| ## GET KEYS CODE ## | ||||
| proc Key {key} { | ||||
|     #puts $key ;#debug | ||||
|     if {$key >= 10 && $key <= 22} {return "true"} | ||||
|     if {$key >= 24 && $key <= 36} {return "true"} | ||||
|     if {$key >= 38 && $key <= 50} {return "true"} | ||||
|     if {$key >= 51 && $key <= 61 && $key != 58} {return "true"} | ||||
|     if {$key >= 79 && $key <= 91} {return "true"} | ||||
|     if {$key == 63 || $key == 107 || $key == 108 || $key == 112} {return "true"} | ||||
|     if {$key == 98 || $key == 100 || $key == 102 || $key == 104} {return "false"} | ||||
| } | ||||
|  | ||||
| ## SPLIT EDITOR WINDOW PROCEDURE ## | ||||
| set split 0 | ||||
| proc SplitWindow {} { | ||||
|     global color font editor nb activeFile split | ||||
|      | ||||
|     if [info exists activeFile] { | ||||
|         set w $nb.f$activeFile | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {$split == 0} { | ||||
|         frame $w.f1 -borderwidth 2 -relief ridge | ||||
|         pack $w.f1 -side top -fill both -expand true | ||||
|         #supertext::text | ||||
|         supertext::text $w.f1.text -yscrollcommand "$w.f1.yscroll set" \ | ||||
|         -relief sunken -wrap $editor(wrap) -highlightthickness 0 -font $font(editNormal)\ | ||||
|         -background $color(editBg) -foreground $color(editFg)\ | ||||
|         -selectborderwidth 0 -selectbackground $color(selectbg) -width 10 | ||||
|         scrollbar $w.f1.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0 \ | ||||
|         -command "$w.f1.text yview" | ||||
|         pack $w.f1.text -side left -fill both -expand true | ||||
|         pack $w.f1.yscroll -side left -fill y | ||||
|         ############################################## | ||||
|         pane::create $w.f $w.f1 -orient horizontal -percent 0.5 | ||||
|         set split 1 | ||||
|     } elseif {$split == 1} { | ||||
|         destroy $w.f1 | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										238
									
								
								lib/modules/encode.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										238
									
								
								lib/modules/encode.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,238 @@ | ||||
| ########################################################### | ||||
| #                Tcl/Tk project Manager | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ########################################################### | ||||
|  | ||||
| ########################################################### | ||||
| #                ENCODING files procedure                  # | ||||
| ########################################################### | ||||
|  | ||||
| proc GetCorrectEncode {latexEncode} { | ||||
|     global files dir activeFile files | ||||
|     set f [open "[file join $dir(work) encode.lst]" r] | ||||
|     set encodeList [encoding names] | ||||
|     while {[gets $f line]} { | ||||
|         if {[string index [string trim $line] 0] == "#"} { | ||||
|             continue | ||||
|         } | ||||
|         scan $line "%s%s" texEnc tclEnc | ||||
|         #puts "$texEnc $tclEnc" | ||||
|          | ||||
|         if {$texEnc == $latexEncode} { | ||||
|             close $f | ||||
|             return $tclEnc | ||||
|         } else { | ||||
|             set ind [lsearch -exact $encodeList $latexEncode] | ||||
|             #puts $latexEncode | ||||
|             if {$ind == -1} { | ||||
|                 set answer [tk_messageBox\ | ||||
|                 -message "[lindex $files($activeFile) 0] [::msgcat::mc "Don't find any system encoding for"] $latexEncode \ | ||||
|                 [::msgcat::mc "You must write correctly encode name in"] [file join $dir(work) encode.lst] [::msgcat::mc "file"]"\ | ||||
|                 -type ok -icon warning\ | ||||
|                 -title [::msgcat::mc "Warning"]] | ||||
|                 case $answer { | ||||
|                     ok {return} | ||||
|                 } | ||||
|                 close $f | ||||
|                 return $latexEncode | ||||
|             } else { | ||||
|                 close $f | ||||
|                 return $latexEncode | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| proc EncodeDialog {type} { | ||||
|     global color files activeFile | ||||
|     set w .encode | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists .encode]} { | ||||
|         destroy .encode | ||||
|     } | ||||
|      | ||||
|     toplevel .encode | ||||
|     wm title .encode [::msgcat::mc "Encoding"] | ||||
|     wm resizable .encode 0 0 | ||||
|     wm transient .encode . | ||||
|      | ||||
|     frame .encode.encodings -width 10 | ||||
|     eval { | ||||
|         listbox .encode.encodings.list -height 10 -width 20 -selectbackground $color(selectbg)\ | ||||
|         -selectborderwidth 0 -yscrollcommand {.encode.encodings.yscroll set} | ||||
|     } | ||||
|     eval {scrollbar .encode.encodings.yscroll -orient vertical -command {.encode.encodings.list yview}} | ||||
|     pack .encode.encodings.list    -side left -expand true   -fill y | ||||
|     pack .encode.encodings.yscroll -side left -expand false  -fill y | ||||
|     pack .encode.encodings         -side top  -expand true   -fill both | ||||
|      | ||||
|     canvas .encode.line -border 0 -height 1 -background black -width 10 | ||||
|     pack   .encode.line -side top -expand true -fill x | ||||
|      | ||||
|     frame .encode.command -width 10 | ||||
|     if {$type == "file"} { | ||||
|         eval { | ||||
|             button .encode.command.ok -text [::msgcat::mc "Ok"] -command { | ||||
|                 SetEncode [.encode.encodings.list get [.encode.encodings.list curselection]]     | ||||
|             } | ||||
|         } | ||||
|     } else { | ||||
|         eval { | ||||
|             button .encode.command.ok -text [::msgcat::mc "Ok"] -command { | ||||
|                 TextRecode [.encode.encodings.list get [.encode.encodings.list curselection]] | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     eval {button .encode.command.cancel  -text [::msgcat::mc "Cancel"] -command {destroy .encode }} | ||||
|     grid .encode.command.ok -row 0 -column 0 -sticky e -pady 2 -padx 2 | ||||
|     grid .encode.command.cancel -row 0 -column 1 -sticky w -pady 2 -padx 2 | ||||
|     pack .encode.command -side top -expand true -fill x | ||||
|      | ||||
|     bind .encode.encodings.list <Double-1> {eval [.encode.command.ok    cget -command]} | ||||
|     bind .encode.encodings.list <Return>   {eval [.encode.command.ok    cget -command]} | ||||
|     bind .encode <Escape> {eval [.encode.command.cancel cget -command]} | ||||
|      | ||||
|     set i 0 ; set cur_encoding [encoding system] | ||||
|     foreach { name_encodings } [lsort [encoding names] ] { | ||||
|         .encode.encodings.list insert end $name_encodings | ||||
|         if { $name_encodings == $cur_encoding } { set enc_pos $i } | ||||
|         incr i | ||||
|     } ;# foreach encoding names | ||||
|      | ||||
|     wm resizable .encode 0 0 | ||||
|     .encode.encodings.list activate $enc_pos | ||||
|     .encode.encodings.list selection set $enc_pos $enc_pos | ||||
|     .encode.encodings.list see $enc_pos | ||||
|     focus -force .encode.encodings.list | ||||
| } | ||||
|  | ||||
|  | ||||
| ## Source encode ## | ||||
| proc DocRecode {pipe} { | ||||
|     global files tree activeFile | ||||
|     set parentNode [$tree parent $activeFile] | ||||
|     if [info exists files($parentNode)] { | ||||
|         set sourceEnc [lindex $files($parentNode) 2] | ||||
|     } else { | ||||
|         set sourceEnc [encoding system] ;#[EncodeDialog] | ||||
|     } | ||||
|     puts $sourceEnc | ||||
|     while {[gets $pipe line]>=0} { | ||||
|         if [regexp -nocase -all -- {(\\)(usepackage)(\[)(.*?)(\])(\{)inputenc(\})} $line match v1 v2 v3 sourceEnc v5 v6 v7] { | ||||
|             if [set ind [string last "," $sourceEnc]] { | ||||
|                 set sourceEnc [string range $sourceEnc [expr $ind + 1] end] | ||||
|             } | ||||
|             puts "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $sourceEnc" | ||||
|             set sourceEnc [GetCorrectEncode $sourceEnc] | ||||
|             puts "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> $sourceEnc" | ||||
|              | ||||
|         } | ||||
|     } | ||||
|     fconfigure $pipe -encoding binary | ||||
|     seek $pipe 0 start | ||||
|     return $sourceEnc | ||||
| } | ||||
|  | ||||
| ## CHANGE SOURCE FIELE ENCODING ## | ||||
| proc SetEncode {encode} { | ||||
|     global files activeFile status nb | ||||
|     destroy .encode | ||||
|     set files($activeFile) [list [lindex $files($activeFile) 0] [lindex $files($activeFile) 1] "$encode"] | ||||
|     #puts $files($activeFile) | ||||
|     $status(encode) configure -text "[lindex $files($activeFile) 2]" | ||||
| } | ||||
|  | ||||
| ## Reencoding text ## | ||||
| proc TextRecode {encode} { | ||||
|     global files activeFile status nb | ||||
|     destroy .encode | ||||
|     set text $nb.f$activeFile.f.text | ||||
|     set contents [$text get 0.0 end] | ||||
|     #puts "[lindex $files($activeFile) 2] $encode" | ||||
|     set contents [encoding convertto [lindex $files($activeFile) 2] $contents] | ||||
|     set contents [encoding convertfrom $encode $contents] | ||||
|     $text delete 0.0 end | ||||
|     $text insert end $contents | ||||
|     unset text | ||||
|     SetEncode $encode | ||||
| } | ||||
|  | ||||
| proc CheckEncoding {text} { | ||||
|     global files activeFile | ||||
|     set sourceEnc "" ;#[EncodeDialog] | ||||
|     set line [$text get 0.0 end] | ||||
|     if [regexp -nocase -all -- {(\\)(usepackage)(\[)(.*?)(\])(\{)inputenc(\})} $line match v1 v2 v3 sourceEnc v5 v6 v7] { | ||||
|         #break | ||||
|         if {$sourceEnc != "[lindex $files($activeFile) 2]"} { | ||||
|             set answer [tk_messageBox -message "[::msgcat::mc "Don't correctly setting document encoding! Save anyway?"]"\ | ||||
|             -type yesno -icon warning\ | ||||
|             -title [::msgcat::mc "Warning"]] | ||||
|             case $answer { | ||||
|                 yes {return 1} | ||||
|                 no  {return 0} | ||||
|             } | ||||
|         } | ||||
|         puts "DocEnc-$sourceEnc ViewEnc-[lindex $files($activeFile) 2]" | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| ## clipboard encode ## | ||||
|  | ||||
| set xselection "" | ||||
| proc EncodeTextSelection {txt offset len} { | ||||
|     set ::xselection [eval $txt get [$txt tag ranges sel]] | ||||
|     encoding convertto \ | ||||
|     [crange $::xselection $offset [expr $offset + $len - 1]] | ||||
| } | ||||
|  | ||||
| proc EncodeEntrySelection {txt offset len} { | ||||
|     if [$txt selection present] { | ||||
|         set idx1 [$txt index sel.first]         | ||||
|         set idx2 [$txt index sel.last] | ||||
|         set ::xselection [string range [$txt get] $idx1 $idx2] | ||||
|         encoding convertto \ | ||||
|         [crange $::xselection $offset [expr $offset + $len - 1]] | ||||
|     } else { | ||||
|         set ::xselection "" | ||||
|     } | ||||
| } | ||||
|  | ||||
| if {$tcl_platform(platform) == "win"} { | ||||
|     bind Text  <Map> { selection handle %W "EncodeTextSelection %W"} | ||||
|     bind Entry <Map> { selection handle %W "EncodeEntrySelection %W"} | ||||
|     bind Text  <Unmap> { selection handle %W {}} | ||||
|     bind Entry <Unmap> { selection handle %W {}} | ||||
|      | ||||
|     bind Text <ButtonRelease-2> { | ||||
|         if [catch {set sel [selection get]}] continue | ||||
|         if {[selection own] == ""} { | ||||
|             set sel [encoding convertfrom $sel] | ||||
|         } else { | ||||
|             set sel $xselection | ||||
|         } | ||||
|         %W insert current $sel | ||||
|     } | ||||
|     bind Entry <ButtonRelease-2> { | ||||
|         if [catch {set sel [selection get]}] continue | ||||
|         if {[selection own] == ""} { | ||||
|             set sel [encoding convertfrom $sel] | ||||
|         } else { | ||||
|             set sel $xselection | ||||
|         } | ||||
|         %W insert insert $sel | ||||
|     }         | ||||
| } | ||||
| #set class Text | ||||
| #bind $class <Map> "selection handle %W \"unix::Encode${class}Selection %W\"" | ||||
| #bind $class <Unmap> { selection handle %W {}} | ||||
| #proc EncodeTextSelection {txt offset len} {encoding convertto [eval $txt get [$txt tag ranges sel]]} | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										402
									
								
								lib/modules/file.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										402
									
								
								lib/modules/file.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,402 @@ | ||||
| ###################################################### | ||||
| #                TkTeXeditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru | ||||
| ###################################################### | ||||
| set types { | ||||
|     {"TeX files" {.tex}} | ||||
|     {"Html files" {.html}} | ||||
|     {"Text files" {.txt}} | ||||
|     {"All files" *} | ||||
| } | ||||
| set typeImage { | ||||
|     {"GIF files" {.gif}} | ||||
|     {"PNG files" {.png}} | ||||
|     {"JPEG files" {.jpeg}} | ||||
|     {"All files" *} | ||||
| } | ||||
|  | ||||
| proc FileDialog {operation} { | ||||
|     global dir font tree nb files treeStruct in lastNode \ | ||||
|     activeFile color status lblList ver sysenc release types | ||||
|     ## settings variable for tree section ## | ||||
|     set in(c) 0 ;# chapter counter | ||||
|     set in(p) 0 ;# part counter | ||||
|     set in(s) 0 ;# section counter | ||||
|     set in(ss) 0 ;# subsection counter | ||||
|     set in(sss) 0 ;# subsubsection counter | ||||
|     set in(par) 0 ;# paragraph cponter | ||||
|     set in(spar) 0 ;# subparagraph cponter | ||||
|     set lastNode "root" | ||||
|      | ||||
|      | ||||
|     if {$operation == "new"} { | ||||
|         NewFileDialog | ||||
|     } elseif {$operation == "new_templ"} { | ||||
|         TemplateDialog | ||||
|     } elseif {$operation == "open"} { | ||||
|         set file [tk_getOpenFile -initialdir $dir(current) -filetypes $types -parent .] | ||||
|         #puts "$file" | ||||
|         if {$file == ""} {return} | ||||
|         # call EditFile procedure | ||||
|         EditFile $file | ||||
|     } elseif {$operation == "save"} { | ||||
|         if [info exists activeFile] { | ||||
|             set node $activeFile | ||||
|         } else { | ||||
|             #set node [$nb raise] | ||||
|             return | ||||
|         } | ||||
|         if {$node == "newproj" || $node == "" || $node == "debug"} { | ||||
|             return | ||||
|         } | ||||
|         if {[info exists files($node)] == 0} { | ||||
|             return | ||||
|         } | ||||
|          | ||||
|         set text "$nb.f$node.f.text" | ||||
|         set fullPath [lindex $files($node) 0] | ||||
|         set encode [lindex $files($node) 2] ;# document encoding | ||||
|         set folder [file dirname $fullPath] | ||||
|         set file [file tail $fullPath] | ||||
|         #set contents [encoding convertfrom $sysenc [$text get 0.0 end]] | ||||
|         #set contents [encoding convertto $encode [$text get 0.0 end]] | ||||
|         if {[CheckEncoding $text] == 0} { | ||||
|             return | ||||
|         } | ||||
|         set contents [$text get 0.0 end] | ||||
|         set fhandle [open [file join $folder $file] "w"] | ||||
|         fconfigure $fhandle -encoding $encode | ||||
|         puts $fhandle $contents nonewline | ||||
|         close $fhandle | ||||
|          | ||||
|         #UpdateStruct $fullPath | ||||
|         if {[lindex $files($node) 1] == 1} { | ||||
|             set files($node) [list [lindex $files($node) 0] 0 [lindex $files($node) 2]] | ||||
|             $status(active) configure -text [::msgcat::mc "File saved"] | ||||
|             $nb itemconfigure $node -foreground $color(editTitleNormal) | ||||
|         } | ||||
|         UpdateStruct $fullPath $node | ||||
|     } elseif {$operation == "save_as"} { | ||||
|         if [info exists activeFile] { | ||||
|             set node $activeFile | ||||
|             #set node [$nb raise] | ||||
|         } else { | ||||
|             return | ||||
|         } | ||||
|         if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|             return | ||||
|         } | ||||
|         if {[info exists files($node)] == 0} { | ||||
|             return | ||||
|         } | ||||
|         set fullPath [lindex $files($node) 0] | ||||
|         set folder [file dirname $fullPath] | ||||
|         set file [file tail $fullPath] | ||||
|         set encode [lindex $files($node) 2] ;# document encoding | ||||
|         set file [tk_getSaveFile -initialdir $dir(current) -filetypes $types -parent .\ | ||||
|         -initialfile $file -defaultextension .tex] | ||||
|         if {$file == ""} {return} | ||||
|         set text "$nb.f$node.f.text" | ||||
|         set contents [$text get 0.0 end] | ||||
|         set fhandle [open [file join $folder $file] "w"] | ||||
|         fconfigure $fhandle -encoding $encode | ||||
|          | ||||
|         puts $fhandle $contents nonewline | ||||
|         close $fhandle | ||||
|         if {[lindex $files($node) 1] == 1} { | ||||
|             set files($node) [list [lindex $files($node) 0] 0 $encode] | ||||
|             $status(active) configure -text [::msgcat::mc "File saved"] | ||||
|             $nb itemconfigure $node -foreground $color(editTitleNormal) | ||||
|         }         | ||||
|         UpdateStruct $fullPath $node | ||||
|     } elseif {$operation == "save_all"} { | ||||
|         # SAVE ALL PROCEDURE | ||||
|         set i 0 | ||||
|         set nodeList [$nb pages 0 end] | ||||
|         set length [llength $nodeList] | ||||
|         while {$i < $length} { | ||||
|             set nbNode [lindex $nodeList $i] | ||||
|             if {$nbNode != "debug"} { | ||||
|                 set text "$nb.f$nbNode.f.text" | ||||
|                 set savedFile [lindex $files($nbNode) 0] | ||||
|                 set encode [lindex $files($nbNode) 2] ;# document encoding | ||||
|                 set contents [$text get 0.0 end] | ||||
|                 set fhandle [open $savedFile "w"] | ||||
|                 fconfigure $fhandle -encoding $encode | ||||
|                 puts $fhandle $contents nonewline | ||||
|                 close $fhandle | ||||
|                 if {[lindex $files($nbNode) 1] == 1} { | ||||
|                     set files($nbNode) [list [lindex $files($nbNode) 0] 0 $encode] | ||||
|                     $status(active) configure -text [::msgcat::mc "File saved"] | ||||
|                     $nb itemconfigure $nbNode -foreground $color(editTitleNormal) | ||||
|                 }                 | ||||
|             } | ||||
|             incr i | ||||
|         } | ||||
|         Timer "empty" "autosave" | ||||
|     } elseif {$operation == "close"} { | ||||
|         set node [$nb raise] | ||||
|         if {$node == ""} {return} | ||||
|         if {$node == "debug"} { | ||||
|             $nb delete $node | ||||
|             $nb raise [$nb page 0] | ||||
|             return | ||||
|         } | ||||
|         set childrenNode [$tree nodes $node] | ||||
|         # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> | ||||
|         if {$childrenNode != ""} { | ||||
|             for {set i 0} {$i <= [llength $childrenNode]} {incr i} { | ||||
|                 if {[info exists files([lindex $childrenNode $i])] == 1} { | ||||
|                     CloseNode [lindex $childrenNode $i] | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         CloseNode $node | ||||
|     } elseif {$operation == "close_all"} { | ||||
|         set nodeList [$nb pages 0 end] | ||||
|         $nb raise [$nb page 0] | ||||
|         set nbNode [$nb raise] | ||||
|         while {$nbNode != ""} { | ||||
|             if {[info exists files($nbNode)] == 1} { | ||||
|                 if {[lindex $files($nbNode) 1] == 1} { | ||||
|                     set f [lindex $files($nbNode) 0] | ||||
|                     set f [file tail $f] | ||||
|                     set answer [tk_messageBox\ | ||||
|                     -message "$f [::msgcat::mc "File was modifyed. Save?"]"\ | ||||
|                     -type yesnocancel -icon warning\ | ||||
|                     -title [::msgcat::mc "Warning"]] | ||||
|                     case $answer { | ||||
|                         yes {FileDialog save} | ||||
|                         no  {} | ||||
|                         cancel {return} | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             $tree delete $nbNode | ||||
|             $nb delete $nbNode | ||||
|             $nb raise [$nb page 0] | ||||
|             set nbNode [$nb raise] | ||||
|         } | ||||
|     } elseif {$operation == "quit_close_all"} { | ||||
|         set nodeList [$nb pages 0 end] | ||||
|         $nb raise [$nb page 0] | ||||
|         set nbNode [$nb raise] | ||||
|         set fhandle [open [file join $dir(work) bookmarks] "w"] | ||||
|         while {$nbNode != ""} { | ||||
|             if {[info exists files($nbNode)] == 1} { | ||||
|                 set f [lindex $files($nbNode) 0] | ||||
|                 puts $f | ||||
|                 # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|                 set text "$nb.f$nbNode.f.text" | ||||
|                 puts $fhandle "$f [$text index insert]" | ||||
|                 puts "$f [$text index insert]" | ||||
|                 if {[lindex $files($nbNode) 1] == 1} { | ||||
|                     set f [file tail $f] | ||||
|                     set answer [tk_messageBox\ | ||||
|                     -message "$f [::msgcat::mc "File was modifyed. Save?"]"\ | ||||
|                     -type yesnocancel -icon warning\ | ||||
|                     -title [::msgcat::mc "Warning"]] | ||||
|                     case $answer { | ||||
|                         yes {FileDialog save} | ||||
|                         no  {} | ||||
|                         cancel {return 0} | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|             $tree delete $nbNode | ||||
|             $nb delete $nbNode | ||||
|             $nb raise [$nb page 0] | ||||
|             set nbNode [$nb raise] | ||||
|         } | ||||
|         close $fhandle | ||||
|     } | ||||
| } | ||||
| proc NewFile {fileName} { | ||||
|     global dir workDir tree nb font | ||||
|     destroy .addtoproj | ||||
|      | ||||
|     set type [string trim [file extension $fileName] {.}] | ||||
|     if {$type == "tcl"} { | ||||
|         set img "tcl" | ||||
|     } elseif {$type == "tk"} { | ||||
|         set img "tk" | ||||
|     } elseif {$type == "txt"} { | ||||
|         set img "file" | ||||
|     } elseif {$type == "html"} { | ||||
|         set img "html" | ||||
|     } else { | ||||
|         set img "file" | ||||
|     } | ||||
|     #set subNode [InsertTreeNode $fileName $dir(doc)] | ||||
|     if [info exists dir(current)] { | ||||
|         set file [file join $dir(current) $fileName] | ||||
|     } else { | ||||
|         set file [file join $dir(doc) $fileName] | ||||
|     } | ||||
|      | ||||
|     #puts $file | ||||
|     #InsertTitle $file $type | ||||
|     if {[file exists $file] == 0} { | ||||
|         set fHandle [open "$file" a+] | ||||
|         close $fHandle | ||||
|     } | ||||
|     EditFile $file | ||||
| } | ||||
| ## ADD FILE INTO PROJECT DIALOG## | ||||
| proc NewFileDialog {} { | ||||
|     global dir | ||||
|     set w .addtoproj | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     # create the new "goto" window | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Create new file"] | ||||
|     wm resizable $w 0 0 | ||||
|     wm transient $w . | ||||
|      | ||||
|     frame $w.frmCanv -border 1 -relief sunken | ||||
|     frame $w.frmBtn -border 1 -relief sunken | ||||
|     pack $w.frmCanv -side top -fill both -padx 1 -pady 1 | ||||
|     pack $w.frmBtn -side top -fill x | ||||
|      | ||||
|     label $w.frmCanv.lblImgTcl -text [::msgcat::mc "Input file name"] | ||||
|     entry $w.frmCanv.entImgTcl | ||||
|     pack $w.frmCanv.lblImgTcl $w.frmCanv.entImgTcl -expand true -padx 5 -pady 5 -side top | ||||
|      | ||||
|     button $w.frmBtn.btnOk -text [::msgcat::mc "Create"] -relief groove -command { | ||||
|         NewFile [.addtoproj.frmCanv.entImgTcl get] | ||||
|     } | ||||
|     button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"] -command "destroy $w" -relief groove | ||||
|     pack $w.frmBtn.btnOk $w.frmBtn.btnCancel -padx 2 -pady 2 -fill x -side left | ||||
|      | ||||
|     bind $w <Escape> "destroy .addtoproj" | ||||
|     bind $w.frmCanv.entImgTcl <Return> { | ||||
|         NewFile [.addtoproj.frmCanv.entImgTcl get] | ||||
|     } | ||||
|     focus -force $w.frmCanv.entImgTcl | ||||
|     $w.frmCanv.entImgTcl insert 0 "name.tex" | ||||
| } | ||||
|  | ||||
| proc FileAttr {file} { | ||||
|     global tcl_platform | ||||
|     set fileAttribute "" | ||||
|     # get file modify time | ||||
|     if {$tcl_platform(platform) == "windows"} { | ||||
|          | ||||
|     } elseif {$tcl_platform(platform) == "mac"} { | ||||
|          | ||||
|     } elseif {$tcl_platform(platform) == "unix"} { | ||||
|         set unixTime [file mtime $file] | ||||
|         set modifyTime [clock format $unixTime -format "%d/%m/%Y, %H:%M"] | ||||
|         append fileAttribute $modifyTime | ||||
|     } | ||||
|     # get file size | ||||
|     set size [file size $file] | ||||
|     if {$size < 1024} { | ||||
|         set fileSize "$size b" | ||||
|     } | ||||
|     if {$size >= 1024} { | ||||
|         set s [expr ($size.0) / 1024] | ||||
|         set dot [string first "\." $s] | ||||
|         set int [string range $s 0 [expr $dot - 1]] | ||||
|         set dec [string range $s [expr $dot + 1] [expr $dot + 2]] | ||||
|         set fileSize "$int.$dec Kb" | ||||
|     } | ||||
|     if {$size >= 1048576} { | ||||
|         set s [expr ($size.0) / 1048576] | ||||
|         set dot [string first "\." $s] | ||||
|         set int [string range $s 0 [expr $dot - 1]] | ||||
|         set dec [string range $s [expr $dot + 1] [expr $dot + 2]] | ||||
|         set fileSize "$int.$dec Mb" | ||||
|     } | ||||
|     append fileAttribute ", $fileSize" | ||||
| } | ||||
|  | ||||
| ## REMOVED SELECTED TEXT INTO FILE AND INCLUDE THEM ## | ||||
| proc SaveToFile {action} { | ||||
|     global nb activeFile files dir types typeImage | ||||
|     set text $nb.f$activeFile.f.text | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set contents [$text get $posBegin $posEnd] | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|      | ||||
|     set enc "[lindex $files($activeFile) 2]" | ||||
|     set contents [encoding convertto $enc $contents] | ||||
|     set contents [encoding convertfrom $enc $contents] | ||||
|      | ||||
|     if {$action == "image"} { | ||||
|         set file [tk_getSaveFile -initialdir $dir(current) -filetypes $typeImage -parent .\ | ||||
|         -title [::msgcat::mc "Save as"] -initialfile new_name.gif -defaultextension .gif] | ||||
|         if {$file == ""} {return} | ||||
|         Render $contents text $file | ||||
|     } else { | ||||
|         set file [tk_getSaveFile -initialdir $dir(current) -filetypes $types -parent .\ | ||||
|         -title [::msgcat::mc "Save as"] -initialfile new_name.tex -defaultextension .tex] | ||||
|         if {$file == ""} {return} | ||||
|         set fHandle [open $file w] | ||||
|         puts $fHandle $contents | ||||
|         close $fHandle | ||||
|     } | ||||
|     if {$action == "remove"} { | ||||
|         $text delete $posBegin $posEnd | ||||
|         $text insert $posBegin "\n\\input\{[file rootname $file]\}\n" | ||||
|     }     | ||||
|     PageRaise $activeFile | ||||
| } | ||||
|  | ||||
| proc CloseNode {node} { | ||||
|     global dir font tree nb files treeStruct in lastNode activeFile color status lblList ver sysenc release types | ||||
|     if {$node == "debug"} {$nb delete $node; $nb raise [$nb page 0]; set node [$nb raise]; return} | ||||
|      | ||||
|     if {[info exists files($node)] == 1} { | ||||
|         if {[lindex $files($node) 1] == 1} { | ||||
|             set f [lindex $files($node) 0] | ||||
|             set f [file tail $f] | ||||
|             set answer [tk_messageBox\ | ||||
|             -message "$f [::msgcat::mc "File was modifyed. Save?"]"\ | ||||
|             -type yesnocancel -icon warning\ | ||||
|             -title [::msgcat::mc "Warning"]] | ||||
|             case $answer { | ||||
|                 yes {FileDialog save} | ||||
|                 no  {} | ||||
|                 cancel {return} | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     PageTab -1 | ||||
|     $nb delete $node | ||||
|     unset files($node) | ||||
|     set parentNode [$tree parent $node] | ||||
|     set curNode [$tree selection get] | ||||
|     if {[$tree parent $node] == "root"} { | ||||
|         if {[$tree exists $node] == 1} { | ||||
|             $tree delete $node | ||||
|         } | ||||
|     } | ||||
|     #$nb raise [$nb page 0] | ||||
|     #set node [$nb raise] | ||||
|     ClickTab $node | ||||
|     $treeStruct delete [$treeStruct nodes root] | ||||
|     $lblList delete [$lblList item 0 end] | ||||
|     wm title . "TkLaTeXEditor $ver\($release\)" | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										575
									
								
								lib/modules/gui.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										575
									
								
								lib/modules/gui.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,575 @@ | ||||
| ###################################################### | ||||
| #                TkTeXeditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lrn", 2000, http//conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #                                                    # | ||||
| #           Programms main interface window          # | ||||
| #                                                    # | ||||
| ###################################################### | ||||
|  | ||||
|  | ||||
| ## MAIN INTERFACE WINDOW ## | ||||
| wm geometry . $gui(geometry) | ||||
| set activeFile "" | ||||
| wm title . "TkLaTeXEditor $ver$release" | ||||
| wm iconname . "TkTeXEditor $ver$release" | ||||
| wm protocol . WM_DELETE_WINDOW Quit | ||||
| wm overrideredirect . 0 | ||||
| wm positionfrom . user | ||||
| #wm resizable . 0 0 | ||||
|  | ||||
| ## main frames | ||||
| frame .frmMenu -border 1 -relief raised -background $color(bg) | ||||
| frame .frmTool -border 1 -relief raised -background $color(bg) | ||||
| frame .frmToolEdit -border 1 -relief raised -background $color(bg) | ||||
| frame .frmBody -border 1 -relief raised -background $color(bg) | ||||
| frame .frmStatus -border 1 -relief sunken -background $color(bg) | ||||
| pack .frmMenu -side top -padx 1 -fill x | ||||
| pack .frmTool -side top -padx 1 -fill x | ||||
| pack .frmToolEdit -side top -padx 1 -fill x | ||||
| pack .frmBody -side top -padx 1 -fill both -expand true | ||||
| pack .frmStatus -side top -padx 1 -fill x | ||||
|  | ||||
| ## MENU ## | ||||
| menubutton .frmMenu.mnuFile -text [::msgcat::mc "File"] -menu .frmMenu.mnuFile.m -font $font(normal) -background $color(bg) | ||||
| set m [menu .frmMenu.mnuFile.m -background $color(bg)] | ||||
| $m add cascade -label [::msgcat::mc "New"] -menu $m.new -font $font(normal) | ||||
| set mn [menu $m.new -background $color(bg)] | ||||
| $mn add command -label [::msgcat::mc "New file"] -command {FileDialog new}\ | ||||
| -font $font(normal) -accelerator "Ctrl+N" | ||||
| $mn add command -label [::msgcat::mc "Create from template"] -command {FileDialog new_templ}\ | ||||
| -font $font(normal) | ||||
| $mn add command -label [::msgcat::mc "New project"] -command {NewProj add ""}\ | ||||
| -font $font(normal) -state disable | ||||
| $m add command -label [::msgcat::mc "Open"] -command {FileDialog open}\ | ||||
| -font $font(normal) -accelerator "Ctrl+O" | ||||
| $m add command -label [::msgcat::mc "Save"] -command {FileDialog save}\ | ||||
| -font $font(normal) -accelerator "Ctrl+S" | ||||
| $m add command -label [::msgcat::mc "Save as"] -command {FileDialog save_as}\ | ||||
| -font $font(normal) -accelerator "Ctrl+A" | ||||
| $m add command -label [::msgcat::mc "Save all"] -command {FileDialog save_all}\ | ||||
| -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "Close"] -command {FileDialog close}\ | ||||
| -font $font(normal) -accelerator "Ctrl+W" | ||||
| $m add command -label [::msgcat::mc "Close all"] -command {FileDialog close_all}\ | ||||
| -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "Delete"] -command {FileDialog delete}\ | ||||
| -font $font(normal) -accelerator "Ctrl+D" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Print"] -command {PrintDialog print}\ | ||||
| -font $font(normal) -accelerator "Ctrl+P" -state normal | ||||
| #$m add separator | ||||
| #$m add command -label [::msgcat::mc "Settings"] -command Settings -font $font(normal) | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Exit"] -command Quit -font $font(normal) -accelerator "Ctrl+Q" | ||||
|  | ||||
| ### DOCUMENT MENU #### | ||||
| menubutton .frmMenu.mnuDoc -text [::msgcat::mc "Document"] -menu .frmMenu.mnuDoc.m -font $font(normal) -background $color(bg) | ||||
|  | ||||
| set m [menu .frmMenu.mnuDoc.m -background $color(bg)] | ||||
| #$m add command -label [::msgcat::mc "Included packages"] -command {PackageDialog}\ | ||||
| #-font $font(normal) -state disable | ||||
| # "convert to" submenu ## | ||||
| $m add cascade -label "[::msgcat::mc "Convert to"] ..." -menu $m.convert -font $font(normal) -state normal | ||||
| set mn [menu $m.convert -background $color(bg)] | ||||
| $mn add command -label [::msgcat::mc "DVI"] -font $font(normal) -accelerator "F5" -state normal\ | ||||
| -command {ConvertDialog dvi} | ||||
| $mn add command -label [::msgcat::mc "PS"] -font $font(normal) -accelerator "F6" -state normal\ | ||||
| -command {ConvertDialog ps} | ||||
| $mn add command -label [::msgcat::mc "PDF"] -font $font(normal) -accelerator "F7" -state normal\ | ||||
| -command {ConvertDialog pdf} | ||||
| $mn add command -label "HTML" -font $font(normal) -command {ConvertDialog html}\ | ||||
|  | ||||
| $mn add separator | ||||
| ## "preview" submenu ## | ||||
| $m add cascade -label [::msgcat::mc "Preview"] -menu $m.preview -font $font(normal) -state normal | ||||
| set mn [menu $m.preview -background $color(bg)] | ||||
| $mn add command -label "DVI" -command {Preview dvi} -font $font(normal) | ||||
| $mn add command -label "PS" -command {Preview ps} -font $font(normal) | ||||
| $mn add command -label "PDF" -command {Preview pdf} -font $font(normal) | ||||
| $mn add command -label "HTML" -command {Preview html} -font $font(normal) | ||||
|  | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Spell check"] -font $font(normal) -state normal\ | ||||
| -command { | ||||
|     SpellCheck $nb.f[$nb raise].f.text | ||||
| } | ||||
| $m add command -label [::msgcat::mc "Encoding"] -font $font(normal) -state normal\ | ||||
| -command {EncodeDialog file} | ||||
|  | ||||
| $m add command -label [::msgcat::mc "Syntax check"] -command {DoModule syntax}\ | ||||
| -font $font(normal) -state disable | ||||
|  | ||||
| ##.frmMenu 'EDIT' ## | ||||
| menubutton .frmMenu.mnuEdit -text [::msgcat::mc "Edit"] -menu .frmMenu.mnuEdit.m -font $font(normal) -background $color(bg) | ||||
| set m [menu .frmMenu.mnuEdit.m -background $color(bg)] | ||||
| $m add command -label [::msgcat::mc "Undo"] -font $font(normal) -accelerator "Ctrl+Z"\ | ||||
| -state normal -command "CutPast undo" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Copy"] -font $font(normal) -accelerator "Ctrl+C"\ | ||||
| -command "CutPast copy" | ||||
| $m add command -label [::msgcat::mc "Paste"] -font $font(normal) -accelerator "Ctrl+V"\ | ||||
| -command "CutPast paste" | ||||
| $m add command -label [::msgcat::mc "Cut"] -font $font(normal) -accelerator "Ctrl+X"\ | ||||
| -command "CutPast cut" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Select All"] -command {Select all} -font $font(normal) -accelerator "Ctrl+/" | ||||
| $m add command -label [::msgcat::mc "Remove selection"] -command {Select remove} -font $font(normal)\ | ||||
| -accelerator "Ctrl+\\" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Goto line"] -command GoToLine -font $font(normal)\ | ||||
| -accelerator "Ctrl+G" | ||||
| $m add command -label [::msgcat::mc "Find"] -command Find -font $font(normal) -accelerator "Ctrl+F" | ||||
| $m add command -label [::msgcat::mc "Replace"] -command ReplaceDialog -font $font(normal)\ | ||||
| -accelerator "Ctrl+R" | ||||
| $m add separator | ||||
| $m add cascade -label "[::msgcat::mc "Custom operations"] ..." -menu $m.hotkeys -font $font(normal) -state normal | ||||
| menu $m.hotkeys -background $color(bg) | ||||
|  | ||||
| ## MENU for selected text ## | ||||
| set m [menu .frmMenu.mnuEdit.m.selection -background $color(bg)] | ||||
| $m add command -label [::msgcat::mc "Select All"] -command {Select all} -font $font(normal) -accelerator "Ctrl+/" | ||||
| $m add command -label [::msgcat::mc "Remove selection"] -command {Select remove} -font $font(normal)\ | ||||
| -accelerator "Ctrl+\\" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Copy"] -font $font(normal) -accelerator "Ctrl+C"\ | ||||
| -command "CutPast copy" | ||||
| $m add command -label [::msgcat::mc "Paste"] -font $font(normal) -accelerator "Ctrl+V"\ | ||||
| -command "CutPast paste" | ||||
| $m add command -label [::msgcat::mc "Cut"] -font $font(normal) -accelerator "Ctrl+X"\ | ||||
| -command "CutPast cut" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Preview formula"] -command {GenerateFormula math} -font $font(normal)\ | ||||
| -accelerator "Alt+F" | ||||
| $m add command -label [::msgcat::mc "Preview text"] -command {GenerateFormula text} -font $font(normal)\ | ||||
| -accelerator "Alt+T" | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Remove to file"] -command {SaveToFile remove} -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "Save as file"] -command {SaveToFile file} -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "Save as image"] -command {SaveToFile image} -font $font(normal) | ||||
|  | ||||
|  | ||||
| ## VIEW MENU ## | ||||
| menubutton .frmMenu.mnuView -text [::msgcat::mc "View"] -menu .frmMenu.mnuView.m -font $font(normal) -state normal -background $color(bg) | ||||
| set m [menu .frmMenu.mnuView.m -background $color(bg)] | ||||
| $m add cascade -label [::msgcat::mc "Toolbar"] -menu $m.tool -font $font(normal) | ||||
| set mn [menu $m.tool]  | ||||
|  | ||||
| #$mn add command -label [::msgcat::mc "Create from template"] -command {FileDialog new_templ}\ | ||||
| #-font $font(normal) | ||||
|  | ||||
| $m add separator | ||||
| $m add command -label [::msgcat::mc "Split window"] -font $font(normal) -accelerator "F2" -state disable\ | ||||
| -command {SplitWindow} | ||||
| $m add command -label [::msgcat::mc "Encoding"] -font $font(normal) -state normal\ | ||||
| -command {EncodeDialog view} | ||||
|  | ||||
| ## MODULES MENU ## | ||||
| menubutton  .frmMenu.mnuModule  -text [::msgcat::mc "Modules"] -menu .frmMenu.mnuModule.m \ | ||||
| -underline 0 -font $font(normal) -background $color(bg) | ||||
|  | ||||
| ## HELP MENU ## | ||||
| menubutton  .frmMenu.mnuHelp  -text [::msgcat::mc "Help"] -menu .frmMenu.mnuHelp.m \ | ||||
| -underline 0 -font $font(normal) -background $color(bg) | ||||
| set m [menu .frmMenu.mnuHelp.m -background $color(bg)] | ||||
| $m  add  command  -label [::msgcat::mc "Help"]  -command  ShowHelp \ | ||||
| -accelerator F1 -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "About ..."] -command AboutDialog \ | ||||
| -font $font(normal) | ||||
|  | ||||
| pack .frmMenu.mnuFile .frmMenu.mnuEdit .frmMenu.mnuDoc .frmMenu.mnuView .frmMenu.mnuModule -side left | ||||
| pack .frmMenu.mnuHelp -side right | ||||
|  | ||||
|  | ||||
| ############################################### | ||||
| frame .frmBody.frmList -background $color(bg) | ||||
| frame .frmBody.frmEditor -background $color(bg) | ||||
| pack .frmBody.frmList .frmBody.frmEditor -side left -fill both | ||||
|  | ||||
| ## SPLIT BAR ## | ||||
| pane::create .frmBody.frmList .frmBody.frmEditor | ||||
|  | ||||
| ## TREE FRAME ## | ||||
|  | ||||
| set nbTree [NoteBook .frmBody.frmList.nBook -font $font(normal) -side $gui(tabsLabel) -background $color(bg)] | ||||
| pack $nbTree -fill both -expand true -padx 2 -pady 2 | ||||
|  | ||||
| set f [$nbTree insert end fileTree -text [::msgcat::mc "Files"] -background $color(bg)] | ||||
| set fTree [ScrolledWindow $f.f -background $color(bg)] | ||||
| pack $fTree -side top -fill both -expand yes  -padx 0 -pady 0 | ||||
| set tree [Tree $fTree.tree \ | ||||
| -relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1\ | ||||
| -redraw 0 -dropenabled 1 -dragenabled 1 -dragevent 3 \ | ||||
| -background $color(editBg) -selectbackground $color(selectbg) \ | ||||
| -droptypes {TREE_NODE    {copy {} move {} link {}} | ||||
| LISTBOX_ITEM {copy {} move {} link {}}} -opencmd {} -closecmd  {}] | ||||
| $fTree setwidget $tree | ||||
| #pack $tree -side left -fill both -expand yes | ||||
| ############################################### | ||||
| set fStruct [$nbTree insert end fileStruct -text [::msgcat::mc "Document"] -background $color(bg)] | ||||
| set fTreeStruct [ScrolledWindow $fStruct.fs -background $color(bg)] | ||||
| pack $fTreeStruct -side top -fill both -expand yes | ||||
| set treeStruct [Tree $fTreeStruct.treeStruct \ | ||||
| -relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1\ | ||||
| -redraw 0 -dropenabled 0 -dragenabled 0 -dragevent 3 \ | ||||
| -background $color(editBg) -selectbackground $color(selectbg) \ | ||||
| -showlines 1 -droptypes { | ||||
|     TREE_NODE    {copy {} move {} link {}} | ||||
|     LISTBOX_ITEM {copy {} move {} link {}} | ||||
| }] | ||||
| $fTreeStruct setwidget $treeStruct | ||||
| #pack $treeStruct -side left -fill both -expand yes | ||||
| ############################################### | ||||
| set f [$nbTree insert end lblList -text [::msgcat::mc "Labels"] -background $color(bg)] | ||||
| set fList [ScrolledWindow $f.f -background $color(bg)] | ||||
| set lblList [ListBox $fList.list -font $font(normal) -relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1 -background $color(editBg) -selectbackground $color(selectbg)] | ||||
| #pack $lblList -side left -fill both -expand yes | ||||
| $fList setwidget $lblList | ||||
| pack $fList -side top -fill both -expand yes | ||||
| ############################################### | ||||
| set nb [NoteBook .frmBody.frmEditor.noteBook -font $font(normal) -side $gui(tabsLabel) -background $color(bg)] | ||||
| pack $nb -fill both -expand true -padx 2 -pady 2 | ||||
| ############################################### | ||||
|  | ||||
| set m .popupTabs | ||||
| menu $m -font $font(normal) | ||||
| $m add command -label [::msgcat::mc "Close"] -command {FileDialog close}\ | ||||
| -font $font(normal) -accelerator "Ctrl+W" | ||||
| $m add command -label [::msgcat::mc "Close all"] -command {FileDialog close_all}\ | ||||
| -font $font(normal) | ||||
|  | ||||
| ## KEYS BINDINGS ## | ||||
|  | ||||
| $tree bindText <Button-1> "TreeOneClick [$tree selection get]" | ||||
| $tree bindImage <Button-1> "TreeOneClick [$tree selection get]" | ||||
| $tree bindText <Shift-Button-1> {$tree selection add [$tree selection get]} | ||||
| $tree bindImage <Shift-Button-1> {$tree selection add [$tree selection get]} | ||||
| $treeStruct bindText <Button-1> "TreeStructOneClick [$treeStruct selection get]" | ||||
| $treeStruct bindImage <Button-1> "TreeStructOneClick [$treeStruct selection get]" | ||||
|  | ||||
| $nb bindtabs <ButtonRelease> "ClickTab" | ||||
| $nb bindtabs <Button-3> {catch [PopupMenuTab .popupTabs %X %Y]} | ||||
|  | ||||
| ## MOUSE WHEEL BINDING ## | ||||
| bind $fTree.tree.c <Button-4> "$tree yview scroll -3 units" | ||||
| bind $fTree.tree.c <Button-5> "$tree yview scroll  3 units" | ||||
| bind $fTree.tree.c <Shift-Button-4> "$tree xview scroll -2 units" | ||||
| bind $fTree.tree.c <Shift-Button-5> "$tree xview scroll  2 units" | ||||
| bind $fTree.tree.c <Button-3> {catch [tk_popup .frmMenu.mnuFile.m %X %Y]} | ||||
|  | ||||
| bind $fTreeStruct.treeStruct.c <Button-4> "$treeStruct yview scroll -3 units" | ||||
| bind $fTreeStruct.treeStruct.c <Button-5> "$treeStruct yview scroll  3 units" | ||||
| bind $fTreeStruct.treeStruct.c <Shift-Button-4> "$treeStruct xview scroll -2 units" | ||||
| bind $fTreeStruct.treeStruct.c <Shift-Button-5> "$treeStruct xview scroll  2 units" | ||||
|  | ||||
| $lblList bindImage <ButtonRelease-1> "FindLabel [$lblList selection get]" | ||||
| $lblList bindText <ButtonRelease-1> "FindLabel [$lblList selection get]" | ||||
|  | ||||
| bind $lblList.c <Button-4> "$lblList yview scroll -3 units" | ||||
| bind $lblList.c <Button-5> "$lblList yview scroll  3 units" | ||||
| bind $lblList.c <Shift-Button-4> "$lblList xview scroll -2 units" | ||||
| bind $lblList.c <Shift-Button-5> "$lblList xview scroll  2 units" | ||||
|  | ||||
| bind . <Control-q> Quit | ||||
| bind . <Control-Q> Quit | ||||
| bind . <F1> ShowHelp | ||||
| bind . <F5> {ConvertDialog dvi} | ||||
| bind . <F6> {ConvertDialog ps} | ||||
| bind . <F7> {ConvertDialog pdf} | ||||
|  | ||||
| bind . <Control-Next> {PageTab 1} | ||||
| bind . <Control-Prior> {PageTab -1} | ||||
|  | ||||
| ############################################### | ||||
| ##               CREATE TOOLBARs             ## | ||||
| ############################################### | ||||
| set btnNum 0 | ||||
| proc CreateToolButton {frame command image hint keys} { | ||||
|     global dir btnNum color relief | ||||
|     if {$frame == "main"} { | ||||
|         set frm frmTool | ||||
|     } else { | ||||
|         set frm frmToolEdit | ||||
|     } | ||||
|     set comm [string trim $command "\""] | ||||
|     set btn [Button .$frm.$frame.btn_$btnNum -relief $relief(btn) -bd 1\ | ||||
|     -command $comm -background $color(bg)] | ||||
|     image create photo img_$btnNum -format gif -file [file join $dir(img) $image] | ||||
|     $btn configure -image img_$btnNum | ||||
|     if {$keys != ""} { | ||||
|         set keys [string trim $keys "\""] | ||||
|         #puts "$keys - $comm" | ||||
|         bind . <$keys> "$comm" | ||||
|     } | ||||
|          | ||||
|     pack $btn -side left | ||||
|     balloon $btn set [::msgcat::mc [string trim $hint "\""]] | ||||
|     incr btnNum | ||||
| } | ||||
| proc ReadToolBarFile {_dir} { | ||||
|     global dir font  color file frm frame tool | ||||
|     foreach file [lsort [glob -nocomplain [file join $_dir toolbar *]]] { | ||||
|         puts "Found toolbar file - \'$file\'" | ||||
|         set frame [file tail $file] | ||||
|         if {$frame == "main"} { | ||||
|             set frm frmTool | ||||
|         } else { | ||||
|             set frm frmToolEdit | ||||
|         } | ||||
|         AddCheckBox .frmMenu.mnuView.m.tool $frame $file $frm | ||||
|         if {$tool($frame) == 1} { | ||||
|             ReadToolBar $file | ||||
|         } | ||||
|     }     | ||||
| } | ||||
|  | ||||
| proc AddCheckBox {m frame file frm} { | ||||
|     global font color tool | ||||
|     $m add checkbutton -label [::msgcat::mc "$frame"] -font $font(normal) -state normal\ | ||||
|     -offvalue 0 -onvalue 1 -variable tool($frame)  -selectcolor $color(selectbg)\ | ||||
|     -command "ToolBar $frm $frame $file"\ | ||||
|     -background $color(bg)     | ||||
| } | ||||
|  | ||||
| proc ReadToolBar {file} { | ||||
|     global dir font color | ||||
|     set frame [file tail $file] | ||||
|     puts "Create toolbar \'$frame\' from file \'$file\'" | ||||
|      | ||||
|     if {$frame == "main"} { | ||||
|         set frm frmTool | ||||
|     } else { | ||||
|         set frm frmToolEdit | ||||
|     } | ||||
|     pack [frame .$frm.$frame -background $color(bg)] -side left -fill x | ||||
|     set fHandle [open $file] | ||||
|     while {[gets $fHandle line]>=0} { | ||||
|         set line [string trim $line] | ||||
|         set kw [string range $line 0 [expr [string first " " $line]-1]] | ||||
|         set l [string range $line [expr [string first " " $line] +1] end] | ||||
|         if {$kw == "button"} { | ||||
|             if [regexp -- {(\".*?\") (.*?) (\".*?\") (\".*?\")} $l m cmd img hint keys] { | ||||
|                 #puts "$frame $cmd $img $hint" | ||||
|                 CreateToolButton $frame $cmd $img $hint $keys | ||||
|             } elseif [regexp -- {(\".*?\") (.*?) (\".*?\")} $l m cmd img hint] { | ||||
|                 CreateToolButton $frame $cmd $img $hint "" | ||||
|             } | ||||
|         } | ||||
|         if {$l == "Separator"} { | ||||
|             CreateSeparator $frame | ||||
|         } | ||||
|         if {$kw == "menu"} { | ||||
|             if [regexp -- {(.*?) (\".*?\")} $l m img hint] { | ||||
|                 set menu [CreateToolMenu $frame $img $hint] | ||||
|             } | ||||
|         } | ||||
|         if {$kw == "cmd"} { | ||||
|              | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (\".*?\")} $l m cmd hint keys] { | ||||
|                 InsertCommand $menu $cmd $hint "" $keys | ||||
|             } elseif [regexp -- {(\".*?\") (\".*?\")} $l m cmd hint] { | ||||
|                 InsertCommand $menu $cmd $hint "" "" | ||||
|             } | ||||
|              | ||||
|             if [regexp -- {separator} $l m] { | ||||
|                 InsertSeparator $menu | ||||
|             } | ||||
|         } | ||||
|         if {$kw == "imagecmd"} { | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif} $l m cmd hint im] { | ||||
|                 InsertCommand $menu $cmd $hint $im "" | ||||
|             } | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif (\".*?\")} $l m cmd hint im keys] { | ||||
|                 InsertCommand $menu $cmd $hint $im $keys | ||||
|             } | ||||
|         }             | ||||
|     } | ||||
|     close $fHandle | ||||
| } | ||||
|  | ||||
| set mnuNum 0 | ||||
| proc CreateToolMenu {frame image hint} { | ||||
|     global dir font mnuNum color relief | ||||
|     if {$frame == "main"} { | ||||
|         set frm frmTool | ||||
|     } else { | ||||
|         set frm frmToolEdit | ||||
|     } | ||||
|     image create photo img_mnu$mnuNum -format gif -file [file join $dir(img) $image] | ||||
|     menubutton .$frm.$frame.m$mnuNum -image img_mnu$mnuNum -border 0\ | ||||
|     -menu .$frm.$frame.m$mnuNum.m -background $color(bg) -relief $relief(menu) | ||||
|      | ||||
|     set menu [menu .$frm.$frame.m$mnuNum.m -background $color(bg)] | ||||
|     pack .$frm.$frame.m$mnuNum -side left | ||||
|     balloon .$frm.$frame.m$mnuNum set [::msgcat::mc [string trim $hint "\""]] | ||||
|     incr mnuNum | ||||
|     return $menu | ||||
| } | ||||
| set cmdNum 0 | ||||
| proc InsertCommand {m cmd hint image keys} { | ||||
|     global font dir cmdNum color | ||||
|     set comm [string trim $cmd "\""] | ||||
|     set hint [string trim $hint "\""] | ||||
|     #puts "Create cmd - $m -  $cmd $hint $image" | ||||
|      | ||||
|     if {$keys != ""} { | ||||
|         set keys [string trim $keys "\""] | ||||
|         #puts "$keys - $comm" | ||||
|         bind . <$keys> "$comm" | ||||
|         if {$image != ""} { | ||||
|             set image [string trim $image] | ||||
|             image create photo img_$cmdNum -format gif -file [file join $dir(img) $image.gif] | ||||
|             $m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\ | ||||
|             -command $comm -image img_$cmdNum -background $color(bg) -accelerator "$keys" | ||||
|         } else { | ||||
|             $m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\ | ||||
|             -command $comm -background $color(bg) -accelerator "$keys" | ||||
|         } | ||||
|     } else { | ||||
|         if {$image != ""} { | ||||
|             set image [string trim $image] | ||||
|             image create photo img_$cmdNum -format gif -file [file join $dir(img) $image.gif] | ||||
|             $m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\ | ||||
|             -command $comm -image img_$cmdNum -background $color(bg) | ||||
|         } else { | ||||
|             $m add command -label [::msgcat::mc $hint] -font $font(normal) -state normal\ | ||||
|             -command $comm -background $color(bg) | ||||
|         } | ||||
|     } | ||||
|     incr cmdNum | ||||
| } | ||||
| proc InsertSeparator {m} { | ||||
|     $m add separator | ||||
| } | ||||
|  | ||||
| proc CreateSeparator {frame} { | ||||
|     global dir btnNum color relief | ||||
|     if {$frame == "main"} { | ||||
|         set frm frmTool | ||||
|     } else { | ||||
|         set frm frmToolEdit | ||||
|     } | ||||
|     set btn [frame .$frm.$frame.btn_$btnNum -width 10 -background $color(bg) -borderwidth 0] | ||||
|     #set btn [Button .$frm.$frame.btn_$btnNum -relief $relief(btn) -bd 2 -background $color(bg) -width 0 -state disable] | ||||
|     pack $btn -side left -fill y -expand 1 | ||||
|     incr btnNum | ||||
| } | ||||
|  | ||||
| proc ToolBar {frm frame file} { | ||||
|     global tool | ||||
|     if {$tool($frame) == 0} { | ||||
|         #set tool($frame) 0 | ||||
|         if {$frame == "main"} { | ||||
|             destroy .$frm.$frame | ||||
|             .frmTool configure -height 1 | ||||
|         } else { | ||||
|             destroy .$frm.$frame | ||||
|             .frmToolEdit configure -height 1 | ||||
|         } | ||||
|         return | ||||
|     } elseif {$tool($frame) == 1} { | ||||
|         #set tool($frame) 1 | ||||
|         ReadToolBar $file | ||||
|         return | ||||
|     } | ||||
| } | ||||
|  | ||||
| ############################################### | ||||
| proc CutPast {action} { | ||||
|     global nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|      | ||||
|     set text $nb.f$node.f.text | ||||
|     switch -- $action { | ||||
|         "copy" { | ||||
|             tk_textCopy $text | ||||
|         } | ||||
|         "cut" { | ||||
|             tk_textCut $text | ||||
|         } | ||||
|         "paste" { | ||||
|             tk_textPaste $text | ||||
|         } | ||||
|         "undo" { | ||||
|             $text undo | ||||
|         } | ||||
|     } | ||||
| } | ||||
| proc Select {type} { | ||||
|     global nb activeFile | ||||
|     set text $nb.f$activeFile.f.text | ||||
|     if {$type == "all"} { | ||||
|         $text tag remove sel 1.0 end | ||||
|         $text tag add sel 1.0 end | ||||
|     } elseif {$type == "remove"} { | ||||
|         $text tag remove sel 1.0 end | ||||
|     } | ||||
| } | ||||
|  | ||||
| proc PopupMenu {text x y} { | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         tk_popup .frmMenu.mnuEdit.m.selection $x $y | ||||
|     } else { | ||||
|         tk_popup .frmMenu.mnuEdit.m $x $y | ||||
|     } | ||||
| } | ||||
| proc PopupMenuTab {menu x y} { | ||||
|     tk_popup $menu $x $y | ||||
| } | ||||
|  | ||||
| ########### | ||||
| ## STATUS BAR ## | ||||
| set frm1 [frame .frmStatus.frmFileAttr -background $color(bg)] | ||||
| set frm2 [frame .frmStatus.frmActive -background $color(bg)] | ||||
| set frm3 [frame .frmStatus.frmFileSize -relief sunken -background $color(bg)] | ||||
| set frm4 [frame .frmStatus.frmPos -background $color(bg)] | ||||
| set frm5 [frame .frmStatus.frmFile -background $color(bg)] | ||||
| set frm6 [frame .frmStatus.frmOvwrt -background $color(bg)] | ||||
| set frm7 [frame .frmStatus.frmOther -background $color(bg)] | ||||
| pack $frm1 $frm4 $frm6 $frm2 $frm5 $frm3 -side left -fill x | ||||
| pack $frm7 -side left -fill x -expand true | ||||
| set status(fileAttr) [label $frm1.lblFileAttr -width 30 -relief sunken -font $font(normal) -anchor w -background $color(bg)] | ||||
| pack $frm1.lblFileAttr -fill x | ||||
| set status(pos) [label $frm4.lblPos -width 10 -relief sunken -font $font(bold) -anchor w -background $color(bg)] | ||||
| pack $frm4.lblPos -fill x | ||||
| set status(ovwrt) [label $frm6.lblOvwrt -width 10 -relief sunken -font $font(normal) -anchor center -background $color(bg)] | ||||
| pack $frm6.lblOvwrt -fill x | ||||
| set status(active) [label $frm2.lblActive -width 25 -relief sunken -font $font(normal) -anchor center -background $color(bg) ] | ||||
| pack $frm2.lblActive -fill x | ||||
| set status(fileSize) [label $frm3.lblFileSize -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)] | ||||
| pack $frm3.lblFileSize -fill x | ||||
| set status(encode) [label $frm5.lblFile -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)] | ||||
| pack $frm5.lblFile -fill x | ||||
| set status(other) [label $frm7.lblOther -width 10 -relief sunken -font $font(normal) -anchor w -background $color(bg)] | ||||
| pack $frm7.lblOther -fill x | ||||
|  | ||||
| ####### | ||||
| bind . <Control-n> {FileDialog new} | ||||
| bind . <Control-ograve> {FileDialog new} | ||||
| bind . <Control-o> {FileDialog open} | ||||
| bind . <Control-ugrave> {FileDialog open} | ||||
|  | ||||
| $nbTree raise fileTree | ||||
| ############ | ||||
| $status(ovwrt) configure -text [::msgcat::mc "Insert"] | ||||
|  | ||||
| ReadToolBarFile $dir(gui) ;# system toolbars | ||||
| ReadToolBarFile $dir(work_gui) ;# user toolbars | ||||
| ReadHotKeysFile $dir(gui) ;# system hotkeys | ||||
| ReadHotKeysFile $dir(work_gui) ;# users hotkeys | ||||
|  | ||||
| ## FINDE EXTERNAL MODULES ## | ||||
| FindModule | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										333
									
								
								lib/modules/help.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										333
									
								
								lib/modules/help.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,333 @@ | ||||
| ######################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################### | ||||
| proc ShowHelp {} { | ||||
|     if {[winfo exists .help] == 1} { | ||||
|         focus -force .help | ||||
|         raise .help | ||||
|     } else { | ||||
|         TopLevelHelp | ||||
|     } | ||||
|     if {[catch {set word [selection get]} error] != 0} { | ||||
|         set word " " | ||||
|     } else { | ||||
|         puts $word | ||||
|         TopLevelHelp | ||||
|         SearchWord $word | ||||
|     } | ||||
| } | ||||
|  | ||||
| proc HlpTreeOneClick {node} { | ||||
|     global font(normal) hlpTree wordList hlpNoteBook findString dir(img) font | ||||
|     global lstSearch nodeParent | ||||
|     $hlpTree selection set $node | ||||
|     set nodeParent [$hlpTree parent $node] | ||||
|     set item [$hlpTree itemcget $node -data] | ||||
|     set file [string range $item 4 end] | ||||
|     #puts "$file" ;#debuf info | ||||
|     if {[string range $item 0 2] == "toc"} { | ||||
|         #        $hlpTree configure | ||||
|     } | ||||
|     if {[$hlpTree itemcget $node -open] == 1} { | ||||
|         $hlpTree itemconfigure $node -open 0 | ||||
|     } elseif {[$hlpTree itemcget $node -open] == 0} { | ||||
|         $hlpTree itemconfigure $node -open 1 | ||||
|     } | ||||
|     if {[string range $item 0 2] == "doc"} { | ||||
|         GetContent $file | ||||
|     } | ||||
| } | ||||
| ## GETTING TABLE OF CONTENT ## | ||||
| proc GetTOC {} { | ||||
|     global dir hlpTree dir font lstSearch arr help locale | ||||
|     foreach dirHlp [lsort [glob -nocomplain [file join $dir(hlp) *]]] { | ||||
|         if {[file isdirectory $dirHlp] == 1} { | ||||
|             set dirHlp [file join $dir(hlp) $locale] | ||||
|             puts $dirHlp | ||||
|         } else { | ||||
|             set dirHlp $dir(hlp) | ||||
|         } | ||||
|     } | ||||
|     if {[info exists dirHlp] != 1} {set dirHlp $dir(hlp)} | ||||
|     puts $dirHlp | ||||
|     foreach file [lsort [glob -nocomplain [file join $dirHlp *toc.html]]] { | ||||
|         set fileName [file join $file] | ||||
|         set tocFile [open $fileName r] | ||||
|         fconfigure $tocFile -encoding binary | ||||
|          | ||||
|         set dot "_" | ||||
|         set nodeParent [file dirname $fileName] | ||||
|         while {[gets $tocFile line]>=0} { | ||||
|             set a "" | ||||
|             set b "" | ||||
|             set line [encoding convertfrom $help(encode) $line] | ||||
|             if {[regexp -nocase "<title>.+\</title>" $line a]} { | ||||
|                 if {[regexp ">.+\<" $line a]} { | ||||
|                     set length [string length $a] | ||||
|                     set title [string range $a 1 [expr $length-2]] | ||||
|                     #puts $nodeParent ;# debug info | ||||
|                     $hlpTree insert end root $nodeParent -text "$title" -font $font(normal) \ | ||||
|                     -data "toc_$nodeParent" -open 0\ | ||||
|                     -image [Bitmap::get [file join $dir(img) books.gif]] | ||||
|                 } | ||||
|             } elseif {[regexp "\".+\"" $line a]} { | ||||
|                 set data [string range $a 1 [expr [string last "\"" $a]-1]] | ||||
|                 if {[regexp ">.+\<" $line b]} { | ||||
|                     set line [string range $b 1 [expr [string first "<" $b]-1]] | ||||
|                     regsub -all {[ :]} $line "_" subNode | ||||
|                     #regsub -all ":" $ubNode "_" node | ||||
|                     set subNode "$nodeParent$dot$subNode" | ||||
|                     if {[info exists arr($subNode)] == 0} { | ||||
|                         set arr($subNode) [file join $dirHlp $data] | ||||
|                     } | ||||
|                     set data [file join $dirHlp $data] | ||||
|                     #puts "$subNode" ;# debug info | ||||
|                     $hlpTree insert end "$nodeParent" $subNode -text "$line"\ | ||||
|                     -font $font(normal) -data "doc_$data" -open 0\ | ||||
|                     -image [Bitmap::get [file join $dir(img) file.gif]] | ||||
|                     $lstSearch insert end $line | ||||
|                 }         | ||||
|             } else { | ||||
|                 break | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     $hlpTree configure -redraw 1 | ||||
| } | ||||
| proc SearchWord {word} { | ||||
|     global arr nBookTree | ||||
|     set word [string tolower [string trim $word]] | ||||
|     puts $word | ||||
|     $nBookTree raise hlpSearch | ||||
|     #    InsertEnt .help.frmBody.frmCat.nBookTree.fhlpSearch.frmScrhEnt.entSearch $word | ||||
|     foreach wrd [array names arr] { | ||||
|         set name "[file rootname [file tail $arr($wrd)]]" | ||||
|         set file "$arr($wrd)" | ||||
|         if {[string match "$word*" [string tolower $name]] == 1} { | ||||
|             GetContent $file | ||||
|         } | ||||
|     } | ||||
| } | ||||
| ## GETTING CONTENT FROM FILES ## | ||||
| proc GetContent {file} { | ||||
|     global dir hlpNoteBook font help | ||||
|     $hlpNoteBook raise [$hlpNoteBook page 0] | ||||
|     set node [$hlpNoteBook raise] | ||||
|     if {$node != ""} { | ||||
|         $hlpNoteBook delete hlpHTML | ||||
|     } | ||||
|     set nbTitle "" | ||||
|     set html "" | ||||
|     set file [open $file r] | ||||
|     fconfigure $file -encoding binary | ||||
|     while {[gets $file line]>=0} { | ||||
| #        if {$line == ""} { | ||||
| #            set html "<h1><3E><><EFBFBD><EFBFBD> $file <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD></h1>" | ||||
| #        } | ||||
|         set line [encoding convertfrom $help(encode) $line] | ||||
|         if {[regexp -nocase "<title>.+\</title>" $line a]} { | ||||
|             if {[regexp ">.+\<" $a a]} { | ||||
|                 set length [string length $a] | ||||
|                 set nbTitle [string range $a 1 [expr $length-2]] | ||||
|                 #puts $nbTitle | ||||
|                 #puts $a | ||||
|             } | ||||
|         } | ||||
|         append html $line | ||||
|     } | ||||
|     set frmHTML [$hlpNoteBook insert end hlpHTML -text $nbTitle] | ||||
|     set txt [text $frmHTML.txtHTML  -yscrollcommand "$frmHTML.yscroll set" \ | ||||
|             -relief sunken -wrap word -highlightthickness 0 -font $font(normal)\ | ||||
|             -selectborderwidth 0 -selectbackground #55c4d1 -width 10] | ||||
|     scrollbar $frmHTML.yscroll -relief sunken -borderwidth {1} -width {10} -takefocus 0\ | ||||
|             -command "$frmHTML.txtHTML yview" | ||||
|      | ||||
|     pack $txt -side left -fill both -expand true | ||||
|     pack $frmHTML.yscroll -side left -fill y | ||||
|     $hlpNoteBook raise hlpHTML | ||||
|     focus -force $txt | ||||
|     HMinit_win $txt | ||||
|     #HMlink_callback LinkCallback | ||||
|     HMset_state $txt -size 0 | ||||
|     HMset_indent $txt 1.2 | ||||
|     HMparse_html $html "HMrender $txt" | ||||
|     #HM::tag_title .help "Help - $nbTitle" | ||||
| $txt configure -state disabled | ||||
|  | ||||
| } | ||||
| ## GOTO URL PROCEDURE ## | ||||
| proc LinkCallback {w url} { | ||||
|     global dir nodeParent | ||||
|     set url "[file join $dir(hlp) $nodeParent $url]" | ||||
|     if {[catch {open $url r} oHTML]} { | ||||
|         tk_messageBox -title "[::msgcat::mc "Error open URL"]"\ | ||||
|         -message "[::msgcat::mc "Can't found file:"] $url"\ | ||||
|         -icon error -type ok | ||||
|     } else { | ||||
|         GetContent $url | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| ##   autor DEDERER    ## | ||||
| proc LinkCallback_ {w url} { | ||||
|     global dir | ||||
|     set url "[file join $dir(hlp) $url]" | ||||
|     if {[catch {open $url r} oHTML]} { | ||||
|         tk_messageBox -title "[::msgcat::mc "Error open URL"]"\ | ||||
|         -message "[::msgcat::mc "Can't founf file: $url"]"\ | ||||
|         -icon error -type ok | ||||
|     } else { | ||||
|         set html [read $oHTML] | ||||
|         $w configure -state normal | ||||
|         HMreset_win $w | ||||
|         HMparse_html $html "HMrender $w" | ||||
|         $w configure -state disable | ||||
|     } | ||||
|     #HMrender [winfo toplevel $w] $url | ||||
| } | ||||
|  | ||||
| ## MAIN HELP WINDOW ## | ||||
| proc TopLevelHelp {} { | ||||
|     global font hlpTree hlpNoteBook nBookTree homeDir dir lstSearch w frmSrchList | ||||
|     set w .help | ||||
|     set w_exist [winfo exists $w] | ||||
|     if !$w_exist  { | ||||
|         toplevel $w | ||||
|         #    wm resizable .help 0 0 | ||||
|         wm geometry $w 600x400+0+0 | ||||
|         wm title $w [::msgcat::mc "Help"] | ||||
|         #    wm protocol $w WM_DELETE_WINDOW {destroy .msg .help} | ||||
|         #wm geometry . 600x400+0+0 | ||||
|         wm title $w [::msgcat::mc "Help"] | ||||
|          | ||||
|         frame $w.frmMenu -border 1 -relief raised | ||||
|         frame $w.frmTool -border 1 -relief raised | ||||
|         frame $w.frmBody -border 1 -relief raised | ||||
|         frame $w.frmStatus -border 1 -relief sunken | ||||
|         pack $w.frmMenu -side top -padx 1 -fill x | ||||
|         pack $w.frmTool -side top -padx 1 -fill x | ||||
|         pack $w.frmBody -side top -padx 1 -fill both -expand true | ||||
|         pack $w.frmStatus -side top -padx 1 -fill x | ||||
|          | ||||
|          | ||||
|         button $w.frmTool.btnBack -relief groove -font $font(bold) -command Back -state disable | ||||
|         button $w.frmTool.btnForward -relief groove -font $font(bold) -command Forward -state disable | ||||
|         button $w.frmTool.btnRefresh -relief groove -font $font(bold) -command Refresh -state disable | ||||
|         button $w.frmTool.btnPrint -relief groove -font $font(bold) -command Print -state disable | ||||
|         image create photo imgBack -format gif -file [file join $dir(img) back.gif] | ||||
|         image create photo imgForward -format gif -file [file join $dir(img) forward.gif] | ||||
|         image create photo imgRefresh -format gif -file [file join $dir(img) refresh.gif] | ||||
|         image create photo imgPrint -format gif -file [file join $dir(img) printer.gif] | ||||
|         $w.frmTool.btnBack configure -image imgBack | ||||
|         $w.frmTool.btnForward configure -image imgForward | ||||
|         $w.frmTool.btnRefresh configure -image imgRefresh | ||||
|         $w.frmTool.btnPrint configure -image imgPrint | ||||
|         pack $w.frmTool.btnBack $w.frmTool.btnForward $w.frmTool.btnRefresh $w.frmTool.btnPrint\ | ||||
|                 -side left -fill x | ||||
|          | ||||
|          | ||||
|         set frmCat [frame $w.frmBody.frmCat -border 1 -relief sunken] | ||||
|         pack $frmCat -side left -fill y | ||||
|         set frmWork [frame $w.frmBody.frmWork -border 1 -relief sunken] | ||||
|         pack $frmWork -side left -fill both -expand true | ||||
|          | ||||
|         set nBookTree [NoteBook $frmCat.nBookTree -font $font(normal)] | ||||
|         pack $nBookTree -fill both -expand true -padx 2 -pady 2 | ||||
|         set frmTreeNb [$nBookTree insert end hlpTree -text "[::msgcat::mc "Contents"]"] | ||||
|         set frmSearch [$nBookTree insert end hlpSearch -text "[::msgcat::mc "Search"]"] | ||||
|         $nBookTree raise hlpTree | ||||
|          | ||||
|         set frmScrlX [frame $frmTreeNb.frmScrlX -border 0 -relief sunken] | ||||
|         set frmTree [frame $frmTreeNb.frmTree -border 1 -relief sunken] | ||||
|         set hlpTree [Tree $frmTree.tree \ | ||||
|                 -relief sunken -borderwidth 1 -width 20 -highlightthickness 0\ | ||||
|                 -redraw 0 -dropenabled 1 -dragenabled 1 -dragevent 3 \ | ||||
|                 -yscrollcommand {.help.frmBody.frmCat.nBookTree.fhlpTree.frmTree.scrlY set} \ | ||||
|                 -xscrollcommand {.help.frmBody.frmCat.nBookTree.fhlpTree.frmScrlX.scrlX set} \ | ||||
|                 -background "#d3d3d3" -selectbackground "#55c4d1" \ | ||||
|                 -droptypes { | ||||
|             TREE_NODE    {copy {} move {} link {}} | ||||
|             LISTBOX_ITEM {copy {} move {} link {}} | ||||
|         } -opencmd   "" -closecmd  ""] | ||||
|          | ||||
|             pack $frmTree -side top -fill y -expand true | ||||
|             pack $frmScrlX -side top -fill x | ||||
|              | ||||
|             scrollbar $frmTree.scrlY -command {$hlpTree yview} \ | ||||
|                     -borderwidth {1} -width {10} -takefocus 0 | ||||
|             pack $hlpTree $frmTree.scrlY -side left -fill y | ||||
|              | ||||
|             scrollbar $frmScrlX.scrlX -command {$hlpTree xview} \ | ||||
|                     -orient horizontal -borderwidth {1} -width {10} -takefocus 0 | ||||
|             pack $frmScrlX.scrlX -fill x -expand true | ||||
|              | ||||
|             set frmSrchList [frame $frmSearch.frmScrhList -border 0 -relief sunken] | ||||
|             set frmSrchEnt [frame $frmSearch.frmScrhEnt -border 0 -relief sunken] | ||||
|             set frmSrchScrollX [frame $frmSearch.frmScrhScrollX -border 0 -relief sunken] | ||||
|             pack $frmSrchEnt -side top -fill x | ||||
|             pack $frmSrchList -side top -fill both -expand true | ||||
|             pack $frmSrchScrollX -side top -fill x | ||||
|              | ||||
|             entry $frmSrchEnt.entSearch | ||||
|             set lstSearch [listbox $frmSrchList.lstSearch -font $font(normal)\ | ||||
|                     -yscrollcommand\ | ||||
|                     {.help.frmBody.frmCat.nBookTree.fhlpSearch.frmScrhList.scrListY set}\ | ||||
|                     -xscrollcommand\ | ||||
|                     {.help.frmBody.frmCat.nBookTree.fhlpSearch.frmScrhScrollX.scrListX set}\ | ||||
|                     -selectmode single -selectbackground #55c4d1\ | ||||
|                     -selectborderwidth 0] | ||||
|             scrollbar $frmSrchList.scrListY -command\ | ||||
|                     {$frmSrchList.lstSearch yview} -borderwidth {1} -width {10} -takefocus 0 | ||||
|              | ||||
|             pack $frmSrchEnt.entSearch -side top -fill x -expand true | ||||
|              | ||||
|             pack $frmSrchList.lstSearch -side left -fill both -expand true | ||||
|             pack $frmSrchList.scrListY -side left -fill y | ||||
|              | ||||
|             scrollbar $frmSrchScrollX.scrListX -orient horizontal -command\ | ||||
|                     {$frmSrchList.lstSearch xview} -borderwidth {1} -width {10} -takefocus 0 | ||||
|             pack $frmSrchScrollX.scrListX -fill x | ||||
| #            $hlpTree bindText <ButtonRelease-4> [puts %k] | ||||
| #            $hlpTree bindText <ButtonRelease-3> [puts %k] | ||||
| #            bind $frmTree <ButtonPress-4> {$frmSrchList.lstSearch xview} | ||||
|     #        $hlpTree bindText  <Double-ButtonPress-1> "HlpTreeDoubleClick [$hlpTree selection get]" | ||||
|     #        $hlpTree bindImage  <Double-ButtonPress-1> "HlpTreeDoubleClick [$hlpTree selection get]" | ||||
|             $hlpTree bindText  <ButtonPress-1> "HlpTreeOneClick [$hlpTree selection get]" | ||||
|             $hlpTree bindImage  <ButtonPress-1> "HlpTreeOneClick [$hlpTree selection get]" | ||||
|             bind .help <Escape> "destroy .help" | ||||
|  | ||||
| #        bind $frmSrchEnt.entSearch <KeyRelease>\ | ||||
| #                {SearchWord [Text .help.frmBody.frmCat.nBookTree.fhlpSearch.frmScrhEnt.entSearch]} | ||||
|          | ||||
|         #bind $w <Escape> exit | ||||
|         #bind $frmTree <Down> {TreeClick [$hlpTree selection get]} | ||||
|         #bind $frmTree <Up> {TreeClick [$hlpTree selection get]} | ||||
|         #bind $frmTree <Return> {TreeClick [$hlpTree selection get]} | ||||
|         bind $frmTree.tree.c <Button-4> "$hlpTree yview scroll -3 units" | ||||
|         bind $frmTree.tree.c <Button-5> "$hlpTree yview scroll  3 units" | ||||
|         bind $frmTree.tree.c <Shift-Button-4> "$hlpTree xview scroll -2 units" | ||||
|         bind $frmTree.tree.c <Shift-Button-5> "$hlpTree xview scroll  2 units" | ||||
|          | ||||
|         set hlpNoteBook [NoteBook $frmWork.hlpNoteBook -font $font(normal)] | ||||
|         pack $hlpNoteBook -fill both -expand true -padx 2 -pady 2 | ||||
|         GetTOC | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| ################################################## | ||||
| #TopLevelHelp | ||||
| #GetTOC | ||||
|  | ||||
| #GetContent $dir(hlp)/tcl.toc.html | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										61
									
								
								lib/modules/hotkeys.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										61
									
								
								lib/modules/hotkeys.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,61 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2004, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc ReadHotKeysFile {_dir} { | ||||
|     global dir | ||||
|     foreach file [lsort [glob -nocomplain [file join $_dir hotkeys *]]] { | ||||
|         puts "Found hotkeys file - \'$file\'" | ||||
|         ReadHotKeys $file | ||||
|     }     | ||||
| } | ||||
|  | ||||
|  | ||||
| set mnum 0 | ||||
| proc ReadHotKeys {file} { | ||||
|     global dir font mnum | ||||
|     set menu_root ".frmMenu.mnuEdit.m.hotkeys" | ||||
|     set menu $menu_root | ||||
|     puts "Read HotKeys settings from \'$file\'" | ||||
|      | ||||
|     set fHandle [open $file] | ||||
|     while {[gets $fHandle line]>=0} { | ||||
|         set line [string trim $line] | ||||
|         set kw [string range $line 0 [expr [string first " " $line]-1]] | ||||
|         set l [string range $line [expr [string first " " $line] +1] end] | ||||
|         if {$l == "Separator"} { | ||||
|             CreateSeparator $frame | ||||
|         } | ||||
|         if {$kw == "menu"} { | ||||
|             if [regexp -- {(.*?) (\".*?\")} $l m img hint] { | ||||
|                 $menu_root add cascade -label $hint -menu $menu.m_$mnum -font $font(normal) | ||||
|                 set menu [menu $menu.m_$mnum]  | ||||
|                 incr mnum | ||||
|             } | ||||
|         } | ||||
|         if {$kw == "cmd"} { | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (\".*?\")} $l m cmd hint keys] { | ||||
|                 InsertCommand $menu $cmd $hint "" $keys | ||||
|             } elseif [regexp -- {(\".*?\") (\".*?\")} $l m cmd hint] { | ||||
|                 InsertCommand $menu $cmd $hint "" "" | ||||
|             } | ||||
|             if [regexp -- {separator} $l m] { | ||||
|                 InsertSeparator $menu | ||||
|             } | ||||
|         } | ||||
|         if {$kw == "imagecmd"} { | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif} $l m cmd hint im] { | ||||
|                 InsertCommand $menu $cmd $hint $im "" | ||||
|             } | ||||
|             if [regexp -- {(\".*?\") (\".*?\") (.*?)\.gif (\".*?\")} $l m cmd hint im keys] { | ||||
|                 InsertCommand $menu $cmd $hint $im $keys | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|     close $fHandle | ||||
|      | ||||
| } | ||||
|  | ||||
							
								
								
									
										1485
									
								
								lib/modules/htmllib.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1485
									
								
								lib/modules/htmllib.tcl
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										459
									
								
								lib/modules/htmltable.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										459
									
								
								lib/modules/htmltable.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,459 @@ | ||||
| set HMtable(unique) 0 | ||||
| set HMtable(level) 0 | ||||
|  | ||||
| ;# RCSID: $Header: /home/clif.clif/CVS_ROOT/TclXexample/htmltable.tcl,v 1.6 1999/02/01 05:00:18 clif Exp $ | ||||
| proc HMTBL_insert_FromMap { win text id } { | ||||
| 	global HMtag_map HMinsert_map HMlist_elements HMtable | ||||
|  | ||||
| 	upvar #0 HM$win var | ||||
|  | ||||
| 	# insert white space (with current font) | ||||
| 	# adding white space can get a bit tricky.  This isn't quite right | ||||
|  | ||||
| 	set bad [catch {$win insert $var(S_insert) $HMinsert_map($id) "space $var(font)"}] | ||||
|  | ||||
| 	if {!$bad && [lindex $var(fill) end]} { | ||||
| 		set text [string trimleft $text] | ||||
| 	} | ||||
|  | ||||
| 	if {[info exists HMinsert_map($id)] && [string match $HMinsert_map($id) "\n"]} { | ||||
|       	    $win insert $var(S_insert) "\t" | ||||
| 	    for {set i 0} {$i < $HMtable(column)} {incr i} { | ||||
|       	        $win insert $var(S_insert) "\t" | ||||
| 	    } | ||||
| 	} | ||||
| }	 | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMtag_table {win param text}-- | ||||
| #    Process the <TABLE> tag - Called from html_library | ||||
| #    Creates a new text widget to hold the table | ||||
| #    Creates HM.WindowName state variables with default values | ||||
| #    Sets HM.win(divert) to point to the new window so that | ||||
| #      all text being processed is directed to the table text widget. | ||||
| # | ||||
| # Arguments | ||||
| #   win		The window that will hold everything | ||||
| #   param	Any parameters in the <TABLE ...> tag | ||||
| #   text	The name of a variable with associated text | ||||
| # Results | ||||
| #    | ||||
| #  | ||||
| proc HMtag_table {win param text} { | ||||
|     global HMtable | ||||
|  | ||||
|     upvar #0 HM$win var | ||||
|      | ||||
|     # This tracks the level of tables being rendered -  | ||||
|     #  When it returns to 0, we can reset the HM_insert_FromMap to the | ||||
|     #  original value. | ||||
|  | ||||
|     if {$HMtable(level) == 0} { | ||||
|         rename HMinsert_FromMap HM_ORIG_insert_FromMap | ||||
|         rename HMTBL_insert_FromMap HMinsert_FromMap | ||||
|     } | ||||
|     incr HMtable(level) | ||||
|      | ||||
|     # Define a unique name for the text widget  | ||||
|     #   that will contain this table | ||||
|  | ||||
|     set newTable .txt_$HMtable(unique) | ||||
|  | ||||
|     # Divert output to the new window. | ||||
|  | ||||
|     set var(divert) $newTable | ||||
|      | ||||
|     # Make a new global state variable for the new text widget | ||||
|  | ||||
|     upvar #0 HM$newTable newvar | ||||
|     | ||||
|     # and initialize it | ||||
|  | ||||
|     HMinit_state $newTable | ||||
|     set newvar(family) times | ||||
|     set newvar(size) 12 | ||||
|     set newvar(weight) normal | ||||
|     set newvar(style) roman | ||||
|     set newvar(indent) 0 | ||||
|     set newvar(stop) 0 | ||||
|     set newvar(S_insert) end | ||||
|     set newvar(oldWindow) $win | ||||
|      | ||||
|     # Create the new text widget | ||||
|     update; update idle; | ||||
|     # puts "PARENT: ($win) [expr [$win cget -width] -2]" | ||||
|     # puts "PARENT: ($win) [expr [$win cget -insertwidth] -2]" | ||||
|     # puts "PARENT: ($win) [winfo width $win] " | ||||
|     # puts "GRID: [wm grid .]" | ||||
|     set curFont [HMx_font times $newvar(size) medium r] | ||||
|     # puts "curFont: $curFont" | ||||
|     text $newTable -width [expr [$win cget -width] -2] -background white \ | ||||
|         -font $curFont -wrap none | ||||
|      | ||||
|     # puts "TEXT GRID: [catch {wm grid $newTable} xx]" | ||||
|     # puts "$xx" | ||||
|     # puts "TEXT: ($newTable) [winfo width $newTable] " | ||||
|     # Set the row and column descriptors. | ||||
|  | ||||
|     set HMtable(row) 0 | ||||
|     set HMtable(column) 0 | ||||
|     set HMtable(maxCol) 0 | ||||
|      | ||||
|     # increment the unique number pointer so that the next table will | ||||
|     #  get a new text widget name. | ||||
|  | ||||
|     incr HMtable(unique) | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMtag_/table {win param text}-- | ||||
| #    Process the </TABLE> tag | ||||
| #    This procedure resets the window to receive text to the master | ||||
| #    window. | ||||
| # Arguments | ||||
| #    | ||||
| #   table	The window that holds the table | ||||
| #   param	Any parameters in the </TABLE ...> tag | ||||
| #   text	The name of a variable with associated text | ||||
| #  | ||||
| # Results | ||||
| #   Maps the new window into the master text window. | ||||
| #   Sets tab locations in new window | ||||
| # | ||||
| proc HMtag_/table {table param text} { | ||||
|     global HMtable errorInfo | ||||
|  | ||||
|     # Set the var pointer for the table text widget | ||||
|     upvar #0 HM$table varTbl | ||||
|  | ||||
|     # This tracks the level of tables being rendered -  | ||||
|     #  When it returns to 0, we can reset the HM_insert_FromMap to the | ||||
|     #  original value. | ||||
|  | ||||
|     incr HMtable(level) -1 | ||||
|     if {$HMtable(level) == 0} { | ||||
|         rename HMinsert_FromMap HMTBL_insert_FromMap  | ||||
|         rename HM_ORIG_insert_FromMap HMinsert_FromMap  | ||||
|     } | ||||
|     incr HMtable(level) | ||||
|  | ||||
|  | ||||
|     # Set the win and var variables to point to the master text widget, | ||||
|     #   instead of the table text widget. | ||||
|     set win $varTbl(oldWindow) | ||||
|     upvar #0 HM$win var | ||||
|  | ||||
|     # unset var(divert) so that text will no longer be diverted to  | ||||
|     #  the table window | ||||
|     unset var(divert) | ||||
|  | ||||
|     # Get the list of tags - to make the loop faster | ||||
|     set alltags [$table tag names] | ||||
|      | ||||
|     set maxFont 10; | ||||
|     foreach tag $alltags { | ||||
|         if {[string first "font:" $tag] == 0} { | ||||
| 	    set fontlst [split $tag ":"] | ||||
| 	    set size [lindex $fontlst 2] | ||||
| 	    set family [lindex $fontlst 1] | ||||
| 	    if {($size >= $maxFont) && ([string match $family  "courier"])} { | ||||
| 	        set maxFont $size | ||||
| 		set maxFamily $family | ||||
| 		set txtfont [list [lindex $fontlst 1] [lindex $fontlst 2] [lindex $fontlst 3]] | ||||
| 		} | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| ;# set f [catch {eval HMx_font $txtfont} rslt] | ||||
| ;# puts "F: $f rslt: $rslt" | ||||
| ;#     puts "Plus scaling: [eval HMx_font $txtfont]" | ||||
|  | ||||
|     set txtfont [eval HMx_font $txtfont]; | ||||
|     set maxFont [lindex $txtfont 1] | ||||
|  | ||||
|  | ||||
| # puts "txtfont: $txtfont maxFont: $maxFont xfont: $var(xfont) $varTbl(xfont)" | ||||
| # puts "[$table dump 1.0 20.0]" | ||||
|  | ||||
|     # Reset the height of the table text widget to match the number of | ||||
|     # rows actually used  and insert it into the master text widget  | ||||
|      | ||||
|     set numrow [lindex [split [$table index end] .] 0] | ||||
|  | ||||
|     $table configure -height [expr 1 + $numrow]  -font $txtfont | ||||
|     $win window create $var(S_insert) -window $table | ||||
|     update; update idle; | ||||
|  | ||||
| # puts "[$table dump 0.0 end]" | ||||
| # puts "INDEX: [$table index end]" | ||||
|      | ||||
|     set parentPixelWidth [winfo width $win] | ||||
|     set tablePixelWidth [winfo width $table] | ||||
|      | ||||
|     set tableCharWidth [$table cget -width] | ||||
|     incr tableCharWidth -1 | ||||
|  | ||||
|     $table configure -width $tableCharWidth | ||||
|     update; update idle; | ||||
|     set tablePixelWidth2 [winfo width $table] | ||||
|      | ||||
|     set charPixelWidth [expr $tablePixelWidth - $tablePixelWidth2] | ||||
|  | ||||
|     # Now, I know the width of a char in this font window, calc | ||||
|     #  how many chars wide to match the parent | ||||
|      | ||||
|     set newCharWidth [expr $parentPixelWidth/$charPixelWidth -2] | ||||
|     $table configure -width $newCharWidth | ||||
|  | ||||
|     # Make a simple little ruler for debugging help. | ||||
| #    canvas .c932 -height 30 -width $tablePixelWidth -background yellow | ||||
| #    for {set i 0} {$i < $tablePixelWidth} {incr i 50} { | ||||
| #        if {($i % 100) == 50} { | ||||
| #            .c932 create line $i 0 $i 15 -fill green | ||||
| #	} else { | ||||
| #            .c932 create line $i 0 $i 30 -fill blue | ||||
| #	} | ||||
| #    } | ||||
| #    $table window create 2.0 -window .c932 | ||||
|  | ||||
| #    while {$tablePixelWidth > $parentPixelWidth} { | ||||
| #        incr charWidth -1 | ||||
| #        # puts "$tablePixelWidth $parentPixelWidth $charWidth" | ||||
| #	$table configure -width $charWidth | ||||
| #        set tablePixelWidth [winfo width $table] | ||||
| #	update; update idle; | ||||
| #    } | ||||
|  | ||||
|  | ||||
|     # Clear out the bogus newlines | ||||
|  | ||||
| #    for {set i 0} {$i <= $HMtable(row)} {incr i} { | ||||
| #        for {set j 0} {$j < $HMtable(maxCol)} {incr j} { | ||||
| # | ||||
| #            # A cell may be blank.  Check for a tag before proceeding | ||||
| # | ||||
| #            if {[lsearch $alltags tbl.$i.$j] != -1} { | ||||
| #                set range [$table tag ranges tbl.$i.$j] | ||||
| #               # Delete the trailing \n that was added by html_lib.tcl. | ||||
| #                $table delete "[lindex $range 0] lineend" | ||||
| #            } | ||||
| #        } | ||||
| #    } | ||||
|  | ||||
|     # Find the longest string in each column to set the column width. | ||||
|      | ||||
|     # Initialize the sizes for the columns to 0 | ||||
|      | ||||
|     for {set j 0} {$j < $HMtable(maxCol)} {incr j} { | ||||
|         set colSize($j) 0; | ||||
|     } | ||||
|      | ||||
|  | ||||
|     set curCol 0; | ||||
|      | ||||
|     # Go through the dump of the text widget looking for text, and font | ||||
|     #   and table entry tags.   | ||||
|     # We track the current font and table cell so that when text comes in | ||||
|     #  we can calculate the size in the current font, and compare that to  | ||||
|     #  the previous largest size. | ||||
|  | ||||
|     foreach {id data index} [$table dump 0.0 end] { | ||||
|  | ||||
|         switch $id { | ||||
| 	    "tagon" { | ||||
| 	    	    switch -glob -- $data { | ||||
| 		        "font:*" { | ||||
| 			         set lst [split $data ":"] | ||||
|            		         set txtfont [list [lindex $lst 1] [lindex $lst 2] [lindex $lst 3]] | ||||
|                                  set txtfont [eval HMx_font $txtfont]; | ||||
| 			         } | ||||
| 		        "tbl.*"  { | ||||
| 			         set lst [split $data "."] | ||||
| 				 set curCol [lindex $lst 2] | ||||
| 			         } | ||||
| 		    } | ||||
| 	     } | ||||
| 	    "text"  { | ||||
| 	    		set line [string trim $data] | ||||
|                         # Adding a few extra chars seems to take care of | ||||
| 			#  some slack where it appears that htmllib is  | ||||
| 			#  adding some unexpected spaces | ||||
| 			set line "--$line" | ||||
|                         set len [font measure  $txtfont $line ] | ||||
|  | ||||
|                         if {$len > $colSize($curCol) } { | ||||
|                             set colSize($curCol) $len | ||||
| 			} | ||||
| 	    } | ||||
| 	} | ||||
|     } | ||||
|  | ||||
| #    for {set j 0} {$j < $HMtable(maxCol)} {incr j} { | ||||
| #        puts "$j: $colSize($j)" | ||||
| #    } | ||||
|  | ||||
|  | ||||
|  | ||||
|     # Define the tab stops to the maximum | ||||
|     #   size for each column. | ||||
|     # | ||||
|     # The pad value of 8 is to separate the columns | ||||
|     # | ||||
|     # If the toplevel window is gridded, divide the | ||||
|     #   tab position by the grid width | ||||
|     # | ||||
|      | ||||
|     set gridWidth [lindex [wm grid .] 2] | ||||
|      | ||||
|     set gridWidth [lindex [wm grid .] 2] | ||||
|     if {$gridWidth == ""} {set gridWidth 1} | ||||
|  | ||||
|     set tabStops 0; | ||||
|     set totl 0; | ||||
|  | ||||
|     for {set i 0; set j 1} {$j < $HMtable(maxCol)} {incr j; incr i} { | ||||
|         set wid [expr ($colSize($i) + 8)/$gridWidth]          | ||||
|         lappend tabStops [expr $wid + $totl]   | ||||
|         incr totl $wid | ||||
|     } | ||||
|  | ||||
|     # and set the tab stops. | ||||
|  | ||||
|     $table configure -tabs $tabStops | ||||
|      | ||||
|     # Wipe the first character - a bare (and useless) newline. | ||||
|  | ||||
|     $table delete 1.0 | ||||
|     # foreach {o t th}  [$table dump 0.0 end] { puts [format "%8s %7s .%-50s." $o $th $t]} | ||||
|     # foreach {o t th}  [$win dump 0.0 3.0] { puts "$o	$t	$th"} | ||||
|  | ||||
| } | ||||
|  | ||||
| ################################################################ | ||||
| #  proc HMtag_tr {win param text}-- | ||||
| #    Process the <TR> tag | ||||
| #    This begins a new row by setting the row and column values. | ||||
| # Arguments | ||||
| #    | ||||
| #   win		The window that holds the table | ||||
| #   param	Any parameters in the </TR ...> tag | ||||
| #   text	The name of a variable with associated text | ||||
| #  | ||||
| # Results | ||||
| #   Increments the row position. | ||||
| #   Sets the column to 0. | ||||
| #  | ||||
|  proc HMtag_tr {win param text} { | ||||
|     global HMtable | ||||
|     incr HMtable(row) | ||||
|     set HMtable(column) 0 | ||||
| } | ||||
|  | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMtag_td {win param text}-- | ||||
| #    Process the <TD> tag | ||||
| # Arguments | ||||
| #    | ||||
| #   win		The window that holds the table | ||||
| #   param	Any parameters in the <TD ...> tag | ||||
| #   text	The name of a variable with associated text | ||||
| #  | ||||
| # Results | ||||
| #   Sets a tag for the start of this table entry to be used to  | ||||
| #   set tab positions | ||||
| #  | ||||
| proc HMtag_td {win param text} { | ||||
|     global HMtable | ||||
|  | ||||
|     upvar $text t | ||||
|     set t "\t[string trim $t]" | ||||
|  | ||||
|     upvar #0 HM$win var | ||||
|     set var(Ttab) tbl.$HMtable(row).$HMtable(column) | ||||
| } | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMtag_/td {win param text}-- | ||||
| #     | ||||
| # Arguments | ||||
| # | ||||
| #   win		The window that holds the table | ||||
| #   param	Any parameters in the </TD ...> tag | ||||
| #   text	The name of a variable with associated text | ||||
| #  | ||||
| # Results | ||||
| #   Increments the column position.   | ||||
| #   If there are more columns in this table row than in previous | ||||
| #      rows, set the max column | ||||
|  | ||||
| proc HMtag_/td {win param text} { | ||||
|     global HMtable | ||||
|  | ||||
|     upvar $text t | ||||
|     set t "[string trim $t]" | ||||
|  | ||||
|     incr HMtable(column) | ||||
|     if {$HMtable(column) > $HMtable(maxCol)} { | ||||
| 	set HMtable(maxCol) $HMtable(column) | ||||
|     } | ||||
| } | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMlink_callback {win href}-- | ||||
| #    This proc is called by the html_library code to parse a  | ||||
| #	hypertext reference. | ||||
| # | ||||
| # Arguments | ||||
| #   win		The text window that is used by the html_library to | ||||
| #  		display the text | ||||
| #   href	A hypertext reference to use for the next hypertext. | ||||
| # | ||||
| # Results | ||||
| #   This example simply replaces the contents of the display with | ||||
| #   hardcoded new text. | ||||
|  | ||||
| proc HMlink_callback {win href} { | ||||
|     global newHTMLtxt | ||||
|  | ||||
|     puts "HMlink_callback was invoked with WIN: $win HREF: $href" | ||||
|  | ||||
|     # Clear the old contents from the window. | ||||
|  | ||||
|     HMreset_win $win | ||||
|  | ||||
|     # Display the new text. | ||||
|  | ||||
|     HMparse_html $newHTMLtxt "HMrender $win" | ||||
| } | ||||
|  | ||||
| ################################################################ | ||||
| # proc HMset_image {win handle src}-- | ||||
| #    Acquire image data, create a Tcl image object,  | ||||
| #    and return the image handle. | ||||
| # | ||||
| # Arguments | ||||
| #   win		The text window in which the html is rendered. | ||||
| #   handle	A handle to return to the html library with the image handle | ||||
| #   src		The description of the image from: <IMG src=XX>  | ||||
| #  | ||||
| # Results | ||||
| #   This example creates a hardcoded image. and then invokes | ||||
| #   HMgot_image with the handle for that image. | ||||
|  | ||||
| proc HMset_image {win handle src} { | ||||
|     global logo | ||||
|     puts "HMset_image was invoked with WIN: $win HANDLE: $handle SRC: $src" | ||||
|  | ||||
|     # In a real application this would parse the src, and load the  | ||||
|     #  appropriate image data. | ||||
|  | ||||
|     set img [image create photo -data $logo] | ||||
|  | ||||
|     HMgot_image $handle $img | ||||
|  | ||||
|     return "" | ||||
| } | ||||
|  | ||||
							
								
								
									
										60
									
								
								lib/modules/imgviewer.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										60
									
								
								lib/modules/imgviewer.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,60 @@ | ||||
| package require Img | ||||
|  | ||||
|  | ||||
| proc ImageViewer {f w node} { | ||||
|     global tab_label noteBook factor im1 im2 | ||||
|     set factor($node) 1.0 | ||||
|     frame $w.f | ||||
|     pack $w.f -side left -fill both -expand true | ||||
|     canvas $w.f.c -xscrollcommand "$w.f.x set" -yscrollcommand "$w.y set" | ||||
|     scrollbar $w.f.x -ori hori -command "$w.f.c xview" | ||||
|     scrollbar $w.y -ori vert -command "$w.f.c yview" | ||||
|      | ||||
|     pack $w.f.c -side top -fill both -expand true | ||||
|     pack $w.f.x -side top -fill x  | ||||
|     pack $w.y -side left -fill y | ||||
|     bind $w.f.c <Button-4> "%W yview scroll -3 units" | ||||
|     bind $w.f.c <Button-5> "%W yview scroll  3 units" | ||||
|     bind $w.f.c <Shift-Button-4> "%W xview scroll -2 units" | ||||
|     bind $w.f.c <Shift-Button-5> "%W xview scroll  2 units" | ||||
|     bind $w.f.c <Control-Button-4> "scale $w.f.c 0.5 $node" | ||||
|     bind $w.f.c <Control-Button-5> "scale $w.f.c 2 $node" | ||||
|     #$w.scrwin setwidget $w.scrwin.f | ||||
|     openImg $f $w.f.c $node | ||||
|     set tab_label [$noteBook itemcget $node -text] | ||||
|     balloon $w.f.c set "Mouse wheel up/down - verti<EFBFBD>al scrolling the image\n\ | ||||
|     Shift + mouse wheel up/down - horizontal image scrolling\n\ | ||||
|     Control + mouse wheel up/down is a scale image -/+" | ||||
| } | ||||
|          | ||||
| proc openImg {fn w node} { | ||||
|     global im1 | ||||
|     set im1 [image create photo -file $fn] | ||||
|     #scale $w | ||||
|     list [file size $fn] bytes, [image width $im1]x[image height $im1] | ||||
|     $w create image 1 1 -image $im1 -anchor nw -tag img | ||||
| } | ||||
|  | ||||
| proc scale {w {n 1} node} { | ||||
|     global im1 im2 factor noteBook tab_label | ||||
|     set factor($node) [expr {$factor($node) * $n}] | ||||
|     $w delete img | ||||
|     catch {image delete $im2} | ||||
|     set im2 [image create photo] | ||||
|     if {$factor($node)>=1} { | ||||
|         set f [expr int($factor($node))] | ||||
|         $im2 copy $im1 -zoom $f $f | ||||
|     } else { | ||||
|         set f [expr round(1./$factor($node))] | ||||
|         $im2 copy $im1 -subsample $f $f | ||||
|     } | ||||
|     $w create image 1 1 -image $im2 -anchor nw -tag img | ||||
|     $noteBook itemconfigure $node -text "$tab_label (size x$factor($node))" | ||||
|     $w config -scrollregion [$w bbox all] | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										74
									
								
								lib/modules/latex2html.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										74
									
								
								lib/modules/latex2html.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
|  | ||||
| proc Latex2Html {} { | ||||
|     global tree module cmdString | ||||
|     set selFiles [$tree selection get] | ||||
|     if {[llength $selFiles] == 0} { | ||||
|         set answer [tk_messageBox\ | ||||
|         -message "[::msgcat::mc "Don't selected file"]"\ | ||||
|         -type ok -icon warning\ | ||||
|         -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return 0} | ||||
|         } | ||||
|     } | ||||
|     if {[llength $selFiles] == 1} { | ||||
|         if {$selFiles != ""} { | ||||
|             set file [$tree itemcget $selFiles -data] | ||||
|         } | ||||
|         CommandStringDialog $file | ||||
|     } | ||||
|     #puts $command | ||||
| } | ||||
| proc CommandStringDialog {file} { | ||||
|     global nb files font color cmdString module | ||||
|     set w .cmd | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|      | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Command options"] | ||||
|     wm resizable $w 0 0 | ||||
|     wm transient $w . | ||||
|     frame $w.frmCombo -borderwidth 1 -background $color(bg) | ||||
|     frame $w.frmBtn -borderwidth 1 -background $color(bg) | ||||
|     pack $w.frmCombo $w.frmBtn -side top -fill x | ||||
|      | ||||
|     #    set combo [entry $w.frmCombo.entFind] | ||||
|     label $w.frmCombo.lblModule -text $module(latex2html) -background $color(bg) | ||||
|     set combo [entry $w.frmCombo.txtString] | ||||
|      | ||||
|     pack $w.frmCombo.lblModule $combo -fill x -padx 2 -pady 2 -side top | ||||
|      | ||||
|     button $w.frmBtn.btnFind -text [::msgcat::mc "Run"]\ | ||||
|     -font $font(normal) -width 12 -relief groove -background $color(bg)\ | ||||
|     -command { | ||||
|         RunConverter [.cmd.frmCombo.txtString get] | ||||
|     } | ||||
|     button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"]\ | ||||
|     -relief groove -width 12 -font $font(normal) -background $color(bg)\ | ||||
|     -command "destroy $w" | ||||
|     pack $w.frmBtn.btnFind $w.frmBtn.btnCancel -fill x -padx 2 -pady 2 -side left | ||||
|      | ||||
|     bind $w <Return> {RunConverter [.cmd.frmCombo.txtString get]} | ||||
|     bind $w <Escape> "destroy $w" | ||||
|     $combo insert end "-no_navigation -split 0 $file" | ||||
|     focus -force $combo | ||||
| } | ||||
|  | ||||
| proc RunConverter {string} { | ||||
|     global module | ||||
|     destroy .cmd | ||||
|     set pipe [open "|$module(latex2html) $string" "r"] | ||||
|     fileevent $pipe readable [list EndProc latex2html $pipe] | ||||
|     fconfigure $pipe -buffering none -blocking no | ||||
| } | ||||
|  | ||||
							
								
								
									
										79
									
								
								lib/modules/make.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										79
									
								
								lib/modules/make.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,79 @@ | ||||
| ######################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################### | ||||
|  | ||||
| ## INSERT DEBUG INFORMATION INTO TEXT WIDGET ## | ||||
| proc DebugInfo {widget file folder} { | ||||
|     global font nb w errLine activeFile | ||||
|     set w $widget | ||||
|     $widget configure -state normal | ||||
|     if {[winfo depth $nb] > 1} { | ||||
|         set bold "-background blue -foreground white -relief raised -borderwidth 1" | ||||
|         set normal "-background {} -foreground blue -relief flat" | ||||
|     } else { | ||||
|         set bold "-foreground white -background black" | ||||
|         set normal "-foreground {} -background {}" | ||||
|     } | ||||
|  | ||||
|     $widget tag configure error -font $font(bold) -foreground red | ||||
|     $widget tag configure erName -font $font(bold) -foreground blue | ||||
|     $widget tag bind erName <Any-Enter> "$widget tag configure erName $bold; $widget configure -cursor hand2" | ||||
|     $widget tag bind erName <Any-Leave> "$widget tag configure erName $normal; $widget configure -cursor xterm" | ||||
|      | ||||
|     if {[eof $file]} { | ||||
|         catch {close $file} msg | ||||
|         if {$msg != ""} { | ||||
|             #            puts $msg | ||||
|             $widget insert end "[::msgcat::mc "Program failed"]: $msg\n"; | ||||
|         } else { | ||||
|             #            puts $msg | ||||
|             $widget insert end "\n-----------------------------------------------\n" | ||||
|             $widget insert end "[::msgcat::mc "Program finished successfully"]\n" | ||||
|             TempFilesDel $folder | ||||
|         } | ||||
|     } else { | ||||
|         set line [read $file] | ||||
|         set index [string first "!" $line] | ||||
|         $widget insert end $line | ||||
|         set pos [$widget index insert] | ||||
|         set lineNumber [lindex [split $pos "."] 0] | ||||
|         if {$index != -1} { | ||||
|             set p [$widget search -backward -- "!" $pos 0.0] | ||||
|             set l [lindex [split $p "."] 0] | ||||
|             set c [lindex [split $p "."] 1] | ||||
|              | ||||
|             $widget tag add error $l.0 $l.end | ||||
|             set errLine [expr $l + 1] | ||||
|             $widget tag add erName $errLine.0 $errLine.end | ||||
|             $widget tag bind erName <ButtonPress-1> {ErrorFind} | ||||
|         } | ||||
|     } | ||||
|     $widget see end | ||||
|     $widget configure -state disabled | ||||
| } | ||||
|  | ||||
| ## FIND COMPILE ERROR INTO TEXT BUFFER ## | ||||
| proc ErrorFind {} { | ||||
|     global font nb w errLine activeFile | ||||
|     set word [$w get $errLine.0 $errLine.end] | ||||
|     set error [string range $word 2 [string first " " $word]] | ||||
|     set text "$nb.f$activeFile.f.text" | ||||
|     focus -force $text | ||||
|     $text mark set insert [string trim $error].0 | ||||
|     $text see insert | ||||
| } | ||||
|  | ||||
|  | ||||
| ## DELETE TEMPORARY FILES ## | ||||
| proc TempFilesDel {folder} { | ||||
|     foreach ext {log bak tmp} { | ||||
|         foreach file [lsort [glob -nocomplain [file join $folder *.$ext]]] { | ||||
|             file delete -- $file | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
							
								
								
									
										144
									
								
								lib/modules/module.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										144
									
								
								lib/modules/module.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,144 @@ | ||||
| ######################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################### | ||||
|  | ||||
| proc FindModule {} { | ||||
|     global module dir font tcl_platform color preview_cmd convert_cmd | ||||
|     set menu [menu .frmMenu.mnuModule.m -background $color(bg)] | ||||
|     set moduleName "" | ||||
|      | ||||
|     foreach m {tkcvs tkdiff dvi ps pdf html} { | ||||
|         if [info exists convert_cmd($m)] { | ||||
|             scan $convert_cmd($m) "%s" moduleName | ||||
|             FindExtMod_ convert_$m $moduleName | ||||
|         } | ||||
|         if [info exists preview_cmd($m)] { | ||||
|             scan $preview_cmd($m) "%s" moduleName | ||||
|             FindExtMod_ preview_$m $moduleName | ||||
|         } else { | ||||
|             FindExtMod $m $m | ||||
|         } | ||||
|          | ||||
|     } | ||||
| } | ||||
| ## Find external programms ## | ||||
| proc FindExtMod {m cmd} { | ||||
|     global module dir font tcl_platform color preview_cmd convert_cmd | ||||
|     if {$tcl_platform(platform) == "unix"} { | ||||
|         set string [exec whereis $cmd] | ||||
|         scan $string "%s%s" v module($m) | ||||
|         if {[info exists module($m)] &&  [file isdirectory $module($m)] == 0} { | ||||
|             puts "Find external programm $module($m)" | ||||
|             .frmMenu.mnuModule.m add command -label [::msgcat::mc "$m"] -command "DoModule $m" \ | ||||
|             -font $font(normal) | ||||
|         } else { | ||||
|             set module($m) "" | ||||
|         } | ||||
|     } elseif {$tcl_platform(platform) == "mac"} { | ||||
|         set module($m) $cmd | ||||
|     } elseif {$tcl_platform(platform) == "windows"} { | ||||
|         set module($m) $cmd | ||||
|     } | ||||
| } | ||||
| proc FindExtMod_ {m cmd} { | ||||
|     global module dir font tcl_platform color preview_cmd convert_cmd | ||||
|     if {$tcl_platform(platform) == "unix"} { | ||||
|         set string [exec whereis $cmd] | ||||
|         scan $string "%s%s" v module($m) | ||||
|         if {[info exists module($m)] &&  [file isdirectory $module($m)] == 0} { | ||||
|             puts "Find external programm $module($m)" | ||||
|         } else { | ||||
|             set module($m) "" | ||||
|         } | ||||
|     } elseif {$tcl_platform(platform) == "mac"} { | ||||
|         set module($m) $cmd | ||||
|     } elseif {$tcl_platform(platform) == "windows"} { | ||||
|         set module($m) $cmd | ||||
|     } | ||||
| } | ||||
|  | ||||
| ## RUNNING MODULE ## | ||||
| proc DoModule {mod} { | ||||
|     global tcl_platform | ||||
|     global module dir tree | ||||
|     case $mod { | ||||
|         tkcvs { | ||||
|             set pipe [open "|$module(tkcvs) -dir $dir(doc)" "r"] | ||||
|             fileevent $pipe readable | ||||
|             fconfigure $pipe -buffering none -blocking no | ||||
|         } | ||||
|         tkdiff { | ||||
|             set selFiles [$tree selection get] | ||||
|             if {[llength $selFiles] == 0} { | ||||
|                 set answer [tk_messageBox\ | ||||
|                 -message "[::msgcat::mc "Don't selected file"]"\ | ||||
|                 -type ok -icon warning\ | ||||
|                 -title [::msgcat::mc "Warning"]] | ||||
|                 case $answer { | ||||
|                     ok {return 0} | ||||
|                 } | ||||
|             } | ||||
|             if {[llength $selFiles] == 1} { | ||||
|                 if {$selFiles != ""} { | ||||
|                     set file1 [$tree itemcget $selFiles -data] | ||||
|                 } | ||||
|                 set command "-r $file1" | ||||
|             } | ||||
|             if {[llength $selFiles] == 2} { | ||||
|                 if {[lindex $selFiles 0] != ""} { | ||||
|                     set file1 [$tree itemcget [lindex $selFiles 0] -data] | ||||
|                 } | ||||
|                 if {[lindex $selFiles 1] != ""} { | ||||
|                     set file2 [$tree itemcget [lindex $selFiles 1] -data] | ||||
|                 } | ||||
|                 set command "$file1 $file2" | ||||
|             }  | ||||
|             if {[llength $selFiles] > 2} { | ||||
|                 set answer [tk_messageBox\ | ||||
|                 -message "[::msgcat::mc "Must be one or two file select!"]"\ | ||||
|                 -type ok -icon info\ | ||||
|                 -title [::msgcat::mc "Warning"]] | ||||
|                 case $answer { | ||||
|                     ok {return 0} | ||||
|                 } | ||||
|             } | ||||
|             set pipe [open "|$module(tkdiff) $command" "r"] | ||||
|             fileevent $pipe readable | ||||
|             fconfigure $pipe -buffering none -blocking no | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| proc EndProc {module file} { | ||||
|     if {[eof $file]} { | ||||
|         catch [close $file] msg | ||||
|         if {$msg != ""} { | ||||
|             puts $msg | ||||
|             Message "$module\n [::msgcat::mc "Program failed"]: $msg\n"; | ||||
|         } else { | ||||
|             Message "$module\n [::msgcat::mc "Program finished successfully"]\n" | ||||
|         } | ||||
|     } else { | ||||
|         read $file | ||||
|     } | ||||
| } | ||||
|  | ||||
| proc Message {message} { | ||||
|     global font | ||||
|     set answer [MessageDlg .msg -parent .\ | ||||
|     -message "$message"\ | ||||
|     -type ok -icon warning\ | ||||
|     -font $font(normal)\ | ||||
|     -title [::msgcat::mc "Warning"]] | ||||
|     case $answer { | ||||
|         ok {return 0} | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										72
									
								
								lib/modules/package.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										72
									
								
								lib/modules/package.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,72 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc GetPackage {_dir} { | ||||
|     global nb dir cmd | ||||
|     foreach file [lsort [glob -nocomplain [file join $_dir *.lst]]] { | ||||
|         puts "Load commands from $file" | ||||
|         set pkgName [file rootname [file tail $file]] | ||||
|         set cmd($pkgName) "" | ||||
|         #set cmd(all) "" | ||||
|         set f [open $file r] | ||||
|         while {[gets $f line] >= 0} { | ||||
|             if {[string range $line 0 0] != "#"} { | ||||
|                 if [info exists cmd($pkgName)] { | ||||
|                     lappend cmd($pkgName) $line | ||||
|                     lappend cmd(all) $line | ||||
|                 } else { | ||||
|                     set cmd($pkgName) [list $line] | ||||
|                     set cmd(all) [list $line] | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         close $f | ||||
|     } | ||||
|     puts "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - [llength $cmd(all)]" ;# debug info | ||||
| } | ||||
|  | ||||
| proc PackageDialog {} { | ||||
|     global nb font dir color | ||||
|     set w .frmBody.packages | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|      | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Pakages"] | ||||
|     wm resizable $w 0 0 | ||||
|     #wm transient . | ||||
|      | ||||
|     label $w.text -text [::msgcat::mc "Included packages"] -font $font(bold)\ | ||||
|     -relief groove -border 1 | ||||
|     frame $w.frmPkg -relief groove -border 1  -background $color(bg) | ||||
|     frame $w.frmBtn -background $color(bg) | ||||
|     pack $w.text -side top -anchor nw -fill x | ||||
|     pack $w.frmPkg         -side top -fill both -expand 1 | ||||
|     pack $w.frmBtn -side top -fill x     | ||||
|      | ||||
|     foreach pkg [GetPackage] { | ||||
|         checkbutton $w.frmPkg.chk_$pkg -text $pkg  -font $font(normal) -background $color(bg) | ||||
|         pack $w.frmPkg.chk_$pkg -side top -anchor w -padx 2  | ||||
|     } | ||||
|      | ||||
|     button $w.frmBtn.btnOk -text [::msgcat::mc "Save"] -relief groove -font $font(normal)\ | ||||
|     -command {    } -background $color(bg) | ||||
|     button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"] -relief groove -font $font(normal)\ | ||||
|     -command "destroy $w" -background $color(bg) | ||||
|     pack $w.frmBtn.btnOk $w.frmBtn.btnCancel -padx 2 -pady 2 -fill x -side left | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										112
									
								
								lib/modules/pane.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										112
									
								
								lib/modules/pane.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,112 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #         Create split pane widget procedure         # | ||||
| #          Author Alex Dederer (aka Korwin)          # | ||||
| ###################################################### | ||||
|  | ||||
| package provide pane 1.0 | ||||
|  | ||||
| namespace eval pane { | ||||
|      | ||||
|     namespace export create | ||||
|  | ||||
|   proc create { f1 f2 args } { | ||||
|       set t(-orient)     vertical | ||||
|       set t(-percent)      0.27 | ||||
|     set t(-gripcolor)    gray75 | ||||
|     set t(-gripposition) 0.93 | ||||
|     set t(-gripcursor)   crosshair | ||||
|     set t(-in)           [winfo parent $f1] | ||||
|     array set t $args | ||||
|  | ||||
|     set master $t(-in) | ||||
|     upvar #0 [namespace current]::Pane$master pane | ||||
|     array set pane [array get t] | ||||
|  | ||||
|     if {! [string match v* $pane(-orient)] } { | ||||
|       set pane(-gripcursor) sb_v_double_arrow | ||||
|       set height 5 ; set width 3000 | ||||
|     } else { | ||||
|       set pane(-gripcursor) sb_h_double_arrow | ||||
|       set height 3000 ; set width 5 | ||||
|     } | ||||
|  | ||||
|     set pane(1) $f1 | ||||
|     set pane(2) $f2 | ||||
|     set pane(grip) [frame $master.grip -background $pane(-gripcolor) \ | ||||
|                           -width $width -height $height \ | ||||
|                           -bd 1 -relief raised -cursor $pane(-gripcursor)] | ||||
|  | ||||
|     if {! [string match v* $pane(-orient)] } { | ||||
|       set pane(D) Y | ||||
|       place $pane(1) -in $master -x 0 -rely 0.0 -anchor nw -relwidth 1.0 -height -1 | ||||
|       place $pane(2) -in $master -x 0 -rely 1.0 -anchor sw -relwidth 1.0 -height -1 | ||||
|       place $pane(grip) -in $master -anchor c -relx $pane(-gripposition) | ||||
|     } else { | ||||
|       set pane(D) X | ||||
|       place $pane(1) -in $master -relx 0.0 -y 0 -anchor nw -relheight 1.0 -width -1 | ||||
|       place $pane(2) -in $master -relx 1.0 -y 0 -anchor ne -relheight 1.0 -width -1 | ||||
|       place $pane(grip) -in $master -anchor c -rely 0 ;#$pane(-gripposition) | ||||
|     } | ||||
|     $master configure -background gray50 | ||||
|  | ||||
|     bind $master <Configure> [list [namespace current]::PaneGeometry $master] | ||||
|     bind $pane(grip) <ButtonPress-1> \ | ||||
|          [list [namespace current]::PaneDrag $master %$pane(D)] | ||||
|     bind $pane(grip) <B1-Motion> \ | ||||
|          [list [namespace current]::PaneDrag $master %$pane(D)] | ||||
|     bind $pane(grip) <ButtonRelease-1> \ | ||||
|          [list [namespace current]::PaneStop $master] | ||||
|  | ||||
|     [namespace current]::PaneGeometry $master | ||||
|   } | ||||
|  | ||||
|   proc PaneDrag { master D } { | ||||
|     upvar #0 [namespace current]::Pane$master pane | ||||
|     if {[info exists pane(lastD)]} { | ||||
|       set delta [expr double($pane(lastD) - $D) \ | ||||
|                              / $pane(size)] | ||||
|       set pane(-percent) [expr $pane(-percent) - $delta] | ||||
|       if {$pane(-percent) < 0.0} { | ||||
|         set pane(-percent) 0.0 | ||||
|       } elseif {$pane(-percent) > 1.0} { | ||||
|         set pane(-percent) 1.0 | ||||
|       } | ||||
|       [namespace current]::PaneGeometry $master | ||||
|     } | ||||
|     set pane(lastD) $D | ||||
|   } | ||||
|  | ||||
|   proc PaneStop { master } { | ||||
|     upvar #0 [namespace current]::Pane$master pane | ||||
|     catch {unset pane(lastD)} | ||||
|   } | ||||
|  | ||||
|   proc PaneGeometry { master } { | ||||
|     upvar #0 [namespace current]::Pane$master pane | ||||
|     if {$pane(D) == "X"} { | ||||
|       place $pane(1) -relwidth $pane(-percent) | ||||
|       place $pane(2) -relwidth [expr 1.0 - $pane(-percent)] | ||||
|       place $pane(grip) -relx $pane(-percent) | ||||
|       set pane(size) [winfo width $master] | ||||
|     } else { | ||||
|       place $pane(1) -relheight $pane(-percent) | ||||
|       place $pane(2) -relheight [expr 1.0 - $pane(-percent)] | ||||
|       place $pane(grip) -rely $pane(-percent) | ||||
|       set pane(size) [winfo height $master] | ||||
|     } | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										138
									
								
								lib/modules/print.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										138
									
								
								lib/modules/print.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,138 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc PrintDialog {action} { | ||||
|     global dir font nb files activeFile tcl_platform | ||||
|      | ||||
|     if [info exists activeFile] { | ||||
|         set node $activeFile | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     if {[info exists files($node)] == 0} { | ||||
|         return | ||||
|     } | ||||
|     switch -- $action { | ||||
|         "print" { | ||||
|             PrintForm | ||||
|         } | ||||
|         "set" { | ||||
|         } | ||||
|         "preview" { | ||||
|             set text "$nb.f$node.f.text" | ||||
|             set fullPath [lindex $files($node) 0] | ||||
|             set folder [file dirname $fullPath] | ||||
|             set file [file tail $fullPath] | ||||
|             set ext [string trim [file extension $file] {.}] | ||||
|             set name [file rootname $file] | ||||
|             set file [file join $folder $name.ps] | ||||
|              | ||||
|             if {$tcl_platform(platform) == "unix"} { | ||||
|                 set pipe [open "|gv $file" "r"] | ||||
|             } elseif {$tcl_platform(platform) == "mac"} { | ||||
|                  | ||||
|             } elseif {$tcl_platform(platform) == "windows"} { | ||||
|                 set pipe [open "|gsview32 $file" "r"] | ||||
|             } | ||||
|              | ||||
|             fileevent $pipe readable | ||||
|             fconfigure $pipe -buffering none -blocking no | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| proc PrintForm {} { | ||||
|     global font selectPrint color | ||||
|     set wp .print | ||||
|     # destroy the print window if it already exists | ||||
|     if {[winfo exists $wp]} { | ||||
|         destroy $wp | ||||
|     } | ||||
|      | ||||
|     toplevel $wp | ||||
|     wm transient $wp . | ||||
|     wm title $wp [::msgcat::mc "Print ..."] | ||||
|     wm resizable $wp 0 0 | ||||
|     frame $wp.frmLbl -background $color(bg) | ||||
|     frame $wp.frmEnt -background $color(bg) | ||||
|     frame $wp.frmField -background $color(bg) | ||||
|     frame $wp.frmBtn -background $color(bg) | ||||
|     pack $wp.frmLbl $wp.frmEnt $wp.frmField $wp.frmBtn -side top -fill x | ||||
|     label $wp.frmLbl.lblPrint -text [::msgcat::mc "Print command"] -font $font(normal) -background $color(bg) | ||||
|     pack $wp.frmLbl.lblPrint -fill x -expand true -padx 2 | ||||
|     entry $wp.frmEnt.entPrint -font $font(normal) | ||||
|     pack $wp.frmEnt.entPrint -fill x -expand true -padx 2 | ||||
|      | ||||
|     checkbutton $wp.frmField.chkSelect -text [::msgcat::mc "Print selected text"] -variable selectPrint\ | ||||
|     -font $font(normal) -onvalue true -offvalue false\ | ||||
|     -background $color(bg) -selectcolor $color(selectbg);#-command Check | ||||
|     pack $wp.frmField.chkSelect -fill x -expand true -padx 2 -anchor w | ||||
|      | ||||
|     button $wp.frmBtn.btnPrint -text [::msgcat::mc "Print"] -font $font(normal) -width 12\ | ||||
|     -relief groove -background $color(bg)\ | ||||
|     -command { | ||||
|         Print [.print.frmEnt.entPrint get] | ||||
|         destroy .print | ||||
|     } | ||||
|     button $wp.frmBtn.btnCancel -text [::msgcat::mc "Cancel"] -font $font(normal) -width 12 -relief groove\ | ||||
|     -command "destroy .print" -background $color(bg) | ||||
|     pack $wp.frmBtn.btnPrint $wp.frmBtn.btnCancel -side left -padx 2 -pady 2 -fill x -expand true | ||||
|     $wp.frmEnt.entPrint insert 0 "lpr" | ||||
|     bind $wp <Escape> "destroy .print" | ||||
| } | ||||
|  | ||||
| proc Preview {action} { | ||||
|     global dir font nb files activeFile tcl_platform preview_cmd module tree | ||||
|     if [info exists activeFile] { | ||||
|         set node $activeFile | ||||
|         while {[set parentNode [$tree parent $node]] != "root"} { | ||||
|             set node $parentNode | ||||
|         }         | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     if {[info exists files($node)] == 0} { | ||||
|         return | ||||
|     } | ||||
|     if {$module(preview_$action) == ""} { | ||||
|         set answer [tk_messageBox\ | ||||
|         -message "[::msgcat::mc "Don't find programm"] $preview_cmd($action)"\ | ||||
|         -type ok -icon warning\ | ||||
|         -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return 0} | ||||
|         } | ||||
|     } | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set fullPath [lindex $files($node) 0] | ||||
|     set file [file tail $fullPath] | ||||
|     set ext [string trim [file extension $file] {.}] | ||||
|     set name [file rootname $file] | ||||
|     if {$action == "html"} { | ||||
|         set folder [file join [file dirname $fullPath] $name] | ||||
|     } else { | ||||
|         set folder [file dirname $fullPath] | ||||
|     } | ||||
|      | ||||
|     set pipe [open "|$preview_cmd($action) [file join $folder $name.$action]" "r"] | ||||
|     puts "$preview_cmd($action) [file join $folder $name.$action]" | ||||
|     fileevent $pipe readable | ||||
|     fconfigure $pipe -buffering none -blocking no | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										124
									
								
								lib/modules/proc.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										124
									
								
								lib/modules/proc.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,124 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #                                                    # | ||||
| #        Notebook tabs procedures and other          # | ||||
| #                                                    # | ||||
| ###################################################### | ||||
|  | ||||
|  | ||||
| ## CLICKING TUBULAR HEADER PROCEDURE ## | ||||
| proc ClickTab {node} { | ||||
|     global nb files activeFile tree ver files status release | ||||
|     set node [$nb raise] | ||||
|     if {($node == "") || ($node == "debug")} {return} | ||||
|     set activeFile $node | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set fullPath [lindex $files($node) 0] | ||||
|     wm title . "TkLaTeXEditor $ver$release - $fullPath" | ||||
|     set folder [file dirname $fullPath] | ||||
|     set file [file tail $fullPath] | ||||
|     set ext [string trim [file extension $file] {.}] | ||||
|     set name [file rootname $file] | ||||
|     $tree selection set $node | ||||
|     $tree see $node | ||||
|     UpdateStruct $fullPath $node | ||||
|     focus -force $text | ||||
|     unset text fullPath folder file ext name | ||||
|     ## status bar information update ## | ||||
|     $status(fileAttr) configure -text "[FileAttr [lindex $files($node) 0]]" | ||||
|     $status(fileSize) configure -text "[file size [lindex $files($node) 0]] b." | ||||
|     $status(encode) configure -text "[lindex $files($node) 2]" | ||||
|     $status(pos) configure -text [$nb.f$node.f.text index insert];# cursor position | ||||
| } | ||||
|  | ||||
| ## NOTEBOOK PAGE SWITCHER ## | ||||
| proc PageTab {key} { | ||||
|     global nb | ||||
|     set len [llength [$nb pages]] | ||||
|     if {$len > 0} { | ||||
|         set newIndex [expr [$nb index [$nb raise]] + $key] | ||||
|         if {$newIndex < 0} { | ||||
|             set newIndex [expr $len - 1] | ||||
|         } elseif {$newIndex >= $len} { | ||||
|             set newIndex 0 | ||||
|         } | ||||
|         $nb see [lindex [$nb pages] $newIndex] | ||||
|         $nb raise [lindex [$nb pages] $newIndex] | ||||
|         PageRaise [lindex [$nb pages] $newIndex] | ||||
|     } | ||||
| } | ||||
| ## RAISED NOTEBOOK TAB IF CLICK MOUSE BUTTON ## | ||||
| proc PageRaise {node} { | ||||
|     global nb tree files status activeFile ver release | ||||
|     set parentNode [$tree parent $node] | ||||
|     if {$node == "debug"} {return} | ||||
|     if {[$tree exists $node] ==1 && [info exists files($node)] != 1} { | ||||
|         EditFile [$tree itemcget $node -data] ;# open editor if file don't open | ||||
|     } elseif {[$tree exists $node] ==0} { | ||||
|         set file [file tail [lindex $files($node) 0]] | ||||
|         set fileDir [file dirname [lindex $files($node) 0]] | ||||
|         set node [InsertTreeSubNode "$file" $parentNode $fileDir] | ||||
|     } | ||||
|     $nb raise $node | ||||
|      | ||||
|     set activeFile $node | ||||
|     #puts "node - $node\nparent - $parentNode" | ||||
|     $tree selection set $node | ||||
|     $tree see $node | ||||
|     set item [$tree itemcget $node -data] | ||||
|     focus -force $nb.f$node.f.text | ||||
|     catch [$status(pos) configure -text [$nb.f$node.f.text index insert]] ;# cursor position | ||||
|     ## status bar information update ## | ||||
|     $status(fileAttr) configure -text "[FileAttr $item]" | ||||
|     $status(fileSize) configure -text "[file size $item] b." | ||||
|     $status(encode) configure -text "[lindex $files($node) 2]" | ||||
|     $status(pos) configure -text [$nb.f$node.f.text index insert];# cursor position | ||||
|     UpdateStruct [lindex $files($node) 0] $node;# exec structure updating | ||||
|     wm title . "TkLaTeXEditor $ver$release - [lindex $files($node) 0]" | ||||
|     unset item | ||||
| } | ||||
|  | ||||
|  | ||||
| ## CLOSE PROGRAMM PROCEDURE ## | ||||
| proc Quit {} { | ||||
|     if {[FileDialog quit_close_all] == 0} { | ||||
|         return | ||||
|     } else { | ||||
|         exit | ||||
|     }     | ||||
| } | ||||
|  | ||||
| ## AUTOSAVE AND AUTOREFRESH TIMERS PROCEDURE ## | ||||
| set activeTimer(refresh) "" | ||||
| set activeTimer(autosave) "" | ||||
| proc Timer {file type} { | ||||
|     global timers activeFile activeTimer | ||||
|     if [info exists activeFile] { | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     if {$type == "refresh"} { | ||||
|         after cancel $activeTimer(refresh) ;# close previouse task | ||||
|         set activeTimer(refresh) [after $timers(refresh) {UpdateStruct $file $activeFile}] | ||||
|     } elseif {$type == "autosave"} { | ||||
|         after cancel $activeTimer(autosave) ;# close previouse task | ||||
|         set activeTimer(autosave) [after $timers(autosave) {FileDialog save_all}] | ||||
|     } | ||||
| } | ||||
|  | ||||
|  | ||||
| proc GetExtention {file} { | ||||
|     global fileList | ||||
|     set ext [string range [file extension [file tail $file]] 1 end] | ||||
|     return $ext | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										164
									
								
								lib/modules/render.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										164
									
								
								lib/modules/render.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| ############################################################# | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ############################################################# | ||||
|  | ||||
| ############################################################# | ||||
| #    Converts LaTeX formulas and texts to pixel graphics    # | ||||
| #                                                           # | ||||
| # Required software: latex, convert (image magic)           # | ||||
| # to get color, the latex color package is required         # | ||||
| ############################################################# | ||||
| #            Idea By Alex Dederer (aka Korwin)              # | ||||
| ############################################################# | ||||
|  | ||||
| ## SELECTED TEXT EXTRACT ## | ||||
| proc GenerateFormula {type} { | ||||
|     global dir nb activeFile convert_cmd | ||||
|     set text $nb.f$activeFile.f.text | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set selIndex [$text tag ranges sel] | ||||
|     if {$selIndex != ""} { | ||||
|         set posBegin [lindex $selIndex 0] | ||||
|         set posEnd [lindex $selIndex 1] | ||||
|         set formula [$text get $posBegin $posEnd] | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     #set cmdString "$convert_cmd(img) -o [file join $dir(tmp) formula.gif] $formula" | ||||
|     #catch [exec $convert_cmd(img) -o [file join $dir(tmp) formula.gif] $formula] err | ||||
|     #if {$err != ""} {puts $err} | ||||
|      | ||||
|     Render "$formula" $type "" | ||||
|     PreviewFormula | ||||
| } | ||||
| ## PREVIEW CONVERTED IMAGE ## | ||||
| proc PreviewFormula {} { | ||||
|     global nb font files color dir render | ||||
|     set node [$nb raise] | ||||
|     if {$node == "debug" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     set w .formula | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$nb.f[$nb raise].f.text index insert] | ||||
|     #    set findString "" | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     # create the new "find" window | ||||
|     toplevel $w | ||||
|     wm transient $w $nb.f$node | ||||
|     wm overrideredirect $w 1 | ||||
|     set b_x [winfo pointerx .] | ||||
|     set b_y [expr [winfo pointery .] - 200] | ||||
|     wm geometry $w +$b_x+$b_y | ||||
|      | ||||
|     set f1 [frame $w.frmFind -background $color(bg)] | ||||
|     pack $f1 -side top -fill x -expand true | ||||
|      | ||||
|     image create photo formula -format gif -file [file join $dir(tmp) tle_render.gif] | ||||
|      | ||||
|     label $f1.lblFind -background $color(bg) -image formula -relief ridge | ||||
|     pack $f1.lblFind -side left -padx 0 -pady 0 | ||||
|     bind $w <Escape> "$text mark set insert $pos; $text see $pos; focus -force $text; destroy $w" | ||||
|     bind $w <Button-1> "$text mark set insert $pos; $text see $pos; focus -force $text; destroy $w" | ||||
|     focus -force $w | ||||
|      | ||||
|      | ||||
|     unset text pos w | ||||
| } | ||||
| ## DOCUMENT HEADER READER ## | ||||
| proc ReadHeader {widget} { | ||||
|     set posBegin [$widget search -regexp -- {\\documentclass} 0.0 end] | ||||
|     if {$posBegin != ""} { | ||||
|         set posEnd [$widget search -regexp -- {\\begin\{document\}} $posBegin end] | ||||
|         #puts "$posBegin - $posEnd"; return;# debug | ||||
|         if {$posEnd != ""} { | ||||
|             set text [$widget get $posBegin $posEnd] | ||||
|         } else { | ||||
|             set text "" | ||||
|         } | ||||
|     } else { | ||||
|         set text "" | ||||
|     } | ||||
|     return $text | ||||
| } | ||||
|  | ||||
| ## IMAGE GENERATOR WITH MATHEMATICS FORMALS AND TEXTS ## | ||||
| proc Render {text type fileName} { | ||||
|     global dir convert_cmd render activeFile files nb | ||||
|     # Names for input and output files | ||||
|     set enc "[lindex $files($activeFile) 2]" | ||||
|      | ||||
|     puts $files($activeFile) ;# debug | ||||
|      | ||||
|     if {$fileName == ""} { | ||||
|         set name tle_render | ||||
|         set texFile $name.tex | ||||
|         set imgFile $name.$render(format) | ||||
|         set _dir $dir(tmp) | ||||
|     } else { | ||||
|         set imgFile [file tail $fileName] | ||||
|         set name [file rootname $imgFile] | ||||
|         set texFile $name.tex | ||||
|         set _dir [file dirname $fileName] | ||||
|     } | ||||
|     set txt $nb.f$activeFile.f.text | ||||
|     set header [ReadHeader $txt] | ||||
|     if {$header == ""} { | ||||
|         set header "\\documentclass\[12pt\]\{article\}\n\\usepackage\[$enc\]\{inputenc\}\n\\usepackage\[english,russian\]\{babel\}" | ||||
|  | ||||
|     } | ||||
|     if {$type == "math"} { | ||||
|         append header "\\usepackage\{color\}\n\\pagestyle\{empty\}\n\\pagecolor\{$render(bg)\}\n" | ||||
|         append header "\\begin\{document\}\n\\begin\{eqnarray\*\}\n\{\n\\color\{$render(fg)\}" | ||||
|         set footer "\}\n\\end\{eqnarray*\}\n\\end\{document\}" | ||||
|     } elseif {$type == "text"} { | ||||
|         append header "\\usepackage\{color\}\n\n\\pagestyle\{empty\}\n" | ||||
|         append header "\\pagecolor\{$render(bg)\}\n\\begin\{document\}\n" | ||||
|         set footer "\\end\{document\}" | ||||
|     } | ||||
|     puts $header | ||||
|     set f [open [file join $dir(tmp) $texFile] w] | ||||
|     puts $f $header | ||||
|     puts $f $text | ||||
|     puts $f $footer | ||||
|     close $f | ||||
|      | ||||
|     set err "" | ||||
|     catch [cd $dir(tmp)] | ||||
|     catch [exec $convert_cmd(dvi) -interaction=batchmode [file join $dir(tmp) $texFile]] err | ||||
|     catch [exec dvips -o $dir(tmp)/$name.eps -E $dir(tmp)/$name.dvi 2> /dev/null] err | ||||
|     # Transparent background | ||||
|     if {$render(trans) == 1} { | ||||
|         if {$render(aa) == 1} { | ||||
|             catch [exec $convert_cmd(img) +adjoin -antialias -transparent $render(bg) -density $render(res) $dir(tmp)/$name.eps $_dir/$imgFile] err | ||||
|         } else { | ||||
|             catch [exec $convert_cmd(img) +adjoin +antialias -transparent $render(bg) -density $render(res) $dir(tmp)/name.eps $_dir/$imgFile] err | ||||
|         } | ||||
|     } else { | ||||
|         if {$render(aa) == 1} { | ||||
|             catch [exec $convert_cmd(img) +adjoin -antialias -density $render(res) $dir(tmp)/$name.eps $_dir/$imgFile] err | ||||
|         } else { | ||||
|             catch [exec $convert_cmd(img) +adjoin +antialias -density $render(res) $dir(tmp)/$name.eps $_dir/$imgFile] err | ||||
|         } | ||||
|     } | ||||
|     if {$err != ""} { | ||||
|         set answer [tk_messageBox -message "$err"\ | ||||
|         -type ok -icon warning -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return} | ||||
|         }         | ||||
|         puts $err | ||||
|     } | ||||
|     catch [cd $dir(current)] | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										216
									
								
								lib/modules/spellcheck.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										216
									
								
								lib/modules/spellcheck.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,216 @@ | ||||
| ######################################################### | ||||
| #                  Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ######################################################### | ||||
| #              Spell Checking procedure | ||||
| #              required Ispell, Msgcat | ||||
| # Author: Victor Wagner (Vitus) http://www.ice.ru/~vitus | ||||
| # | ||||
| # Usage: "SpellCheck text_widget" | ||||
| ######################################################### | ||||
|  | ||||
|  | ||||
| proc SpellCheck {text} { | ||||
|     global ispell_lib ispell_language ispell_startindex nb color font | ||||
|     set node [$nb raise] | ||||
|     if {[winfo exists .spell]} { | ||||
|         return | ||||
|     } | ||||
|      | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     # Build dictionary list | ||||
|     foreach dict [glob [file join $ispell_lib *.hash]] { | ||||
|         file stat $dict foo | ||||
|         set lang [file rootname [file tail $dict]] | ||||
|         if {$lang == "default"} { | ||||
|             set default_inode $foo(ino) | ||||
|         } else { | ||||
|             lappend langs $lang | ||||
|             set lang_nodes($foo(ino)) $lang; | ||||
|         }   | ||||
|     }   | ||||
|     if {![info exists ispell_language]} { | ||||
|         if {[info exists default_inode ]&&[info exists lang_nodes($default_inode)]} { | ||||
|             set ispell_language $lang_nodes($default_inode) | ||||
|         } else { | ||||
|             set ispell_language [lindex $langs 0] | ||||
|         } | ||||
|     } | ||||
|     toplevel .spell -class Notepad | ||||
|     wm title .spell [::msgcat::mc "Spell check"] | ||||
|     wm transient .spell . | ||||
|     wm resizable .spell 0 0 | ||||
|      | ||||
|     frame .spell.lang -relief raised -borderwidth 1 -background $color(bg) | ||||
|     label .spell.lang.l -text [::msgcat::mc "Language"] -background $color(bg) -font $font(normal) | ||||
|     eval tk_optionMenu .spell.lang.m ispell_language $langs -background $color(bg) -font $font(normal) | ||||
|     pack .spell.lang.l .spell.lang.m -side left -padx 5  | ||||
|     pack .spell.lang.m -side left -padx 5 -fill x -expand 1 | ||||
|     frame .spell.start -relief raised -borderwidth 1 -background $color(bg) | ||||
|     radiobutton .spell.start.all -text [::msgcat::mc "Entire file"] -background $color(bg)\ | ||||
|     -variable ispell_startindex -value "1.0" -anchor w -font $font(normal) | ||||
|     radiobutton .spell.start.ins -text [::msgcat::mc "From cursor"] -background $color(bg)\ | ||||
|     -variable ispell_startindex -value insert -anchor w -font $font(normal) | ||||
|     pack .spell.start.all .spell.start.ins -side top -pady 1 -expand y -fill x         | ||||
|     frame .spell.b -relief raised -borderwidth 1 -background $color(bg) | ||||
|     button .spell.b.ok -text [::msgcat::mc "Start"] -relief groove -background $color(bg)\ | ||||
|     -command "DoSpellCheck $text"  -font $font(normal) | ||||
|     button .spell.b.cancel -text [::msgcat::mc "Cancel"] -relief groove -background $color(bg)\ | ||||
|     -command "destroy .spell" -font $font(normal) | ||||
|     pack .spell.b.ok .spell.b.cancel -side left -padx 10 | ||||
|     pack .spell.lang -side top -fill x | ||||
|     pack .spell.start -side top -fill both -expand 1 | ||||
|     pack .spell.b -side top -fill x | ||||
|     bind .spell <Escape> "destroy .spell" | ||||
| } | ||||
|  | ||||
| proc DoSpellCheck {text} { | ||||
|     global ispell_file ispell_startindex ispell_language spellAddWords color font | ||||
|     eval destroy [winfo children .spell] | ||||
|     wm transient .spell . | ||||
|     entry .spell.word -exportselection false | ||||
|     listbox .spell.misses -yscrollcommand ".spell.y set" -exportselection false -background $color(bg) | ||||
|     scrollbar .spell.y -command ".spell.misses yview" -background $color(bg) | ||||
|     button .spell.ok -text [::msgcat::mc "Accept"] -command "SpellOk $text" -background $color(bg) \ | ||||
|     -font $font(normal) | ||||
|     button .spell.accept -text [::msgcat::mc "Next"] -command "SpellAccept @" -background $color(bg) \ | ||||
|     -font $font(normal) | ||||
|     button .spell.adddict -text [::msgcat::mc "Add to dict"] -command "SpellAccept *" -background $color(bg) \ | ||||
|     -font $font(normal) | ||||
|     button .spell.adddict2 -text [::msgcat::mc "Add lowercase"] -command "SpellAccept &" -background $color(bg) \ | ||||
|     -font $font(normal) | ||||
|     button .spell.stop -text [::msgcat::mc "Stop checking"] -command "SpellStop $text" -background $color(bg) \ | ||||
|     -font $font(normal) | ||||
|     grid .spell.word - - -sticky news -padx 5 -pady 5 | ||||
|     grid .spell.misses .spell.y .spell.ok -sticky news   | ||||
|     grid x x .spell.accept  -sticky news  | ||||
|     grid x x .spell.adddict -sticky news | ||||
|     grid x x .spell.adddict2 -sticky news | ||||
|     grid x x .spell.stop -sticky news | ||||
|     grid configure .spell.ok .spell.accept .spell.adddict .spell.adddict2 .spell.stop -padx 5 -pady 3 | ||||
|     grid configure .spell.misses .spell.y -rowspan 5  | ||||
|     focus .spell.word | ||||
|     wm protocol .spell WM_DELETE_WINDOW "SpellStop $text" | ||||
|      | ||||
|     set ispell_file [open "|ispell -a -d $ispell_language" w+] | ||||
|     fconfigure $ispell_file -buffering none -blocking yes | ||||
|     gets $ispell_file | ||||
|     puts $ispell_file "!" | ||||
|     set spellAddWords {} | ||||
|      | ||||
|     $text mark set insert $ispell_startindex  | ||||
|     while {[SpellNextLine $text]} { | ||||
|         while {[gets $ispell_file responce]>0} { | ||||
|             switch -exact -- [string range $responce 0 0] { | ||||
|                 "*" - | ||||
|                 "+" - | ||||
|                 "-" {continue} | ||||
|                 "&" - | ||||
|                 "?" {regexp {^. +([^ ]+) +[0-9]+ +([0-9]+):(.*)$} $responce foo \ | ||||
|                 orig offset guesses | ||||
|                 SpellInteract $orig $offset $guesses $text | ||||
|             } | ||||
|             "#" {regexp {^. +([^ ]+) +([0-9]+)} $responce foo orig offset | ||||
|             SpellInteract $orig $offset {} $text | ||||
|         } | ||||
|     } | ||||
| } | ||||
| $text mark set insert "spellstart linestart + 1 lines" | ||||
| } | ||||
| close $ispell_file | ||||
| eval destroy  [winfo children .spell] | ||||
| label .spell.l -text [::msgcat::mc "Checking complete"] -background $color(bg) | ||||
| button .spell.ok -text [::msgcat::mc "Ok"] -command {destroy .spell} -background $color(bg) | ||||
| wm protocol .spell WM_DELETE_WINDOW {destroy .spell} | ||||
| pack .spell.l .spell.ok -side top -padx 5 -pady 10 | ||||
| } | ||||
|  | ||||
|  | ||||
| proc SpellNextLine {text} { | ||||
|     global spellOffset ispell_file spellAddWords | ||||
|     set spellOffset -1  | ||||
|     $text see insert | ||||
|     $text mark set spellstart insert | ||||
|     set line [$text get insert "insert lineend"] | ||||
|     if [$text compare insert >= "end-1char"] { | ||||
|         return 0  | ||||
|     } | ||||
|     foreach word $spellAddWords { | ||||
|         puts "Adding to dictionary $word" | ||||
|         puts $ispell_file $word | ||||
|     }    | ||||
|     set spellAddWords {} | ||||
|     puts $ispell_file "^$line" | ||||
|     return 1 | ||||
| } | ||||
|  | ||||
| proc SpellInteract {word offset guesses text} { | ||||
|     .spell.word delete 0 end | ||||
|     .spell.word insert 0 $word | ||||
|     $text tag remove sel 0.0 end | ||||
|     global spellOffset | ||||
|     incr offset $spellOffset | ||||
|     $text tag add sel "spellstart+$offset chars" "spellstart+[expr $offset+\ | ||||
|     [string length $word]] chars" | ||||
|     global spellHighlight | ||||
|     set spellHighlight [$text tag ranges sel] | ||||
|     $text see sel.first | ||||
|     $text mark set insert sel.first | ||||
|     .spell.misses delete 0 end | ||||
|     if [string length $guesses] { | ||||
|         foreach miss [split $guesses ","] { | ||||
|             .spell.misses insert end [string trim $miss] | ||||
|         } | ||||
|     } | ||||
|     global spellInteractResult | ||||
|     vwait spellInteractResult | ||||
|     return -code $spellInteractResult | ||||
| } | ||||
|  | ||||
| proc SpellOk {text} { | ||||
|     # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> .spell.word <20><><EFBFBD> .spell.misses | ||||
|     global spellInteractResult spellHighlight | ||||
|     if [llength [.spell.misses curselection]] { | ||||
|         set word [.spell.misses get [.spell.misses curselection]] | ||||
|     } else { | ||||
|         set word [.spell.word get] | ||||
|     } | ||||
|     if {![llength [$text tag ranges sel]]} { | ||||
|         global spellHighilight | ||||
|         eval $text tag add sel $spellHighlight | ||||
|     }   | ||||
|     set oldword [$text get sel.first sel.last] | ||||
|     if {[string compare $oldword $word]} { | ||||
|         $text delete sel.first sel.last | ||||
|         $text insert insert $word sel | ||||
|         global changed spellOffset | ||||
|         set changed 1 | ||||
|         incr spellOffset [expr [string length $word]-[string length $oldword]] | ||||
|     }     | ||||
|     set spellInteractResult ok | ||||
| } | ||||
|  | ||||
| proc SpellAccept {cmd} { | ||||
|     global spellAddWords spellInteractResult | ||||
|     lappend  spellAddWords "$cmd[.spell.word get]" | ||||
|     set spellInteractResult ok | ||||
| } | ||||
|  | ||||
| proc SpellStop {text} { | ||||
|     global ispell_file | ||||
|     $text mark unset spellstart | ||||
|     catch {close $ispell_file} | ||||
|     destroy .spell | ||||
|     set spellInteractResult return | ||||
| }  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										59
									
								
								lib/modules/splashscreen.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										59
									
								
								lib/modules/splashscreen.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2004, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc ShowSplashScreen {} { | ||||
|     global font | ||||
|     global dir tree nb ver font release | ||||
|     set max 200 | ||||
|     set w .about | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Strting Tk LaTeX Editor ..."] | ||||
|     #wm resizable $w 0 0 | ||||
|     wm transient $w . | ||||
|      | ||||
|     frame $w.frmImg -borderwidth 2 -relief ridge -background black | ||||
|     image create photo imgAbout -format gif -file [file join $dir(img) tle.gif] | ||||
|     image create photo imgConero -format gif -file [file join $dir(img) conero.gif] | ||||
|      | ||||
|     label $w.frmImg.lblImg -image imgAbout -background black | ||||
|      | ||||
|     pack $w.frmImg.lblImg -side top -fill x | ||||
|      | ||||
|     frame $w.frmlbl -borderwidth 2 -relief ridge -background "#8700d1" | ||||
|     label $w.frmlbl.lblVersion -text "[::msgcat::mc Version] $ver$release"\ | ||||
|     -background "#8700d1" -foreground black | ||||
|     label $w.frmlbl.lblAuthorName -text "[::msgcat::mc Authors]:"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|     label $w.frmlbl.lblAuthor1 -text "Sergey Kalinin (aka BanZaj), banzaj@lrn.ru"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|     label $w.frmlbl.lblAuthor2 -text "Constantin I Makhailenko (aka Const), const@mail.ru"\ | ||||
|     -background "#8700d1" -foreground  black | ||||
|      | ||||
|      | ||||
|     frame $w.frame | ||||
|      | ||||
|      | ||||
|     ProgressBar $w.frame.bar     \ | ||||
|     -variable   splash_count  -width 100  -height  10  -maximum  $max | ||||
|     label $w.frame.info  -textvariable info | ||||
|      | ||||
|     pack $w.frmlbl.lblVersion $w.frmlbl.lblAuthorName $w.frmlbl.lblAuthor1 $w.frmlbl.lblAuthor2 -side top -padx 5 | ||||
|     pack $w.frmImg -side top -fill x | ||||
|     pack $w.frmlbl  -side top -expand true -fill both | ||||
|      | ||||
|     pack $w.frame.bar $w.frame.info -side top -expand true -fill x | ||||
|      | ||||
|     bind $w <Escape> "destroy .about" | ||||
|     bind $w <Return> "destroy .about" | ||||
|     # | ||||
| } | ||||
|  | ||||
| #ShowSplashScreen | ||||
|  | ||||
							
								
								
									
										291
									
								
								lib/modules/struct.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										291
									
								
								lib/modules/struct.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,291 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #                                                    # | ||||
| # Document structure module (insert\update\deleted   # | ||||
| #                                                    # | ||||
| ###################################################### | ||||
|  | ||||
| set in(c) 0 ;# chapter counter | ||||
| set in(p) 0 ;# part counter | ||||
| set in(s) 0 ;# section counter | ||||
| set in(ss) 0 ;# subsection counter | ||||
| set in(sss) 0 ;# subsubsection counter | ||||
| set in(par) 0 ;# paragraph cponter | ||||
| set in(spar) 0 ;# subparagraph cponter | ||||
| set in(lbl) 0 ;# label cuonter | ||||
| set in(ref) 0 ;# ref counter | ||||
| set in(pageref) 0 ;# ref counter | ||||
| set in(include) 0 | ||||
| set in(input) 0 | ||||
| set in(cite) 0 | ||||
| set in(bibitem) 0 | ||||
| set in(image) 0 | ||||
| set lastPart "root" | ||||
| set lastChapter "root" | ||||
| set lastSection "root" | ||||
| set lastSSection "root" | ||||
| set lastSSSection "root" | ||||
| set lastPar "root" | ||||
| set lastSubPar "root" | ||||
|  | ||||
| ## INSERT STRUCT PROCEDURE ## | ||||
| ## reading and parsing string from surce file | ||||
| ## and execute procedures for inserted required structure into structure tree | ||||
| proc InsertStruct {node line lineNumber fileDir } { | ||||
|     global tree treeStruct dir font color in lastNode activeFile | ||||
|     global lastPart lastChapter lastSection lastSSection lastSSSection | ||||
|     global lastPar lastSubPar lastLabel files nb thumbnail thumb | ||||
|     #puts $fileDir | ||||
|     if [regexp -nocase -all -- {(\\part)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(p) | ||||
|         InsertNode "part_$in(p)" "root" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" part $lineNumber         | ||||
|         set lastPart "part_$in(p)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\chapter)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(c) | ||||
|         InsertNode "chapter_$in(c)" "$lastPart" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" chapter $lineNumber | ||||
|         set lastChapter chapter_$in(c) | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\section)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(s) | ||||
|         InsertNode "section_$in(s)" "$lastChapter" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" section $lineNumber | ||||
|         set lastSection "section_$in(s)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\subsection)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(ss) | ||||
|         InsertNode "subsection_$in(ss)" "$lastSection" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" ssection $lineNumber | ||||
|         set lastSSection "subsection_$in(ss)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\subsubsection)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(sss) | ||||
|         InsertNode "subsubsection_$in(sss)" "$lastSSection" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" sssection $lineNumber | ||||
|         set lastSSSection "subsubsection_$in(sss)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\paragraph)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(par) | ||||
|         InsertNode "paragraph_$in(par)" "$lastSSSection" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" paragraph $lineNumber | ||||
|         set lastPar "paragraph_$in(par)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\subparagraph)(\*|)(\[.*?\])*(\{.*?\})} $line struct v1 v1_5 v2 v3] { | ||||
|         incr in(spar) | ||||
|         InsertNode "subparagraph_$in(spar)" "$lastPar" "[string trimleft [string trimright $v1_5$v3 "\}"] "\{"]" subparagraph $lineNumber | ||||
|         set lastSubPar "subparagraph_$in(spar)" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\label)(\{.*?\})} $line struct v1 v2] { | ||||
|         incr in(lbl) | ||||
|         InsertLabel "label_$in(lbl)" "$v2" "label" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\ref)(\{.*?\})} $line struct v1 v2] { | ||||
|         incr in(ref) | ||||
|         InsertRef "ref_$in(ref)" "$v2" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\pageref)(\{.*?\})} $line struct v1 v2] { | ||||
|         incr in(pageref) | ||||
|         InsertPageref "pageref_$in(pageref)" "$v2" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\cite)(\{.*?\})} $line struct v1 v2] { | ||||
|         incr in(cite) | ||||
|         InsertLabel "cite_$in(cite)" "$v2" "cite" | ||||
|     } | ||||
|     if [regexp -nocase -all -- {(\\bibitem)(\{.*?\})} $line struct v1 v2] { | ||||
|         incr in(bibitem) | ||||
|         InsertLabel "bibitem_$in(bibitem)" "$v2" "bibitem" | ||||
|     } | ||||
|      | ||||
|     if { [regexp -nocase -all -- {(\\input)(\{.*?\})} $line struct v1 v2] || [regexp -nocase -all -- {(\\include)(\{.*?\})} $line struct v1 v2] } { | ||||
|         incr in(input) | ||||
|         set fullPath [string trimleft [string trimright $v2 "\}"] "\{"] | ||||
|         set dirName [file dirname $fullPath] | ||||
|         # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>  | ||||
|         if [info exists activeFile] { | ||||
|             #puts $activeFile | ||||
|             # set nod $activeFile | ||||
|             #while {[set parentNode [$tree parent $nod]] != "root"} {set nod $parentNode} | ||||
|         } else { | ||||
|             #return | ||||
|         } | ||||
|         set rootPath [file dirname [$tree itemcget $node -data]] | ||||
|          | ||||
|         set file [file tail $fullPath] | ||||
|          | ||||
|         if {$dirName != "."} { | ||||
|             set dirName [string range $dirName [expr [string first "/" $dirName]+1] end] | ||||
|             set fileDir [file join $rootPath $dirName] | ||||
|         } else { | ||||
|             set fileDir $rootPath | ||||
|         } | ||||
|         puts "fullPath - $fullPath\nrootPath - $rootPath\n dirName-$dirName\nfile=$file\nfilrDir-$fileDir" | ||||
|         set subNode [InsertTreeSubNode "$file" "$activeFile" $fileDir] | ||||
|         #puts "InsertStruct: node - $subNode\tparent - $node" | ||||
|         #return | ||||
|         if [info exists files($subNode)] { | ||||
|             #puts "$subNode" | ||||
|             #puts "<22><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> [lindex $files($subNode) 0]" | ||||
|             InsertTreeSubNode $file $node $dirName | ||||
|             UpdateStruct [lindex $files($subNode) 0] $subNode | ||||
|         } | ||||
|         set ext [file extension $file] | ||||
|         if {$ext == ""} { | ||||
|             set ext "tex" | ||||
|         } | ||||
|         if {[file exists [file join $fileDir $file.$ext]] == 0} { | ||||
|             $tree itemconfigure $subNode -image [Bitmap::get [file join $dir(img) error.gif]] | ||||
|         } | ||||
|     } | ||||
|     if {[regexp -nocase -all -- {(\\includegraphics)(\{.*?\})} $line struct v1 v2] ==1 || \ | ||||
|     [regexp -nocase -all -- {(\\includegraphics)(\[.*?\])(\{.*?\})} $line struct v1 v3 v2] ==1} { | ||||
|         if {[string tolower $thumb(show)] == "no"} { | ||||
|             return | ||||
|         } | ||||
|         incr in(image) | ||||
|         set imagePath [file dirname $v2] | ||||
|         set rootPath [file dirname [$tree itemcget $node -data]] | ||||
|          | ||||
|         if {$imagePath == "."} { | ||||
|             set fullPathToFile [file join $rootPath [string trimleft [string trimright $v2 "\}"] "\{"]] | ||||
|         } | ||||
|         set fullPathToFile [file join $rootPath [string trimleft [string trimright $v2 "\}"] "\{"]] | ||||
|         set subNode [InsertTreeSubNode [file tail $fullPathToFile] $node [file dirname $fullPathToFile]] | ||||
|         $tree itemconfigure $subNode -image [Bitmap::get [file join $dir(img) img.gif]] | ||||
|          | ||||
|         puts "$imagePath - $rootPath" | ||||
|         set imgFile [ConvertImage $fullPathToFile] | ||||
|         if {[info exists thumbnail($imgFile)] == 0} { | ||||
|             set thumbnail($imgFile) [image create photo -file $imgFile] | ||||
|             $nb.f$activeFile.f.text image create $lineNumber.end -image $thumbnail($imgFile) | ||||
|             puts "Image $thumbnail($imgFile) was create" | ||||
|         } else { | ||||
|             if [lsearch [$nb.f$activeFile.f.text image names ] $thumbnail($imgFile)] { | ||||
|                 puts "$thumbnail($imgFile) - Image already created" | ||||
|             } else { | ||||
|                 #$nb.f$activeFile.f.text image create $lineNumber.end -image $thumbnail($imgFile) | ||||
|             } | ||||
|             #puts "image - $thumbnail($imgFile)\n lists - [$nb.f$activeFile.f.text image names ]" | ||||
|         } | ||||
|     } | ||||
| } | ||||
|     ## UPDATE DOCUMENT STRUCTURE PROCEDURE ## | ||||
|     proc UpdateStruct {file node} { | ||||
|     #puts $file | ||||
|     #puts $node | ||||
|     global tree treeStruct dir font color  lblList files | ||||
|     global lastPart lastChapter lastSection lastSSection lastSSSection | ||||
|     global lastPar lastSubPar in nb dir activeFile | ||||
|     if [info exists files($node)] { | ||||
|         Timer $file "refresh" | ||||
|     } else { | ||||
|         return | ||||
|     } | ||||
|     #FileDialog save | ||||
|     # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|     set dirName [file dirname $file] | ||||
|     set file [file tail $file] | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set contents [$text get 0.0 end] | ||||
|     set fhandle [open [file join $dir(tmp) $file.bak] "w"] | ||||
|     puts $fhandle $contents nonewline | ||||
|     close $fhandle | ||||
|      | ||||
|      | ||||
|     set in(c) 0 ;# chapter counter | ||||
|     set in(p) 0 ;# part counter | ||||
|     set in(s) 0 ;# section counter | ||||
|     set in(ss) 0 ;# subsection counter | ||||
|     set in(sss) 0 ;# subsubsection counter | ||||
|     set in(par) 0 ;# paragraph cponter | ||||
|     set in(spar) 0 ;# subparagraph cponter | ||||
|     set in(lbl) 0 ;# label cuonter | ||||
|     set in(ref) 0 ;# ref counter | ||||
|     set in(pageref) 0 ;# ref counter | ||||
|     set in(include) 0 | ||||
|     set in(input) 0 | ||||
|     set in(cite) 0 | ||||
|     set in(bibitem) 0 | ||||
|     set lastPart "root" | ||||
|     set lastChapter "root" | ||||
|     set lastSection "root" | ||||
|     set lastSSection "root" | ||||
|     set lastSSSection "root" | ||||
|     set lastPar "root" | ||||
|     set lastSubPar "root" | ||||
|     ## check if file was deleted from declaration \input and \include | ||||
|     ## adding new node into file tree | ||||
|     #set node $activeFile | ||||
|     set parentNode [$tree parent $node] | ||||
|      | ||||
|     #puts "UpdateStruct: node - $node\tparent - $parentNode" | ||||
|      | ||||
|     if [$tree exists $node] { | ||||
|         $tree delete [$tree nodes $node] ;# delete all info about old structure | ||||
|     } else { | ||||
|         set file [file tail [lindex $files($node) 0]] | ||||
|         set fileDir [file dirname [lindex $files($node) 0]] | ||||
|         InsertTreeSubNode "$file" $parentNode  $fileDir | ||||
|     } | ||||
|     $treeStruct delete [$treeStruct nodes root] ;# delete all info about old structure | ||||
|     $lblList delete [$lblList item 0 end] ;# deleted all old labels from label list | ||||
|     set fHandle [open [file join $dir(tmp) $file.bak] "r"] | ||||
|     set lineNumber 1 | ||||
|     while {[gets $fHandle line]>=0} { | ||||
|         InsertStruct $node $line $lineNumber $dirName | ||||
|         incr lineNumber | ||||
|     } | ||||
|     unset dirName text contents  | ||||
| } | ||||
|  | ||||
| proc InsertLabel {node label img} { | ||||
|     global tree treeStruct  lblList dir | ||||
|     set label [string trimleft $label "\{"] | ||||
|     set label [string trimright $label "\}"] | ||||
|     $lblList insert end $node -text "$label" -image [Bitmap::get [file join $dir(img) $img.gif]] | ||||
|     unset label | ||||
| } | ||||
| proc InsertRef {node label} { | ||||
|     global tree treeStruct  lblList dir | ||||
|     set label [string trimleft $label "\{"] | ||||
|     set label [string trimright $label "\}"] | ||||
|     $lblList insert end $node -text "$label" -image [Bitmap::get [file join $dir(img) ref.gif]] | ||||
|     unset label | ||||
| } | ||||
| proc InsertPageref {node label} { | ||||
|     global tree treeStruct lblList dir | ||||
|     set label [string trimleft $label "\{"] | ||||
|     set label [string trimright $label "\}"] | ||||
|     $lblList insert end $node -text "$label" -image [Bitmap::get [file join $dir(img) pageref.gif]] | ||||
|     unset label | ||||
| } | ||||
| proc FindLabel {node} { | ||||
|     global nb activeFile lblList status | ||||
|     $lblList selection set $node         | ||||
|     set t [$lblList itemcget $node -text] | ||||
|     set text [string range $node 0 [expr [string first "_" $node]-1]] | ||||
|     set findString "$text\{$t\}" | ||||
|     set text "$nb.f$activeFile.f.text" | ||||
|     FindProc $text $findString $activeFile | ||||
|     $status(pos) configure -text [$text index insert];# cursor position | ||||
|     unset text t findString | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										390
									
								
								lib/modules/supertext.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										390
									
								
								lib/modules/supertext.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,390 @@ | ||||
| # supertext.tcl v1.01 | ||||
| # | ||||
| # Copyright (c) 1998 Bryan Oakley | ||||
| # All Rights Reserved | ||||
| # | ||||
| # this code is freely distributable, but is provided as-is with | ||||
| # no waranty expressed or implied. | ||||
|  | ||||
| # send comments to oakley@channelpoint.com | ||||
|  | ||||
| # What is this? | ||||
| #  | ||||
| # This is a replacement for (or superset of , or subclass of, ...)  | ||||
| # the tk text widget. Its big feature is that it supports unlimited | ||||
| # undo. It also has two poorly documented options: -preproc and  | ||||
| # -postproc.  | ||||
|  | ||||
| # The entry point to this widget is supertext::text; it takes all of | ||||
| # the same arguments as the standard text widget and exhibits all of | ||||
| # the same behaviors.  The proc supertext::overrideTextCommand may be | ||||
| # called to have the supertext widget be used whenever the command | ||||
| # "text" is used (ie: it imports supertext::text as the command "text").  | ||||
| # Use at your own risk... | ||||
|  | ||||
| # To access the undo feature, use ".widget undo". It will undo the | ||||
| # most recent insertion or deletion. On windows and the mac | ||||
| # this command is bound to <Control-z>; on unix it is bound to | ||||
| # <Control-_> | ||||
|  | ||||
| # if you are lucky, you might find documentation here: | ||||
| # http://www1.clearlight.com/~oakley/tcl/supertext.html | ||||
|  | ||||
| package provide supertext 1.01 | ||||
|  | ||||
| namespace eval supertext { | ||||
|     variable undo | ||||
|     variable undoIndex | ||||
|     variable text "::text" | ||||
|     variable preProc | ||||
|     variable postProc | ||||
|     namespace export text | ||||
| } | ||||
|  | ||||
| # this proc is probably attempting to be more clever than it should... | ||||
| # When called, it will (*gasp*) rename the tk command "text" to "_text_",  | ||||
| # then import our text command into the global scope.  | ||||
| # | ||||
| # Use at your own risk! | ||||
|  | ||||
| proc supertext::overrideTextCommand {} { | ||||
|     variable text | ||||
|     set text "::_text_" | ||||
|     rename ::text $text | ||||
|     uplevel #0 namespace import supertext::text | ||||
| } | ||||
|  | ||||
| proc supertext::text {w args} { | ||||
|     variable text | ||||
|     variable undo | ||||
|     variable undoIndex | ||||
|     variable preProc | ||||
|     variable postProc | ||||
|  | ||||
|     # this is what we will rename our widget proc to... | ||||
|     set original __$w | ||||
|  | ||||
|     # do we have any of our custom options? If so, process them and  | ||||
|     # strip them out before sending them to the real text command | ||||
|     if {[set i [lsearch -exact $args "-preproc"]] >= 0} { | ||||
|         set j [expr $i + 1] | ||||
|         set preProc($original) [lindex $args $j] | ||||
|         set args [lreplace $args $i $j] | ||||
|     } else { | ||||
|         set preProc($original) {} | ||||
|     } | ||||
|  | ||||
|     if {[set i [lsearch -exact $args "-postproc"]] >= 0} { | ||||
|         set j [expr $i + 1] | ||||
|         set postProc($original) [lindex $args $j] | ||||
|         set args [lreplace $args $i $j] | ||||
|     } else { | ||||
|         set postProc($original) {} | ||||
|     } | ||||
|  | ||||
|     # let the text command create the widget... | ||||
|     eval $text $w $args | ||||
|  | ||||
|     # now, rename the resultant widget proc so we can create our own | ||||
|     rename ::$w $original | ||||
|  | ||||
|     # here's where we create our own widget proc. | ||||
|     proc ::$w {command args} \ | ||||
|         "namespace eval supertext widgetproc $w $original \$command \$args" | ||||
|      | ||||
|     # set up platform-specific binding for undo; the only one I'm | ||||
|     # really sure about is winders; the rest will stay the same for | ||||
|     # now until someone has a better suggestion... | ||||
|     switch $::tcl_platform(platform) { | ||||
|         unix                 { | ||||
|             event add <<Undo>> <Control-z> | ||||
|             event add <<Undo>> <Control-Z> | ||||
|         } | ||||
|         windows         { | ||||
|             event add <<Undo>> <Control-z> | ||||
|             event add <<Undo>> <Control-Z> | ||||
|         } | ||||
|         macintosh         { | ||||
|             event add <<Undo>> <Control-z> | ||||
|             event add <<Undo>> <Control-Z> | ||||
|         } | ||||
|     } | ||||
|     bind $w <<Undo>> "$w undo" | ||||
|  | ||||
|     set undo($original)        {} | ||||
|     set undoIndex($original) -1 | ||||
|     set clones($original) {} | ||||
|  | ||||
|     return $w | ||||
| } | ||||
|  | ||||
| # this is the command that we associate with a supertext widget.  | ||||
| proc supertext::widgetproc {this w command args} { | ||||
|  | ||||
|     variable undo | ||||
|     variable undoIndex | ||||
|     variable preProc | ||||
|     variable postProc | ||||
|  | ||||
|     # these will be the arguments to the pre and post procs | ||||
|     set originalCommand $command | ||||
|     set originalArgs $args | ||||
|  | ||||
|     # is there a pre-proc? If so, run it. If there is a problem, | ||||
|     # die. This is potentially bad, because once there is a problem | ||||
|     # in a preproc the user must fix the preproc -- there is no | ||||
|     # way to unconfigure the preproc. Oh well. The other choice | ||||
|     # is to ignore errors, but then how will the caller know if | ||||
|     # the proc fails? | ||||
|     if {[info exists preProc($w)] && $preProc($w) != ""} { | ||||
|         if {[catch "$preProc($w) command args" error]} { | ||||
|             return -code error "error during processing of -preproc: $error" | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     # if the command is "undo", we need to morph it into the appropriate | ||||
|     # command for undoing the last item on the stack | ||||
|     if {$command == "undo"} { | ||||
|  | ||||
|         if {$undoIndex($w) == ""} { | ||||
|             # ie: last command was anything _but_ an undo... | ||||
|             set undoIndex($w) [expr [llength $undo($w)] -1] | ||||
|         } | ||||
|  | ||||
|         # if the index is pointing to a valid list element,  | ||||
|         # lets undo it... | ||||
|         if {$undoIndex($w) < 0} { | ||||
|             # nothing to undo... | ||||
|             bell | ||||
|  | ||||
|         } else { | ||||
|              | ||||
|             # data is a list comprised of a command token | ||||
|             # (i=insert, d=delete) and parameters related  | ||||
|             # to that token | ||||
|             set data [lindex $undo($w) $undoIndex($w)] | ||||
|  | ||||
|             if {[lindex $data 0] == "d"} { | ||||
|                 set command "delete" | ||||
|             } else { | ||||
|                 set command "insert" | ||||
|             } | ||||
|             set args [lrange $data 1 end] | ||||
|  | ||||
|             # adjust the index | ||||
|             incr undoIndex($w) -1 | ||||
|  | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # now, process the command (either the original one, or the morphed | ||||
|     # undo command | ||||
|     switch $command { | ||||
|  | ||||
|         reset_undo { | ||||
|                 set undo($w) "" | ||||
|                 set undoIndex($w) "" | ||||
|                 set result {} | ||||
|         } | ||||
|  | ||||
|         configure { | ||||
|             # we have to deal with configure specially, since the | ||||
|             # user could try to configure the -preproc or -postproc | ||||
|             # options... | ||||
|              | ||||
|             if {[llength $args] == 0} { | ||||
|                 # first, the case where they just type "configure"; lets  | ||||
|                 # get it out of the way | ||||
|                 set list [$w configure] | ||||
|                 lappend list [list -preproc preproc Preproc {} $preProc($w)] | ||||
|                 lappend list [list -postproc postproc Postproc {} $postProc($w)] | ||||
|                 set result $list | ||||
|                  | ||||
|                  | ||||
|             } elseif {[llength $args] == 1} { | ||||
|                 # this means they are wanting specific configuration  | ||||
|                 # information | ||||
|                 set option [lindex $args 0] | ||||
|                 if {$option == "-preproc"} { | ||||
|                     set result [list -preproc preproc Preproc {} $preProc($w)] | ||||
|  | ||||
|                 } elseif {$option == "-postproc"} { | ||||
|                     set result [list -postproc postproc Postproc {} $postProc($w)] | ||||
|                      | ||||
|                 } else { | ||||
|                     if {[catch "$w $command $args" result]} { | ||||
|                         regsub $w $result $this result | ||||
|                         return -code error $result | ||||
|                     } | ||||
|                 } | ||||
|  | ||||
|             } else { | ||||
|                 # ok, the user is actually configuring something...  | ||||
|                 # we'll deal with our special options first | ||||
|                 if {[set i [lsearch -exact $args "-preproc"]] >= 0} { | ||||
|                     set j [expr $i + 1] | ||||
|                     set preProc($w) [lindex $args $j] | ||||
|                     set args [lreplace $args $i $j] | ||||
|                     set result {} | ||||
|                 } | ||||
|  | ||||
|                 if {[set i [lsearch -exact $args "-postproc"]] >= 0} { | ||||
|                     set j [expr $i + 1] | ||||
|                     set postProc($w) [lindex $args $j] | ||||
|                     set args [lreplace $args $i $j] | ||||
|                     set result {} | ||||
|                 } | ||||
|  | ||||
|                 # now, process any remaining args | ||||
|                 if {[llength $args] > 0} { | ||||
|                     if {[catch "$w $command $args" result]} { | ||||
|                         regsub $w $result $this result | ||||
|                         return -code error $result | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         undo { | ||||
|             # if an undo command makes it to here, that means there  | ||||
|             # wasn't anything to undo; this effectively becomes a | ||||
|             # no-op | ||||
|             set result {} | ||||
|         } | ||||
|  | ||||
|         insert { | ||||
|  | ||||
|             if {[catch {set index  [text_index $w [lindex $args 0]]}]} { | ||||
|                 set index [lindex $args 0] | ||||
|             } | ||||
|  | ||||
|             # since the insert command can have an arbitrary number | ||||
|             # of strings and possibly tags, we need to ferret that out | ||||
|             # now... what a pain! | ||||
|             set myargs [lrange $args 1 end] | ||||
|             set length 0 | ||||
|             while {[llength $myargs] > 0} { | ||||
|                 incr length [string length [lindex $myargs 0]] | ||||
|                 if {[llength $myargs] > 1} { | ||||
|                     # we have a tag... | ||||
|                     set myargs [lrange $myargs 2 end] | ||||
|                 } else { | ||||
|                     set myargs [lrange $myargs 1 end] | ||||
|                 } | ||||
|             } | ||||
|  | ||||
|             # now, let the real widget command do the dirty work | ||||
|             # of inserting the text. If we fail, do some munging  | ||||
|             # of the error message so the right widget name appears... | ||||
|  | ||||
|             if {[catch "$w $command $args" result]} { | ||||
|                 regsub $w $result $this result | ||||
|                 return -code error $result | ||||
|             } | ||||
|  | ||||
|             # we need this for the undo stack; index2 couldn't be | ||||
|             # computed until after we inserted the data... | ||||
|             set index2 [text_index $w "$index + $length chars"] | ||||
|  | ||||
|             if {$originalCommand == "undo"} { | ||||
|                 # let's do a "see" so what we just did is visible; | ||||
|                 # also, we'll move the insertion cursor to the end | ||||
|                 # of what we just did... | ||||
|                 $w see $index2 | ||||
|                 $w mark set insert $index2 | ||||
|                  | ||||
|             } else { | ||||
|                 # since the original command wasn't undo, we need | ||||
|                 # to reset the undoIndex. This means that the next | ||||
|                 # time an undo is called for we'll start at the  | ||||
|                 # end of the stack | ||||
|                 set undoIndex($w) "" | ||||
|             } | ||||
|  | ||||
|             # add a delete command on the undo stack. | ||||
|             lappend undo($w) "d $index $index2" | ||||
|  | ||||
|         } | ||||
|  | ||||
|         delete { | ||||
|  | ||||
|             # this converts the insertion index into an absolute address | ||||
|             set index [text_index $w [lindex $args 0]] | ||||
|  | ||||
|             # lets get the data we are about to delete; we'll need | ||||
|             # it to be able to undo it (obviously. Duh.) | ||||
|             set data [eval $w get $args] | ||||
|  | ||||
|             # add an insert on the undo stack | ||||
|             lappend undo($w) [list "i" $index $data] | ||||
|  | ||||
|             if {$originalCommand == "undo"} { | ||||
|                 # let's do a "see" so what we just did is visible; | ||||
|                 # also, we'll move the insertion cursor to a suitable | ||||
|                 # spot | ||||
|                 $w see $index | ||||
|                 $w mark set insert $index | ||||
|  | ||||
|             } else { | ||||
|                 # since the original command wasn't undo, we need | ||||
|                 # to reset the undoIndex. This means that the next | ||||
|                 # time an undo is called for we'll start at the  | ||||
|                 # end of the stack | ||||
|                 set undoIndex($w) "" | ||||
|             } | ||||
|  | ||||
|             # let the real widget command do the actual deletion. If | ||||
|             # we fail, do some munging of the error message so the right | ||||
|             # widget name appears... | ||||
|             if {[catch "$w $command $args" result]} { | ||||
|                 regsub $w $result $this result | ||||
|                 return -code error $result | ||||
|             } | ||||
|         } | ||||
|          | ||||
|         default { | ||||
|             # if the command wasn't one of the special commands above, | ||||
|             # just pass it on to the real widget command as-is. If | ||||
|             # we fail, do some munging of the error message so the right | ||||
|             # widget name appears... | ||||
|             if {[catch "$w $command $args" result]} { | ||||
|                 regsub $w $result $this result | ||||
|                 return -code error $result | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     # is there a post-proc? If so, run it.  | ||||
|     if {[info exists postProc($w)] && $postProc($w) != ""} { | ||||
|         if {[catch "$postProc($w) originalCommand originalArgs" error]} { | ||||
|             return -code error "error during processing of -postproc: $error" | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     # we're outta here! (I think this is faster than a  | ||||
|     # return, though I'm not 100% sure on this...) | ||||
|     set result $result | ||||
| } | ||||
|  | ||||
| # this returns a normalized index (ie: line.column), with special | ||||
| # handling for the index "end"; to undo something we pretty much | ||||
| # _have_ to have a precise row and column number. | ||||
| proc supertext::text_index {w i} { | ||||
|     if {$i == "end"} { | ||||
|         set index [$w index "end-1c"] | ||||
|     } else { | ||||
|         set index [$w index $i] | ||||
|     } | ||||
|  | ||||
|     return $index | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										147
									
								
								lib/modules/table.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										147
									
								
								lib/modules/table.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,147 @@ | ||||
| ###################################################### | ||||
| #                Tk LaTeX Editor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc InsertTableDialog {} { | ||||
|     global nb font files findString replaceString text dir color | ||||
|     set node [$nb raise] | ||||
|     if {$node == "newproj" || $node == "settings" || $node == "about" || $node == ""} { | ||||
|         return | ||||
|     } | ||||
|     #set file $files($node) | ||||
|     set w .table | ||||
|     set text "$nb.f$node.f.text" | ||||
|     #    set findString "" | ||||
|     # destroy the find window if it already exists | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     set colNum 1 | ||||
|     set posTable "center" | ||||
|     set align "center" | ||||
|     set line "full" | ||||
|     toplevel $w | ||||
|     wm transient $w $nb.f$node | ||||
|     wm title $w [::msgcat::mc "Add table"] | ||||
|     wm resizable $w 0 0 | ||||
|      | ||||
|     set f1 [frame $w.frmAlign -borderwidth 1 -relief raised -background $color(bg)] | ||||
|     set f2 [frame $w.frmTable -borderwidth 1 -relief raised -background $color(bg)] | ||||
|     set f3 [frame $w.frmBtn -borderwidth 1 -background $color(bg)] | ||||
|     set f4 [frame $w.frmCol -borderwidth 1 -relief raised -background $color(bg)] | ||||
|     set f5 [frame $w.frmPos -borderwidth 1 -relief raised -background $color(bg)] | ||||
|     pack $f4 $f1 $f2 $f5 $f3 -side top -fill x -expand true | ||||
|      | ||||
|     label $f4.lblCol -text [::msgcat::mc "Input number of columns"] -background $color(bg) | ||||
|     SpinBox $f4.spinCol -textvariable colNum -range {1 100 1} -helptext "Columns" -background $color(bg) | ||||
|     pack $f4.lblCol $f4.spinCol -side top -fill x -pady 2 -padx 2 | ||||
|      | ||||
|     label $f1.lbl -text [::msgcat::mc "Alignment"] -background $color(bg) | ||||
|     pack $f1.lbl -side top -fill x | ||||
|     foreach btn {center left right} { | ||||
|         radiobutton $f1.btn$btn -text [::msgcat::mc "Align $btn"] -variable align\ | ||||
|         -value $btn -font $font(normal) -selectcolor $color(selectbg) -background $color(bg) | ||||
|         pack $f1.btn$btn -side top -anchor w | ||||
|     } | ||||
|      | ||||
|     label $f5.lblPos -text [::msgcat::mc "Table position"] -background $color(bg) | ||||
|     pack $f5.lblPos -side top -fill x | ||||
|     foreach tbl {top bottom center} { | ||||
|         image create photo img_$tbl -file [file join $dir(img) table_$tbl.gif] | ||||
|         radiobutton $f5.btn$tbl -variable table -indicatoron 0 -background $color(bg)\ | ||||
|         -font $font(normal) -image img_$tbl -value $tbl  -selectcolor $color(selectbg) | ||||
|         pack $f5.btn$tbl -side left -anchor n -pady 2 | ||||
|     } | ||||
|      | ||||
|     label $f2.lblLine -text [::msgcat::mc "Line type"] -background $color(bg) | ||||
|     pack $f2.lblLine -side top -fill x | ||||
|     foreach tbl {empty full double cols lines} { | ||||
|         image create photo img_$tbl -file [file join $dir(img) table_$tbl.gif] | ||||
|         radiobutton $f2.btn$tbl -variable line -indicatoron 0 -background $color(bg)\ | ||||
|         -font $font(normal) -image img_$tbl -value $tbl -selectcolor $color(selectbg) | ||||
|         pack $f2.btn$tbl -side left -anchor n -pady 2 | ||||
|     } | ||||
|      | ||||
|      | ||||
|     button $f3.btnAdd -text "[::msgcat::mc "Insert"] - Enter" -font $font(normal)\ | ||||
|     -relief groove  -background $color(bg) -command { | ||||
|         InsertTable $colNum $table $line $align | ||||
|         destroy .table | ||||
|     } | ||||
|     button $f3.btnCancel -text "[::msgcat::mc "Cancel"] - Esc" -command "destroy $w"\ | ||||
|     -font $font(normal) -relief groove -background $color(bg) | ||||
|     pack $f3.btnAdd $f3.btnCancel\ | ||||
|     -side left -padx 2 -pady 2 -fill x | ||||
|      | ||||
|     bind $w <Return> "" | ||||
|     bind $w <F4> "" | ||||
|     bind $w <Escape> "destroy $w" | ||||
| } | ||||
|  | ||||
| proc InsertTable {colNum posTable line align} { | ||||
|     global dir font color nb | ||||
|     set node [$nb raise] | ||||
|     if {$node == ""} {return} | ||||
|     set text "$nb.f$node.f.text" | ||||
|     set pos [$text index insert] | ||||
|     set curLine [lindex [split $pos "."] 0] | ||||
|     set cursor [lindex [split $pos "."] 1] | ||||
|     set editLine [$text get $curLine.0 $pos] | ||||
|     set header "\\begin\{tabular\}" | ||||
|     set footer "\\end\{tabular\}" | ||||
|      | ||||
|     if {$line == "double"} { | ||||
|         set split "||" | ||||
|         set lineEnd "\\\\ \\hline\n" | ||||
|     } elseif {$line == "full"} { | ||||
|         set split "|" | ||||
|         set lineEnd "\\\\ \\hline\n" | ||||
|     } elseif {$line == "empty"} { | ||||
|         set split " " | ||||
|         set lineEnd "\\\\\n" | ||||
|     } elseif {$line == "cols"} { | ||||
|         set split "|" | ||||
|         set lineEnd "\\\\\n" | ||||
|     } elseif {$line == "lines"} { | ||||
|         set split " " | ||||
|         set lineEnd "\\\\ \\hline\n" | ||||
|     } else { | ||||
|         set split " " | ||||
|         set lineEnd "\\\\\n" | ||||
|     } | ||||
|     switch -- $posTable { | ||||
|         top        {set position "t"} | ||||
|         bottom        {set position "b"} | ||||
|         center        {set position "c"} | ||||
|     } | ||||
|     switch -- $align { | ||||
|         center        {set colAlign "c"} | ||||
|         left        {set colAlign "l"} | ||||
|         right        {set colAlign "r"} | ||||
|     } | ||||
|     set count 0 | ||||
|     set count_ 0 | ||||
|     while {$colNum > $count} { | ||||
|         append columns "$split$colAlign" | ||||
|         incr count | ||||
|     } | ||||
|     while {$colNum > [expr $count_+1]} { | ||||
|         append body "&  " | ||||
|         incr count_ | ||||
|     } | ||||
|      | ||||
|     append columns $split | ||||
|      | ||||
|     $text insert $pos "$header\[$position\]\{$columns\} $lineEnd\t$body$lineEnd$footer" | ||||
|     $text mark set insert [expr $curLine +1].1 | ||||
|     $text see insert | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										126
									
								
								lib/modules/template.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										126
									
								
								lib/modules/template.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,126 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lrn", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| proc TemplateDialog {} { | ||||
|     global dir nb tmpl font color  relief | ||||
|     set w .template | ||||
|     if {[winfo exists $w]} { | ||||
|         destroy $w | ||||
|     } | ||||
|     # create the new "goto" window | ||||
|     toplevel $w | ||||
|     wm title $w [::msgcat::mc "Create new file"] | ||||
|     #wm resizable $w 0 0 | ||||
|     wm geometry $w 550x300 | ||||
|     wm transient $w . | ||||
|      | ||||
|     frame $w.frmCanv -border 1 -relief sunken | ||||
|     frame $w.frmBtn -border 1 -relief sunken | ||||
|     frame $w.frmTxt -border 1 -relief sunken | ||||
|     pack $w.frmCanv -side top -fill both -padx 1 -pady 1 -expand 1 -fill both | ||||
|     pack $w.frmTxt -side top -fill x | ||||
|     pack $w.frmBtn -side top -fill x | ||||
|      | ||||
|     set fList [ScrolledWindow $w.frmCanv.f -background $color(bg)] | ||||
|     set list [ListBox $fList.list -font $font(normal)\ | ||||
|     -relief sunken -borderwidth 1 -width 1 -height 1 -highlightthickness 1\ | ||||
|     -background $color(editBg) -selectbackground $color(selectbg)] | ||||
|     pack $list -side left -fill both -expand yes | ||||
|     $fList setwidget $list | ||||
|     pack $fList -side left -fill both -expand yes | ||||
|      | ||||
|      | ||||
|     set fText [ScrolledWindow $w.frmCanv.f1 -background $color(bg)] | ||||
|     set text [supertext::text $fText.txtTemplate -width 5 -height 5 -yscrollcommand "$w.frmCanv.yScrText set" \ | ||||
|     -wrap none -state disable -background $color(editBg) -foreground $color(editFg)\ | ||||
|     -selectborderwidth 0 -selectbackground $color(selectbg)] | ||||
|     $fText setwidget $text | ||||
|     pack $fText -side left -fill both -expand 1 | ||||
|     #pack $text -side left -fill both -expand 1 | ||||
|     #return | ||||
|      | ||||
|     ## SPLIT BAR ## | ||||
|     pane::create $fList $fText | ||||
|      | ||||
|     label $w.frmTxt.lblFile -text [::msgcat::mc "Input file name"]  -font $font(normal) | ||||
|     entry $w.frmTxt.entFile | ||||
|     pack $w.frmTxt.lblFile $w.frmTxt.entFile -side left -padx 2 | ||||
|     pack $w.frmTxt.entFile -side left -padx 1 -fill x -expand true | ||||
|     $w.frmTxt.entFile insert 0 "name.tex" | ||||
|      | ||||
|     button $w.frmBtn.btnOk -text [::msgcat::mc "Create"] -relief groove  -font $font(normal) -command { | ||||
|         set file [.template.frmTxt.entFile get] | ||||
|         file copy -force $tmpl [file join $dir(current) $file] | ||||
|         EditFile [file join $dir(current) $file] | ||||
|         destroy .template | ||||
|     } | ||||
|      | ||||
|     button $w.frmBtn.btnCancel -text [::msgcat::mc "Close"] -command "destroy $w" -relief groove -font $font(normal) | ||||
|     pack $w.frmBtn.btnOk $w.frmBtn.btnCancel -padx 2 -pady 2 -fill x -side left | ||||
|      | ||||
|     bind $w <Escape> "destroy .template" | ||||
|     focus -force $list | ||||
|     $list bindImage <ButtonRelease-1> "ReadTemplateDescr [$list selection get]" | ||||
|     $list bindText <ButtonRelease-1> "ReadTemplateDescr [$list selection get]" | ||||
|     bind $list.c <Button-4> "$list yview scroll -3 units" | ||||
|     bind $list.c <Button-5> "$list yview scroll  3 units" | ||||
|     bind $list.c <Shift-Button-4> "$list xview scroll -2 units" | ||||
|     bind $list.c <Shift-Button-5> "$list xview scroll  2 units" | ||||
|      | ||||
|     GetTemplateList $list | ||||
| } | ||||
|  | ||||
| proc GetTemplateList {list} { | ||||
|     global dir | ||||
|     set ind 0 | ||||
|     foreach file [lsort [glob -nocomplain [file join $dir(tmpl) *.tex]]] { | ||||
|         if {[file isdirectory $file] == 0} { | ||||
|             #$list insert end $file | ||||
|             $list insert end tmpl_$ind -text [file tail $file] \ | ||||
|             -image [Bitmap::get [file join $dir(img) tex_tmpl.gif]] \ | ||||
|             -data $file | ||||
|             #$list insert end [file tail $file] | ||||
|             #ReadTemplate $file $text | ||||
|             incr ind | ||||
|         } | ||||
|     } | ||||
|     foreach file [lsort [glob -nocomplain [file join $dir(work_tmpl) *.tex]]] { | ||||
|         if {[file isdirectory $file] == 0} { | ||||
|             $list insert end tmpl_$ind -text [file tail $file] \ | ||||
|             -image [Bitmap::get [file join $dir(img) tex_tmpl.gif]] \ | ||||
|             -data $file | ||||
|             incr ind | ||||
|             #$list insert end $file | ||||
|             #$list insert end [file tail $file] | ||||
|             #ReadTemplate $file $text | ||||
|         } | ||||
|     } | ||||
|     #catch {cd ..} | ||||
| } | ||||
| proc ReadTemplateDescr {node} { | ||||
|     global dir tmpl | ||||
|     set text .template.frmCanv.f1.txtTemplate | ||||
|     $text configure -state normal | ||||
|     $text delete 0.0 end | ||||
|     .template.frmCanv.f.list selection set $node | ||||
|      | ||||
|     #$w select set anchor [$w nearest $y] | ||||
|     #set file [$w get [$w curselection]] | ||||
|     set file [.template.frmCanv.f.list itemcget $node -data] | ||||
|      | ||||
|     set tmpl $file | ||||
|     set fHandle [open $file] | ||||
|     fconfigure $fHandle -encoding koi8-r | ||||
|     while {[gets $fHandle line]>=0} { | ||||
|         if {[string range [string trim $line] 0 0] != "%"} {return}     | ||||
|         $text insert end "$line\n" | ||||
|     } | ||||
|     close $fHandle | ||||
|     $text configure -state disable | ||||
| } | ||||
|  | ||||
|  | ||||
							
								
								
									
										118
									
								
								lib/modules/tex.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										118
									
								
								lib/modules/tex.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,118 @@ | ||||
| ########################################################### | ||||
| #                Tcl/Tk Project Manager                   # | ||||
| #                    version 0.0.1                        # | ||||
| #                  TCL highlight file                     # | ||||
| # Copyright (c) "CONERO lab", 2001, http://conero.lrn.ru  # | ||||
| # Author: Sergey Kalinin (aka BanZaj) banzaj@lrn.ru       # | ||||
| ########################################################### | ||||
|  | ||||
| proc LoadTag {text} { | ||||
|     global font color | ||||
|     $text tag configure bold -font $font(bold) | ||||
|     $text tag configure operator -foreground $color(operator) | ||||
|     $text tag configure param -foreground $color(param) | ||||
|     $text tag configure subParam -foreground $color(subParam) | ||||
|     $text tag configure keyWord -foreground $color(keyWord) | ||||
|     $text tag configure comments -foreground $color(comments) | ||||
|     $text tag configure variable -foreground $color(var) | ||||
|     $text tag configure string -foreground $color(string) | ||||
|     $text tag configure brace -foreground $color(brace) | ||||
|     $text tag configure percent -foreground $color(percent) | ||||
|     $text tag configure bindKey -foreground $color(bindKey) | ||||
|     $text tag configure lightBracket -background $color(braceBG) -foreground $color(braceFG) | ||||
| } | ||||
|  | ||||
| proc HighLightTEX {text line lineNumber node} { | ||||
|     global font tree color nb | ||||
|      | ||||
|     set startIndex 0 | ||||
|      | ||||
|     set keyWord [info commands] | ||||
|     # for OOP extention | ||||
|     foreach n {class method attribute constructor destructor invariant attribute binding new delete} { | ||||
|         lappend keyWord $n | ||||
|     } | ||||
|     set startPos 0 | ||||
|     set workLine $line | ||||
|      | ||||
|     regexp -nocase -all -- {(\\)([a-zA-Z])*} string match v1 v2 | ||||
|     while {$workLine != ""} { | ||||
|         if {[regexp -nocase -all {(\\)([a-zA-Z])*} $workLine a b c]} { | ||||
|             set start [string first $a $workLine] | ||||
|             set end $start | ||||
|             incr end [string length $a] | ||||
|             set workLine [string range $workLine $end end] | ||||
|             incr start $startPos | ||||
|             incr end $startPos | ||||
|             $text tag add operator $lineNumber.$start $lineNumber.$end | ||||
|             set startPos $end | ||||
|         } else { | ||||
|             break | ||||
|         }         | ||||
|     } | ||||
|     # string " " highlight | ||||
|     set startPos 0 | ||||
|     set workLine $line | ||||
|     while {$workLine != ""} { | ||||
|         if {[regexp "\".*?\"" $workLine a b]} { | ||||
|             set start [string first $a $workLine] | ||||
|             set end $start | ||||
|             incr end [string length $a] | ||||
|             set workLine [string range $workLine $end end] | ||||
|             incr start $startPos | ||||
|             incr end $startPos | ||||
|             $text tag add string $lineNumber.$start $lineNumber.$end | ||||
|             set startPos $end | ||||
|         } else { | ||||
|             break | ||||
|         }         | ||||
|     } | ||||
|     set startPos 0 | ||||
|     set workLine $line | ||||
|     while {$workLine != ""} { | ||||
|         if {[regexp {\{.*?\}} $workLine a b]} { | ||||
|             set start [string first $a $workLine] | ||||
|             set end $start | ||||
|             incr end [string length $a] | ||||
|             set workLine [string range $workLine $end end] | ||||
|             incr start [expr $startPos +1] | ||||
|             incr end [expr $startPos - 1] | ||||
|             $text tag add param $lineNumber.$start $lineNumber.$end | ||||
|             set startPos $end | ||||
|         } else { | ||||
|             break | ||||
|         }         | ||||
|     } | ||||
|     set startPos 0 | ||||
|     set workLine $line | ||||
|     while {$workLine != ""} { | ||||
|         if {[regexp {\[.*?\]} $workLine a b]} { | ||||
|             set start [string first $a $workLine] | ||||
|             set end $start | ||||
|             incr end [string length $a] | ||||
|             set workLine [string range $workLine $end end] | ||||
|             incr start [expr $startPos + 1] | ||||
|             incr end [expr $startPos - 1] | ||||
|             $text tag add subParam $lineNumber.$start $lineNumber.$end | ||||
|             set startPos $end | ||||
|         } else { | ||||
|             break | ||||
|         }         | ||||
|     } | ||||
|     # add comment # | ||||
|     set workLine [$text get $lineNumber.0 $lineNumber.end] | ||||
|     if {[regexp -indices "(^|\t|;| )%" $workLine pos]} { | ||||
|         set cur [lindex $pos 1] | ||||
|         $text tag add comments $lineNumber.$cur $lineNumber.end | ||||
|         return 0 | ||||
|     } else { | ||||
|         $text tag remove comments $lineNumber.0 $lineNumber.end | ||||
|         return 0 | ||||
|     } | ||||
|      | ||||
|     #################### | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
							
								
								
									
										181
									
								
								lib/modules/tree.tcl
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										181
									
								
								lib/modules/tree.tcl
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1,181 @@ | ||||
| ###################################################### | ||||
| #                TkTeXEditor | ||||
| #        Distributed under GNU Public License | ||||
| # Author: Sergey Kalinin (BanZaj) banzaj@lrn.ru | ||||
| # Copyright (c) "CONERO lab", 2002, http://conero.lrn.ru | ||||
| ###################################################### | ||||
|  | ||||
| ###################################################### | ||||
| #                                                                                                                                                                             # | ||||
| #  Working with trees (insert\update\deleted) nodes                                                               # | ||||
| #                                                                                                                                                                             # | ||||
| ###################################################### | ||||
|  | ||||
| ## PROJECTS & FILE TREE ## | ||||
| proc InsertTreeNode {file dirName} { | ||||
|     global tree font dir | ||||
|     set dot "_" | ||||
|     set name [file rootname $file] | ||||
|     set ext [string range [file extension $file] 1 end] | ||||
|     regsub -all -nocase -- {/| |\.} $dirName $dot nodeEnd | ||||
|     regsub -all -nocase -- { |\.} $name $dot name | ||||
|     set subNode "$nodeEnd$dot$name$dot$ext" | ||||
|      | ||||
|     if {[$tree exists $subNode] == 1} { | ||||
|         return $subNode | ||||
|     } | ||||
|     $tree insert end root $subNode -text $file \ | ||||
|     -data [file join $dirName $file] -open 1\ | ||||
|     -image [Bitmap::get [file join $dir(img) tex.gif]]\ | ||||
|     -font $font(normal) | ||||
|     $tree configure -redraw 1 | ||||
|     return $subNode | ||||
|      | ||||
| } | ||||
|  | ||||
| ## INSERT NODE INTO FILES TREE FOR INCLUDED FILES | ||||
| proc InsertTreeSubNode {file rootNode dirName} { | ||||
|     global tree font dir files | ||||
|     set dot "_" | ||||
|     set name [file rootname $file] | ||||
|     set ext [string range [file extension $file] 1 end] | ||||
|     if {$ext == ""} { | ||||
|         #puts "$file - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|         set ext "tex" | ||||
|         set file $file.$ext | ||||
|         #puts $file | ||||
|     } | ||||
|      | ||||
|     regsub -all -nocase -- {/| |\.} $dirName $dot nodeEnd | ||||
|     regsub -all -nocase -- { |\.} $name $dot name | ||||
|     set subNode "$nodeEnd$dot$name$dot$ext" | ||||
|     #set subNode "$nodeEnd$dot$ext" | ||||
|     #puts "file - $file\n" | ||||
|     #puts "dirName - $dirName\n" | ||||
|     #puts "rootNode - $rootNode\n" | ||||
|     #puts "nodeEnd - $nodeEnd\n" | ||||
|     #puts "name - $name\n" | ||||
|     #puts "subnode - $subNode\n" | ||||
|     if {[$tree exists $subNode] == 1} { | ||||
|         if {[$tree parent $subNode] == "root"} { | ||||
|             $tree delete $subNode | ||||
|         } else { | ||||
|             return | ||||
|         } | ||||
|     } | ||||
|     $tree insert end $rootNode $subNode -text $file \ | ||||
|     -data [file join $dirName $file] -open 1\ | ||||
|     -image [Bitmap::get [file join $dir(img) tex.gif]]\ | ||||
|     -font $font(normal) | ||||
|     $tree configure -redraw 1 | ||||
|     return $subNode | ||||
| } | ||||
| ## DOCUMENT STRUCTURE TREE  ## | ||||
| proc InsertNode {node parentNode text image lineNumber} { | ||||
|     global treeStruct font dir | ||||
|     set dot "_" | ||||
|     $treeStruct insert end $parentNode $node -text [string trimleft $text "\*\{"] \ | ||||
|     -data " $lineNumber$dot$text" -open 1\ | ||||
|     -font $font(normal)\ | ||||
|     -image [Bitmap::get [file join $dir(img) $image.gif]] | ||||
|     $treeStruct configure -redraw 1 | ||||
|     #return $subNode | ||||
| } | ||||
|  | ||||
| ## TREE ONE CLICKING PROCEDURE ## | ||||
| proc TreeOneClick {node} { | ||||
|     global dir nb tree activeFile status files | ||||
|     $tree selection set $node | ||||
|     set activeFile $node | ||||
|      | ||||
|     set file [$tree itemcget $node -data] | ||||
|     #puts "TreeOneClick - $file";# debug | ||||
|     if {[file exists $file] == 0} { | ||||
|         set answer [tk_messageBox -message "$file [::msgcat::mc "File not found"]"\ | ||||
|         -type ok -icon warning -title [::msgcat::mc "Warning"]] | ||||
|         case $answer { | ||||
|             ok {return} | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     $status(fileAttr) configure -text [FileAttr [$tree itemcget $node -data]] | ||||
|     #$status(encode) configure -text "[lindex $files($activeFile) 2]" | ||||
|     PageRaise $node | ||||
|     puts "$node\nnodes - [$tree nodes $node]" | ||||
| } | ||||
|  | ||||
| proc TreeStructOneClick {node} { | ||||
|     global dir nb treeStruct activeFile status files ver release | ||||
|     $treeStruct selection set $node | ||||
|     set findString [$treeStruct itemcget $node -data] | ||||
|     set star [string range $findString [expr [string first "_" $findString] + 1] [expr [string first "_" $findString] + 1]] | ||||
|     set lineNumber [string range $findString 0 [expr [string first "_" $findString]-1]] | ||||
|     set str [string range $node 0 [expr [string first "_" $node]-1]] | ||||
|     if {$star == "\*"} { | ||||
|         set findString [string range $findString [expr [string first "_" $findString]+2] end] | ||||
|         set findString "$str\*$findString\}" | ||||
|     } else { | ||||
|         set findString [string range $findString [expr [string first "_" $findString]+1] end] | ||||
|         set findString "$str\{$findString\}" | ||||
|     } | ||||
|     #$treeStruct selection get $node | ||||
|     set text "$nb.f$activeFile.f.text" | ||||
|     wm title . "TkLaTeXEditor $ver$release - [lindex $files($activeFile) 0]" | ||||
|      | ||||
|     FindProc $text $findString $node | ||||
|     $status(pos) configure -text [$text index insert];# cursor position     | ||||
| } | ||||
|  | ||||
| proc TreeDoubleClick {} { | ||||
|      | ||||
| } | ||||
|  | ||||
| proc NodeInsert {file} { | ||||
|     global tree font dir files | ||||
|     set dot "_" | ||||
|     # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|     set dirName [file dirname $file] | ||||
|     # <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> | ||||
|     set name [file rootname $file] | ||||
|     # <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> | ||||
|     set ext [string range [file extension $file] 1 end] | ||||
|     if {$ext == ""} { | ||||
|         #puts "$file - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" | ||||
|         set ext "tex" | ||||
|         set file $file.$ext | ||||
|         #puts $file | ||||
|     } | ||||
|      | ||||
|     regsub -all -nocase -- {/| |\.} $dirName $dot nodeEnd | ||||
|     regsub -all -nocase -- { |\.} $name $dot name | ||||
|      | ||||
|     if {} { | ||||
|          | ||||
|     } | ||||
|      | ||||
|     set subNode "$nodeEnd$dot$name$dot$ext" | ||||
|     #set subNode "$nodeEnd$dot$ext" | ||||
|     #puts "file - $file\n" | ||||
|     #puts "dirName - $dirName\n" | ||||
|     #puts "rootNode - $rootNode\n" | ||||
|     #puts "nodeEnd - $nodeEnd\n" | ||||
|     #puts "name - $name\n" | ||||
|     #puts "subnode - $subNode\n" | ||||
|     if {[$tree exists $subNode] == 1} { | ||||
|         if {[$tree parent $subNode] == "root"} { | ||||
|             $tree delete $subNode | ||||
|         } else { | ||||
|             return | ||||
|         } | ||||
|     } | ||||
|     $tree insert end $rootNode $subNode -text $file \ | ||||
|     -data [file join $dirName $file] -open 1\ | ||||
|     -image [Bitmap::get [file join $dir(img) tex.gif]]\ | ||||
|     -font $font(normal) | ||||
|     $tree configure -redraw 1 | ||||
|     return $subNode | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 svk28
					svk28