<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi list, hi Michael,<br>
<pre>><i> Hi everybody,
</i>><i> I'm looking for some directions, while programming a very simple
</i>><i> editor (supporting basic formatting)
</i>><i>
</i>><i> The window where the user writes is a Text widget (named: text), where
</i>><i> I put a tag 'b' to set the text where this tag applies to bold.
</i>><i>
</i>><i> This is not a problem when I apply the bold to a selection:
</i>><i>
</i>><i> text.tag_add('b', SEL_FIRST,SEL_LAST)
</i>><i>
</i>><i> I have instead two problems when I just want to switch on/off the bold
</i>><i> while typing. To switch it on the only way I found is this:
</i>><i>
</i>><i> text.insert(INSERT, ' ', 'b' )
</i>><i> text.mark_set("insert", INSERT+'-1c')
</i>><i>
</i>><i> notice that I have to insert TWO spaces. If I insert one, the bold
</i>><i> doesnt apply. If I insert '', my cursor goes back one char!
</i>><i>
</i>><i> My second problem is how to switch it off, when I'm writing within a
</i>><i> bolded region - and for this I havent the slightest idea...
</i></pre>
<br>
After different attempts at it, I realized that the following works
perfectly for deselecting the currently active bold tag.<br>
It still suffers from the problem that when I 'switch on' the tag it
adds a space - but I can live with it...<br>
<pre class="default prettyprint"><code><span class="pln"> l</span><span class="pun">=</span><span class="pln">text</span><span class="pun">.</span><span class="pln">tag_names</span><span class="pun">(</span><span class="str">'insert'</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">if</span><span class="pln"> l</span><span class="pun">==()</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> l</span><span class="pun">[</span><span class="lit">0</span><span class="pun">]!=</span><span class="str">'b'</span><span class="pun">:</span><span class="pln"> </span><span class="com"># select bold</span><span class="pln">
text</span><span class="pun">.</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">INSERT</span><span class="pun">,</span><span class="pln"> </span><span class="str">' '</span><span class="pun">,</span><span class="pln"> </span><span class="str">'b'</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
text</span><span class="pun">.</span><span class="pln">mark_set</span><span class="pun">(</span><span class="str">'insert'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'insert-1c'</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">else</span><span class="pun">:</span><span class="pln"> </span><span class="com"># deselect bold</span><span class="pln">
text</span><span class="pun">.</span><span class="pln">insert</span><span class="pun">(</span><span class="pln">INSERT</span><span class="pun">,</span><span class="pln"> </span><span class="str">' '</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
text</span><span class="pun">.</span><span class="pln">tag_remove </span><span class="pun">(</span><span class="str">'b'</span><span class="pun">,</span><span class="str">'insert-1c'</span><span class="pun">)</span><span class="pln">
text</span><span class="pun">.</span><span class="pln">mark_set</span><span class="pun">(</span><span class="str">'insert'</span><span class="pun">,</span><span class="pln"> </span><span class="str">'insert-1c'</span><span class="pun">)</span><span class="pln">
</span></code></pre>
<br>
<br>
thanks!<br>
<br>
<br>
alessandro<br>
<br>
<pre class="moz-signature" cols="72">--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/ Dr.Alessandro Magni
\ Electromagnetics Division
/ INRiM Strada delle Cacce 91, 10135 Torino (ITALIA)
\ Email <a class="moz-txt-link-abbreviated" href="mailto:magni@inrim.it">magni@inrim.it</a>
/ Tel: 0039-011-3919821 Fax: 0039-011-3919834
\ URL <a class="moz-txt-link-freetext" href="http://www.inrim.it/~magni">http://www.inrim.it/~magni</a>
/ Our business in life is not to succeed but to continue to fail
\ in high spirits. -- Robert Louis Stevenson
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
</pre>
</body>
</html>