reg_t kScrollWindowEnd(EngineState *s, int argc, reg_t *argv) { ScrollWindow *scrollWindow = g_sci->_gfxControls32->getScrollWindow(argv[0]); scrollWindow->end(); return s->r_acc; }
reg_t kScrollWindowWhere(EngineState *s, int argc, reg_t *argv) { ScrollWindow *scrollWindow = g_sci->_gfxControls32->getScrollWindow(argv[0]); const uint16 where = (argv[1].toUint16() * scrollWindow->where()).toInt(); return make_reg(0, where); }
reg_t kScrollWindowGo(EngineState *s, int argc, reg_t *argv) { ScrollWindow *scrollWindow = g_sci->_gfxControls32->getScrollWindow(argv[0]); const Ratio scrollTop(argv[1].toSint16(), argv[2].toSint16()); scrollWindow->go(scrollTop); return s->r_acc; }
reg_t kScrollWindowAdd(EngineState *s, int argc, reg_t *argv) { ScrollWindow *scrollWindow = g_sci->_gfxControls32->getScrollWindow(argv[0]); const Common::String text = s->_segMan->getString(argv[1]); const GuiResourceId fontId = argv[2].toSint16(); const int16 color = argv[3].toSint16(); const TextAlign alignment = (TextAlign)argv[4].toSint16(); const bool scrollTo = argc > 5 ? (bool)argv[5].toUint16() : true; return scrollWindow->add(text, fontId, color, alignment, scrollTo); }
void GfxControls32::destroyScrollWindow(const reg_t id) { ScrollWindow *scrollWindow = getScrollWindow(id); scrollWindow->hide(); _scrollWindows.erase(id.getOffset()); delete scrollWindow; }