int CSkinAdvanced::Parse(MIOFILE& in) { char buf[256]; std::string strBuffer; while (in.fgets(buf, 256)) { if (match_tag(buf, "</advanced>")) break; else if (parse_bool(buf, "is_branded", m_bIsBranded)) continue; else if (parse_str(buf, "<application_name>", strBuffer)) { m_strApplicationName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<application_short_name>", strBuffer)) { m_strApplicationShortName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (match_tag(buf, "<application_icon>")) { m_iconApplicationIcon.Parse(in); continue; } else if (match_tag(buf, "<application_icon32>")) { m_iconApplicationIcon32.Parse(in); continue; } else if (match_tag(buf, "<application_disconnected_icon>")) { m_iconApplicationDisconnectedIcon.Parse(in); continue; } else if (match_tag(buf, "<application_snooze_icon>")) { m_iconApplicationSnoozeIcon.Parse(in); continue; } else if (parse_str(buf, "<application_logo>", strBuffer)) { if(strBuffer.length()) { wxString str = wxString( wxGetApp().GetSkinManager()->ConstructSkinPath() + wxString(strBuffer.c_str(), wxConvUTF8) ); if (boinc_file_exists(str.c_str())) { m_bitmapApplicationLogo = wxBitmap(wxImage(str.c_str(), wxBITMAP_TYPE_ANY)); } } continue; } else if (parse_str(buf, "<organization_name>", strBuffer)) { m_strOrganizationName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<organization_website>", strBuffer)) { m_strOrganizationWebsite = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<organization_help_url>", strBuffer)) { m_strOrganizationHelpUrl = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_int(buf, "<open_tab>", m_iDefaultTab)) { m_bDefaultTabSpecified = true; continue; } else if (parse_str(buf, "<exit_message>", strBuffer)) { m_strExitMessage = wxString(strBuffer.c_str(), wxConvUTF8); continue; } } InitializeDelayedValidation(); return 0; }
int CSkinWizardATAM::Parse(MIOFILE& in) { char buf[256]; std::string strBuffer; while (in.fgets(buf, 256)) { if (match_tag(buf, "</attach_to_account_manager>")) break; else if (parse_str(buf, "<account_info_message>", strBuffer)) { m_strAccountInfoMessage = wxString(strBuffer.c_str(), wxConvUTF8); continue; } } InitializeDelayedValidation(); return 0; }
int CSkinWizardATP::Parse(MIOFILE& in) { char buf[256]; std::string strBuffer; while (in.fgets(buf, 256)) { if (match_tag(buf, "</attach_to_project>")) break; else if (parse_str(buf, "<title>", strBuffer)) { m_strTitle = wxString(strBuffer.c_str(), wxConvUTF8); continue; } } InitializeDelayedValidation(); return 0; }
int CSkinWizards::Parse(MIOFILE& in) { char buf[256]; while (in.fgets(buf, 256)) { if (match_tag(buf, "</wizards>")) break; else if (match_tag(buf, "<attach_to_project>")) { m_AttachToProjectWizard.Parse(in); continue; } else if (match_tag(buf, "<attach_to_account_manager>")) { m_AttachToAccountManagerWizard.Parse(in); continue; } } InitializeDelayedValidation(); return 0; }
int CSkinSimple::Parse(MIOFILE& in) { char buf[256]; std::string strBuffer; while (in.fgets(buf, 256)) { if (match_tag(buf, "</simple>")) break; else if (match_tag(buf, "<background_image>")) { m_BackgroundImage.Parse(in); continue; } else if (match_tag(buf, "<dialog_background_image>")) { m_DialogBackgroundImage.Parse(in); continue; } else if (match_tag(buf, "<project_image>")) { m_ProjectImage.Parse(in); continue; } else if (parse_str(buf, "<static_line_color>", strBuffer)) { m_StaticLineColor = ParseColor(wxString(strBuffer.c_str(), wxConvUTF8)); continue; } else if (parse_str(buf, "<notice_alert_color>", strBuffer)) { m_NoticeAlertColor = ParseColor(wxString(strBuffer.c_str(), wxConvUTF8)); continue; } else if (match_tag(buf, "<workunit_animation_image>")) { m_WorkunitAnimationImage.Parse(in); continue; } else if (match_tag(buf, "<workunit_running_image>")) { m_WorkunitRunningImage.Parse(in); continue; } else if (match_tag(buf, "<workunit_suspended_image>")) { m_WorkunitSuspendedImage.Parse(in); continue; } else if (match_tag(buf, "<workunit_waiting_image>")) { m_WorkunitWaitingImage.Parse(in); continue; } else if (parse_int(buf, "<panel_opacity>", m_iPanelOpacity)) { continue; } } InitializeDelayedValidation(); return 0; }
int CSkinManager::Parse(MIOFILE& in, wxString strDesiredLocale) { char buf[256]; wxString strLocaleStartTag; wxString strLocaleEndTag; bool bLocaleFound = false; // Construct the start and end tags for the locale we want. strLocaleStartTag.Printf(wxT("<%s>"), strDesiredLocale.c_str()); strLocaleEndTag.Printf(wxT("</%s>"), strDesiredLocale.c_str()); // TODO: Eliminate the <en> tags: localization is no longer in skin files. // Look for the begining of the desired locale. while (in.fgets(buf, 256)) { if (match_tag(buf, (const char*)strLocaleStartTag.mb_str(wxConvUTF8))) { bLocaleFound = true; break; } } if (!bLocaleFound) return ERR_XML_PARSE; while (in.fgets(buf, 256)) { if (match_tag(buf, (const char*)strLocaleStartTag.mb_str(wxConvUTF8))) break; else if (match_tag(buf, "<simple>")) { m_SimpleSkin.Parse(in); continue; } else if (match_tag(buf, "<advanced>")) { m_AdvancedSkin.Parse(in); continue; } else if (match_tag(buf, "<wizards>")) { m_WizardsSkin.Parse(in); continue; } } InitializeDelayedValidation(); return 0; }
bool CSkinManager::ReloadSkin(wxString strSkin) { int retval = ERR_XML_PARSE; FILE* p; MIOFILE mf; // This fixes a (rare) crash bug if (strSkin.IsEmpty()) { strSkin = GetDefaultSkinName(); } // Clear out all the old stuff Clear(); // Set the default skin back to Default m_strSelectedSkin = strSkin; // TODO: Eliminate the <en> tags: localization is no longer in skin files. p = fopen((const char*)ConstructSkinFileName().mb_str(wxConvUTF8), "r"); if (p) { mf.init_file(p); retval = Parse(mf, wxT("en")); fclose(p); } if (retval && show_error_msgs) { fprintf(stderr, "Skin Manager: Failed to load skin '%s'.\n", (const char *)ConstructSkinFileName().mb_str(wxConvUTF8)); } InitializeDelayedValidation(); // Tell whichever UI elements that are loaded to reload the // skinable resources they use. wxGetApp().FireReloadSkin(); return true; }
int CSkinAdvanced::Parse(MIOFILE& in) { char buf[256]; std::string strBuffer; while (in.fgets(buf, 256)) { if (match_tag(buf, "</advanced>")) break; else if (parse_bool(buf, "is_branded", m_bIsBranded)) continue; else if (parse_str(buf, "<application_name>", strBuffer)) { m_strApplicationName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<application_short_name>", strBuffer)) { m_strApplicationShortName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (match_tag(buf, "<application_icon>")) { m_iconApplicationIcon.Parse(in); continue; } else if (match_tag(buf, "<application_icon32>")) { m_iconApplicationIcon.Parse32(in); continue; } else if (match_tag(buf, "<application_disconnected_icon>")) { m_iconApplicationDisconnectedIcon.Parse(in); continue; } else if (match_tag(buf, "<application_snooze_icon>")) { m_iconApplicationSnoozeIcon.Parse(in); continue; } else if (parse_str(buf, "<application_logo>", strBuffer)) { if(strBuffer.length()) { wxString str = wxString( wxGetApp().GetSkinManager()->ConstructSkinPath() + wxString(strBuffer.c_str(), wxConvUTF8) ); if (boinc_file_exists(str.c_str())) { wxImage img = wxImage(str.c_str(), wxBITMAP_TYPE_ANY); if (img.IsOk()) { #ifdef __WXMSW__ // TODO: Choose from multiple size images if provided, else resize the closest one if ((GetXDPIScaling() > 1.05) || (GetYDPIScaling() > 1.05)) { img.Rescale((int) (img.GetWidth()*GetXDPIScaling()), (int) (img.GetHeight()*GetYDPIScaling()), wxIMAGE_QUALITY_BILINEAR ); } #endif m_bitmapApplicationLogo = wxBitmap(img); } } } continue; } else if (parse_str(buf, "<organization_name>", strBuffer)) { m_strOrganizationName = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<organization_website>", strBuffer)) { m_strOrganizationWebsite = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_str(buf, "<organization_help_url>", strBuffer)) { m_strOrganizationHelpUrl = wxString(strBuffer.c_str(), wxConvUTF8); continue; } else if (parse_int(buf, "<open_tab>", m_iDefaultTab)) { m_bDefaultTabSpecified = true; continue; } else if (parse_str(buf, "<exit_message>", strBuffer)) { m_strExitMessage = wxString(strBuffer.c_str(), wxConvUTF8); continue; } } InitializeDelayedValidation(); return 0; }