/*! This looks pretty evil and it is. The problem is that a PerodicTableView is pretty irregular and you cannot "calculate" the position. */ void Element::setupXY() { static const int posXRegular[111] = {1,18, 1,2,13,14,15,16,17,18, 1,2,13,14,15,16,17,18, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, //Element 54 (Xe) 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, //Element 71 (Lu) 4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17, //Element 71 (Lr) 4,5,6,7,8,9,10,11}; static const int posYRegular[111] = {1,1, 2,2, 2, 2, 2, 2, 2, 2, 3,3, 3, 3, 3, 3, 3, 3, 4,4,4,4,4,4,4,4,4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5,5,5,5,5,5,5,5,5, 5, 5, 5, 5, 5, 5, 5, 5, 5, //Element 54 (Xe) 6,6,6,8,8,8,8,8,8, 8, 8, 8, 8, 8, 8, 8, 8, //Element 71 (Lr) 6,6,6,6,6,6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7,7,7,9,9,9,9,9,9, 9, 9, 9, 9, 9, 9, 9, 9, 7,7,7,7,7,7,7,7}; x = posXRegular[m_number-1]; y = posYRegular[m_number-1]; }