scrollpane::scrollpane(CVideo &video) : scrollarea(video), border_(5) { content_pos_.x = 0; content_pos_.y = 0; update_content_size(); set_scroll_rate(40); }
textbox::textbox(CVideo &video, int width, const std::string& text, bool editable, size_t max_size, double alpha, double alpha_focus, const bool auto_join) : scrollarea(video, auto_join), max_size_(max_size), text_(utils::string_to_wstring(text)), cursor_(text_.size()), selstart_(-1), selend_(-1), grabmouse_(false), text_pos_(0), editable_(editable), show_cursor_(true), show_cursor_at_(0), text_image_(NULL), wrap_(false), line_height_(0), yscroll_(0), alpha_(alpha), alpha_focus_(alpha_focus) { // static const SDL_Rect area = d.screen_area(); // const int height = font::draw_text(NULL,area,font_size,font::NORMAL_COLOUR,"ABCD",0,0).h; set_measurements(width, font::get_max_height(font_size)); set_scroll_rate(font::get_max_height(font_size) / 2); update_text_cache(true); }
help_text_area::help_text_area(CVideo &video, const section &toplevel) : gui::scrollarea(video), items_(), last_row_(), toplevel_(toplevel), shown_topic_(NULL), title_spacing_(16), curr_loc_(0, 0), min_row_height_(font::get_max_height(normal_font_size)), curr_row_height_(min_row_height_), contents_height_(0) { set_scroll_rate(40); }
void Application::load(SceneInfo* sceneInfo) { vector<Collada::Node>& nodes = sceneInfo->nodes; vector<DynamicScene::SceneLight *> lights; vector<DynamicScene::SceneObject *> objects; // save camera position to update camera control later CameraInfo *c; Vector3D c_pos = Vector3D(); Vector3D c_dir = Vector3D(); int len = nodes.size(); for (int i = 0; i < len; i++) { Collada::Node& node = nodes[i]; Collada::Instance *instance = node.instance; const Matrix4x4& transform = node.transform; switch(instance->type) { case Collada::Instance::CAMERA: c = static_cast<CameraInfo*>(instance); c_pos = (transform * Vector4D(c_pos,1)).to3D(); c_dir = (transform * Vector4D(c->view_dir,1)).to3D().unit(); init_camera(*c, transform); break; case Collada::Instance::LIGHT: { lights.push_back( init_light(static_cast<LightInfo&>(*instance), transform)); break; } case Collada::Instance::SPHERE: objects.push_back( init_sphere(static_cast<SphereInfo&>(*instance), transform)); break; case Collada::Instance::POLYMESH: objects.push_back( init_polymesh(static_cast<PolymeshInfo&>(*instance), transform)); break; case Collada::Instance::MATERIAL: init_material(static_cast<MaterialInfo&>(*instance)); break; } } scene = new DynamicScene::Scene(objects, lights); const BBox& bbox = scene->get_bbox(); if (!bbox.empty()) { Vector3D target = bbox.centroid(); canonical_view_distance = bbox.extent.norm() / 2 * 1.5; double view_distance = canonical_view_distance * 2; double min_view_distance = canonical_view_distance / 10.0; double max_view_distance = canonical_view_distance * 20.0; canonicalCamera.place(target, acos(c_dir.y), atan2(c_dir.x, c_dir.z), view_distance, min_view_distance, max_view_distance); camera.place(target, acos(c_dir.y), atan2(c_dir.x, c_dir.z), view_distance, min_view_distance, max_view_distance); set_scroll_rate(); } // set default draw styles for meshEdit - scene->set_draw_styles(&defaultStyle, &hoverStyle, &selectStyle); }