2 * Copyright 2002-2011, Haiku. All rights reserved.
3 * Distributed under the terms of the MIT License.
6 * DarkWyrm (darkwyrm@earthlink.net)
7 * Alexander von Gluck, kallisti5@unixzen.com
8 * Stephan Aßmus <superstippi@gmx.de>
12 #include "APRWindow.h"
16 #include <LayoutBuilder.h>
18 #include <Messenger.h>
19 #include <SeparatorView.h>
22 #include "AntialiasingSettingsView.h"
26 #include "LookAndFeelSettingsView.h"
29 #undef B_TRANSLATION_CONTEXT
30 #define B_TRANSLATION_CONTEXT "APRWindow"
33 static const uint32 kMsgSetDefaults
= 'dflt';
34 static const uint32 kMsgRevert
= 'rvrt';
37 APRWindow::APRWindow(BRect frame
)
39 BWindow(frame
, B_TRANSLATE_SYSTEM_NAME("Appearance"), B_TITLED_WINDOW
,
40 B_NOT_RESIZABLE
| B_NOT_ZOOMABLE
| B_AUTO_UPDATE_SIZE_LIMITS
41 | B_QUIT_ON_WINDOW_CLOSE
, B_ALL_WORKSPACES
)
43 fDefaultsButton
= new BButton("defaults", B_TRANSLATE("Defaults"),
44 new BMessage(kMsgSetDefaults
), B_WILL_DRAW
);
46 fRevertButton
= new BButton("revert", B_TRANSLATE("Revert"),
47 new BMessage(kMsgRevert
), B_WILL_DRAW
);
49 BTabView
* tabView
= new BTabView("tabview", B_WIDTH_FROM_LABEL
);
51 fFontSettings
= new FontView(B_TRANSLATE("Fonts"));
53 fColorsView
= new APRView(B_TRANSLATE("Colors"));
55 fLookAndFeelSettings
= new LookAndFeelSettingsView(
56 B_TRANSLATE("Look and feel"));
58 fAntialiasingSettings
= new AntialiasingSettingsView(
59 B_TRANSLATE("Antialiasing"));
61 tabView
->AddTab(fFontSettings
);
62 tabView
->AddTab(fColorsView
);
63 tabView
->AddTab(fLookAndFeelSettings
);
64 tabView
->AddTab(fAntialiasingSettings
);
65 tabView
->SetBorder(B_NO_BORDER
);
69 BLayoutBuilder::Group
<>(this, B_VERTICAL
, 0)
70 .SetInsets(0, B_USE_DEFAULT_SPACING
, 0, B_USE_DEFAULT_SPACING
)
72 .Add(new BSeparatorView(B_HORIZONTAL
))
73 .AddGroup(B_HORIZONTAL
)
76 .SetInsets(B_USE_WINDOW_SPACING
, B_USE_DEFAULT_SPACING
,
77 B_USE_DEFAULT_SPACING
, 0)
83 APRWindow::MessageReceived(BMessage
*message
)
85 switch (message
->what
) {
91 fFontSettings
->SetDefaults();
92 fColorsView
->SetDefaults();
93 fLookAndFeelSettings
->SetDefaults();
94 fAntialiasingSettings
->SetDefaults();
100 fFontSettings
->Revert();
101 fColorsView
->Revert();
102 fLookAndFeelSettings
->Revert();
103 fAntialiasingSettings
->Revert();
109 BWindow::MessageReceived(message
);
116 APRWindow::_UpdateButtons()
118 fDefaultsButton
->SetEnabled(_IsDefaultable());
119 fRevertButton
->SetEnabled(_IsRevertable());
124 APRWindow::_IsDefaultable() const
126 // printf("fonts defaultable: %d\n", fFontSettings->IsDefaultable());
127 // printf("colors defaultable: %d\n", fColorsView->IsDefaultable());
128 // printf("AA defaultable: %d\n", fAntialiasingSettings->IsDefaultable());
129 // printf("decor defaultable: %d\n", fLookAndFeelSettings->IsDefaultable());
130 return fFontSettings
->IsDefaultable()
131 || fColorsView
->IsDefaultable()
132 || fLookAndFeelSettings
->IsDefaultable()
133 || fAntialiasingSettings
->IsDefaultable();
138 APRWindow::_IsRevertable() const
140 // printf("fonts revertable: %d\n", fFontSettings->IsRevertable());
141 // printf("colors revertable: %d\n", fColorsView->IsRevertable());
142 // printf("AA revertable: %d\n", fAntialiasingSettings->IsRevertable());
143 // printf("decor revertable: %d\n", fLookAndFeelSettings->IsRevertable());
144 return fFontSettings
->IsRevertable()
145 || fColorsView
->IsRevertable()
146 || fLookAndFeelSettings
->IsRevertable()
147 || fAntialiasingSettings
->IsRevertable();