[Gambas-user] IDE code questions - property editors

adamnt42 at ...626... adamnt42 at ...626...
Tue Oct 6 06:37:21 CEST 2015


I think this is way out there in the cosmos somewhere, but I'll ask anyway.

I am wading through the FProperty code of the IDE trying to understand how the values for properties are set (bad term) in the grid.  When I get down to CControl.GetProperty(sProp As String) I see the following (with annotations):

  Try hProp = Project.Documentation.Classes[Kind].Properties[sProp]

  If hProp Then 
    If hProp.AlwaysRead Then     <--- Question1
  
      vVal = Object.GetProperty(Control, sProp) <---- Question 2
  
...
  
    Endif
  Endif

  Return $cValue[sProp] <---- Question 3

1) I see that these are set in the CPropertyInfo class but why are some properties AlwaysRead?
2) This is messy. If a control is a custom control then it appears that this line tries to get the property value from the object whose class name  is the _DrawWith constant defined in the custom control not the actual control class?
3) I dont understand how the $cValue array is initialised nor indeed what its' intent is. Could you enlighten me?

Why all this?

I am trying to modify the IDE so that the property editor can use special popup editor forms for some extra-special property types for custom controls. In short, the goal is to have the property editor form inside the custom control component rather than in the IDE.  A "visible" example is the AngleBox class control "txtAngle" in the current IDE.  I believe this is only used(?) for the report controls.  Because we have a bunch of custom controls that have some extra-special properties, I have to continually maintain the IDE code updates because of svn differences and conflicts.

So, I have so far managed to make a minimal set of mods that allows the (local) IDE to  recognize custom properties (i.e. the extra-special ones) and use a pop-up editor that is contained within the custom control component.  The pic attached is an example to explain it better ..
(1) is a custom control, in that control I have a property 
(2) "Options" that has a custom editor. When I click on the "..." button the popup editor shown appears.
and when the Save button is clicked the property "value" is saved where I want it. All well and groovy.

In summary, I think this would be a good IDE enhancement. i.e. moving the editor for custom control extra-special properties from inside the IDE to within the custom control component itself.
So...

tia
bruce
-- 
B Bruen <adamnt42 at ...3379... (sort of)>




More information about the User mailing list