PDA

View Full Version : Skinless option


mrallen
March 5th, 2003, 07:51 PM
This is a proposal for a way to run without the need for skins. Since CCF's are much easier to edit visually than INI's, this is also a boon for usability. And, now that we can use the full screen, emulating the clunky pronto interface is no longer so desirable.

For each skin interface element, we will designate a reserved Button ID (NR.XXX). If a button with that ID is present on any panel, it will effect that system action. This way I can choose, say, Date, Time, Device and FullScreen and ignore the four hard key labels at the bottom. But it also does not prevent me from having a CCF that looks and operates just like a traditional CCF. One very cool upshot of this is that you could control the font size and color for the date, time and hard-key labels.

For the device and macro pull-downs areas, I would recommend the use of invisible frames (transparent, no font) with reserved names placed at the bottom of the Z-order stack.

To handle the potentially dangerous case where a panel does not contain a FullScreen button (help, how do I get out), NetRemote could respond to the simultanous pressing of Left+Right as an escape.

QuickCarl
March 5th, 2003, 07:58 PM
Stewart - I agree that the clunky Pronto reserved graphics are not the greatest, and they take up WAY too much room (percentage-wise). Thanks so much for the full sreen editing (custom CCFs) and to Ben for making them usable.

BUT, it is very advantageous to have a single part of the screen that has navigation that doesn't need to be programmed for each screen (think about the application tool bars.... this is the advantage of the 'skins'.... Just need to make them editable in Tonto rather than in the INI...

-Carl

mrallen
March 5th, 2003, 08:04 PM
Right. And there's a way to do this that's REALLY easy and doesn't even require changes to Tonto. Use the System Macro template panel. No, this isn't the Macro devices list. In Tonto, look under System and you will see a lone panel. ProntoEdit and TouchScreenSetup never let you see this, but it's part of the CCF structure. It's used on a Pronto when you are creating new macros *on the pronto* (why, why, why). As I said, it's never used. This would be a perfect panel to use as the skin for a CCF. NetRemote would just draw whatever is on this panel first before drawing the panel you are on.

brockgr
March 5th, 2003, 08:12 PM
My only problem with too many skin's is the dimensions. It makes it very hard to produce panels that will just work for everybody - because everyone will have their own skin sizes and styles.

I'm with Stewart in that I would like no skin by default, and let the user put any skin in the CCF. Maybe we can persuade Stewart to put some kind of "template" feature into Tonto :D.

Gavin

mrallen
March 5th, 2003, 08:20 PM
Hey, if it takes a template feature in Tonto to get this in NR, we're one cup of coffee away from a solution.

Ben S
March 7th, 2003, 12:26 PM
Using the macro area sounds like a good idea. Only issues I see are

1) This only allows one "skin". No home/macro/device skin as there are now. If the panel you're on overwrites the "skin", then I guess that would allow you to change the skin per panel. Is there a way to have a home, device, and macro "skin panel"?

2) What are you guys suggesting for the template feature? That it shows the skin in the background of a panel so you can see where the skin is?

Let me know what you guys would like to do. I think Stewart is right that if people are committing to using Tonto (which I think they are), we can really start to break away from the ccf dependency, -provided- that we still allow people to download ccfs and use them normally / copy buttons into another file.

Thanks guys,
-Ben

QuickCarl
March 7th, 2003, 06:46 PM
Could there be a way to use skins in the same way we use 'hard' buttons, override per device?

Ben - I think that as long as we keep a way to get IR commands, buttons, graphics, and discretes, we can through caution to the wind....

Stewart's editor is MUCH better than PE....

We might also be able to get folks (total remote) who are scared of lawsuits to understand that there is NO way for them to get in trouble....

Let's go team NetRemote... now if someone could just figure out a way for me to help...LOL

mrallen
March 7th, 2003, 07:24 PM
the macro panel under System is the head of a linked list just like all other panels. translation: we can have more than one if we so desire; this is artificially limited by Tonto. having three would permit a skin for each 'mode'. but, personally, I would only ever want one master. NR could be rigged to use the first as the default if the other two were not set.

Ben S
March 7th, 2003, 09:29 PM
Gotcha. I think it would then make sense to use the first as the default, and override with the second (as a device skin) and third (as a macro skin) if they exist.

Of course, I'd think this would need to be handled easily in Tonto so , making it clear that the user is creating the default skin, and having it show a "watermark" version on the panel edit.

What do you think? I think I should still handle the skin .ini file in case the user isn't using a custom ccf, but otherwise I think this makes a lot of sense.

Ben S
March 10th, 2003, 03:22 PM
So I've added this in the version that will soon be released. It's actually pretty neat.

The rules I have setup are:

If you have a skin defined, use the skin size, and do -not- use the macro panel.
If you have no skin defined, the NetRemote window size is the size of the .ccf, and the macro panel is used as a skin. It is drawn before the actual panel, and events on it are checked after the actual panel.

Combined with the new features in the NRBasic driver, you can completely get rid of the skin file and have it still have everything (except the device list, currently).

Stewart, if you can enable it such that (for now) the macropanel is drawn when editing a panel (so you can see where the macropanel elements are), and (in the future) support more than one macropanel (for the home/device/macro panels), that would be awesome.

I'll have the version that supports this out shortly.

mrallen
March 10th, 2003, 03:28 PM
before you release this ... how do I label buttons/frames to mark the special areas for time/date/setup, etc?

will fix tonto to draw macro panel first when using a custom ccf.

Ben S
March 10th, 2003, 03:43 PM
They are handled by the NRBasic driver, so they are RC5x codes that have special meaning.

Driver id is -999. I will get back to you in a few hours regarding the actual command/data values. I don't have information regarding them with me.

mrallen
March 10th, 2003, 04:08 PM
darn. I was hoping to handle this using button ID's rather than special IR codes. no matter.

Ben S
March 10th, 2003, 05:46 PM
darn. I was hoping to handle this using button ID's rather than special IR codes. no matter.

Sorry. It seemed like a good fit into the NRBasic driver, as that driver replicates most of the functionality of the skin. I've kept it as a driver so adding new features can be done in the driver versus releasing a whole new version of NetRemote. I'll look into leveraging ID's for things like this in the future, though.

Alright, the ID's are (all driver -999)

Command,Data:Description
0,1: Date Field
0,2: Time Field
0,3: Device Name
0,4: Panel Name
0,16: Far Left (display -and- hard-alias)
0,17: Left (display -and- hard-alias)
0,18: Right (display -and- hard-alias)
0,19: Far Right (display -and- hard-alias)
1,1: Go home
1,2: Go device
1,3: Go Macro
2,1: About
2,2: Config
3,1: Toggle fullscreen
3,10: Exit

mrallen
March 10th, 2003, 10:06 PM
great. I've got the 'skin' macro thing working on Tonto. there is, however, one big caveat ... in order for the panel to show up with the macro in the background, the macro panel has to be open on the desktop. this is an artifact of the way Tonto's panel renderer relies on Java's AWT renderer. I will have to re-write the panel renderer to circumvent this. it's been on my todo list for a long time, but now it's critical. I'll release 1.43 with this caveat and then work on a new renderer for future releases.

Ben S
March 11th, 2003, 08:13 PM
Can't wait to see what you've got so far, Stewart. That limitation is no problem for me. Does it bomb out of the panel isn't open, or just not display anything?

Can't wait to see 1.43!
-Ben

mrallen
March 11th, 2003, 08:34 PM
Just doesn't draw the background. Not fatal. Kinda useful, actually, but an unexpected behavior.

mrallen
March 11th, 2003, 08:50 PM
BTW, does this mean I can now control the font and color for the clock, date and four key labels at the bottom? if so, very cool.

Ben S
March 11th, 2003, 08:58 PM
Yep. They are standard buttons, so you can do whatever you'd like with them.

Note that you could always change the color and size within the ini file. In addition, you could change the date and time format. Right now they are set as Pronto default. Perhaps we can use the IR name as the format for time and date?

mrallen
March 11th, 2003, 09:04 PM
certainly.