My problem is not whether Morphic can do this , it can and its not even any more complex than your Spec code, all I have to do is override the keyStroke: message, my question was on the formating of the input data, I assumed since I see several diffirent inputs fiels in pharo that do some kind of filtering that there was a some kind of formating message or class but now I see its all custom made.I dont use Spec because I am making custom looking gui and I need fine control over it, every little detail counts. And yes I really dont like its design because most of it , does not even remotely look like those 3 lines of code that you just posted. As I said in the past , I have made a single GUI with Spec, my Nireas GUI was built with it and I did not like the experience at all.
"Delphi has no text editor in the VCL. TEdit is just a wrapper.
And that means that you cannot change the storage structure or
do line breaking.
And while VCL was great in 1995, there was essentially no development
of it after 2000. The Cocoa/Next GUI APIs are much better than Delphi's,
but they needed much more hardware to run smoothly."In any case thanks for the suggestions I thought I was missing something here, but looks like I will need to roll up my sleeves and make my own GUI API for custom look guis at least one that will cover my needs.The guy that made Delphi moved from Borland to Microsoft where he made C# and .NET and he ported many of his VCL ideas to Winforms. Borland sold Delphi to another company since they decided to give up on software development tools field. Delphi continued with the new company but since the new company has nowhere near the resources of Borland the decided to embrace .NET while keeping VCL around purely for compatibility reasons. Now Delphi works on .NET which follow a very similar design to Delphi anyway and for the first time Delphi can run on all 3 OSes through Mono which the company does actively support.�� Delphi still has around a million users since its still big on Windoom with a lot of legacy code built with it as it was always the only competing product to VB. Delphi has also a open source implementation called Free Pascal and Lazarus.But all that is besides the point as I was talking GUI API design , in case of anyone wonders what I like I advise them to take a look at VCL.On Tue, Nov 10, 2015 at 9:16 PM Johan Fabry <jfabry@dcc.uchile.cl> wrote:Hi,sins you dislike Spec I cannot resist to taunt you with these 3 lines of Spec code that do what you want :-Pfield := TextInputFieldModel new��autoAccept:true;acceptBlock: [:text | field text: text asUppercase].field openWithSpecNote that the transform here is a simple asUppercase, replace that with whatever logic suits you.Spec does have its advantages :-)On Nov 10, 2015, at 16:03, Dimitris Chloupis <kilon.alios@gmail.com> wrote:I hope Bloc makes a bit more sense than Morphic, Rubric and Spec.Well my experience with other language has taught me GUI APIs are generally a nightmare to work with, the only exception to this rule was DELPHI, those guys were just awesome at GUI design. VCL was simple yet incredible flexible, I would even dare say the smalltalky thing I have used. It takes a ton of effort and expertise to get it that good.I have taken a look at rubric elemenst, they look even more messier than morphic. I can do something similar with textMorph without messing with announcers. It looks to me a bit too much to send an announcement on a key event.Anyway I will give a try at textMorph and will go from there, probably subclass it and create my own morph for time input.
"and it got cleaned :)
Stef"On Tue, Nov 10, 2015 at 7:59 PM Stephan Eggermont <stephan@stack.nl> wrote:On 10-11-15 18:16, Dimitris Chloupis wrote:
> What I want is to create a morph that has the ability to input text from
> the user that formats it automatically and allows for a limited amount of
> characters.
You might want to take a look at RubFloatingEditorBuilder.
In #buildEditor you see how to react to announcements send by the
RubScrolledTextMorph. If you do The Right Thing in whenKeystroke:
(like #setTextWith: and fixing the selection and cursor position)
you'll be able to do what you want.
Stephan
---> Save our in-boxes!��http://emailcharter.org <---
Johan Fabry �� - ����http://pleiad.cl/~jfabry
PLEIAD and RyCh labs ��- ��Computer Science��Department (DCC) ��- ��University of Chile