From 6783a9ac57b660e435917fbb6736873b8b05b02d Mon Sep 17 00:00:00 2001 From: Helge Norberg Date: Thu, 9 Mar 2017 18:18:54 +0100 Subject: [PATCH] [psd] #561 Added support for centered and right justified text. --- CHANGELOG | 2 ++ modules/psd/psd_scene_producer.cpp | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 82782149c..f0e1de6b1 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -89,6 +89,8 @@ Producers template. o Color producer: + Now has support for gradients. + o PSD producer: + + Added support for centered and right justified text. Mixer ----- diff --git a/modules/psd/psd_scene_producer.cpp b/modules/psd/psd_scene_producer.cpp index 34492161e..cf1662268 100644 --- a/modules/psd/psd_scene_producer.cpp +++ b/modules/psd/psd_scene_producer.cpp @@ -461,6 +461,19 @@ spl::shared_ptr create_psd_scene_producer(const core::fram //adjustment_y = metrics.bearingY; layer_producer = text_producer; scene_layer = ¤t.scene()->create_layer(spl::make_shared_ptr(layer_producer), static_cast(psd_layer->text_pos().x) + adjustment_x, static_cast(psd_layer->text_pos().y) + adjustment_y, layer_name); + + int justification = psd_layer->text_data().get(L"EngineDict.ParagraphRun.RunArray..ParagraphSheet.Properties.Justification", 0); + + switch (justification) + { + case 1: // Right + scene_layer->anchor.x = text_producer.get()->pixel_constraints().width; + break; + case 2: // Center + scene_layer->anchor.x = text_producer.get()->pixel_constraints().width / 2.0; + break; + } + text_producers_by_layer_name.push_back(std::make_pair(layer_name, text_producer)); } else -- 2.39.2