Yves Forkl wrote:
> might I ask your opinion on this point? Could you imagine to make
> Ctrl-Tab switch between these tools? (Please excuse me for nagging.)
>
> Even if the Character tool is mouse-only (as you explain below) and
> would not profit much, I would find it useful to open it using the
> keyboard only: I might just want to see again the character range that I
> saw last in that tool.
>
> Switching between the other tools with Ctrl-Tab seems quite efficient to
> me.
To my knowledge all Tab, Ctrl-Tab, etc, keystrokes are ``reserved''.
Therefore this is difficult to implement (implementing tab navigation in
the document view was hell).
Plus, frankly, we don't see the usefulness of this. Using hot keys such
as Ctrl-I,J,H,etc (shows Edit Tool), Ctrl-E (shows Attributes Tool),
Ctrl-F,M,etc (shows Search Tool), etc, seems sufficient.
For the Character Tool, a hot key is not needed because you'll
neverthless have to use your mouse.
>
>> The Character tool (and its alternative: command "insertSpecialChars")
>> are definitely mouse-oriented and therefore, are intended to be used
>> just from time to time.
>
> *grin* Taking that word by word, I have a suspicion that I am not alone
> preferring the keyboard to the mouse in many situations... ;-) In fact,
> one of the strong points of XXE in my view is that it can be used nearly
> without constantly making your fingers fly back and forth between the
> keyboard and the mouse. Alas, nearly, for the moment. :-)
>
>
>> I would rather suggest to add this snippet to your customize.xxe:
>>
>> ---
>> <!-- ================================================================
>> Inserts at caret position a character specified
>> using its entity name.
>>
>> Add parameter="[DocBook]" to use the character entities defined
>> in the DocBook 4.2 DTD, whatever is the DTD/Schema of the document
>> being edited.
>> ================================================================= -->
>>
>> <binding>
>> <keyPressed code="ESCAPE" />
>> <charTyped char="C" />
>> <command name="insertCharByName" />
>> </binding>
>> ---
>
> Thank you for reminding me of this alternative which is a very fine
> thing. Just two suggestions to make it still better:
>
> 1) Finding the character you want to insert would be even easier if its
> glyph was shown after the entity name, e.g. like this (taking a trivial
> but ASCII example):
>
> quot (")
Good idea.
> 2) Being able to acess the character favorites which also the Character
> tool uses would be a great thing. This could be realized by prepending a
> prefix illegal in real entity names, like "-" or "(fav)", to the actual
> entity name of the favorite. Such a "low-ASCII" prefix would equally
> bring the favorites up to the top of the list.
>
> BTW, it will make local (character input) gurus happy to know that they
> can make use of, in the user's preferences.properties file, the property
> favoriteCharsInTable, and e.g. set it to a value of \u03B1\u03B2 in
> order to define small alpha and beta as character favorites for their
> users...
In XXE, software components belong to different layers.
The XML Editor application knows nothing at all about Command
insertCharByName. (Moreover, in V3, the XML Editor application knows
nothing at all about the Character Tool.)
Command insertCharByName knows nothing at all about the Character Tool
and its preference key "favoriteCharsInTable".
In fact, you want a more powerful, more customizable, variant of
insertCharByName because inserting special characters is critical for you.
> This way of distinguishing between the sets of "real" and "faked"
> (DocBook-like) character entity names is perfect. However, in the
> documentation (commands/ch06s27.html), it should maybe be stated more
> clearly how entity references and entity names are dealt with here as
> not all users might be familiar with this topic. (This should teach you
> why you can happen to insert a character based on the name of its
> DocBook entity and find it encoded after saving as a reference to an
> entity from your own DTD carrying a completely different name, for
> instance.)
In a nutshell, XXE does not support working with entities (character,
text, general) at all. In XXE, entities just like namespace prefixes,
are considered only at document open time and at document save time.
The DocBook DTD gives short and easy to understand names to a large
number of commonly used special characters. And that's exactly what we
needed to implement generic command insertCharByName.
>
>>> - Entering characters from the Unicode character sets is currently
>>> totally impossible using the keyboard only but requires using the
>>> mouse: there is no menu item for character entry and the Character
>>> tool does not allow to select a character using the keyboard only.
>>> But there is some hope in the new character tool (see below).
>>
>> See answer above. [snip]
>
> Command insertCharByName provides almost all you need for keyboard-based
> character input. So I feel sad reading that you intend to hide this
> command from the novice (keyboard-focussed) user in the first place by
> not putting it, e.g., in the Tools menu. That would spare the user
> having to bind it to a key first, which implies learning a bit to deal
> with configuration files beforehand. (I don't know in how far XXE V. 3
> will make this easier.)
V3 makes this easy to do.
>
>>> Of course, it would be even more desirable if the new functions of the
>>> normal character tool (management of favorites) would also be
>>> available here. Especially, the "virtual" range of favorite characters
>>> available in the "normal" character tool should also be available
>>> here. If so, using a keyboard only should give access to all functions
>>> (management of favorites, copying to clipboard) that are offered to a
>>> mouse user.
>
> See above: character favorites should also be available to the
> "mysofuges" (as I would call those people in French) who are bound to
> use insertCharByName.
In French, it would be "sourisphobe". From "souris" = mouse and from
"phobe" = dislike or fear (Greek root; e.g. "phile" is Greek root for
"like").
>>> 3) Command for vertically recentering the cursor's context [...]
>>
>> This command exists. See command "center"
>> http://www.xmlmind.com/xmleditor/_distrib/doc/commands/ch06s06.html
>>
>> By default, this command is bound to Ctrl-Shift-L. See Help|Mouse and
>> Key Bindings.
>
> Great! Unfortunately, it has a little flaw. In the cited documentation
> page it is characterized as: "Centers node selection, text selection or
> caret in the document view." However, in the case of an implicit
> selection, it only works when caret is inside a text node, not when
> caret is in a CSS-generated attribute value editing field.
>
> This is particularly bad when several of these fields are styled to
> appear after the root element: tabbing down there can easily result in
> the caret disappearing in the non-visible bottom of the document (while
> a kind of caret zombie, having stopped blinking, is intriguingly still
> visible in the document's last text node which is glued to the window's
> bottom line).
>
> Certainly, you can bring the caret back up to that text node by
> continuously typing Shift-Tab (provided you know what is going on). But
> XXE should rather allow you to center the document view equally when
> caret is in a CSS-generated attribute value editing field. I have found
> no way of making caret's position visible again using the keyboard only
> in this situation.
These problems (two carets, different behavior when an embedded
``control'' has the keyboard focus) are extremely difficult to solve and
will probably never be solved.
The fact that the integration of generated content (especially with
embedded ``controls'' such as attribute editors) with normal content is
not perfect does not disturb us. For XMLmind, suffice for a feature to
be useful, usable and reliable.
> Meanwhile, as long as XXE is not delivered with such a table for each
> language, could you explain briefly to me the steps I need to take to
> create a simple plain text list of equivalences myself, calling
> translatexxe with some parameters?
Using V2.11, in XXE_install_dir/bin/, run:
java -jar translatexxe.jar -m de.txt ../addon/translate/de.jar
You'll find what you need in de.txt.