[MonoDevelop] Design Time Properties for Custom Controls

Andrew York andy at brdstudio.net
Mon Jul 20 12:04:16 EDT 2009


Mr Gual,
I hope that I have not offended you as well, if I have I would ask what 
I can do to make things right. I was thinking that Monodevelop/Stetic 
has implemented most of what MS Visual Studio can do and I was hoping 
design time properties would work in a similar manner with Monodevelop.

Again if I said anything offensive an apology is there for the taking, I 
can't tell you how much I appreciate the work that has been done to 
bring .NET to Linux, Mac, etc.

Spoody Goon

Lluis Sanchez Gual wrote:
> El ds 18 de 07 de 2009 a les 21:32 +0200, en/na Matjaž Mihelič va
> escriure:
>   
>> On Sat, 2009-07-18 at 13:27 -0400, Andy York wrote:
>>     
>>> There has been a question that is very close to this one that was asked
>>> just a day or two ago, but I'm not sure if it is the same question or
>>> not. Please forgive me if I am asking the same question again.
>>>
>>> Using standard data types (string, bool, int, etc) for design time
>>> properties in custom controls in Monodevelop is easy, but I'm not sure
>>> how to use non-standard data types. For instance if I had an enum that
>>> looked like this:
>>>    
>>>     enum ImageSize
>>>     {
>>>         XLarge,
>>>         Large,
>>>         Medium,
>>>         Small,
>>>         XSmall,
>>>         None
>>>     }
>>>
>>>       
>> I would be interested in that to, but as I look into sources, stetic
>> never touches lib directly. Always over cecil, which is the biggest
>> design flaw any form editor could have.
>>     
>
> You are wrong, it is not a design flaw. Stetic can touch libs directly,
> although we are not doing it in MD for custom widgets.
>
>   
>> In this case none of property editors which aren't hardcoded are not
>> possible. No custom widget (beside the sucky ones combined in stetic,
>> and yes they do suck) can look like it should look during design time.
>> Nothing you code can be activated during design time.
>>
>> For now, I'm simply avoiding any usage of stetic as much as possible,
>> simply because it sucks as much as form editor could suck and because of
>> the fact I can work/rely more on hardcoded form.
>>     
>
> Matjaž, I feel offended by this comment, both as a developer and as a
> user of Stetic. That's a very unpolite way of talking about a form
> designer which is useful for many users. The fact that it is not useful
> for you doesn't make it useless for everybody.
>
>   
>> Make a custom widget
>> derived from DrawingArea, drop it into form. And it practically
>> disappears with height 0. And so on. Custom widgets and stetic is a big
>> NO GO. Now imagine having form populated with invisible widgets? I
>> rather write it hard way.
>>
>> Correct me if I'm wrong. You'll make me the happiest man alive if I am.
>>
>>     
>>> and we want the design time property to be set like this (or something
>>> like this):
>>>
>>>         private ImageSize _MyImageSize;
>>>         // this is where we want the design time property to be set
>>>         public ImageSize MyImageSize
>>>         {
>>>             set{_MyImageSize=value;}
>>>             get{return _MyImageSize;}
>>>         }
>>>
>>> How would we go about doing this, I know the answer is an easy one but I
>>> just can seem to find it even though I have searched quite a bit. I'm
>>> thinking that the same methods that would work for enums would work for
>>> classes but I'm not sure of that either.
>>>
>>>       
>> Solving enums would be easy (just hardcode generic Property Editor for
>> it, solving everything else is hard). Solve that and you achieved the
>> same as putting bandage on torn off limb. Form designer without ability
>> to impose new form designers? Well, reason enough to stay away from it
>> for me.
>>
>> Stetic should NOT be part of monodevelop or at least its AppDomain. It
>> should connect with remoting to it and designed to work in its own
>> window or connected with GtkSocket/GtkPlug to monodevelop window inside
>> monodevelop widget.
>>
>> It should always go down and restart on recompile with all project libs
>> loaded the hard way. Simply as that.
>>     
>
> Oh yeah, simply as that. If you have review the Stetic code you'll see
> that there is code using GtkSocket/GtkPlug, and code for running stetic
> in a separate process, which is not completed/enabled. I leave you
> wonder why, I don't feel like answering anything else from this mail.
>
>   
>> I tried to do some work on that part long ago, but car crash and time I
>> lost because of it had forced me into different needs and I simply
>> haven't got time to focus back (which I still feel a bit guilty about,
>> because I haven't kept my promises). But if you plan on working to fix
>> that. I can help. Although if I'd be in your place, I'd probably rather
>> design my own form editor, which doesn't start with flaws than try to
>> fix something which is utterly broken.
>>
>> Don't get me wrong. I LOVE monodevelop. Almost fanatically. I just hate
>> stetic which is the one part of monodevelop I'd be glad if I could get
>> rid of from my monodevelop like I can get rid of debugger.
>>
>> m.
>>
>>     
>>> Again I apologyze if this has already been asked.
>>> Spoody Goon
>>>
>>>
>>> _______________________________________________
>>> Monodevelop-list mailing list
>>> Monodevelop-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/monodevelop-list
>>>       
>> _______________________________________________
>> Monodevelop-list mailing list
>> Monodevelop-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/monodevelop-list
>>     
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/monodevelop-list/attachments/20090720/9cec12cc/attachment.html 


More information about the Monodevelop-list mailing list