bool CGUIWindowManager::IsWindowActive(const CStdString &xmlFile, bool ignoreClosing /* = true */) const { /* 参数: 1、 返回: 1、 说明: 1、 */ CSingleLock lock(g_graphicsContext); CGUIWindow *window = GetWindow(GetActiveWindow()); if (window && URIUtils::GetFileName(window->GetProperty("xmlfile").asString()).Equals(xmlFile)) return true; // run through the dialogs for (ciDialog it = m_activeDialogs.begin(); it != m_activeDialogs.end(); ++it) { CGUIWindow *window = *it; if (URIUtils::GetFileName(window->GetProperty("xmlfile").asString()).Equals(xmlFile) && (!ignoreClosing || !window->IsAnimating(ANIM_TYPE_WINDOW_CLOSE))) return true; } return false; // window isn't active }
bool CGUIWindowManager::IsWindowActive(const std::string &xmlFile, bool ignoreClosing /* = true */) const { CSingleLock lock(g_graphicsContext); CGUIWindow *window = GetWindow(GetActiveWindow()); if (window && StringUtils::EqualsNoCase(URIUtils::GetFileName(window->GetProperty("xmlfile").asString()), xmlFile)) return true; // run through the dialogs for (const auto& window : m_activeDialogs) { if (StringUtils::EqualsNoCase(URIUtils::GetFileName(window->GetProperty("xmlfile").asString()), xmlFile) && (!ignoreClosing || !window->IsAnimating(ANIM_TYPE_WINDOW_CLOSE))) return true; } return false; // window isn't active }
bool CGUIWindowManager::IsWindowTopMost(const CStdString &xmlFile) const { CGUIWindow *topMost = GetTopMostDialog(); if (topMost && URIUtils::GetFileName(topMost->GetProperty("xmlfile").asString()).Equals(xmlFile)) return true; return false; }
bool CGUIWindowManager::IsWindowTopMost(const std::string &xmlFile) const { CGUIWindow *topMost = GetTopMostDialog(); if (topMost && StringUtils::EqualsNoCase(URIUtils::GetFileName(topMost->GetProperty("xmlfile").asString()), xmlFile)) return true; return false; }
/*! \brief Retrieve the city name for the specified location from the settings \param iLocation the location index (can be in the range [1..MAXLOCATION]) \return the city name (without the accompanying region area code) */ CStdString CWeather::GetLocation(int iLocation) { CGUIWindow* window = g_windowManager.GetWindow(WINDOW_WEATHER); CStdString setting; setting.Format("Location%i", iLocation); return window->GetProperty(setting).asString(); }
/*! \brief Retrieve the city name for the specified location from the settings \param iLocation the location index (can be in the range [1..MAXLOCATION]) \return the city name (without the accompanying region area code) */ std::string CWeather::GetLocation(int iLocation) { CGUIWindow* window = g_windowManager.GetWindow(WINDOW_WEATHER); if (window) { std::string setting = StringUtils::Format("Location%i", iLocation); return window->GetProperty(setting).asString(); } return ""; }
void CGUIWindowDebugInfo::Process(unsigned int currentTime, CDirtyRegionList &dirtyregions) { g_graphicsContext.SetRenderingResolution(g_graphicsContext.GetResInfo(), false); g_cpuInfo.getUsedPercentage(); // must call it to recalculate pct values static int yShift = 20; static int xShift = 40; static unsigned int lastShift = time(nullptr); time_t now = time(nullptr); if (now - lastShift > 10) { yShift *= -1; if (now % 5 == 0) xShift *= -1; lastShift = now; MarkDirtyRegion(); } if (!m_layout) { CGUIFont *font13 = g_fontManager.GetDefaultFont(); CGUIFont *font13border = g_fontManager.GetDefaultFont(true); if (font13) m_layout = new CGUITextLayout(font13, true, 0, font13border); } if (!m_layout) return; std::string info; if (LOG_LEVEL_DEBUG_FREEMEM <= g_advancedSettings.m_logLevel) { MEMORYSTATUSEX stat; stat.dwLength = sizeof(MEMORYSTATUSEX); GlobalMemoryStatusEx(&stat); std::string profiling = CGUIControlProfiler::IsRunning() ? " (profiling)" : ""; std::string strCores = g_cpuInfo.GetCoresUsageString(); std::string lcAppName = CCompileInfo::GetAppName(); StringUtils::ToLower(lcAppName); #if !defined(TARGET_POSIX) info = StringUtils::Format("LOG: %s%s.log\nMEM: %" PRIu64"/%" PRIu64" KB - FPS: %2.1f fps\nCPU: %s%s", CSpecialProtocol::TranslatePath("special://logpath").c_str(), lcAppName.c_str(), stat.ullAvailPhys/1024, stat.ullTotalPhys/1024, g_infoManager.GetFPS(), strCores.c_str(), profiling.c_str()); #else double dCPU = m_resourceCounter.GetCPUUsage(); std::string ucAppName = lcAppName; StringUtils::ToUpper(ucAppName); info = StringUtils::Format("LOG: %s%s.log\n" "MEM: %" PRIu64"/%" PRIu64" KB - FPS: %2.1f fps\n" "CPU: %s (CPU-%s %4.2f%%%s)", CSpecialProtocol::TranslatePath("special://logpath").c_str(), lcAppName.c_str(), stat.ullAvailPhys/1024, stat.ullTotalPhys/1024, g_infoManager.GetFPS(), strCores.c_str(), ucAppName.c_str(), dCPU, profiling.c_str()); #endif } // render the skin debug info if (g_SkinInfo->IsDebugging()) { if (!info.empty()) info += "\n"; CGUIWindow *window = g_windowManager.GetWindow(g_windowManager.GetFocusedWindow()); CGUIWindow *pointer = g_windowManager.GetWindow(WINDOW_DIALOG_POINTER); CPoint point; if (pointer) point = CPoint(pointer->GetXPosition(), pointer->GetYPosition()); if (window) { std::string windowName = CWindowTranslator::TranslateWindow(window->GetID()); if (!windowName.empty()) windowName += " (" + std::string(window->GetProperty("xmlfile").asString()) + ")"; else windowName = window->GetProperty("xmlfile").asString(); info += "Window: " + windowName + "\n"; // transform the mouse coordinates to this window's coordinates g_graphicsContext.SetScalingResolution(window->GetCoordsRes(), true); point.x *= g_graphicsContext.GetGUIScaleX(); point.y *= g_graphicsContext.GetGUIScaleY(); g_graphicsContext.SetRenderingResolution(g_graphicsContext.GetResInfo(), false); } info += StringUtils::Format("Mouse: (%d,%d) ", static_cast<int>(point.x), static_cast<int>(point.y)); if (window) { CGUIControl *control = window->GetFocusedControl(); if (control) info += StringUtils::Format("Focused: %i (%s)", control->GetID(), CGUIControlFactory::TranslateControlType(control->GetControlType()).c_str()); } } float w, h; if (m_layout->Update(info)) MarkDirtyRegion(); m_layout->GetTextExtent(w, h); float x = xShift + 0.04f * g_graphicsContext.GetWidth(); float y = yShift + 0.04f * g_graphicsContext.GetHeight(); m_renderRegion.SetRect(x, y, x+w, y+h); }
void CWeatherJob::SetFromProperties() { // Load in our tokens if necessary if (!m_localizedTokens.size()) LoadLocalizedToken(); CGUIWindow* window = g_windowManager.GetWindow(WINDOW_WEATHER); CDateTime time=CDateTime::GetCurrentDateTime(); m_info.lastUpdateTime = time.GetAsLocalizedDateTime(false, false); m_info.currentConditions = window->GetProperty("Current.Condition").asString(); m_info.currentIcon = ConstructPath(window->GetProperty("Current.OutlookIcon").asString()); LocalizeOverview(m_info.currentConditions); FormatTemperature(m_info.currentTemperature, strtol(window->GetProperty("Current.Temperature").asString().c_str(),0,10)); FormatTemperature(m_info.currentFeelsLike, strtol(window->GetProperty("Current.FeelsLike").asString().c_str(),0,10)); m_info.currentUVIndex = window->GetProperty("Current.UVIndex").asString(); LocalizeOverview(m_info.currentUVIndex); int speed = ConvertSpeed(strtol(window->GetProperty("Current.Wind").asString().c_str(),0,10)); CStdString direction = window->GetProperty("Current.WindDirection").asString(); if (direction == "CALM") m_info.currentWind = g_localizeStrings.Get(1410); else { LocalizeOverviewToken(direction); m_info.currentWind.Format(g_localizeStrings.Get(434).c_str(), direction, speed, g_langInfo.GetSpeedUnitString().c_str()); } CStdString windspeed; windspeed.Format("%i %s",speed,g_langInfo.GetSpeedUnitString().c_str()); window->SetProperty("Current.WindSpeed",windspeed); FormatTemperature(m_info.currentDewPoint, strtol(window->GetProperty("Current.DewPoint").asString().c_str(),0,10)); if (window->GetProperty("Current.Humidity").asString().empty()) m_info.currentHumidity.clear(); else m_info.currentHumidity.Format("%s%%",window->GetProperty("Current.Humidity").asString().c_str()); m_info.location = window->GetProperty("Current.Location").asString(); for (int i=0;i<NUM_DAYS;++i) { CStdString strDay; strDay.Format("Day%i.Title",i); m_info.forecast[i].m_day = window->GetProperty(strDay).asString(); LocalizeOverviewToken(m_info.forecast[i].m_day); strDay.Format("Day%i.HighTemp",i); FormatTemperature(m_info.forecast[i].m_high, strtol(window->GetProperty(strDay).asString().c_str(),0,10)); strDay.Format("Day%i.LowTemp",i); FormatTemperature(m_info.forecast[i].m_low, strtol(window->GetProperty(strDay).asString().c_str(),0,10)); strDay.Format("Day%i.OutlookIcon",i); m_info.forecast[i].m_icon = ConstructPath(window->GetProperty(strDay).asString()); strDay.Format("Day%i.Outlook",i); m_info.forecast[i].m_overview = window->GetProperty(strDay).asString(); LocalizeOverview(m_info.forecast[i].m_overview); } }
void CGUIWindowDebugInfo::Process(unsigned int currentTime, CDirtyRegionList &dirtyregions) { g_graphicsContext.SetRenderingResolution(g_graphicsContext.GetResInfo(), false); g_cpuInfo.getUsedPercentage(); // must call it to recalculate pct values static int yShift = 20; static int xShift = 40; static unsigned int lastShift = time(NULL); time_t now = time(NULL); if (now - lastShift > 10) { yShift *= -1; if (now % 5 == 0) xShift *= -1; lastShift = now; MarkDirtyRegion(); } if (!m_layout) { CGUIFont *font13 = g_fontManager.GetDefaultFont(); CGUIFont *font13border = g_fontManager.GetDefaultFont(true); if (font13) m_layout = new CGUITextLayout(font13, true, 0, font13border); } if (!m_layout) return; CStdString info; if (LOG_LEVEL_DEBUG_FREEMEM <= g_advancedSettings.m_logLevel) { MEMORYSTATUS stat; GlobalMemoryStatus(&stat); CStdString profiling = CGUIControlProfiler::IsRunning() ? " (profiling)" : ""; CStdString strCores = g_cpuInfo.GetCoresUsageString(); #if !defined(_LINUX) info.Format("LOG: %sxbmc.log\nMEM: %d/%d KB - FPS: %2.1f fps\nCPU: %s%s", g_settings.m_logFolder.c_str(), stat.dwAvailPhys/1024, stat.dwTotalPhys/1024, g_infoManager.GetFPS(), strCores.c_str(), profiling.c_str()); #else double dCPU = m_resourceCounter.GetCPUUsage(); info.Format("LOG: %sxbmc.log\nMEM: %"PRIu64"/%"PRIu64" KB - FPS: %2.1f fps\nCPU: %s (CPU-XBMC %4.2f%%%s)", g_settings.m_logFolder.c_str(), stat.dwAvailPhys/1024, stat.dwTotalPhys/1024, g_infoManager.GetFPS(), strCores.c_str(), dCPU, profiling.c_str()); #endif } // render the skin debug info if (g_SkinInfo->IsDebugging()) { if (!info.IsEmpty()) info += "\n"; CGUIWindow *window = g_windowManager.GetWindow(g_windowManager.GetFocusedWindow()); CGUIWindow *pointer = g_windowManager.GetWindow(WINDOW_DIALOG_POINTER); CPoint point; if (pointer) point = CPoint(pointer->GetXPosition(), pointer->GetYPosition()); if (window) { CStdString windowName = CButtonTranslator::TranslateWindow(window->GetID()); if (!windowName.IsEmpty()) windowName += " (" + window->GetProperty("xmlfile") + ")"; else windowName = window->GetProperty("xmlfile"); info += "Window: " + windowName + " "; // transform the mouse coordinates to this window's coordinates g_graphicsContext.SetScalingResolution(window->GetCoordsRes(), true); point.x *= g_graphicsContext.GetGUIScaleX(); point.y *= g_graphicsContext.GetGUIScaleY(); g_graphicsContext.SetRenderingResolution(g_graphicsContext.GetResInfo(), false); } info.AppendFormat("Mouse: (%d,%d) ", (int)point.x, (int)point.y); if (window) { CGUIControl *control = window->GetFocusedControl(); if (control) info.AppendFormat("Focused: %i (%s)", control->GetID(), CGUIControlFactory::TranslateControlType(control->GetControlType()).c_str()); } } float w, h; if (m_layout->Update(info)) MarkDirtyRegion(); m_layout->GetTextExtent(w, h); float x = xShift + 0.04f * g_graphicsContext.GetWidth(); float y = yShift + 0.04f * g_graphicsContext.GetHeight(); m_renderRegion.SetRect(x, y, x+w, y+h); }