This commit is contained in:
2026-06-17 13:31:56 +03:00
parent d0e306118f
commit eea3c039eb
4 changed files with 1 additions and 14 deletions
-8
View File
@@ -7,41 +7,34 @@ enum class ThemeType {
}; };
struct ColorPalette { struct ColorPalette {
// Основные цвета фона
sf::Color windowBackground; sf::Color windowBackground;
sf::Color panelBackground; sf::Color panelBackground;
sf::Color bottomPanelBackground; sf::Color bottomPanelBackground;
sf::Color overlayBackground; sf::Color overlayBackground;
// Цвета текста
sf::Color textPrimary; sf::Color textPrimary;
sf::Color textSecondary; sf::Color textSecondary;
sf::Color textTertiary; sf::Color textTertiary;
sf::Color textAccent; sf::Color textAccent;
// Цвета для состояний элементов массива
sf::Color stateNormalLow; // Нижняя часть градиента для обычных элементов sf::Color stateNormalLow; // Нижняя часть градиента для обычных элементов
sf::Color stateNormalHigh; // Верхняя часть градиента для обычных элементов sf::Color stateNormalHigh; // Верхняя часть градиента для обычных элементов
sf::Color stateCompare; // Цвет для сравниваемых элементов sf::Color stateCompare; // Цвет для сравниваемых элементов
sf::Color stateSwap; // Цвет для переставляемых элементов sf::Color stateSwap; // Цвет для переставляемых элементов
sf::Color stateSorted; // Цвет для отсортированных элементов sf::Color stateSorted; // Цвет для отсортированных элементов
// Цвета UI элементов
sf::Color separator; sf::Color separator;
sf::Color histogramLow; // Нижняя часть градиента гистограммы sf::Color histogramLow; // Нижняя часть градиента гистограммы
sf::Color histogramHigh; // Верхняя часть градиента гистограммы sf::Color histogramHigh; // Верхняя часть градиента гистограммы
// Цвета для ProgressMap
sf::Color progressMapNormal; sf::Color progressMapNormal;
// Цвета для оверлеев
sf::Color overlayTitle; sf::Color overlayTitle;
sf::Color overlaySubtitle; sf::Color overlaySubtitle;
sf::Color overlaySection; sf::Color overlaySection;
sf::Color overlayBody; sf::Color overlayBody;
sf::Color overlayFooter; sf::Color overlayFooter;
// Цвета для истории
sf::Color historyTableHeader; sf::Color historyTableHeader;
sf::Color historyRowEven; sf::Color historyRowEven;
sf::Color historyRowOdd; sf::Color historyRowOdd;
@@ -50,7 +43,6 @@ struct ColorPalette {
sf::Color historySpeedFastest; sf::Color historySpeedFastest;
sf::Color historySpeedSlow; sf::Color historySpeedSlow;
// Цвета статусов
sf::Color statusFinished; sf::Color statusFinished;
sf::Color statusPlaying; sf::Color statusPlaying;
sf::Color statusPaused; sf::Color statusPaused;
-2
View File
@@ -12,13 +12,11 @@ Theme::Theme() : currentTheme_(ThemeType::DARK) {
} }
void Theme::initDarkTheme() { void Theme::initDarkTheme() {
// Основные цвета фона
darkPalette_.windowBackground = sf::Color(10, 12, 20); darkPalette_.windowBackground = sf::Color(10, 12, 20);
darkPalette_.panelBackground = sf::Color(0, 0, 0, 180); darkPalette_.panelBackground = sf::Color(0, 0, 0, 180);
darkPalette_.bottomPanelBackground = sf::Color(12, 15, 25); darkPalette_.bottomPanelBackground = sf::Color(12, 15, 25);
darkPalette_.overlayBackground = sf::Color(8, 10, 18, 230); darkPalette_.overlayBackground = sf::Color(8, 10, 18, 230);
// Цвета текста
darkPalette_.textPrimary = sf::Color::White; darkPalette_.textPrimary = sf::Color::White;
darkPalette_.textSecondary = sf::Color(220, 220, 220); darkPalette_.textSecondary = sf::Color(220, 220, 220);
darkPalette_.textTertiary = sf::Color(160, 160, 160); darkPalette_.textTertiary = sf::Color(160, 160, 160);
-1
View File
@@ -104,7 +104,6 @@ void UI::draw(sf::RenderWindow& window) {
const ColorPalette& palette = Theme::getInstance().getPalette(); const ColorPalette& palette = Theme::getInstance().getPalette();
// Обновляем цвета текста и фона при каждой отрисовке (на случай смены темы)
algorithmText_.setFillColor(palette.textPrimary); algorithmText_.setFillColor(palette.textPrimary);
timeComplexityText_.setFillColor(palette.textTertiary); timeComplexityText_.setFillColor(palette.textTertiary);
spaceComplexityText_.setFillColor(palette.textTertiary); spaceComplexityText_.setFillColor(palette.textTertiary);
+1 -3
View File
@@ -27,7 +27,7 @@ void HeapSorter::step(Array& array) {
} }
heapifyIndex_ = buildIndex_; heapifyIndex_ = buildIndex_;
phase_ = Phase::HEAPIFY_DOWN; phase_ = Phase::HEAPIFY_DOWN;
needSwap_ = false; // Используем как флаг, что мы в контексте BUILD needSwap_ = false;
} }
else if (phase_ == Phase::HEAPIFY_DOWN || phase_ == Phase::EXTRACT_HEAPIFY) { else if (phase_ == Phase::HEAPIFY_DOWN || phase_ == Phase::EXTRACT_HEAPIFY) {
leftChild_ = 2 * heapifyIndex_ + 1; leftChild_ = 2 * heapifyIndex_ + 1;
@@ -63,9 +63,7 @@ void HeapSorter::step(Array& array) {
array.incrementSwaps(); array.incrementSwaps();
heapifyIndex_ = largest_; heapifyIndex_ = largest_;
// Остаемся в текущей фазе, чтобы продолжить просеивание вниз
} else { } else {
// Элемент на своем месте, просеивание закончено
if (phase_ == Phase::HEAPIFY_DOWN) { if (phase_ == Phase::HEAPIFY_DOWN) {
buildIndex_--; buildIndex_--;
phase_ = Phase::BUILDING_HEAP; phase_ = Phase::BUILDING_HEAP;