Exemple #1
0
void Window::onPreferredSize(PreferredSizeEvent& ev)
{
  Widget* manager = getManager();

  if (m_isDesktop) {
    Rect cpos = manager->getChildrenBounds();
    ev.setPreferredSize(cpos.w, cpos.h);
  }
  else {
    Size maxSize(0, 0);
    Size reqSize;

    UI_FOREACH_WIDGET(getChildren(), it) {
      Widget* child = *it;

      if (!child->isDecorative()) {
        reqSize = child->getPreferredSize();

        maxSize.w = MAX(maxSize.w, reqSize.w);
        maxSize.h = MAX(maxSize.h, reqSize.h);
      }
    }

    if (hasText())
      maxSize.w = MAX(maxSize.w, jwidget_get_text_length(this));

    ev.setPreferredSize(this->border_width.l + maxSize.w + this->border_width.r,
                        this->border_width.t + maxSize.h + this->border_width.b);
  }
Exemple #2
0
 void onPreferredSize(PreferredSizeEvent& ev) override {
   ListItem::onPreferredSize(ev);
   if (m_image) {
     gfx::Size sz = ev.getPreferredSize();
     ev.setPreferredSize(
       sz.w + 4 + m_image->width(),
       MAX(sz.h, m_image->height()));
   }
 }
Exemple #3
0
void SearchEntry::onPreferredSize(PreferredSizeEvent& ev)
{
  Entry::onPreferredSize(ev);
  Size sz = ev.getPreferredSize();

  SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
  auto icon = theme->parts.iconSearch()->getBitmap(0);
  sz.h = MAX(sz.h, icon->height()+border().height());

  ev.setPreferredSize(sz);
}
Exemple #4
0
void View::onPreferredSize(PreferredSizeEvent& ev)
{
  Size viewSize = m_viewport.getPreferredSize();
  viewSize.w += this->border_width.l + this->border_width.r;
  viewSize.h += this->border_width.t + this->border_width.b;
  ev.setPreferredSize(viewSize);
}
Exemple #5
0
void TextBox::onPreferredSize(PreferredSizeEvent& ev)
{
  int w = 0;
  int h = 0;

  // TODO is it necessary?
  //w = widget->border_width.l + widget->border_width.r;
  //h = widget->border_width.t + widget->border_width.b;

  _ji_theme_textbox_draw(NULL, this, &w, &h, 0, 0);

  if (this->getAlign() & JI_WORDWRAP) {
    View* view = View::getView(this);
    int width, min = w;

    if (view) {
      width = view->getViewportBounds().w;
    }
    else {
      width = jrect_w(this->rc);
    }

    w = MAX(min, width);
    _ji_theme_textbox_draw(NULL, this, &w, &h, 0, 0);

    w = min;
  }

  ev.setPreferredSize(gfx::Size(w, h));
}
Exemple #6
0
void ToolBar::onPreferredSize(PreferredSizeEvent& ev)
{
  Size iconsize = getToolIconSize(this);
  iconsize.w += this->border_width.l + this->border_width.r;
  iconsize.h += this->border_width.t + this->border_width.b;
  ev.setPreferredSize(iconsize);
}
Exemple #7
0
void ComboBox::onPreferredSize(PreferredSizeEvent& ev)
{
  Size sz(m_maxItemSize.w + (::GetSystemMetrics(SM_CXEDGE)*4 +
			     ::GetSystemMetrics(SM_CXVSCROLL)),
	  m_maxItemSize.h + (::GetSystemMetrics(SM_CYEDGE)*4));

  ev.setPreferredSize(sz);
}
void ColorButton::onPreferredSize(PreferredSizeEvent& ev)
{
    gfx::Rect box;
    jwidget_get_texticon_info(this, &box, NULL, NULL, 0, 0, 0);
    box.w = 64;

    ev.setPreferredSize(box.w + border_width.l + border_width.r,
                        box.h + border_width.t + border_width.b);
}
Exemple #9
0
void ColorButton::onPreferredSize(PreferredSizeEvent& ev)
{
  gfx::Rect box;
  getTextIconInfo(&box);
  box.w = 64*guiscale();

  ev.setPreferredSize(box.w + border_width.l + border_width.r,
                      box.h + border_width.t + border_width.b);
}
void ImageView::onPreferredSize(PreferredSizeEvent& ev)
{
  gfx::Rect box;
  getTextIconInfo(&box, NULL, NULL,
    getAlign(), m_bmp->w, m_bmp->h);

  ev.setPreferredSize(gfx::Size(border_width.l + box.w + border_width.r,
                                border_width.t + box.h + border_width.b));
}
Exemple #11
0
void ColorButton::onPreferredSize(PreferredSizeEvent& ev)
{
  gfx::Rect box;
  getTextIconInfo(&box);
  box.w = 64*guiscale();

  ev.setPreferredSize(box.w + border().width(),
                      box.h + border().height());
}
Exemple #12
0
void ImageView::onPreferredSize(PreferredSizeEvent& ev)
{
  struct jrect box, text, icon;
  jwidget_get_texticon_info(this, &box, &text, &icon,
                            getAlign(), m_bmp->w, m_bmp->h);

  ev.setPreferredSize(gfx::Size(border_width.l + jrect_w(&box) + border_width.r,
                                border_width.t + jrect_h(&box) + border_width.b));
}
Exemple #13
0
void ImageView::onPreferredSize(PreferredSizeEvent& ev)
{
  gfx::Rect box;
  getTextIconInfo(&box, NULL, NULL,
    getAlign(), m_sur->width(), m_sur->height());

  ev.setPreferredSize(
    gfx::Size(
      box.w + border().width(),
      box.h + border().height()));
}
Exemple #14
0
void Tabs::onPreferredSize(PreferredSizeEvent& ev)
{
  SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
  gfx::Size reqsize(0, theme->get_part(PART_TAB_BOTTOM_NORMAL)->height());

  if (!m_list_of_tabs.empty()) {
    reqsize.h += theme->get_part(PART_TAB_FILLER)->height();
  }

  ev.setPreferredSize(reqsize);
}
Exemple #15
0
void ColorButton::onPreferredSize(PreferredSizeEvent& ev)
{
  struct jrect box;

  jwidget_get_texticon_info(this, &box, NULL, NULL, 0, 0, 0);

  box.x2 = box.x1+64;

  ev.setPreferredSize(jrect_w(&box) + border_width.l + border_width.r,
                      jrect_h(&box) + border_width.t + border_width.b);
}
Exemple #16
0
void IntEntry::onPreferredSize(PreferredSizeEvent& ev)
{
  int min_w = getFont()->textLength(m_slider.convertValueToText(m_min));
  int max_w = getFont()->textLength(m_slider.convertValueToText(m_max));

  int w = MAX(min_w, max_w) + getFont()->charWidth('%');
  int h = getTextHeight();

  w += border().width();
  h += border().height();

  ev.setPreferredSize(w, h);
}
Exemple #17
0
void Slider::onPreferredSize(PreferredSizeEvent& ev)
{
  int min_w = getFont()->textLength(convertValueToText(m_min));
  int max_w = getFont()->textLength(convertValueToText(m_max));

  int w = MAX(min_w, max_w);
  int h = getTextHeight();

  w += border().width();
  h += border().height();

  ev.setPreferredSize(w, h);
}
Exemple #18
0
/**
   Adds space for the non-client size.

   @see getNonClientSize
*/
void TabBase::onPreferredSize(PreferredSizeEvent& ev)
{
  Size ncSize = getNonClientSize();

  if (ev.fitInWidth() || ev.fitInHeight()) {
    ev.setPreferredSize(max_value(0, ev.fitInWidth() - ncSize.w),
			max_value(0, ev.fitInHeight() - ncSize.h));
  }

  Widget::onPreferredSize(ev);
  ev.setPreferredSize(ev.getPreferredSize() + ncSize);
}
Exemple #19
0
void Label::onPreferredSize(PreferredSizeEvent& ev)
{
  gfx::Size sz(0, 0);

  if (hasText()) {
    // Labels are not UIString
    sz.w = getFont()->textLength(getText().c_str());
    sz.h = getTextHeight();
  }

  sz.w += border().width();
  sz.h += border().height();

  ev.setPreferredSize(sz);
}
Exemple #20
0
void ToolBar::ToolStrip::onPreferredSize(PreferredSizeEvent& ev)
{
  ToolBox* toolbox = App::instance()->getToolBox();
  int c = 0;

  for (ToolIterator it = toolbox->begin(); it != toolbox->end(); ++it) {
    Tool* tool = *it;
    if (tool->getGroup() == m_group) {
      ++c;
    }
  }

  Size iconsize = getToolIconSize(this);
  ev.setPreferredSize(Size(iconsize.w * c, iconsize.h));
}
Exemple #21
0
void ListBox::onPreferredSize(PreferredSizeEvent& ev)
{
  // TODO HTHEME stuff
  Size sz(2*::GetSystemMetrics(SM_CXEDGE),
	  2*::GetSystemMetrics(SM_CYEDGE));

  int i, n = getItemCount();
  Rect rc;

  for (i=0; i<n; ++i) {
    rc = getItemBounds(i);
    sz = Size(max_value(sz.w, rc.w), sz.h+rc.h);
  }

  ev.setPreferredSize(sz);
}
Exemple #22
0
void Grid::onPreferredSize(PreferredSizeEvent& ev)
{
  int w, h;

  w = h = 0;

  calculateSize();

  // Calculate the total
  sumStripSize(m_colstrip, w);
  sumStripSize(m_rowstrip, h);

  w += this->border_width.l + this->border_width.r;
  h += this->border_width.t + this->border_width.b;

  ev.setPreferredSize(Size(w, h));
}
Exemple #23
0
  void onPreferredSize(PreferredSizeEvent& ev) override {
    SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
    Style* style = theme->styles.newsItem();
    Style* styleDetail = theme->styles.newsItemDetail();
    Style::State state;
    gfx::Size sz1 = style->preferredSize(getText().c_str(), state);
    gfx::Size sz2, sz2fourlines;

    if (!m_desc.empty()) {
      View* view = View::getView(getParent());
      sz2 = styleDetail->preferredSize(m_desc.c_str(), state,
        (view ? view->getViewportBounds().w: 0));
      sz2fourlines = styleDetail->preferredSize("\n\n\n", state);
    }

    ev.setPreferredSize(gfx::Size(0, MIN(sz1.h+sz2fourlines.h, sz1.h+sz2.h)));
  }
Exemple #24
0
void Entry::onPreferredSize(PreferredSizeEvent& ev)
{
  int w =
    + border_width.l
    + getFont()->charWidth('w') * MIN(m_maxsize, 6)
    + 2*jguiscale()
    + border_width.r;

  w = MIN(w, ui::display_w()/2);

  int h =
    + border_width.t
    + getFont()->height()
    + border_width.b;

  ev.setPreferredSize(w, h);
}
Exemple #25
0
void FileList::onPreferredSize(PreferredSizeEvent& ev)
{
  if (!m_req_valid) {
    gfx::Size reqSize(0, 0);

    // rows
    for (FileItemList::iterator
           it=m_list.begin();
         it!=m_list.end(); ++it) {
      IFileItem* fi = *it;
      gfx::Size itemSize = getFileItemSize(fi);
      reqSize.w = MAX(reqSize.w, itemSize.w);
      reqSize.h += itemSize.h;
    }

    m_req_valid = true;
    m_req_w = reqSize.w;
    m_req_h = reqSize.h;
  }
  ev.setPreferredSize(Size(m_req_w, m_req_h));
}
Exemple #26
0
void BandedDockArea::onPreferredSize(PreferredSizeEvent& ev)
{
  std::vector<BandInfo>::iterator it;
//   int count = 0;
  Size sz;

  for (it =m_bandInfo.begin();
       it!=m_bandInfo.end();
       ++it) {
    if (isHorizontal())
      sz.h += it->size;
    else
      sz.w += it->size;

//     count++;
  }

  ev.setPreferredSize(sz);

//   return sz//  + (2*max_value(count-1, 0))
//     ;
}
Exemple #27
0
void AppMenuItem::onPreferredSize(PreferredSizeEvent& ev)
{
    gfx::Size size(0, 0);

    if (hasText()) {
        size.w =
            + getTextWidth()
            + (inBar() ? this->childSpacing()/4: this->childSpacing())
            + border().width();

        size.h =
            + getTextHeight()
            + border().height();

        if (m_key && !m_key->accels().empty()) {
            size.w += Graphics::measureUIStringLength(
                          m_key->accels().front().toString().c_str(), getFont());
        }
    }

    ev.setPreferredSize(size);
}
Exemple #28
0
void ComboBox::onPreferredSize(PreferredSizeEvent& ev)
{
  Size reqSize(0, 0);
  Size entrySize = m_entry->getPreferredSize();

  // Get the text-length of every item and put in 'w' the maximum value
  ListItems::iterator it, end = m_items.end();
  for (it = m_items.begin(); it != end; ++it) {
    int item_w =
      2*jguiscale()+
      getFont()->textLength((*it)->getText().c_str())+
      10*jguiscale();

    reqSize.w = MAX(reqSize.w, item_w);
  }

  reqSize.w += entrySize.w;
  reqSize.h += entrySize.h;

  Size buttonSize = m_button->getPreferredSize();
  reqSize.w += buttonSize.w;
  reqSize.h = MAX(reqSize.h, buttonSize.h);
  ev.setPreferredSize(reqSize);
}
Exemple #29
0
void Notifications::onPreferredSize(PreferredSizeEvent& ev)
{
  ev.setPreferredSize(gfx::Size(16, 10)*guiscale()); // TODO hard-coded flag size
}
Exemple #30
0
void ColorSliders:: onPreferredSize(PreferredSizeEvent& ev)
{
  ev.setPreferredSize(m_grid.getPreferredSize());
}