Proposed changes for skin v2.0

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #16
with a little though the lable can be gone and each button can be a picture. to prove it find my tiger skin from a year or 2 ago it will have the xmls to do this.
find quote
Loto_Bak Offline
Fan
Posts: 475
Joined: Sep 2004
Reputation: 0
Post: #17
true, its not possible to recreate the scrolling loop aspect of the button scroller using conditionals

also i re-read your last post
Quote:if you have an object (like the album info and thumb) in the lower right corner but then the user triggers the osd... then the album info and thumb could slide right until it hits the center of the screen, then back again when the osd is turned off.

your only using 2 positions (normal and osd active). this could be accomplished. use startx and starty to position them everything while the osd is active. then use posx/posy tags to position while it is not active. use a conditional that checks which window is active (checking for dialogosd window id).
the entire dialog should fade when not in use due to the visiblity on the entire window

has anyone used the new buttonscroller yet?
can someone confirm that buttonscroller.hasfocus(id) works?

[Image: loafamotive.gif]
find quote
KoTiX Offline
Fan
Posts: 518
Joined: Jun 2004
Reputation: 6
Post: #18
for loto and bp:
before all these latest changes i've tryed to have 2 different positioned osd player for home and other windows but i could not specify the same control id for different windows active.
the only solution i found was to use buttons with no textures and use separated images actived depending on window and player staus condition.

i've tryed to have different volume bar for different screens, but i couldn't find a solution for that, i can have the image loaded right but not the label or the slider.
pratically some of the controls are still dependent from their ids and we cannot use 2 controls with same id even if their visibility is conditioned by windows.

if you like i can post the playercontrols.xml i've arranged.

@loto: buttonscroller yesterday was really a messed up and buttonscroller.hasfocus(id) or buttonscroller.hasicon(id) did not work at all (don't know if i coded wrong or what), i'm waiting for anonim cvs to update.

cheers.

XBMC Italian translator, Movieplayer.it scrapers developer and the old "The Orbs" skin creator.
find quote
ceomr Offline
Member
Posts: 75
Joined: Mar 2004
Reputation: 0
Post: #19
@ buttonscroller.hasfocus(id)

works fine try the following

-> buttonscroller  id="102"
Quote:        <button id="102">
         <label>2</label>
         <execute>xbmc.activatewindow(6)</execute>
       </button>

-> control  hasicon(102)
Quote:     <control>
     <type>image</type>
     <visible effect="fade" time="200">buttonscroller.hasfocus(102)</visible>
     <id>0</id>
       <posx>400</posx>
       <posy>220</posy>
     <width>250</width>
     <height>200</height>
     <texture>home-myvideos.png</texture>
   </control>

cheers ceomr
find quote
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #20
allowhiddenfocus="true" doesnt seem to work on intial testing. if a control dissappear with allowhiddenfocus="true" in its vis statement and you reconnect net or put dvd in or whatever you use to control the state it will just go back to the default id when you press a key. Sad
find quote
Asteron Offline
"Skilled" Python Coder
Posts: 928
Joined: Feb 2004
Reputation: 0
Post: #21
only slightly offtopic but would it be possible to expose these advanced funtions to python via a low-level xml like interface?

maybe as simple as
Quote:control = xbmcgui.skincontrol('control')
control.set('type', 'image')
control.set('id', '0')
control.set('visible','buttonscroller.hasicon(2)', property = [('effect','fade'),('time',"200")])
window.addcontrol(control)
something along those lines.. i don't care how ugly it is this animation stuff looks great! if you can make the interface hook into the skin xml than it would never need updating Smile
find quote
Loto_Bak Offline
Fan
Posts: 475
Joined: Sep 2004
Reputation: 0
Post: #22
(ceomr @ dec. 13 2005,10:26 Wrote:@ buttonscroller.hasicon(id)

works fine you have to change the id's
so you've actually tested? hmmm odd mine always return true
ty for testing for me

kotix :
ah, havnt done any window id conditionals so i didnt know they behaved that way. perhaps thats something that should get looked at

[Image: loafamotive.gif]
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 25,672
Joined: Oct 2003
Reputation: 169
Post: #23
buttonscroller fixes are in cvs now.

here's the skin info you need:

1. pre v1.8 skins:

these should work fine with your old code. (ie buttons defined in xboxmediacenter.xml just like they are in cvs, and if you want to do conditional textures, either use the "normal" ones (ie the ones in the range 102-120) to have the xbmc home code take care of it, or use the buttonscroller.hasicon(number) to take care of it (numbers are 102 ... 109). the extra images per button are done using the 122-140 and 142-160 id's as before.

2. version 1.8 and above:

buttons are read from the skin. you define the texture focus and no focus in the actual button definition (see online manual info). conditional is buttonscroller.hasfocus(id) where id is the id="" attribute in the <button> block.

tested both and it works fine here (i tested pm2, the orbs, and antiguo 1.3 versions), and a 1.8 version of pm2 that i did.

3. in both cases the context menu support has been removed. this is for a bunch of reasons, namely that the skin can be on a readonly filesystem (cd/dvd) so we can't write to it, and because once you delete a button it's a pain to get it back again (ie not noob proof).

and lastly, if you find any other bugs, please post the xml file you are having trouble with (or an altered pm3 file that shows the issue) so i can quickly get it fixed Smile

i'm available in #xbmc for the next 8 hours or so (till 5am cet or so) if you want to discuss further.

cheers,
jonathan

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
HarshReality Offline
Posting Freak
Posts: 1,544
Joined: Jan 2005
Reputation: 0
Post: #24
sweet, jm 2 questions...

1. can you speculate "%" about how far along your alterations are (in terms of total upgrade).

2. will pmii be redone to use these alterations or will it simply be jacked to work as it. (i wonder if it will be redone and added to cvs).

[Image: x3.jpg]
find quote
Loto_Bak Offline
Fan
Posts: 475
Joined: Sep 2004
Reputation: 0
Post: #25
allowhiddenfocus="true" does not appear to behave properly.

target control is hidden and contains allowhiddenfocus=true. when selected the visible variable makes this control visible. navigation behaves as if allowhiddenfocus does nothing

control is as follows...
Quote: <control>
<description>view as icons button</description>
<type>button</type>
<id>2</id>
<posx>50</posx>
<posy>120</posy>
<label>100</label>
<font>font13</font>
<onleft>50</onleft>
<onright>50</onright>
<onup>300</onup>
<ondown>3</ondown>
<visible effect="slide" time="800" allowhiddenfocus="true" startx="80" starty="-117" accleration="1" indelay="1200">!player.hasaudio | player.hasaudio + ![control.hasfocus(50) | control.hasfocus(51) | control.hasfocus(52)]</visible>
</control>

[Image: loafamotive.gif]
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 25,672
Joined: Oct 2003
Reputation: 169
Post: #26
yep, it has to be all lowercase, and also wasn't being read correctly. fix will be in cvs in a couple of hours.

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
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #27
nice one Nod
find quote
jimk72 Offline
Senior Member
Posts: 151
Joined: Jan 2005
Reputation: 0
Post: #28
how many places in the code does it read in the xml data from the file?

i ask this because there are several functions that will return an all lowercase string(array of char) and prevent problems with upper and lower case strings. i added this to my xml engine in the editor along time ago as there were problems with some that have the first letter of each word capitalized and others that are all lower caps. seems like a simple thing but can render your whole control useless because of one letter. just a thought.

1 more question- are these new controls going to be added to online manual or posted when the 2.0 version comes out? need to know so i can update the editor.
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 25,672
Joined: Oct 2003
Reputation: 169
Post: #29
no new controls have been created, but yes, i am progressively updating the manual with info on various stuff as i change it.

and we use tinyxml to read the tags. i believe that xml tagnames (and attributes) are case sensitive by spec. as tinyxml does all the xml reading and processing for us, we can't do much about it without actually altering that at the source.

while it would be easy to implement (can do it just in one place as you say), i don't want to implement anything in a nonstandard way.

cheers,
jonathan

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
jmarshall Offline
Team-XBMC Developer
Posts: 25,672
Joined: Oct 2003
Reputation: 169
Post: #30
in order to make things consistent, i've decided to make all new xml tags and attributes lower case only. i may go and retroactively change other tags, depending on the opinions of the majority.

a quick read of the code indicates that around half (73/140) of the control tags contain upper case characters. this is a fair number (and many of them are widely used such as posx and texturefocus), and i'm not sure whether this exercise is worth it or not. obviously for skinners, a search and replace through multiple files is easy enough, but if you have 73 such search and replaces to do, then it takes a reasonable burden of time.

i can easily add support for both all lower case and the old mixed case stuff with around 13 lines of code, which may be the easiest option long-term. it does slow the code down a bit (an extra function call + search through xml per tag read) though.

i will be changing the startx and starty attributes to startx and starty though in either case. as this has just been added, i don't think it is too much of a burden to the few of you that have used them as yet (just search + replace using a multi-file search and replace tool such as visual studio).

edit: just found a program that can do multiple search and replaces quickly across multiple files. i can set up a data file for it that will auto-convert your skins if you are interested. this will get rid of the time burden, so i think we can move all tags to lower case only for all controls pretty easily.

cheers,
jonathan

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
Post Reply