LRESULT CDeskBand::OnCopyData(PCOPYDATASTRUCT copy_data) { TRACE_ENTER("CDeskBand::OnCopyData"); m_LastCopyData = time(NULL); if (copy_data->dwData == APPLET_MESSAGE_MENU && copy_data->cbData == sizeof(AppletMenuData)) { m_AppletMenu = *((AppletMenuData *) copy_data->lpData); m_HasAppletMenu = TRUE; } else if (m_TimerBox != NULL && copy_data->dwData == APPLET_MESSAGE_HEARTBEAT && copy_data->cbData == sizeof(AppletHeartbeatData)) { AppletHeartbeatData *data = (AppletHeartbeatData *) copy_data->lpData; m_TimerBox->set_enabled(data->enabled); for (int s = 0; s < BREAK_ID_SIZEOF; s++) { m_TimerBox->set_slot(s, (BreakId) data->slots[s]); } for (int b = 0; b < BREAK_ID_SIZEOF; b++) { TimeBar *bar = m_TimerBox->get_time_bar(BreakId(b)); if (bar != NULL) { bar->set_text(data->bar_text[b]); bar->set_bar_color((ITimeBar::ColorId) data->bar_primary_color[b]); bar->set_secondary_bar_color((ITimeBar::ColorId) data->bar_secondary_color[b]); bar->set_progress(data->bar_primary_val[b], data->bar_primary_max[b]); bar->set_secondary_progress(data->bar_secondary_val[b], data->bar_secondary_max[b]); } } m_TimerBox->update(false); } TRACE_EXIT(); return 0; }