fixes some bugs with buttons
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16898 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -210,6 +210,13 @@ BackgroundImage::Add(BackgroundImageInfo *info)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BackgroundImage::Remove(BackgroundImageInfo *info)
|
||||||
|
{
|
||||||
|
fBitmapForWorkspaceList.RemoveItem(info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BackgroundImage::RemoveAll()
|
BackgroundImage::RemoveAll()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -131,6 +131,7 @@ public:
|
|||||||
uint32 GetShowingImageSet() { return fShowingImageSet; }
|
uint32 GetShowingImageSet() { return fShowingImageSet; }
|
||||||
|
|
||||||
void Add(BackgroundImageInfo *);
|
void Add(BackgroundImageInfo *);
|
||||||
|
void Remove(BackgroundImageInfo *);
|
||||||
void RemoveAll();
|
void RemoveAll();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@@ -551,7 +551,7 @@ BackgroundsView::Save()
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uint32 workspaceMask = 1;
|
uint32 workspaceMask = 1;
|
||||||
uint32 workspace = current_workspace();
|
int32 workspace = current_workspace();
|
||||||
for (; workspace; workspace--)
|
for (; workspace; workspace--)
|
||||||
workspaceMask *= 2;
|
workspaceMask *= 2;
|
||||||
|
|
||||||
@@ -560,21 +560,28 @@ BackgroundsView::Save()
|
|||||||
if (fCurrentInfo->fWorkspace != workspaceMask) {
|
if (fCurrentInfo->fWorkspace != workspaceMask) {
|
||||||
fCurrentInfo->fWorkspace = fCurrentInfo->fWorkspace
|
fCurrentInfo->fWorkspace = fCurrentInfo->fWorkspace
|
||||||
^ workspaceMask;
|
^ workspaceMask;
|
||||||
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
if (fLastImageIndex > -1) {
|
||||||
workspaceMask, fLastImageIndex, mode, offset,
|
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
||||||
eraseTextWidgetBackground, fCurrentInfo->fImageSet,
|
workspaceMask, fLastImageIndex, mode, offset,
|
||||||
fCurrentInfo->fCacheMode);
|
eraseTextWidgetBackground, fCurrentInfo->fImageSet,
|
||||||
fCurrent->Add(fCurrentInfo);
|
fCurrentInfo->fCacheMode);
|
||||||
|
fCurrent->Add(fCurrentInfo);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
fCurrentInfo->fEraseTextWidgetBackground =
|
if (fLastImageIndex > -1) {
|
||||||
eraseTextWidgetBackground;
|
fCurrentInfo->fEraseTextWidgetBackground =
|
||||||
fCurrentInfo->fMode = mode;
|
eraseTextWidgetBackground;
|
||||||
if (fCurrentInfo->fMode == BackgroundImage::kAtOffset)
|
fCurrentInfo->fMode = mode;
|
||||||
fCurrentInfo->fOffset = offset;
|
if (fCurrentInfo->fMode == BackgroundImage::kAtOffset)
|
||||||
|
fCurrentInfo->fOffset = offset;
|
||||||
fCurrentInfo->fImageIndex = fLastImageIndex;
|
|
||||||
|
fCurrentInfo->fImageIndex = fLastImageIndex;
|
||||||
|
} else {
|
||||||
|
fCurrent->Remove(fCurrentInfo);
|
||||||
|
fCurrentInfo = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else if (fLastImageIndex > -1) {
|
||||||
fCurrent->RemoveAll();
|
fCurrent->RemoveAll();
|
||||||
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
||||||
B_ALL_WORKSPACES, fLastImageIndex, mode, offset,
|
B_ALL_WORKSPACES, fLastImageIndex, mode, offset,
|
||||||
@@ -582,7 +589,7 @@ BackgroundsView::Save()
|
|||||||
fCurrentInfo->fCacheMode);
|
fCurrentInfo->fCacheMode);
|
||||||
fCurrent->Add(fCurrentInfo);
|
fCurrent->Add(fCurrentInfo);
|
||||||
}
|
}
|
||||||
} else {
|
} else if (fLastImageIndex > -1) {
|
||||||
if (fWorkspaceMenu->FindItem(kMsgCurrentWorkspace)->IsMarked()) {
|
if (fWorkspaceMenu->FindItem(kMsgCurrentWorkspace)->IsMarked()) {
|
||||||
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
fCurrentInfo = new BackgroundImage::BackgroundImageInfo(
|
||||||
workspaceMask, fLastImageIndex, mode, offset,
|
workspaceMask, fLastImageIndex, mode, offset,
|
||||||
@@ -596,9 +603,9 @@ BackgroundsView::Save()
|
|||||||
fCurrent->Add(fCurrentInfo);
|
fCurrent->Add(fCurrentInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fCurrentInfo->fWorkspace == B_ALL_WORKSPACES) {
|
if (!fWorkspaceMenu->FindItem(kMsgCurrentWorkspace)->IsMarked()) {
|
||||||
for (int32 i = 0; i < count_workspaces(); i++) {
|
for (int32 i = 0; i < count_workspaces(); i++) {
|
||||||
BScreen().SetDesktopColor(fPicker->ValueAsColor(), i, true);
|
BScreen().SetDesktopColor(fPicker->ValueAsColor(), i, true);
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
BScreen().SetDesktopColor(fPicker->ValueAsColor(), true);
|
BScreen().SetDesktopColor(fPicker->ValueAsColor(), true);
|
||||||
@@ -814,7 +821,7 @@ BackgroundsView::UpdatePreview()
|
|||||||
if (fYPlacementText->IsEnabled() ^ textEnabled)
|
if (fYPlacementText->IsEnabled() ^ textEnabled)
|
||||||
fYPlacementText->SetEnabled(textEnabled);
|
fYPlacementText->SetEnabled(textEnabled);
|
||||||
|
|
||||||
if (textEnabled && fXPlacementText->TextView()->IsSelectable() != textEnabled) {
|
if (textEnabled && (strcmp(fXPlacementText->Text(), "") == 0)) {
|
||||||
fXPlacementText->SetText("0");
|
fXPlacementText->SetText("0");
|
||||||
fYPlacementText->SetText("0");
|
fYPlacementText->SetText("0");
|
||||||
}
|
}
|
||||||
@@ -892,29 +899,32 @@ BackgroundsView::UpdateButtons()
|
|||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
} else if (fCurrentInfo) {
|
} else if (fCurrentInfo) {
|
||||||
if ((fIconLabelBackground->Value() == B_CONTROL_ON) ^
|
if ((fIconLabelBackground->Value() == B_CONTROL_ON) ^
|
||||||
fCurrentInfo->fEraseTextWidgetBackground)
|
fCurrentInfo->fEraseTextWidgetBackground) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
else if (FindPlacementMode() != fCurrentInfo->fMode)
|
} else if (FindPlacementMode() != fCurrentInfo->fMode) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
else if (fCurrentInfo->fImageIndex !=
|
} else if (fCurrentInfo->fImageIndex !=
|
||||||
((BGImageMenuItem*)fImageMenu->FindMarked())->ImageIndex())
|
((BGImageMenuItem*)fImageMenu->FindMarked())->ImageIndex()) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
else if (fCurrent->IsDesktop()
|
} else if (fCurrent->IsDesktop()
|
||||||
&& ((fCurrentInfo->fWorkspace != B_ALL_WORKSPACES)
|
&& ((fCurrentInfo->fWorkspace != B_ALL_WORKSPACES)
|
||||||
^ (fWorkspaceMenu->FindItem(kMsgCurrentWorkspace)->IsMarked())))
|
^ (fWorkspaceMenu->FindItem(kMsgCurrentWorkspace)->IsMarked()))) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
else if (fCurrentInfo->fMode == BackgroundImage::kAtOffset) {
|
} else if (fCurrentInfo->fMode == BackgroundImage::kAtOffset) {
|
||||||
BString oldString, newString;
|
BString oldString, newString;
|
||||||
oldString << (int)fCurrentInfo->fOffset.x;
|
oldString << (int)fCurrentInfo->fOffset.x;
|
||||||
if (oldString != BString(fXPlacementText->Text()))
|
if (oldString != BString(fXPlacementText->Text())) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
|
}
|
||||||
oldString = "";
|
oldString = "";
|
||||||
oldString << (int)fCurrentInfo->fOffset.y;
|
oldString << (int)fCurrentInfo->fOffset.y;
|
||||||
if (oldString != BString(fYPlacementText->Text()))
|
if (oldString != BString(fYPlacementText->Text())) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (fImageMenu->IndexOf(fImageMenu->FindMarked()) > 0)
|
} else if (fImageMenu->IndexOf(fImageMenu->FindMarked()) > 0) {
|
||||||
hasChanged = true;
|
hasChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
fApply->SetEnabled(hasChanged);
|
fApply->SetEnabled(hasChanged);
|
||||||
fRevert->SetEnabled(hasChanged);
|
fRevert->SetEnabled(hasChanged);
|
||||||
|
|||||||
Reference in New Issue
Block a user