Ticket #7991: DriveSetup-SizeTextControl-20110916.diff

File DriveSetup-SizeTextControl-20110916.diff, 2.1 KB (added by jwlh172, 13 years ago)
  • CreateParamsPanel.cpp

     
    7777enum {
    7878    MSG_OK                      = 'okok',
    7979    MSG_CANCEL                  = 'cncl',
    80     MSG_PARTITION_TYPE          = 'type'
     80    MSG_PARTITION_TYPE          = 'type',
     81    MSG_SIZE_SLIDER             = 'ssld',
     82    MSG_SIZE_TEXTCONTROL        = 'stct'
    8183};
    8284
    8385
     
    121123void
    122124CreateParamsPanel::MessageReceived(BMessage* message)
    123125{
     126    BString sSizeString;
    124127    switch (message->what) {
    125128        case MSG_CANCEL:
    126129            Cancel();
     
    138141                fEditor->PartitionTypeChanged(type);
    139142            }
    140143            break;
     144       
     145        case MSG_SIZE_SLIDER:
     146            sSizeString << fSizeSlider->Value();
     147            fSizeTextControl->SetText(sSizeString.String());
     148            break;
     149           
     150        case MSG_SIZE_TEXTCONTROL:
     151            sSizeString = fSizeTextControl->Text();
     152            fSizeSlider->SetValue(atoi(sSizeString.String()));
     153            break;
    141154
    142155        default:
    143156            BWindow::MessageReceived(message);
     
    225238    fSizeSlider = new SizeSlider("Slider", B_TRANSLATE("Partition size"), NULL,
    226239        offset, offset + size);
    227240    fSizeSlider->SetPosition(1.0);
     241    fSizeSlider->SetModificationMessage(new BMessage(MSG_SIZE_SLIDER));
     242   
     243    BString sSizeText;
     244    sSizeText << fSizeSlider->Value();
     245    fSizeTextControl = new BTextControl("Size Control",
     246        "", sSizeText.String(), NULL);
     247    fSizeTextControl->SetModificationMessage(new BMessage(MSG_SIZE_TEXTCONTROL));
    228248
    229249    fNameTextControl = new BTextControl("Name Control",
    230250        B_TRANSLATE("Partition name:"), "", NULL);
     
    257277
    258278    AddChild(BGroupLayoutBuilder(B_VERTICAL, spacing)
    259279        .Add(fSizeSlider)
     280        .Add(fSizeTextControl)
    260281        .Add(BGridLayoutBuilder(0.0, 5.0)
    261282            .Add(fNameTextControl->CreateLabelLayoutItem(), 0, 0)
    262283            .Add(fNameTextControl->CreateTextViewLayoutItem(), 1, 0)
  • CreateParamsPanel.h

     
    5050            BMenuField*         fTypeMenuField;
    5151            BTextControl*       fNameTextControl;
    5252            SizeSlider*         fSizeSlider;
     53            BTextControl*       fSizeTextControl;
    5354};
    5455
    5556#endif // CREATE_PARAMS_PANEL_H