/// <summary>
/// Base class for Asix Evo diagram external objects
/// / Klasa bazowa dla zewnętrznych obiektów diagramowych
/// </summary>
public partial class EvoObjectBase : UserControl, AsixEvoAddon
{
/// <summary>
/// Override to return unique EvoObject ID. The proper ID is required.
/// / Należy przeciążyć aby zwracać identyfukator obiektu. Wymagane!
/// </summary>
public virtual string EvoObjectID { get { return null; } }
/// <summary>
/// Override to return evo object description
/// / Można prtzeciążyć aby zwracać nazwę (krótki opips) obiektu
/// </summary>
public virtual string EvoObjectDescription { get { return null; } }
/// <summary>
/// Override to initialize or reset control (e.g. register variable events)
/// / Można przeciążyć aby dokonać inicjalizacji lub reinicjalizacji kontrolki
/// (n.p. rejestrowanie zdarzeń zmiennych)
/// </summary>
public virtual void Reset() { }
/// <summary>
/// Override to cleanup when control is inactive/hidden etc. (e.g. unregister variable events)
/// / Można przeciążyć aby posprzątać (n.p. wyrejestrowanie zdarzeń zemiennych)
/// </summary>
public virtual void Disconnect() { }
/// <summary>
/// Override and return true to enable transparency for object in Control mode
/// / Można przeciążyć i zwrócić true aby włączyć obsługę przeźroczystości dla
/// obiektu kontrolkowego
/// </summary>
public virtual bool EvoObjectUsesTransparency { get { return false; } }
/// <summary>
/// Specifies whether the diagram on which the object is located, is in the edit state.
/// / Określa czy diagram, na którym znajduje się obiekt, jest w stanie edycji.
/// </summary>
public bool IsEditMode { get; set; }
/// <summary>
/// Override and return true to determine if object is in OwnerDraw mode (vector, not control)
/// / Należy przeciażyć i zwrócić true aby określić że obiekt
/// jest w trybie OwnerDraw (wektorowy, nie kontrolkowy)
/// </summary>
public virtual bool OwnerDraw { get { return false; } }
/// <summary>
/// Overide to draw object if object is in OwnerDraw mode
/// / Należy przeciażyć aby malować obiekt gdy jest on w trybie OwnerDraw
/// (wektorowy, nie kontrolkowy)
/// </summary>
/// <param name="aGraphics">GDI + interface / Interfejs GDI+</param>
/// <param name="aArea">Object bounds / Połozenie i rozmiary obiektu</param>
public virtual void Paint(Graphics aGraphics, Rectangle aArea) { }
/// <summary>
/// Overide to handle mouse click events
/// / Można przeciążyc aby obsłuyżyć zdarzenia klikniecia myszy
/// </summary>
/// <param name="e">Mouse events data / Szczegóły zdarzenia myszy</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseClick(MouseEventArgs e, Rectangle aArea) { }
/// <summary>
/// Overide to handle object focused events
/// / Można przeciążyc aby obsłuyżyć zdarzenia aktywacji obiektu
/// </summary>
public virtual void PerformFocus() { }
/// <summary>
/// Overide to handle object focus lost events
/// / Można przeciążyc aby obsłuyżyć zdarzenia dezaktywacji obiektu
/// </summary>
public virtual void PerformFocusLost() { }
/// <summary>
/// Overide to handle mouse double click events
/// / Można przeciążyc aby obsłuyżyć zdarzenia podwójnego klikniecia myszy
/// </summary>
/// <param name="e">Mouse events data / Szczegóły zdarzenia myszy</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseDoubleClick(MouseEventArgs e, Rectangle aArea) { }
/// <summary>
/// Overide to handle mouse down events
/// / Można przeciążyc aby obsłuyżyć zdarzenia wciśniecia klawisza myszy
/// </summary>
/// <param name="e">Mouse events data / Szczegóły zdarzenia myszy</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseDown(MouseEventArgs e, Rectangle aArea) { }
/// <summary>
/// Overide to handle mouse up events
/// / Można przeciążyc aby obsłuyżyć zdarzenia puszczenia myszy
/// </summary>
/// <param name="e">Mouse events data / Szczegóły zdarzenia myszy</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseUp(MouseEventArgs e, Rectangle aArea) { }
/// <summary>
/// Overide to handle mouse move events
/// / Można przeciążyc aby obsłuyżyć zdarzenia ruchu myszy
/// </summary>
/// <param name="aPoint">Cursor location on object/ Położenie kursora nad obiektam</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseMove(System.Drawing.Point aPoint, Rectangle aArea) { }
/// <summary>
/// Overide to handle mouse enter events
/// / Można przeciążyc aby obsłuyżyć zdarzenia najechania kursora myszy na obiekt
/// </summary>
public virtual void PerformMouseEnter() { }
/// <summary>
/// Overide to handle mouse leave events
/// / Można przeciążyc aby obsłuyżyć zdarzenia opuszczenia przez kursor obszaru obiektu
/// </summary>
public virtual void PerformMouseLeave() { }
/// <summary>
/// Overide to handle mouse hold events
/// / Można przeciążyc aby obsłuyżyć zdarzenia przytrzymania myszy nad obiektem
/// </summary>
/// <param name="e">Mouse events data / Szczegóły zdarzenia myszy</param>
/// <param name="aArea">Current object area / Bieżący obszar obiektu</param>
public virtual void PerformMouseHold(MouseEventArgs e, Rectangle aArea) { }
/// <summary>
/// Overide to handle key down events
/// / Można przeciążyc aby obsłuyżyć zdarzenia wciśnięcia klawisza
/// </summary>
/// <param name="e">Key events data / Szczegóły zdarzenia klawisza</param>
public virtual void PerformKeyDown(KeyEventArgs e) { }
/// <summary>
/// Overide to handle key up events
/// / Można przeciążyc aby obsłuyżyć zdarzenia puszczenia klawisza
/// </summary>
/// <param name="e">Key events data / Szczegóły zdarzenia klawisza</param>
public virtual void PerformKeyUp(KeyEventArgs e) { }
/// <summary>
/// Overide to handle key pressed events
/// / Można przeciążyc aby obsłuyżyć zdarzenia wciśniecia klawisza znaku
/// </summary>
/// <param name="e">Key events data / Szczegóły zdarzenia klawisza</param>
public virtual void PerformKeyPressed(KeyPressEventArgs e) { }
}