The IAnimatedButton class creates and manages the animated button control window. A set of bitmaps are specified for the button to use for animation. During animation, the button cycles through the bitmaps on a time interval.
The bitmap set can be specified by the application by providing the resource ID of the first bitmap and the number of bitmaps to be used. The bitmap set can also be specified by using one of the animated bitmap sets that are provided by the library for standard multimedia actions.
If the button text is not visible, the current animated bitmap is centered in the button, but it is not resized. If the button text is visible, the current animated bitmap is centered horizontally and positioned vertically along the top of the button with the text centered horizontally immediately below the bitmap. No clipping is done for the bitmap, so it can paint outside the button border if the button is too small.
You can construct and destruct objects of this class. You cannot copy or assign IAnimatedButton objects because both the copy constructor and assignment operator are private functions.
![]() |
public:
virtual ~IAnimatedButton()
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
IAnimatedButton(const IWindowHandle& handle)
Creates an IAnimatedButton object for the specified button control that has a user-button style.
Windows | OS/2 | AIX |
Yes | Yes | No |
public:
IAnimatedButton( unsigned long id, IWindow* parent, IWindow* owner, const IRectangle& initial = IRectangle ( ), const Style& style = defaultStyle ( ) )
Creates an IAnimatedButton with the specified window ID, parent and owner windows, screen position and size, and window style.
IInvalidParameter | The parent window pointer is invalid. |
Windows | OS/2 | AIX |
Yes | Yes | No |
Use these members to control the animation of the button.
![]() |
public:
unsigned long animationRate() const
Returns the current animation rate for the button. The animation rate is specified in thousandths of a second.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& disableAnimateWhenLatched()
Removes the animateWhenLatched style for the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& enableAnimateWhenLatched( bool enable = true )
Sets the animateWhenLatched style for the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
bool isAnimatedWhenLatched() const
Returns true if the animateWhenLatched style is set.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
bool isAnimationStarted() const
Returns true if the button is currently animated.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& latch( bool latched = true, bool refresh = true )
Puts the button in a latched or unlatched state based on the latched parameter. The value of the refresh parameter determines if the button is painted.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
virtual IAnimatedButton& setAnimationRate( unsigned long newRate = 1000 )
Sets the animation rate for the button in thousandths of a second. The default animation rate is one second.
The animation rate represents the amount of time that each bitmap
is displayed when the button is animated.
Note:
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& startAnimation( unsigned long index = 0 )
Starts the animation of the button. If you specify an index, the bitmap at the index is the first bitmap displayed.
IInvalidParameter | The specified bitmap index is invalid. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& stopAnimation()
Stops the animation of the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
Use these members to set and query the bitmaps that are displayed for a button.
![]() |
public:
virtual IBitmapHandle bitmap(unsigned long index = 0) const
Returns the handle of the specified bitmap.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual unsigned long bitmapCount() const
Returns the number of bitmaps specified for the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual unsigned long currentBitmapIndex() const
Returns the index of the bitmap that is currently displayed for the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
Sets the bitmaps to be used for the button. If this function is called more than once, the button uses only the bitmaps specified in the last call.
public:
virtual IAnimatedButton& setBitmaps( const IResourceId& firstBitmap, unsigned long count )
The bitmaps must be sequential, starting with the value specified as the first bitmap ID and continuing for the specified bitmap count.
Windows | OS/2 | AIX |
Yes | Yes | No |
public:
virtual IAnimatedButton& setBitmaps( AnimatedBitmaps bitmaps )
This function loads the specified resource bitmap set that the library provides.
IInvalidParameter | The animated bitmap set identifier is invalid. |
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
virtual IAnimatedButton& setCurrentBitmapIndex( unsigned long index = 0 )
Sets the index of the bitmap that is currently displayed for the button.
Windows | OS/2 | AIX |
Yes | Yes | No |
These members manage the layout of an animated button.
![]() |
protected:
virtual ISize calcMinimumSize() const
Returns the recommended minimum size of this animated button control. The size is based on the bitmap, button text, and the current font.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
Use these style members to set and query IAnimatedButton styles. You can use these styles with the styles defined by the following nested classes:
![]() |
public:
virtual unsigned long convertToGUIStyle( const IBitFlag& style, bool extendedOnly = false ) const
Converts style bits into the style value that can be processed by the GUI. The default action is to return the base GUI style for the platform. Extended styles defined by the Open Class Library can be returned by setting the extendedOnly parameter to true.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
static Style defaultStyle()
Returns the default style. The default style is classDefaultStyle unless you have changed the style using setDefaultStyle.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
static void setDefaultStyle(const Style& style)
Sets the default style for all subsequent animated buttons.
This member function is not thread safe. In a multithreaded application, it should only be called when a conflict is not possible. A conflict can arise if you set the default style on one thread at the same time that it is being queried on another. In this situation, the query would take place while the style is in an unknown state.
When you create a window class and do not specifically specify window styles in the constructor, the Open Class Library queries the default style. Therefore, the only safe place to call this member function is when no other application threads that create windows are active.
Another way to avoid a conflict in a multithreaded application is to specifically specify window styles on window construction, rather than calling this member function.
Windows | OS/2 | AIX |
Yes | Yes | Yes |
![]() |
public:
static const Style animateWhenLatched
Starts animation automatically when the button is in the latched state and stops animation when the button is in the unlatched (default) state.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
public:
static const Style classDefaultStyle
Specifies the original default style for this class, which is IWindow::visible.
Windows | OS/2 | AIX |
Yes | Yes | No |
![]() |
enum AnimatedBitmaps { rewind, stop, pause, play, fastForward, record, mute, trackAdvance, trackReverse, stepForward, stepBackward, scanForward, scanBackward, eject, volumeUp, volumeDown }
Enumeration that defines identifiers for each of the provided animated bitmap resource sets. Open Class Library provides these bitmaps for standard multimedia operations.
Windows | OS/2 | AIX |
Yes | Yes | No |
virtual ~IButton()
bool allowsMouseClickFocus() const
virtual IButton& click()
virtual IColor disabledForegroundColor() const
virtual IButton& disableMouseClickFocus()
virtual IButton& enableMouseClickFocus(bool enable = true)
virtual IButton& enableNotification(bool enable = true)
virtual IColor foregroundColor() const
virtual IButton& highlight(bool highlight = true)
virtual IColor hiliteBackgroundColor() const
virtual IColor hiliteForegroundColor() const
bool isHighlighted() const
virtual IButton& setText(const IResourceId& text)
virtual IButton& setText(const char* text)
virtual IButton& unhighlight()
virtual ~IControl()
virtual ~ICustomButton()
virtual IColor backgroundColor() const
ISize characterSize() const
virtual ICustomButton& disable()
virtual ICustomButton& disableAutoLatch()
virtual ICustomButton& disableLatching()
virtual ICustomButton& enable(bool enableWindow = true)
virtual ICustomButton& enableAutoLatch(bool enable = true)
virtual ICustomButton& enableLatching(bool enable = true)
virtual IFont font() const
ICustomButton(const IWindowHandle& handle)
ICustomButton( unsigned long id, IWindow* parent, IWindow* owner, const IRectangle& initial = IRectangle ( ), const Style& style = defaultStyle ( ) )
virtual bool isAutoLatchEnabled() const
virtual bool isLatched() const
virtual bool isLatchedBackgroundColorHalftone() const
virtual bool isLatchingEnabled() const
virtual ICustomButton& latch( bool latched = true, bool refresh = true )
virtual IColor latchedBackgroundColor() const
virtual IColor latchedForegroundColor() const
virtual ICustomButton& resetBackgroundColor()
virtual ICustomButton& resetFont()
virtual ICustomButton& resetLatchedBackgroundColor()
virtual ICustomButton& resetLatchedForegroundColor()
virtual ICustomButton& setBackgroundColor( const IColor& color )
virtual ICustomButton& setFont(const IFont& font)
virtual ICustomButton& setLatchedBackgroundColor( const IColor& color, bool halftone = true )
virtual ICustomButton& setLatchedForegroundColor( const IColor& color )
virtual ICustomButton& setLayoutDistorted( unsigned long layoutAttributeOn, unsigned long layoutAttributeOff )
virtual ICustomButton& setText(const IResourceId& text)
virtual ICustomButton& setText(const char* text)
ICustomButton& setUserData(unsigned long data)
virtual IString text() const
virtual ICustomButton& unlatch()
unsigned long userData() const
virtual ~INotifier()
virtual INotifier& disableNotification() = 0
virtual INotifier& enableNotification( bool enable = true ) = 0
INotifier()
virtual bool isEnabledForNotification() const = 0
virtual INotifier& notifyObservers( const INotificationEvent& event ) = 0
virtual INotifier& notifyObserversAsync( const INotificationEvent& event )
const IThreadId& threadId() const
virtual ~ITextControl()
static bool clipboardHasTextFormat()
virtual ISize displaySize(const char* text = 0) const
virtual ITextControl& setLayoutDistorted( unsigned long layoutAttributeOn, unsigned long layoutAttributeOff )
virtual ITextControl& setText(const IResourceId& text)
virtual ITextControl& setText(const char* text)
virtual unsigned long textLength() const
virtual ~IWindow()
IAccelTblHandle acceleratorHandle() const
IAcceleratorTable acceleratorTable() const
virtual IColor activeColor() const
IWindow& addOrReplaceAttribute( const IAttributeName& name, const IAttribute& attribute )
IWindow& adoptWindowData( const DataHandle& typeToken, IWindowData* windowData )
virtual IString asDebugInfo() const
virtual IString asString() const
IAttributeName attributeNameAt( const AttributeCursor& cursor ) const
const IAttribute* attributeWithName( const IAttributeName& name, ESearchType search = kWindowOnly ) const
virtual IWindow& capturePointer(bool capture = true)
IWindowHandle childAt(const ChildCursor& cursor) const
IWindow* childWindowAt(const ChildCursor& cursor) const
virtual IArgList convertToArgList( const IBitFlag& style ) const
static DataHandle dataHandleWithKey( const char* dataKeyName )
virtual IWindowHandle defaultEmphasisButton() const
static SiblingOrder defaultOrdering()
virtual IWindowHandle defaultPushButton() const
static IWindow* desktopWindow()
virtual IWindow& disable()
virtual IColor disabledBackgroundColor() const
virtual IWindow& disableGroup()
IWindow& disableMinimumSizeCaching()
virtual IWindow& disableNotification()
virtual IWindow& disableTabStop()
virtual IWindow& disableUpdate()
bool dispatchRemainingHandlers( IEvent& event, bool callDefProc = true )
virtual IWindow& enable(bool enableWindow = true)
virtual IWindow& enableGroup(bool enable = true)
IWindow& enableMinimumSizeCaching( bool enableCaching = true )
virtual IWindow& enableNotification(bool enable = true)
virtual IWindow& enableTabStop(bool enable = true)
virtual IWindow& enableUpdate(bool enableWindow = true)
static IWindow::ExceptionFn* exceptionFunction()
virtual IWindowHandle handle() const
virtual bool handleException( IException& dispatcherException, IEvent& exceptionEvent )
virtual IWindowHandle handleForChildCreation() const
static IWindowHandle handleWithParent( unsigned long identifier, const IWindowHandle& parent )
static IWindowHandle handleWithPointerCaptured()
virtual bool hasFocus() const
virtual bool hasPointerCaptured() const
unsigned long helpId() const
virtual IWindow& hide()
virtual IWindow& hideSourceEmphasis()
virtual unsigned long id() const
virtual IColor inactiveColor() const
virtual IRectangle invalidatedRect() const
virtual IRegionHandle invalidatedRegion() const
bool isAutoDeleteObject() const
bool isAutoDestroyWindow() const
bool isEnabled() const
virtual bool isEnabledForNotification() const
virtual bool isFrameWindow() const
virtual bool isGroup() const
bool isHandling(const EventMask& events) const
virtual bool isLayoutDistorted( unsigned long layoutAttribute ) const
bool isMinimumSizeCachingEnabled() const
bool isShowing() const
virtual bool isTabStop() const
bool isUpdateEnabled() const
virtual bool isValid() const
bool isVisible() const
static bool isWindowValid(const IWindow* window)
IDMItemProvider* itemProvider() const
IWindow(const IWindowHandle& handle)
IWindow(unsigned long identifier, IWindow* parent)
virtual IRectangle layoutAdjustment() const
static IPoint mapPoint( const IPoint& point, const IWindowHandle& from, const IWindowHandle& to )
virtual IWindowHandle matchForMnemonic( unsigned short character ) const
IMessageQueueHandle messageQueue() const
ISize minimumSize(bool windowCalculatedSize = false) const
virtual IPointerHandle mousePointer() const
static void movePointerTo(const IPoint& position)
virtual IWindow& moveSizeTo( const IRectangle& newSizeAndPosition )
virtual IWindow& moveTo(const IPoint& newPosition)
virtual IRectangle nativeRect() const
virtual INotifierAddress notifierAddress() const
virtual IWindow& notifyObservers( const INotificationEvent& event )
virtual IWindow& notifyObserversAsync( const INotificationEvent& event )
static IWindow* objectWindow()
virtual IWindow* owner() const
IWindow* parent() const
static ISize parentSize(const IWindowHandle& windowHandle)
virtual ISize parentSize() const
static IPoint pointerPosition()
virtual IPoint position() const
virtual IWindow& positionBehindSibling( const IWindowHandle& siblingWindow )
virtual IWindow& positionBehindSiblings()
virtual IWindow& positionOnSiblings()
virtual const IWindow& postEvent( EventType eventType, const IEventParameter1& parm1 = 0, const IEventParameter2& parm2 = 0 ) const
virtual const IWindow& postEvent( unsigned long eventId, const IEventParameter1& parm1 = 0, const IEventParameter2& parm2 = 0 ) const
virtual const IWindow& postEvent(const IEvent& event) const
virtual IPresSpaceHandle presSpace() const
virtual IRectangle rect() const
virtual IWindow& refresh( const IRectangle& invalidRectangle, bool immediate = false )
virtual IWindow& refresh(RefreshType type = paintAll)
virtual IWindow& releasePointer()
virtual void releasePresSpace( const IPresSpaceHandle& presentationSpaceHandle ) const
IWindow& removeAllAttributes()
IWindow& removeAttribute(const IAttributeName& name)
virtual IWindow& resetActiveColor()
virtual IWindow& resetBackgroundColor()
virtual IWindow& resetDisabledBackgroundColor()
virtual IWindow& resetDisabledForegroundColor()
virtual IWindow& resetFont()
virtual IWindow& resetForegroundColor()
virtual IWindow& resetHiliteBackgroundColor()
virtual IWindow& resetHiliteForegroundColor()
virtual IWindow& resetInactiveColor()
IWindow& resetMinimumSize()
virtual IWindow& resetShadowColor()
virtual IEventResult sendEvent(const IEvent& event) const
virtual IEventResult sendEvent( unsigned long eventId, const IEventParameter1& parm1 = 0, const IEventParameter2& parm2 = 0 ) const
virtual IEventResult sendEvent( EventType eventType, const IEventParameter1& parm1 = 0, const IEventParameter2& parm2 = 0 ) const
IWindow& setAcceleratorHandle( const IAccelTblHandle& handle )
IWindow& setAcceleratorTable( const IAcceleratorTable* acceleratorTable )
virtual IWindow& setActiveColor(const IColor& color)
IWindow& setAutoDeleteObject(bool autoDelete = true)
IWindow& setAutoDestroyWindow(bool autoDestroy = false)
virtual IWindow& setBackgroundColor(const IColor& color)
static void setDefaultOrdering(SiblingOrder order)
virtual IWindow& setDisabledBackgroundColor( const IColor& color )
virtual IWindow& setDisabledForegroundColor( const IColor& color )
static IWindow::ExceptionFn* setExceptionFunction( IWindow::ExceptionFn* exceptionFunction )
virtual IWindow& setFocus()
virtual IWindow& setFont(const IFont& font)
virtual IWindow& setForegroundColor(const IColor& color)
IWindow& setHelpId(unsigned long helpTopicId)
virtual IWindow& setHiliteBackgroundColor( const IColor& color )
virtual IWindow& setHiliteForegroundColor( const IColor& color )
virtual IWindow& setId(unsigned long newIdentifier)
virtual IWindow& setInactiveColor(const IColor& color)
IWindow& setItemProvider(IDMItemProvider* dragProvider)
virtual IWindow& setLayoutDistorted( unsigned long layoutAttributesOn, unsigned long layoutAttributesOff )
IWindow& setMinimumSize(const ISize& size)
virtual IWindow& setMousePointer( const IPointerHandle& mousePointer )
virtual IWindow& setOwner(const IWindow* newOwner)
virtual IWindow& setParent(const IWindow* newParent)
virtual IWindow& setShadowColor(const IColor& color)
virtual IColor shadowColor() const
virtual IWindow& show(bool showWindow = true)
virtual IWindow& showSourceEmphasis(bool show = true)
virtual ISize size() const
virtual IWindow& sizeTo(const ISize& newSize)
IWindow& startHandling(const EventMask& events)
IWindow& stopHandling(const EventMask& events)
virtual IWindow& validateRect( const IRectangle& validatedRectangle )
virtual IWindow& validateRegion( const IRegionHandle& validatedRegion )
virtual IRectangle visibleRectangle() const
IWindowData* windowData(const DataHandle& typeToken) const
static IWindow* windowWithHandle( const IWindowHandle& windowHandle, bool allThreads = true )
static IWindow* windowWithOwner( unsigned long identifier, const IWindow* owner, bool allThreads = true )
static IWindow* windowWithParent( unsigned long identifier, const IWindow* parent, bool allThreads = true )
static INotificationId const activeColorId
static const EventMask allMouseMoves
static INotificationId const attributeAddReplaceId
static INotificationId const attributeRemoveId
static INotificationId const backgroundColorId
static INotificationId const borderColorId
static const Style clipChildren
static const Style clipSiblings
static const Style clipToParent
static INotificationId const commandId
static const Style disabled
static INotificationId const disabledBackgroundColorId
static INotificationId const disabledForegroundColorId
static INotificationId const enableId
static INotificationId const focusId
static INotificationId const fontId
static INotificationId const foregroundColorId
static const Style group
static INotificationId const hiliteBackgroundColorId
static INotificationId const hiliteForegroundColorId
static INotificationId const inactiveColorId
static const Style leftToRight
static const EventMask mouseEntersLeaves
static const Style noStyle
static INotificationId const positionId
static const Style rightToLeft
static const Style saveBits
static INotificationId const shadowColorId
static INotificationId const sizeId
static const EventMask someMouseMoves
static const Style synchPaint
static INotificationId const systemCommandId
static const Style tabStop
static const Style visible
static INotificationId const visibleId
static INotificationId const allChangesId
static INotificationId const deleteId
static const Style autoLatch
static const Style latchable
static INotificationId const latchId
static INotificationId const buttonClickId
static const Style noPointerFocus
static INotificationId const textId
IWindow& addHandler(IHandler* newHandler)
virtual IWindow& addObserver( IObserver& observer, const IInterest& interest )
static void addToWindowSet( IWindow* window, const IWindowHandle& windowHandle )
IWindow& bindMessageQueue(bool bindToMessageQueue = true)
IColor color(unsigned long colorArea) const
IColor color( unsigned long colorArea, const IColor& defaultColor ) const
virtual IWindowHandle create( unsigned long id, const char* text, const IBitFlag& style, IXmCreateFunction createFunction, const IWindow* parent, const IWindow* owner, const IRectangle& initRect, IWindow::SiblingOrder ordering = defaultOrdering ( ) )
virtual IWindowHandle create( unsigned long id, const char* text, unsigned long style, IXmCreateFunction createFunction, const IWindowHandle& parent, const IWindowHandle& owner, const IRectangle& initRect, const void* callerArgList, unsigned int callerNumberArguments, IWindow::SiblingOrder ordering = defaultOrdering ( ), unsigned long extendedStyle = 0 )
virtual IWindowHandle create( unsigned long id, const char* text, unsigned long style, const char* windowClass, const IWindowHandle& parent, const IWindowHandle& owner, const IRectangle& initRect, const void* ctlData, const void* presParams, IWindow::SiblingOrder ordering = defaultOrdering ( ), unsigned long extendedStyle = 0 )
virtual IWindowHandle create( unsigned long id, const char* text, const IBitFlag& style, const char* windowClass, const IWindow* parent, const IWindow* owner, const IRectangle& initRect, const void* ctlData, const void* presParams, IWindow::SiblingOrder ordering = defaultOrdering ( ) )
IWindow& defaultProcedure(IEvent& event)
bool deleteIsInProcess() const
bool dispatch(IEvent& event)
virtual unsigned long extendedStyle() const
bool isBoundToMessageQueue() const
virtual bool isDragStarting(IEvent& event)
bool isPrimaryWindow() const
bool isUserWindowWordReserved() const
IWindow()
IWindowNotifyHandler* notificationHandler() const
virtual IWindow& notifyObservers( const INotificationId& notification )
IObserverList& observerList( const IInterest* interest = 0 ) const
virtual IWindow& prepareForUse( const IWindowHandle& windowHandle )
virtual IWindow& removeAllObservers()
static void removeFromWindowSet(IWindow* window)
IWindow& removeHandler(IHandler* oldHandler)
virtual IWindow& removeObserver(IObserver& observer)
virtual IWindow& removeObserver( IObserver& observer, const IInterest& interest )
IWindow& reserveUserWindowWord(bool reserve = true)
virtual IWindow& resetColor(unsigned long colorArea)
ISize savedMinimumSize() const
IWindow& saveMinimumSize(const ISize& size)
virtual IWindow& setBidiSettings( const IBidiSettings& bidiSettings, bool childInherit, bool refresh )
virtual IWindow& setColor( unsigned long colorArea, const IColor& color )
virtual IWindow& setDefaultEmphasisButton( const IWindowHandle& defaultEmphasisButton, bool enable )
virtual IWindow& setDefaultPushButton( const IWindowHandle& defaultPushButton )
virtual IWindow& setExtendedStyle( unsigned long extendedStyle )
IWindow& setNotificationHandler( IWindowNotifyHandler* notifyHandler )
virtual IWindow& setStyle(unsigned long style)
IWindow& setWindowData( long index, unsigned short dataValue )
IWindow& setWindowData(long index, unsigned long dataValue)
IWindow& startHandlingEventsFor( unsigned long identifier, IWindow* parent )
IWindow& startHandlingEventsFor( const IWindowHandle& windowHandle )
virtual unsigned long style() const
IWindow& unbindMessageQueue()
unsigned long windowULong(long index) const
unsigned short windowUShort(long index) const
virtual INotifier& addObserver( IObserver& observer, const IInterest& interest )
virtual INotifier& notifyObservers( const INotificationId& id ) = 0
virtual IObserverList& observerList( const IInterest* anInterest = 0 ) const = 0
virtual INotifier& removeAllObservers() = 0
virtual INotifier& removeObserver(IObserver& observer) = 0
virtual INotifier& removeObserver( IObserver& observer, const IInterest& interest )
IButton()
IControl()
ITextControl()