Page tree


Search

  Wiki Navigation

    Loading...


 Recently Updated


 Latest Releases

 MediaPortal 1.23 
            Releasenews | Download
 MediaPortal 2.2.2
            Releasenews | Download

Purpose

  • Required:  Yes, if your plugin depends on this base class and overrides the methods detailed in these changes
  • Type of Change:  Rework, introduction of GUIMenuButton for layouts and views

The WindowPluginBase class has been updated to manage a GUIMenuButton rather than GUIButtonControl for the Layouts and Views buttons.  The GUIMenuButton offers skin designers much more flexibility (over GUIButtonControl) for presentation of the affected functions.

These changes build off of the 1.1.0 to 1.2.0 WindowPluginBase Class changes.

Details

  • Controls

The following common controls have changed from GUIButtonControl to GUIMenuButton.

[SkinControl(2)]
protected GUIMenuButton btnLayouts = null;
[SkinControl(5)]
protected GUIMenuButton btnViews = null;

 

  • Methods

protected virtual void OnShowLayouts()
protected virtual void OnShowViews()

These methods have been removed.
 

protected virtual void UpdateButtonStates()

This method updates the sort order indicator in the sort button accordingly. If using a ViewHandler, it will also set the skin property #view to the ViewHandler's  LocalizedCurrentView value.
 

protected override void OnClicked(int controlId, GUIControl control, Action.ActionType actionType)

WindowPluginBase's implementation of this method does several things depending on the control clicked and the action passed by the engine:

  • If it is the sort button, OnShowSort() will be called.
  • If the control is the facade (list item) then one of the following will be called depending on the ActionType:
    • If the action is ACTION_SHOW_INFO  then OnInfo() will be called. Also the facade's RefreshCoverArt() method will be called.
    • ACTION_SELECT_ITEM -> OnClick()
    • ACTION_QUEUE_ITEM -> OnQueueItem()

Compatibility

See the version compatibility article for more information.

This change resulted in an increase of the compatibility version of the MP.SkinEngine subsystem. This means, that if your plugin has an [UsesSubsystem("MP.SkinEngine")] attribute, you need to update your compatibility information. Your unchanged plugin won't install and work anymore on an MP 1.3 installation.

Changing the compatibility information is done in the CompatibleVersion attribute. If your plugin isn't affected by the changes or you update your plugin in a way that keeps it compatible with both MP1.2 and MP1.3, you should keep the minRequiredVersion value at 1.1.6.27644, otherwise you should increase both versions. The new version number should be 1.2.100.0, which is the version number of the MP1.3 Alpha release.

Please note that if you are affected by this change but don't have the corresponding UsesSubsystem attribute, that's a bug in your plugin too. Please add the UsesSubsystem attribute for the MP.SkinEngine subsystem, and any other subsystem you use, to help improve the user experience in future upgrades.

Additional Information and References

  • Mantis Issue: 3779
  • Related xml(s):  -
  • Window ID:  -
  • Related GUI property/control:  -

XML/Code Samples

 

Screenshots

 

   

 

This page has no comments.