On 8/14/07, Jay Loden <[EMAIL PROTECTED]> wrote:
>
> XML is first and foremost a machine-parseable language, and a human-readable 
> one second ;) I don't think this is particularly hard to read, but then I 
> work with XML configuration files on a daily basis at work, so I may just be 
> a terrible person to ask...
>
> I'm not sure I agree that you're not using XML as it was intended; you're 
> mixing data and presentation, but it's still a document containing data. 
> That's what XHTML is, and what the XML document definitions like OOXML are 
> all about. Anyway, that's neither here nor there. My question would be a much 
> simpler "why is this XML?".
>
> XML makes sense when you need a structured document, and sometimes that makes 
> sense for configuration options or defining a structure, but it's not clear 
> why you'd need it here. Is this something you're intending to make editable 
> by the end user? If you're willing to replace it with Python scripts instead 
> of XML documents, it sounds like maybe you're not worried about letting users 
> edit the menus. If so, why not code the menus direct into the main C++ code? 
> This would be faster, unless you need to frequently edit these menus.
>
> I think the best thing to do would be to take a step back and ask what it is 
> that you're trying to do as the end result. What are your requirements; can 
> you expect that Python will be installed already? Is the choice between 
> parsing XML once with C++ or having to ship a Python interpreter with 
> associated overhead? Once you have a set of requirements and determine what's 
> most important to you it should make it easier to pick a solution. For 
> instance, on a mobile device, you might simply not have the spare cycles that 
> embedding a python interpreter would require versus a lightweight lib like 
> TinyXML. Similarly, you'd have to ask yourself if the data is always static, 
> or if you have a need for dynamic content (i.e. embedded scripting) within 
> the menu definition.
>
> -Jay
>

Well, Ideally the python script would have a series of callback
methods that are triggered when specific predefined events occur in
that menu. For example, when the user presses the LEFT key, a callback
should be executed in the python script to perform various tasks. So
you'd do something like:

def OnKeyLeft():
    # Do something here...
    pass

However, I think the root of the problem is that I'm editing text
files directly to modify the look and feel of menus. Ideally, I'd have
a tool that allows a user to visually create a menu by interactively
creating controls and assigning them properties through a GUI
interface. However, in my specific case I was unable to make a tool
due to time restrictions.

I could, at the very least, use wxPython to make this tool, which
would output menu definitions in XML (which will be non-human readable
or editable), or perhaps even binary for quicker parsing by the game.
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to