mirror of
https://github.com/aseprite/aseprite.git
synced 2024-10-05 22:39:47 +00:00
5b252c30f5
- Fixed issue #46: open .png files with Unicode chars - Fixed issue #150: ability to uncompress program in folders w/Unicode chars - Added base::utf8_iterator - Added base::FileHandle - Added base::get_app_path() - Modified ui::KeyMessage::ascii() -> unicodeChar() - Removed JI_NOTEXT flag - Added app::XmlDocumentRef class and app::open_xml() function - Added support for Unicode text exchange with Win32 clipboard
71 lines
1.4 KiB
C++
71 lines
1.4 KiB
C++
// Aseprite UI Library
|
|
// Copyright (C) 2001-2013 David Capello
|
|
//
|
|
// This source file is distributed under MIT license,
|
|
// please read LICENSE.txt for more information.
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
#include "config.h"
|
|
#endif
|
|
|
|
#include "ui/listitem.h"
|
|
|
|
#include "ui/message.h"
|
|
#include "ui/preferred_size_event.h"
|
|
#include "ui/resize_event.h"
|
|
#include "ui/theme.h"
|
|
#include "ui/view.h"
|
|
|
|
namespace ui {
|
|
|
|
using namespace gfx;
|
|
|
|
ListItem::ListItem(const base::string& text)
|
|
: Widget(kListItemWidget)
|
|
{
|
|
setAlign(JI_LEFT | JI_MIDDLE);
|
|
setText(text);
|
|
initTheme();
|
|
}
|
|
|
|
void ListItem::onPaint(PaintEvent& ev)
|
|
{
|
|
getTheme()->paintListItem(ev);
|
|
}
|
|
|
|
void ListItem::onResize(ResizeEvent& ev)
|
|
{
|
|
setBoundsQuietly(ev.getBounds());
|
|
|
|
Rect crect = getChildrenBounds();
|
|
UI_FOREACH_WIDGET(getChildren(), it)
|
|
(*it)->setBounds(crect);
|
|
}
|
|
|
|
void ListItem::onPreferredSize(PreferredSizeEvent& ev)
|
|
{
|
|
int w = 0, h = 0;
|
|
Size maxSize;
|
|
|
|
if (hasText()) {
|
|
maxSize.w = jwidget_get_text_length(this);
|
|
maxSize.h = jwidget_get_text_height(this);
|
|
}
|
|
else
|
|
maxSize.w = maxSize.h = 0;
|
|
|
|
UI_FOREACH_WIDGET(getChildren(), it) {
|
|
Size reqSize = (*it)->getPreferredSize();
|
|
|
|
maxSize.w = MAX(maxSize.w, reqSize.w);
|
|
maxSize.h = MAX(maxSize.h, reqSize.h);
|
|
}
|
|
|
|
w = this->border_width.l + maxSize.w + this->border_width.r;
|
|
h = this->border_width.t + maxSize.h + this->border_width.b;
|
|
|
|
ev.setPreferredSize(Size(w, h));
|
|
}
|
|
|
|
} // namespace ui
|