Announcement

Collapse
No announcement yet.

Feature Request: dynamically loaded skin components

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Feature Request: dynamically loaded skin components

    At the simplest level I'm asking for support for conditionals in skin files. I.e.:

    if x = y
    <some component -- button, IMG, application, custom list>
    else
    <some other component -- button, IMG, application, custom list>
    endif

    When the skin is loaded RR would load one or the other based on the values of x and y. I know you can already hide labels by changing the labelcode to nothing, but this would allow skinners to make one skin that can be used for multiple things based on some variables at load time. Like, say:

    1. Load music player with album art displayed
    2. Hit button for visualisation
    3. Skin sets a variable, tells RR to reload this screen
    4. Load music player with visualization where album art was

    And you wouldn't need multiple .skin files to pull it off.

    At a more complex level it would be great to be able to dynamically load skin elements WITHOUT reloading the skin. Same example as above, except RR loads BOTH elements, but only displays/draws the one based on the value of x. In this example we may need to limit it to only a true/false instead of multiple values for x.

  • #2
    This would be another push RR over top feature...

    I would think something along the lines of these type cmds...

    DELBUTTONID;BXX
    ADDBUTTON;<whole button define line here>

    DELLABELID;LXX
    ADDLABEL;<whole label define line here>

    Ect...

    Dont see something like this being really that hard to both use and implement....

    RR Coding Team Comments????
    RideRunner...The #1 FE, PERIOD.

    Current Project: DFXVoice [v1.0 Released]
    Next in line: RRMedia v2.0

    DFX 5.1.1 Skin
    Appstore Link

    My RideRunner Plugins
    RRMedia
    RRExtended
    DFXVoice

    "There are no bugs - only undocumented features."

    Comment


    • #3
      Mitch and I were talking about showing/hiding buttons on the skin.. similar to the flash objects.. right now, objects are created only from the .skin file and can't be unloaded (although labels/flash/indicators can be hidden and even buttons can be modified). Making RR load more objects in run-time is not that hard. Making it UNLOAD objects in run-time may be a bit of a trouble -- this may require some re-structuring of the "table" that stores the objects loaded on screen, but with some effort it could be done.
      Ride Runner RR's Myspace

      "Being happy is not about having what you want, it's about wanting what you have."
      "The best things in life are always free - but that doesn't mean money can't buy you good things."

      Comment


      • #4
        I think that at least the simplistic part of my original post should be really simple. Basically when parsing the .skin file, only load into the table the objects in either the IF or ELSE case of the statement. Since you're reloading the whole screen there's no worry about unloading objects from the table. This would be a welcome change in the near term.

        For Blue's idea, I think we could just use:

        ADDITEM;<definition>
        DELITEM;Xxx

        And the object code itself should be enough to tell RR which object it is (L01, B01, etc.). Only problem there is a lot of people are gonna have to tweak their skins to not just have 50 L01s (like me... )

        Comment


        • #5
          That makes sence, espec if you del a button in the middle of the buttons array, that could be a bit messy if u latter use the setbuttonxx command b/c that btn would no longer be in that button array element but up one.

          Better to hide/show would be probably best and easies for both US an skinners...
          RideRunner...The #1 FE, PERIOD.

          Current Project: DFXVoice [v1.0 Released]
          Next in line: RRMedia v2.0

          DFX 5.1.1 Skin
          Appstore Link

          My RideRunner Plugins
          RRMedia
          RRExtended
          DFXVoice

          "There are no bugs - only undocumented features."

          Comment


          • #6
            What you are describing can be done with skin code IF you are using a reloadscreen command by way of INC in the main skin file.

            i.e.
            Audio_player.skin
            Code:
            RoadRunner Skin
            RRScreen menu
            background1.png,blank.png,blank.png,blank.png
            
            INC,inc_audio_player$displayvariable$.skin
            
            End
            inc_audio_player0.skin
            Code:
            <Has code to display album art>
            inc_audio_player1.skin
            Code:
            <Has code to display album art>
            "VISU","SETVAR;displayvariable;1||RELOADSCREEN||VI SU"

            The way the skin would work is that on initial loading, audio_player.skin will load it with the album art code (displayvariable = 0).

            As soon as you hit "VISU" button, it will change $displayvariable$ to 1 and reloadscreen will load the code that display an application area instead of album art.
            Pico-ITX / XP Home with EWF-HORM / RR v12/02/2009 / Winamp v5.13 / RRMedia v1.2.2

            Comment


            • #7
              Originally posted by Sal R. View Post
              What you are describing can be done with skin code IF you are using a reloadscreen command by way of INC in the main skin file.

              i.e.
              Audio_player.skin
              Code:
              RoadRunner Skin
              RRScreen menu
              background1.png,blank.png,blank.png,blank.png
              
              INC,inc_audio_player$displayvariable$.skin
              
              End
              inc_audio_player0.skin
              Code:
              <Has code to display album art>
              inc_audio_player1.skin
              Code:
              <Has code to display album art>
              "VISU","SETVAR;displayvariable;1||RELOADSCREEN||VI SU"

              The way the skin would work is that on initial loading, audio_player.skin will load it with the album art code (displayvariable = 0).

              As soon as you hit "VISU" button, it will change $displayvariable$ to 1 and reloadscreen will load the code that display an application area instead of album art.
              Clever! But I still think adding support for something like this natively would be good.

              Comment


              • #8
                Originally posted by spamminator View Post
                Clever! But I still think adding support for something like this natively would be good.
                Don't get me wrong, if this could be implemented, you know i'd be using it.

                More a skinner's FYI if it becomes difficult to execute.
                Pico-ITX / XP Home with EWF-HORM / RR v12/02/2009 / Winamp v5.13 / RRMedia v1.2.2

                Comment


                • #9
                  Originally posted by Blue ZX3 View Post
                  This would be another push RR over top feature...

                  I would think something along the lines of these type cmds...

                  DELBUTTONID;BXX
                  ADDBUTTON;<whole button define line here>

                  DELLABELID;LXX
                  ADDLABEL;<whole label define line here>

                  Ect...

                  Dont see something like this being really that hard to both use and implement....

                  RR Coding Team Comments????
                  The specific button ID is a real good. All my BXX, LXX, IXX codes are all 00's except for the ones I want specific control over.

                  Me likey.
                  Pico-ITX / XP Home with EWF-HORM / RR v12/02/2009 / Winamp v5.13 / RRMedia v1.2.2

                  Comment

                  Working...
                  X