On Mon, May 20, 2013 at 8:47 AM, Terry Brown <[email protected]>wrote:

> On Mon, 20 May 2013 04:00:59 -0700 (PDT)
> Fidel Pérez <[email protected]> wrote:
>

> Although I still have a mess on which functions can be called how, and
> where to find the list of classes that can be called such as
"editCommands"
> and the rest that they might exist.

I'm not aware of a general solution to the problem of finding the
> various pieces of Leo's class structure.  Basically there are all these
> classes defined in the source, and instances of these are attached to
> each other in a hierarchical network (with loops).
>

I suppose you could say that there is no general solution, but the
situation isn't really all that difficult.

Start with c.  We know what that is:  it is a commander object representing
an open outline.

There are **official ivars** of c, all referring to wrapper classes defined
in leoFrame.py:

c.frame: an instance of leoFrame.
c.frame.tree: an instance of  leoTree.
c.frame.body: an instance of leoBody.
c.frame.log: an instance of leoLog.

The tree, body and log objects have a *ctrl* objects, which are *wrapper*
classes:

c.frame.tree.treeCtrl
c.frame.body.bodyCtrl
c.frame.log.logCtrl

In particular, see
http://leoeditor.com/scripting.html#c-frame-body-bodyctrlfor a
description of the high-level text interface supported by all
high-level text widgets, including the log and body classes.

These wrapper classes have a widget ivar, which is a reference to the
corresponding Qt widget object.  For example::

    import PyQt4.QtGui as QtGui
    w = c.frame.body.bodyCtrl.widget
    g.es(w)
    g.es(isinstance(w,QtGui.QTextBrowser)

yields::

    (LeoQTextBrowser) 62418136
    True

As shown, the LeoQTextBrowser class is a real (subclass of) QTextBrowser.

HTH.  I've made a note to discuss official ivars in more detail in the
scripting chapter.

Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to