Baseclass for Elements and Panels
Attention
The following class is only the baseclass for ImPS_Elements_$elem, not the Panel. I am debating about removing this class alltogther. See at the bottom for more information.
- class ImPS_Elements__Base($parent)
Attention
This class is not intended to be initialized directly.
- Parameters:
- $parent ([object]) - The parent class 
 
- Returns:
- set_attr($attr, $value)
- Parameters:
- $attr ([string]) - Any attribute found in - $this.Drawable
- $value ([object]) - The value to set 
 
- Returns:
- [object] - - $this
 
- get_height()
- Parameters:
- None 
- Returns:
- [int] 
 
- set_height($height)
- Parameters:
- $height ([int]) 
 
- Returns:
- [object] - - $this
 
- get_width()
- Parameters:
- None 
- Returns:
- [int] 
 
- set_width($width)
- Parameters:
- $width ([int]) 
 
- Returns:
- [object] - - $this
 
- get_text()
- Parameters:
- None 
- Returns:
- [string] 
 
- set_text($text)
- Parameters:
- $text ([string]) 
 
- Returns:
- [object] - - $this
 
- set_pos($x, $y)
- Parameters:
- $x ([int]) - The x position 
- $y ([int]) - The y position 
 
- Returns:
- [object] - - $this
 
- set_font($font)
- Parameters:
- $font ([string]) - For example: “Verdana,8,style=Regular” 
 
- Returns:
- [object] - - $this
 
The actual classes only implement getters and setters for attributes inside
$this.Drawable. Because of the way that i have to specify certain
classes as return value of type [object] instead of their actual class type,
IntelliSense is lost.
Usually getters and setters exist to restrict access to an attribute by
denying direct access and omitting a getter or setter. Since i dont control
anything inside $this.Drawable and all the attributes are public anyway,
having ImPS getters and setters for this is pretty much useless.
However, having getters and setters means, that at least with setters, i can return an instance to whatever class is calling the setter. This means we can easily chain multiple methods instead of calling them one after another.
myInstance.myMethod1().myMethod2().myMethod3()
# instead of
myInstance.myMethod1()
myInstance.myMethod2()
myInstance.myMethod3()
I am thinking about removing the getters and setters entirely to make anyone
use $this.Drawable instead. This would remove a lot of code. Not just
that but if there is a need for a helper method, i can just add it to the
Element/Panel instance (instead of this helper class) and it will have
IntelliSense. I am still not sure about this. Would it make this module
obsolete? - Comments are welcome