コード例 #1
0
ファイル: view.cpp プロジェクト: imeteora/aseprite
void View::onSizeHint(SizeHintEvent& ev)
{
  Widget::onSizeHint(ev);
  gfx::Size sz = ev.sizeHint();
  sz += m_viewport.sizeHint();
  ev.setSizeHint(sz);
}
コード例 #2
0
ファイル: search_entry.cpp プロジェクト: imeteora/aseprite
void SearchEntry::onSizeHint(SizeHintEvent& ev)
{
  Entry::onSizeHint(ev);
  Size sz = ev.sizeHint();

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

  ev.setSizeHint(sz);
}
コード例 #3
0
ファイル: view.cpp プロジェクト: Doraenmon/aseprite
void View::onSizeHint(SizeHintEvent& ev)
{
  Size viewSize = m_viewport.sizeHint();
  viewSize.w += border().width();
  viewSize.h += border().height();
  ev.setSizeHint(viewSize);
}
コード例 #4
0
ファイル: popup_window.cpp プロジェクト: Fojar/aseprite
void PopupWindow::onSizeHint(SizeHintEvent& ev)
{
  ScreenGraphics g;
  g.setFont(font());
  Size resultSize(0, 0);

  if (hasText())
    resultSize = g.fitString(text(),
                             (clientBounds() - border()).w,
                             align());

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

  if (!children().empty()) {
    Size maxSize(0, 0);
    Size reqSize;

    for (auto child : children()) {
      reqSize = child->sizeHint();

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

    resultSize.w = MAX(resultSize.w, maxSize.w + border().width());
    resultSize.h += maxSize.h;
  }

  ev.setSizeHint(resultSize);
}
コード例 #5
0
ファイル: recent_listbox.cpp プロジェクト: Doraenmon/aseprite
 void onSizeHint(SizeHintEvent& ev) override {
   SkinTheme* theme = static_cast<SkinTheme*>(this->theme());
   Style* style = theme->styles.recentFile();
   Style* styleDetail = theme->styles.recentFileDetail();
   Style::State state;
   gfx::Size sz1 = style->sizeHint(m_name.c_str(), state);
   gfx::Size sz2 = styleDetail->sizeHint(m_path.c_str(), state);
   ev.setSizeHint(gfx::Size(sz1.w+sz2.w, MAX(sz1.h, sz2.h)));
 }
コード例 #6
0
ファイル: news_listbox.cpp プロジェクト: pseudogames/aseprite
  void onSizeHint(SizeHintEvent& ev) override {
    SkinTheme* theme = static_cast<SkinTheme*>(this->theme());
    ui::Style* style = theme->styles.newsItem();

    setText(m_title);
    gfx::Size sz = theme->calcSizeHint(this, style);

    if (!m_desc.empty())
      sz.h *= 5;

    ev.setSizeHint(gfx::Size(0, sz.h));
  }
コード例 #7
0
ファイル: label.cpp プロジェクト: 4144/aseprite
void Label::onSizeHint(SizeHintEvent& ev)
{
  gfx::Size sz(0, 0);

  if (hasText()) {
    // Labels are not UIString
    sz.w = font()->textLength(text().c_str());
    sz.h = textHeight();
  }

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

  ev.setSizeHint(sz);
}
コード例 #8
0
ファイル: int_entry.cpp プロジェクト: imeteora/aseprite
void IntEntry::onSizeHint(SizeHintEvent& ev)
{
  int trailing = font()->textLength(getSuffix());
  trailing = MAX(trailing, 2*theme()->getEntryCaretSize(this).w);

  int min_w = font()->textLength(m_slider.convertValueToText(m_min));
  int max_w = font()->textLength(m_slider.convertValueToText(m_max)) + trailing;

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

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

  ev.setSizeHint(w, h);
}
コード例 #9
0
ファイル: news_listbox.cpp プロジェクト: Censacrof/aseprite
  void onSizeHint(SizeHintEvent& ev) override {
    SkinTheme* theme = static_cast<SkinTheme*>(this->theme());
    Style* style = theme->styles.newsItem();
    Style* styleDetail = theme->styles.newsItemDetail();
    Style::State state;
    gfx::Size sz1 = style->sizeHint(text().c_str(), state);
    gfx::Size sz2, sz2fourlines;

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

    ev.setSizeHint(gfx::Size(0, MIN(sz1.h+sz2fourlines.h, sz1.h+sz2.h)));
  }
コード例 #10
0
ファイル: grid.cpp プロジェクト: 4144/aseprite
void Grid::onSizeHint(SizeHintEvent& ev)
{
  int w, h;

  w = h = 0;

  calculateSize();

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

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

  ev.setSizeHint(Size(w, h));
}
コード例 #11
0
ファイル: entry.cpp プロジェクト: aseprite/aseprite
void Entry::onSizeHint(SizeHintEvent& ev)
{
  int trailing = font()->textLength(getSuffix());
  trailing = MAX(trailing, 2*theme()->getEntryCaretSize(this).w);

  int w =
    font()->textLength("w") * std::min(m_maxsize, 6) +
    + trailing
    + border().width();

  w = std::min(w, ui::display_w()/2);

  int h =
    + font()->height()
    + border().height();

  ev.setSizeHint(w, h);
}
コード例 #12
0
ファイル: listitem.cpp プロジェクト: pseudogames/aseprite
void ListItem::onSizeHint(SizeHintEvent& ev)
{
  int w = 0, h = 0;
  Size maxSize;

  if (hasText())
    maxSize = textSize();
  else
    maxSize.w = maxSize.h = 0;

  for (auto child : children()) {
    Size reqSize = child->sizeHint();

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

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

  ev.setSizeHint(Size(w, h));
}
コード例 #13
0
ファイル: color_spectrum.cpp プロジェクト: Doraenmon/aseprite
void ColorSpectrum::onSizeHint(SizeHintEvent& ev)
{
  ev.setSizeHint(gfx::Size(32*ui::guiscale(), 32*ui::guiscale()));
}
コード例 #14
0
void ColorCurveEditor::onSizeHint(SizeHintEvent& ev)
{
  ev.setSizeHint(gfx::Size(1 + border().width(),
                           1 + border().height()));
}
コード例 #15
0
ファイル: color_sliders.cpp プロジェクト: webbie1887/aseprite
void ColorSliders::onSizeHint(SizeHintEvent& ev)
{
  ev.setSizeHint(m_grid.sizeHint());
}
コード例 #16
0
ファイル: notifications.cpp プロジェクト: 4144/aseprite
void Notifications::onSizeHint(SizeHintEvent& ev)
{
  ev.setSizeHint(gfx::Size(16, 10)*guiscale()); // TODO hard-coded flag size
}
コード例 #17
0
ファイル: styled_button.cpp プロジェクト: 4144/aseprite
void StyledButton::onSizeHint(SizeHintEvent& ev) {
  ev.setSizeHint(
    m_style->sizeHint(NULL, skin::Style::State()) + 4*guiscale());
}