void APRView::UpdateAllColors() { for (int32 i = 0; i < color_description_count(); i++) { color_which which = get_color_description(i)->which; rgb_color color = fCurrentSet.GetColor(which); set_ui_color(which, color); } }
void APRView::LoadSettings() { for (int32 i = 0; i < color_description_count(); i++) { color_which which = get_color_description(i)->which; fCurrentSet.SetColor(which, ui_color(which)); } fPrevSet = fCurrentSet; }
void APRView::_UpdateAllColors() { for (int32 i = color_description_count() - 1; i >= 0; i--) { color_which which = get_color_description(i)->which; rgb_color color = fCurrentSet.GetColor(which); set_ui_color(which, color); static_cast<ColorWhichItem*>(fAttrList->ItemAt(i))->SetColor(color); fAttrList->InvalidateItem(i); } }
bool APRView::IsRevertable() { for (int32 i = color_description_count() - 1; i >= 0; i--) { color_which which = get_color_description(i)->which; if (fCurrentSet.GetColor(which) != fPrevSet.GetColor(which)) return true; } return false; }
/*! \brief Assigns the default system colors to the passed ColorSet object \param set The ColorSet object to set to defaults */ ColorSet ColorSet::DefaultColorSet(void) { ColorSet set; for (int i = 0; i < sColorDescriptionCount; i++) { color_which which = get_color_description(i)->which; set.fColors[which] = BPrivate::kDefaultColors[color_which_to_index(which)]; } return set; }
void APRView::_UpdatePreviews(const BMessage& colors) { rgb_color color; for (int32 i = color_description_count() - 1; i >= 0; i--) { ColorWhichItem* item = static_cast<ColorWhichItem*>(fAttrList->ItemAt(i)); if (item == NULL) continue; color = colors.GetColor(ui_color_name(get_color_description(i)->which), make_color(255, 0, 255)); item->SetColor(color); fAttrList->InvalidateItem(i); } }
APRView::APRView(const char* name) : BView(name, B_WILL_DRAW) { SetViewUIColor(B_PANEL_BACKGROUND_COLOR); #if 0 fDecorMenu = new BMenu("Window Style"); int32 decorCount = fDecorUtil->CountDecorators(); DecorInfo* decor = NULL; if (decorCount > 1) { for (int32 i = 0; i < decorCount; i++) { decor = fDecorUtil->GetDecorator(i); if (!decor) continue; fDecorMenu->AddItem(new BMenuItem(decor->Name().String(), new BMessage(DECORATOR_CHANGED))); } BMenuField* field = new BMenuField("Window Style", fDecorMenu); // TODO: use this menu field. } BMenuItem* marked = fDecorMenu->ItemAt(fDecorUtil->IndexOfCurrentDecorator()); if (marked) marked->SetMarked(true); else { marked = fDecorMenu->FindItem("Default"); if (marked) marked->SetMarked(true); } #endif LoadSettings(); // Set up list of color attributes fAttrList = new BListView("AttributeList", B_SINGLE_SELECTION_LIST); fScrollView = new BScrollView("ScrollView", fAttrList, 0, false, true); fScrollView->SetViewUIColor(B_PANEL_BACKGROUND_COLOR); int32 count = color_description_count(); for (int32 i = 0; i < count; i++) { const ColorDescription& description = *get_color_description(i); const char* text = B_TRANSLATE_NOCOLLECT(description.text); color_which which = description.which; fAttrList->AddItem(new ColorWhichItem(text, which, ui_color(which))); } BRect wellrect(0, 0, 50, 50); fColorPreview = new ColorPreview(wellrect, new BMessage(COLOR_DROPPED), 0); fColorPreview->SetExplicitAlignment(BAlignment(B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_BOTTOM)); fPicker = new BColorControl(B_ORIGIN, B_CELLS_32x8, 8.0, "picker", new BMessage(UPDATE_COLOR)); BLayoutBuilder::Group<>(this, B_VERTICAL) .Add(fScrollView, 10.0) .AddGroup(B_HORIZONTAL, B_USE_DEFAULT_SPACING) .Add(fColorPreview) .Add(fPicker) .End() .SetInsets(B_USE_WINDOW_SPACING); fColorPreview->Parent()->SetExplicitMaxSize( BSize(B_SIZE_UNSET, fPicker->Bounds().Height())); fAttrList->SetSelectionMessage(new BMessage(ATTRIBUTE_CHOSEN)); }
APRView::APRView(const char *name, uint32 flags) : BView(name, flags), fDefaultSet(ColorSet::DefaultColorSet()), fDecorMenu(NULL) { SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); #if 0 fDecorMenu = new BMenu("Window Style"); int32 decorCount = BPrivate::count_decorators(); if (decorCount > 1) { for (int32 i = 0; i < decorCount; i++) { BString name; BPrivate::get_decorator_name(i, name); if (name.CountChars() < 1) continue; fDecorMenu->AddItem(new BMenuItem(name.String(), new BMessage(DECORATOR_CHANGED))); } BMenuField *field = new BMenuField("Window Style", fDecorMenu); // TODO: use this menu field. } BMenuItem *marked = fDecorMenu->ItemAt(BPrivate::get_decorator()); if (marked) marked->SetMarked(true); else { marked = fDecorMenu->FindItem("Default"); if (marked) marked->SetMarked(true); } #endif // Set up list of color attributes fAttrList = new BListView("AttributeList", B_SINGLE_SELECTION_LIST); fScrollView = new BScrollView("ScrollView", fAttrList, 0, false, true); fScrollView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); for (int32 i = 0; i < color_description_count(); i++) { const ColorDescription& description = *get_color_description(i); const char* text = TR(description.text); color_which which = description.which; fAttrList->AddItem(new ColorWhichItem(text, which)); } BRect wellrect(0, 0, 50, 50); fColorWell = new ColorWell(wellrect, new BMessage(COLOR_DROPPED), 0); fColorWell->SetExplicitAlignment(BAlignment(B_ALIGN_HORIZONTAL_CENTER, B_ALIGN_BOTTOM)); fPicker = new BColorControl(B_ORIGIN, B_CELLS_32x8, 8.0, "picker", new BMessage(UPDATE_COLOR)); SetLayout(new BGroupLayout(B_VERTICAL)); AddChild(BGroupLayoutBuilder(B_VERTICAL, 0) .Add(fScrollView) .Add(BSpaceLayoutItem::CreateVerticalStrut(5)) .Add(BGroupLayoutBuilder(B_HORIZONTAL) .Add(fColorWell) .Add(BSpaceLayoutItem::CreateHorizontalStrut(5)) .Add(fPicker) ) .SetInsets(10, 10, 10, 10) ); fColorWell->Parent()->SetExplicitMaxSize( BSize(B_SIZE_UNSET, fPicker->Bounds().Height())); fAttrList->SetSelectionMessage(new BMessage(ATTRIBUTE_CHOSEN)); }