public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); Update(); return true; } case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: { if (m_pTexture != null) { m_pTexture.Dispose(); } m_pTexture = null; base.OnMessage(message); // Fix for Mantis issue: 0001709: Background not correct after viewing pictures properties twice Restore(); return true; } } return base.OnMessage(message); }
public virtual void PageLoad(int ParentID) { CloseRoutedWindow(); _parentWindowID = ParentID; _parentWindow = GUIWindowManager.GetWindow(_parentWindowID); if (_parentWindow == null) { _parentWindowID = 0; return; } GUIWindowManager.IsSwitchingToNewWindow = true; lock (thisLock) { GUIWindowManager.RouteToWindow(GetID); GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_INIT, GetID, 0, 0, _parentWindowID, 0, null); OnMessage(msg); _running = true; } GUIWindowManager.IsSwitchingToNewWindow = false; while (IsAnimating(AnimationType.WindowOpen) && GUIGraphicsContext.CurrentState == GUIGraphicsContext.State.RUNNING) { GUIWindowManager.Process(); } }
public void DoModal(int dwParentId) { //Log.Debug("TvMiniGuide: DoModal"); _parentWindowID = dwParentId; _parentWindow = GUIWindowManager.GetWindow(_parentWindowID); if (null == _parentWindow) { //Log.Debug("TvMiniGuide: parentwindow = null"); _parentWindowID = 0; return; } GUIWindowManager.IsSwitchingToNewWindow = true; GUIWindowManager.RouteToWindow(GetID); // activate this window... GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_INIT, GetID, 0, 0, -1, 0, null); OnMessage(msg); GUIWindowManager.IsSwitchingToNewWindow = false; _running = true; GUILayerManager.RegisterLayer(this, GUILayerManager.LayerType.Dialog); while (_running && GUIGraphicsContext.CurrentState == GUIGraphicsContext.State.RUNNING) { GUIWindowManager.Process(); } Close(); }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED: { int iControl = message.SenderControlId; if (iControl == (int)m_Facade.GetID) { GUIListItem item = m_Facade.SelectedListItem; if (item == null || item.TVTag == null || !(item.TVTag is AniDB_CharacterVM)) return true; AniDB_CharacterVM aniChar = item.TVTag as AniDB_CharacterVM; if (aniChar == null) return true; SetCharacterProperties(aniChar); } } return true; default: return base.OnMessage(message); } }
protected int SelectedFacadeItem() { if (facadeLayout == null) return -1; GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED, GetID, 0, facadeLayout.GetID, 0, 0, null); OnMessage(msg); int iItem = (int)msg.Param1; return iItem; }
/// <summary> /// Handle actions which are available on this dialog /// </summary> /// <param name="action">Action to execute</param> /// <param name="index">Index (e.g. needed for lists)</param> public override void HandleAction(String action, int index) { base.HandleAction(action, index); if (action.Equals("ok")) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, 0, 10, 10, 0, 0, null); dialogMenu.OnMessage(msg); } }
public override bool OnMessage(GUIMessage message) { //Log.Error(" PresetsGUI OnMessage: " + message.Message.ToString()); if (message.Message == GUIMessage.MessageType.GUI_MSG_SETFOCUS && message.TargetControlId > 100 && message.TargetControlId<=Settings.LOCAL_PRESETS_NUMBER+100) { if (_setting.PresetStations.Count >= message.TargetControlId - 100) UpdateSelectedLabels(_setting.PresetStations[message.TargetControlId - 100 - 1]); } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: { SetControlLabel(GetID, 1, string.Empty); base.OnMessage(message); return true; } case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { m_bConfirmed = false; base.OnMessage(message); if (m_DefaultStop) { GUIControl.FocusControl(GetID, btnStop.GetID); } } return true; case GUIMessage.MessageType.GUI_MSG_CLICKED: { int iControl = message.SenderControlId; if (btnStop == null) { m_bConfirmed = true; PageDestroy(); m_DefaultStop = false; return true; } if (iControl == btnPlay.GetID) { m_bConfirmed = false; PageDestroy(); m_DefaultStop = false; return true; } if (iControl == btnStop.GetID) { m_bConfirmed = true; PageDestroy(); m_DefaultStop = false; return true; } } break; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { bool result = base.OnMessage(message); if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT) { GUIVideoOSD osd = (GUIVideoOSD)GUIWindowManager.GetWindow(GUIOnlineVideoOSD.WINDOW_ONLINEVIDEOS_OSD); typeof(GUIVideoFullscreen).InvokeMember("_osdWindow", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.SetField, null, this, new object[] { osd }); } return result; }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); LoadSettings(); GUIControl.ClearControl(GetID, (int)Controls.CONTROL_PLAYEDTIMEPERCENTAGE); for (int i = 1; i <= 100; ++i) { GUIControl.AddItemLabelControl(GetID, (int)Controls.CONTROL_PLAYEDTIMEPERCENTAGE, i.ToString()); } GUIControl.ClearControl(GetID, (int)Controls.CONTROL_VIDEOAUDIODELAY); for (int i = 1; i <= 100; ++i) { GUIControl.AddItemLabelControl(GetID, (int)Controls.CONTROL_VIDEOAUDIODELAY, i.ToString()); } GUIControl.SelectItemControl(GetID, (int)Controls.CONTROL_PLAYEDTIMEPERCENTAGE, _watchedPercentage - 1); GUIControl.SelectItemControl(GetID, (int)Controls.CONTROL_VIDEOAUDIODELAY, _videoAudioDelay - 1); return true; } case GUIMessage.MessageType.GUI_MSG_CLICKED: { int iControl = message.SenderControlId; if (iControl == (int)Controls.CONTROL_PLAYEDTIMEPERCENTAGE) { string strLabel = message.Label; _watchedPercentage = Int32.Parse(strLabel); } if (iControl == (int)Controls.CONTROL_VIDEOAUDIODELAY) { string strLabel = message.Label; if (Int32.Parse(strLabel) < 10) { GUIControl.SelectItemControl(GetID, (int)Controls.CONTROL_VIDEOAUDIODELAY, 9); _videoAudioDelay = 10; break; } _videoAudioDelay = Int32.Parse(strLabel); } } break; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { if (!base.OnMessage(message)) { return false; } switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: SetButtons(); break; } return true; }
/// <summary> /// Handle actions which are available on this dialog /// </summary> /// <param name="action">Action to execute</param> /// <param name="index">Index (e.g. needed for lists)</param> public override void HandleAction(String action, int index) { base.HandleAction(action, index); if (action.Equals("yes")) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, 0, 11, 11, 0, 0, null); mpDialog.OnMessage(msg); } if (action.Equals("setrating")) { SetRating(index); } }
public virtual void Close() { if (m_bRunning == false) return; m_bRunning = false; GUIWindowManager.IsSwitchingToNewWindow = true; lock (this) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT, GetID, 0, 0, 0, 0, null); base.OnMessage(msg); GUIWindowManager.UnRoute(); m_bRunning = false; } GUIWindowManager.IsSwitchingToNewWindow = false; }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); return true; } case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: {} break; } return base.OnMessage(message); }
/// <summary> /// Open a window (for example Moving Pictures, MP-TV Series, etc.), /// invoke on GUI thread if called from a different /// thread than UI thread /// </summary> /// <param name="windowId"></param> public static void OpenWindow(int windowId) { if (GUIGraphicsContext.form.InvokeRequired) { OpenWindowDelegate d = OpenWindow; GUIGraphicsContext.form.Invoke(d, new object[] { windowId }); } else { GUIGraphicsContext.ResetLastActivity(); GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_GOTO_WINDOW, 0, 0, 0, windowId, 0, null); GUIWindowManager.SendThreadMessage(msg); } }
public override bool OnMessage(GUIMessage message) { if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT) { GUIPropertyManager.SetProperty("#currentmodule", GetModuleName()); AllocResources(); // if (g_application.m_pPlayer) g_application.m_pPlayer.ShowOSD(false); // ResetAllControls(); // make sure the controls are positioned relevant to the OSD Y offset FocusControl(GetID, 213, 0); // set focus to play button by default when window is shown QueueAnimation(AnimationType.WindowOpen); ToggleButton(213, g_Player.Paused); return true; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { // needRefresh = true; switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: { SetControlLabel(GetID, (int)Controls.CONTROL_HEADING, string.Empty); base.OnMessage(message); return true; } case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); ClearControl(GetID, (int)Controls.CONTROL_LIST); for (int i = 0; i < m_vecList.Count; i++) { GUIListItem pItem = (GUIListItem)m_vecList[i]; AddListItemControl(GetID, (int)Controls.CONTROL_LIST, pItem); } if (_selectedLabel >= 0) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_SELECT, GetID, 0, (int)Controls.CONTROL_LIST, _selectedLabel, 0, null); OnMessage(msg); } _selectedLabel = -1; } return true; case GUIMessage.MessageType.GUI_MSG_CLICKED: { int iControl = message.SenderControlId; if ((int)Controls.CONTROL_LIST == iControl) { _selectedLabel = GetSelectedItemNo(); m_strSelected = GetSelectedItem().Label; PageDestroy(); } } break; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); if (imgLogo != null) { SetImage(logoUrl); } } return true; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); btnMiniDisplay.Visible = MiniDisplayHelper.IsSetupAvailable(); btnTV.Visible = Util.Utils.UsingTvServer; return true; } case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: {} break; } return base.OnMessage(message); }
public override bool ProcessDoModal() { bool result = base.ProcessDoModal(); TimeSpan timeElapsed = DateTime.Now - timeStart; if (TimeOut > 0) { if (timeElapsed.TotalSeconds >= TimeOut) { GUIMessage msgConfirm = new GUIMessage(); msgConfirm.Message = GUIMessage.MessageType.GUI_MSG_CLICKED; msgConfirm.SenderControlId = m_DefaultYes ? btnYes.GetID : btnNo.GetID; OnMessage(msgConfirm); return false; } } return result; }
public override bool OnMessage(GUIMessage message) { Log.Info("DVDFullscreen: Message: {0}", message.Message.ToString()); if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT) { if (!bINIT_from_MyVideosFullScreen) { //if viz is on, this hides the DVD select dialog: GUIWindowManager.ReplaceWindow((int)GUIWindow.Window.WINDOW_FULLSCREEN_VIDEO); ISelectDVDHandler selectDVDHandler; if (GlobalServiceProvider.IsRegistered<ISelectDVDHandler>()) { selectDVDHandler = GlobalServiceProvider.Get<ISelectDVDHandler>(); } else { selectDVDHandler = new SelectDVDHandler(); GlobalServiceProvider.Add<ISelectDVDHandler>(selectDVDHandler); } string dvdToPlay = selectDVDHandler.ShowSelectDVDDialog(GetID); if (dvdToPlay == null || !selectDVDHandler.OnPlayDVD(dvdToPlay, GetID)) { Log.Info("DVDFullscreen: Returning from DVD screen"); GUIWindowManager.ShowPreviousWindow(); /*GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT, this.GetID, 0, 0, GetID, 0, null); return this.OnMessage(msg); // Send a de-init msg*/ } else { g_Player.ShowFullScreenWindow(); bINIT_from_MyVideosFullScreen = true; } } else { bINIT_from_MyVideosFullScreen = false; Log.Info("DVDFullscreen: Returning from DVD screen"); GUIWindowManager.ShowPreviousWindow(); } return true; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { //needRefresh = true; switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_INIT: { base.OnMessage(message); FillList(); // Set focus to "continue" button GUIControl.FocusControl(GetID, btnContinue.GetID); } return true; case GUIMessage.MessageType.GUI_MSG_CLICKED: { int iControl = message.SenderControlId; if (btnContinue == null || iControl == btnContinue.GetID) { PageDestroy(); return true; } } break; case GUIMessage.MessageType.GUI_MSG_SETFOCUS: { if (message.TargetControlId == listView.GetID) { _timeOutInSeconds = 0; GUIPropertyManager.SetProperty("#countdownseconds", ""); } } break; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT: { SetControlLabel(GetID, 1, string.Empty); base.OnMessage(message); return true; } case GUIMessage.MessageType.GUI_MSG_CLICKED: { int iControl = message.SenderControlId; if (btnYes == null) { m_bConfirmed = true; PageDestroy(); return true; } if (iControl == btnNo.GetID) { m_bConfirmed = false; PageDestroy(); return true; } if (iControl == btnYes.GetID) { m_bConfirmed = true; PageDestroy(); return true; } } break; } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { if (message.Message == MediaPortal.GUI.Library.GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED && facadeControl.Focus == true) { if (facadeControl.SelectedListItem != null) { if (facadeControl.SelectedListItem.IconImageBig != "") { image.FileName = facadeControl.SelectedListItem.IconImageBig; //image.DoUpdate(); } else { image.FileName = ""; } } else { image.FileName = ""; } } return base.OnMessage(message); }
public override bool OnMessage(GUIMessage message) { if (message.TargetControlId == GetID) { if (message.SenderControlId == 0) { if (message.Message == GUIMessage.MessageType.GUI_MSG_CLICKED) { _offset = (_upDownControl.Value - 1) * (_columns); _refresh = true; OnSelectionChanged(); } } if (message.Message == GUIMessage.MessageType.GUI_MSG_GET_SELECTED_ITEM) { int iItem = _offset + _cursorX; if (iItem >= 0 && iItem < _listItems.Count) { message.Object = _listItems[iItem]; } else { message.Object = null; } _refresh = true; return true; } if (message.Message == GUIMessage.MessageType.GUI_MSG_REFRESH) { GUITextureManager.CleanupThumbs(); foreach (GUIListItem item in _listItems) { item.FreeMemory(); } _refresh = true; if (_imageInfo != null) { _imageInfo.SafeDispose(); _imageInfo.AllocResources(); _imageInfo.DoUpdate(); } return true; } if (message.Message == GUIMessage.MessageType.GUI_MSG_GET_ITEM) { int iItem = message.Param1; if (iItem >= 0 && iItem < _listItems.Count) { message.Object = _listItems[iItem]; } else { message.Object = null; } return true; } if (message.Message == GUIMessage.MessageType.GUI_MSG_LOSTFOCUS || message.Message == GUIMessage.MessageType.GUI_MSG_SETFOCUS) { if (Disabled || !IsVisible || !CanFocus()) { base.OnMessage(message); return true; } _listType = GUIListControl.ListType.CONTROL_LIST; _refresh = true; } if (message.Message == GUIMessage.MessageType.GUI_MSG_LABEL_ADD) { GUIListItem newItem = message.Object as GUIListItem; if (newItem != null) { _listItems.Add(newItem); int iItemsPerPage = _columns; int iPages = iItemsPerPage == 0 ? 0 : _listItems.Count / iItemsPerPage; if (iItemsPerPage != 0) { if ((_listItems.Count % iItemsPerPage) != 0) { iPages++; } } if (_upDownControl != null) { _upDownControl.SetRange(1, iPages); _upDownControl.Value = 1; } _refresh = true; } } if (message.Message == GUIMessage.MessageType.GUI_MSG_LABEL_RESET) { Clear(); } if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEMS) { message.Param1 = _listItems.Count; } if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_SELECTED) { message.Param1 = _offset + _cursorX; } if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_SELECT) { int iItem = message.Param1; SelectItemIndex(iItem); } } if (message.Message == GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS) { foreach (GUIListItem item in _listItems) { item.Selected = false; } foreach (GUIListItem item in _listItems) { if (item.Path.Equals(message.Label, StringComparison.OrdinalIgnoreCase)) { item.Selected = true; break; } } } if (message.Message == GUIMessage.MessageType.GUI_MSG_FILE_DOWNLOADING) { foreach (GUIListItem item in _listItems) { if (item.IsRemote) { if (message.Label == item.Path) { item.IsDownloading = true; } } } } if (message.Message == GUIMessage.MessageType.GUI_MSG_FILE_DOWNLOADED) { foreach (GUIListItem item in _listItems) { if (item.IsRemote) { if (message.Label == item.Path) { item.Path = message.Label2; item.IsRemote = false; item.IsDownloading = false; } } } } if (base.OnMessage(message)) { return true; } return false; }
public override void OnAction(Action action) { switch (action.wID) { case Action.ActionType.ACTION_PAGE_UP: OnPageUp(); _refresh = true; break; case Action.ActionType.ACTION_PAGE_DOWN: OnPageDown(); _refresh = true; break; case Action.ActionType.ACTION_HOME: { _offset = 0; _cursorX = 0; _upDownControl.Value = 1; OnSelectionChanged(); _refresh = true; } break; case Action.ActionType.ACTION_END: { int iItem = _listItems.Count - 1; if (iItem >= 0) { int iPage = 1; _cursorX = 0; _offset = 0; while (iItem >= (_columns) && _columns != 0) { _offset += (_columns); iItem -= (_columns); iPage++; } if (_upDownControl != null) { _upDownControl.Value = iPage; } _cursorX = iItem; OnSelectionChanged(); } _refresh = true; } break; case Action.ActionType.ACTION_MOVE_DOWN: { _searchString = ""; OnDown(); _refresh = true; } break; case Action.ActionType.ACTION_MOVE_UP: { _searchString = ""; if (!OnUp()) { base.OnAction(action); return; } _refresh = true; } break; case Action.ActionType.ACTION_MOVE_LEFT: { _searchString = ""; OnLeft(); _refresh = true; } break; case Action.ActionType.ACTION_MOVE_RIGHT: { _searchString = ""; OnRight(); _refresh = true; } break; case Action.ActionType.ACTION_KEY_PRESSED: { if (action.m_key != null) { // Check key if (((action.m_key.KeyChar >= '0') && (action.m_key.KeyChar <= '9')) || action.m_key.KeyChar == '*' || action.m_key.KeyChar == '(' || action.m_key.KeyChar == '#' || action.m_key.KeyChar == '§') { Press((char)action.m_key.KeyChar); return; } if (action.m_key.KeyChar == (int)Keys.Back) { if (_searchString.Length > 0) { _searchString = _searchString.Remove(_searchString.Length - 1, 1); SearchItem(_searchString, SearchType.SEARCH_FIRST); } } if (((action.m_key.KeyChar >= 65) && (action.m_key.KeyChar <= 90)) || (action.m_key.KeyChar == (int)Keys.Space)) { if (action.m_key.KeyChar == (int)Keys.Space && _searchString == string.Empty) { return; } _searchString += (char)action.m_key.KeyChar; SearchItem(_searchString, SearchType.SEARCH_FIRST); } } } break; case Action.ActionType.ACTION_MOUSE_MOVE: { int id; bool focus; if (_horizontalScrollbar != null) { if (_horizontalScrollbar.HitTest((int)action.fAmount1, (int)action.fAmount2, out id, out focus)) { _horizontalScrollbar.OnAction(action); int index = (int)((_horizontalScrollbar.Percentage / 100.0f) * _listItems.Count); _offset = index; _cursorX = 0; OnSelectionChanged(); } } } break; case Action.ActionType.ACTION_MOUSE_CLICK: { int id; bool focus; bool returnClick = true; if (_horizontalScrollbar != null) { if (_horizontalScrollbar.HitTest((int)action.fAmount1, (int)action.fAmount2, out id, out focus)) { // We require mouse support for the scrollbar to respond properly. Temporarily bypass the global setting to allow // the action to work for us. bool ms = GUIGraphicsContext.MouseSupport; GUIGraphicsContext.MouseSupport = true; _horizontalScrollbar.OnAction(action); int index = (int)((_horizontalScrollbar.Percentage / 100.0f) * _listItems.Count); _offset = index; _cursorX = 0; OnSelectionChanged(); returnClick = false; GUIGraphicsContext.MouseSupport = ms; } } if (_listType == GUIListControl.ListType.CONTROL_LIST && returnClick == true) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, (int)Action.ActionType.ACTION_SELECT_ITEM, 0, null); GUIGraphicsContext.SendMessage(msg); } else { if (_upDownControl != null) { _upDownControl.OnAction(action); } } _refresh = true; } break; default: { if (_listType == GUIListControl.ListType.CONTROL_LIST) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, (int)action.wID, 0, null); GUIGraphicsContext.SendMessage(msg); _refresh = true; } else { if (_upDownControl != null) { _upDownControl.OnAction(action); } _refresh = true; } } break; } }
/// <summary> /// OnAction() method. This method gets called when there's a new action like a /// keypress or mousemove or... By overriding this method, the control can respond /// to any action /// </summary> /// <param name="action">action : contains the action</param> public override void OnAction(Action action) { base.OnAction(action); if (Focus) { if (action.wID == Action.ActionType.ACTION_MOUSE_CLICK || action.wID == Action.ActionType.ACTION_SELECT_ITEM) { // If this button does not have a "selected" setting then toggle the value. The value of _selected (when used) is // determined and set in each render pass based on a condition (value of a property or skin setting). if (_selected.Length == 0) { Selected = !Selected; } // send a message to anyone interested var message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIGraphicsContext.SendMessage(message); // If this button has a click setting then execute the setting. if (_onclick.Length != 0) { GUIPropertyManager.Parse(_onclick, GUIExpressionManager.ExpressionOptions.EVALUATE_ALWAYS); } // If this button contains scriptactions call the scriptactions. if (_application.Length != 0) { //button should start an external application, so start it var proc = new Process(); string strWorkingDir = Path.GetFullPath(_application); string strFileName = Path.GetFileName(_application); if (strFileName != null) { strWorkingDir = strWorkingDir.Substring(0, strWorkingDir.Length - (strFileName.Length + 1)); proc.StartInfo.FileName = strFileName; } proc.StartInfo.WorkingDirectory = strWorkingDir; proc.StartInfo.Arguments = _arguments; proc.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; proc.StartInfo.CreateNoWindow = true; proc.Start(); //proc.WaitForExit(); } // If this links to another window go to the window. if (_hyperLinkWindowId >= 0) { GUIWindowManager.ActivateWindow(_hyperLinkWindowId); return; } // If this button corresponds to an action generate that action. if (ActionID >= 0) { var newaction = new Action((Action.ActionType)ActionID, 0, 0); GUIGraphicsContext.OnAction(newaction); return; } // button selected. if (SubItemCount > 0) { // if we got subitems, then change the label of the control to the next //subitem SelectedItem++; if (SelectedItem >= SubItemCount) { SelectedItem = 0; } Label = (string)GetSubItem(SelectedItem); } } } }
private bool NotifyProgram(UpcomingProgram program) { lock (this) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_NOTIFY_TV_PROGRAM, 0, 0, 0, 0, 0, null); msg.Object = program; GUIGraphicsContext.SendMessage(msg); msg = null; return true; } }
public override bool HitTest(int x, int y, out int controlID, out bool focused) { switch (_buttonState) { case NextButtonStates.Activation: if (Dimmed == false) // let us check if something changed by keyboard input { _buttonState = NextButtonStates.Deaktivation; focused = !Dimmed; controlID = _defaultcontrol; return(true); } if (_imageFocused.HitTest(x, y, out controlID, out focused)) { focused = !Dimmed; controlID = _defaultcontrol; _buttonState = NextButtonStates.Outside; return(true); } return(false); case NextButtonStates.Outside: if (Dimmed == true) // let us check if something changed by keyboard input { _buttonState = NextButtonStates.Activation; focused = !Dimmed; controlID = -1; return(false); } if (!_imageFocused.HitTest(x, y, out controlID, out focused)) { _buttonState = NextButtonStates.Deaktivation; } break; case NextButtonStates.Deaktivation: if (Dimmed == true) // let us check if something changed by keyboard input { _buttonState = NextButtonStates.Activation; focused = !Dimmed; controlID = -1; return(false); } if (_imageFocused.HitTest(x, y, out controlID, out focused)) { GUIMessage msg; if (_exitcontrol == -1) { msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_LOSTFOCUS, _windowId, 0, GetFocusControlId(), 0, 0, null); } else { msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_SETFOCUS, _windowId, 0, _exitcontrol, 0, 0, null); } GUIWindow win = GUIWindowManager.GetWindow(_windowId); if (win != null) { win.OnMessage(msg); } controlID = -1; _buttonState = NextButtonStates.Outside2; return(false); } break; case NextButtonStates.Outside2: if (Dimmed == false) // let us check if something changed by keyboard input { _buttonState = NextButtonStates.Deaktivation; focused = !Dimmed; controlID = _defaultcontrol; return(true); } if (!_imageFocused.HitTest(x, y, out controlID, out focused)) { _buttonState = NextButtonStates.Activation; } return(false); } if (base.HitTest(x, y, out controlID, out focused)) { return(true); } int posX = Math.Min(_buttonX, _positionX); int posY = Math.Min(_buttonY, _positionY); int width = Math.Max(_buttonWidth, _width); int height = Math.Max(_buttonHeight, _height); focused = !Dimmed; controlID = GetFocusControlId(); if (controlID == -1) { controlID = _defaultcontrol; } if ((x >= posX) && (x <= posX + width) && (y >= posY) && (y <= posY + height)) { return(true); } return(false); }
/// <summary> /// OnAction() method. This method gets called when there's a new action like a /// keypress or mousemove or... By overriding this method, the control can respond /// to any action /// </summary> /// <param name="action">action : contains the action</param> public override void OnAction(Action action) { GUIMessage message; if (!_showSelect) { if (Focus) { if (action.wID == Action.ActionType.ACTION_MOUSE_CLICK || action.wID == Action.ActionType.ACTION_SELECT_ITEM) { // Enter selection mode _showSelect = true; // Start timer, if user doesn't select an item // or moves left/right. The control will // automatically select the current item. _ticks = DateTime.Now.Ticks; return; } } } else { if (action.wID == Action.ActionType.ACTION_SELECT_ITEM) { GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIWindowManager.SendThreadMessage(msg); return; } if (action.wID == Action.ActionType.ACTION_MOUSE_CLICK) { if (_rightSelected) { action.wID = Action.ActionType.ACTION_MOVE_RIGHT; OnAction(action); GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIWindowManager.SendThreadMessage(msg); _updateNeeded = true; return; } else if (_leftSelected) { action.wID = Action.ActionType.ACTION_MOVE_LEFT; OnAction(action); GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIWindowManager.SendThreadMessage(msg); _updateNeeded = true; return; } else { // User has selected an item, disable selection mode... _showSelect = false; // ...and send a message. message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIGraphicsContext.SendMessage(message); return; } } else if (action.wID == Action.ActionType.ACTION_MOVE_LEFT) { // Set for visual feedback _leftSelected = true; _rightSelected = false; _startFrame = 0; // Reset timer for automatically selecting // the current item. _ticks = DateTime.Now.Ticks; // Switch to previous item if (_subItemList.Count > 0) { SelectedItem--; if (SelectedItem < 0) { SelectedItem = _subItemList.Count - 1; } if (CaptionChanged != null) { CaptionChanged(this, EventArgs.Empty); } } return; } else if (action.wID == Action.ActionType.ACTION_MOVE_RIGHT) { // Set for visual feedback _rightSelected = true; _leftSelected = false; _startFrame = 0; // Reset timer for automatically selecting // the current item. _ticks = DateTime.Now.Ticks; // Switch to next item if (_subItemList.Count > 0) { SelectedItem++; if (SelectedItem >= (int)_subItemList.Count) { SelectedItem = 0; } if (CaptionChanged != null) { CaptionChanged(this, EventArgs.Empty); } } return; } if (action.wID == Action.ActionType.ACTION_MOVE_UP || action.wID == Action.ActionType.ACTION_MOVE_DOWN) { // Disable selection mode when moving up or down _showSelect = false; if (_resetSelectionAfterFocusLost) { SelectedItem = _defaultItem; } } } base.OnAction(action); if (Focus) { if (action.wID == Action.ActionType.ACTION_MOUSE_CLICK || action.wID == Action.ActionType.ACTION_SELECT_ITEM) { if (_scriptAction.Length > 0) { message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); message.Label = _scriptAction; //g_actionManager.CallScriptAction(message); // TODO! } if (_hyperLinkWindowId >= 0) { GUIWindowManager.ActivateWindow((int)_hyperLinkWindowId); return; } // button selected. // send a message message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIGraphicsContext.SendMessage(message); } } }
/// <summary> /// Method which is called if the user selected another item in the filmstrip /// This method will update the property manager with the properties of the /// newly selected item /// </summary> protected void OnSelectionChanged() { if (!IsVisible) { return; } _scrollOffset = 0.0f; _timeElapsed = 0.0f; // Reset searchstring if (_lastSearchItem != (_cursorX + _offset)) { _previousKey = (char)0; _currentKey = (char)0; _searchString = ""; } string strSelected = ""; string strSelected2 = ""; string strThumb = ""; string strIndex = ""; int item = GetSelectedItem(ref strSelected, ref strSelected2, ref strThumb, ref strIndex); if (!GUIWindowManager.IsRouted) { GUIPropertyManager.SetProperty("#selecteditem", strSelected); GUIPropertyManager.SetProperty("#selecteditem2", strSelected2); GUIPropertyManager.SetProperty("#selectedthumb", strThumb); GUIPropertyManager.SetProperty("#selectedindex", strIndex); } GUIMessage msg = new GUIMessage(GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED, WindowId, GetID, ParentID, 0, 0, null); msg.SendToTargetWindow = true; GUIGraphicsContext.SendMessage(msg); if (item >= 0 && item < _listItems.Count) { GUIListItem listitem = _listItems[item]; if (listitem != null) { listitem.ItemSelected(this); } } // ToDo: add searchstring property if (_searchString.Length > 0) { GUIPropertyManager.SetProperty("#selecteditem", "{" + _searchString.ToLowerInvariant() + "}"); } }
public override bool OnMessage(GUIMessage message) { switch (message.Message) { case GUIMessage.MessageType.GUI_MSG_ITEM_FOCUS_CHANGED: { int iControl = message.SenderControlId; if (iControl == m_Facade.GetID) { GUIListItem item = m_Facade.SelectedListItem; if (item == null || item.TVTag == null) return true; // unlinked files if (item.TVTag.GetType() == typeof(VideoLocalVM)) { VideoLocalVM vid = item.TVTag as VideoLocalVM; if (vid != null) { SetGUIProperty(GuiProperty.Utilities_UnlinkedFile_Folder, vid.ImportFolder.ImportFolderLocation); SetGUIProperty(GuiProperty.Utilities_UnlinkedFile_FileName, vid.FileName); SetGUIProperty(GuiProperty.Utilities_UnlinkedFile_Size, Utils.FormatFileSize(vid.FileSize)); SetGUIProperty(GuiProperty.Utilities_UnlinkedFile_Hash, vid.Hash); } } } } return true; default: return base.OnMessage(message); } }
/// <summary> /// OnAction() method. This method gets called when there's a new action like a /// keypress or mousemove or... By overriding this method, the control can respond /// to any action /// </summary> /// <param name="action">action : contains the action</param> public override void OnAction(Action action) { if (Focus) { switch (action.wID) { case Action.ActionType.ACTION_MOVE_DOWN: _keepLook = _keepLookOnDown; break; case Action.ActionType.ACTION_MOVE_UP: _keepLook = _keepLookOnUp; break; case Action.ActionType.ACTION_MOVE_LEFT: _keepLook = _keepLookOnLeft; break; case Action.ActionType.ACTION_MOVE_RIGHT: _keepLook = _keepLookOnRight; break; } } base.OnAction(action); if (Focus) { if (action.wID == Action.ActionType.ACTION_MOUSE_CLICK || action.wID == Action.ActionType.ACTION_SELECT_ITEM) { // If this button has a click setting then execute the setting. if (_onclick.Length != 0) { GUIPropertyManager.Parse(_onclick, GUIExpressionManager.ExpressionOptions.EVALUATE_ALWAYS); } if (ContextMenu != null) { DoContextMenu(); return; } // If this button contains scriptactions call the scriptactions. if (_application.Length != 0) { //button should start an external application, so start it Process proc = new Process(); string workingFolder = Path.GetFullPath(_application); string fileName = Path.GetFileName(_application); if (fileName != null) { workingFolder = workingFolder.Substring(0, workingFolder.Length - (fileName.Length + 1)); proc.StartInfo.FileName = fileName; } proc.StartInfo.WorkingDirectory = workingFolder; proc.StartInfo.Arguments = _arguments; proc.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; proc.StartInfo.CreateNoWindow = true; proc.Start(); //proc.WaitForExit(); } // If this links to another window go to the window. if (HyperLink >= 0) { if (_hyperLinkParameter != null && !_hyperLinkParameter.Equals("")) { // The link also contains a parameter that we want to pass to the plugin GUIWindowManager.ActivateWindow(HyperLink, GUIPropertyManager.Parse(_hyperLinkParameter), !_addToHistory); } else { GUIWindowManager.ActivateWindow(HyperLink, !_addToHistory); } return; } // If this button corresponds to an action generate that action. if (ActionID >= 0) { Action newaction = new Action((Action.ActionType)ActionID, 0, 0); GUIGraphicsContext.OnAction(newaction); return; } // button selected. if (SubItemCount > 0) { // if we got subitems, then change the label of the control to the next //subitem SelectedItem++; if (SelectedItem >= SubItemCount) { SelectedItem = 0; } Label = (string)GetSubItem(SelectedItem); } // send a message to anyone interested var message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIGraphicsContext.SendMessage(message); } } }
public override bool OnMessage(GUIMessage message) { if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_DEINIT) { ResetCurrentScheduleAndProgram(); initialProgram = null; } else if (message.Message == GUIMessage.MessageType.GUI_MSG_WINDOW_INIT) { RecordingIntervalValues.Clear(); //Fill the list with all available pre & post intervals RecordingIntervalValues.Add(0); RecordingIntervalValues.Add(1); RecordingIntervalValues.Add(3); RecordingIntervalValues.Add(5); RecordingIntervalValues.Add(10); RecordingIntervalValues.Add(15); RecordingIntervalValues.Add(30); RecordingIntervalValues.Add(45); RecordingIntervalValues.Add(60); RecordingIntervalValues.Add(90); TvBusinessLayer layer = new TvBusinessLayer(); _preRec = 0; _postRec = 0; int.TryParse(layer.GetSetting("preRecordInterval", "7").Value, out _preRec); int.TryParse(layer.GetSetting("postRecordInterval", "10").Value, out _postRec); if (!RecordingIntervalValues.Contains(_preRec)) { RecordingIntervalValues.Add(_preRec); } if (!RecordingIntervalValues.Contains(_postRec)) { RecordingIntervalValues.Add(_postRec); } // sort the list to get the values in correct order if _preRec and/or _postRec were added RecordingIntervalValues.Sort(); } return base.OnMessage(message); }
/// <summary> /// Renders the control. /// </summary> public override void Render(float timePassed) { if (GUIGraphicsContext.EditMode == false) { if (!IsVisible) { base.Render(timePassed); return; } } if (Focus) { _showSelect = true; } else { _showSelect = false; } // Are we in selection mode if (_showSelect) { // Yes, render the select control // render background, left and right arrow _imageBackground.Render(timePassed); long dwTextColor = Focus ? _textColor : _textColorNoFocus; // User has moved left... if (_leftSelected) { // ...render focused arrow _startFrame++; if (_autoHide && _startFrame >= 25) { _startFrame = 0; _leftSelected = false; GUIMessage message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIWindowManager.SendThreadMessage(message); _updateNeeded = true; } _imageLeftFocus.Render(timePassed); // If we are moving left // render item text as disabled dwTextColor = _disabledColor; } else { // Render none focused arrow _imageLeft.Render(timePassed); } // User has moved right... if (_rightSelected) { // ...render focused arrow _startFrame++; if (_autoHide && _startFrame >= 25) { _startFrame = 0; _rightSelected = false; GUIMessage message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED, WindowId, GetID, ParentID, 0, 0, null); GUIWindowManager.SendThreadMessage(message); _updateNeeded = true; } _imageRightFocus.Render(timePassed); // If we are moving right // render item text as disabled dwTextColor = _disabledColor; } else { // Render none focused arrow _imageRight.Render(timePassed); } // Render text if a current item is available if (SelectedItem >= 0 && null != _font && SelectedItem < _subItemList.Count) { _labelControl.FontName = _font.FontName; if (_textAlignment == Alignment.ALIGN_RIGHT) { _labelControl.SetPosition(_positionX + _width - _imageLeft.Width - _textOffsetX, _textOffsetY + _positionY); } else { _labelControl.SetPosition(_positionX + _imageLeft.Width + _textOffsetX, _textOffsetY + _positionY); } _labelControl.TextColor = dwTextColor; _labelControl.TextAlignment = _textAlignment; _labelControl.Label = (string)_subItemList[SelectedItem]; _labelControl.Width = _width - (_imageRight.Width + _imageLeft.Width + _textOffsetX); _labelControl.Render(timePassed); } /* * // Select current item, if user doesn't * // move left or right for 1.5 sec. * long dwTicksSpan=DateTime.Now.Ticks-_ticks; * dwTicksSpan/=10000; * if ((float)(dwTicksSpan/1000)>0.8f) * { * // User hasn't moved disable selection mode... * _showSelect=false; * * // ...and send a thread message. * // (Sending a message with SendMessage * // can result in a GPF.) * GUIMessage message = new GUIMessage(GUIMessage.MessageType.GUI_MSG_CLICKED,WindowId,GetID, ParentID ,0,0,null); * GUIWindowManager.SendThreadMessage(message); * _updateNeeded=true; * } */ } // if (_showSelect) else { // No, render a normal button if (!IsVisible) { base.Render(timePassed); return; } if (Focus) { /* * int dwAlphaCounter = _frameCounter+2; * int dwAlphaChannel; * if ((dwAlphaCounter%128)>=64) * dwAlphaChannel = dwAlphaCounter%64; * else * dwAlphaChannel = 63-(dwAlphaCounter%64); * * dwAlphaChannel += 192; * SetAlpha(dwAlphaChannel ); * _imageFocused.IsVisible=true; * _imageNonFocused.IsVisible=false; * _frameCounter++;*/ _imageFocused.Render(timePassed); } else { //SetAlpha(0xff); _imageNonFocused.Render(timePassed); } if (_label != null && _label.Length > 0 && _font != null) { _labelControl.FontName = _font.FontName; if (_textAlignment == Alignment.ALIGN_RIGHT) { _labelControl.SetPosition(_positionX + _width - _textOffsetX2, _textOffsetY2 + _positionY); } else { _labelControl.SetPosition(_textOffsetX2 + _positionX, _textOffsetY2 + _positionY); } if (Disabled || _subItemList.Count == 0) { _labelControl.TextColor = _disabledColor; } else { _labelControl.TextColor = Focus ? _textColor : _textColorNoFocus; } _labelControl.TextAlignment = _textAlignment; _labelControl.Label = _label; _labelControl.Render(timePassed); } } base.Render(timePassed); }