void ControlView::AttachedToWindow() { BRect rect(Bounds()); rect.InsetBySelf(10, 0); rect.bottom = rect.top + 18; rect.OffsetBy(0, 11); float offsetX = 0; float offsetY = 0; fTextControl = new BTextControl(rect, "TextInput", B_TRANSLATE("Text:"), B_TRANSLATE("Haiku, Inc."), NULL); fTextControl->SetDivider(29.0); fTextControl->SetModificationMessage(new BMessage(TEXT_CHANGED_MSG)); AddChild(fTextControl); rect.OffsetBy(0.0, 27.0); _AddFontMenu(rect); rect.OffsetBy(0.0, 29.0); fFontsizeSlider = new BSlider(rect, "Fontsize", B_TRANSLATE("Size: 50"), NULL, 4, 360); fFontsizeSlider->SetModificationMessage(new BMessage(FONTSIZE_MSG)); fFontsizeSlider->SetValue(50); AddChild(fFontsizeSlider); // Get the preferred size for the sliders fFontsizeSlider->GetPreferredSize(&offsetY, &offsetX); offsetX += 1; rect.OffsetBy(0.0, offsetX); fShearSlider = new BSlider(rect, "Shear", B_TRANSLATE("Shear: 90"), NULL, 45, 135); fShearSlider->SetModificationMessage(new BMessage(FONTSHEAR_MSG)); fShearSlider->SetValue(90); AddChild(fShearSlider); rect.OffsetBy(0.0, offsetX); fRotationSlider = new BSlider(rect, "Rotation", B_TRANSLATE("Rotation: 0"), NULL, 0, 360); fRotationSlider->SetModificationMessage( new BMessage(ROTATION_MSG)); fRotationSlider->SetValue(0); AddChild(fRotationSlider); rect.OffsetBy(0.0, offsetX); fSpacingSlider = new BSlider(rect, "Spacing", B_TRANSLATE("Spacing: 0"), NULL, -5, 50); fSpacingSlider->SetModificationMessage(new BMessage(SPACING_MSG)); fSpacingSlider->SetValue(0); AddChild(fSpacingSlider); rect.OffsetBy(0.0, offsetX); fOutlineSlider = new BSlider(rect, "Outline", B_TRANSLATE("Outline:"), NULL, 0, 20); fOutlineSlider->SetModificationMessage(new BMessage(OUTLINE_MSG)); AddChild(fOutlineSlider); rect.OffsetBy(0.0, offsetX); fAliasingCheckBox = new BCheckBox(rect, "Aliasing", B_TRANSLATE("Antialiased text"), new BMessage(ALIASING_MSG)); fAliasingCheckBox->SetValue(B_CONTROL_ON); AddChild(fAliasingCheckBox); rect.OffsetBy(0.0, offsetX); fDrawingModeMenu = new BMenu("drawingmodemenu"); BMessage* drawingMsg = NULL; drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_COPY); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_COPY", drawingMsg)); fDrawingModeMenu->ItemAt(0)->SetMarked(true); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_OVER); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_OVER", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_ERASE); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_ERASE", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_INVERT); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_INVERT", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_ADD); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_ADD", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_SUBTRACT); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_SUBTRACT", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_BLEND); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_BLEND", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_MIN); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_MIN", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_MAX); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_MAX", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_SELECT); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_SELECT", drawingMsg)); drawingMsg = new BMessage(DRAWINGMODE_CHANGED_MSG); drawingMsg->AddInt32("_mode", B_OP_ALPHA); fDrawingModeMenu->AddItem(new BMenuItem("B_OP_ALPHA", drawingMsg)); fDrawingModeMenu->SetLabelFromMarked(true); BMenuField *drawingModeMenuField = new BMenuField(rect, "FontMenuField", B_TRANSLATE("Drawing mode:"), fDrawingModeMenu, true); drawingModeMenuField->SetDivider(5+StringWidth( B_TRANSLATE("Drawing mode:"))); AddChild(drawingModeMenuField); rect.OffsetBy(0.0, 22); fBoundingboxesCheckBox = new BCheckBox(rect, "BoundingBoxes", B_TRANSLATE("Bounding boxes"), new BMessage(BOUNDING_BOX_MSG)); AddChild(fBoundingboxesCheckBox); rect.OffsetBy(0.0, 22.0); fCyclingFontButton = new BButton(rect, "Cyclefonts", B_TRANSLATE("Cycle fonts"), new BMessage(CYCLING_FONTS_MSG)); AddChild(fCyclingFontButton); fTextControl->SetTarget(this); fFontsizeSlider->SetTarget(this); fShearSlider->SetTarget(this); fRotationSlider->SetTarget(this); fSpacingSlider->SetTarget(this); fOutlineSlider->SetTarget(this); fAliasingCheckBox->SetTarget(this); fBoundingboxesCheckBox->SetTarget(this); fCyclingFontButton->SetTarget(this); }
void ControlView::AttachedToWindow() { fTextControl = new BTextControl("TextInput", B_TRANSLATE("Text:"), B_TRANSLATE("Haiku, Inc."), NULL); fTextControl->SetModificationMessage(new BMessage(TEXT_CHANGED_MSG)); AddChild(fTextControl); _AddFontMenu(); fFontsizeSlider = new BSlider("Fontsize", B_TRANSLATE("Size: 50"), NULL, 4, 360, B_HORIZONTAL); fFontsizeSlider->SetModificationMessage(new BMessage(FONTSIZE_MSG)); fFontsizeSlider->SetValue(50); AddChild(fFontsizeSlider); fShearSlider = new BSlider("Shear", B_TRANSLATE("Shear: 90"), NULL, 45, 135, B_HORIZONTAL); fShearSlider->SetModificationMessage(new BMessage(FONTSHEAR_MSG)); fShearSlider->SetValue(90); AddChild(fShearSlider); fRotationSlider = new BSlider("Rotation", B_TRANSLATE("Rotation: 0"), NULL, 0, 360, B_HORIZONTAL); fRotationSlider->SetModificationMessage( new BMessage(ROTATION_MSG)); fRotationSlider->SetValue(0); AddChild(fRotationSlider); fSpacingSlider = new BSlider("Spacing", B_TRANSLATE("Spacing: 0"), NULL, -5, 50, B_HORIZONTAL); fSpacingSlider->SetModificationMessage(new BMessage(SPACING_MSG)); fSpacingSlider->SetValue(0); AddChild(fSpacingSlider); fOutlineSlider = new BSlider("Outline", B_TRANSLATE("Outline:"), NULL, 0, 20, B_HORIZONTAL); fOutlineSlider->SetModificationMessage(new BMessage(OUTLINE_MSG)); AddChild(fOutlineSlider); fAliasingCheckBox = new BCheckBox("Aliasing", B_TRANSLATE("Antialiased text"), new BMessage(ALIASING_MSG)); fAliasingCheckBox->SetValue(B_CONTROL_ON); AddChild(fAliasingCheckBox); _AddDrawingModeMenu(); fBoundingboxesCheckBox = new BCheckBox("BoundingBoxes", B_TRANSLATE("Bounding boxes"), new BMessage(BOUNDING_BOX_MSG)); AddChild(fBoundingboxesCheckBox); fCyclingFontButton = new BButton("Cyclefonts", B_TRANSLATE("Cycle fonts"), new BMessage(CYCLING_FONTS_MSG)); AddChild(fCyclingFontButton); fTextControl->SetTarget(this); fFontsizeSlider->SetTarget(this); fShearSlider->SetTarget(this); fRotationSlider->SetTarget(this); fSpacingSlider->SetTarget(this); fOutlineSlider->SetTarget(this); fAliasingCheckBox->SetTarget(this); fBoundingboxesCheckBox->SetTarget(this); fCyclingFontButton->SetTarget(this); }