Mercurial > repos > public > sbplib
diff +util/ReplaceableString.m @ 167:15baeb35f74e feature/grids
Merge in changes from default.
author | Jonatan Werpers <jonatan@werpers.com> |
---|---|
date | Tue, 23 Feb 2016 13:25:43 +0100 |
parents | 26e047194383 |
children | af3bd542d550 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/+util/ReplaceableString.m Tue Feb 23 13:25:43 2016 +0100 @@ -0,0 +1,50 @@ +classdef ReplaceableString < handle + properties + n + fmt + param + end + + methods + function obj = ReplaceableString(fmt, varargin) + default_arg('fmt', ''); + obj.n = 0; + + obj.setFormat(fmt); + obj.param = varargin; + end + + function setFormat(obj, fmt) + obj.fmt = fmt; + end + + function appendFormat(obj, fmt) + obj.fmt = [obj.fmt, fmt]; + end + + function update(obj, fmt, varargin) + obj.setFormat(fmt); + obj.param = varargin; + + obj.display(); + end + + function updateParam(obj, varargin) + obj.param = varargin; + obj.display(); + end + + function display(obj) + reverseStr = repmat(sprintf('\b'), 1, obj.n); + newStr = padStr(sprintf(obj.fmt, obj.param{:}),obj.n); + fprintf([reverseStr, newStr]); + + obj.n = length(newStr); + end + end + +end + +function b = padStr(a, n) + b = sprintf('%-*s', n, a); +end