Committing patch by Justin O'Dell to fix the Defaults buttons on several
preferences apps. This fixes most of bug #254. This is his first contribution to Haiku, and hopefully the first of many. Thanks Justin! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21992 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -391,6 +391,29 @@ FontSelectionView::Revert()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
FontSelectionView::IsDefaultable()
|
||||||
|
{
|
||||||
|
font_family default_family;
|
||||||
|
font_style default_style;
|
||||||
|
float default_size;
|
||||||
|
|
||||||
|
if (_get_system_default_font_(Name(), default_family, default_style, &default_size) != B_OK)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
font_family current_family;
|
||||||
|
font_style current_style;
|
||||||
|
float current_size;
|
||||||
|
|
||||||
|
fCurrentFont.GetFamilyAndStyle(¤t_family, ¤t_style);
|
||||||
|
current_size = fCurrentFont.Size();
|
||||||
|
|
||||||
|
return strcmp(current_family, default_family) != 0
|
||||||
|
|| strcmp(current_style, default_style) != 0
|
||||||
|
|| current_size != default_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
FontSelectionView::IsRevertable()
|
FontSelectionView::IsRevertable()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ class FontSelectionView : public BView {
|
|||||||
|
|
||||||
void SetDefaults();
|
void SetDefaults();
|
||||||
void Revert();
|
void Revert();
|
||||||
|
bool IsDefaultable();
|
||||||
bool IsRevertable();
|
bool IsRevertable();
|
||||||
|
|
||||||
void UpdateFontsMenu();
|
void UpdateFontsMenu();
|
||||||
|
|||||||
@@ -93,6 +93,13 @@ FontView::RelayoutIfNeeded()
|
|||||||
fFixedView->RelayoutIfNeeded();
|
fFixedView->RelayoutIfNeeded();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
FontView::IsDefaultable()
|
||||||
|
{
|
||||||
|
return fPlainView->IsDefaultable()
|
||||||
|
|| fBoldView->IsDefaultable()
|
||||||
|
|| fFixedView->IsDefaultable();
|
||||||
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
FontView::IsRevertable()
|
FontView::IsRevertable()
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ class FontView : public BView {
|
|||||||
void UpdateFonts();
|
void UpdateFonts();
|
||||||
void RelayoutIfNeeded();
|
void RelayoutIfNeeded();
|
||||||
|
|
||||||
|
bool IsDefaultable();
|
||||||
bool IsRevertable();
|
bool IsRevertable();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -35,15 +35,16 @@ MainWindow::MainWindow()
|
|||||||
|
|
||||||
rect.left = 10;
|
rect.left = 10;
|
||||||
rect.top = rect.bottom - 10;
|
rect.top = rect.bottom - 10;
|
||||||
BButton *button = new BButton(rect, "defaults", "Defaults",
|
fDefaultsButton = new BButton(rect, "defaults", "Defaults",
|
||||||
new BMessage(kMsgSetDefaults), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM, B_WILL_DRAW);
|
new BMessage(kMsgSetDefaults), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM, B_WILL_DRAW);
|
||||||
button->ResizeToPreferred();
|
fDefaultsButton->ResizeToPreferred();
|
||||||
float buttonHeight = button->Bounds().Height();
|
fDefaultsButton->SetEnabled(false);
|
||||||
button->MoveBy(0, -buttonHeight);
|
float buttonHeight = fDefaultsButton->Bounds().Height();
|
||||||
view->AddChild(button);
|
fDefaultsButton->MoveBy(0, -buttonHeight);
|
||||||
|
view->AddChild(fDefaultsButton);
|
||||||
|
|
||||||
rect = button->Frame();
|
rect = fDefaultsButton->Frame();
|
||||||
rect.OffsetBy(button->Bounds().Width() + 10, 0);
|
rect.OffsetBy(fDefaultsButton->Bounds().Width() + 10, 0);
|
||||||
|
|
||||||
fRevertButton = new BButton(rect, "revert", "Revert",
|
fRevertButton = new BButton(rect, "revert", "Revert",
|
||||||
new BMessage(kMsgRevert), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM, B_WILL_DRAW);
|
new BMessage(kMsgRevert), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM, B_WILL_DRAW);
|
||||||
@@ -99,6 +100,8 @@ MainWindow::MainWindow()
|
|||||||
|
|
||||||
fRunner = new BMessageRunner(this, new BMessage(kMsgCheckFonts), 3000000);
|
fRunner = new BMessageRunner(this, new BMessage(kMsgCheckFonts), 3000000);
|
||||||
// every 3 seconds
|
// every 3 seconds
|
||||||
|
|
||||||
|
fDefaultsButton->SetEnabled(fFontsView->IsDefaultable());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -123,16 +126,19 @@ MainWindow::MessageReceived(BMessage *message)
|
|||||||
{
|
{
|
||||||
switch (message->what) {
|
switch (message->what) {
|
||||||
case kMsgUpdate:
|
case kMsgUpdate:
|
||||||
|
fDefaultsButton->SetEnabled(fFontsView->IsDefaultable());
|
||||||
fRevertButton->SetEnabled(fFontsView->IsRevertable());
|
fRevertButton->SetEnabled(fFontsView->IsRevertable());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kMsgSetDefaults:
|
case kMsgSetDefaults:
|
||||||
fFontsView->SetDefaults();
|
fFontsView->SetDefaults();
|
||||||
|
fDefaultsButton->SetEnabled(false);
|
||||||
fRevertButton->SetEnabled(fFontsView->IsRevertable());
|
fRevertButton->SetEnabled(fFontsView->IsRevertable());
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kMsgRevert:
|
case kMsgRevert:
|
||||||
fFontsView->Revert();
|
fFontsView->Revert();
|
||||||
|
fDefaultsButton->SetEnabled(fFontsView->IsDefaultable());
|
||||||
fRevertButton->SetEnabled(false);
|
fRevertButton->SetEnabled(false);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ class MainWindow : public BWindow {
|
|||||||
|
|
||||||
BMessageRunner* fRunner;
|
BMessageRunner* fRunner;
|
||||||
FontView* fFontsView;
|
FontView* fFontsView;
|
||||||
|
BButton* fDefaultsButton;
|
||||||
BButton* fRevertButton;
|
BButton* fRevertButton;
|
||||||
|
|
||||||
FontsSettings fSettings;
|
FontsSettings fSettings;
|
||||||
|
|||||||
@@ -117,3 +117,11 @@ KeyboardSettings::Defaults()
|
|||||||
SetKeyboardRepeatDelay(kb_default_key_repeat_delay);
|
SetKeyboardRepeatDelay(kb_default_key_repeat_delay);
|
||||||
SetKeyboardRepeatRate(kb_default_key_repeat_rate);
|
SetKeyboardRepeatRate(kb_default_key_repeat_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
KeyboardSettings::IsDefaultable()
|
||||||
|
{
|
||||||
|
return fSettings.key_repeat_delay != kb_default_key_repeat_delay
|
||||||
|
|| fSettings.key_repeat_rate != kb_default_key_repeat_rate;
|
||||||
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ public :
|
|||||||
void Dump();
|
void Dump();
|
||||||
void Revert();
|
void Revert();
|
||||||
void Defaults();
|
void Defaults();
|
||||||
|
bool IsDefaultable();
|
||||||
|
|
||||||
BPoint WindowCorner() const { return fCorner; }
|
BPoint WindowCorner() const { return fCorner; }
|
||||||
void SetWindowCorner(BPoint corner);
|
void SetWindowCorner(BPoint corner);
|
||||||
|
|||||||
@@ -39,6 +39,10 @@ KeyboardWindow::KeyboardWindow()
|
|||||||
if (slider !=NULL)
|
if (slider !=NULL)
|
||||||
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
||||||
|
|
||||||
|
BButton *button = (BButton *)FindView("keyboard_defaults");
|
||||||
|
if (button !=NULL)
|
||||||
|
button->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
fSettings.Dump();
|
fSettings.Dump();
|
||||||
#endif
|
#endif
|
||||||
@@ -78,6 +82,10 @@ KeyboardWindow::MessageReceived(BMessage *message)
|
|||||||
slider = (BSlider *)FindView("delay_until_key_repeat");
|
slider = (BSlider *)FindView("delay_until_key_repeat");
|
||||||
if (slider !=NULL)
|
if (slider !=NULL)
|
||||||
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
||||||
|
|
||||||
|
button = (BButton *)FindView("keyboard_defaults");
|
||||||
|
if (button !=NULL)
|
||||||
|
button->SetEnabled(false);
|
||||||
|
|
||||||
button = (BButton *)FindView("keyboard_revert");
|
button = (BButton *)FindView("keyboard_revert");
|
||||||
if (button !=NULL)
|
if (button !=NULL)
|
||||||
@@ -95,6 +103,10 @@ KeyboardWindow::MessageReceived(BMessage *message)
|
|||||||
if (slider !=NULL)
|
if (slider !=NULL)
|
||||||
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
slider->SetValue(fSettings.KeyboardRepeatDelay());
|
||||||
|
|
||||||
|
button = (BButton *)FindView("keyboard_defaults");
|
||||||
|
if (button !=NULL)
|
||||||
|
button->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
|
||||||
button = (BButton *)FindView("keyboard_revert");
|
button = (BButton *)FindView("keyboard_revert");
|
||||||
if (button !=NULL)
|
if (button !=NULL)
|
||||||
button->SetEnabled(false);
|
button->SetEnabled(false);
|
||||||
@@ -106,6 +118,10 @@ KeyboardWindow::MessageReceived(BMessage *message)
|
|||||||
break;
|
break;
|
||||||
fSettings.SetKeyboardRepeatRate(rate);
|
fSettings.SetKeyboardRepeatRate(rate);
|
||||||
|
|
||||||
|
button = (BButton *)FindView("keyboard_defaults");
|
||||||
|
if (button !=NULL)
|
||||||
|
button->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
|
||||||
button = (BButton *)FindView("keyboard_revert");
|
button = (BButton *)FindView("keyboard_revert");
|
||||||
if (button !=NULL)
|
if (button !=NULL)
|
||||||
button->SetEnabled(true);
|
button->SetEnabled(true);
|
||||||
@@ -133,6 +149,10 @@ KeyboardWindow::MessageReceived(BMessage *message)
|
|||||||
if (slider !=NULL)
|
if (slider !=NULL)
|
||||||
slider->SetValue(delay);
|
slider->SetValue(delay);
|
||||||
|
|
||||||
|
button = (BButton *)FindView("keyboard_defaults");
|
||||||
|
if (button !=NULL)
|
||||||
|
button->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
|
||||||
button = (BButton *)FindView("keyboard_revert");
|
button = (BButton *)FindView("keyboard_revert");
|
||||||
if (button !=NULL)
|
if (button !=NULL)
|
||||||
button->SetEnabled(true);
|
button->SetEnabled(true);
|
||||||
|
|||||||
@@ -191,6 +191,23 @@ MouseSettings::Defaults()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/** Checks if the settings are different then the system defaults
|
||||||
|
*/
|
||||||
|
|
||||||
|
bool
|
||||||
|
MouseSettings::IsDefaultable()
|
||||||
|
{
|
||||||
|
return fSettings.click_speed != kDefaultClickSpeed
|
||||||
|
|| fSettings.accel.speed != kDefaultMouseSpeed
|
||||||
|
|| fSettings.type != kDefaultMouseType
|
||||||
|
|| fSettings.accel.accel_factor != kDefaultAccelerationFactor
|
||||||
|
|| fMode != B_NORMAL_MOUSE
|
||||||
|
|| fSettings.map.button[0] != B_PRIMARY_MOUSE_BUTTON
|
||||||
|
|| fSettings.map.button[1] != B_SECONDARY_MOUSE_BUTTON
|
||||||
|
|| fSettings.map.button[2] != B_TERTIARY_MOUSE_BUTTON;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Reverts to the active settings at program startup
|
/** Reverts to the active settings at program startup
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ class MouseSettings {
|
|||||||
|
|
||||||
void Revert();
|
void Revert();
|
||||||
void Defaults();
|
void Defaults();
|
||||||
|
bool IsDefaultable();
|
||||||
void Dump();
|
void Dump();
|
||||||
|
|
||||||
BPoint WindowPosition() const { return fWindowPosition; }
|
BPoint WindowPosition() const { return fWindowPosition; }
|
||||||
|
|||||||
@@ -48,12 +48,13 @@ MouseWindow::MouseWindow(BRect _rect)
|
|||||||
// Add the "Default" button
|
// Add the "Default" button
|
||||||
BRect rect(kBorderSpace, fSettingsView->Frame().bottom + kItemSpace + 2,
|
BRect rect(kBorderSpace, fSettingsView->Frame().bottom + kItemSpace + 2,
|
||||||
kBorderSpace + 75, fSettingsView->Frame().bottom + 20);
|
kBorderSpace + 75, fSettingsView->Frame().bottom + 20);
|
||||||
BButton *button = new BButton(rect, "defaults", "Defaults", new BMessage(kMsgDefaults));
|
fDefaultsButton = new BButton(rect, "defaults", "Defaults", new BMessage(kMsgDefaults));
|
||||||
button->ResizeToPreferred();
|
fDefaultsButton->ResizeToPreferred();
|
||||||
view->AddChild(button);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
view->AddChild(fDefaultsButton);
|
||||||
|
|
||||||
// Add the "Revert" button
|
// Add the "Revert" button
|
||||||
rect.OffsetBy(button->Bounds().Width() + kItemSpace, 0);
|
rect.OffsetBy(fDefaultsButton->Bounds().Width() + kItemSpace, 0);
|
||||||
fRevertButton = new BButton(rect, "revert", "Revert", new BMessage(kMsgRevert));
|
fRevertButton = new BButton(rect, "revert", "Revert", new BMessage(kMsgRevert));
|
||||||
fRevertButton->SetEnabled(false);
|
fRevertButton->SetEnabled(false);
|
||||||
fRevertButton->ResizeToPreferred();
|
fRevertButton->ResizeToPreferred();
|
||||||
@@ -64,7 +65,7 @@ MouseWindow::MouseWindow(BRect _rect)
|
|||||||
// buttons and draw the selected imagery
|
// buttons and draw the selected imagery
|
||||||
|
|
||||||
ResizeTo(fSettingsView->Frame().right + kBorderSpace,
|
ResizeTo(fSettingsView->Frame().right + kBorderSpace,
|
||||||
button->Frame().bottom + kBorderSpace - 1);
|
fRevertButton->Frame().bottom + kBorderSpace - 1);
|
||||||
|
|
||||||
// check if the window is on screen
|
// check if the window is on screen
|
||||||
|
|
||||||
@@ -105,7 +106,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
fSettings.Defaults();
|
fSettings.Defaults();
|
||||||
fSettingsView->UpdateFromSettings();
|
fSettingsView->UpdateFromSettings();
|
||||||
|
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(false);
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -114,7 +116,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
fSettings.Revert();
|
fSettings.Revert();
|
||||||
fSettingsView->UpdateFromSettings();
|
fSettingsView->UpdateFromSettings();
|
||||||
|
|
||||||
SetRevertable(false);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -124,7 +127,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
if (message->FindInt32("index", &type) == B_OK) {
|
if (message->FindInt32("index", &type) == B_OK) {
|
||||||
fSettings.SetMouseType(++type);
|
fSettings.SetMouseType(++type);
|
||||||
fSettingsView->SetMouseType(type);
|
fSettingsView->SetMouseType(type);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -134,7 +138,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
int32 mode;
|
int32 mode;
|
||||||
if (message->FindInt32("mode", &mode) == B_OK) {
|
if (message->FindInt32("mode", &mode) == B_OK) {
|
||||||
fSettings.SetMouseMode((mode_mouse)mode);
|
fSettings.SetMouseMode((mode_mouse)mode);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -145,7 +150,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
if (message->FindInt32("be:value", &value) == B_OK) {
|
if (message->FindInt32("be:value", &value) == B_OK) {
|
||||||
// slow = 1000000, fast = 0
|
// slow = 1000000, fast = 0
|
||||||
fSettings.SetClickSpeed(value * 1000);
|
fSettings.SetClickSpeed(value * 1000);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -156,7 +162,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
if (message->FindInt32("be:value", &value) == B_OK) {
|
if (message->FindInt32("be:value", &value) == B_OK) {
|
||||||
// slow = 8192, fast = 524287
|
// slow = 8192, fast = 524287
|
||||||
fSettings.SetMouseSpeed((int32)pow(2, value * 6 / 1000) * 8192);
|
fSettings.SetMouseSpeed((int32)pow(2, value * 6 / 1000) * 8192);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -167,7 +174,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
if (message->FindInt32("be:value", &value) == B_OK) {
|
if (message->FindInt32("be:value", &value) == B_OK) {
|
||||||
// slow = 0, fast = 262144
|
// slow = 0, fast = 262144
|
||||||
fSettings.SetAccelerationFactor((int32)pow(value * 4 / 1000, 2) * 16384);
|
fSettings.SetAccelerationFactor((int32)pow(value * 4 / 1000, 2) * 16384);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -189,7 +197,8 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fSettings.SetMapping(button, mapping);
|
fSettings.SetMapping(button, mapping);
|
||||||
SetRevertable(true);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
fRevertButton->SetEnabled(true);
|
||||||
fSettingsView->MouseMapUpdated();
|
fSettingsView->MouseMapUpdated();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -201,10 +210,3 @@ MouseWindow::MessageReceived(BMessage *message)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
MouseWindow::SetRevertable(bool revertable)
|
|
||||||
{
|
|
||||||
fRevertButton->SetEnabled(revertable);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -33,10 +33,9 @@ class MouseWindow : public BWindow {
|
|||||||
virtual bool QuitRequested();
|
virtual bool QuitRequested();
|
||||||
virtual void MessageReceived(BMessage *message);
|
virtual void MessageReceived(BMessage *message);
|
||||||
|
|
||||||
void SetRevertable(bool revertable);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MouseSettings fSettings;
|
MouseSettings fSettings;
|
||||||
|
BButton *fDefaultsButton;
|
||||||
BButton *fRevertButton;
|
BButton *fRevertButton;
|
||||||
SettingsView *fSettingsView;
|
SettingsView *fSettingsView;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -204,6 +204,14 @@ Settings::RevertSwapChanges()
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
Settings::IsDefaultable()
|
||||||
|
{
|
||||||
|
return fSwapEnabled != fInitialSwapEnabled
|
||||||
|
|| fSwapSize != fInitialSwapSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Settings::SwapChanged()
|
Settings::SwapChanged()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ class Settings {
|
|||||||
|
|
||||||
void SetSwapDefaults();
|
void SetSwapDefaults();
|
||||||
void RevertSwapChanges();
|
void RevertSwapChanges();
|
||||||
|
bool IsDefaultable();
|
||||||
bool SwapChanged();
|
bool SwapChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -196,17 +196,19 @@ SettingsWindow::SettingsWindow()
|
|||||||
// Add "Defaults" and "Revert" buttons
|
// Add "Defaults" and "Revert" buttons
|
||||||
|
|
||||||
rect.top = box->Frame().bottom + 10;
|
rect.top = box->Frame().bottom + 10;
|
||||||
BButton* button = new BButton(rect, "defaults", "Defaults", new BMessage(kMsgDefaults));
|
fDefaultsButton = new BButton(rect, "defaults", "Defaults", new BMessage(kMsgDefaults));
|
||||||
button->ResizeToPreferred();
|
fDefaultsButton->ResizeToPreferred();
|
||||||
view->AddChild(button);
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
view->AddChild(fDefaultsButton);
|
||||||
|
|
||||||
rect = button->Frame();
|
rect = fDefaultsButton->Frame();
|
||||||
rect.OffsetBy(rect.Width() + 10, 0);
|
rect.OffsetBy(rect.Width() + 10, 0);
|
||||||
fRevertButton = new BButton(rect, "revert", "Revert", new BMessage(kMsgRevert));
|
fRevertButton = new BButton(rect, "revert", "Revert", new BMessage(kMsgRevert));
|
||||||
button->ResizeToPreferred();
|
fRevertButton->ResizeToPreferred();
|
||||||
|
fRevertButton->SetEnabled(false);
|
||||||
view->AddChild(fRevertButton);
|
view->AddChild(fRevertButton);
|
||||||
|
|
||||||
view->ResizeTo(view->Frame().Width(), button->Frame().bottom + 10);
|
view->ResizeTo(view->Frame().Width(), fRevertButton->Frame().bottom + 10);
|
||||||
ResizeTo(view->Bounds().Width(), view->Bounds().Height());
|
ResizeTo(view->Bounds().Width(), view->Bounds().Height());
|
||||||
AddChild(view);
|
AddChild(view);
|
||||||
// add view after resizing the window, so that the view's resizing
|
// add view after resizing the window, so that the view's resizing
|
||||||
@@ -266,6 +268,8 @@ SettingsWindow::_Update()
|
|||||||
|
|
||||||
// ToDo: set volume
|
// ToDo: set volume
|
||||||
|
|
||||||
|
fDefaultsButton->SetEnabled(fSettings.IsDefaultable());
|
||||||
|
|
||||||
bool changed = fSettings.SwapChanged();
|
bool changed = fSettings.SwapChanged();
|
||||||
if (fRevertButton->IsEnabled() != changed) {
|
if (fRevertButton->IsEnabled() != changed) {
|
||||||
fRevertButton->SetEnabled(changed);
|
fRevertButton->SetEnabled(changed);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ class SettingsWindow : public BWindow {
|
|||||||
|
|
||||||
BCheckBox* fSwapEnabledCheckBox;
|
BCheckBox* fSwapEnabledCheckBox;
|
||||||
BSlider* fSizeSlider;
|
BSlider* fSizeSlider;
|
||||||
|
BButton* fDefaultsButton;
|
||||||
BButton* fRevertButton;
|
BButton* fRevertButton;
|
||||||
BStringView* fWarningStringView;
|
BStringView* fWarningStringView;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user