Ideas/suggestions for the new button bar

  Thread Rating:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #16
true, it does work. i guess i was thinking that it'd look best centered within the total number of slots, but that animation doesn't look too bad at all. once again, a picture speaks 1000 words!

so it looks like any of the above methods would work ok. i guess the difference between them is the highlight method and the alpha shading. obviously alpha shading only works with the first 2 methods.

either of the above would be valid, and i can pretty easily implement them all i think.

i'll be starting on this tomorrow.

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
floink Offline
Senior Member
Posts: 383
Joined: Oct 2003
Reputation: 0
Location: Sweden
Post: #17
i definitly don't think you should scrap the scrolling button bar. from what i can tell, like pin87a said that basically just brings us back to what we had from the beginning. right?
a sub-menu in the home screen doesn't really work well as i see it... it will have a tendency to clog up with all the custom stuff people will want to have. i think the one in the current default skin is an example of just that. as a context menu tho its perfect. i thought your idea of using it for settings was a great implementation of it. as settings migth grow even bigger adding buttons wouldn't be a problem. and also for the future i'd like to be able to have a button scroller slide in/out of view in the filelists. which then would leave more space for viewing files...

i'd might like to be able to have two buttonscroller next to each other in the home screen (or in the new filemanager?). then there could be one with main stuff in it and a second with less used stuff in it. also if just one buttonscroller is used with lets say 7 buttons visible i'd say its just a matter of placing important stuff 'near' the center. so to select the 'most' comonly used functions would always be less or equal to 3 moves and one select away

to give you an answer to the alpha-blending stuff it's pretty simple (if you just give us the scrolling part Wink ) it's just a matter of placing a gradually alpha blended png on top of the buttonscroller. then you'll have the notion of  blended fonts _and_ buttons.

as for showing whats selected i'd like to have the focus move either up or down one step depending on direction of scrolling. that would give the user a clearer indication on whats going on (i believe). maybe this could be an option in the xml code?
<focus>static</focus> jmarshall suggestion
<focus>onestep</focus> my suggestion
<focus>lastpos</focus> lixxs' suggestion 4

as for other stuff to be controlable:
1. number of buttons to show in the scroller (must be at least as big as the total number of buttons): <visiblebuttons>7</visiblebuttons>
2. wrapping on or off: <wrap>yes</wrap>
3. if there is <buttonheight> there has to be button spacing: <buttonspacing>15</buttonspacing>
4.

i'm not sure if i got it right but with your buttonscroller it would still be possible to have an associated 'big' image with the selected button, right?
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #18
thanks for the post, floink,

yeah - i realize you can alpha blend with a png over the top, however i'm not sure how accurate you can get it to sync in with the background for all the different resolutions etc. assuming an intelligent placing is done, i think it'd be doable to have it line up perfectly.

yes - i could do the "one step" type thing no problem.

i don't see a reason for setting a maximum number of buttons - the user could add as many as they like as far as i'm concerned. number of visible buttons would be determined by the height/width of the control, or we could define the width/height/gap of a button and then have the number of buttons. whichever method is easier for you guys to do is fine by me.

and yes, button spacing + some method of displaying a background icon etc. as there is at the moment will be there. it'll probably be based on the type of window the button links to.

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
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #19
can the different home layouts be for different profiles and can profiles be password protected Smile
cheers
find quote
KoTiX Offline
Fan
Posts: 518
Joined: Jun 2004
Reputation: 6
Post: #20
hi jonathan, just one thing,
i prefer the dash, reboot, and poweroff buttons to be not included in the scroll menu or in a sub menu but i think they are much more comfortable as standalone buttons.

cheers

Big Grin  :thumbsup:

XBMC Italian translator, Movieplayer.it scrapers developer and the old "The Orbs" skin creator.
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #21
1. different home layouts are skin issues - we'll use the one that the skin is using, the user will have no control over this. the actual buttons included in the scroller are edittable, however, and will be stored in the settings.xml, and thus will be controllable via profiles.

2. the dash/reboot/power off buttons can already be placed wherever you like. (use xbmc.reboot as the argument to <execute> for instance). as the content of the button scroller will be up to the user, they can add them here if they want. they certainly won't be there by default, and will probably be the last thing that i'll code up (if i decide to add support for this).

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
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #22
it would be nice if you clicked on say my programs that it open say games emulators programs buttons on the home page like evo-x then when you click on one of these buttons it goes into my programs. who fit in with the user getting control and not the skinner so much.

so basically making one selection open into a few selections on the same page would be great

cheers
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #23
not going to happen, britneyspairs - would complicate things too much. just create bookmarks in my programs - it's the same number of button clicks.

i've almost finished this feature - just testing the remove/edit buttons stuff.

once i've finished it'll be in cvs for you all to test.

note that "add button" will initially be more complex than it needs to. it will ask for an xbmc execute string.

eg

xbmc.activatewindow(10501) will activate my music.

i will make this simpler as time goes on (a list of windows to select from).

also, the background icons will take some time to get right - at the moment, they're hardcoded, but you can edit them via settings.xml

i'll post more info here once it's up and running nicely.

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
BritneysPAIRS Offline
Banned
Posts: 835
Joined: Feb 2004
Post: #24
cheers im sure you have it well covered

like the work on pictures. my fav pc/osx screensaver is now the slideshow and it all works great. same with the filemanager is excellent
find quote
leonardo Offline
Skilled Skinner
Posts: 124
Joined: Nov 2003
Reputation: 0
Location: Barcelona
Post: #25
for when the new bar of buttons is available. you can describe which will be its operation.

thanks
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #26
ok, the actual bar is pretty much finished - just got to get the mouse operation working a bit nicer, and then work on what the user should be able to easily do.

the xml file looks something like this (i'll edit this a little later to make sure it's perfect)

Quote:<control>
<description>button scroller</description>
<id>300</id>
<type>buttonscroller</type>
<posx>200</posx>
<posy>150</posy>
<width>185</width>
<height>30</height>
<buttongap>5</buttongap>
<orientation>vertical</orientation>
<numbuttons>5</numbuttons>
<defaultbutton>3</defaultbutton>
<movement>1</movement>
<smoothscrolling>yes</smoothscrolling>
<wraparound>yes</wraparound>
<alpha>80</alpha>
<texturefocus>button-focus.png</texturefocus>
<texturenofocus>button-nofocus.jpg</texturenofocus>
<font>font16</font>
<align>center</align>
<aligny>center</aligny>
<textoffsetx>0</textoffsetx>
<textoffsety>0</textoffsety>
<control>

most of them are self-explainatory. the scroller will be made of <numbuttons> buttons each having the specified <width> and <height>, seperated by a distance <buttongap>. it will be positioned at <posx>,<posy> and will be orientated according to <orientation> (either vertically or horizontally). buttons will use the <texturenofocus> texture, and the <font>, <textoffset*> and <align*> denote how the labels will be drawn.

the cursor (which uses the <texturefocus> texture) will initially be placed in position <defaultbutton>, and will be able to move a distance <movement> in either direction. if you try and move more (assuming that there is sufficient buttons) then the buttons will scroll through 1 position. they will wrap around if <wraparound> is set to yes or true. the scrolling will be smooth if <smoothscrolling> is enabled, else the buttons will jump from position to position as needed (same for the cursor).

lastly, if the skinner wants, the buttons on either end of the button scroller will be faded out from the movement range to the specified <alpha> transparency. <alpha>100</alpha> is fully transparent on the edge. all buttons within the <movement> range will not be touched by the transparency code. obviously, you are welcome to include transparency in the textures as well.

each button can have a number of images associated with it - up to 3 depending on what options you use. each button has an <icon> tag with it denoting the id of the background image that should be displayed when that button is selected. (eg icon value of 103 is my music iirc). these icon values are bounded between 101 and 120. currently only 102-109 are used, excluding 108.

additionally, the skinner is free to define a set of images to use in place of the standard button textures defined in <texturefocus> and <texturenofocus>. the no focus textures should be given ids in the range 121-140. each corresponds to the background image id plus 20. (eg 123 would be the id of the music texture).

if the skinner wishes to have separate focus textures as well (which you will want, unless your <texturefocus> bar is a color/alpha combo that just changes the tint on your button) then they take ids 141-160, with each corresponding to the <icon> settings plus 40. (eg 143 would be the id of the music focused texture). this will only work if <smoothscrolling> is turned off. you can't have both, as under smooth scrolling, the buttons scroll, but the cursor does not. note that all the location settings (posx, posy, width, height) of the images you define for these purposes are overridden by the settings in the buttonscroller.

you must always keep in mind that the user has full control over the buttons that they want displayed, and the order in which they appear. while this does give a restriction, imo it's not a major one. the users buttons are defined in xboxmediacenter.xml, and they have the possibility to change them from within the gui. they can alter the default button, reorder the buttons, and delete buttons they no longer want. they can only add buttons from the .xml file at present (like shares, it's not a simple process to develop a gui for.)

the layout is pretty simple:

Quote:<buttonscroller>
<button>
<label>my music</label>
<execute>xbmc.activatewindow(501)</execute>
<icon>103</icon>
</button>
....

</buttonscroller>

the window id (501) may be replaced with a text label over time, or i might leave it as numbers (as defined in the skin).

your comments are most welcome.

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
leonardo Offline
Skilled Skinner
Posts: 124
Joined: Nov 2003
Reputation: 0
Location: Barcelona
Post: #27
thank you for the explanation.

i would like, if can be, that every button of the bar, it could have a different texture focus / nofocus.
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #28
how would this be done?

the problem with this is that we don't know the number of buttons in advance, thus don't know how many different textures that we'll need.

it's the same problem (basically) as the background image problem. this is the price of giving the flexibility to the user.

one possible solution is to have a set of button textures that you can define in the skin xml files (just like the background images are at the moment, except the position/width etc. would be ignored) and have an extra parameter <icon> in the xml file describing the users button bar. this <icon> tag would skinners to have predefined button textures. if you really need it, i guess it could have separate focus and no focus textures, though note that this will not work with the smooth scrolling scheme as it is currently (the bar basically stays still while the buttons scroll - see the animation lixx did a few posts up). so we'd either have to kill the smooth scrolling, or not have separate highlight textures. seeing as smooth scrolling is a function of the skin, i guess this will be possible (ie we'd ignore all custom focus textures other than the default one).

please let me know what you all think about this. the idea is that the textures supplied in the buttonscroller tags would be the defaults, and the <icon> id in the users button scroller information (which will have sensible defaults) would then indicate which nofocus (and focus if no smoothscrolling is occuring) image should be shown for each particular button. the skinner would need to supply the textures for all the current buttons, as well as a default one if the user wishes to introduce an extra button and doesn't want to use one of the predefined ones. obviously these would only be needed if the skinner wishes to use them.

i'm currently finalizing the codebase for this, so please let me know if this would be suitable or not.

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
onkel bouncy Offline
Senior Member
Posts: 157
Joined: Oct 2003
Reputation: 0
Post: #29
i don't need different textures for buttons.
not now. Wink
i like to see the button bar and hopefully some 'animations' for graphics in the future (like overlay slide in).
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #30
just an update: it was fairly painless to add separate textures if you want to use them - i've updated my post above with the details/requirements.

it'll hopefully be in cvs tonight - just got to test it out thoroughly (particularly in horizontal mode which hasn't been tested yet).

as for other stuff, next is that i'm going to be redoing the settings screens. i'll post a new thread later tonight with some preliminary details for discussion.

thanks for your patience - it's taken much longer (due to lack of time) than i'd anticipated.

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