void PAGE::Add ( void ) { UINT i; LRESULT count; LRESULT index; WORD* intArray; OBJECTID objid; DATA1* layout; count = SendDlgItemMessage(hDialog, PAGEAVAIL, LB_GETSELCOUNT, 0, 0L); if (count == 0) return; intArray = (WORD*) new WORD[UINT(count+1)]; if (intArray == NULL) return; SendDlgItemMessage(hDialog, PAGEAVAIL, LB_GETSELITEMS, WPARAM(count), LONG(intArray)); for (i = 0; i < count; i++) { objid = (OBJECTID)SendDlgItemMessage(hDialog, PAGEAVAIL, LB_GETITEMDATA, intArray[i], 0L); layout = (DATA1*)new DATA1(this, objid); CreateObjectWindow(layout); index = SendDlgItemMessage(hDialog, PAGESELECT, LB_ADDSTRING, 0, long(layout->name)); // Note: the data should be set to hObjectWnd SendDlgItemMessage(hDialog, PAGESELECT, LB_SETITEMDATA, WPARAM(index), LPARAM(hObjectWnd)); } delete [] intArray; }
void PAGE::SelectedList ( void ) { WORD i; LRESULT index; LONG count; DATA1* layout; data0 = LockPageData0(objectId); count = data0->count; for (i = 0; i < count; i++) { data1 = LockPageData1(objectId); layout = new DATA1(data1+i); layout->Refresh(hLayout); index = SendDlgItemMessage(hDialog, PAGESELECT, LB_ADDSTRING, 0, LONG(layout->name) ); CreateObjectWindow(layout); SendDlgItemMessage(hDialog, PAGESELECT, LB_SETITEMDATA, (WPARAM)index, (LPARAM)hObjectWnd); UnlockPageData1(objectId); } UnlockPageData0(objectId); }
/** * Load current project. * * Creates windows for all objects in project, with childs. */ int LoadCurrentProject() { RT_OBJECT *obj; OBJ_LIST_ITERATE_BEGIN( GetProjectChildList( cur_project)); if ( CreateObjectWindow( node->elem, TWC_TRUE) == 0) { if ( MessageBox( hMainWnd, T("Error creating one of windows! Continue loading?"), T("Error"), MB_YESNO) == IDNO ) { return 0; } } OBJ_LIST_ITERATE_END(); obj = GetProjectChildList( cur_project)->first->elem; if ( obj != NULL ) { TWC_CHECKIT( IsObjectWindow( obj) ); SetCurrentObject( obj); SetFocus( obj->hwnd); } return 1; }