int steering::getCurrentState(int* array, int size) { int index; int leftMost; int amount = 0; int state; for (int i = 0; i < size; ++i) { if (array[i]) { if (amount == 0) { leftMost = i; } ++amount; index = i; } else if (amount) { break; } } switch(amount) { case 0: if (getLastState() > 0) { state = 8; } else { state = -8; } break; case 1: state = index * 2 - 7; break; case 2: state = index * 2 - 8; break; default: if (3 - leftMost < index - 4) { state = 10; } else { state = -10; } } addToStates(state); return state; }
void gcToggleButton::setImage() { switch (getLastState()) { case BS_TOGGLEON: gcButton::setImage(m_szToggleOn); break; case BS_TOGGLEOFF: gcButton::setImage(m_szToggleOff); break; default: gcButton::setImage(); break; }; if (m_bToggled) SetForegroundColour(m_TextColor); else SetForegroundColour(wxColour(160,160,160,255)); }