[Gambas-user] My "Gambas developer mode"

Benoît Minisini g4mba5 at gmail.com
Tue Mar 9 14:07:12 CET 2021


Le 09/03/2021 à 13:44, Bruce Steers a écrit :
> 
> 
> On Mon, 8 Mar 2021 at 19:43, Benoît Minisini <g4mba5 at gmail.com 
> <mailto:g4mba5 at gmail.com>> wrote:
> 
>     Le 08/03/2021 à 13:56, Bruce Steers a écrit :
>      > Ever considered anything like this for us Ben?
>      >
>      > That Not-so-safe thing i have done to load custom controls in
>     gambas IDE
>      > (that I am finding a VERY useful feature) I have now hidden
>     behind an
>      > unlock feature a bit like an Android phone hides it's developer
>     options
>      > till you click "Build Info" a few times.
>      >
>      > With plenty of warnings about the risks of the functions we
>     should be
>      > aware of.
>      >
>      > Here's a screengrab of me enabling/disabling the feature.
>      > http://bws.org.uk/images/screenrecord-2021-03-07_20.51.37.mp4
>     <http://bws.org.uk/images/screenrecord-2021-03-07_20.51.37.mp4>
>      > <http://bws.org.uk/images/screenrecord-2021-03-07_20.51.37.mp4
>     <http://bws.org.uk/images/screenrecord-2021-03-07_20.51.37.mp4>>
>      >
>      > I'm sure there's a number of other things that possibly come with
>     risk
>      > but great benefit you would not want to enable for general use
>     but could
>      > be handy for gambas developers.
>      >
>      > Well wishes
>      > BruceS
>      >
> 
>     Mmm... No. If I want to test something, I put in the development
>     version. Once in the stable version, there should be no reason to hide
>     an IDE feature.
> 
> 
> Aaw Ben you're so ,, er ,,  correct :)
> And so is gambas because of it (and that is great)
> 
> But I have a great reason to hide a feature , because it's useful for 
> advanced users but simply put "a hack" and causes unexpected behaviour ;)
> 
> Like adding custom controls, the only problem i have come across doing 
> this is if in the IDE (using the same window) i load the custom control 
> project and then load another project then go back to the control 
> project without closing gambas it gets a load error, I just have to be 
> sure to close gambas or re-load the project into a new window.  (it's a 
> downside i'm happy to deal with to see my controls in the dasigner)
> 
> So my thinking is about "unsafe" features.
> I assume getting custom controls to load/unload in the designer safely 
> is no simple task that would take quite a re-write of some stuff.
> So there some workarounds for the not so timid.
> I mean , I'm using a development environment that says "USE AT YOUR OWN 
> RISK" in the title. I really don't mind using some features that have 
> "USE AT YOUR OWN RISK" in the title too ;)
> 
> Maybe not call it "Developer options" or "Tweaks" but call it "Hacks" 
> shamelessly , features that cannot be corrctly implemented but can still 
> be incredibly useful, if understood the risks ;)
> 
> The benefits of loading a custom control for me are huge, being able to 
> change alignment / autoresize / etc and see the changes react in the 
> designer, I do not think i would have understood what Me.Design meant so 
> quick if i was not seeing things in the IDE.
> 
> Just seeing a custom controls icon and its name in a box in the IDE is 
> just soo , nah , me no like, but properly implementing something like 
> this i think would be well beyond my understanding of the gambas internals.
> 
> but i think I see what you are saying.  This "hidden feature" thing i 
> propose is how you see gambas-master compared to stable, but I was not 
> thinking this feature i propose of adding controls would or could be a 
> gambas addition and only a workaround/hack was possible. hence hide it , 
> make someone read some docs/warnings before using it.
> But a bonus for someone like me who has reached a level of hand building 
> controls. and understanding how adding them to gambas is great but has a 
> down side.
> 
> Much respect
> BruceS
> 
> 
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
> 

As I said before, I can't add that to the IDE because it is not possible 
to make it reliable.

What I can imagine to make custom controls drawable in the IDE in a 
reliable way would be creating another hidden component side by side to 
the main component (for example "<component name>.draw") that just 
implement the drawing routines of the main component controls, and that 
offer them to the IDE throw a specific method ("DrawControl" for 
example) of a specific class ("_<component name normalized>_Draw" for 
example).

But then you will have to duplicate the drawing code, and adapt it to 
the IDE context: you will receive the values of the property from the 
IDE, you won't actually create the control, and so on...

I won't make that now anyway.

Regards,

-- 
Benoît Minisini


More information about the User mailing list