Skin Designer's Guide
From Moving Pictures
Thanks for checking out the skin designer's guide. The purpose of this document is to help you understand how exactly Moving Pictures interacts with the skin you will be/are creating. In this document you're going to find a general overview of how the plug-in is structured, the components that you, as a skinner should be interested in, and a list of available fields that you can use. If you are impatient, feel free to scroll down to get to the meat of the document.
For skinning Moving Pictures, you are welcome to use whatever skin you like as a base, but we recommend you start with the generic skin that ships with Moving Pictures. It is written by the same people that write the plug-in itself so if ever you are having trouble getting something to work right, refer to the generic skin.
If you are new to skinning, please check out the skin designer's guide on the MediaPortal wiki.
Contents |
Skinner's Change Log
1.3.0
- Added a new search button (ID #19).
- Added documentation for Filters (ID #4) and Parental Controls (ID #15) buttons (previously implemented but undocumented).
- Added documentation about launch parameters (search, category and movie based).
1.2.0
- Added support for the coverflow control. See the DefaultWide skin included with Moving Pictures for an example implementation. Also be sure to include the following code at the top of your skin file to enable coverflow related menu items:
<define>#coverflow.available:true</define>
1.1.3
- Added support for multiple backdrop sizes. See below section for details.
1.0.1
- Added a new skin property (#MovingPictures.SelectedNode.FileFriendlyName) that is the selected node name, but cleaned for filename use. This will eliminate problems with displaying a custom graphic for categories with characters illegal for a filename. For example "Family/Kids" becomes "Family_Kids".
1.0.0
- Additional options to color different types of movies and items on the facade have been added. See the section on available controls.
- A new (optional) button with ID 14 has been added which brings up a menu allowing the user to sort the movie list. May be integrated in hidden side menus or similar.
- A rating dialog dialogGeneralRating.xml with ID 28380 has been integrated in Cornerstone.MP and is used in Moving Pictures. If you do not integrate this dialog into your skin, the user will see an error popup instead.
- #MovingPictures.SelectedMovie.score is now called #MovingPictures.SelectedMovie.score.invariant and also added are: .percentage, .rounded, .major, .minor (see the updated property list for an example)
- #MovingPictures.SelectedMovie.runtime has been removed and replaced with #MovingPictures.SelectedMovie.runtime.<property name> (see description)
- Extra "MediaInfo" property called "videoformat" (see label values)
- If the files movingpictures_SortDescending.png and movingpictures_SortAscending.png exist in the media folder, they will be used to indicate the direction of sorting in the Sorting Popup. This is optional.
0.7.0
- Two new labels have been added to indicate the number of movies in the users movie collection, and the number of movies currently listed in the facade based on filtering. See the Labels section below for details.
- A second backdrop image control has been added to support a fading transition when the backdrop image changes. See the Backdrop Fading transition section below.
- A working animation control has been added to indicate when the Moving Pictures Importer is actively loading a movie file or retrieving details and artwork. See the controls section below for details.
- We would like to officially encourage you to display the movie rating on a five star scale rather than ten. With five stars it's easy to see at a very quick glance how a movie has been rated by critics. With ten stars though often users find themselves actually counting the number of stars, which is certainly not desirable. You are of course free to design your skin as you see fit, but please consider this suggestion. To make the change all you have to do is change the imagesToDraw tag of the imagelist control from 10 to 5.
0.6.0
- Three dummy labels have been added to provide visibility indicators to the skin. For example it is possible to have an image visible only when the currently selected movie has already been watched. See the Dummy Controls section below for more details.
0.5.3
- New delayed artwork strings have been added. You should use these strings for your backdrop (fan-art) and coverart images for *very significant performance boosts*. Please pay attention to this, it is important.
The Views and Conditional Visibility
The plug-in is broken down into five views. Four are based on the facade views and the fifth is the details view. All five views are a part of the same !MediaPortal "window". What this means is that to have something displayed on only a subset of the available views, you will need to use conditional visibility. Below are the five visibility tags you should be using for each view. If you want a control visible on multiple views, there is an example of this below as well.
List View: <visible>facadeview.list+Control.IsVisible(50)</visible> Small Icons View: <visible>facadeview.smallicons+Control.IsVisible(50)</visible> Large Icon View: <visible>facadeview.largeicons+Control.IsVisible(50)</visible> Filmstrip View: <visible>facadeview.filmstrip+Control.IsVisible(50)</visible> Details View: <visible>!Control.IsVisible(50)</visible>
Both Thumbnail Views: <visible>[facadeview.smallicons|facadeview.largeicons]+Control.IsVisible(50)</visible>
Movie Backdrops
Animated Transition
Beginning with Moving Pictures 0.7, it is now possible to apply animation effects to the backdrop as it fades from one image to another. This is possible by using two image controls instead of one. When the backdrop image changes, the first control is set to invisible while the second (with the new backdrop) is set to visible. If an animation is applied to each of these controls, to be triggered by a change in visibility, a smooth transition effect can be applied. An example implementation is listed below.
<control>
<description>Movie Backdrop (Fan Art) - Plug-in sets to invisible, if no art.</description>
<type>image</type>
<id>1</id>
<posX>0</posX>
<posY>0</posY>
<width>1366</width>
<height>768</height>
<texture>#MovingPictures.Backdrop</texture>
<animation effect="fade" start="0" end="100" time="3000">WindowOpen</animation>
<animation effect="fade" start="0" end="100" time="200">Visible</animation>
<animation effect="fade" start="100" end="0" time="200" delay="200">Hidden</animation>
</control>
<control>
<description>Alternate Movie Backdrop - Toggles Load with Component 1 for animations on visibiltiy</description>
<type>image</type>
<id>11</id>
<posX>0</posX>
<posY>0</posY>
<width>1366</width>
<height>768</height>
<texture>#MovingPictures.Backdrop2</texture>
<animation effect="fade" start="0" end="100" time="200">Visible</animation>
<animation effect="fade" start="100" end="0" time="200" delay="200">Hidden</animation>
</control>
Disabling Backdrop Support in Specific Views
It is possible to disable backdrops selectively for specific views in Moving Pictures. The following nodes should be added to your skin file if you wish modify backdrop visibility.
<define>#largeicons.backdrop.used:false</define> <define>#smallicons.backdrop.used:false</define> <define>#list.backdrop.used:true</define> <define>#filmstrip.backdrop.used:true</define> <define>#categories.backdrop.used:true</define> <define>#details.backdrop.used:true</define>
Using Multiple Backdrop Sizes
Beginning with Moving Pictures 1.1.3 it is possible to vary the size of the backdrop from view to view. To do this however, you must treat the original backdrop GUIImage controls as if they were dummy controls and you will need to make a separate set of backdrop GUIImage controls for each size you wish to use. The new controls will reuse the same texture and it will be only loaded once.
The following code shows how to use a smaller backdrop for filmstrip view and a fullscreen backdrop for all other views. This method retains a smooth animation effect when the backdrop image changes.
<control>
<description>dummy backdrop control 1</description>
<type>image</type>
<id>1</id>
<posX>-5</posX>
<posY>0</posY>
<width>1</width>
<height>1</height>
</control>
<control>
<description>dummy backdrop control 2</description>
<type>image</type>
<id>11</id>
<posX>-5</posX>
<posY>0</posY>
<width>1</width>
<height>1</height>
</control>
<control>
<description>Large Movie Backdrop 1</description>
<type>image</type>
<id>0</id>
<posX>0</posX>
<posY>0</posY>
<width>1280</width>
<height>720</height>
<texture>#MovingPictures.Backdrop</texture>
<animation effect="fade" start="0" end="100" time="3000">WindowOpen</animation>
<animation effect="fade" start="100" end="0" time="200" delay="200">Hidden</animation>
<visible>[!facadeview.filmstrip|!control.isvisible(50)]+control.isvisible(1)</visible>
</control>
<control>
<description>Large Movie Backdrop 2 - Toggles With 1</description>
<type>image</type>
<id>0</id>
<posX>0</posX>
<posY>0</posY>
<width>1280</width>
<height>720</height>
<texture>#MovingPictures.Backdrop2</texture>
<animation effect="fade" start="0" end="100" time="200">Visible</animation>
<animation effect="fade" start="100" end="0" time="200">Hidden</animation>
<visible>[!facadeview.filmstrip|!control.isvisible(50)]+control.isvisible(11)</visible>
</control>
<control>
<description>Small Movie Backdrop 1</description>
<type>image</type>
<id>0</id>
<posX>0</posX>
<posY>0</posY>
<width>640</width>
<height>360</height>
<texture>#MovingPictures.Backdrop</texture>
<animation effect="fade" start="0" end="100" time="3000">WindowOpen</animation>
<animation effect="fade" start="100" end="0" time="200" delay="200">Hidden</animation>
<visible>[facadeview.filmstrip+control.isvisible(50)]+control.isvisible(1)</visible>
</control>
<control>
<description>Small Movie Backdrop 2 - Toggles With 1</description>
<type>image</type>
<id>0</id>
<posX>0</posX>
<posY>0</posY>
<width>640</width>
<height>360</height>
<texture>#MovingPictures.Backdrop2</texture>
<animation effect="fade" start="0" end="100" time="200">Visible</animation>
<animation effect="fade" start="100" end="0" time="200">Hidden</animation>
<visible>[facadeview.filmstrip+control.isvisible(50)]+control.isvisible(11)</visible>
</control>
Available Labels and Strings
Artwork Labels
An important note, the standard label list includes the current backdrop and coverart paths. _These are not time delayed and as a consequence will cause the GUI to perform poorly if you use them for display._ They are included for completeness that is all. For artwork you should use the following two labels which will be updated with a time delay to dramatically boost performance of the plug-in.
#MovingPictures.Coverart #MovingPictures.Backdrop
Movie Count Labels
There are two labels that give numerical information about the size of the users movie collection. The first is the number of movies currently listed in the GUI based on filtering, for example, if the user is viewing only unwatched movies. The second is the total number of movies in the collection.
#MovingPictures.general.filteredmoviecount #MovingPictures.general.totalmoviecount
There is also a label that gives the index of the currently selected movie:
#MovingPictures.SelectedIndex
Standard Labels
Everything for the current movie that is stored in the database is dumped to the skin. The definitive list of skin elements can be pulled from a log file of Moving Pictures while running in debug mode (the default right now). All available tags will be listed once in the log file. That being said, a current list is pasted below.
Please also take note of the list elements like Actor and Genre. They are broken down into sub fields in case you want to itemize them or for some reason only want to display one field. By default the max number of fields to display is five, but that is configurable in the advanced settings of the control panel.
#MovingPictures.Sort.Field = "Title"
#MovingPictures.Sort.Direction = "Ascending"
#MovingPictures.Settings.HomeScreenName = "Moving Pictures"
#MovingPictures.SelectedMovie.title = "Wanted"
#MovingPictures.SelectedMovie.alternate_titles = "Se busca, Wanted, ...
#MovingPictures.SelectedMovie.extra.alternate_titles.1 = "Se busca"
#MovingPictures.SelectedMovie.extra.alternate_titles.2 = "Wanted"
#MovingPictures.SelectedMovie.extra.alternate_titles.3 = "????? ??????"
#MovingPictures.SelectedMovie.extra.alternate_titles.4 = "O Procurado"
#MovingPictures.SelectedMovie.extra.alternate_titles.5 = "Recherché"
#MovingPictures.SelectedMovie.sortby = "Wanted"
#MovingPictures.SelectedMovie.directors = "Timur Bekmambetov"
#MovingPictures.SelectedMovie.extra.directors.1 = "Timur Bekmambetov"
#MovingPictures.SelectedMovie.writers = "Michael Brandt, Derek Haas"
#MovingPictures.SelectedMovie.extra.writers.1 = "Michael Brandt"
#MovingPictures.SelectedMovie.extra.writers.2 = "Derek Haas"
#MovingPictures.SelectedMovie.actors = "James McAvoy, Morgan Freeman, Angelina Jolie, Terence Stamp, Thomas Kretschmann"
#MovingPictures.SelectedMovie.extra.actors.1 = "James McAvoy"
#MovingPictures.SelectedMovie.extra.actors.2 = "Morgan Freeman"
#MovingPictures.SelectedMovie.extra.actors.3 = "Angelina Jolie"
#MovingPictures.SelectedMovie.extra.actors.4 = "Terence Stamp"
#MovingPictures.SelectedMovie.extra.actors.5 = "Thomas Kretschmann"
#MovingPictures.SelectedMovie.year = "2008"
#MovingPictures.SelectedMovie.genres = "Action, Crime, Thriller"
#MovingPictures.SelectedMovie.extra.genres.1 = "Action"
#MovingPictures.SelectedMovie.extra.genres.2 = "Crime"
#MovingPictures.SelectedMovie.extra.genres.3 = "Thriller"
#MovingPictures.SelectedMovie.certification = "R"
#MovingPictures.SelectedMovie.language = "English"
#MovingPictures.SelectedMovie.tagline = "Choose your destiny."
#MovingPictures.SelectedMovie.summary = "A young man finds out his long lost father is an assassin..."
#MovingPictures.SelectedMovie.popularity = "100"
#MovingPictures.SelectedMovie.date_added = "7/29/2008 1:36:22 PM"
#MovingPictures.SelectedMovie.movie_xml_id = "0"
#MovingPictures.SelectedMovie.imdb_id = "tt0493464"
#MovingPictures.SelectedMovie.extra.alternatecovers.1 = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [2139684714].jpg"
#MovingPictures.SelectedMovie.extra.alternatecovers.2 = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [-1539234145].jpg"
#MovingPictures.SelectedMovie.extra.alternatecovers.3 = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [1779990658].jpg"
#MovingPictures.SelectedMovie.extra.alternatecovers.4 = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [815824037].jpg"
#MovingPictures.SelectedMovie.extra.alternatecovers.5 = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [1243419921].jpg"
#MovingPictures.SelectedMovie.coverfullpath = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\FullSize\{Wanted} [1243419921].jpg"
#MovingPictures.SelectedMovie.coverthumbfullpath = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Covers\Thumbs\{Wanted} [1243419921].jpg"
#MovingPictures.SelectedMovie.backdropfullpath = "C:\ProgramData\Team MediaPortal\MediaPortal\Thumbs\MovingPictures\Backdrops\FullSize\{Wanted} [1875414390].jpg"
#MovingPictures.SelectedMovie.details_url = "http://www.imdb.com/title/tt0493464"
#MovingPictures.SelectedMovie.runtime = "110"
#MovingPictures.SelectedMovie.extra.runtime.hour = "1"
#MovingPictures.SelectedMovie.extra.runtime.minute = "50"
#MovingPictures.SelectedMovie.extra.runtime.short = "1:50"
#MovingPictures.SelectedMovie.extra.runtime.en.pretty = "1 hour, 50 minutes"
#MovingPictures.UserMovieSettings.user_rating = ""
#MovingPictures.UserMovieSettings.watched = "0"
#MovingPictures.UserMovieSettings.resume_part = "0"
#MovingPictures.UserMovieSettings.resume_time = "0"
#MovingPictures.UserMovieSettings.resume_data = ""
Score Labels
The following labels are only available in Moving Pictures 0.8.0 and later.
#MovingPictures.SelectedMovie.score.localized = "6,8" #MovingPictures.SelectedMovie.score.invariant = "6.8" #MovingPictures.SelectedMovie.score.percentage = "68" #MovingPictures.SelectedMovie.score.rounded = "7" #MovingPictures.SelectedMovie.score.major = "6" #MovingPictures.SelectedMovie.score.minor = "8"
Runtime Labels
The following labels are only available in Moving Pictures 0.8.0 and later
#MovingPictures.SelectedMovie.runtime.actual = "True" #MovingPictures.SelectedMovie.runtime.totalseconds = "7143" #MovingPictures.SelectedMovie.runtime.hour = "1" #MovingPictures.SelectedMovie.runtime.minute = "59" #MovingPictures.SelectedMovie.runtime.second = "3" #MovingPictures.SelectedMovie.runtime.localized.hour = "1 hour" #MovingPictures.SelectedMovie.runtime.localized.minute = "59 minutes" #MovingPictures.SelectedMovie.runtime.localized.second = "3 seconds" #MovingPictures.SelectedMovie.runtime.localized.short = "1:59" #MovingPictures.SelectedMovie.runtime.localized.short.extended = "1h59m03s" #MovingPictures.SelectedMovie.runtime.localized.long = "1 hour and 59 minutes" #MovingPictures.SelectedMovie.runtime.localized.long.extended = "1 hour, 59 minutes and 3 seconds"
| Label | Description |
|---|---|
| actual | True = actual calculated duration, False = as provided by movie provider |
| totalseconds | total duration in seconds |
| hour | presents the hour component of the runtime |
| minute | presents the minute component of the runtime |
| second | presents the second component of the runtime |
| localized.? | presents the written localized components |
MediaInfo Labels
The following labels are only available in Moving Pictures 0.8.0 and later.
#MovingPictures.LocalMedia.media_label = "" #MovingPictures.LocalMedia.fullpath = "\\DAYBREAK\Media\Movies\Wanted\mvs-wanted1.avi" #MovingPictures.LocalMedia.volume_serial = "" #MovingPictures.LocalMedia.discid = "" #MovingPictures.LocalMedia.filehash = "223823e4bc7c9ac7" #MovingPictures.LocalMedia.part = "1" #MovingPictures.LocalMedia.duration = "5824080" #MovingPictures.LocalMedia.extra.runtime.hour = "1" #MovingPictures.LocalMedia.extra.runtime.minute = "37" #MovingPictures.LocalMedia.extra.runtime.short = "1:37" #MovingPictures.LocalMedia.extra.runtime.en.pretty = "1 hour, 37 minutes" #MovingPictures.LocalMedia.ignored = "False" #MovingPictures.LocalMedia.importpath = "\\DAYBREAK\Media\Movies\Wanted" #MovingPictures.LocalMedia.videowidth = "640" #MovingPictures.LocalMedia.videoheight = "272" #MovingPictures.LocalMedia.videoresolution = "SD" #MovingPictures.LocalMedia.videocodec = "XVID" #MovingPictures.LocalMedia.videoframerate = "25" #MovingPictures.LocalMedia.videoaspectratio = "widescreen" #MovingPictures.LocalMedia.audiocodec = "MP3" #MovingPictures.LocalMedia.audiochannels = "2" #MovingPictures.LocalMedia.hassubtitles = "True" #MovingPictures.LocalMedia.AudioChannelsFriendly = "stereo" #MovingPictures.LocalMedia.Subtitles = "subtitles" #MovingPictures.LocalMedia.videoformat = "File"
Some of these fields have a limited set of values, to be used in skin files. The values are as follows
| Field | Possible Values |
|---|---|
| #MovingPictures.LocalMedia.videoaspectratio | widescreen, fullscreen |
| #MovingPictures.LocalMedia.videoformat | Unknown, File, Bluray, HDDVD, DVD, SVCD |
| #MovingPictures.LocalMedia.videocodec | DIVX, XVID, H264, MP1V, MP2V, WMV |
| #MovingPictures.LocalMedia.videoresolution | 1080p, 1080i, 720p, HD, SD |
| #MovingPictures.LocalMedia.audiocodec | AC3, MP3, MP2A, DTS, OGG, AAC, WMA, PCM |
| #MovingPictures.LocalMedia.AudioChannelsFriendly | 7.1, 5.1, stereo, mono |
| #MovingPictures.LocalMedia.Subtitles | subtitles, nosubtitles |
Relevant Controls
There are a few controls (and their corresponding IDs) that you as a skinner should know about. Get creative, they don't need to be used in the same way they are used by the generic skin. And if you come up with an idea that requires a new control and a little bit of logic, feel free to ask for it! Just head on over to the Developers Discussion Group. If you aren't a member, apply and say you're a skin designer, and you'll get approved.
Normal Available Controls
Facade / List View / Thumbnail View / Filmstrip View (50)
| Item Type | XML Node Name |
|---|---|
| Unwatched Movie | <textcolor> |
| Watched Movie | <playedColor> |
| Offline Movie | <remoteColor> |
| Grouping Header | <textcolor3> |
This is the primary control for the skin. Depending on the current view this is the primary visualization for the movies displayed on the screen.
Beginning with version 0.8 it is possible to display watched movies, unwatched movies, offline movies, and grouping headers in different colors on the facade. Use the tags listed to the right to specify the colors to be used.
Backdrop (Fan-Art) Image (1) - The plug-in will automatically hide this component when there is no backdrop available. If you setup conditional visibility for another image based on this control, you can display a normal background when there is no backdrop. You can also set up different versions of each view, one for when there is a backdrop and one for when there is not. You should not modify the visibility of this control directly.
Secondary Backdrop (Fan-Art) Image (11) - If the second backdrop image control is defined in the skin file, Moving Pictures will alternate between image control #1 and image control #11, setting the visibility to false for the control not currently in use. Because of the alternating visibility, this allows for animation effects to be used when the backdrop image changes. This is currently only tested with the fading effect.
Working Animation (13) - This is a control of type "animation". If you have it defined in your skin, it will be displayed when Moving Pictures is doing work in the background (such as loading a new movie). This working animation should be displayed in an unobtrusive manner! It is meant to indicate a background task is going on, and should not disrupt the user.
Toggle View Button (2) - When this button is clicked the current view will be cycled to the next available view.
Views Menu Button (3) - When this button is clicked a menu will appear prompting the user to select a view from those that are available.
Sort Menu Button (14) - Only available in Moving Pictures 0.8.0 and later! When this button is clicked a menu will appear enabling the user to sort the movie list by many parameters.
Parental Controls Button (15) - Button to toggle parental controls. Password dialog displays as needed.
Filters Button (4) - Displays the filter context menu.
Search Button (19) - Displays the search context menu.
Play Button (6) - You click the button and the movie starts playing. This button also by default has focus when you move to the details view. This probably should only be visible on the details screen, but it's available anywhere, so do what you like with it.
Dummy Controls
These controls serve no direct purpose but their visibility is modified based on the conditions described. You should use the controls to handle conditional visibility of other screen elements. These are all "label" type controls. See the Generic Skin for an implementation example.
Watched Flag Filtering (8) - Visible when the facade is currently filtered by the watched flag. This indicates that only unwatched movies are visible.
Selected Movie is Watched (9) - Visible when the currently selected movie (highlighted in the facade or displayed on the details screen) has already been watched.
Remote Control Filtering (10) - Visible when the facade is currently being filtered by remote control filtering. (If the user types a partial movie title with the number pad of his or her remote, the movie list will be filtered by what is typed).
Possible Future Controls
These controls are not currently implemented but their IDs are reserved. Do no use these IDs or your skin might experience incompatibility with future versions of the plug-in. You should probably steer clear of ever putting ID tags on controls that are not directly tied to an existing control listed in this document.
Settings Button (5) - This is not implemented yet either, and I am not sure if it will stay. The intention is for it to bring up some sort of settings menu, but I am not sure if I will implement this. If you have any ideas though, please share. I would avoid using this ID on other controls though, as this ID is reserved for this button, should it get implemented.
Cycle Text Button (7) - Another, yet to be implemented feature. When clicked this will cycle the text in a yet to be named skin field. The idea is to have the movie summary, trivia, goofs, etc cycled through as the user clicks this button. When it is implemented more details will be posted here. Again though, don't use this ID for anything else.
Launch Parameters
It is possible to launch Moving Pictures with several different launch parameters to specify what is displayed to the user:
Launch into a Category
The first two launch paramaters below can be used to launch to a specific category. This is most useful for allowing the user to customize their setup with links to commonly used categories. Many skins provide Basic Home editors that allow the user to setup links like this. There is some common code that exists if you are interested in creating a smoother user interface. If you are interested take a look at the FilterComboBox class and feel free to ask for tips on our IRC Channel.
<hyperlinkParameter>categoryname:Unwatched</hyperlinkParameter> <hyperlinkParameter>categoryid:7</hyperlinkParameter>
Launch to a Movie Details Page
The following launch parameter allows you to launch to a specific movie details page. This is probably more useful for plugins that have strong connection to the Moving Pictures plugin. In code you can get a list of movies by calling DBMovieInfo.GetAll(). Each DBMovieInfo object will have an ID property that can be used in conjunction with this launch parameter.
<hyperlinkParameter>movieid:45</hyperlinkParameter>
Launch a Search
It is also possible to launch Moving Pictures into search results specified by a launch parameter. Just as with the in GUI controls you can search by title, cast and crew, or by theme.
<hyperlinkParameter>searchtitle:matrix</hyperlinkParameter> <hyperlinkParameter>searchcast:tom cruise</hyperlinkParameter> <hyperlinkParameter>searchtheme:aliens</hyperlinkParameter>
Additional Notes
If the files movingpictures_SortDescending.png and movingpictures_SortAscending.png exist in the media folder, they will be used to indicate the direction of sorting in the Sorting Popup. This is optional.
Common Issues
My Components Aren't Being Displayed
Check the order you are creating your controls. If your background is declared after your label, the label wont show up. Also check your conditional visibility. Double check you are using tags similar to what is listed above. Are your and and or operators correct? Do you know what I mean by that? If not you should read this part of the MP Skin Designer's Guide.
Still Having Trouble?
No worries. Just jump onto the IRC_Channel and ask a question. The channel is generally populated with other developers skinner's scraper script writers and Moving Pictures enthusiasts. It is the perfect place to ask a question if you are having trouble with something.
You could also log in to the Developer's Discussion Group and ask a question. If you aren't a member, apply and say you're a skin designer. You will be approved. In the Developer's Discussion Google Group you will be able to interact with other skin designers, and the developers of the plug-in themselves. If you have a problem, odds are someone there can help.