mirror of
https://github.com/aseprite/aseprite.git
synced 2025-04-10 03:44:16 +00:00
Remove JM_REQSIZE message
This commit is contained in:
parent
44b8822e38
commit
ef4934bef2
@ -26,6 +26,7 @@
|
||||
#include "ui/entry.h"
|
||||
#include "ui/manager.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/system.h"
|
||||
#include "ui/view.h"
|
||||
@ -99,24 +100,6 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE: {
|
||||
#if 0
|
||||
msg->reqsize.w =
|
||||
+ border_width.l
|
||||
+ ((m_x2 - m_x1 + 1))
|
||||
+ border_width.r;
|
||||
|
||||
msg->reqsize.h =
|
||||
+ border_width.t
|
||||
+ ((m_y2 - m_y1 + 1))
|
||||
+ border_width.b;
|
||||
#else
|
||||
msg->reqsize.w = border_width.l + 1 + border_width.r;
|
||||
msg->reqsize.h = border_width.t + 1 + border_width.b;
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_KEYPRESSED: {
|
||||
switch (msg->key.scancode) {
|
||||
|
||||
@ -325,6 +308,12 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void ColorCurveEditor::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
ev.setPreferredSize(gfx::Size(border_width.l + 1 + border_width.r,
|
||||
border_width.t + 1 + border_width.b));
|
||||
}
|
||||
|
||||
gfx::Point* ColorCurveEditor::getClosestPoint(int x, int y, int** edit_x, int** edit_y)
|
||||
{
|
||||
#define CALCDIST(xx, yy) \
|
||||
|
@ -37,6 +37,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
gfx::Point* getClosestPoint(int x, int y, int** edit_x, int** edit_y);
|
||||
|
@ -113,6 +113,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
void setCursor(int x, int y);
|
||||
@ -235,13 +236,6 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
// This doesn't matter, the AniEditor'll use the entire screen
|
||||
// anyway.
|
||||
msg->reqsize.w = 32;
|
||||
msg->reqsize.h = 32;
|
||||
return true;
|
||||
|
||||
case JM_DRAW: {
|
||||
JRect clip = &msg->draw.rect;
|
||||
int layer, first_layer, last_layer;
|
||||
@ -808,6 +802,12 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void AnimationEditor::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
// This doesn't matter, the AniEditor'll use the entire screen anyway.
|
||||
ev.setPreferredSize(Size(32, 32));
|
||||
}
|
||||
|
||||
void AnimationEditor::setCursor(int x, int y)
|
||||
{
|
||||
int mx = x - rc->x1;
|
||||
|
@ -104,7 +104,6 @@ namespace ui {
|
||||
JM_CLOSE_APP, // The user wants to close the entire application.
|
||||
JM_DRAW, // Widget needs be repainted.
|
||||
JM_TIMER, // A timer timeout.
|
||||
JM_REQSIZE, // Request size.
|
||||
JM_SETPOS, // Set position.
|
||||
JM_WINMOVE, // Window movement.
|
||||
JM_DEFERREDFREE, // Deferred jwidget_free call.
|
||||
|
@ -12,6 +12,7 @@
|
||||
#include "ui/draw.h"
|
||||
#include "ui/image_view.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/system.h"
|
||||
#include "ui/theme.h"
|
||||
@ -24,24 +25,14 @@ ImageView::ImageView(BITMAP* bmp, int align)
|
||||
setAlign(align);
|
||||
}
|
||||
|
||||
bool ImageView::onProcessMessage(Message* msg)
|
||||
void ImageView::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
switch (msg->type) {
|
||||
struct jrect box, text, icon;
|
||||
jwidget_get_texticon_info(this, &box, &text, &icon,
|
||||
getAlign(), m_bmp->w, m_bmp->h);
|
||||
|
||||
case JM_REQSIZE: {
|
||||
struct jrect box, text, icon;
|
||||
|
||||
jwidget_get_texticon_info(this, &box, &text, &icon,
|
||||
getAlign(), m_bmp->w, m_bmp->h);
|
||||
|
||||
msg->reqsize.w = border_width.l + jrect_w(&box) + border_width.r;
|
||||
msg->reqsize.h = border_width.t + jrect_h(&box) + border_width.b;
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return Widget::onProcessMessage(msg);
|
||||
ev.setPreferredSize(gfx::Size(border_width.l + jrect_w(&box) + border_width.r,
|
||||
border_width.t + jrect_h(&box) + border_width.b));
|
||||
}
|
||||
|
||||
void ImageView::onPaint(PaintEvent& ev)
|
||||
|
@ -20,7 +20,7 @@ namespace ui {
|
||||
ImageView(BITMAP* bmp, int align);
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
void onPaint(PaintEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
|
@ -8,6 +8,7 @@
|
||||
|
||||
#include "ui/label.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/theme.h"
|
||||
|
||||
namespace ui {
|
||||
@ -32,25 +33,19 @@ void Label::setTextColor(int color)
|
||||
m_textColor = color;
|
||||
}
|
||||
|
||||
bool Label::onProcessMessage(Message* msg)
|
||||
void Label::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
if (this->hasText()) {
|
||||
msg->reqsize.w = jwidget_get_text_length(this);
|
||||
msg->reqsize.h = jwidget_get_text_height(this);
|
||||
}
|
||||
else
|
||||
msg->reqsize.w = msg->reqsize.h = 0;
|
||||
|
||||
msg->reqsize.w += this->border_width.l + this->border_width.r;
|
||||
msg->reqsize.h += this->border_width.t + this->border_width.b;
|
||||
return true;
|
||||
gfx::Size sz(0, 0);
|
||||
|
||||
if (this->hasText()) {
|
||||
sz.w = jwidget_get_text_length(this);
|
||||
sz.h = jwidget_get_text_height(this);
|
||||
}
|
||||
|
||||
return Widget::onProcessMessage(msg);
|
||||
sz.w += this->border_width.l + this->border_width.r;
|
||||
sz.h += this->border_width.t + this->border_width.b;
|
||||
|
||||
ev.setPreferredSize(sz);
|
||||
}
|
||||
|
||||
void Label::onPaint(PaintEvent& ev)
|
||||
|
@ -21,7 +21,7 @@ namespace ui {
|
||||
void setTextColor(int color);
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
void onPaint(PaintEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
|
@ -1037,7 +1037,6 @@ void Manager::pumpQueue()
|
||||
"JM_CLOSE_APP",
|
||||
"JM_DRAW",
|
||||
"JM_TIMER",
|
||||
"JM_REQSIZE",
|
||||
"JM_SETPOS",
|
||||
"JM_WINMOVE",
|
||||
"JM_DEFERREDFREE",
|
||||
|
@ -299,10 +299,6 @@ bool Menu::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
requestSize(&msg->reqsize.w, &msg->reqsize.h);
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
@ -316,27 +312,28 @@ bool Menu::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void Menu::requestSize(int *w, int *h)
|
||||
void Menu::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
Size size(0, 0);
|
||||
Size reqSize;
|
||||
|
||||
*w = *h = 0;
|
||||
|
||||
UI_FOREACH_WIDGET_WITH_END(getChildren(), it, end) {
|
||||
reqSize = (*it)->getPreferredSize();
|
||||
|
||||
if (this->getParent()->type == JI_MENUBAR) {
|
||||
*w += reqSize.w + ((it+1 != end) ? this->child_spacing: 0);
|
||||
*h = MAX(*h, reqSize.h);
|
||||
size.w += reqSize.w + ((it+1 != end) ? this->child_spacing: 0);
|
||||
size.h = MAX(size.h, reqSize.h);
|
||||
}
|
||||
else {
|
||||
*w = MAX(*w, reqSize.w);
|
||||
*h += reqSize.h + ((it+1 != end) ? this->child_spacing: 0);
|
||||
size.w = MAX(size.w, reqSize.w);
|
||||
size.h += reqSize.h + ((it+1 != end) ? this->child_spacing: 0);
|
||||
}
|
||||
}
|
||||
|
||||
*w += this->border_width.l + this->border_width.r;
|
||||
*h += this->border_width.t + this->border_width.b;
|
||||
size.w += this->border_width.l + this->border_width.r;
|
||||
size.h += this->border_width.t + this->border_width.b;
|
||||
|
||||
ev.setPreferredSize(size);
|
||||
}
|
||||
|
||||
void Menu::set_position(JRect rect)
|
||||
@ -375,10 +372,6 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
requestSize(&msg->reqsize.w, &msg->reqsize.h);
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
@ -669,18 +662,17 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void MenuBox::requestSize(int* w, int* h)
|
||||
void MenuBox::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
if (Menu* menu = getMenu()) {
|
||||
Size reqSize = menu->getPreferredSize();
|
||||
*w = reqSize.w;
|
||||
*h = reqSize.h;
|
||||
}
|
||||
else
|
||||
*w = *h = 0;
|
||||
Size size(0, 0);
|
||||
|
||||
*w += this->border_width.l + this->border_width.r;
|
||||
*h += this->border_width.t + this->border_width.b;
|
||||
if (Menu* menu = getMenu())
|
||||
size = menu->getPreferredSize();
|
||||
|
||||
size.w += this->border_width.l + this->border_width.r;
|
||||
size.h += this->border_width.t + this->border_width.b;
|
||||
|
||||
ev.setPreferredSize(size);
|
||||
}
|
||||
|
||||
void MenuBox::set_position(JRect rect)
|
||||
@ -698,10 +690,6 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
requestSize(&msg->reqsize.w, &msg->reqsize.h);
|
||||
return true;
|
||||
|
||||
case JM_DRAW:
|
||||
getTheme()->draw_menuitem(this, &msg->draw.rect);
|
||||
return true;
|
||||
@ -898,29 +886,29 @@ void MenuItem::onClick()
|
||||
Click();
|
||||
}
|
||||
|
||||
void MenuItem::requestSize(int *w, int *h)
|
||||
void MenuItem::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
Size size(0, 0);
|
||||
int bar = (this->getParent()->getParent()->type == JI_MENUBAR);
|
||||
|
||||
if (this->hasText()) {
|
||||
*w =
|
||||
size.w =
|
||||
+ this->border_width.l
|
||||
+ jwidget_get_text_length(this)
|
||||
+ ((bar) ? this->child_spacing/4: this->child_spacing)
|
||||
+ this->border_width.r;
|
||||
|
||||
*h =
|
||||
size.h =
|
||||
+ this->border_width.t
|
||||
+ jwidget_get_text_height(this)
|
||||
+ this->border_width.b;
|
||||
|
||||
if (m_accel && !m_accel->isEmpty()) {
|
||||
*w += ji_font_text_len(this->getFont(), m_accel->toString().c_str());
|
||||
size.w += ji_font_text_len(this->getFont(), m_accel->toString().c_str());
|
||||
}
|
||||
}
|
||||
else {
|
||||
*w = *h = 0;
|
||||
}
|
||||
|
||||
ev.setPreferredSize(size);
|
||||
}
|
||||
|
||||
// Climbs the hierarchy of menus to get the most-top menubox.
|
||||
|
@ -34,13 +34,13 @@ namespace ui {
|
||||
|
||||
protected:
|
||||
virtual bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
virtual void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
void setOwnerMenuItem(MenuItem* ownerMenuItem) {
|
||||
m_menuitem = ownerMenuItem;
|
||||
}
|
||||
|
||||
void requestSize(int* w, int* h);
|
||||
void set_position(JRect rect);
|
||||
void closeAll();
|
||||
|
||||
@ -73,10 +73,10 @@ namespace ui {
|
||||
|
||||
protected:
|
||||
virtual bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
virtual void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
MenuBaseData* createBase();
|
||||
|
||||
private:
|
||||
void requestSize(int* w, int* h);
|
||||
void set_position(JRect rect);
|
||||
void closePopup();
|
||||
|
||||
@ -125,10 +125,10 @@ namespace ui {
|
||||
|
||||
protected:
|
||||
virtual bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
virtual void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
virtual void onClick();
|
||||
|
||||
private:
|
||||
void requestSize(int* w, int* h);
|
||||
void openSubmenu(bool select_first);
|
||||
void closeSubmenu(bool last_of_close_chain);
|
||||
void startTimer();
|
||||
|
@ -74,12 +74,6 @@ namespace ui {
|
||||
struct jrect rect; /* set position */
|
||||
};
|
||||
|
||||
struct MessageReqSize
|
||||
{
|
||||
MessageAny any;
|
||||
int w, h; /* requested size */
|
||||
};
|
||||
|
||||
struct MessageDrawRgn
|
||||
{
|
||||
MessageAny any;
|
||||
@ -102,7 +96,6 @@ namespace ui {
|
||||
MessageMouse mouse;
|
||||
MessageTimer timer;
|
||||
MessageSetPos setpos;
|
||||
MessageReqSize reqsize;
|
||||
MessageDrawRgn drawrgn;
|
||||
MessageUser user;
|
||||
};
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "gfx/size.h"
|
||||
#include "ui/intern.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/region.h"
|
||||
#include "ui/system.h"
|
||||
@ -239,16 +240,6 @@ bool View::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE: {
|
||||
Size viewSize = m_viewport.getPreferredSize();
|
||||
msg->reqsize.w = viewSize.w;
|
||||
msg->reqsize.h = viewSize.h;
|
||||
|
||||
msg->reqsize.w += this->border_width.l + this->border_width.r;
|
||||
msg->reqsize.h += this->border_width.t + this->border_width.b;
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_SETPOS:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
updateView();
|
||||
@ -273,6 +264,14 @@ bool View::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
// static
|
||||
void View::displaceWidgets(Widget* widget, int x, int y)
|
||||
{
|
||||
|
@ -49,6 +49,7 @@ public:
|
||||
protected:
|
||||
// Events
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
static void displaceWidgets(Widget* widget, int x, int y);
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "gfx/point.h"
|
||||
#include "gfx/size.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/theme.h"
|
||||
#include "ui/view.h"
|
||||
#include "ui/viewport.h"
|
||||
@ -27,11 +28,6 @@ bool Viewport::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
msg->reqsize.w = this->border_width.l + 1 + this->border_width.r;
|
||||
msg->reqsize.h = this->border_width.t + 1 + this->border_width.b;
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
@ -44,6 +40,12 @@ bool Viewport::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void Viewport::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
ev.setPreferredSize(gfx::Size(this->border_width.l + 1 + this->border_width.r,
|
||||
this->border_width.t + 1 + this->border_width.b));
|
||||
}
|
||||
|
||||
Size Viewport::calculateNeededSize()
|
||||
{
|
||||
Size maxSize(0, 0);
|
||||
|
@ -22,6 +22,7 @@ namespace ui {
|
||||
protected:
|
||||
// Events
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
void set_position(JRect rect);
|
||||
|
@ -1316,11 +1316,6 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
return ev.isPainted();
|
||||
}
|
||||
|
||||
case JM_REQSIZE:
|
||||
msg->reqsize.w = this->min_w;
|
||||
msg->reqsize.h = this->min_h;
|
||||
return true;
|
||||
|
||||
case JM_SETPOS: {
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
JRect cpos = jwidget_get_child_rect(this);
|
||||
@ -1403,24 +1398,9 @@ void Widget::onInvalidateRegion(const JRegion region)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Calculates the preferred size for the widget.
|
||||
|
||||
The default implementation get the preferred size of the current
|
||||
layout manager. Also, if there exists layout-free widgets inside
|
||||
this parent (like a StatusBar), they preferred-sizes are
|
||||
accumulated.
|
||||
|
||||
@see Layout#getPreferredSize,
|
||||
*/
|
||||
void Widget::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
Message* msg = jmessage_new(JM_REQSIZE);
|
||||
sendMessage(msg);
|
||||
Size sz(msg->reqsize.w, msg->reqsize.h);
|
||||
jmessage_free(msg);
|
||||
|
||||
ev.setPreferredSize(sz);
|
||||
ev.setPreferredSize(Size(this->min_w, this->min_h));
|
||||
}
|
||||
|
||||
void Widget::onLoadLayout(LoadLayoutEvent& ev)
|
||||
|
@ -892,10 +892,6 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
editor_request_size(&msg->reqsize.w, &msg->reqsize.h);
|
||||
return true;
|
||||
|
||||
case JM_DRAW: {
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
|
||||
@ -1059,6 +1055,27 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void Editor::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
gfx::Size sz(0, 0);
|
||||
|
||||
if (m_sprite) {
|
||||
View* view = View::getView(this);
|
||||
Rect vp = view->getViewportBounds();
|
||||
|
||||
m_offset_x = std::max<int>(vp.w/2, vp.w - m_sprite->getWidth()/2);
|
||||
m_offset_y = std::max<int>(vp.h/2, vp.h - m_sprite->getHeight()/2);
|
||||
|
||||
sz.w = (m_sprite->getWidth() << m_zoom) + m_offset_x*2;
|
||||
sz.h = (m_sprite->getHeight() << m_zoom) + m_offset_y*2;
|
||||
}
|
||||
else {
|
||||
sz.w = 4;
|
||||
sz.h = 4;
|
||||
}
|
||||
ev.setPreferredSize(sz);
|
||||
}
|
||||
|
||||
// When the current tool is changed
|
||||
void Editor::onCurrentToolChange()
|
||||
{
|
||||
@ -1073,27 +1090,6 @@ void Editor::onFgColorChange()
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns size for the editor viewport
|
||||
*/
|
||||
void Editor::editor_request_size(int *w, int *h)
|
||||
{
|
||||
if (m_sprite) {
|
||||
View* view = View::getView(this);
|
||||
Rect vp = view->getViewportBounds();
|
||||
|
||||
m_offset_x = std::max<int>(vp.w/2, vp.w - m_sprite->getWidth()/2);
|
||||
m_offset_y = std::max<int>(vp.h/2, vp.h - m_sprite->getHeight()/2);
|
||||
|
||||
*w = (m_sprite->getWidth() << m_zoom) + m_offset_x*2;
|
||||
*h = (m_sprite->getHeight() << m_zoom) + m_offset_y*2;
|
||||
}
|
||||
else {
|
||||
*w = 4;
|
||||
*h = 4;
|
||||
}
|
||||
}
|
||||
|
||||
void Editor::editor_setcursor()
|
||||
{
|
||||
bool used = false;
|
||||
|
@ -154,6 +154,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
void onCurrentToolChange();
|
||||
void onFgColorChange();
|
||||
|
||||
@ -173,7 +174,6 @@ private:
|
||||
|
||||
void drawGrid(const gfx::Rect& gridBounds, const Color& color);
|
||||
|
||||
void editor_request_size(int *w, int *h);
|
||||
void editor_setcursor();
|
||||
|
||||
void for_each_pixel_of_pen(int screen_x, int screen_y,
|
||||
|
@ -109,28 +109,6 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
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;
|
||||
}
|
||||
msg->reqsize.w = m_req_w;
|
||||
msg->reqsize.h = m_req_h;
|
||||
return true;
|
||||
|
||||
case JM_DRAW: {
|
||||
View* view = View::getView(this);
|
||||
gfx::Rect vp = view->getViewportBounds();
|
||||
@ -434,6 +412,28 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
void FileList::onFileSelected()
|
||||
{
|
||||
FileSelected();
|
||||
|
@ -50,6 +50,7 @@ namespace widgets {
|
||||
|
||||
protected:
|
||||
virtual bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
virtual void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
virtual void onFileSelected();
|
||||
virtual void onFileAccepted();
|
||||
virtual void onCurrentFolderChanged();
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include "raster/palette.h"
|
||||
#include "ui/manager.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/system.h"
|
||||
#include "ui/theme.h"
|
||||
@ -201,10 +202,6 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
request_size(&msg->reqsize.w, &msg->reqsize.h);
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
if (!m_isUpdatingColumns) {
|
||||
m_isUpdatingColumns = true;
|
||||
@ -343,6 +340,13 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void PaletteView::onPreferredSize(ui::PreferredSizeEvent& ev)
|
||||
{
|
||||
gfx::Size sz;
|
||||
request_size(&sz.w, &sz.h);
|
||||
ev.setPreferredSize(sz);
|
||||
}
|
||||
|
||||
void PaletteView::request_size(int* w, int* h)
|
||||
{
|
||||
div_t d = div(Palette::MaxColors, m_columns);
|
||||
|
@ -52,6 +52,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
void request_size(int* w, int* h);
|
||||
|
@ -472,13 +472,6 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
msg->reqsize.w = msg->reqsize.h =
|
||||
4*jguiscale()
|
||||
+ jwidget_get_text_height(this)
|
||||
+ 4*jguiscale();
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
{
|
||||
@ -826,6 +819,12 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void StatusBar::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
int s = 4*jguiscale() + jwidget_get_text_height(this) + 4*jguiscale();
|
||||
ev.setPreferredSize(Size(s, s));
|
||||
}
|
||||
|
||||
bool StatusBar::CustomizedTipWindow::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
@ -104,6 +104,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
void onCurrentToolChange();
|
||||
|
@ -248,13 +248,6 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE:
|
||||
msg->reqsize.w = 0; // msg->reqsize.h = 4 + jwidget_get_text_height(widget) + 5;
|
||||
msg->reqsize.h =
|
||||
theme->get_part(PART_TAB_FILLER)->h +
|
||||
theme->get_part(PART_TAB_BOTTOM_NORMAL)->h;
|
||||
return true;
|
||||
|
||||
case JM_SETPOS:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
setScrollX(m_scrollX);
|
||||
@ -440,6 +433,15 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void Tabs::onPreferredSize(PreferredSizeEvent& ev)
|
||||
{
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
|
||||
ev.setPreferredSize(gfx::Size(0, // 4 + jwidget_get_text_height(widget) + 5,
|
||||
theme->get_part(PART_TAB_FILLER)->h +
|
||||
theme->get_part(PART_TAB_BOTTOM_NORMAL)->h));
|
||||
}
|
||||
|
||||
void Tabs::onInitTheme(InitThemeEvent& ev)
|
||||
{
|
||||
Widget::onInitTheme(ev);
|
||||
|
@ -91,6 +91,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
void onInitTheme(ui::InitThemeEvent& ev) OVERRIDE;
|
||||
void onSetText() OVERRIDE;
|
||||
|
||||
|
@ -57,6 +57,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(Message* msg) OVERRIDE;
|
||||
void onPreferredSize(PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
Rect getToolBounds(int index);
|
||||
@ -123,13 +124,6 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE: {
|
||||
Size iconsize = getToolIconSize(this);
|
||||
msg->reqsize.w = iconsize.w + this->border_width.l + this->border_width.r;
|
||||
msg->reqsize.h = iconsize.h + this->border_width.t + this->border_width.b;
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_DRAW: {
|
||||
BITMAP *doublebuffer = create_bitmap(jrect_w(&msg->draw.rect),
|
||||
jrect_h(&msg->draw.rect));
|
||||
@ -338,6 +332,14 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
int ToolBar::getToolGroupIndex(ToolGroup* group)
|
||||
{
|
||||
ToolBox* toolbox = App::instance()->getToolBox();
|
||||
@ -602,23 +604,6 @@ bool ToolStrip::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_REQSIZE: {
|
||||
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);
|
||||
msg->reqsize.w = iconsize.w * c;
|
||||
msg->reqsize.h = iconsize.h;
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_DRAW: {
|
||||
BITMAP *doublebuffer = create_bitmap(jrect_w(&msg->draw.rect),
|
||||
jrect_h(&msg->draw.rect));
|
||||
@ -718,6 +703,22 @@ bool ToolStrip::onProcessMessage(Message* msg)
|
||||
return Widget::onProcessMessage(msg);
|
||||
}
|
||||
|
||||
void 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));
|
||||
}
|
||||
|
||||
Rect ToolStrip::getToolBounds(int index)
|
||||
{
|
||||
Size iconsize = getToolIconSize(this);
|
||||
|
@ -58,6 +58,7 @@ public:
|
||||
|
||||
protected:
|
||||
bool onProcessMessage(ui::Message* msg) OVERRIDE;
|
||||
void onPreferredSize(ui::PreferredSizeEvent& ev) OVERRIDE;
|
||||
|
||||
private:
|
||||
int getToolGroupIndex(tools::ToolGroup* group);
|
||||
|
Loading…
x
Reference in New Issue
Block a user