mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-19 15:40:31 +00:00
Replace all JM_ macros with ui::MessageType enum and add ui::RegisterMessage class to register new UI messages
This commit is contained in:
parent
6e62bcb82f
commit
3dbf6518f9
@ -398,7 +398,7 @@ void PaletteEntryEditor::setColor(const app::Color& color)
|
||||
|
||||
bool PaletteEntryEditor::onProcessMessage(Message* msg)
|
||||
{
|
||||
if (msg->type == JM_TIMER &&
|
||||
if (msg->type == kTimerMessage &&
|
||||
msg->timer.timer == &m_redrawTimer) {
|
||||
// Redraw all editors
|
||||
if (m_redrawAll) {
|
||||
|
@ -187,7 +187,7 @@ void PreviewCommand::onExecute(Context* context)
|
||||
|
||||
if (keypressed()) {
|
||||
int readkey_value = readkey();
|
||||
Message* msg = jmessage_new_key_related(JM_KEYPRESSED, readkey_value);
|
||||
Message* msg = jmessage_new_key_related(kKeyDownMessage, readkey_value);
|
||||
Command* command = NULL;
|
||||
get_command_from_key_message(msg, &command, NULL);
|
||||
jmessage_free(msg);
|
||||
|
@ -100,7 +100,7 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_KEYPRESSED: {
|
||||
case kKeyDownMessage: {
|
||||
switch (msg->key.scancode) {
|
||||
|
||||
case KEY_INSERT: {
|
||||
@ -137,7 +137,7 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
BITMAP *bmp;
|
||||
int x, y, u;
|
||||
|
||||
@ -189,7 +189,7 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
// Change scroll
|
||||
if (msg->any.shifts & KB_SHIFT_FLAG) {
|
||||
m_status = STATUS_SCROLLING;
|
||||
@ -232,7 +232,7 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
captureMouse();
|
||||
// continue in motion message...
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
switch (m_status) {
|
||||
|
||||
@ -276,7 +276,7 @@ bool ColorCurveEditor::onProcessMessage(Message* msg)
|
||||
#endif
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
|
||||
|
@ -63,19 +63,19 @@ bool FilterPreview::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_OPEN:
|
||||
case kOpenMessage:
|
||||
RenderEngine::setPreviewImage(m_filterMgr->getLayer(),
|
||||
m_filterMgr->getDestinationImage());
|
||||
break;
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
RenderEngine::setPreviewImage(NULL, NULL);
|
||||
|
||||
// Stop the preview timer.
|
||||
m_timer.stop();
|
||||
break;
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
if (m_filterMgr) {
|
||||
if (m_filterMgr->applyStep())
|
||||
m_filterMgr->flush();
|
||||
|
@ -272,7 +272,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
JRect clip = &msg->draw.rect;
|
||||
int layer, first_layer, last_layer;
|
||||
FrameNumber frame, first_frame, last_frame;
|
||||
@ -320,18 +320,18 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
if (key[KEY_SPACE]) m_space_pressed = true;
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (m_space_pressed) m_space_pressed = false;
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (msg->mouse.middle || m_space_pressed) {
|
||||
captureMouse();
|
||||
m_state = STATE_SCROLLING;
|
||||
@ -432,7 +432,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
jmouse_show();
|
||||
break;
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
int hot_part = A_PART_NOTHING;
|
||||
int hot_layer = -1;
|
||||
FrameNumber hot_frame(-1);
|
||||
@ -523,7 +523,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
|
||||
@ -712,7 +712,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED: {
|
||||
case kKeyDownMessage: {
|
||||
Command* command = NULL;
|
||||
Params* params = NULL;
|
||||
get_command_from_key_message(msg, &command, ¶ms);
|
||||
@ -779,7 +779,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_KEYRELEASED:
|
||||
case kKeyUpMessage:
|
||||
switch (msg->key.scancode) {
|
||||
|
||||
case KEY_SPACE:
|
||||
@ -795,7 +795,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
int dz = jmouse_z(1) - jmouse_z(0);
|
||||
int dx = 0;
|
||||
int dy = 0;
|
||||
@ -815,7 +815,7 @@ bool AnimationEditor::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
setCursor(msg->mouse.x, msg->mouse.y);
|
||||
return true;
|
||||
|
||||
|
@ -735,7 +735,7 @@ bool CustomizedGuiManager::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE_APP:
|
||||
case kCloseAppMessage:
|
||||
{
|
||||
// Execute the "Exit" command.
|
||||
Command* command = CommandsModule::instance()->getCommandByName(CommandId::Exit);
|
||||
@ -743,14 +743,14 @@ bool CustomizedGuiManager::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_QUEUEPROCESSING:
|
||||
case kQueueProcessingMessage:
|
||||
gui_feedback();
|
||||
|
||||
// Open dropped files
|
||||
check_for_dropped_files();
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED: {
|
||||
case kKeyDownMessage: {
|
||||
Window* toplevel_window = getTopWindow();
|
||||
|
||||
// If there is a foreground window as top level...
|
||||
|
@ -72,22 +72,22 @@ protected:
|
||||
bool onProcessMessage(Message* msg) OVERRIDE {
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
jmouse_set_cursor(kArrowCursor);
|
||||
return true;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
static_cast<SkinTheme*>(getTheme())->drawWindowButton(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (msg->key.scancode == KEY_ESC) {
|
||||
setSelected(true);
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYRELEASED:
|
||||
case kKeyUpMessage:
|
||||
if (msg->key.scancode == KEY_ESC) {
|
||||
if (isSelected()) {
|
||||
setSelected(false);
|
||||
|
@ -38,6 +38,7 @@ add_library(ui-lib
|
||||
preferred_size_event.cpp
|
||||
property.cpp
|
||||
rect.cpp
|
||||
register_message.cpp
|
||||
scroll_bar.cpp
|
||||
separator.cpp
|
||||
slider.cpp
|
||||
|
@ -60,42 +60,6 @@ namespace ui {
|
||||
#define JI_NOTEXT 0x0800 // The widget does not have text.
|
||||
#define JI_DIRTY 0x1000 // The widget (or one child) is dirty (update_region != empty).
|
||||
|
||||
// JINETE Message types.
|
||||
enum {
|
||||
// General messages.
|
||||
JM_OPEN, // Windows is open.
|
||||
JM_CLOSE, // Windows is closed.
|
||||
JM_CLOSE_APP, // The user wants to close the entire application.
|
||||
JM_DRAW, // Widget needs be repainted.
|
||||
JM_TIMER, // A timer timeout.
|
||||
JM_SETPOS, // Set position.
|
||||
JM_WINMOVE, // Window movement.
|
||||
JM_QUEUEPROCESSING, // Only sent to manager which indicate
|
||||
// the last message in the queue.
|
||||
|
||||
// Keyboard related messages.
|
||||
JM_KEYPRESSED, // When a any key is pressed.
|
||||
JM_KEYRELEASED, // When a any key is released.
|
||||
JM_FOCUSENTER, // Widget gets the focus.
|
||||
JM_FOCUSLEAVE, // Widget losts the focus.
|
||||
|
||||
// Mouse related messages.
|
||||
JM_BUTTONPRESSED, // User makes click inside a widget.
|
||||
JM_BUTTONRELEASED, // User releases mouse button in a widget.
|
||||
JM_DOUBLECLICK, // User makes double click in some widget.
|
||||
JM_MOUSEENTER, // A widget gets mouse pointer.
|
||||
JM_MOUSELEAVE, // A widget losts mouse pointer.
|
||||
JM_MOTION, // User moves the mouse on some widget.
|
||||
JM_SETCURSOR, // A widget needs to setup the mouse cursor.
|
||||
JM_WHEEL, // User moves the wheel.
|
||||
|
||||
// xxx drag'n'drop operation?.
|
||||
// JM_DND_
|
||||
|
||||
// Other messages.
|
||||
JM_REGISTERED_MESSAGES
|
||||
};
|
||||
|
||||
typedef unsigned int JID;
|
||||
|
||||
typedef struct jrect* JRect;
|
||||
|
@ -30,7 +30,7 @@ bool Box::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
layoutBox(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
|
@ -80,8 +80,8 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_FOCUSENTER:
|
||||
case JM_FOCUSLEAVE:
|
||||
case kFocusEnterMessage:
|
||||
case kFocusLeaveMessage:
|
||||
if (isEnabled()) {
|
||||
if (m_behaviorType == kButtonWidget) {
|
||||
// Deselect the widget (maybe the user press the key, but
|
||||
@ -95,7 +95,7 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
// If the button is enabled.
|
||||
if (isEnabled()) {
|
||||
// For kButtonWidget
|
||||
@ -154,7 +154,7 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYRELEASED:
|
||||
case kKeyUpMessage:
|
||||
if (isEnabled()) {
|
||||
if (m_behaviorType == kButtonWidget) {
|
||||
if (isSelected()) {
|
||||
@ -165,7 +165,7 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
switch (m_behaviorType) {
|
||||
|
||||
case kButtonWidget:
|
||||
@ -201,7 +201,7 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
|
||||
@ -238,7 +238,7 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (isEnabled() && hasCapture()) {
|
||||
bool hasMouse = hasMouseOver();
|
||||
|
||||
@ -257,8 +257,8 @@ bool ButtonBase::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseLeaveMessage:
|
||||
// TODO theme stuff
|
||||
if (isEnabled())
|
||||
invalidate();
|
||||
|
@ -308,11 +308,11 @@ bool ComboBox::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
closeListBox();
|
||||
break;
|
||||
|
||||
case JM_SETPOS: {
|
||||
case kResizeMessage: {
|
||||
JRect cbox = jrect_new_copy(&msg->setpos.rect);
|
||||
jrect_copy(this->rc, cbox);
|
||||
|
||||
@ -330,7 +330,7 @@ bool ComboBox::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_WINMOVE:
|
||||
case kWinMoveMessage:
|
||||
if (m_window) {
|
||||
JRect rc = getListBoxPos();
|
||||
m_window->moveWindow(rc);
|
||||
@ -338,7 +338,7 @@ bool ComboBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (m_window != NULL) {
|
||||
if (!View::getView(m_listbox)->hasMouse()) {
|
||||
closeListBox();
|
||||
@ -381,7 +381,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus()) {
|
||||
if (!m_comboBox->isEditable()) {
|
||||
if (msg->key.scancode == KEY_SPACE ||
|
||||
@ -401,7 +401,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (m_comboBox->isClickOpen()) {
|
||||
m_comboBox->switchListBox();
|
||||
}
|
||||
@ -413,7 +413,7 @@ bool ComboBoxEntry::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
break;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
getTheme()->draw_combobox_entry(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
@ -426,7 +426,7 @@ bool ComboBoxListBox::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
{
|
||||
int index = m_comboBox->getSelectedItemIndex();
|
||||
if (isValidItem(index))
|
||||
@ -436,7 +436,7 @@ bool ComboBoxListBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
return true;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus()) {
|
||||
if (msg->key.scancode == KEY_SPACE ||
|
||||
msg->key.scancode == KEY_ENTER ||
|
||||
@ -495,7 +495,7 @@ void ComboBox::openListBox()
|
||||
m_window->positionWindow(rc->x1, rc->y1);
|
||||
jrect_free(rc);
|
||||
|
||||
getManager()->addMessageFilter(JM_BUTTONPRESSED, this);
|
||||
getManager()->addMessageFilter(kMouseDownMessage, this);
|
||||
|
||||
m_window->openWindow();
|
||||
getManager()->setFocus(m_listbox);
|
||||
@ -511,7 +511,7 @@ void ComboBox::closeListBox()
|
||||
delete m_window; // window, frame
|
||||
m_window = NULL;
|
||||
|
||||
getManager()->removeMessageFilter(JM_BUTTONPRESSED, this);
|
||||
getManager()->removeMessageFilter(kMouseDownMessage, this);
|
||||
getManager()->setFocus(m_entry);
|
||||
}
|
||||
}
|
||||
|
@ -174,7 +174,7 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
if (this->hasFocus() && msg->timer.timer == &m_timer) {
|
||||
// Blinking caret
|
||||
m_state = m_state ? false: true;
|
||||
@ -182,7 +182,7 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_FOCUSENTER:
|
||||
case kFocusEnterMessage:
|
||||
m_timer.start();
|
||||
|
||||
m_state = true;
|
||||
@ -192,7 +192,7 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
m_recent_focused = true;
|
||||
break;
|
||||
|
||||
case JM_FOCUSLEAVE:
|
||||
case kFocusLeaveMessage:
|
||||
invalidate();
|
||||
|
||||
m_timer.stop();
|
||||
@ -201,7 +201,7 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
m_recent_focused = false;
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (this->hasFocus() && !isReadOnly()) {
|
||||
// Command to execute
|
||||
EntryCmd::Type cmd = EntryCmd::NoOp;
|
||||
@ -279,10 +279,10 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
this->captureMouse();
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (this->hasCapture()) {
|
||||
const char *text = this->getText();
|
||||
bool move, is_dirty;
|
||||
@ -338,7 +338,7 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
m_recent_focused = false;
|
||||
m_select = m_caret;
|
||||
}
|
||||
else if (msg->type == JM_BUTTONPRESSED)
|
||||
else if (msg->type == kMouseDownMessage)
|
||||
m_select = m_caret;
|
||||
|
||||
// Show the caret
|
||||
@ -351,20 +351,20 @@ bool Entry::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (this->hasCapture())
|
||||
this->releaseMouse();
|
||||
return true;
|
||||
|
||||
case JM_DOUBLECLICK:
|
||||
case kDoubleClickMessage:
|
||||
forwardWord();
|
||||
m_select = m_caret;
|
||||
backwardWord();
|
||||
invalidate();
|
||||
return true;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseLeaveMessage:
|
||||
/* TODO theme stuff */
|
||||
if (this->isEnabled())
|
||||
invalidate();
|
||||
|
@ -98,7 +98,7 @@ bool Grid::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
setGridPosition(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "ui/menu.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/message_loop.h"
|
||||
#include "ui/message_type.h"
|
||||
#include "ui/overlay.h"
|
||||
#include "ui/overlay_manager.h"
|
||||
#include "ui/paint_event.h"
|
||||
@ -45,6 +46,7 @@
|
||||
#include "ui/preferred_size_event.h"
|
||||
#include "ui/property.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/register_message.h"
|
||||
#include "ui/save_layout_event.h"
|
||||
#include "ui/scroll_bar.h"
|
||||
#include "ui/separator.h"
|
||||
|
@ -60,16 +60,16 @@ bool IntEntry::onProcessMessage(Message* msg)
|
||||
|
||||
// When the mouse enter in this entry, it got the focus and the
|
||||
// text is automatically selected.
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
requestFocus();
|
||||
selectText(0, -1);
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
openPopup();
|
||||
break;
|
||||
|
||||
case JM_WHEEL:
|
||||
case kMouseWheelMessage:
|
||||
if (isEnabled()) {
|
||||
int oldValue = getValue();
|
||||
int newValue = oldValue + jmouse_z(0) - jmouse_z(1);
|
||||
|
@ -36,7 +36,7 @@ bool LinkLabel::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
// TODO theme stuff
|
||||
if (isEnabled()) {
|
||||
jmouse_set_cursor(kHandCursor);
|
||||
@ -44,14 +44,14 @@ bool LinkLabel::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseLeaveMessage:
|
||||
// TODO theme stuff
|
||||
if (isEnabled())
|
||||
invalidate();
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (isEnabled()) {
|
||||
if (!m_url.empty())
|
||||
Launcher::openUrl(m_url);
|
||||
|
@ -124,22 +124,22 @@ bool ListBox::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
layoutListBox(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
this->getTheme()->draw_listbox(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
case JM_OPEN:
|
||||
case kOpenMessage:
|
||||
centerScroll();
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
captureMouse();
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
int select = getSelectedIndex();
|
||||
View* view = View::getView(this);
|
||||
@ -181,11 +181,11 @@ bool ListBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
releaseMouse();
|
||||
break;
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
gfx::Point scroll = view->getViewScroll();
|
||||
@ -195,7 +195,7 @@ bool ListBox::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus() && !getChildren().empty()) {
|
||||
int select = getSelectedIndex();
|
||||
View* view = View::getView(this);
|
||||
@ -251,7 +251,7 @@ bool ListBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_DOUBLECLICK:
|
||||
case kDoubleClickMessage:
|
||||
onDoubleClickItem();
|
||||
return true;
|
||||
}
|
||||
|
@ -29,7 +29,7 @@ bool ListItem::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS: {
|
||||
case kResizeMessage: {
|
||||
JRect crect;
|
||||
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
@ -42,7 +42,7 @@ bool ListItem::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
this->getTheme()->draw_listitem(this, &msg->draw.rect);
|
||||
return true;
|
||||
}
|
||||
|
@ -44,7 +44,7 @@ enum {
|
||||
STAGE_CLOSE_ALL,
|
||||
};
|
||||
|
||||
#define NFILTERS (JM_REGISTERED_MESSAGES+1)
|
||||
static const int NFILTERS = (int)(kFirstRegisteredMessage+1);
|
||||
|
||||
struct Filter
|
||||
{
|
||||
@ -269,7 +269,7 @@ bool Manager::generateMessages()
|
||||
dst = mouse_widget;
|
||||
|
||||
// Send the mouse movement message
|
||||
msg = newMouseMessage(JM_MOTION, dst);
|
||||
msg = newMouseMessage(kMouseMoveMessage, dst);
|
||||
enqueueMessage(msg);
|
||||
|
||||
generateSetCursorMessage();
|
||||
@ -278,7 +278,7 @@ bool Manager::generateMessages()
|
||||
|
||||
// Mouse wheel
|
||||
if (jmouse_z(0) != jmouse_z(1)) {
|
||||
msg = newMouseMessage(JM_WHEEL,
|
||||
msg = newMouseMessage(kMouseWheelMessage,
|
||||
capture_widget ? capture_widget:
|
||||
mouse_widget);
|
||||
enqueueMessage(msg);
|
||||
@ -292,14 +292,14 @@ bool Manager::generateMessages()
|
||||
((jmouse_b(1) & 2) == 0 && (jmouse_b(0) & 2) == 2) ||
|
||||
((jmouse_b(1) & 4) == 0 && (jmouse_b(0) & 4) == 4);
|
||||
|
||||
msg = newMouseMessage(pressed ? JM_BUTTONPRESSED:
|
||||
JM_BUTTONRELEASED,
|
||||
msg = newMouseMessage(pressed ? kMouseDownMessage:
|
||||
kMouseUpMessage,
|
||||
capture_widget ? capture_widget:
|
||||
mouse_widget);
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Double Click
|
||||
if (msg->type == JM_BUTTONPRESSED) {
|
||||
if (msg->type == kMouseDownMessage) {
|
||||
if (double_click_level != DOUBLE_CLICK_NONE) {
|
||||
/* time out, back to NONE */
|
||||
if (current_ticks - double_click_ticks > DOUBLE_CLICK_TIMEOUT_MSECS) {
|
||||
@ -307,7 +307,7 @@ bool Manager::generateMessages()
|
||||
}
|
||||
else if (double_click_buttons == msg->mouse.flags) {
|
||||
if (double_click_level == DOUBLE_CLICK_UP) {
|
||||
msg->type = JM_DOUBLECLICK;
|
||||
msg->type = kDoubleClickMessage;
|
||||
}
|
||||
else {
|
||||
double_click_level = DOUBLE_CLICK_NONE;
|
||||
@ -326,7 +326,7 @@ bool Manager::generateMessages()
|
||||
double_click_ticks = current_ticks;
|
||||
}
|
||||
}
|
||||
else if (msg->type == JM_BUTTONRELEASED) {
|
||||
else if (msg->type == kMouseUpMessage) {
|
||||
if (double_click_level != DOUBLE_CLICK_NONE) {
|
||||
// Time out, back to NONE
|
||||
if (current_ticks - double_click_ticks > DOUBLE_CLICK_TIMEOUT_MSECS) {
|
||||
@ -347,7 +347,7 @@ bool Manager::generateMessages()
|
||||
|
||||
// Handle Z order: Send the window to top (only when you click in
|
||||
// a window that aren't the desktop).
|
||||
if (msg->type == JM_BUTTONPRESSED &&
|
||||
if (msg->type == kMouseDownMessage &&
|
||||
!capture_widget && mouse_widget) {
|
||||
// The clicked window
|
||||
Window* window = mouse_widget->getRoot();
|
||||
@ -392,16 +392,16 @@ bool Manager::generateMessages()
|
||||
if (want_close_stage == STAGE_WANT_CLOSE) {
|
||||
want_close_stage = STAGE_NORMAL;
|
||||
|
||||
msg = jmessage_new(JM_CLOSE_APP);
|
||||
msg = jmessage_new(kCloseAppMessage);
|
||||
jmessage_broadcast_to_children(msg, this);
|
||||
enqueueMessage(msg);
|
||||
}
|
||||
|
||||
// Generate JM_CHAR/JM_KEYPRESSED messages.
|
||||
// Generate kKeyDownMessage messages.
|
||||
while (keypressed()) {
|
||||
int readkey_value = readkey();
|
||||
|
||||
msg = jmessage_new_key_related(JM_KEYPRESSED, readkey_value);
|
||||
msg = jmessage_new_key_related(kKeyDownMessage, readkey_value);
|
||||
|
||||
c = readkey_value >> 8;
|
||||
if (c >= 0 && c < KEY_MAX) {
|
||||
@ -415,11 +415,11 @@ bool Manager::generateMessages()
|
||||
|
||||
for (c=0; c<KEY_MAX; c++) {
|
||||
if (old_readed_key[c] != key[c]) {
|
||||
// Generate JM_KEYRELEASED messages (old key state is activated,
|
||||
// Generate kKeyUpMessage messages (old key state is activated,
|
||||
// the new one is deactivated).
|
||||
if (old_readed_key[c]) {
|
||||
// Press/release key interface
|
||||
msg = jmessage_new_key_related(JM_KEYRELEASED,
|
||||
msg = jmessage_new_key_related(kKeyUpMessage,
|
||||
(c << 8) | scancode_to_ascii(c));
|
||||
old_readed_key[c] = key[c];
|
||||
key_repeated[c] = 0;
|
||||
@ -427,10 +427,10 @@ bool Manager::generateMessages()
|
||||
broadcastKeyMsg(msg);
|
||||
enqueueMessage(msg);
|
||||
}
|
||||
/* generate JM_KEYPRESSED messages for modifiers */
|
||||
/* generate kKeyDownMessage messages for modifiers */
|
||||
else if (c >= KEY_MODIFIERS) {
|
||||
/* press/release key interface */
|
||||
msg = jmessage_new_key_related(JM_KEYPRESSED,
|
||||
msg = jmessage_new_key_related(kKeyDownMessage,
|
||||
(c << 8) | scancode_to_ascii(c));
|
||||
old_readed_key[c] = key[c];
|
||||
msg->key.repeat = key_repeated[c]++;
|
||||
@ -456,7 +456,7 @@ bool Manager::generateMessages()
|
||||
void Manager::dispatchMessages()
|
||||
{
|
||||
// Add the "Queue Processing" message for the manager.
|
||||
Message* msg = newMouseMessage(JM_QUEUEPROCESSING, this);
|
||||
Message* msg = newMouseMessage(kQueueProcessingMessage, this);
|
||||
enqueueMessage(msg);
|
||||
|
||||
pumpQueue();
|
||||
@ -480,8 +480,8 @@ void Manager::enqueueMessage(Message* msg)
|
||||
|
||||
// Check if this message must be filtered by some widget before
|
||||
c = msg->type;
|
||||
if (c >= JM_REGISTERED_MESSAGES)
|
||||
c = JM_REGISTERED_MESSAGES;
|
||||
if (c >= kFirstRegisteredMessage)
|
||||
c = kFirstRegisteredMessage;
|
||||
|
||||
if (!msg_filters[c].empty()) { // OK, so are filters to add...
|
||||
// Add all the filters in the destination list of the message
|
||||
@ -550,7 +550,7 @@ void Manager::setFocus(Widget* widget)
|
||||
if (focus_widget) {
|
||||
WidgetsList focus_parents;
|
||||
focus_widget->getParents(true, focus_parents);
|
||||
msg = jmessage_new(JM_FOCUSLEAVE);
|
||||
msg = jmessage_new(kFocusLeaveMessage);
|
||||
|
||||
UI_FOREACH_WIDGET(focus_parents, it) {
|
||||
if (widget) {
|
||||
@ -588,7 +588,7 @@ void Manager::setFocus(Widget* widget)
|
||||
else
|
||||
it = widget_parents.begin();
|
||||
|
||||
msg = jmessage_new(JM_FOCUSENTER);
|
||||
msg = jmessage_new(kFocusEnterMessage);
|
||||
|
||||
for (; it != widget_parents.end(); ++it) {
|
||||
Widget* w = *it;
|
||||
@ -619,7 +619,7 @@ void Manager::setMouse(Widget* widget)
|
||||
if (mouse_widget) {
|
||||
WidgetsList mouse_parents;
|
||||
mouse_widget->getParents(true, mouse_parents);
|
||||
msg = jmessage_new(JM_MOUSELEAVE);
|
||||
msg = jmessage_new(kMouseLeaveMessage);
|
||||
|
||||
UI_FOREACH_WIDGET(mouse_parents, it) {
|
||||
if (widget) {
|
||||
@ -657,7 +657,7 @@ void Manager::setMouse(Widget* widget)
|
||||
else
|
||||
it = widget_parents.begin();
|
||||
|
||||
msg = jmessage_new(JM_MOUSEENTER);
|
||||
msg = jmessage_new(kMouseEnterMessage);
|
||||
|
||||
for (; it != widget_parents.end(); ++it) {
|
||||
(*it)->flags |= JI_HASMOUSE;
|
||||
@ -748,7 +748,7 @@ void Manager::removeMessagesForTimer(Timer* timer)
|
||||
for (Messages::iterator it=msg_queue.begin(); it != msg_queue.end(); ) {
|
||||
Message* message = *it;
|
||||
if (!message->any.used &&
|
||||
message->any.type == JM_TIMER &&
|
||||
message->any.type == kTimerMessage &&
|
||||
message->timer.timer == timer) {
|
||||
jmessage_free(message);
|
||||
it = msg_queue.erase(it);
|
||||
@ -761,8 +761,8 @@ void Manager::removeMessagesForTimer(Timer* timer)
|
||||
void Manager::addMessageFilter(int message, Widget* widget)
|
||||
{
|
||||
int c = message;
|
||||
if (c >= JM_REGISTERED_MESSAGES)
|
||||
c = JM_REGISTERED_MESSAGES;
|
||||
if (c >= kFirstRegisteredMessage)
|
||||
c = kFirstRegisteredMessage;
|
||||
|
||||
msg_filters[c].push_back(new Filter(message, widget));
|
||||
}
|
||||
@ -770,8 +770,8 @@ void Manager::addMessageFilter(int message, Widget* widget)
|
||||
void Manager::removeMessageFilter(int message, Widget* widget)
|
||||
{
|
||||
int c = message;
|
||||
if (c >= JM_REGISTERED_MESSAGES)
|
||||
c = JM_REGISTERED_MESSAGES;
|
||||
if (c >= kFirstRegisteredMessage)
|
||||
c = kFirstRegisteredMessage;
|
||||
|
||||
for (Filters::iterator it=msg_filters[c].begin(); it != msg_filters[c].end(); ) {
|
||||
Filter* filter = *it;
|
||||
@ -813,7 +813,7 @@ void Manager::_openWindow(Window* window)
|
||||
insertChild(0, window);
|
||||
|
||||
// Broadcast the open message.
|
||||
Message* msg = jmessage_new(JM_OPEN);
|
||||
Message* msg = jmessage_new(kOpenMessage);
|
||||
jmessage_add_dest(msg, window);
|
||||
enqueueMessage(msg);
|
||||
|
||||
@ -862,7 +862,7 @@ void Manager::_closeWindow(Window* window, bool redraw_background)
|
||||
window->setVisible(false);
|
||||
|
||||
// Close message.
|
||||
msg = jmessage_new(JM_CLOSE);
|
||||
msg = jmessage_new(kCloseMessage);
|
||||
jmessage_add_dest(msg, window);
|
||||
enqueueMessage(msg);
|
||||
|
||||
@ -883,12 +883,12 @@ bool Manager::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
layoutManager(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case JM_KEYRELEASED: {
|
||||
case kKeyDownMessage:
|
||||
case kKeyUpMessage: {
|
||||
msg->key.propagate_to_children = true;
|
||||
msg->key.propagate_to_parent = false;
|
||||
|
||||
@ -908,7 +908,7 @@ bool Manager::onProcessMessage(Message* msg)
|
||||
}
|
||||
|
||||
// Check the focus movement.
|
||||
if (msg->type == JM_KEYPRESSED)
|
||||
if (msg->type == kKeyDownMessage)
|
||||
move_focus(this, msg);
|
||||
|
||||
return true;
|
||||
@ -1014,7 +1014,7 @@ void Manager::pumpQueue()
|
||||
Message* first_msg = msg;
|
||||
|
||||
// Call Timer::tick() if this is a tick message.
|
||||
if (msg->type == JM_TIMER) {
|
||||
if (msg->type == kTimerMessage) {
|
||||
ASSERT(msg->timer.timer != NULL);
|
||||
msg->timer.timer->tick();
|
||||
}
|
||||
@ -1028,33 +1028,33 @@ void Manager::pumpQueue()
|
||||
#ifdef REPORT_EVENTS
|
||||
{
|
||||
static char *msg_name[] = {
|
||||
"JM_OPEN",
|
||||
"JM_CLOSE",
|
||||
"JM_CLOSE_APP",
|
||||
"JM_DRAW",
|
||||
"JM_TIMER",
|
||||
"JM_SETPOS",
|
||||
"JM_WINMOVE",
|
||||
"JM_QUEUEPROCESSING",
|
||||
"kOpenMessage",
|
||||
"kCloseMessage",
|
||||
"kCloseAppMessage",
|
||||
"kPaintMessage",
|
||||
"kTimerMessage",
|
||||
"kResizeMessage",
|
||||
"kWinMoveMessage",
|
||||
"kQueueProcessingMessage",
|
||||
|
||||
"JM_KEYPRESSED",
|
||||
"JM_KEYRELEASED",
|
||||
"JM_FOCUSENTER",
|
||||
"JM_FOCUSLEAVE",
|
||||
"kKeyDownMessage",
|
||||
"kKeyUpMessage",
|
||||
"kFocusEnterMessage",
|
||||
"kFocusLeaveMessage",
|
||||
|
||||
"JM_BUTTONPRESSED",
|
||||
"JM_BUTTONRELEASED",
|
||||
"JM_DOUBLECLICK",
|
||||
"JM_MOUSEENTER",
|
||||
"JM_MOUSELEAVE",
|
||||
"JM_MOTION",
|
||||
"JM_SETCURSOR",
|
||||
"JM_WHEEL",
|
||||
"kMouseDownMessage",
|
||||
"kMouseUpMessage",
|
||||
"kDoubleClickMessage",
|
||||
"kMouseEnterMessage",
|
||||
"kMouseLeaveMessage",
|
||||
"kMouseMoveMessage",
|
||||
"kSetCursorMessage",
|
||||
"kMouseWheelMessage",
|
||||
};
|
||||
const char *string =
|
||||
(msg->type >= JM_OPEN &&
|
||||
msg->type <= JM_WHEEL) ? msg_name[msg->type]:
|
||||
"Unknown";
|
||||
(msg->type >= kOpenMessage &&
|
||||
msg->type <= kMouseWheelMessage) ? msg_name[msg->type]:
|
||||
"Unknown";
|
||||
|
||||
printf("Event #%d: %s (%d)\n", msg->type, string, widget->id);
|
||||
fflush(stdout);
|
||||
@ -1062,7 +1062,7 @@ void Manager::pumpQueue()
|
||||
#endif
|
||||
|
||||
/* draw message? */
|
||||
if (msg->type == JM_DRAW) {
|
||||
if (msg->type == kPaintMessage) {
|
||||
/* hidden? */
|
||||
if (widget->flags & JI_HIDDEN)
|
||||
continue;
|
||||
@ -1089,7 +1089,7 @@ void Manager::pumpQueue()
|
||||
done = widget->sendMessage(msg);
|
||||
|
||||
/* restore clip */
|
||||
if (msg->type == JM_DRAW) {
|
||||
if (msg->type == kPaintMessage) {
|
||||
set_clip_rect(ji_screen, 0, 0, JI_SCREEN_W-1, JI_SCREEN_H-1);
|
||||
|
||||
release_bitmap(ji_screen);
|
||||
@ -1174,7 +1174,7 @@ void Manager::generateSetCursorMessage()
|
||||
dst = mouse_widget;
|
||||
|
||||
if (dst) {
|
||||
msg = newMouseMessage(JM_SETCURSOR, dst);
|
||||
msg = newMouseMessage(kSetCursorMessage, dst);
|
||||
enqueueMessage(msg);
|
||||
}
|
||||
else
|
||||
@ -1222,7 +1222,7 @@ Widget* Manager::findMagneticWidget(Widget* widget)
|
||||
}
|
||||
|
||||
// static
|
||||
Message* Manager::newMouseMessage(int type, Widget* widget)
|
||||
Message* Manager::newMouseMessage(MessageType type, Widget* widget)
|
||||
{
|
||||
Message* msg = jmessage_new(type);
|
||||
if (!msg)
|
||||
@ -1230,8 +1230,8 @@ Message* Manager::newMouseMessage(int type, Widget* widget)
|
||||
|
||||
msg->mouse.x = jmouse_x(0);
|
||||
msg->mouse.y = jmouse_y(0);
|
||||
msg->mouse.flags = (type == JM_BUTTONRELEASED ? jmouse_b(1):
|
||||
jmouse_b(0));
|
||||
msg->mouse.flags = (type == kMouseUpMessage ? jmouse_b(1):
|
||||
jmouse_b(0));
|
||||
msg->mouse.left = ((jmouse_b(0) & 1) != (jmouse_b(1) & 1));
|
||||
msg->mouse.right = ((jmouse_b(0) & 2) != (jmouse_b(1) & 2));
|
||||
msg->mouse.middle = ((jmouse_b(0) & 4) != (jmouse_b(1) & 4));
|
||||
|
@ -8,6 +8,7 @@
|
||||
#define UI_MANAGER_H_INCLUDED
|
||||
|
||||
#include "base/compiler_specific.h"
|
||||
#include "ui/message_type.h"
|
||||
#include "ui/widget.h"
|
||||
|
||||
namespace she { class Display; }
|
||||
@ -85,7 +86,7 @@ namespace ui {
|
||||
static void removeWidgetFromDests(Widget* widget, Message* msg);
|
||||
static bool someParentIsFocusStop(Widget* widget);
|
||||
static Widget* findMagneticWidget(Widget* widget);
|
||||
static Message* newMouseMessage(int type, Widget* destination);
|
||||
static Message* newMouseMessage(MessageType type, Widget* destination);
|
||||
void broadcastKeyMsg(Message* msg);
|
||||
|
||||
static Manager* m_defaultManager;
|
||||
|
@ -23,28 +23,23 @@ namespace ui {
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
// Internal messages: to move between menus
|
||||
|
||||
JM_MESSAGE(open_menuitem);
|
||||
JM_MESSAGE(close_menuitem);
|
||||
JM_MESSAGE(close_popup);
|
||||
JM_MESSAGE(exe_menuitem);
|
||||
|
||||
// Extra fields for the JM_OPEN_MENUITEM message:
|
||||
// Extra fields for the kOpenMenuItemMessage message:
|
||||
// bool select_first = msg->user.a;
|
||||
// If this value is true, it means that after opening the menu, we
|
||||
// have to select the first item (i.e. highlighting it).
|
||||
#define JM_OPEN_MENUITEM jm_open_menuitem()
|
||||
RegisterMessage kOpenMenuItemMessage;
|
||||
|
||||
// Extra fields for the JM_CLOSE_MENUITEM message:
|
||||
// Extra fields for the kCloseMenuItemMessage message:
|
||||
// bool last_of_close_chain = msg->user.a;
|
||||
// This fields is used to indicate the end of a sequence of
|
||||
// JM_OPEN_MENU and JM_CLOSE_MENUITEM messages. If it is true
|
||||
// kOpenMenuItemMessage and kCloseMenuItemMessage messages. If it is true
|
||||
// the message is the last one of the chain, which means that no
|
||||
// more JM_OPEN_MENU or JM_CLOSE_MENUITEM messages are in the queue.
|
||||
#define JM_CLOSE_MENUITEM jm_close_menuitem()
|
||||
// more kOpenMenuItemMessage or kCloseMenuItemMessage messages are in the queue.
|
||||
RegisterMessage kCloseMenuItemMessage;
|
||||
|
||||
#define JM_CLOSE_POPUP jm_close_popup()
|
||||
RegisterMessage kClosePopupMessage;
|
||||
|
||||
#define JM_EXE_MENUITEM jm_exe_menuitem()
|
||||
RegisterMessage kExecuteMenuItemMessage;
|
||||
|
||||
// Data for the main jmenubar or the first popuped-jmenubox
|
||||
struct MenuBaseData
|
||||
@ -52,12 +47,12 @@ struct MenuBaseData
|
||||
// True when the menu-items must be opened with the cursor movement
|
||||
bool was_clicked : 1;
|
||||
|
||||
// True when there's JM_OPEN/CLOSE_MENUITEM messages in queue, to
|
||||
// True when there's kOpen/CloseMenuItemMessage messages in queue, to
|
||||
// avoid start processing another menuitem-request when we're
|
||||
// already working in one
|
||||
bool is_processing : 1;
|
||||
|
||||
// True when the JM_BUTTONPRESSED is being filtered
|
||||
// True when the kMouseDownMessage is being filtered
|
||||
bool is_filtering : 1;
|
||||
|
||||
bool close_all : 1;
|
||||
@ -88,7 +83,7 @@ protected:
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
// Delete this window automatically
|
||||
deferDelete();
|
||||
break;
|
||||
@ -140,7 +135,7 @@ MenuBox::~MenuBox()
|
||||
{
|
||||
if (m_base && m_base->is_filtering) {
|
||||
m_base->is_filtering = false;
|
||||
Manager::getDefault()->removeMessageFilter(JM_BUTTONPRESSED, this);
|
||||
Manager::getDefault()->removeMessageFilter(kMouseDownMessage, this);
|
||||
}
|
||||
|
||||
delete m_base;
|
||||
@ -264,7 +259,7 @@ void Menu::showPopup(int x, int y)
|
||||
MenuBaseData* base = menubox->createBase();
|
||||
base->was_clicked = true;
|
||||
base->is_filtering = true;
|
||||
Manager::getDefault()->addMessageFilter(JM_BUTTONPRESSED, menubox);
|
||||
Manager::getDefault()->addMessageFilter(kMouseDownMessage, menubox);
|
||||
|
||||
window->setMoveable(false); // Can't move the window
|
||||
|
||||
@ -299,11 +294,11 @@ bool Menu::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
getTheme()->draw_menu(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
@ -372,18 +367,18 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
/* isn't pressing a button? */
|
||||
if (!msg->mouse.flags && !get_base(this)->was_clicked)
|
||||
break;
|
||||
|
||||
// Fall though
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (menu) {
|
||||
if (get_base(this)->is_processing)
|
||||
break;
|
||||
@ -391,7 +386,7 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
// Here we catch the filtered messages (menu-bar or the
|
||||
// popuped menu-box) to detect if the user press outside of
|
||||
// the widget
|
||||
if (msg->type == JM_BUTTONPRESSED && m_base != NULL) {
|
||||
if (msg->type == kMouseDownMessage && m_base != NULL) {
|
||||
Widget* picked = getManager()->pick(msg->mouse.x, msg->mouse.y);
|
||||
|
||||
// If one of these conditions are accomplished we have to
|
||||
@ -425,14 +420,14 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
// open the submenu only if the user does click
|
||||
bool open_submenu =
|
||||
(this->type == kMenuBarWidget) ||
|
||||
(msg->type == JM_BUTTONPRESSED);
|
||||
(msg->type == kMouseDownMessage);
|
||||
|
||||
menu->highlightItem(static_cast<MenuItem*>(picked), false, open_submenu, false);
|
||||
}
|
||||
// If the user pressed in a highlighted menu-item (maybe
|
||||
// the user was waiting for the timer to open the
|
||||
// submenu...)
|
||||
else if (msg->type == JM_BUTTONPRESSED &&
|
||||
else if (msg->type == kMouseDownMessage &&
|
||||
static_cast<MenuItem*>(picked)->hasSubmenu()) {
|
||||
static_cast<MenuItem*>(picked)->stopTimer();
|
||||
|
||||
@ -448,7 +443,7 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (menu) {
|
||||
if (get_base(this)->is_processing)
|
||||
break;
|
||||
@ -459,7 +454,7 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (menu) {
|
||||
if (get_base(this)->is_processing)
|
||||
break;
|
||||
@ -475,7 +470,7 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (menu) {
|
||||
MenuItem* selected;
|
||||
|
||||
@ -652,7 +647,7 @@ bool MenuBox::onProcessMessage(Message* msg)
|
||||
break;
|
||||
|
||||
default:
|
||||
if (msg->type == JM_CLOSE_POPUP) {
|
||||
if (msg->type == kClosePopupMessage) {
|
||||
this->getManager()->_closeWindow(this->getRoot(), true);
|
||||
}
|
||||
break;
|
||||
@ -687,11 +682,11 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
getTheme()->draw_menuitem(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
// TODO theme specific!!
|
||||
invalidate();
|
||||
|
||||
@ -702,7 +697,7 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
// TODO theme specific!!
|
||||
invalidate();
|
||||
|
||||
@ -712,7 +707,7 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
break;
|
||||
|
||||
default:
|
||||
if (msg->type == JM_OPEN_MENUITEM) {
|
||||
if (msg->type == kOpenMenuItemMessage) {
|
||||
MenuBaseData* base = get_base(this);
|
||||
JRect pos;
|
||||
bool select_first = msg->user.a ? true: false;
|
||||
@ -810,7 +805,7 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
jrect_free(old_pos);
|
||||
return true;
|
||||
}
|
||||
else if (msg->type == JM_CLOSE_MENUITEM) {
|
||||
else if (msg->type == kCloseMenuItemMessage) {
|
||||
MenuBaseData* base = get_base(this);
|
||||
Window* window;
|
||||
bool last_of_close_chain = (msg->user.a ? true: false);
|
||||
@ -851,13 +846,13 @@ bool MenuItem::onProcessMessage(Message* msg)
|
||||
stopTimer();
|
||||
return true;
|
||||
}
|
||||
else if (msg->type == JM_EXE_MENUITEM) {
|
||||
else if (msg->type == kExecuteMenuItemMessage) {
|
||||
onClick();
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
if (msg->timer.timer == m_submenu_timer.get()) {
|
||||
MenuBaseData* base = get_base(this);
|
||||
|
||||
@ -1043,7 +1038,7 @@ void MenuItem::openSubmenu(bool select_first)
|
||||
}
|
||||
}
|
||||
|
||||
msg = jmessage_new(JM_OPEN_MENUITEM);
|
||||
msg = jmessage_new(kOpenMenuItemMessage);
|
||||
msg->user.a = select_first;
|
||||
jmessage_add_dest(msg, this);
|
||||
Manager::getDefault()->enqueueMessage(msg);
|
||||
@ -1057,13 +1052,13 @@ void MenuItem::openSubmenu(bool select_first)
|
||||
base->close_all = false;
|
||||
base->is_processing = true;
|
||||
|
||||
// We need to add a filter of the JM_BUTTONPRESSED to intercept
|
||||
// We need to add a filter of the kMouseDownMessage to intercept
|
||||
// clicks outside the menu (and close all the hierarchy in that
|
||||
// case); the widget to intercept messages is the base menu-bar or
|
||||
// popuped menu-box
|
||||
if (!base->is_filtering) {
|
||||
base->is_filtering = true;
|
||||
Manager::getDefault()->addMessageFilter(JM_BUTTONPRESSED, get_base_menubox(this));
|
||||
Manager::getDefault()->addMessageFilter(kMouseDownMessage, get_base_menubox(this));
|
||||
}
|
||||
}
|
||||
|
||||
@ -1089,7 +1084,7 @@ void MenuItem::closeSubmenu(bool last_of_close_chain)
|
||||
}
|
||||
|
||||
// Second: now we can close the 'menuitem'
|
||||
msg = jmessage_new(JM_CLOSE_MENUITEM);
|
||||
msg = jmessage_new(kCloseMenuItemMessage);
|
||||
msg->user.a = last_of_close_chain;
|
||||
jmessage_add_dest(msg, this);
|
||||
Manager::getDefault()->enqueueMessage(msg);
|
||||
@ -1137,7 +1132,7 @@ void Menu::closeAll()
|
||||
base->was_clicked = false;
|
||||
if (base->is_filtering) {
|
||||
base->is_filtering = false;
|
||||
Manager::getDefault()->removeMessageFilter(JM_BUTTONPRESSED, base_menubox);
|
||||
Manager::getDefault()->removeMessageFilter(kMouseDownMessage, base_menubox);
|
||||
}
|
||||
|
||||
menu->unhighlightItem();
|
||||
@ -1165,7 +1160,7 @@ void Menu::closeAll()
|
||||
|
||||
void MenuBox::closePopup()
|
||||
{
|
||||
Message* msg = jmessage_new(JM_CLOSE_POPUP);
|
||||
Message* msg = jmessage_new(kClosePopupMessage);
|
||||
jmessage_add_dest(msg, this);
|
||||
Manager::getDefault()->enqueueMessage(msg);
|
||||
}
|
||||
@ -1189,7 +1184,7 @@ void MenuBox::cancelMenuLoop()
|
||||
void MenuItem::executeClick()
|
||||
{
|
||||
// Send the message
|
||||
Message* msg = jmessage_new(JM_EXE_MENUITEM);
|
||||
Message* msg = jmessage_new(kExecuteMenuItemMessage);
|
||||
jmessage_add_dest(msg, this);
|
||||
Manager::getDefault()->enqueueMessage(msg);
|
||||
}
|
||||
|
@ -10,6 +10,7 @@
|
||||
#include "base/compiler_specific.h"
|
||||
#include "base/signal.h"
|
||||
#include "base/unique_ptr.h"
|
||||
#include "ui/register_message.h"
|
||||
#include "ui/widget.h"
|
||||
|
||||
namespace ui {
|
||||
@ -145,10 +146,10 @@ namespace ui {
|
||||
friend class MenuBox;
|
||||
};
|
||||
|
||||
int jm_open_menuitem();
|
||||
int jm_close_menuitem();
|
||||
int jm_close_popup();
|
||||
int jm_exe_menuitem();
|
||||
extern RegisterMessage kOpenMenuItemMessage;
|
||||
extern RegisterMessage kCloseMenuItemMessage;
|
||||
extern RegisterMessage kClosePopupMessage;
|
||||
extern RegisterMessage kExecuteMenuItemMessage;
|
||||
|
||||
} // namespace ui
|
||||
|
||||
|
@ -6,25 +6,19 @@
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include <allegro/keyboard.h>
|
||||
#include <string.h>
|
||||
#include "ui/message.h"
|
||||
|
||||
#include "base/memory.h"
|
||||
#include "ui/manager.h"
|
||||
#include "ui/message.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/widget.h"
|
||||
|
||||
#include <allegro/keyboard.h>
|
||||
#include <string.h>
|
||||
|
||||
namespace ui {
|
||||
|
||||
static int registered_messages = JM_REGISTERED_MESSAGES;
|
||||
|
||||
int ji_register_message_type()
|
||||
{
|
||||
return registered_messages++;
|
||||
}
|
||||
|
||||
Message* jmessage_new(int type)
|
||||
Message* jmessage_new(MessageType type)
|
||||
{
|
||||
Message* msg = new Message;
|
||||
|
||||
@ -47,7 +41,7 @@ Message* jmessage_new(int type)
|
||||
return msg;
|
||||
}
|
||||
|
||||
Message* jmessage_new_key_related(int type, int readkey_value)
|
||||
Message* jmessage_new_key_related(MessageType type, int readkey_value)
|
||||
{
|
||||
Message* msg = jmessage_new(type);
|
||||
|
||||
@ -58,8 +52,8 @@ Message* jmessage_new_key_related(int type, int readkey_value)
|
||||
msg->key.propagate_to_parent = true;
|
||||
|
||||
#if 0
|
||||
printf("%s: %i %i [%c]\n", type == JM_KEYPRESSED ? "JM_KEYPRESSED":
|
||||
"JM_KEYRELEASED",
|
||||
printf("%s: %i %i [%c]\n", type == kKeyDownMessage ? "kKeyDownMessage":
|
||||
"kKeyUpMessage",
|
||||
msg->key.scancode, msg->key.ascii, msg->key.ascii);
|
||||
fflush(stdout);
|
||||
#endif
|
||||
|
@ -8,6 +8,7 @@
|
||||
#define UI_MESSAGE_H_INCLUDED
|
||||
|
||||
#include "ui/base.h"
|
||||
#include "ui/message_type.h"
|
||||
#include "ui/rect.h"
|
||||
#include "ui/widgets_list.h"
|
||||
|
||||
@ -16,19 +17,9 @@ namespace ui {
|
||||
class Timer;
|
||||
class Widget;
|
||||
|
||||
/* TODO add mutexes */
|
||||
#define JM_MESSAGE(name) \
|
||||
static int _jm_##name = 0; \
|
||||
int jm_##name() \
|
||||
{ \
|
||||
if (!_jm_##name) \
|
||||
_jm_##name = ji_register_message_type(); \
|
||||
return _jm_##name; \
|
||||
} \
|
||||
|
||||
struct MessageAny
|
||||
{
|
||||
int type; // Type of message
|
||||
MessageType type; // Type of message
|
||||
WidgetsList* widgets; // Destination widgets
|
||||
bool used : 1; // Was used
|
||||
int shifts; // Key shifts pressed when message was created
|
||||
@ -83,7 +74,7 @@ namespace ui {
|
||||
|
||||
union Message
|
||||
{
|
||||
int type;
|
||||
MessageType type;
|
||||
MessageAny any;
|
||||
MessageKey key;
|
||||
MessageDraw draw;
|
||||
@ -93,10 +84,8 @@ namespace ui {
|
||||
MessageUser user;
|
||||
};
|
||||
|
||||
int ji_register_message_type();
|
||||
|
||||
Message* jmessage_new(int type);
|
||||
Message* jmessage_new_key_related(int type, int readkey_value);
|
||||
Message* jmessage_new(MessageType type);
|
||||
Message* jmessage_new_key_related(MessageType type, int readkey_value);
|
||||
Message* jmessage_new_copy(const Message* msg);
|
||||
Message* jmessage_new_copy_without_dests(const Message* msg);
|
||||
void jmessage_free(Message* msg);
|
||||
|
51
src/ui/message_type.h
Normal file
51
src/ui/message_type.h
Normal file
@ -0,0 +1,51 @@
|
||||
// ASEPRITE gui library
|
||||
// Copyright (C) 2001-2013 David Capello
|
||||
//
|
||||
// This source file is distributed under a BSD-like license, please
|
||||
// read LICENSE.txt for more information.
|
||||
|
||||
#ifndef UI_MESSAGE_TYPE_H_INCLUDED
|
||||
#define UI_MESSAGE_TYPE_H_INCLUDED
|
||||
|
||||
namespace ui {
|
||||
|
||||
// Message types.
|
||||
enum MessageType {
|
||||
// General messages.
|
||||
kOpenMessage, // Windows is open.
|
||||
kCloseMessage, // Windows is closed.
|
||||
kCloseAppMessage, // The user wants to close the entire application.
|
||||
kPaintMessage, // Widget needs be repainted.
|
||||
kTimerMessage, // A timer timeout.
|
||||
kResizeMessage, // Set position.
|
||||
kWinMoveMessage, // Window movement.
|
||||
kQueueProcessingMessage, // Only sent to manager which indicate
|
||||
// the last message in the queue.
|
||||
|
||||
// Keyboard related messages.
|
||||
kKeyDownMessage, // When a any key is pressed.
|
||||
kKeyUpMessage, // When a any key is released.
|
||||
kFocusEnterMessage, // Widget gets the focus.
|
||||
kFocusLeaveMessage, // Widget losts the focus.
|
||||
|
||||
// Mouse related messages.
|
||||
kMouseDownMessage, // User makes click inside a widget.
|
||||
kMouseUpMessage, // User releases mouse button in a widget.
|
||||
kDoubleClickMessage, // User makes double click in some widget.
|
||||
kMouseEnterMessage, // A widget gets mouse pointer.
|
||||
kMouseLeaveMessage, // A widget losts mouse pointer.
|
||||
kMouseMoveMessage, // User moves the mouse on some widget.
|
||||
kSetCursorMessage, // A widget needs to setup the mouse cursor.
|
||||
kMouseWheelMessage, // User moves the wheel.
|
||||
|
||||
// TODO Drag'n'drop messages...
|
||||
// k...DndMessage
|
||||
|
||||
// User widgets.
|
||||
kFirstRegisteredMessage,
|
||||
kLastRegisteredMessage = 0x7fffffff
|
||||
};
|
||||
|
||||
} // namespace ui
|
||||
|
||||
#endif // UI_MESSAGE_TYPE_H_INCLUDED
|
@ -68,16 +68,16 @@ bool PopupWindow::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
stopFilteringMessages();
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (m_hotRegion.isEmpty() && !isMoveable())
|
||||
closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (m_filtering) {
|
||||
if (msg->key.scancode == KEY_ESC ||
|
||||
msg->key.scancode == KEY_ENTER ||
|
||||
@ -93,7 +93,7 @@ bool PopupWindow::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
// If the user click outside the window, we have to close the
|
||||
// tooltip window.
|
||||
if (m_filtering) {
|
||||
@ -108,7 +108,7 @@ bool PopupWindow::onProcessMessage(Message* msg)
|
||||
closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (!isMoveable() &&
|
||||
!m_hotRegion.isEmpty() &&
|
||||
getManager()->getCapture() == NULL) {
|
||||
@ -179,9 +179,9 @@ void PopupWindow::startFilteringMessages()
|
||||
m_filtering = true;
|
||||
|
||||
Manager* manager = Manager::getDefault();
|
||||
manager->addMessageFilter(JM_MOTION, this);
|
||||
manager->addMessageFilter(JM_BUTTONPRESSED, this);
|
||||
manager->addMessageFilter(JM_KEYPRESSED, this);
|
||||
manager->addMessageFilter(kMouseMoveMessage, this);
|
||||
manager->addMessageFilter(kMouseDownMessage, this);
|
||||
manager->addMessageFilter(kKeyDownMessage, this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -191,9 +191,9 @@ void PopupWindow::stopFilteringMessages()
|
||||
m_filtering = false;
|
||||
|
||||
Manager* manager = Manager::getDefault();
|
||||
manager->removeMessageFilter(JM_MOTION, this);
|
||||
manager->removeMessageFilter(JM_BUTTONPRESSED, this);
|
||||
manager->removeMessageFilter(JM_KEYPRESSED, this);
|
||||
manager->removeMessageFilter(kMouseMoveMessage, this);
|
||||
manager->removeMessageFilter(kMouseDownMessage, this);
|
||||
manager->removeMessageFilter(kKeyDownMessage, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
20
src/ui/register_message.cpp
Normal file
20
src/ui/register_message.cpp
Normal file
@ -0,0 +1,20 @@
|
||||
// ASEPRITE gui library
|
||||
// Copyright (C) 2001-2013 David Capello
|
||||
//
|
||||
// This source file is distributed under a BSD-like license, please
|
||||
// read LICENSE.txt for more information.
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#include "ui/register_message.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
static int registered_messages = (int)kFirstRegisteredMessage;
|
||||
|
||||
RegisterMessage::RegisterMessage()
|
||||
{
|
||||
m_type = (MessageType)registered_messages++;
|
||||
}
|
||||
|
||||
} // namespace ui
|
25
src/ui/register_message.h
Normal file
25
src/ui/register_message.h
Normal file
@ -0,0 +1,25 @@
|
||||
// ASEPRITE gui library
|
||||
// Copyright (C) 2001-2013 David Capello
|
||||
//
|
||||
// This source file is distributed under a BSD-like license, please
|
||||
// read LICENSE.txt for more information.
|
||||
|
||||
#ifndef UI_REGISTER_MESSAGE_H_INCLUDED
|
||||
#define UI_REGISTER_MESSAGE_H_INCLUDED
|
||||
|
||||
#include "ui/message_type.h"
|
||||
|
||||
namespace ui {
|
||||
|
||||
class RegisterMessage
|
||||
{
|
||||
public:
|
||||
RegisterMessage();
|
||||
operator MessageType() { return m_type; }
|
||||
private:
|
||||
MessageType m_type;
|
||||
};
|
||||
|
||||
} // namespace ui
|
||||
|
||||
#endif
|
@ -53,7 +53,7 @@ bool ScrollBar::onProcessMessage(Message* msg)
|
||||
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_BUTTONPRESSED: {
|
||||
case kMouseDownMessage: {
|
||||
View* view = static_cast<View*>(getParent());
|
||||
int x1, y1, x2, y2;
|
||||
int u1, v1, u2, v2;
|
||||
@ -120,10 +120,10 @@ bool ScrollBar::onProcessMessage(Message* msg)
|
||||
setSelected(true);
|
||||
captureMouse();
|
||||
|
||||
// continue to JM_MOTION handler...
|
||||
// continue to kMouseMoveMessage handler...
|
||||
}
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
View* view = static_cast<View*>(getParent());
|
||||
int pos, len, bar_size, viewport_size;
|
||||
@ -153,13 +153,13 @@ bool ScrollBar::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
setSelected(false);
|
||||
releaseMouse();
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseLeaveMessage:
|
||||
// TODO add something to avoid this (theme specific stuff)
|
||||
invalidate();
|
||||
break;
|
||||
|
@ -29,7 +29,7 @@ bool Separator::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
getTheme()->draw_separator(this, &msg->draw.rect);
|
||||
return true;
|
||||
}
|
||||
|
@ -67,13 +67,13 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_FOCUSENTER:
|
||||
case JM_FOCUSLEAVE:
|
||||
case kFocusEnterMessage:
|
||||
case kFocusLeaveMessage:
|
||||
if (isEnabled())
|
||||
invalidate();
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (!isEnabled())
|
||||
return true;
|
||||
|
||||
@ -86,9 +86,9 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
|
||||
setupSliderCursor();
|
||||
|
||||
/* continue to JM_MOTION */
|
||||
/* continue to kMouseMoveMessage */
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
int value, accuracy, range;
|
||||
JRect rc = jwidget_get_child_rect(this);
|
||||
@ -137,7 +137,7 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
setSelected(false);
|
||||
releaseMouse();
|
||||
@ -147,8 +147,8 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseLeaveMessage:
|
||||
/* if (jwidget_is_enabled(widget) && */
|
||||
/* jwidget_has_capture(widget)) { */
|
||||
/* /\* swap the select status *\/ */
|
||||
@ -165,7 +165,7 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
invalidate();
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus()) {
|
||||
int min = m_min;
|
||||
int max = m_max;
|
||||
@ -191,7 +191,7 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_WHEEL:
|
||||
case kMouseWheelMessage:
|
||||
if (isEnabled()) {
|
||||
int value = m_value + jmouse_z(0) - jmouse_z(1);
|
||||
|
||||
@ -205,7 +205,7 @@ bool Slider::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
setupSliderCursor();
|
||||
return true;
|
||||
}
|
||||
|
@ -49,11 +49,11 @@ bool Splitter::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
layoutMembers(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (isEnabled()) {
|
||||
Widget* c1, *c2;
|
||||
int x1, y1, x2, y2;
|
||||
@ -96,7 +96,7 @@ bool Splitter::onProcessMessage(Message* msg)
|
||||
else
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (this->hasCapture()) {
|
||||
if (this->getAlign() & JI_HORIZONTAL) {
|
||||
switch (m_type) {
|
||||
@ -127,14 +127,14 @@ bool Splitter::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
return true;
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
if (isEnabled()) {
|
||||
Widget* c1, *c2;
|
||||
int x1, y1, x2, y2;
|
||||
|
@ -33,11 +33,11 @@ bool TextBox::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
getTheme()->draw_textbox(this, &msg->draw.rect);
|
||||
return true;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus()) {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
@ -95,7 +95,7 @@ bool TextBox::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED: {
|
||||
case kMouseDownMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
captureMouse();
|
||||
@ -105,7 +105,7 @@ bool TextBox::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view && hasCapture()) {
|
||||
gfx::Rect vp = view->getViewportBounds();
|
||||
@ -121,7 +121,7 @@ bool TextBox::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_BUTTONRELEASED: {
|
||||
case kMouseUpMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view && hasCapture()) {
|
||||
releaseMouse();
|
||||
@ -131,7 +131,7 @@ bool TextBox::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
gfx::Point scroll = view->getViewScroll();
|
||||
|
@ -98,7 +98,7 @@ void Timer::pollTimers()
|
||||
if (count > 0) {
|
||||
ASSERT(timer->m_owner != NULL);
|
||||
|
||||
Message* msg = jmessage_new(JM_TIMER);
|
||||
Message* msg = jmessage_new(kTimerMessage);
|
||||
msg->timer.count = count;
|
||||
msg->timer.timer = timer;
|
||||
jmessage_add_dest(msg, timer->m_owner);
|
||||
|
@ -27,10 +27,10 @@ TooltipManager::TooltipManager()
|
||||
: Widget(kGenericWidget)
|
||||
{
|
||||
Manager* manager = Manager::getDefault();
|
||||
manager->addMessageFilter(JM_MOUSEENTER, this);
|
||||
manager->addMessageFilter(JM_KEYPRESSED, this);
|
||||
manager->addMessageFilter(JM_BUTTONPRESSED, this);
|
||||
manager->addMessageFilter(JM_MOUSELEAVE, this);
|
||||
manager->addMessageFilter(kMouseEnterMessage, this);
|
||||
manager->addMessageFilter(kKeyDownMessage, this);
|
||||
manager->addMessageFilter(kMouseDownMessage, this);
|
||||
manager->addMessageFilter(kMouseLeaveMessage, this);
|
||||
|
||||
setVisible(false);
|
||||
}
|
||||
@ -50,7 +50,7 @@ bool TooltipManager::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_MOUSEENTER: {
|
||||
case kMouseEnterMessage: {
|
||||
UI_FOREACH_WIDGET(*msg->any.widgets, itWidget) {
|
||||
Tips::iterator it = m_tips.find(*itWidget);
|
||||
if (it != m_tips.end()) {
|
||||
@ -68,9 +68,9 @@ bool TooltipManager::onProcessMessage(Message* msg)
|
||||
return false;
|
||||
}
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case JM_BUTTONPRESSED:
|
||||
case JM_MOUSELEAVE:
|
||||
case kKeyDownMessage:
|
||||
case kMouseDownMessage:
|
||||
case kMouseLeaveMessage:
|
||||
if (m_tipWindow) {
|
||||
m_tipWindow->closeWindow(NULL);
|
||||
m_tipWindow.reset();
|
||||
@ -170,9 +170,9 @@ TipWindow::~TipWindow()
|
||||
{
|
||||
if (m_filtering) {
|
||||
m_filtering = false;
|
||||
getManager()->removeMessageFilter(JM_MOTION, this);
|
||||
getManager()->removeMessageFilter(JM_BUTTONPRESSED, this);
|
||||
getManager()->removeMessageFilter(JM_KEYPRESSED, this);
|
||||
getManager()->removeMessageFilter(kMouseMoveMessage, this);
|
||||
getManager()->removeMessageFilter(kMouseDownMessage, this);
|
||||
getManager()->removeMessageFilter(kKeyDownMessage, this);
|
||||
}
|
||||
}
|
||||
|
||||
@ -180,9 +180,9 @@ void TipWindow::setHotRegion(const Region& region)
|
||||
{
|
||||
if (!m_filtering) {
|
||||
m_filtering = true;
|
||||
getManager()->addMessageFilter(JM_MOTION, this);
|
||||
getManager()->addMessageFilter(JM_BUTTONPRESSED, this);
|
||||
getManager()->addMessageFilter(JM_KEYPRESSED, this);
|
||||
getManager()->addMessageFilter(kMouseMoveMessage, this);
|
||||
getManager()->addMessageFilter(kMouseDownMessage, this);
|
||||
getManager()->addMessageFilter(kKeyDownMessage, this);
|
||||
}
|
||||
|
||||
m_hotRegion = region;
|
||||
@ -202,26 +202,26 @@ bool TipWindow::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
if (m_filtering) {
|
||||
m_filtering = false;
|
||||
getManager()->removeMessageFilter(JM_MOTION, this);
|
||||
getManager()->removeMessageFilter(JM_BUTTONPRESSED, this);
|
||||
getManager()->removeMessageFilter(JM_KEYPRESSED, this);
|
||||
getManager()->removeMessageFilter(kMouseMoveMessage, this);
|
||||
getManager()->removeMessageFilter(kMouseDownMessage, this);
|
||||
getManager()->removeMessageFilter(kKeyDownMessage, this);
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (m_hotRegion.isEmpty())
|
||||
closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (m_filtering && msg->key.scancode < KEY_MODIFIERS)
|
||||
this->closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
/* if the user click outside the window, we have to close the
|
||||
tooltip window */
|
||||
if (m_filtering) {
|
||||
@ -237,7 +237,7 @@ bool TipWindow::onProcessMessage(Message* msg)
|
||||
this->closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (!m_hotRegion.isEmpty() &&
|
||||
getManager()->getCapture() == NULL) {
|
||||
// If the mouse is outside the hot-region we have to close the window
|
||||
|
@ -239,13 +239,13 @@ bool View::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
updateView();
|
||||
return true;
|
||||
|
||||
case JM_FOCUSENTER:
|
||||
case JM_FOCUSLEAVE:
|
||||
case kFocusEnterMessage:
|
||||
case kFocusLeaveMessage:
|
||||
// TODO This is theme specific stuff
|
||||
// Redraw the borders each time the focus enters or leaves the view.
|
||||
{
|
||||
|
@ -28,7 +28,7 @@ bool Viewport::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
set_position(&msg->setpos.rect);
|
||||
return true;
|
||||
}
|
||||
|
@ -888,7 +888,7 @@ void jwidget_set_rect(Widget* widget, JRect rect)
|
||||
|
||||
ASSERT_VALID_WIDGET(widget);
|
||||
|
||||
msg = jmessage_new(JM_SETPOS);
|
||||
msg = jmessage_new(kResizeMessage);
|
||||
jrect_copy(&msg->setpos.rect, rect);
|
||||
widget->sendMessage(msg);
|
||||
jmessage_free(msg);
|
||||
@ -954,7 +954,7 @@ void Widget::flushRedraw()
|
||||
const Rect& rc = *it;
|
||||
|
||||
// Create the draw message
|
||||
msg = jmessage_new(JM_DRAW);
|
||||
msg = jmessage_new(kPaintMessage);
|
||||
msg->draw.count = nrects-1 - c;
|
||||
msg->draw.rect.x1 = rc.x;
|
||||
msg->draw.rect.y1 = rc.y;
|
||||
@ -1025,7 +1025,7 @@ void Widget::scrollRegion(const Region& region, int dx, int dy)
|
||||
|
||||
mark_dirty_flag(this);
|
||||
|
||||
// Generate the JM_DRAW messages for the widget's m_updateRegion
|
||||
// Generate the kPaintMessage messages for the widget's m_updateRegion
|
||||
flushRedraw();
|
||||
}
|
||||
}
|
||||
@ -1145,7 +1145,7 @@ void Widget::releaseFocus()
|
||||
|
||||
/**
|
||||
* Captures the mouse to send all the future mouse messsages to the
|
||||
* specified widget (included the JM_MOTION and JM_SETCURSOR).
|
||||
* specified widget (included the kMouseMoveMessage and kSetCursorMessage).
|
||||
*/
|
||||
void Widget::captureMouse()
|
||||
{
|
||||
@ -1219,15 +1219,15 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_OPEN:
|
||||
case JM_CLOSE:
|
||||
case JM_WINMOVE:
|
||||
case kOpenMessage:
|
||||
case kCloseMessage:
|
||||
case kWinMoveMessage:
|
||||
// Broadcast the message to the children.
|
||||
UI_FOREACH_WIDGET(getChildren(), it)
|
||||
(*it)->sendMessage(msg);
|
||||
break;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
// With double-buffering we create a temporary bitmap to draw
|
||||
// the widget on it and then we blit the final result to the
|
||||
// real screen. Anyway, if ji_screen is not the real hardware
|
||||
@ -1265,7 +1265,7 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
return ev.isPainted();
|
||||
}
|
||||
|
||||
case JM_SETPOS: {
|
||||
case kResizeMessage: {
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
JRect cpos = jwidget_get_child_rect(this);
|
||||
|
||||
@ -1277,8 +1277,8 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case JM_KEYRELEASED:
|
||||
case kKeyDownMessage:
|
||||
case kKeyUpMessage:
|
||||
if (msg->key.propagate_to_children) {
|
||||
// Broadcast the message to the children.
|
||||
UI_FOREACH_WIDGET(getChildren(), it)
|
||||
@ -1291,18 +1291,18 @@ bool Widget::onProcessMessage(Message* msg)
|
||||
else
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case JM_BUTTONRELEASED:
|
||||
case JM_DOUBLECLICK:
|
||||
case JM_MOTION:
|
||||
case JM_WHEEL:
|
||||
case kMouseDownMessage:
|
||||
case kMouseUpMessage:
|
||||
case kDoubleClickMessage:
|
||||
case kMouseMoveMessage:
|
||||
case kMouseWheelMessage:
|
||||
// Propagate the message to the parent.
|
||||
if (getParent() != NULL)
|
||||
return getParent()->sendMessage(msg);
|
||||
else
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
// Propagate the message to the parent.
|
||||
if (getParent() != NULL)
|
||||
return getParent()->sendMessage(msg);
|
||||
|
@ -276,19 +276,19 @@ bool Window::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
windowSetPosition(&msg->setpos.rect);
|
||||
return true;
|
||||
|
||||
case JM_OPEN:
|
||||
case kOpenMessage:
|
||||
m_killer = NULL;
|
||||
break;
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
saveLayout();
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED: {
|
||||
case kMouseDownMessage: {
|
||||
if (!m_isMoveable)
|
||||
break;
|
||||
|
||||
@ -310,7 +310,7 @@ bool Window::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
jmouse_set_cursor(kArrowCursor);
|
||||
@ -325,7 +325,7 @@ bool Window::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (!m_isMoveable)
|
||||
break;
|
||||
|
||||
@ -400,7 +400,7 @@ bool Window::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
if (m_isMoveable) {
|
||||
HitTest ht = hitTest(gfx::Point(msg->mouse.x, msg->mouse.y));
|
||||
CursorType cursor = kArrowCursor;
|
||||
@ -555,8 +555,8 @@ void Window::moveWindow(JRect rect, bool use_blit)
|
||||
/* get the manager's current position */
|
||||
man_pos = jwidget_get_rect(manager);
|
||||
|
||||
/* sent a JM_WINMOVE message to the window */
|
||||
msg = jmessage_new(JM_WINMOVE);
|
||||
/* sent a kWinMoveMessage message to the window */
|
||||
msg = jmessage_new(kWinMoveMessage);
|
||||
jmessage_add_dest(msg, this);
|
||||
manager->enqueueMessage(msg);
|
||||
|
||||
@ -566,7 +566,7 @@ void Window::moveWindow(JRect rect, bool use_blit)
|
||||
// If the size of the window changes...
|
||||
if (jrect_w(old_pos) != jrect_w(rect) ||
|
||||
jrect_h(old_pos) != jrect_h(rect)) {
|
||||
// We have to change the whole positions sending JM_SETPOS
|
||||
// We have to change the whole positions sending kResizeMessage
|
||||
// messages...
|
||||
windowSetPosition(rect);
|
||||
}
|
||||
@ -591,7 +591,7 @@ void Window::moveWindow(JRect rect, bool use_blit)
|
||||
// In second place, we have to setup the window's refresh region...
|
||||
|
||||
// If "use_blit" isn't activated, we have to redraw the whole window
|
||||
// (sending JM_DRAW messages) in the new drawable region
|
||||
// (sending kPaintMessage messages) in the new drawable region
|
||||
if (!use_blit) {
|
||||
window_refresh_region = new_drawable_region;
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ bool ColorBar::ScrollableView::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
{
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
|
||||
theme->draw_bounds_nw(ji_screen,
|
||||
|
@ -95,20 +95,20 @@ bool ColorButton::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
if (m_window && m_window->isVisible())
|
||||
m_window->closeWindow(NULL);
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
StatusBar::instance()->showColor(0, "", m_color, 255);
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
StatusBar::instance()->clearText();
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
Widget* picked = getManager()->pick(msg->mouse.x, msg->mouse.y);
|
||||
app::Color color = m_color;
|
||||
@ -145,7 +145,7 @@ bool ColorButton::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
if (hasCapture()) {
|
||||
jmouse_set_cursor(kEyedropperCursor);
|
||||
return true;
|
||||
|
@ -179,7 +179,7 @@ void DocumentView::onClonedFrom(WorkspaceView* from)
|
||||
bool DocumentView::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
case JM_FOCUSENTER:
|
||||
case kFocusEnterMessage:
|
||||
m_editor->requestFocus();
|
||||
break;
|
||||
}
|
||||
|
@ -862,7 +862,7 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
|
||||
int old_cursor_thick = m_cursor_thick;
|
||||
@ -928,7 +928,7 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
if (msg->timer.timer == &m_mask_timer) {
|
||||
if (isVisible() && m_sprite) {
|
||||
drawMaskSafe();
|
||||
@ -945,30 +945,30 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
editor_update_quicktool();
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
hideDrawingCursor();
|
||||
StatusBar::instance()->clearText();
|
||||
break;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
return m_state->onMouseDown(this, msg);
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
return m_state->onMouseMove(this, msg);
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
if (m_state->onMouseUp(this, msg))
|
||||
@ -976,7 +976,7 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
bool used = m_state->onKeyDown(this, msg);
|
||||
@ -991,7 +991,7 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYRELEASED:
|
||||
case kKeyUpMessage:
|
||||
if (m_sprite) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
bool used = m_state->onKeyUp(this, msg);
|
||||
@ -1006,13 +1006,13 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_FOCUSLEAVE:
|
||||
case kFocusLeaveMessage:
|
||||
// As we use keys like Space-bar as modifier, we can clear the
|
||||
// keyboard buffer when we lost the focus.
|
||||
clear_keybuf();
|
||||
break;
|
||||
|
||||
case JM_WHEEL:
|
||||
case kMouseWheelMessage:
|
||||
if (m_sprite && hasMouse()) {
|
||||
EditorStatePtr holdState(m_state);
|
||||
if (m_state->onMouseWheel(this, msg))
|
||||
@ -1020,7 +1020,7 @@ bool Editor::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
editor_setcursor();
|
||||
return true;
|
||||
}
|
||||
|
@ -49,14 +49,14 @@ bool EditorView::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
// This avoid the displacement of the widgets in the viewport
|
||||
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
updateView();
|
||||
return true;
|
||||
|
||||
case JM_DRAW:
|
||||
case kPaintMessage:
|
||||
{
|
||||
Widget* viewport = getViewport();
|
||||
Widget* child = UI_FIRST_WIDGET(viewport->getChildren());
|
||||
|
@ -88,8 +88,8 @@ MovingPixelsState::MovingPixelsState(Editor* editor, Message* msg, PixelsMovemen
|
||||
// Add the current editor as filter for key message of the manager
|
||||
// so we can catch the Enter key, and avoid to execute the
|
||||
// PlayAnimation command.
|
||||
m_currentEditor->getManager()->addMessageFilter(JM_KEYPRESSED, m_currentEditor);
|
||||
m_currentEditor->getManager()->addMessageFilter(JM_KEYRELEASED, m_currentEditor);
|
||||
m_currentEditor->getManager()->addMessageFilter(kKeyDownMessage, m_currentEditor);
|
||||
m_currentEditor->getManager()->addMessageFilter(kKeyUpMessage, m_currentEditor);
|
||||
}
|
||||
|
||||
MovingPixelsState::~MovingPixelsState()
|
||||
@ -99,8 +99,8 @@ MovingPixelsState::~MovingPixelsState()
|
||||
|
||||
delete m_pixelsMovement;
|
||||
|
||||
m_currentEditor->getManager()->removeMessageFilter(JM_KEYPRESSED, m_currentEditor);
|
||||
m_currentEditor->getManager()->removeMessageFilter(JM_KEYRELEASED, m_currentEditor);
|
||||
m_currentEditor->getManager()->removeMessageFilter(kKeyDownMessage, m_currentEditor);
|
||||
m_currentEditor->getManager()->removeMessageFilter(kKeyUpMessage, m_currentEditor);
|
||||
}
|
||||
|
||||
EditorState::BeforeChangeAction MovingPixelsState::onBeforeChangeState(Editor* editor, EditorState* newState)
|
||||
|
@ -110,7 +110,7 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(getTheme());
|
||||
View* view = View::getView(this);
|
||||
gfx::Rect vp = view->getViewportBounds();
|
||||
@ -239,10 +239,10 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
captureMouse();
|
||||
|
||||
case JM_MOTION:
|
||||
case kMouseMoveMessage:
|
||||
if (hasCapture()) {
|
||||
int th = jwidget_get_text_height(this);
|
||||
int y = this->rc->y1;
|
||||
@ -278,13 +278,13 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture()) {
|
||||
releaseMouse();
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (hasFocus()) {
|
||||
int select = getSelectedIndex();
|
||||
View* view = View::getView(this);
|
||||
@ -387,7 +387,7 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
gfx::Point scroll = view->getViewScroll();
|
||||
@ -397,7 +397,7 @@ bool FileList::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_DOUBLECLICK:
|
||||
case kDoubleClickMessage:
|
||||
if (m_selected) {
|
||||
if (m_selected->isBrowsable()) {
|
||||
setCurrentFolder(m_selected);
|
||||
|
@ -112,7 +112,7 @@ public:
|
||||
|
||||
protected:
|
||||
virtual bool onProcessMessage(Message* msg) OVERRIDE {
|
||||
if (msg->type == JM_KEYRELEASED && msg->key.ascii >= 32) {
|
||||
if (msg->type == kKeyUpMessage && msg->key.ascii >= 32) {
|
||||
// Check if all keys are released
|
||||
for (int c=0; c<KEY_MAX; ++c) {
|
||||
if (key[c])
|
||||
|
@ -50,7 +50,7 @@ bool MenuItem2::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_OPEN: {
|
||||
case kOpenMessage: {
|
||||
UIContext* context = UIContext::instance();
|
||||
|
||||
if (m_command) {
|
||||
@ -63,13 +63,13 @@ bool MenuItem2::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
// disable the menu (the keyboard shortcuts are processed by "manager_msg_proc")
|
||||
setEnabled(false);
|
||||
break;
|
||||
|
||||
default:
|
||||
if (msg->type == jm_open_menuitem()) {
|
||||
if (msg->type == kOpenMenuItemMessage) {
|
||||
// Update the context flags after opening the menuitem's
|
||||
// submenu to update the "enabled" flag of each command
|
||||
// correctly.
|
||||
|
@ -98,7 +98,7 @@ protected:
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETCURSOR:
|
||||
case kSetCursorMessage:
|
||||
jmouse_set_cursor(kArrowCursor);
|
||||
return true;
|
||||
}
|
||||
|
@ -202,7 +202,7 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
if (!m_isUpdatingColumns) {
|
||||
m_isUpdatingColumns = true;
|
||||
View* view = View::getView(this);
|
||||
@ -216,7 +216,7 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
div_t d = div(Palette::MaxColors, m_columns);
|
||||
int cols = m_columns;
|
||||
int rows = d.quot + ((d.rem)? 1: 0);
|
||||
@ -276,11 +276,11 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
captureMouse();
|
||||
/* continue... */
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
JRect cpos = jwidget_get_child_rect(this);
|
||||
|
||||
int req_w, req_h;
|
||||
@ -317,11 +317,11 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
releaseMouse();
|
||||
return true;
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
View* view = View::getView(this);
|
||||
if (view) {
|
||||
gfx::Point scroll = view->getViewScroll();
|
||||
@ -331,7 +331,7 @@ bool PaletteView::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
StatusBar::instance()->clearText();
|
||||
break;
|
||||
|
||||
|
@ -64,12 +64,12 @@ bool PopupWindowPin::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_OPEN:
|
||||
case kOpenMessage:
|
||||
m_pin.setSelected(false);
|
||||
makeFixed();
|
||||
break;
|
||||
|
||||
case JM_CLOSE:
|
||||
case kCloseMessage:
|
||||
m_pin.setSelected(false);
|
||||
break;
|
||||
|
||||
|
@ -108,12 +108,12 @@ public:
|
||||
switch (msg->type) {
|
||||
// When the mouse enter in this entry, it got the focus and the
|
||||
// text is automatically selected.
|
||||
case JM_MOUSEENTER:
|
||||
case kMouseEnterMessage:
|
||||
requestFocus();
|
||||
selectText(0, -1);
|
||||
break;
|
||||
|
||||
case JM_KEYPRESSED:
|
||||
case kKeyDownMessage:
|
||||
if (msg->key.scancode == KEY_ENTER ||
|
||||
msg->key.scancode == KEY_ENTER_PAD) {
|
||||
Command* cmd = CommandsModule::instance()->getCommandByName(CommandId::GotoFrame);
|
||||
@ -165,7 +165,7 @@ StatusBar::StatusBar()
|
||||
|
||||
// The extra pixel in left and right borders are necessary so
|
||||
// m_commandsBox and m_movePixelsBox do not overlap the upper-left
|
||||
// and upper-right pixels drawn in JM_DRAW message (see putpixels)
|
||||
// and upper-right pixels drawn in kPaintMessage message (see putpixels)
|
||||
jwidget_set_border(this, 1*jguiscale(), 0, 1*jguiscale(), 0);
|
||||
|
||||
// Construct the commands box
|
||||
@ -472,7 +472,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
{
|
||||
JRect rc = jrect_new_copy(this->rc);
|
||||
@ -496,7 +496,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
}
|
||||
return true;
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
ui::Color text_color = theme->getColor(ThemeColor::Text);
|
||||
ui::Color face_color = theme->getColor(ThemeColor::Face);
|
||||
@ -672,7 +672,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_MOUSEENTER: {
|
||||
case kMouseEnterMessage: {
|
||||
const Document* document = UIContext::instance()->getActiveDocument();
|
||||
bool state = (document != NULL);
|
||||
|
||||
@ -702,7 +702,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
JRect rc = jwidget_get_rect(this);
|
||||
|
||||
rc->x1 += 2*jguiscale();
|
||||
@ -765,7 +765,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
// When the user press the mouse-button over a hot-layer-button...
|
||||
if (m_hot_layer >= 0) {
|
||||
try {
|
||||
@ -792,7 +792,7 @@ bool StatusBar::onProcessMessage(Message* msg)
|
||||
}
|
||||
break;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (hasChild(m_commandsBox)) {
|
||||
// If we want restore the state-bar and the slider doesn't have
|
||||
// the capture...
|
||||
@ -826,7 +826,7 @@ bool StatusBar::CustomizedTipWindow::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
closeWindow(NULL);
|
||||
break;
|
||||
}
|
||||
|
@ -244,12 +244,12 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_SETPOS:
|
||||
case kResizeMessage:
|
||||
jrect_copy(this->rc, &msg->setpos.rect);
|
||||
setScrollX(m_scrollX);
|
||||
return true;
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
BITMAP *doublebuffer = create_bitmap(jrect_w(&msg->draw.rect),
|
||||
jrect_h(&msg->draw.rect));
|
||||
@ -336,19 +336,19 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_MOUSEENTER:
|
||||
case JM_MOTION:
|
||||
case kMouseEnterMessage:
|
||||
case kMouseMoveMessage:
|
||||
calculateHot();
|
||||
return true;
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
if (m_hot != NULL) {
|
||||
m_hot = NULL;
|
||||
invalidate();
|
||||
}
|
||||
return true;
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (m_hot != NULL) {
|
||||
if (m_selected != m_hot) {
|
||||
m_selected = m_hot;
|
||||
@ -362,7 +362,7 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
}
|
||||
return true;
|
||||
|
||||
case JM_WHEEL: {
|
||||
case kMouseWheelMessage: {
|
||||
int dx = (jmouse_z(1) - jmouse_z(0)) * jrect_w(this->rc)/6;
|
||||
// setScrollX(m_scrollX+dx);
|
||||
|
||||
@ -382,7 +382,7 @@ bool Tabs::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_TIMER: {
|
||||
case kTimerMessage: {
|
||||
switch (m_ani) {
|
||||
case ANI_NONE:
|
||||
// Do nothing
|
||||
@ -709,12 +709,12 @@ bool Tabs::ScrollButton::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
captureMouse();
|
||||
m_tabs->startScrolling();
|
||||
return true;
|
||||
|
||||
case JM_BUTTONRELEASED:
|
||||
case kMouseUpMessage:
|
||||
if (hasCapture())
|
||||
releaseMouse();
|
||||
|
||||
|
@ -126,7 +126,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
BITMAP *doublebuffer = create_bitmap(jrect_w(&msg->draw.rect),
|
||||
jrect_h(&msg->draw.rect));
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
@ -217,7 +217,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED: {
|
||||
case kMouseDownMessage: {
|
||||
ToolBox* toolbox = App::instance()->getToolBox();
|
||||
int groups = toolbox->getGroupsCount();
|
||||
Rect toolrc;
|
||||
@ -258,7 +258,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
ToolBox* toolbox = App::instance()->getToolBox();
|
||||
int groups = toolbox->getGroupsCount();
|
||||
Tool* new_hot_tool = NULL;
|
||||
@ -310,7 +310,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_MOUSELEAVE:
|
||||
case kMouseLeaveMessage:
|
||||
closeTipWindow();
|
||||
|
||||
if (!m_popupWindow)
|
||||
@ -323,7 +323,7 @@ bool ToolBar::onProcessMessage(Message* msg)
|
||||
StatusBar::instance()->clearText();
|
||||
break;
|
||||
|
||||
case JM_TIMER:
|
||||
case kTimerMessage:
|
||||
if (msg->timer.timer == &m_tipTimer) {
|
||||
if (m_tipWindow)
|
||||
m_tipWindow->openWindow();
|
||||
@ -403,11 +403,11 @@ void ToolBar::openPopupWindow(int group_index, ToolGroup* tool_group)
|
||||
rc.x -= w;
|
||||
rc.w = w;
|
||||
|
||||
// Redraw the overlapped area and save it to use it in the ToolStrip::onProcessMessage(JM_DRAW)
|
||||
// Redraw the overlapped area and save it to use it in the ToolStrip::onProcessMessage(kPaintMessage)
|
||||
{
|
||||
getManager()->invalidateRect(rc);
|
||||
|
||||
// Flush JM_DRAW messages and send them
|
||||
// Flush kPaintMessage messages and send them
|
||||
getManager()->flushRedraw();
|
||||
getManager()->dispatchMessages();
|
||||
|
||||
@ -543,7 +543,7 @@ void ToolBar::closeTipWindow()
|
||||
delete m_tipWindow;
|
||||
m_tipWindow = NULL;
|
||||
|
||||
// Flush JM_DRAW messages and send them
|
||||
// Flush kPaintMessage messages and send them
|
||||
getManager()->flushRedraw();
|
||||
getManager()->dispatchMessages();
|
||||
}
|
||||
@ -606,7 +606,7 @@ bool ToolStrip::onProcessMessage(Message* msg)
|
||||
{
|
||||
switch (msg->type) {
|
||||
|
||||
case JM_DRAW: {
|
||||
case kPaintMessage: {
|
||||
BITMAP *doublebuffer = create_bitmap(jrect_w(&msg->draw.rect),
|
||||
jrect_h(&msg->draw.rect));
|
||||
SkinTheme* theme = static_cast<SkinTheme*>(this->getTheme());
|
||||
@ -661,7 +661,7 @@ bool ToolStrip::onProcessMessage(Message* msg)
|
||||
return true;
|
||||
}
|
||||
|
||||
case JM_MOTION: {
|
||||
case kMouseMoveMessage: {
|
||||
ToolBox* toolbox = App::instance()->getToolBox();
|
||||
Tool* hot_tool = NULL;
|
||||
Rect toolrc;
|
||||
@ -695,7 +695,7 @@ bool ToolStrip::onProcessMessage(Message* msg)
|
||||
break;
|
||||
}
|
||||
|
||||
case JM_BUTTONPRESSED:
|
||||
case kMouseDownMessage:
|
||||
if (m_hot_tool) {
|
||||
m_toolbar->selectTool(m_hot_tool);
|
||||
closeWindow();
|
||||
|
Loading…
x
Reference in New Issue
Block a user