Esempio n. 1
0
 /// <summary>
 /// Get all facade items of the home screen
 /// </summary>
 /// <param name="home"></param>
 /// <returns></returns>
 internal static List<FacadeItem> GetHomeItems(GUIMenuControl home)
 {
     List<FacadeItem> returnItems = new List<FacadeItem>();
     foreach(MenuButtonInfo i in home.ButtonInfos)
     {
         returnItems.Add(new FacadeItem(i));
     }
     return returnItems;
 }
Esempio n. 2
0
        /// <summary>
        /// Get all facade items of the home screen
        /// </summary>
        /// <param name="home"></param>
        /// <returns></returns>
        internal static List <FacadeItem> GetHomeItems(GUIMenuControl home)
        {
            List <FacadeItem> returnItems = new List <FacadeItem>();

            foreach (MenuButtonInfo i in home.ButtonInfos)
            {
                returnItems.Add(new FacadeItem(i));
            }
            return(returnItems);
        }
Esempio n. 3
0
 /// <summary>
 /// Update the facade infor with the current values
 /// </summary>
 private void UpdateFacadeInfo()
 {
     try
     {
         GUIWindow currentPlugin = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow);
         Object    o             = currentPlugin.GetControl(50);
         if (o != null)
         {
             if (o.GetType() == typeof(GUIFacadeControl))
             {
                 GUIFacadeControl facade = (GUIFacadeControl)o;
                 SelectedIndex = facade.SelectedListItemIndex;
                 Visible       = facade.VisibleFromSkinCondition;
                 Count         = facade.Count;
                 ViewType      = facade.CurrentLayout.ToString();
             }
             else if (o.GetType() == typeof(GUIMenuControl))
             {
                 //TODO: also support home menu
                 GUIMenuControl menu = (GUIMenuControl)o;
                 SelectedIndex = menu.FocusedButton;
                 Visible       = false;
                 Count         = menu.ButtonInfos.Count;
                 ViewType      = "menu";
             }
             else
             {
                 SelectedIndex = 0;
                 Visible       = false;
                 Count         = 0;
                 ViewType      = null;
             }
         }
         else
         {
             SelectedIndex = 0;
             Visible       = false;
             Count         = 0;
             ViewType      = null;
         }
     }
     catch (Exception ex)
     {
         WifiRemote.LogMessage("Error on updating facade info: " + ex.ToString(), WifiRemote.LogType.Error);
     }
 }
Esempio n. 4
0
        /// <summary>
        /// Handle the facade message
        /// </summary>
        /// <param name="message">Message sent from client</param>
        /// <param name="server">Instance of the socket server</param>
        /// <param name="client">Socket that sent the message (for return messages)</param>
        internal static void HandleFacadeMessage(Newtonsoft.Json.Linq.JObject message, SocketServer server, AsyncSocket client)
        {
            String    action        = (string)message["FacadeAction"];
            GUIWindow currentPlugin = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow);

            if (action.Equals("get"))
            {
                MessageFacade returnMessage = new MessageFacade();
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                    GUIMenuControl    menu  = (GUIMenuControl)currentPlugin.GetControl(50);
                    List <FacadeItem> items = MpFacadeHelper.GetHomeItems(menu);
                    returnMessage.FacadeItems = items;
                    returnMessage.ViewType    = "Home";
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    if (facade != null)
                    {
                        List <FacadeItem> items = MpFacadeHelper.GetFacadeItems(currentPlugin.GetID, 50);
                        returnMessage.ViewType    = facade.CurrentLayout.ToString();
                        returnMessage.FacadeItems = items;
                    }
                }

                returnMessage.WindowId = currentPlugin.GetID;
                server.SendMessageToClient(returnMessage, client);
            }
            else if (action.Equals("setselected"))
            {
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    int selected            = (int)message["SelectedIndex"];
                    facade.SelectedListItemIndex = selected;
                }
            }
            else if (action.Equals("getselected"))
            {
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                    //TODO: find a way to retrieve the currently selected home button
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    int selected            = facade.SelectedListItemIndex;
                }
            }
            else if (action.Equals("getcount"))
            {
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                    GUIMenuControl menu  = (GUIMenuControl)currentPlugin.GetControl(50);
                    int            count = menu.ButtonInfos.Count;
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    int count = facade.Count;
                }
            }
            else if (action.Equals("select"))
            {
                int selected = (int)message["SelectedIndex"];
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                    GUIMenuControl menu = (GUIMenuControl)currentPlugin.GetControl(50);
                    MenuButtonInfo info = menu.ButtonInfos[selected];
                    GUIMessage     msg  = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, info.PluginID, 0, null);
                    GUIWindowManager.SendThreadMessage(msg);
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    //TODO: is there a better way to select a list item

                    facade.SelectedListItemIndex = selected;
                    new Communication().SendCommand("ok");
                }
            }
            else if (action.Equals("context"))
            {
                int selected = (int)message["SelectedIndex"];
                if (currentPlugin.GetType() == typeof(MediaPortal.GUI.Home.GUIHome))
                {
                    GUIMenuControl menu = (GUIMenuControl)currentPlugin.GetControl(50);
                    MenuButtonInfo info = menu.ButtonInfos[selected];
                    GUIMessage     msg  = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, info.PluginID, 0, null);
                    GUIWindowManager.SendThreadMessage(msg);
                }
                else
                {
                    GUIFacadeControl facade = (GUIFacadeControl)currentPlugin.GetControl(50);
                    //TODO: is there a better way to select a list item

                    facade.SelectedListItemIndex = selected;
                    new Communication().SendCommand("info");
                }
            }
        }