diff --git a/src/apps/deskbar/BarApp.cpp b/src/apps/deskbar/BarApp.cpp
index 532e1bc..2647068 100644
a
|
b
|
TBarApp::MessageReceived(BMessage* message)
|
334 | 334 | ShowPreferencesWindow(); |
335 | 335 | break; |
336 | 336 | |
| 337 | case kStateChanged: |
| 338 | fPreferencesWindow->PostMessage(kStateChanged); |
| 339 | break; |
| 340 | |
337 | 341 | case kShowBeMenu: |
338 | 342 | if (fBarWindow->Lock()) { |
339 | 343 | fBarWindow->ShowBeMenu(); |
diff --git a/src/apps/deskbar/BarView.cpp b/src/apps/deskbar/BarView.cpp
index f113e6a..70971c5 100644
a
|
b
|
void
|
130 | 130 | TBarView::Draw(BRect) |
131 | 131 | { |
132 | 132 | BRect bounds(Bounds()); |
133 | | |
| 133 | |
134 | 134 | rgb_color hilite = tint_color(ViewColor(), B_DARKEN_1_TINT); |
135 | 135 | rgb_color light = tint_color(ViewColor(), B_LIGHTEN_2_TINT); |
136 | | |
| 136 | |
137 | 137 | SetHighColor(hilite); |
138 | 138 | if (AcrossTop()) |
139 | 139 | StrokeLine(bounds.LeftBottom(), bounds.RightBottom()); |
… |
… |
TBarView::ChangeState(int32 state, bool vertical, bool left, bool top)
|
433 | 433 | { |
434 | 434 | bool vertSwap = (fVertical != vertical); |
435 | 435 | bool leftSwap = (fLeft != left); |
| 436 | bool stateChanged = (fState != state); |
436 | 437 | |
437 | 438 | fState = state; |
438 | 439 | fVertical = vertical; |
439 | 440 | fLeft = left; |
440 | 441 | fTop = top; |
441 | 442 | |
| 443 | // Send a message to the preferences window to let it know to enable |
| 444 | // or disabled preference items |
| 445 | if (stateChanged || vertSwap) { |
| 446 | BMessage message(kStateChanged); |
| 447 | be_app->PostMessage(&message); |
| 448 | } |
| 449 | |
442 | 450 | BRect screenFrame = (BScreen(Window())).Frame(); |
443 | 451 | |
444 | 452 | PlaceBeMenu(); |
diff --git a/src/apps/deskbar/PreferencesWindow.cpp b/src/apps/deskbar/PreferencesWindow.cpp
index e8fdf07..aecbba7 100644
a
|
b
|
PreferencesWindow::MessageReceived(BMessage* message)
|
242 | 242 | be_app->PostMessage(message); |
243 | 243 | break; |
244 | 244 | |
| 245 | case kStateChanged: |
| 246 | _EnableDisableDependentItems(); |
| 247 | break; |
| 248 | |
245 | 249 | default: |
246 | 250 | BWindow::MessageReceived(message); |
247 | 251 | break; |
… |
… |
PreferencesWindow::_UpdateRecentCounts()
|
275 | 279 | void |
276 | 280 | PreferencesWindow::_EnableDisableDependentItems() |
277 | 281 | { |
278 | | if (fAppsShowExpanders->Value()) |
279 | | fAppsExpandNew->SetEnabled(true); |
280 | | else |
| 282 | TBarApp* barApp = static_cast<TBarApp*>(be_app); |
| 283 | if (barApp->BarView()->Vertical() |
| 284 | && barApp->BarView()->Expando()) { |
| 285 | fAppsShowExpanders->SetEnabled(true); |
| 286 | fAppsExpandNew->SetEnabled(fAppsShowExpanders->Value()); |
| 287 | } else { |
| 288 | fAppsShowExpanders->SetEnabled(false); |
281 | 289 | fAppsExpandNew->SetEnabled(false); |
| 290 | } |
282 | 291 | |
283 | 292 | if (fMenuRecentDocuments->Value()) |
284 | 293 | fMenuRecentDocumentCount->SetEnabled(true); |
diff --git a/src/apps/deskbar/PreferencesWindow.h b/src/apps/deskbar/PreferencesWindow.h
index 77f641b..9bacafd 100644
a
|
b
|
const uint32 kConfigShow = 'show';
|
19 | 19 | const uint32 kConfigClose = 'canc'; |
20 | 20 | const uint32 kUpdateRecentCounts = 'upct'; |
21 | 21 | const uint32 kEditMenuInTracker = 'mtrk'; |
| 22 | const uint32 kStateChanged = 'stch'; |
22 | 23 | |
23 | 24 | |
24 | 25 | class PreferencesWindow : public BWindow |