public ViewDrawRibbonGroupClusterButton(KryptonRibbon ribbon,
KryptonRibbonGroupClusterButton ribbonButton,
NeedPaintHandler needPaint)
{
Debug.Assert(ribbon != null);
Debug.Assert(ribbonButton != null);
Debug.Assert(needPaint != null);
// Remember incoming references
_ribbon = ribbon;
_ribbonButton = ribbonButton;
_needPaint = needPaint;
_currentSize = _ribbonButton.ItemSizeCurrent;
// Associate this view with the source component (required for design time selection)
Component = _ribbonButton;
// Create the small button view
CreateView();
// Update view reflect current button state
UpdateEnabledState();
UpdateCheckedState();
UpdateDropDownState();
UpdateItemSizeState();
// Hook into changes in the ribbon button definition
_ribbonButton.PropertyChanged += new PropertyChangedEventHandler(OnButtonPropertyChanged);
}