MediaPortal/MediaPortal-2 — pull request #14 by chefkoch (2013-03-10 04:08:40+00:00)
Title: added SystemStateMenu plugin

This includes a plugin providing a menu to shutdown, restart or suspend the system (change of SystemState).

__Features__
In detail the following menu entries are implemented:
- Shutdown system
- Suspend system (Standby)
- Hibernate system
- Restart system
- Close MediaPortal
- Minimize MediaPortal
The position and the visibility can be configured within settings.

Additional entries, which could be added in future might be:
- Define custom shutdown timer... (--> SleepTimer feature)
- Restart MediaPortal
- Restart Server
- ...
These are not part of this plugin/pull request.

__ToDo list for myself__
- [x] Initial commit of the plugin
- [ ] [Remove Dialog from Menu](https://github.com/MediaPortal/MediaPortal-2/blob/c8e37aac7221ef1a4a80e55b28d662af73715871/MediaPortal/Incubator/SystemStateMenu/Skin/default/workflow/systemstate-actions.xml) after a new button has been to existing plugins
- [ ] Add plugin to Transifex config plugin

__ToDo list for reviewer__
These things I am especially asking for review:
- [ ] Review plugin name & location, names of classes, workflows, models, ...
- [ ] Review localization: using [System.Shutdown] etc instead of creating new ones?
- [ ] [Enum usage for MenuItems](https://github.com/MediaPortal/MediaPortal-2/blob/c8e37aac7221ef1a4a80e55b28d662af73715871/MediaPortal/Incubator/SystemStateMenu/Helper%20Classes/SystemStateAction.cs#L27-L36): Does the enum allows additional entries (like RestartMP, SleepTimer, ...) in future?

__unassigned tasks__
- [ ] change skins to make use of the new menu, i.e. PowerButton if Mouse is active

__In-GUI screenshots of the plugin__
![Menu](https://f.cloud.github.com/assets/601866/240635/d56c2436-8937-11e2-9f60-ab26d012ae5d.png)
![ConfigSection](https://f.cloud.github.com/assets/601866/240637/ef9a5990-8937-11e2-87e3-4a470298107e.png)
![ConfigDialog](https://f.cloud.github.com/assets/601866/240639/f1d9a0a8-8937-11e2-880e-a11e2bb91436.png)