void OnGUI() { GUIStyle newStyle = new GUIStyle(); newStyle.alignment = TextAnchor.MiddleCenter; newStyle.normal.textColor = defaultColor; Rect guiRect; foreach (GUIInfo info in guiInfos) { newStyle.fontSize = (int)info.fontSize; Vector2 pos = new Vector2(info.posX * Screen.width / 100f, (100 - info.posY) * Screen.height / 100f); guiRect = new Rect(pos.x, pos.y, 0, 0); GUI.Box(guiRect, info.text, newStyle); } for (int i = 0; i < options.Length; i++) { GUIInfo info = options[i]; Vector2 pos = new Vector2(info.posX * Screen.width / 100f, (100 - info.posY) * Screen.height / 100f); guiRect = new Rect(pos.x, pos.y, 0, 0); if (optionNum != i) { newStyle.normal.textColor = defaultColor; newStyle.fontSize = (int)info.fontSize; } else { newStyle.normal.textColor = selectedColor; newStyle.fontSize = (int)info.fontSize + 2; } GUI.Box(guiRect, info.text, newStyle); } HandleInput(); }
// Use this for initialization void Start () { data = DataScript.data; player = PlayerDataScript.playerData; guiInfo = GUIInfo.guiInfo; }
/// <summary> /// 4. 게임 실행중 한번만 실행됨 /// </summary> public void Start() { MyLog.LogMessage("Start", string.Format("{0:0.000} ", stopwatch.Elapsed.ToString())); #if DebugLilly GUIInfo.GetGameInfo(); #endif }
protected override void OnGUI() { float nowAlpha; if (alphaValue > 0f) { nowAlpha = getNowAlpha(); float pixelRatio = (mainCamera.orthographicSize * 2) / mainCamera.pixelHeight; style.alignment = TextAnchor.UpperCenter; style.normal.textColor = new Color(1, 1, 1, nowAlpha); Rect guiRect; GUIInfo elem = guiInfos[activeText]; style.fontSize = (int)(elem.fontSize / pixelRatio); Vector3 screenPoint = getScreenPoint(elem.posX, elem.posY); guiRect = new Rect(screenPoint.x, Screen.height - (screenPoint.y), 0, 0); GUI.Box(guiRect, elem.text, style); } }
private static void InitXML() { #pragma warning disable 0618 WWW www = new WWW(PathManager.FileBasePath() + "/Editor/CMD/TPackageInfo.xml"); while (!www.isDone) { } if (string.IsNullOrEmpty(www.error)) { XmlDocument XmlDoc = new XmlDocument(); XmlDoc.LoadXml(www.text); XmlNodeList soundBankList = XmlDoc.GetElementsByTagName("Item"); InfoList = new List <GUIInfo>(); foreach (XmlNode node in soundBankList) { GUIInfo info = new GUIInfo(node.Attributes["In"].Value, node.Attributes["Name"].Value, node.Attributes["Out"].Value); InfoList.Add(info); } } else { Log.Error(www.error); } }
/// <summary> /// Adds a result to the MultiInfoBool cache /// </summary> /// <param name="info">the GUIInfo object(condition)</param> /// <param name="result">result of the condition</param> private static void AddMultiInfoBoolResult(GUIInfo info, bool result) { lock (lockCache) { m_cacheMultiInfoBoolResults[info] = result; } }
/// <summary> /// Adds (links) a property to the given MultiInfoBool condition /// </summary> /// <param name="info">the GUIInfo object(condition)</param> /// <param name="property"></param> private static void AddMultiBoolInfoProperty(GUIInfo info, string property) { if (property == null || property.IndexOf('#') == -1) return; lock (lockCache) { HashSet<GUIInfo> set = null; if (!m_cacheMultiInfoBoolProperties.TryGetValue(property, out set)) { set = new HashSet<GUIInfo>(); set.Add(info); m_cacheMultiInfoBoolProperties[property] = set; m_cacheMultiInfoBoolPropertiesLookup[info.m_data1] = property; } else { if (!set.Contains(info)) { set.Add(info); } } } }
/// \brief Examines the multi information sent and returns true or false accordingly. private static bool GetMultiInfoBool(GUIInfo info, int dwContextWindow) { bool bReturn = false; if (IsCachedMultiInfoBoolResult(info, out bReturn)) { return bReturn; } int condition = Math.Abs(info.m_info); switch (condition) { case SKIN_BOOL: bReturn = SkinSettings.GetSkinBool(info.m_data1); break; case STRING_EQUALS: case STRING_STARTS: case STRING_CONTAINS: case SKIN_STRING: if (info.m_data2 != 0) { string prop1 = ""; string prop1Name = GetMultiBoolInfoProperty(info.m_data1); if (string.IsNullOrEmpty(prop1Name)) { prop1Name = SkinSettings.GetSkinName(info.m_data1); prop1 = SkinSettings.GetSkinString(info.m_data1); } else { prop1 = GUIPropertyManager.GetProperty(prop1Name); } string prop2 = m_stringParameters[info.m_data2]; string value1 = GUIPropertyManager.Parse(prop1).Trim().ToLowerInvariant(); string value2 = GUIPropertyManager.Parse(prop2).Trim().ToLowerInvariant(); if ((condition == STRING_EQUALS) || (condition == SKIN_STRING)) { bReturn = (value1 == value2); } else if (condition == STRING_STARTS) { bReturn = value1.StartsWith(value2); } else { bReturn = value1.Contains(value2); } bReturn = (info.m_info < 0) ? !bReturn : bReturn; AddMultiBoolInfoProperty(info, prop1Name); AddMultiBoolInfoProperty(info, prop2); // Do not cache the result for skin settings. The results change based on user interactions. if (condition != SKIN_STRING) { AddMultiInfoBoolResult(info, bReturn); } } else { string skinProperty = ""; string skinPropertyName = GetMultiBoolInfoProperty(info.m_data1); if (string.IsNullOrEmpty(skinPropertyName)) { skinPropertyName = SkinSettings.GetSkinName(info.m_data1); skinProperty = SkinSettings.GetSkinString(info.m_data1); } else { skinProperty = GUIPropertyManager.GetProperty(skinPropertyName); } bReturn = (GUIPropertyManager.Parse(skinProperty).Length != 0); bReturn = (info.m_info < 0) ? !bReturn : bReturn; AddMultiBoolInfoProperty(info, skinPropertyName); AddMultiInfoBoolResult(info, bReturn); } return bReturn; case SKIN_THEME: if (info.m_data2 != 0) { string prop1 = GUIThemeManager.CurrentTheme; string prop2 = m_stringParameters[info.m_data2]; string value1 = GUIPropertyManager.Parse(prop1).Trim().ToLowerInvariant(); string value2 = GUIPropertyManager.Parse(prop2).Trim().ToLowerInvariant(); bReturn = (value1 == value2); } break; case CONTROL_GROUP_HAS_FOCUS: // GUIWindow win = GUIWindowManager.GetWindow(dwContextWindow); // if (win == null) win = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); // if (win != null) // bReturn = win.ControlGroupHasFocus(info.m_data1, info.m_data2); bReturn = false; break; case PLUGIN_IS_ENABLED: bReturn = PluginManager.IsPluginNameEnabled2(info.m_stringData); break; case CONTROL_HAS_TEXT: GUIWindow pWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); if (pWindow != null) { // Note: This'll only work for unique id's GUILabelControl control = pWindow.GetControl(info.m_data1) as GUILabelControl; if (control != null) { bReturn = (control.TextWidth > 0); } else { GUIFadeLabel control2 = pWindow.GetControl(info.m_data1) as GUIFadeLabel; if (control2 != null) { bReturn = control2.HasText; } else { GUITextControl control3 = pWindow.GetControl(info.m_data1) as GUITextControl; if (control3 != null) { bReturn = control3.HasText; } else { GUITextScrollUpControl control4 = pWindow.GetControl(info.m_data1) as GUITextScrollUpControl; if (control4 != null) { // SE - does not work //bReturn = control4.SubItemCount > 0; bReturn = control4.HasText; } } } } } break; case CONTROL_HAS_THUMB: GUIWindow tWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); if (tWindow != null) { // Note: This'll only work for unique id's GUIImage control = tWindow.GetControl(info.m_data1) as GUIImage; if (control != null) { bReturn = (control.TextureHeight > 0 && control.TextureWidth > 0); } } break; case CONTROL_IS_VISIBLE: GUIWindow vWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); if (vWindow != null) { // Note: This'll only work for unique id's GUIControl control = vWindow.GetControl(info.m_data1); if (control != null) { bReturn = control.Visible; } } break; case CONTROL_HAS_FOCUS: GUIWindow fWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); if (fWindow != null) { bReturn = (fWindow.GetFocusControlId() == info.m_data1); } break; case BUTTON_SCROLLER_HAS_ICON: /* GUIWindow pWindow = GUIWindowManager.GetWindow(dwContextWindow); if (null==pWindow) pWindow = GUIWindowManager.GetWindow(GUIWindowManager.ActiveWindow); if (pWindow!=null) { GUIControl *pControl = (GUIControl *)pWindow.GetControl(pWindow.GetFocusedControl()); if (pControl && pControl.GetControlType() == GUIControl::GUIControl_BUTTONBAR) bReturn = ((CGUIButtonScroller *)pControl).GetActiveButtonID() == info.m_data1; } */ return false; case SYSTEM_DATE_IS_BETWEEN: { if (IsTimeForRefresh()) { string startDate = SkinSettings.GetSkinString(info.m_data1); string endDate = SkinSettings.GetSkinString(info.m_data2); var dateRange = new DateRange(startDate, endDate); bReturn = dateRange.IsInRange(DateTime.Now); LastReturnValues[info] = bReturn; break; } LastReturnValues.TryGetValue(info, out bReturn); break; } case SYSTEM_TIME_IS_BETWEEN: { if (IsTimeForRefresh()) { string startDate = SkinSettings.GetSkinString(info.m_data1); string endDate = SkinSettings.GetSkinString(info.m_data2); var timeRange = new TimeRange(startDate, endDate); bReturn = timeRange.IsInRange(DateTime.Now); LastReturnValues[info] = bReturn; break; } LastReturnValues.TryGetValue(info, out bReturn); break; } case WINDOW_NEXT: bReturn = (info.m_data1 == m_nextWindowID); break; case WINDOW_PREVIOUS: bReturn = (info.m_data1 == m_prevWindowID); break; case WINDOW_IS_VISIBLE: bReturn = GUIWindowManager.ActiveWindow == (info.m_data1); break; case WINDOW_IS_TOPMOST: bReturn = GUIWindowManager.ActiveWindow == (info.m_data1); break; case SYSTEM_HAS_ALARM: bReturn = false; //g_alarmClock.hasAlarm(m_stringParameters[info.m_data1]); break; } return (info.m_info < 0) ? !bReturn : bReturn; }
/// <summary> /// Examines the multi information sent and returns the string value. /// </summary> /// <param name="info"></param> /// <param name="dwContextWindow"></param> /// <returns></returns> private static string GetMultiInfoString(GUIInfo info, int dwContextWindow) { string strReturn = ""; int condition = Math.Abs(info.m_info); switch (condition) { case SKIN_STRING: if (info.m_data2 != 0) { string prop1 = SkinSettings.GetSkinString(info.m_data1); strReturn = GUIPropertyManager.Parse(prop1); } break; } return strReturn; }
private static void SetMultiInfoBool(GUIInfo info, bool newValue, int dwContextWindow) { int condition = Math.Abs(info.m_info); switch (condition) { case SKIN_BOOL: SkinSettings.SetSkinBool(info.m_data1, newValue); break; } }
private static void SetMultiInfoString(GUIInfo info, string newValue, int dwContextWindow) { int condition = Math.Abs(info.m_info); switch (condition) { case SKIN_STRING: SkinSettings.SetSkinString(info.m_data1, newValue); break; } }
// Use this for initialization void Start() { data = DataScript.data; guiInfo = GUIInfo.guiInfo; }
// Use this for initialization void Start() { guiInfo = GUIInfo.guiInfo; data = DataScript.data; kingdomData = KingdomDataScript.kingdomData; }
/* ------------------------------------------------------------------------------*/ void Awake() { guiInfo = this; armyButton = new Rect( armyWindow.x, armyWindow.y, armyWindow.width / armyButtonDimensions.x, armyWindow.height / armyButtonDimensions.y ); }
// Use this for initialization void Awake() { data = DataScript.data; guiInfo = GUIInfo.guiInfo; }
/// <summary> /// Gets a value indicating whether this condition has as cached result /// </summary> /// <param name="info">the GUIInfo object(condition)</param> /// <param name="result">returns the value from cache </param> /// <returns>True if output was cached</returns> private static bool IsCachedMultiInfoBoolResult(GUIInfo info, out bool result) { result = false; lock (lockCache) { bool isCachedMultiInfoBoolResult = (m_cacheMultiInfoBoolResults.TryGetValue(info, out result)); return isCachedMultiInfoBoolResult; } }
public static int TranslateSingleString(string strCondition) { if (strCondition.Length == 0) { return 0; } string strTest = strCondition; strTest = strTest.ToLowerInvariant(); strTest = strTest.TrimStart(new char[] {' '}); strTest = strTest.TrimEnd(new char[] {' '}); if (strTest.Length == 0) { return 0; } bool bNegate = strTest[0] == '!'; int ret = 0; string strCategory = ""; if (bNegate) { strTest = strTest.Remove(0, 1); } // translate conditions... if (strTest == "false" || strTest == "no" || strTest == "off" || strTest == "disabled") { ret = SYSTEM_ALWAYS_FALSE; } else if (strTest == "true" || strTest == "yes" || strTest == "on" || strTest == "enabled") { ret = SYSTEM_ALWAYS_TRUE; } else { strCategory = strTest.Substring(0, strTest.IndexOf(".")); } if (strCategory == "topbar") { if (strTest == "topbar.focused") { ret = TOPBAR_HAS_FOCUS; } else if (strTest == "topbar.visible") { ret = TOPBAR_IS_VISIBLE; } } else if (strCategory == "player") { if (strTest == "player.hasmedia") { ret = PLAYER_HAS_MEDIA; } else if (strTest == "player.hasaudio") { ret = PLAYER_HAS_AUDIO; } else if (strTest == "player.hasvideo") { ret = PLAYER_HAS_VIDEO; } else if (strTest == "player.playing") { ret = PLAYER_PLAYING; } else if (strTest == "player.paused") { ret = PLAYER_PAUSED; } else if (strTest == "player.rewinding") { ret = PLAYER_REWINDING; } else if (strTest == "player.forwarding") { ret = PLAYER_FORWARDING; } else if (strTest == "player.rewinding2x") { ret = PLAYER_REWINDING_2x; } else if (strTest == "player.rewinding4x") { ret = PLAYER_REWINDING_4x; } else if (strTest == "player.rewinding8x") { ret = PLAYER_REWINDING_8x; } else if (strTest == "player.rewinding16x") { ret = PLAYER_REWINDING_16x; } else if (strTest == "player.rewinding32x") { ret = PLAYER_REWINDING_32x; } else if (strTest == "player.forwarding2x") { ret = PLAYER_FORWARDING_2x; } else if (strTest == "player.forwarding4x") { ret = PLAYER_FORWARDING_4x; } else if (strTest == "player.forwarding8x") { ret = PLAYER_FORWARDING_8x; } else if (strTest == "player.forwarding16x") { ret = PLAYER_FORWARDING_16x; } else if (strTest == "player.forwarding32x") { ret = PLAYER_FORWARDING_32x; } else if (strTest == "player.canrecord") { ret = PLAYER_CAN_RECORD; } else if (strTest == "player.recording") { ret = PLAYER_RECORDING; } else if (strTest == "player.displayafterseek") { ret = PLAYER_DISPLAY_AFTER_SEEK; } else if (strTest == "player.caching") { ret = PLAYER_CACHING; } else if (strTest == "player.seekbar") { ret = PLAYER_SEEKBAR; } else if (strTest == "player.seektime") { ret = PLAYER_SEEKTIME; } else if (strTest == "player.progress") { ret = PLAYER_PROGRESS; } else if (strTest == "player.seeking") { ret = PLAYER_SEEKING; } else if (strTest == "player.showtime") { ret = PLAYER_SHOWTIME; } else if (strTest == "player.showcodec") { ret = PLAYER_SHOWCODEC; } else if (strTest == "player.showinfo") { ret = PLAYER_SHOWINFO; } else if (strTest == "player.time") { ret = PLAYER_TIME; } else if (strTest == "player.timeremaining") { ret = PLAYER_TIME_REMAINING; } else if (strTest == "player.duration") { ret = PLAYER_DURATION; } else if (strTest == "player.volume") { ret = PLAYER_VOLUME; } else if (strTest == "player.muted") { ret = PLAYER_MUTED; } else if (strTest == "player.hasduration") { ret = PLAYER_HASDURATION; } } else if (strCategory == "system") { if (strTest == "system.date") { ret = SYSTEM_DATE; } else if (strTest.Substring(0, 21) == "system.date.isbetween") { String withoutBlanks = strTest.Replace(" ", String.Empty); int param1 = SkinSettings.TranslateSkinString(withoutBlanks.Substring(22, 5)); int param2 = SkinSettings.TranslateSkinString(withoutBlanks.Substring(28, 5)); return AddMultiInfo(new GUIInfo(bNegate ? -SYSTEM_DATE_IS_BETWEEN : SYSTEM_DATE_IS_BETWEEN, param1, param2)); } else if (strTest == "system.time") { ret = SYSTEM_TIME; } else if (strTest.Substring(0, 21) == "system.time.isbetween") { String withoutBlanks = strTest.Replace(" ", String.Empty); int param1 = SkinSettings.TranslateSkinString(withoutBlanks.Substring(22, 5)); int param2 = SkinSettings.TranslateSkinString(withoutBlanks.Substring(28, 5)); var guiInfo = new GUIInfo(bNegate ? -SYSTEM_TIME_IS_BETWEEN : SYSTEM_TIME_IS_BETWEEN, param1, param2); int index = AddMultiInfo(guiInfo); if (!LastReturnValues.ContainsKey(m_multiInfo[index - MULTI_INFO_START])) LastReturnValues.Add(m_multiInfo[index - MULTI_INFO_START], false); return index; } else if (strTest == "system.cputemperature") { ret = SYSTEM_CPU_TEMPERATURE; } else if (strTest == "system.gputemperature") { ret = SYSTEM_GPU_TEMPERATURE; } else if (strTest == "system.fanspeed") { ret = SYSTEM_FAN_SPEED; } else if (strTest == "system.freespace(c)") { ret = SYSTEM_FREE_SPACE_C; } else if (strTest == "system.freespace(e)") { ret = SYSTEM_FREE_SPACE_E; } else if (strTest == "system.freespace(f)") { ret = SYSTEM_FREE_SPACE_F; } else if (strTest == "system.freespace(g)") { ret = SYSTEM_FREE_SPACE_G; } else if (strTest == "system.buildversion") { ret = SYSTEM_BUILD_VERSION; } else if (strTest == "system.builddate") { ret = SYSTEM_BUILD_DATE; } else if (strTest == "system.hasnetwork") { ret = SYSTEM_ETHERNET_LINK_ACTIVE; } else if (strTest == "system.fps") { ret = SYSTEM_FPS; } else if (strTest == "system.kaiconnected") { ret = SYSTEM_KAI_CONNECTED; } else if (strTest == "system.kaienabled") { ret = SYSTEM_KAI_ENABLED; } else if (strTest == "system.hasmediadvd") { ret = SYSTEM_MEDIA_DVD; } else if (strTest == "system.dvdready") { ret = SYSTEM_DVDREADY; } else if (strTest == "system.trayopen") { ret = SYSTEM_TRAYOPEN; } else if (strTest == "system.autodetection") { ret = SYSTEM_AUTODETECTION; } else if (strTest == "system.freememory") { ret = SYSTEM_FREE_MEMORY; } else if (strTest == "system.screenmode") { ret = SYSTEM_SCREEN_MODE; } else if (strTest == "system.screenwidth") { ret = SYSTEM_SCREEN_WIDTH; } else if (strTest == "system.screenheight") { ret = SYSTEM_SCREEN_HEIGHT; } else if (strTest == "system.currentwindow") { ret = SYSTEM_CURRENT_WINDOW; } else if (strTest == "system.currentcontrol") { ret = SYSTEM_CURRENT_CONTROL; } else if (strTest == "system.xboxnickname") { ret = SYSTEM_XBOX_NICKNAME; } else if (strTest == "system.dvdlabel") { ret = SYSTEM_DVD_LABEL; } else if (strTest == "system.haslocks") { ret = SYSTEM_HASLOCKS; } else if (strTest == "system.hasloginscreen") { ret = SYSTEM_HAS_LOGINSCREEN; } else if (strTest == "system.ismaster") { ret = SYSTEM_ISMASTER; } else if (strTest == "system.internetstate") { ret = SYSTEM_INTERNET_STATE; } else if (strTest == "system.loggedon") { ret = SYSTEM_LOGGEDON; } else if (strTest.Substring(0, 16) == "system.idletime(") { int time = Int32.Parse((strTest.Substring(16, strTest.Length - 17))); if (time > SYSTEM_IDLE_TIME_FINISH - SYSTEM_IDLE_TIME_START) { time = SYSTEM_IDLE_TIME_FINISH - SYSTEM_IDLE_TIME_START; } if (time > 0) { ret = SYSTEM_IDLE_TIME_START + time; } } else if (strTest.Substring(0, 16) == "system.hddsmart(") { i_SmartRequest = Int32.Parse((strTest.Substring(16, strTest.Length - 17))); if (i_SmartRequest <= 0) { i_SmartRequest = 17; //falling back to HDD temp } ret = SYSTEM_HDD_SMART; } else if (strTest.Substring(0, 16) == "system.hasalarm(") { return AddMultiInfo(new GUIInfo(bNegate ? -SYSTEM_HAS_ALARM : SYSTEM_HAS_ALARM, ConditionalStringParameter(strTest.Substring(16, strTest.Length - 17)), 0)); } //else if (strTest.Substring(0,16)=="system.alarmpos(") else if (strTest == "system.alarmpos") { ret = SYSTEM_ALARM_POS; } else if (strTest == "system.profilename") { ret = SYSTEM_PROFILENAME; } else if (strTest == "system.profilethumb") { ret = SYSTEM_PROFILETHUMB; } } else if (strCategory == "xlinkkai") { if (strTest == "xlinkkai.username") { ret = XLINK_KAI_USERNAME; } } else if (strCategory == "lcd") { if (strTest == "lcd.playicon") { ret = LCD_PLAY_ICON; } else if (strTest == "lcd.progressbar") { ret = LCD_PROGRESS_BAR; } else if (strTest == "lcd.cputemperature") { ret = LCD_CPU_TEMPERATURE; } else if (strTest == "lcd.gputemperature") { ret = LCD_GPU_TEMPERATURE; } else if (strTest == "lcd.fanspeed") { ret = LCD_FAN_SPEED; } else if (strTest == "lcd.date") { ret = LCD_DATE; } else if (strTest == "lcd.freespace(c)") { ret = LCD_FREE_SPACE_C; } else if (strTest == "lcd.freespace(e)") { ret = LCD_FREE_SPACE_E; } else if (strTest == "lcd.freespace(f)") { ret = LCD_FREE_SPACE_F; } else if (strTest == "lcd.freespace(g)") { ret = LCD_FREE_SPACE_G; } } else if (strCategory == "network") { if (strTest == "network.ipaddress") { ret = NETWORK_IP_ADDRESS; } } else if (strCategory == "musicplayer") { if (strTest == "musicplayer.title") { ret = MUSICPLAYER_TITLE; } else if (strTest == "musicplayer.album") { ret = MUSICPLAYER_ALBUM; } else if (strTest == "musicplayer.artist") { ret = MUSICPLAYER_ARTIST; } else if (strTest == "musicplayer.year") { ret = MUSICPLAYER_YEAR; } else if (strTest == "musicplayer.genre") { ret = MUSICPLAYER_GENRE; } else if (strTest == "musicplayer.time") { ret = MUSICPLAYER_TIME; } else if (strTest == "musicplayer.timeremaining") { ret = MUSICPLAYER_TIME_REMAINING; } else if (strTest == "musicplayer.timespeed") { ret = MUSICPLAYER_TIME_SPEED; } else if (strTest == "musicplayer.tracknumber") { ret = MUSICPLAYER_TRACK_NUMBER; } else if (strTest == "musicplayer.duration") { ret = MUSICPLAYER_DURATION; } else if (strTest == "musicplayer.cover") { ret = MUSICPLAYER_COVER; } else if (strTest == "musicplayer.bitrate") { ret = MUSICPLAYER_BITRATE; } else if (strTest == "musicplayer.playlistlength") { ret = MUSICPLAYER_PLAYLISTLEN; } else if (strTest == "musicplayer.playlistposition") { ret = MUSICPLAYER_PLAYLISTPOS; } else if (strTest == "musicplayer.channels") { ret = MUSICPLAYER_CHANNELS; } else if (strTest == "musicplayer.bitspersample") { ret = MUSICPLAYER_BITSPERSAMPLE; } else if (strTest == "musicplayer.samplerate") { ret = MUSICPLAYER_SAMPLERATE; } else if (strTest == "musicplayer.codec") { ret = MUSICPLAYER_CODEC; } else if (strTest == "musicplayer.discnumber") { ret = MUSICPLAYER_DISC_NUMBER; } } else if (strCategory == "videoplayer") { if (strTest == "videoplayer.title") { ret = VIDEOPLAYER_TITLE; } else if (strTest == "videoplayer.genre") { ret = VIDEOPLAYER_GENRE; } else if (strTest == "videoplayer.director") { ret = VIDEOPLAYER_DIRECTOR; } else if (strTest == "videoplayer.year") { ret = VIDEOPLAYER_YEAR; } else if (strTest == "videoplayer.time") { ret = VIDEOPLAYER_TIME; } else if (strTest == "videoplayer.timeremaining") { ret = VIDEOPLAYER_TIME_REMAINING; } else if (strTest == "videoplayer.timespeed") { ret = VIDEOPLAYER_TIME_SPEED; } else if (strTest == "videoplayer.duration") { ret = VIDEOPLAYER_DURATION; } else if (strTest == "videoplayer.cover") { ret = VIDEOPLAYER_COVER; } else if (strTest == "videoplayer.usingoverlays") { ret = VIDEOPLAYER_USING_OVERLAYS; } else if (strTest == "videoplayer.isfullscreen") { ret = VIDEOPLAYER_ISFULLSCREEN; } else if (strTest == "videoplayer.hasmenu") { ret = VIDEOPLAYER_HASMENU; } else if (strTest == "videoplayer.playlistlength") { ret = VIDEOPLAYER_PLAYLISTLEN; } else if (strTest == "videoplayer.playlistposition") { ret = VIDEOPLAYER_PLAYLISTPOS; } } else if (strCategory == "playlist") { if (strTest == "playlist.length") { ret = PLAYLIST_LENGTH; } else if (strTest == "playlist.position") { ret = PLAYLIST_POSITION; } else if (strTest == "playlist.random") { ret = PLAYLIST_RANDOM; } else if (strTest == "playlist.repeat") { ret = PLAYLIST_REPEAT; } else if (strTest == "playlist.israndom") { ret = PLAYLIST_ISRANDOM; } else if (strTest == "playlist.isrepeat") { ret = PLAYLIST_ISREPEAT; } else if (strTest == "playlist.isrepeatone") { ret = PLAYLIST_ISREPEATONE; } } else if (strCategory == "musicpartymode") { if (strTest == "musicpartymode.enabled") { ret = MUSICPM_ENABLED; } else if (strTest == "musicpartymode.songsplayed") { ret = MUSICPM_SONGSPLAYED; } else if (strTest == "musicpartymode.matchingsongs") { ret = MUSICPM_MATCHINGSONGS; } else if (strTest == "musicpartymode.matchingsongspicked") { ret = MUSICPM_MATCHINGSONGSPICKED; } else if (strTest == "musicpartymode.matchingsongsleft") { ret = MUSICPM_MATCHINGSONGSLEFT; } else if (strTest == "musicpartymode.relaxedsongspicked") { ret = MUSICPM_RELAXEDSONGSPICKED; } else if (strTest == "musicpartymode.randomsongspicked") { ret = MUSICPM_RANDOMSONGSPICKED; } } else if (strCategory.StartsWith("container")) { //000000000011111111111222222222233333333334444444444 //012345678900123456789012345678901234567890123456789 //Container.ListItem(1).Icon //Listitem( int id = 0; if (strCategory.Length > 10) { Int32.TryParse(strCategory.Substring(10), out id); } string info = strTest.Substring(10); if (info.StartsWith("listitem")) { int offset = 0; string sid = info.Substring(9); int p = sid.IndexOf(")"); sid = sid.Substring(0, p); Int32.TryParse(sid, out offset); ret = TranslateListItem(info.Substring(info.IndexOf(".") + 1)); if (offset != 0 || id != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -ret : ret, id, offset)); } } else if (info == "folderthumb") { ret = CONTAINER_FOLDERTHUMB; } else if (info == "folderpath") { ret = CONTAINER_FOLDERPATH; } else if (info == "onnext") { ret = CONTAINER_ON_NEXT; } else if (info == "onprevious") { ret = CONTAINER_ON_PREVIOUS; } else if (info.StartsWith("content(")) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTAINER_CONTENT : CONTAINER_CONTENT, ConditionalStringParameter(info.Substring(8, info.Length - 9)), 0)); } else if (info == "hasthumb") { ret = CONTAINER_HAS_THUMB; } else if (info.StartsWith("sort(")) { //SORT_METHOD sort = SORT_METHOD_NONE; //string method = info.Substring(5, info.Length - 6); //if (method.Equals("songrating")) sort = SORT_METHOD_SONG_RATING; //if (sort != SORT_METHOD_NONE) // return AddMultiInfo(new GUIInfo(bNegate ? -CONTAINER_SORT_METHOD : CONTAINER_SORT_METHOD, sort)); } else if (id != 0 && info.StartsWith("hasfocus(")) { int itemID; string sid = info.Substring(9); int p = sid.IndexOf(")"); sid = sid.Substring(0, p); Int32.TryParse(sid, out itemID); return AddMultiInfo(new GUIInfo(bNegate ? -CONTAINER_HAS_FOCUS : CONTAINER_HAS_FOCUS, id, itemID)); } if (id != 0 && (ret == CONTAINER_ON_NEXT || ret == CONTAINER_ON_PREVIOUS)) { return AddMultiInfo(new GUIInfo(bNegate ? -ret : ret, id)); } } else if (strCategory == "listitem") { if (strTest == "listitem.thumb") { ret = LISTITEM_THUMB; } else if (strTest == "listitem.icon") { ret = LISTITEM_ICON; } else if (strTest == "listitem.label") { ret = LISTITEM_LABEL; } else if (strTest == "listitem.title") { ret = LISTITEM_TITLE; } else if (strTest == "listitem.tracknumber") { ret = LISTITEM_TRACKNUMBER; } else if (strTest == "listitem.artist") { ret = LISTITEM_ARTIST; } else if (strTest == "listitem.album") { ret = LISTITEM_ALBUM; } else if (strTest == "listitem.year") { ret = LISTITEM_YEAR; } else if (strTest == "listitem.genre") { ret = LISTITEM_GENRE; } else if (strTest == "listitem.director") { ret = LISTITEM_DIRECTOR; } } else if (strCategory == "visualisation") { if (strTest == "visualisation.locked") { ret = VISUALISATION_LOCKED; } else if (strTest == "visualisation.preset") { ret = VISUALISATION_PRESET; } else if (strTest == "visualisation.name") { ret = VISUALISATION_NAME; } else if (strTest == "visualisation.enabled") { ret = VISUALISATION_ENABLED; } } else if (strCategory == "skin" || strCategory == "string") { // string.equals(val1, val2) will check the equality of val1 to val2. // string.equals(val1) will return true if val1 has a length > 0 if (strTest.Substring(0, 14) == "string.equals(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] {' '}); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] {' '}); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(14, pos - 14)); int compareString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_EQUALS : STRING_EQUALS, skinOffset, compareString)); } skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(14, strTestKeepCase.Length - 15)); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_EQUALS : STRING_EQUALS, skinOffset)); } else if (strTest.Substring(0, 16) == "string.contains(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] {' '}); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] {' '}); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(16, pos - 16)); int compareString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_CONTAINS : STRING_CONTAINS, skinOffset, compareString)); } skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(16, strTestKeepCase.Length - 17)); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_CONTAINS : STRING_CONTAINS, skinOffset)); } else if (strTest.Substring(0, 14) == "string.starts(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] {' '}); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] {' '}); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(14, pos - 14)); int compareString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_STARTS : STRING_STARTS, skinOffset, compareString)); } skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(14, strTestKeepCase.Length - 15)); return AddMultiInfo(new GUIInfo(bNegate ? -STRING_STARTS : STRING_STARTS, skinOffset)); } else if (strTest.Substring(0, 16) == "skin.hassetting(") { // this condition uses GUIPropertyManager, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset = SkinSettings.TranslateSkinBool(strTestKeepCase.Substring(16, strTestKeepCase.Length - 17), SkinSettings.Kind.PERSISTENT); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_BOOL : SKIN_BOOL, skinOffset)); } else if (strTest.Substring(0, 12) == "skin.string(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(12, pos - 12), SkinSettings.Kind.PERSISTENT); int compareString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_STRING : SKIN_STRING, skinOffset, compareString)); } skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(12, strTestKeepCase.Length - 13), SkinSettings.Kind.PERSISTENT); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_STRING : SKIN_STRING, skinOffset)); } else if (strTest.Substring(0, 15) == "skin.setstring(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(15, pos - 15), SkinSettings.Kind.PERSISTENT); int valueString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_STRING : SKIN_STRING, skinOffset, valueString)); } skinOffset = SkinSettings.TranslateSkinString(strTestKeepCase.Substring(15, strTestKeepCase.Length - 16), SkinSettings.Kind.PERSISTENT); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_STRING : SKIN_STRING, skinOffset)); } else if (strTest.Substring(0, 13) == "skin.setbool(") { // this condition uses GUIPropertyManager.Parse, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset; int pos = strTestKeepCase.IndexOf(","); if (pos >= 0) { skinOffset = SkinSettings.TranslateSkinBool(strTestKeepCase.Substring(13, pos - 13), SkinSettings.Kind.PERSISTENT); int valueString = ConditionalStringParameter(strTestKeepCase.Substring(pos + 1, strTestKeepCase.Length - (pos + 2))); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_BOOL : SKIN_BOOL, skinOffset, valueString)); } skinOffset = SkinSettings.TranslateSkinBool(strTestKeepCase.Substring(13, strTestKeepCase.Length - 14), SkinSettings.Kind.PERSISTENT); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_BOOL : SKIN_BOOL, skinOffset)); } else if (strTest.Substring(0, 19) == "skin.togglesetting(") { // this condition uses GUIPropertyManager, which is case sensitive. string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int skinOffset = SkinSettings.TranslateSkinBool(strTestKeepCase.Substring(19, strTestKeepCase.Length - 20), SkinSettings.Kind.PERSISTENT); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_BOOL : SKIN_BOOL, skinOffset)); } else if (strTest.Substring(0, 14) == "skin.hastheme(") { string strTestKeepCase = strCondition; strTestKeepCase = strTestKeepCase.TrimStart(new char[] { ' ' }); strTestKeepCase = strTestKeepCase.TrimEnd(new char[] { ' ' }); if (bNegate) { strTestKeepCase = strTestKeepCase.Remove(0, 1); } int compareString = ConditionalStringParameter(strTestKeepCase.Substring(14, strTestKeepCase.Length - 15)); return AddMultiInfo(new GUIInfo(bNegate ? -SKIN_THEME : SKIN_THEME, 0, compareString)); } } else if (strCategory == "window") { if (strTest == "window.isosdvisible") { ret = WINDOW_IS_OSD_VISIBLE; } else if (strTest == "window.ispauseosdvisible") { ret = WINDOW_IS_PAUSE_OSD_VISIBLE; } else if (strTest.Substring(0, 16) == "window.isactive(") { int winID = TranslateWindowString(strTest.Substring(16, strTest.Length - 17)); if (winID != (int)GUIWindow.Window.WINDOW_INVALID) { ret = winID; } } else if (strTest == "window.ismedia") { return WINDOW_IS_MEDIA; } else if (strTest.Substring(0, 17) == "window.istopmost(") { int winID = TranslateWindowString(strTest.Substring(17, strTest.Length - 18)); if (winID != (int)GUIWindow.Window.WINDOW_INVALID) { return AddMultiInfo(new GUIInfo(bNegate ? -WINDOW_IS_TOPMOST : WINDOW_IS_TOPMOST, winID, 0)); } } else if (strTest.Substring(0, 17) == "window.isvisible(") { int winID = TranslateWindowString(strTest.Substring(17, strTest.Length - 18)); if (winID != (int)GUIWindow.Window.WINDOW_INVALID) { return AddMultiInfo(new GUIInfo(bNegate ? -WINDOW_IS_VISIBLE : WINDOW_IS_VISIBLE, winID, 0)); } } else if (strTest.Substring(0, 16) == "window.previous(") { int winID = TranslateWindowString(strTest.Substring(16, strTest.Length - 17)); if (winID != (int)GUIWindow.Window.WINDOW_INVALID) { return AddMultiInfo(new GUIInfo(bNegate ? -WINDOW_PREVIOUS : WINDOW_PREVIOUS, winID, 0)); } } else if (strTest.Substring(0, 12) == "window.next(") { int winID = TranslateWindowString(strTest.Substring(12, strTest.Length - 13)); if (winID != (int)GUIWindow.Window.WINDOW_INVALID) { return AddMultiInfo(new GUIInfo(bNegate ? -WINDOW_NEXT : WINDOW_NEXT, winID, 0)); } } } else if (strCategory == "plugin") { if (strTest.Substring(0, 17) == "plugin.isenabled(") { // use original condition, because plugin Name is case sensitive string pluginName = strCondition; pluginName = pluginName.TrimStart(new char[] {' '}); pluginName = pluginName.TrimEnd(new char[] {' '}); if (bNegate) { pluginName = pluginName.Remove(0, 1); } pluginName = pluginName.Substring(17, strTest.Length - 18); if (pluginName != string.Empty) { return AddMultiInfo(new GUIInfo(bNegate ? -PLUGIN_IS_ENABLED : PLUGIN_IS_ENABLED, pluginName)); } } } else if (strCategory == "control") { if (strTest.Substring(0, 17) == "control.hasfocus(") { int controlID = Int32.Parse(strTest.Substring(17, strTest.Length - 18)); if (controlID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTROL_HAS_FOCUS : CONTROL_HAS_FOCUS, controlID, 0)); } } else if (strTest.Substring(0, 18) == "control.isvisible(") { int controlID = Int32.Parse(strTest.Substring(18, strTest.Length - 19)); if (controlID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTROL_IS_VISIBLE : CONTROL_IS_VISIBLE, controlID, 0)); } } else if (strTest.Substring(0, 17) == "control.hasthumb(") { int controlID = Int32.Parse(strTest.Substring(17, strTest.Length - 18)); if (controlID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTROL_HAS_THUMB : CONTROL_HAS_THUMB, controlID, 0)); } } else if (strTest.Substring(0, 16) == "control.hastext(") { int controlID = Int32.Parse(strTest.Substring(16, strTest.Length - 17)); if (controlID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTROL_HAS_TEXT : CONTROL_HAS_TEXT, controlID, 0)); } } } else if (strCategory == "facadeview") { if (strTest == "facadeview.album") { ret = FACADEVIEW_ALBUM; } else if (strTest == "facadeview.filmstrip") { ret = FACADEVIEW_FILMSTRIP; } else if (strTest == "facadeview.largeicons") { ret = FACADEVIEW_LARGEICONS; } else if (strTest == "facadeview.list") { ret = FACADEVIEW_LIST; } else if (strTest == "facadeview.playlist") { ret = FACADEVIEW_PLAYLIST; } else if (strTest == "facadeview.smallicons") { ret = FACADEVIEW_SMALLICONS; } else if (strTest == "facadeview.coverflow") { ret = FACADEVIEW_COVERFLOW; } } else if (strTest.Length >= 13 && strTest.Substring(0, 13) == "controlgroup(") { int groupPos = strTest.IndexOf(")"); int groupID = Int32.Parse(strTest.Substring(13, groupPos - 13)); int controlID = 0; int controlPos = strTest.IndexOf(".hasfocus("); if (controlPos > 0) { controlID = Int32.Parse(strTest.Substring(controlPos + 10, strTest.Length - controlPos - 11)); } if (groupID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -CONTROL_GROUP_HAS_FOCUS : CONTROL_GROUP_HAS_FOCUS, groupID, controlID)); } } else if (strTest.Length >= 24 && strTest.Substring(0, 24) == "buttonscroller.hasfocus(") { int controlID = Int32.Parse(strTest.Substring(24, strTest.Length - 24)); if (controlID != 0) { return AddMultiInfo(new GUIInfo(bNegate ? -BUTTON_SCROLLER_HAS_ICON : BUTTON_SCROLLER_HAS_ICON, controlID, 0)); } } return bNegate ? -ret : ret; }
private static int AddMultiInfo(GUIInfo info) { // check to see if we have this info already for (int i = 0; i < m_multiInfo.Count; i++) { if (m_multiInfo[i].Equals(info)) { return i + MULTI_INFO_START; } } // return the new offset m_multiInfo.Add(info); return m_multiInfo.Count + MULTI_INFO_START - 1; }