/*------------------------------------------------ "Add" button --------------------------------------------------*/ void OnAdd(HWND hDlg) { PTIMERSTRUCT pitem; int count, index; count = CBGetCount(hDlg, IDC_TIMERNAME); if(count < 0) return; OnNameDropDown(hDlg); GetTimerFromDlg(hDlg, get_listitem(m_pTimer, m_nCurrent)); pitem = malloc(sizeof(TIMERSTRUCT)); memset(pitem, 0, sizeof(TIMERSTRUCT)); wsprintf(pitem->name, "Timer%d", count + 1); pitem->minute = 3; pitem->nDispType = 1; // common/list.c m_pTimer = add_listitem(m_pTimer, pitem); index = CBAddString(hDlg, IDC_TIMERNAME, (LPARAM)pitem->name); CBSetCurSel(hDlg, IDC_TIMERNAME, index); if(count == 0) EnableTimerDlgItems(hDlg); SetTimerToDlg(hDlg, pitem); m_nCurrent = index; PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE); }
/*------------------------------------------------ "Add" --------------------------------------------------*/ void OnAdd(HWND hDlg) { PMOUSESTRUCT pitem; int count, index; count = CBGetCount(hDlg, IDC_NAMECLICK); if(count < 0) return; OnNameDropDown(hDlg); GetMouseCommandFromDlg(hDlg, get_listitem(m_pMouseCommand, m_nCurrent)); pitem = malloc(sizeof(MOUSESTRUCT)); memset(pitem, 0, sizeof(MOUSESTRUCT)); wsprintf(pitem->name, "Mouse%d", count+1); pitem->nClick = 1; pitem->nCommand = 0; // common/list.c m_pMouseCommand = add_listitem(m_pMouseCommand, pitem); index = CBAddString(hDlg, IDC_NAMECLICK, (LPARAM)pitem->name); CBSetCurSel(hDlg, IDC_NAMECLICK, index); m_nCurrent = index; if(count == 0) EnableMousePageItems(hDlg); SetMouseCommandToDlg(hDlg, pitem); OnFunction(hDlg, FALSE); #if TC_ENABLE_WHEEL OnMouseButton(hDlg); #endif PostMessage(hDlg, WM_NEXTDLGCTL, 1, FALSE); }
/*------------------------------------------- add a timer to m_pTimerRun and start ---------------------------------------------*/ void TimerStart(const PTIMERSTRUCT pitem) { PTIMERSTRUCT pnewitem; if(!pitem) return; pnewitem = malloc(sizeof(TIMERSTRUCT)); memcpy(pnewitem, pitem, sizeof(TIMERSTRUCT)); pnewitem->interval = pnewitem->minute * 60 + pnewitem->second; pnewitem->tickonstart = GetTickCount(); pnewitem->id = m_idCurrent++; m_pTimerRun = add_listitem(m_pTimerRun, pnewitem); }
//--------------------------------------------------------------------------------------- ImoObj* Linker::add_child_to_model(ImoObj* pParent, ImoObj* pChild, int ldpChildType) { //If the object (or its content, for DTOs) is added to the model it must return NULL. //Othewise, it must return the received object. This behaviour is necessary to //simplify unit tests of LdpAnalyser m_ldpChildType = ldpChildType; m_pParent = pParent; switch(pChild->get_obj_type()) { case k_imo_bezier_info: return add_bezier(static_cast<ImoBezierInfo*>(pChild)); case k_imo_content: return add_content(static_cast<ImoContent*>(pChild)); case k_imo_cursor_info: return add_cursor(static_cast<ImoCursorInfo*>(pChild)); case k_imo_font_style_dto: return add_font_style(static_cast<ImoFontStyleDto*>(pChild)); case k_imo_instrument: return add_instrument(static_cast<ImoInstrument*>(pChild)); case k_imo_instr_group: return add_instruments_group(static_cast<ImoInstrGroup*>(pChild)); case k_imo_listitem: return add_listitem(static_cast<ImoListItem*>(pChild)); case k_imo_midi_info: return add_midi_info(static_cast<ImoMidiInfo*>(pChild)); case k_imo_music_data: return add_child(k_imo_instrument, pChild); case k_imo_option: return add_option(static_cast<ImoOptionInfo*>(pChild)); case k_imo_page_info: return add_page_info(static_cast<ImoPageInfo*>(pChild)); case k_imo_param_info: return add_param_info(static_cast<ImoParamInfo*>(pChild)); case k_imo_score_text: return add_text(static_cast<ImoScoreText*>(pChild)); case k_imo_score_title: return add_title(static_cast<ImoScoreTitle*>(pChild)); case k_imo_staff_info: return add_staff_info(static_cast<ImoStaffInfo*>(pChild)); case k_imo_styles: return add_child(k_imo_document, pChild); case k_imo_system_info: return add_system_info(static_cast<ImoSystemInfo*>(pChild)); case k_imo_style: return add_style(static_cast<ImoStyle*>(pChild)); case k_imo_table_row: { if (m_pParent) { if (m_pParent->is_table_head()) return add_child(k_imo_table_head, pChild); else if (m_pParent->is_table_body()) return add_child(k_imo_table_body, pChild); else return pChild; } else return pChild; } case k_imo_table_head: case k_imo_table_body: { if (m_pParent && m_pParent->is_table()) return add_child(k_imo_table, pChild); else return pChild; } default: if (pChild->is_block_level_obj()) return add_block_level_item(static_cast<ImoBlockLevelObj*>(pChild)); else if (pChild->is_inline_level_obj()) return add_inline_level_item(static_cast<ImoInlineLevelObj*>(pChild)); else if (pChild->is_staffobj()) return add_staffobj(static_cast<ImoStaffObj*>(pChild)); else if (pChild->is_relobj()) return add_relation(static_cast<ImoRelObj*>(pChild)); else if (pChild->is_auxobj()) return add_attachment(static_cast<ImoAuxObj*>(pChild)); else return pChild; } }
void *copy_listitem(void *top, void *item, size_t size) { void *newitem = malloc(size); memcpy(newitem, item, size); return add_listitem(top, newitem); }