void LibASS::setOSDStyle() { if (!osd_style) return; osd_style->ScaleX = osd_style->ScaleY = 1; readStyle("OSD", osd_style); }
void refreshStyle(void) { if (false == engine_running) return; readStyle(); setmetrics(); sendToAll(MSGID_REFRESH); }
/*! Zmena stylu na plain*/ void MainWindow::on_actionPlain_activated() { scene->readStyles("Plain"); createConfig("Plain"); readConfig(); readStyle(lastUsedStyle); //nacteni fontu pro hlavni okno changeFont(); }
void startEngine(void) { //dbg_printf("Started skinner engine"); readSettings(); set_log_window(); if (engine_running) return; if (false == make_exclusion_list()) return; if (false == load_dll()) { free_exclusion_list(); return; } bbSkinMsg = RegisterWindowMessage(BBLEANSKIN_WINDOWMSG); // save sys-colors setTTC(SAVE_3DC); // save the normal SystemParameter settings, window metrics, etc. ncm_save.cbSize = sizeof(NONCLIENTMETRICS); SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof ncm_save, &ncm_save, 0); ZeroMemory(&ncm_prev, sizeof(NONCLIENTMETRICS)); // read styles for skin readStyle(); // possibly set sys-colors setTTC(APPLY_3DC); // set the system wide window metrics according to style metrics setmetrics(); // set the hook EntryFunc(ENGINE_SETHOOKS, lpvMem); engine_running = true; // now apply to open windows if (applyToOpen) sendToAll(MSGID_LOAD); //write_bin(); }
void LibASS::setASSStyle() { if (!ass_sub_track) return; if (!hasASSData) { readStyle("Subtitles", &ass_sub_track->styles[0]); return; } bool colorsAndBorders, marginsAndAlignment, fontsAndSpacing; if (settings.get("ApplyToASS/ApplyToASS").toBool()) { colorsAndBorders = settings.get("ApplyToASS/ColorsAndBorders").toBool(); marginsAndAlignment = settings.get("ApplyToASS/MarginsAndAlignment").toBool(); fontsAndSpacing = settings.get("ApplyToASS/FontsAndSpacing").toBool(); overridePlayRes = settings.get("ApplyToASS/OverridePlayRes").toBool(); } else colorsAndBorders = marginsAndAlignment = fontsAndSpacing = overridePlayRes = false; if (!ass_sub_styles_copy.size()) //tworzenie kopii za pierwszym razem { if (!colorsAndBorders && !marginsAndAlignment && !fontsAndSpacing) //nie ma nic do zastosowania return; for (int i = 0; i < ass_sub_track->n_styles; i++) { ASS_Style *style = new ASS_Style; memcpy(style, &ass_sub_track->styles[i], sizeof(ASS_Style)); style->Name = NULL; if (ass_sub_track->styles[i].FontName) style->FontName = strdup(ass_sub_track->styles[i].FontName); else style->FontName = NULL; ass_sub_styles_copy += style; } } if (ass_sub_track->n_styles != ass_sub_styles_copy.size()) return; for (int i = 0; i < ass_sub_track->n_styles; i++) { ASS_Style &style = ass_sub_track->styles[i]; if (colorsAndBorders) { style.PrimaryColour = assColorFromQColor(settings.get("Subtitles/TextColor").value< QColor >()); style.SecondaryColour = assColorFromQColor(settings.get("Subtitles/TextColor").value< QColor >(), true); style.OutlineColour = assColorFromQColor(settings.get("Subtitles/OutlineColor").value< QColor >()); style.BackColour = assColorFromQColor(settings.get("Subtitles/ShadowColor").value< QColor >()); style.BorderStyle = 1; style.Outline = settings.get("Subtitles/Outline").toDouble(); style.Shadow = settings.get("Subtitles/Shadow").toDouble(); } else { style.PrimaryColour = ass_sub_styles_copy[i]->PrimaryColour; style.SecondaryColour = ass_sub_styles_copy[i]->SecondaryColour; style.OutlineColour = ass_sub_styles_copy[i]->OutlineColour; style.BackColour = ass_sub_styles_copy[i]->BackColour; style.BorderStyle = ass_sub_styles_copy[i]->BorderStyle; style.Outline = ass_sub_styles_copy[i]->Outline; style.Shadow = ass_sub_styles_copy[i]->Shadow; } if (marginsAndAlignment) { style.MarginL = settings.get("Subtitles/LeftMargin").toInt(); style.MarginR = settings.get("Subtitles/RightMargin").toInt(); style.MarginV = settings.get("Subtitles/VMargin").toInt(); style.Alignment = toASSAlignment(settings.get("Subtitles/Alignment").toInt()); style.Angle = 0; } else { style.MarginL = ass_sub_styles_copy[i]->MarginL; style.MarginR = ass_sub_styles_copy[i]->MarginR; style.MarginV = ass_sub_styles_copy[i]->MarginV; style.Alignment = ass_sub_styles_copy[i]->Alignment; style.Angle = ass_sub_styles_copy[i]->Angle; } if (style.FontName) free(style.FontName); if (fontsAndSpacing) { style.FontName = strdup(settings.get("Subtitles/FontName").toString().toUtf8().data()); style.FontSize = settings.get("Subtitles/FontSize").toInt(); style.Spacing = settings.get("Subtitles/Linespace").toDouble(); style.ScaleX = style.ScaleY = 1; style.Bold = style.Italic = style.Underline = style.StrikeOut = 0; } else { if (ass_sub_styles_copy[i]->FontName) style.FontName = strdup(ass_sub_styles_copy[i]->FontName); else style.FontName = NULL; style.FontSize = ass_sub_styles_copy[i]->FontSize; style.Spacing = ass_sub_styles_copy[i]->Spacing; style.ScaleX = ass_sub_styles_copy[i]->ScaleX; style.ScaleY = ass_sub_styles_copy[i]->ScaleY; style.Bold = ass_sub_styles_copy[i]->Bold; style.Italic = ass_sub_styles_copy[i]->Italic; style.Underline = ass_sub_styles_copy[i]->Underline; style.StrikeOut = ass_sub_styles_copy[i]->StrikeOut; } } }
/*! Nastaveni stylu jako pri poslednim ukonceni */ void MainWindow::setLastStyle(){ readConfig(); //nacteni stylu z konfiguracniho souboru readStyle(lastUsedStyle); //nacteni fontu pro hlavni okno changeFont(); scene->readStyles(lastUsedStyle); //nastaveni stylu pro vykreslovaci okno }