Пример #1
0
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);
}
Пример #2
0
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);
}