From: dirk Date: Sun, 26 Jan 2014 21:27:10 +0000 (+0000) Subject: Added textDirection and textGravity to Magick++. X-Git-Tag: 7.0.1-0~2776 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d37417692d7a7040aa854e493723e92fac1e3ae6;p=imagemagick Added textDirection and textGravity to Magick++. --- diff --git a/Magick++/lib/Image.cpp b/Magick++/lib/Image.cpp index cc0d526a7..f9a3d7ba9 100644 --- a/Magick++/lib/Image.cpp +++ b/Magick++/lib/Image.cpp @@ -1457,6 +1457,17 @@ size_t Magick::Image::subRange(void) const return(constOptions()->subRange()); } +void Magick::Image::textDirection(DirectionType direction_) +{ + modifyImage(); + options()->textDirection(direction_); +} + +Magick::DirectionType Magick::Image::textDirection(void) const +{ + return(constOptions()->textDirection()); +} + void Magick::Image::textEncoding(const std::string &encoding_) { modifyImage(); @@ -1468,6 +1479,17 @@ std::string Magick::Image::textEncoding(void) const return(constOptions()->textEncoding()); } +void Magick::Image::textGravity(GravityType gravity_) +{ + modifyImage(); + options()->textGravity(gravity_); +} + +Magick::GravityType Magick::Image::textGravity(void) const +{ + return(constOptions()->textGravity()); +} + void Magick::Image::textInterlineSpacing(double spacing_) { modifyImage(); diff --git a/Magick++/lib/Magick++/Image.h b/Magick++/lib/Magick++/Image.h index e3166a974..8f93f7d39 100644 --- a/Magick++/lib/Magick++/Image.h +++ b/Magick++/lib/Magick++/Image.h @@ -461,10 +461,18 @@ namespace Magick void subRange(const size_t subRange_); size_t subRange(void) const; + // Render text right-to-left or left-to-right. + void textDirection(DirectionType direction_); + DirectionType textDirection() const; + // Annotation text encoding (e.g. "UTF-16") void textEncoding(const std::string &encoding_); std::string textEncoding(void) const; + // Text gravity. + void textGravity(GravityType gravity_); + GravityType textGravity() const; + // Text inter-line spacing void textInterlineSpacing(double spacing_); double textInterlineSpacing(void) const; diff --git a/Magick++/lib/Magick++/Include.h b/Magick++/lib/Magick++/Include.h index 35ece4edb..888cdd6ea 100644 --- a/Magick++/lib/Magick++/Include.h +++ b/Magick++/lib/Magick++/Include.h @@ -459,6 +459,12 @@ namespace Magick using MagickCore::OverlineDecoration; using MagickCore::LineThroughDecoration; + // Direction types + using MagickCore::DirectionType; + using MagickCore::UndefinedDirection; + using MagickCore::RightToLeftDirection; + using MagickCore::LeftToRightDirection; + // Dispose methods using MagickCore::DisposeType; using MagickCore::UndefinedDispose; diff --git a/Magick++/lib/Magick++/Options.h b/Magick++/lib/Magick++/Options.h index 43690ecbe..4af26bb06 100644 --- a/Magick++/lib/Magick++/Options.h +++ b/Magick++/lib/Magick++/Options.h @@ -231,10 +231,18 @@ namespace Magick void subRange(size_t subRange_); size_t subRange(void) const; + // Render text right-to-left or left-to-right. + void textDirection(DirectionType direction_); + DirectionType textDirection() const; + // Annotation text encoding (e.g. "UTF-16") void textEncoding(const std::string &encoding_); std::string textEncoding(void) const; + // Text gravity. + void textGravity(GravityType gravity_); + GravityType textGravity() const; + // Text inter-line spacing void textInterlineSpacing(double spacing_); double textInterlineSpacing(void) const; diff --git a/Magick++/lib/Options.cpp b/Magick++/lib/Options.cpp index 84ebe79b4..8475c9231 100644 --- a/Magick++/lib/Options.cpp +++ b/Magick++/lib/Options.cpp @@ -625,19 +625,39 @@ size_t Magick::Options::subRange(void) const return(_imageInfo->number_scenes); } +void Magick::Options::textDirection(DirectionType direction_) +{ + _drawInfo->direction=direction_; +} + +Magick::DirectionType Magick::Options::textDirection() const +{ + return(_drawInfo->direction); +} + void Magick::Options::textEncoding(const std::string &encoding_) { - CloneString(&_drawInfo->encoding, encoding_.c_str()); + CloneString(&_drawInfo->encoding,encoding_.c_str()); } std::string Magick::Options::textEncoding(void) const { if (_drawInfo->encoding && *_drawInfo->encoding) return(std::string(_drawInfo->encoding)); - + return(std::string()); } +void Magick::Options::textGravity(GravityType gravity_) +{ + _drawInfo->gravity=gravity_; +} + +Magick::GravityType Magick::Options::textGravity() const +{ + return(_drawInfo->gravity); +} + void Magick::Options::textInterlineSpacing(double spacing_) { _drawInfo->interline_spacing=spacing_;