mirror of
https://github.com/korenkonder/ReDIVA.git
synced 2026-10-02 03:37:55 +03:00
dw_gui: Named functions in Drag Bounds Listener
This commit is contained in:
+45
-30
@@ -37,9 +37,9 @@ namespace dw {
|
||||
void AddDragBoundsListener(DragBoundsListener* value);
|
||||
void RemoveDragBoundsListener(DragBoundsListener* value);
|
||||
|
||||
void sub_1402E5020(Widget* widget, bool a3);
|
||||
void sub_1402E5EA0(Widget* widget);
|
||||
void sub_1402E68E0(Widget* widget);
|
||||
void CallOnEnd(Widget* widget, bool release);
|
||||
void CallOnMove(Widget* widget);
|
||||
void CallOnStart(Widget* widget);
|
||||
};
|
||||
|
||||
class DragBoundsControl : public Control {
|
||||
@@ -426,7 +426,7 @@ namespace dw {
|
||||
callback(data->widget);
|
||||
}
|
||||
|
||||
Widget::DragBoundsCallbackData::DragBoundsCallbackData() : widget(), field_8() {
|
||||
Widget::DragBoundsCallbackData::DragBoundsCallbackData() : widget(), release() {
|
||||
|
||||
}
|
||||
|
||||
@@ -2105,6 +2105,10 @@ namespace dw {
|
||||
items.push_back(str);
|
||||
}
|
||||
|
||||
void List::AddSelection(int32_t value) {
|
||||
selections.push_back(value);
|
||||
}
|
||||
|
||||
void List::AddSelectionListener(SelectionListener* value) {
|
||||
selection_listeners.push_back(value);
|
||||
}
|
||||
@@ -3699,6 +3703,14 @@ void dw_gui_ctrl_disp() {
|
||||
dw_gui_detail_display->Draw();
|
||||
};
|
||||
|
||||
void dw_gui_detail_display_add_drag_bounds_listener(dw::DragBoundsListener* value) {
|
||||
dw_gui_detail_display->drag_bounds_control->data.AddDragBoundsListener(value);
|
||||
}
|
||||
|
||||
void dw_gui_detail_display_remove_drag_bounds_listener(dw::DragBoundsListener* value) {
|
||||
dw_gui_detail_display->drag_bounds_control->data.RemoveDragBoundsListener(value);
|
||||
}
|
||||
|
||||
void dw_info_window_init() {
|
||||
if (dw::info_window_ptr)
|
||||
dw::info_window_ptr->Disp();
|
||||
@@ -3749,7 +3761,7 @@ namespace dw {
|
||||
state = 1;
|
||||
start_pos = data.pos;
|
||||
end_pos = data.pos;
|
||||
sub_1402E68E0(data.widget);
|
||||
CallOnStart(data.widget);
|
||||
}
|
||||
|
||||
void DragBoundsData::OnRelease(const Widget::MouseCallbackData& data) {
|
||||
@@ -3757,7 +3769,7 @@ namespace dw {
|
||||
return;
|
||||
|
||||
state = 0;
|
||||
sub_1402E5020(data.widget, true);
|
||||
CallOnEnd(data.widget, true);
|
||||
}
|
||||
|
||||
void DragBoundsData::OnMove(const Widget::MouseCallbackData& data) {
|
||||
@@ -3766,11 +3778,11 @@ namespace dw {
|
||||
|
||||
if (data.state & dw::INPUT_STATE_ALT) {
|
||||
state = 0;
|
||||
sub_1402E5020(data.widget, false);
|
||||
CallOnEnd(data.widget, false);
|
||||
}
|
||||
else {
|
||||
end_pos = data.pos;
|
||||
sub_1402E5EA0(data.widget);
|
||||
CallOnMove(data.widget);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3779,7 +3791,7 @@ namespace dw {
|
||||
return;
|
||||
|
||||
state = 0;
|
||||
sub_1402E5020(data.widget, false);
|
||||
CallOnEnd(data.widget, false);
|
||||
}
|
||||
|
||||
void DragBoundsData::AddDragBoundsListener(DragBoundsListener* value) {
|
||||
@@ -3801,37 +3813,40 @@ namespace dw {
|
||||
i++;
|
||||
}
|
||||
|
||||
void DragBoundsData::sub_1402E5020(Widget* widget, bool a3) {
|
||||
Widget::DragBoundsCallbackData v8;
|
||||
v8.widget = widget;
|
||||
v8.field_8 = a3;
|
||||
v8.rect.pos = start_pos;
|
||||
v8.rect.size = end_pos - start_pos;
|
||||
// 0x1402E5020
|
||||
void DragBoundsData::CallOnEnd(Widget* widget, bool release) {
|
||||
Widget::DragBoundsCallbackData data;
|
||||
data.widget = widget;
|
||||
data.release = release;
|
||||
data.rect.pos = start_pos;
|
||||
data.rect.size = end_pos - start_pos;
|
||||
|
||||
for (DragBoundsListener*& i : drag_bounds_listeners)
|
||||
i->Field_10(v8);
|
||||
i->OnEnd(data);
|
||||
}
|
||||
|
||||
void DragBoundsData::sub_1402E5EA0(Widget* widget) {
|
||||
Widget::DragBoundsCallbackData v7;
|
||||
v7.widget = widget;
|
||||
v7.field_8 = true;
|
||||
v7.rect.pos = start_pos;
|
||||
v7.rect.size = end_pos - start_pos;
|
||||
// 0x1402E5EA0
|
||||
void DragBoundsData::CallOnMove(Widget* widget) {
|
||||
Widget::DragBoundsCallbackData data;
|
||||
data.widget = widget;
|
||||
data.release = true;
|
||||
data.rect.pos = start_pos;
|
||||
data.rect.size = end_pos - start_pos;
|
||||
|
||||
for (DragBoundsListener*& i : drag_bounds_listeners)
|
||||
i->Field_18(v7);
|
||||
i->OnMove(data);
|
||||
}
|
||||
|
||||
void DragBoundsData::sub_1402E68E0(Widget* widget) {
|
||||
Widget::DragBoundsCallbackData v7;
|
||||
v7.widget = widget;
|
||||
v7.field_8 = true;
|
||||
v7.rect.pos = start_pos;
|
||||
v7.rect.size = end_pos - start_pos;
|
||||
// 0x1402E68E0
|
||||
void DragBoundsData::CallOnStart(Widget* widget) {
|
||||
Widget::DragBoundsCallbackData data;
|
||||
data.widget = widget;
|
||||
data.release = true;
|
||||
data.rect.pos = start_pos;
|
||||
data.rect.size = end_pos - start_pos;
|
||||
|
||||
for (DragBoundsListener*& i : drag_bounds_listeners)
|
||||
i->Field_8(v7);
|
||||
i->OnStart(data);
|
||||
}
|
||||
|
||||
DragBoundsControl::DragBoundsControl(Composite* parent, Flags flags) : Control(parent, flags) {
|
||||
|
||||
+13
-4
@@ -301,7 +301,7 @@ namespace dw {
|
||||
|
||||
struct DragBoundsCallbackData {
|
||||
Widget* widget;
|
||||
bool field_8;
|
||||
bool release;
|
||||
rectangle rect;
|
||||
|
||||
DragBoundsCallbackData();
|
||||
@@ -540,9 +540,9 @@ namespace dw {
|
||||
DragBoundsListener();
|
||||
virtual ~DragBoundsListener();
|
||||
|
||||
virtual void Field_8(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
virtual void Field_10(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
virtual void Field_18(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
virtual void OnStart(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
virtual void OnEnd(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
virtual void OnMove(const Widget::DragBoundsCallbackData& data) = 0;
|
||||
};
|
||||
|
||||
class KeyListener {
|
||||
@@ -718,6 +718,7 @@ namespace dw {
|
||||
|
||||
void AddItem(const std::string& str);
|
||||
void AddItem(const std::wstring& str);
|
||||
void AddSelection(int32_t value);
|
||||
void AddSelectionListener(SelectionListener* value);
|
||||
void Callback(SelectionListener::CallbackData* data);
|
||||
bool CheckItemSelected(size_t index);
|
||||
@@ -801,6 +802,11 @@ namespace dw {
|
||||
list->AddItem(str);
|
||||
}
|
||||
|
||||
inline void AddSelection(int32_t value) {
|
||||
if (list)
|
||||
list->AddSelection(value);
|
||||
}
|
||||
|
||||
inline void AddSelectionListener(SelectionListener* value) {
|
||||
if (list)
|
||||
list->AddSelectionListener(value);
|
||||
@@ -1178,6 +1184,9 @@ extern void dw_free();
|
||||
|
||||
extern void dw_gui_ctrl_disp();
|
||||
|
||||
extern void dw_gui_detail_display_add_drag_bounds_listener(dw::DragBoundsListener* value);
|
||||
extern void dw_gui_detail_display_remove_drag_bounds_listener(dw::DragBoundsListener* value);
|
||||
|
||||
extern void dw_info_window_init();
|
||||
|
||||
extern void dw_sys_menu_init(dw::Shell* shell);
|
||||
|
||||
Reference in New Issue
Block a user