mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-26 18:41:20 +00:00
Move button to delete shortcuts from SelectAccelerator to KeyItem
This commit is contained in:
parent
f939ef5f02
commit
d90150fed9
@ -27,7 +27,6 @@
|
||||
<box horizontal="true" homogeneous="true">
|
||||
<button text="OK" id="ok_button" magnet="true" width="60" />
|
||||
<button text="Cancel" id="cancel_button" />
|
||||
<button text="Delete" id="delete_button" />
|
||||
</box>
|
||||
</box>
|
||||
|
||||
|
@ -60,6 +60,7 @@ public:
|
||||
, m_menuitem(menuitem)
|
||||
, m_level(level)
|
||||
, m_changeButton(NULL)
|
||||
, m_deleteButton(NULL)
|
||||
, m_addButton(NULL)
|
||||
, m_hotAccel(-1) {
|
||||
this->border_width.t = this->border_width.b = 0;
|
||||
@ -80,25 +81,33 @@ public:
|
||||
|
||||
private:
|
||||
|
||||
void onChangeAccel() {
|
||||
Accelerator origAccel = m_key->accels()[m_hotAccel];
|
||||
SelectAccelerator window(origAccel, true);
|
||||
void onChangeAccel(int index) {
|
||||
Accelerator origAccel = m_key->accels()[index];
|
||||
SelectAccelerator window(origAccel);
|
||||
window.openWindowInForeground();
|
||||
|
||||
if (window.isModified()) {
|
||||
m_key->disableAccel(origAccel);
|
||||
m_key->add(window.accel(), KeySource::UserDefined);
|
||||
}
|
||||
else if (window.isDeleted()) {
|
||||
m_key->disableAccel(origAccel);
|
||||
}
|
||||
|
||||
getRoot()->layout();
|
||||
}
|
||||
|
||||
void onDeleteAccel(int index)
|
||||
{
|
||||
if (Alert::show("Warning"
|
||||
"<<Do you really want to delete this keyboard shortcut?"
|
||||
"||&Yes||&No") != 1)
|
||||
return;
|
||||
|
||||
m_key->disableAccel(m_key->accels()[index]);
|
||||
getRoot()->layout();
|
||||
}
|
||||
|
||||
void onAddAccel() {
|
||||
ui::Accelerator accel;
|
||||
SelectAccelerator window(accel, false);
|
||||
SelectAccelerator window(accel);
|
||||
window.openWindowInForeground();
|
||||
|
||||
if (window.isModified()) {
|
||||
@ -216,19 +225,38 @@ private:
|
||||
6*jguiscale(), 1*jguiscale()));
|
||||
|
||||
if (accels && i < (int)accels->size() &&
|
||||
itemBounds.contains(mouseMsg->position())) {
|
||||
mouseMsg->position().y >= itemBounds.y &&
|
||||
mouseMsg->position().y < itemBounds.y+itemBounds.h) {
|
||||
hotAccel = i;
|
||||
|
||||
if (!m_changeButton) {
|
||||
m_changeButton = new Button("");
|
||||
m_changeButton->Click.connect(Bind<void>(&KeyItem::onChangeAccel, this));
|
||||
m_changeButton->Click.connect(Bind<void>(&KeyItem::onChangeAccel, this, i));
|
||||
setup_mini_look(m_changeButton);
|
||||
addChild(m_changeButton);
|
||||
}
|
||||
|
||||
if (!m_deleteButton) {
|
||||
m_deleteButton = new Button("");
|
||||
m_deleteButton->Click.connect(Bind<void>(&KeyItem::onDeleteAccel, this, i));
|
||||
setup_mini_look(m_deleteButton);
|
||||
addChild(m_deleteButton);
|
||||
}
|
||||
|
||||
m_changeButton->setBgColor(gfx::ColorNone);
|
||||
m_changeButton->setBounds(itemBounds);
|
||||
m_changeButton->setText((*accels)[i].toString());
|
||||
|
||||
const char* label = "x";
|
||||
m_deleteButton->setBgColor(gfx::ColorNone);
|
||||
m_deleteButton->setBounds(gfx::Rect(
|
||||
itemBounds.x + itemBounds.w + 2*jguiscale(),
|
||||
itemBounds.y,
|
||||
Graphics::measureUIStringLength(
|
||||
label, getFont()) + 4*jguiscale(),
|
||||
itemBounds.h));
|
||||
m_deleteButton->setText(label);
|
||||
|
||||
invalidate();
|
||||
}
|
||||
|
||||
@ -266,8 +294,10 @@ private:
|
||||
|
||||
void destroyButtons() {
|
||||
delete m_changeButton;
|
||||
delete m_deleteButton;
|
||||
delete m_addButton;
|
||||
m_changeButton = NULL;
|
||||
m_deleteButton = NULL;
|
||||
m_addButton = NULL;
|
||||
}
|
||||
|
||||
@ -277,6 +307,7 @@ private:
|
||||
int m_level;
|
||||
ui::Accelerators m_newAccels;
|
||||
ui::Button* m_changeButton;
|
||||
ui::Button* m_deleteButton;
|
||||
ui::Button* m_addButton;
|
||||
int m_hotAccel;
|
||||
};
|
||||
|
@ -76,10 +76,9 @@ protected:
|
||||
Accelerator m_accel;
|
||||
};
|
||||
|
||||
SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel, bool canDelete)
|
||||
SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel)
|
||||
: m_keyField(new KeyField(accel))
|
||||
, m_accel(accel)
|
||||
, m_deleted(false)
|
||||
, m_modified(false)
|
||||
{
|
||||
updateModifiers();
|
||||
@ -97,11 +96,6 @@ SelectAccelerator::SelectAccelerator(const ui::Accelerator& accel, bool canDelet
|
||||
clearButton()->Click.connect(Bind<void>(&SelectAccelerator::onClear, this));
|
||||
okButton()->Click.connect(Bind<void>(&SelectAccelerator::onOK, this));
|
||||
cancelButton()->Click.connect(Bind<void>(&SelectAccelerator::onCancel, this));
|
||||
|
||||
if (canDelete)
|
||||
deleteButton()->Click.connect(Bind<void>(&SelectAccelerator::onDelete, this));
|
||||
else
|
||||
deleteButton()->setVisible(false);
|
||||
}
|
||||
|
||||
void SelectAccelerator::onModifierChange(KeyModifiers modifier, CheckBox* checkbox)
|
||||
@ -146,17 +140,6 @@ void SelectAccelerator::onCancel()
|
||||
closeWindow(NULL);
|
||||
}
|
||||
|
||||
void SelectAccelerator::onDelete()
|
||||
{
|
||||
if (Alert::show("Warning"
|
||||
"<<Do you really want to delete this keyboard shortcut?"
|
||||
"||&Yes||&No") != 1)
|
||||
return;
|
||||
|
||||
m_deleted = true;
|
||||
closeWindow(NULL);
|
||||
}
|
||||
|
||||
void SelectAccelerator::updateModifiers()
|
||||
{
|
||||
alt()->setSelected(m_accel.modifiers() & kKeyAltModifier ? true: false);
|
||||
|
@ -28,9 +28,8 @@ namespace app {
|
||||
|
||||
class SelectAccelerator : public app::gen::SelectAccelerator {
|
||||
public:
|
||||
explicit SelectAccelerator(const ui::Accelerator& accelerator, bool canDelete);
|
||||
explicit SelectAccelerator(const ui::Accelerator& accelerator);
|
||||
|
||||
bool isDeleted() const { return m_deleted; }
|
||||
bool isModified() const { return m_modified; }
|
||||
const ui::Accelerator& accel() const { return m_accel; }
|
||||
|
||||
@ -40,7 +39,6 @@ namespace app {
|
||||
void onClear();
|
||||
void onOK();
|
||||
void onCancel();
|
||||
void onDelete();
|
||||
void updateModifiers();
|
||||
void updateAssignedTo();
|
||||
|
||||
@ -49,7 +47,6 @@ namespace app {
|
||||
KeyField* m_keyField;
|
||||
ui::Accelerator m_origAccel;
|
||||
ui::Accelerator m_accel;
|
||||
bool m_deleted;
|
||||
bool m_modified;
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user