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.
