<!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>&gt;<i> Hi everybody,
</i>&gt;<i> I'm looking for some directions, while programming a very simple
</i>&gt;<i> editor (supporting basic formatting)
</i>&gt;<i> 
</i>&gt;<i> The window where the user writes is a Text widget (named: text), where
</i>&gt;<i> I put a tag 'b' to set the text where this tag applies to bold.
</i>&gt;<i> 
</i>&gt;<i> This is not a problem when I apply the bold to a selection:
</i>&gt;<i> 
</i>&gt;<i> text.tag_add('b', SEL_FIRST,SEL_LAST)
</i>&gt;<i> 
</i>&gt;<i> I have instead two problems when I just want to switch on/off the bold
</i>&gt;<i> while typing. To switch it on the only way I found is this:
</i>&gt;<i> 
</i>&gt;<i> text.insert(INSERT, '  ', 'b' )
</i>&gt;<i> text.mark_set("insert", INSERT+'-1c')
</i>&gt;<i> 
</i>&gt;<i> notice that I have to insert TWO spaces. If I insert one, the bold
</i>&gt;<i> doesnt apply. If I insert '', my cursor goes back one char!
</i>&gt;<i> 
</i>&gt;<i> My second problem is how to switch it off, when I'm writing within a
</i>&gt;<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"> &nbsp; &nbsp; 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">
&nbsp; &nbsp; &nbsp; &nbsp; </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"> &nbsp; </span><span class="com"># select bold</span><span class="pln">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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">' &nbsp;'</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">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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">
&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="kwd">else</span><span class="pun">:</span><span class="pln"> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="com"># deselect bold</span><span class="pln">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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"> 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 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>