WindowXML GUI Toolkit (replaces GUIBuilder for XBMC python scripts for GUI coding)

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
asg Offline
Member
Posts: 80
Joined: Nov 2005
Reputation: 0
Post: #21
@Nuka1195

the python docs dont really help when the listitem is empty Smile getcontrol on the list (id 50) doesnt work ..
find quote
Nuka1195 Offline
Skilled Python Coder
Posts: 3,916
Joined: Dec 2004
Reputation: 17
Post: #22
Well since Donno's "never" been able to get guibuilder working. I guess not.

For python coding questions first see http://mirrors.xbmc.org/docs/python-docs/
find quote
donno Offline
Team-XBMC Python Developer
Posts: 131
Joined: Jan 2005
Reputation: 0
Location: Australia
Post: #23
Its done WindowXML, is now in the trunk. When i get some time i might document it some more etc. But for now there is a example script in the scripts folder in the xbmc trunk.

WindowXMLDialog is now in, and the thing should fully work. Fallback stuff and all. I will also try to keep looking here for new posts. Please if you have some questions about how ti works put them here? As well as feature suggestions and ideas.

ascii: Listitem does not have a getSelectedItem/Position function.
getSelectedItem returns a ListItem. getSelectedItem/Position are Functions of the ControlList

as for stats i don't know but most of the bulk of hte code is now as c/c++ so it should be ideally faster, its also nicer on the eyes as xbmc handles more stuff, also i reuse things xbmc can already do so its not tottally making hte whole GuiBuilder in c++/c

Updated xbmcgui.html

Over the next few days im going to clean up the formatting of the python section of XBMC and also will complete the pydocs. (just noticed that i forgot to explain the paramters needed to run it in the docs)

** Team XBMC Tester** XBMC 4 ever

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
Nuka1195 Offline
Skilled Python Coder
Posts: 3,916
Joined: Dec 2004
Reputation: 17
Post: #24
Congrats Donno,

I will start converting now Smile

For python coding questions first see http://mirrors.xbmc.org/docs/python-docs/
find quote
blittan Offline
Team-XBMC Handyman
Posts: 1,714
Joined: Jun 2004
Reputation: 11
Location: Sweden
Post: #25
congrats.. great work man..

Smile

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
If you don't have the time to read them, please don't take the time to post in this forum!
For troubleshooting and bug reporting please make sure you read this first.
find quote
Jezz_X Offline
Team-XBMC Skinner
Posts: 5,264
Joined: Jun 2006
Reputation: 55
Location: Earth
Post: #26
Hi guys as on revison 8230 I've commited a new updated version of pm3 skin it no longer has any Tv overscan compenstation in it (and dosn't need it because we have calibration) and is now full screen like all the other new skins.
So you will need to take this into account when making new pm3 versions of skins for scripts because all the alignment / images have changed and if current skins use background.png from pm3 then will not be aligned proper. And if it uses its own images it will look zoomed out because your script uses the old skin zoom scale that compensated for the Overscan in the skin

Hope that makes sense and sorry Sad but its needed for better things in the future.

Jezz_X
find quote
Asteron Offline
"Skilled" Python Coder
Posts: 933
Joined: Feb 2004
Reputation: 0
Post: #27
Great job in finishing Donno! Wooo! Ill be sure to put it through its paces Smile

Though I would prefer for the "Dialog" part to be either specified in the xml or passed as a keyword argument to WindowXML. I dont see a reason for it to be a seperate python object if no new functionality is exposed... Can't you do a pointer to CGUIWindow or CGUIWindowDialog behind the scenes?

Its not that all that big of an issue but it makes the whole idea of it being a window/dialog to the skinner instead of the scripter...
(This post was last modified: 2007-03-20 02:04 by Asteron.)
find quote
donno Offline
Team-XBMC Python Developer
Posts: 131
Joined: Jan 2005
Reputation: 0
Location: Australia
Post: #28
I'm against the let Windows and Dialogs be interchanged as XBMC doesn't allow this. You can not make the myscripts.xml or home.xml or etc a Dialog. Thou if you really want you could just use WindowXMLDialog instead, there should be nothing really wrong with that. Coz in your opioion a Window just fills the whole screen, where a dialog can fill an area and has a transparent background.

** Team XBMC Tester** XBMC 4 ever

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
donno Offline
Team-XBMC Python Developer
Posts: 131
Joined: Jan 2005
Reputation: 0
Location: Australia
Post: #29
I was looking at making a script using WindowXML, and i wanted to get the position in the list and i noticed whoops i forgot those functions. However Smile i quickly added them
print self.getCurrentListPosition()
print self.getListItemself.getSelectedListItem().getLabel2()
print self.getSelectedListItem().getLabel()

So ive added getListItem and getCurrentListPosition. There was getSelectedListItem but that was removed due to redudancy of hte getListItem.

Note) getListItem is a new object created with the infomation from the list item in the windows vectorlist, im 99% sure that setLabel2 and setLabel will not work. I'll look at adding a setListItem so you can change the infomation.

Also, next day or two i might change the WindowXML so it takes
scriptPath = os.getcwd().replace(';','')

WindowXML("Script_WindowXMLExample.xml",scriptPath,"DefaultSkin")
point of this is WindowXML would now also check scriptPath+"\\skins\\currentskin\\" for the file then scriptPath+"\\skins\\DefaultSkin\\" as a last resort. Thanks Jezz_X for this idea. Ill try to make "DefaultSkin" variable optional and default to "Default". So bare this in mind if you’re considering using WindowXML soon.

** Team XBMC Tester** XBMC 4 ever

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
dsvensson Offline
Skilled Python Coder
Posts: 52
Joined: Jan 2007
Reputation: 0
Post: #30
In my script I use the list view as a kind of directory tree browser, so I have folders and video clips. This worked well before changing to WindowXML.
I got the select action in onControl, issued the relevant command, and I got the back action and the previous menu action to onAction, so that I could move up in the directory tree.
With WindowXML, when I press back/previous menu buttons they end up both in onClick and onAction, is the way it is supposed to work? Just wanted to know before I start hacking around it.
find quote
Post Reply