private void OnRibbonParentChanged(object sender, EventArgs e)
{
// Unhook from any current krypton form monitoring
if (_kryptonForm != null)
{
_kryptonForm.ApplyCustomChromeChanged -= new EventHandler(OnFormChromeCheck);
_kryptonForm.ClientSizeChanged -= new EventHandler(OnFormChromeCheck);
_kryptonForm.WindowActiveChanged -= new EventHandler(OnWindowActiveChanged);
_kryptonForm = null;
}
if (!_ribbon.IsDisposed && !_ribbon.Disposing)
{
// Find the new owning level form we are hosted inside
Form ownerForm = _ribbon.Parent as Form;
// Should always be inside a form, but you never know!
if (ownerForm != null)
{
// We only care if the owner form is a KryptonForm instance
if (ownerForm is KryptonForm)
{
_kryptonForm = ownerForm as KryptonForm;
_kryptonForm.Composition = _compositionArea;
_kryptonForm.ApplyCustomChromeChanged += new EventHandler(OnFormChromeCheck);
_kryptonForm.ClientSizeChanged += new EventHandler(OnFormChromeCheck);
_kryptonForm.WindowActiveChanged += new EventHandler(OnWindowActiveChanged);
}
}
// Update decision about integrating or providing caption functionality
OnFormChromeCheck(null, EventArgs.Empty);
}
}