PrevNextUpHome SophiaFramework UNIVERSE 5.3
SFRButtonBase
Base class for all button controls.
#include <SFRButtonBase.hpp>
class SFRButtonBase : public SFRControl;
SFMTYPEDEFCLASS(SFRButtonBase)

Inheritance diagram

 Inheritance diagram of SFRButtonBaseClass

Collaboration diagram

 Collaboration diagram of SFRButtonBaseClass

Description

To implement your own button control, the SFRButtonBase::HandleContent function needs to be overridden.

Ths code to implement your own button control is as below:

SFMTYPEDEFCLASS(UserButton)
class UserButton : public SFRButtonBase {
    // the copy-forbidden macro
    SFMSEALCOPY(UserButton)
  public:
    // declaration of the constructor and the destructor
    UserButton(SFRResponderPtr, SFXRectangleConstRef, BehaviorType);
    virtual ~UserButton(Void);
  private:
    // declaration of the draw handler
    virtual  Void  HandleContent(SFXGraphicsPtr);
    // declaration of the key release handler
    virtual  Void  HandleRelease(Void);
};

// constructor
UserButton::UserButton(SFRResponderPtr director, SFXRectangleConstRef rect, BehaviorType behavior)
: SFRButtonBase(director, rect, behavior, four_char_code('U', 's', 'e', 'r'))
{
  return;
}

// destructor
UserButton::~UserButton(Void)
{
  return;
}
// draw the button
Void UserButton::HandleContent(SFXGraphicsPtr graphic)
{
  SFXRGBColor  color;

  // get whether it is enable for response
  if (GetInheritEnable()) {
    // get whether it is focused
    if (GetInheritFocus()) {
       // get whether the key is pressed
      if (GetStatusPress()) {
        color.SetRGB(0x44, 0x44, 0x44);
      }
      else {
        color.SetRGB(0x66, 0x66, 0x66);
      }
    }
    else {
      color.SetRGB(0x88, 0x88, 0x88);
    }
  }
  else {
    color.SetRGB(0xAA, 0xAA, 0xAA);
  }
  
  // draw the button
  graphic->DrawRectangle(GetVirtualWorld(), color);
  
  return;
}

// the function to run when key released
Void UserButton::HandleRelease(Void)
{
  // the SREVT_CONTROL event is sent to itself
  Invoke(SFXEvent(SREVT_CONTROL, 0, reinterpret_cast<UInt32>(this)));
  return;
}

The SFRButtonControl class inherites from the SFRButtonBase class.

Reference

SFRResponder | SFRApplication | SFRWindow | SFRDialog | SFRControl | SFRButtonControl | Button

Member

Constructor/Destructor
SFRButtonBase( SFRResponderPtr director , SFXRectangleConstRef rect , BehaviorType behavior , SFCType attribute )
Constructor of the SFRButtonBase class.
~SFRButtonBase( Void )
Destructor of the SFRButtonBase class.
Public Functions
Void SetBaseBound( SFXRectangleConstRef rect )
Set the base region with the coordinate of virtual region of parent responder.
Void SetContentBound( SFXRectangleConstRef rect )
Set the content region with the base region coordinate. [This function is not available.]
Void SetVirtualBound( SFXRectangleConstRef rect )
Set the virtual region with the content region coordinate. [This function is not available.]
Bool ClearHandler( Void ) (inherits from SFRResponder)
[Handler] Clear the " Targeted " status of responder, or destroy the responder.
Bool Compare( SFCType type , SFCType attribute , BehaviorType behavior ) (inherits from SFRResponder)
Compare with type, attribute and behavior.
Bool FocusDown( Bool repeat = true ) (inherits from SFRResponder)
Focus down to the next responder.
Bool FocusDownHandler( Void ) (inherits from SFRResponder)
[Handler] Focus down to the next responder.
Bool FocusLeft( Bool repeat = true ) (inherits from SFRResponder)
Focus left to the next responder.
Bool FocusLeftHandler( Void ) (inherits from SFRResponder)
[Handler] Focus left to the next responder.
Bool FocusNext( Bool repeat = true ) (inherits from SFRResponder)
Focus to the next sibling responder.
Bool FocusNextHandler( Void ) (inherits from SFRResponder)
[Handler] Focus to the next sibling responder.
Bool FocusPrevious( Bool repeat = true ) (inherits from SFRResponder)
Focus to the previous sibling responder.
Bool FocusPreviousHandler( Void ) (inherits from SFRResponder)
[Handler] Focus to the previous sibling responder.
Bool FocusRight( Bool repeat = true ) (inherits from SFRResponder)
Focus right to the next responder.
Bool FocusRightHandler( Void ) (inherits from SFRResponder)
[Handler] Focus right to the next responder.
Bool FocusUp( Bool repeat = true ) (inherits from SFRResponder)
Focus up to the next responder.
Bool FocusUpHandler( Void ) (inherits from SFRResponder)
[Handler] Focus up to the next responder.
SFCType GetAttribute( Void ) (inherits from SFRResponder)
Get the attribute.
SFRResponderPtr GetBack( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the child responder at the most background that matches the specified search condition.
SFXRectangleConstRef GetBaseBound( Void ) (inherits from SFRResponder)
Get the base region with the coordinate of content region of parent responder.
SFXRectangle GetBaseWorld( Void ) (inherits from SFRResponder)
Get the base region.
SFXRectangleConstRef GetContentBound( Void ) (inherits from SFRResponder)
Get the content region with the coordinate of base region.
SFXRectangle GetContentWorld( Void ) (inherits from SFRResponder)
Get the content region.
SFRResponderPtr GetDirector( Void ) (inherits from SFRResponder)
Get the parent responder.
SFRResponderPtr GetFocus( Void ) (inherits from SFRResponder)
Get the responder with focus in its ownership hierarchy.
SFXMargin GetFrameMargin( Void ) (inherits from SFRResponder)
Get the margin between base and content region(in pixels).
SFRResponderPtr GetFront( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE | STATUS_ENABLE ) (inherits from SFRResponder)
Get the child responder at the most foreground that matches the specified search condition.
SInt16 GetIndexBackward( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the index number from the most background of responder that matches the specified search condition.
SInt16 GetIndexForward( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the index number from the most foreground of responder that matches the specified search condition.
Bool GetInheritEnable( Void ) (inherits from SFRResponder)
Get the " Enable / Disable " status of responder including its parent responders.
Bool GetInheritFocus( Void ) (inherits from SFRResponder)
Get the " Focused / Unfocused " status of responder including its parent responders.
Bool GetInheritTarget( Void ) (inherits from SFRResponder)
Get the " Target / Not-Target " status of responder including its parent responders.
Bool GetInheritVisible( Void ) (inherits from SFRResponder)
Get the " Visible / Invisible " status of responder including its parent responders.
SFRResponderPtr GetLeft( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the previous responder among the grouped responders that matches the specified search condition.
SInt16 GetMoveInterval( Void ) (inherits from SFRResponder)
Get the move interval in pixels.
SInt16 GetMoveMargin( Void ) (inherits from SFRResponder)
Get the margin pixels of content region ( or virtual region if set with the parent responder ) where the child responder cannot move.
SFRResponderPtr GetNext( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE , Bool repeat = true ) (inherits from SFRResponder)
Get the next sibling responder that matches the specified search condition.
SFRResponderPtr GetNthBackward( SInt16 index , SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the Nth child responder from the most background that matches the specified search condition.
SFRResponderPtr GetNthForward( SInt16 index , SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the Nth child responder from the most foreground that matches the specified search condition.
SFRResponderPtr GetPrevious( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE , Bool repeat = true ) (inherits from SFRResponder)
Get the previous sibling responder that matches the specified search condition.
VoidPtr GetReference( Void ) (inherits from SFRResponder)
Get the reference value.
SFRResponderPtr GetRight( SFCType type = TYPE_WILDCARD , SFCType attribute = ATTRIBUTE_WILDCARD , BehaviorType compare = STATUS_VISIBLE|STATUS_ENABLE ) (inherits from SFRResponder)
Get the next responder among the grouped responders that matches the specified search condition.
SInt16 GetScrollInterval( Void ) (inherits from SFRResponder)
Get the scroll interval in pixels.
Bool GetStatusEnable( Void ) (inherits from SFRResponder)
Get the value of " Enable / Disable " flag.
Bool GetStatusFocus( Void ) (inherits from SFRResponder)
Get the value of " Focused / Unfocused " flag.
Bool GetStatusTarget( Void ) (inherits from SFRResponder)
Get the value of " Target / Non-target " flag.
Bool GetStatusVisible( Void ) (inherits from SFRResponder)
Get the value of " Visible / Invisible " flag.
SFXGrid GetTranslate( Void ) (inherits from SFRResponder)
Get the origin coordinate of virtual region with the coordinate of content region.
SInt16 GetTravelMargin( Void ) (inherits from SFRResponder)
Get the margin pixels of content region inside which the rectangle in the virtual region but outside the content region should be automatically scrolled by using the SFRResponder::Travel function.
SFCType GetType( Void ) (inherits from SFRResponder)
Get the responder type.
SFXRectangleConstRef GetVirtualBound( Void ) (inherits from SFRResponder)
Get the virtual region with the coordinate of content region.
SFXRectangle GetVirtualWorld( Void ) (inherits from SFRResponder)
Get the virtual region
Void Group( SFRResponderPtr with ) (inherits from SFRResponder)
Group the responder with the group of which representative responder is specified as an argument.
Void GroupMove( SFXSizeConstRef size ) (inherits from SFRResponder)
Move all the responders grouped together.
Void GroupScroll( SFXSizeConstRef size ) (inherits from SFRResponder)
Scroll all the virtual regions of responders grouped together.
Void GroupSelect( Void ) (inherits from SFRResponder)
Select all the responders grouped together. ( move all of them to the most foreground )
Void GroupStatusEnable( Bool enable ) (inherits from SFRResponder)
Set the " Enable / Disable " status of all the responders grouped together.
Void GroupStatusVisible( Bool visible ) (inherits from SFRResponder)
Set the " Visible / Invisible " status of all the responders grouped together.
Void InvalidateBase( Void ) (inherits from SFRResponder)
Register an area in the base region to be redrawn.
Void InvalidateBase( SFXRectangleConstRef rect ) (inherits from SFRResponder)
Register an area in the base region to be redrawn.
Void InvalidateContent( Void ) (inherits from SFRResponder)
Register an area in the content region to be redrawn.
Void InvalidateContent( SFXRectangleConstRef rect ) (inherits from SFRResponder)
Register an area in the content region to be redrawn.
Void InvalidateVirtual( Void ) (inherits from SFRResponder)
Register an area in the virtual region to be redrawn.
Void InvalidateVirtual( SFXRectangleConstRef rect ) (inherits from SFRResponder)
Register an area in the virtual region to be redrawn.
Bool Invoke( SFXEventConstRef event ) (inherits from SFRResponder)
Send the specified event.
Void Move( SFXSizeConstRef size ) (inherits from SFRResponder)
Move the responder.
Bool MoveDownHandler( Void ) (inherits from SFRResponder)
[Handler] Move the responder down.
Bool MoveLeftHandler( Void ) (inherits from SFRResponder)
[Handler] Move the responder left.
Bool MoveRightHandler( Void ) (inherits from SFRResponder)
[Handler] Move the responder right.
Bool MoveUpHandler( Void ) (inherits from SFRResponder)
[Handler] Move the responder up.
SFCError RegisterHandler( HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum type , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum type , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterHandler( SFCEventEnum btype , SFCEventEnum etype , UInt16 bp16 , UInt16 ep16 , HandlerEnum timing , SFRHandlerSPP spp , VoidPtr ref ) (inherits from SFRHandler)
Register a handler.
SFCError RegisterTracer( BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum type , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum type , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
SFCError RegisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , BehaviorType behavior , TracerEnum trace ) (inherits from SFRTracer)
Register the tracer.
Void Scroll( SFXSizeConstRef size ) (inherits from SFRResponder)
Scroll the virtual region.
Bool ScrollDownHandler( Void ) (inherits from SFRResponder)
[Handler] Scroll the virtual region down.
Bool ScrollLeftHandler( Void ) (inherits from SFRResponder)
[Handler] Scroll the virtual region left.
Bool ScrollRightHandler( Void ) (inherits from SFRResponder)
[Handler] Scroll the virtual region right.
Bool ScrollUpHandler( Void ) (inherits from SFRResponder)
[Handler] Scroll the virtual region up.
Void Select( Void ) (inherits from SFRResponder)
Select the responder and move it to the most foreground.
Bool SelectHandler( Void ) (inherits from SFRResponder)
[Handler] Set the target status of a responder to true.
Void SetFrameMargin( SFXMarginConstRef param ) (inherits from SFRResponder)
Set the margin between base and content region(in pixels).
Void SetMoveInterval( SInt16 interval ) (inherits from SFRResponder)
Set the move interval in pixels.
Void SetMoveMargin( SInt16 margin ) (inherits from SFRResponder)
Set the margin pixels of content region ( or virtual region if set with the parent responder ) where the child responder cannot move.
Void SetReference( VoidPtr ref ) (inherits from SFRResponder)
Set the reference value.
Void SetScrollInterval( SInt16 interval ) (inherits from SFRResponder)
Set the scroll interval in pixels.
Void SetStatusEnable( Bool enable ) (inherits from SFRResponder)
Set the value of " Enable / Disable " flag.
Void SetStatusFocus( Bool focus ) (inherits from SFRResponder)
Set the value of " Focused / Unfocused " flag.
Void SetStatusTarget( Bool target ) (inherits from SFRResponder)
Set the value of " Target / Not-Target " flag.
Void SetStatusVisible( Bool visible ) (inherits from SFRResponder)
Set the value of " Visible / Invisible " flag.
Void SetTranslate( SFXGridConstRef point ) (inherits from SFRResponder)
Set the origin coordinate of virtual region with the coordinate of content region.
Void SetTravelMargin( SInt16 margin ) (inherits from SFRResponder)
Set the margin pixels of content region inside which the rectangle in the virtual region but outside the content region should be automatically scrolled by using the SFRResponder::Travel function.
Void Travel( SFXRectangleConstRef rect ) (inherits from SFRResponder)
Scroll the virtual region of responder so that the specified rectangle can get into the content region.
Void Ungroup( Void ) (inherits from SFRResponder)
Ungroup the responders which are grouped together.
Void UnregisterHandler( HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum type , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum type , UInt16 p16 , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterHandler( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 , HandlerEnum timing ) (inherits from SFRHandler)
Unregister the registered handler.
Void UnregisterTracer( Void ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum type ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum type , UInt16 p16 ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum type , UInt16 bgnP16 , UInt16 endP16 ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 p16 ) (inherits from SFRTracer)
Unregister the tracer.
Void UnregisterTracer( SFCEventEnum bgnType , SFCEventEnum endType , UInt16 bgnP16 , UInt16 endP16 ) (inherits from SFRTracer)
Unregister the tracer.
Protected Functions
Bool GetStatusPress( Void )
Get whether the key is pressed.
Void HandleContent( SFXGraphicsPtr graphic )
Draw the content region.
Void HandlePress( Void )
Run when the key is pressed.
Void HandleRelease( Void )
Run when the key is released.
Void InvalidateButton( Void )
Register the button region as update region.
Bool GetAppearanceTransparent( Void ) (inherits from SFRResponder)
Get the value of APPEARANCE_TRANSPARENT flag.
Bool GetPropertyClosable( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_CLOSABLE flag.
Bool GetPropertyDirect( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_DIRECT flag.
Bool GetPropertyMovable( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_MOVABLE flag.
Bool GetPropertyScrollable( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_SCROLLABLE flag.
Bool GetPropertySelect( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_SELECT flag.
Bool GetPropertyTravel( Void ) (inherits from SFRResponder)
Get the value of PROPERTY_TRAVEL flag.
HandlerRecConstPtr SearchHandler( SFXEventConstRef event , HandlerEnum timing ) (inherits from SFRHandler)
Search for the handler that matches the specified event.
TracerRecConstPtr SearchTracer( SFXEventConstRef event ) (inherits from SFRTracer)
Search for the tracer that matches the specified event.
Types
BehaviorEnum (inherits from SFRControl)
Constant that represents the behavior of control.
HandlerEnum (inherits from SFRHandler)
Constant that represents the timing to call the handler.
SFRHandlerSPP (inherits from SFRHandler)
Type of the callback function.
TracerEnum (inherits from SFRTracer)
Constant that represents the trace order.
TracerTraceMPP (inherits from SFRTracer)
Type of the callback function.

SFRButtonBase::SFRButtonBase
Constructor of the SFRButtonBase class.
[ protected ]
SFRButtonBase(
    SFRResponderPtr director    // parent responder
    SFXRectangleConstRef rect   // base bound
    BehaviorType behavior       // behavior
    SFCType attribute           // attribute
);

Reference

SFRButtonBase::~SFRButtonBase


SFRButtonBase::~SFRButtonBase
Destructor of the SFRButtonBase class.
[ protected, virtual ]
~SFRButtonBase(Void);

Reference

SFRButtonBase::SFRButtonBase


SFRButtonBase::GetStatusPress
Get whether the key is pressed.
[ protected, const ]
Bool GetStatusPress(Void);

Description

This function can be used such as an original button control implemted, whose drawing modified with the key status.


SFRButtonBase::HandleContent
Draw the content region.
[ protected, virtual ]
Void HandleContent(
    SFXGraphicsPtr graphic   // SFXGraphics instance
);

Description

When the button is implemented originally, the function is overrided and draw itself.

Example

Draw the button originally.

Draw a button whose color changes when: Enabled / Disabled , Focused / Unfocused , Key pressed / released.

// draw the button
Void UserButton::HandleContent(SFXGraphicsPtr graphic)
{
  SFXRGBColor  color;

  // get whether it is enabled
  if (GetInheritEnable()) {
    // get whether it is focused
    if (GetInheritFocus()) {
       // get whether the key is pressed
      if (GetStatusPress()) {
        color.SetRGB(0x44, 0x44, 0x44);
      }
      else {
        color.SetRGB(0x66, 0x66, 0x66);
      }
    }
    else {
      color.SetRGB(0x88, 0x88, 0x88);
    }
  }
  else {
    color.SetRGB(0xAA, 0xAA, 0xAA);
  }
  
  // draw the button
  graphic->DrawRectangle(GetVirtualWorld(), color);
  
  return;
}

SFRButtonBase::HandlePress
Run when the key is pressed.
[ protected, virtual ]
Void HandlePress(Void);

Description

If user want to process the key-pressed handler originally with the original-implemented button, it is necessary to override this function.

Example

The original event is sent when the key is pressed.

Void HandlePress(Void)
{
  Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_PRESS, reinterpret_cast<UInt32>(this)));
  return;
}

SFRButtonBase::HandleRelease
Run when the key is released.
[ protected, virtual ]
Void HandleRelease(Void);

Description

If user want to process the key-released handler originally with the original-implemented button, it is necessary to override this function.

Example

The original event is sent when the key is released.

Void HandleRelease(Void)
{
  Invoke(SFXEvent(USEREVT_CONTROL, USERP16_CONTROL_RELEASE, reinterpret_cast<UInt32>(this)));
  return;
}

SFRButtonBase::InvalidateButton
Register the button region as update region.
[ protected, virtual ]
Void InvalidateButton(Void);

Description

This function can be used when an original button control implemted, which needs to be redrawed.

This function does the same thing as InvalidateVirtual() function. If there is no virtual bound of the button, it is necessary to override the InvalidateButton() function.

Example

When the title text has been changed by the original-implemented button, register it as update bound.

if (param != _title) {
  _title = param;
  InvalidateButton();
}

The original-implemented button must be registered as update bound, when there is no virtual bound.

Void InvalidateButton(Void)
{
  InvalidateVirtual(_updatebound);
}

Reference

SFRResponder::InvalidateVirtual


SFRButtonBase::SetBaseBound
Set the base region with the coordinate of virtual region of parent responder.
[ public, virtual ]
Void SetBaseBound(
    SFXRectangleConstRef rect   // value to set
);

Reference

SFRResponder::SetBaseBound


SFRButtonBase::SetContentBound
Set the content region with the base region coordinate. [This function is not available.]
[ public, virtual ]
Void SetContentBound(
    SFXRectangleConstRef rect   // content bound
);

Reference

SFRResponder::GetContentBound | SFRResponder::SetContentBound


SFRButtonBase::SetVirtualBound
Set the virtual region with the content region coordinate. [This function is not available.]
[ public, virtual ]
Void SetVirtualBound(
    SFXRectangleConstRef rect   // virtual bound
);

Reference

SFRResponder::GetVirtualBound | SFRResponder::SetVirtualBound