void SetDisplay(she::Display* display) { CursorType cursor = jmouse_get_cursor(); jmouse_set_cursor(kNoCursor); ji_screen = (display ? reinterpret_cast<BITMAP*>(display->getSurface()->nativeHandle()): NULL); ji_screen_w = (ji_screen ? ji_screen->w: 0); ji_screen_h = (ji_screen ? ji_screen->h: 0); if (ji_screen != NULL) { Manager* manager = Manager::getDefault(); if (manager) { manager->setDisplay(display); // Update default-manager size if ((jrect_w(manager->rc) != JI_SCREEN_W || jrect_h(manager->rc) != JI_SCREEN_H)) { JRect rect = jrect_new(0, 0, JI_SCREEN_W, JI_SCREEN_H); jwidget_set_rect(manager, rect); jrect_free(rect); } } jmouse_set_cursor(cursor); // Restore mouse cursor } }
void Tabs::setScrollX(int scroll_x) { int max_x = getMaxScrollX(); scroll_x = MID(0, scroll_x, max_x); if (m_scrollX != scroll_x) { m_scrollX = scroll_x; calculateHot(); invalidate(); } // We need scroll buttons? if (max_x > 0) { // Add childs if (!HAS_ARROWS(this)) { addChild(m_button_left); addChild(m_button_right); invalidate(); } /* disable/enable buttons */ m_button_left->setEnabled(m_scrollX > 0); m_button_right->setEnabled(m_scrollX < max_x); /* setup the position of each button */ { JRect rect = jwidget_get_rect(this); JRect box = jrect_new(rect->x2-ARROW_W*2, rect->y1, rect->x2-ARROW_W, rect->y2-2); jwidget_set_rect(m_button_left, box); jrect_moveto(box, box->x1+ARROW_W, box->y1); jwidget_set_rect(m_button_right, box); jrect_free(box); jrect_free(rect); } } // Remove buttons else if (HAS_ARROWS(this)) { removeChild(m_button_left); removeChild(m_button_right); invalidate(); } }