void HorizontalListBox::updateScrollWidth() { int realw = 0; if (screen_area) realw = screen_area->getmaxx(); setScrollWidth(MAX(realw, children_width)); }
void Buffer::loadConfiguration() { Configuration *config = Configuration::instance(); m_trackLineWidth = config->trackLineMarginWidth(); m_braceHighlight = config->braceHighlight(); setStyleQFont(STYLE_DEFAULT, config->font()); setViewWhitespace(config->viewWhitespace()); setViewIndentationGuides(config->viewIndentationGuides()); setCaretLineVisible(config->caretLineVisible()); setLongLineIndicator(config->longLineIndicator()); setViewEOL(config->viewEndOfLine()); setShowLineNumbers(config->showLineMargin()); setShowIconMargin(config->showIconMargin()); setShowFoldMargin(config->showFoldMargin()); setTabWidth(config->tabWidth()); setIndent(config->indentationWidth()); setUseTabs(config->useTabs()); setScrollWidth(config->scrollWidth()); setScrollWidthTracking(config->scrollWidthTracking()); setFoldSymbols(config->foldSymbols()); setFoldLines(config->foldLines()); setColorScheme(ColorScheme::getColorScheme(config->colorScheme())); }
void ListBox::draw() { proceedUpdateArea(); // set virtual scroll area width if (screen_area) setScrollWidth(screen_area->getmaxx()); updateScrollHeight(); if (update_area) reposition_widgets = true; proceedUpdateVirtualArea(); if (!area) { // scrollpane will clear the screen (real) area AbstractListBox::draw(); return; } if (reposition_widgets) { autosize_height = 1; int autosize_height_extra = 0; int realh = area->getmaxy(); if (autosize_children && children_height < realh) { int space = realh - (children_height - autosize_children); autosize_height = space / autosize_children; autosize_height_extra = space % autosize_children; } autosize_extra.clear(); int y = 0; for (Children::iterator i = children.begin(); i != children.end(); i++) { Widget *widget = i->widget; if (!widget->isVisible()) continue; int h = widget->getHeight(); if (h == AUTOSIZE) { h = autosize_height; if (autosize_height_extra) { autosize_extra.insert(widget); autosize_height_extra--; h++; } // make sure the area is updated widget->updateArea(); } widget->move(0, y); y += h; } reposition_widgets = false; } // make sure that currently focused widget is visible if (focus_child) { int h = focus_child->getHeight(); if (h == AUTOSIZE) { h = autosize_height; if (autosize_extra.find(focus_child) != autosize_extra.end()) h++; } makeVisible(focus_child->getLeft(), focus_child->getTop(), 1, h); } AbstractListBox::draw(); }