c566b0927d
changed the way prefs is stored, so that we have default settings general cleanup time sliders are now linked together as on R5 password window is centered onscreen git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13849 a95241bf-73f2-0310-859d-f6bbb57e9c96
120 lines
3.2 KiB
C++
120 lines
3.2 KiB
C++
/*
|
|
* Copyright 2003, Michael Phipps. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
|
|
#include "PasswordWindow.h"
|
|
#include <stdio.h>
|
|
#include <Alert.h>
|
|
#include <RadioButton.h>
|
|
#include <Screen.h>
|
|
|
|
|
|
PasswordWindow::PasswordWindow()
|
|
: BWindow(BRect(100,100,380,250),"",B_MODAL_WINDOW_LOOK,B_MODAL_APP_WINDOW_FEEL,B_NOT_RESIZABLE)
|
|
{
|
|
Setup();
|
|
BRect screenFrame = BScreen(B_MAIN_SCREEN_ID).Frame();
|
|
BPoint point;
|
|
point.x = (screenFrame.Width() - Bounds().Width()) / 2;
|
|
point.y = (screenFrame.Height() - Bounds().Height()) / 2;
|
|
|
|
if (screenFrame.Contains(point))
|
|
MoveTo(point);
|
|
}
|
|
|
|
|
|
void
|
|
PasswordWindow::Setup()
|
|
{
|
|
BView *owner=new BView(Bounds(),"ownerView",B_FOLLOW_NONE,B_WILL_DRAW);
|
|
owner->SetViewColor(216,216,216);
|
|
AddChild(owner);
|
|
fUseNetwork=new BRadioButton(BRect(15,10,160,20),"useNetwork","Use Network password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
|
fUseNetwork->SetValue(1);
|
|
owner->AddChild(fUseNetwork);
|
|
fUseCustom=new BRadioButton(BRect(30,50,130,60),"fUseCustom","Use custom password",new BMessage(kButton_changed),B_FOLLOW_NONE);
|
|
|
|
fCustomBox=new BBox(BRect(10,30,270,105),"custBeBox",B_FOLLOW_NONE);
|
|
fCustomBox->SetLabel(fUseCustom);
|
|
fPassword=new BTextControl(BRect(10,20,250,35),"pwdCntrl","Password:",NULL,B_FOLLOW_NONE);
|
|
fConfirm=new BTextControl(BRect(10,45,250,60),"fConfirmCntrl","Confirm fPassword:",NULL,B_FOLLOW_NONE);
|
|
fPassword->SetAlignment(B_ALIGN_RIGHT,B_ALIGN_LEFT);
|
|
fPassword->SetDivider(90);
|
|
fPassword->TextView()->HideTyping(true);
|
|
fConfirm->SetAlignment(B_ALIGN_RIGHT,B_ALIGN_LEFT);
|
|
fConfirm->SetDivider(90);
|
|
fConfirm->TextView()->HideTyping(true);
|
|
fCustomBox->AddChild(fPassword);
|
|
fCustomBox->AddChild(fConfirm);
|
|
owner->AddChild(fCustomBox);
|
|
|
|
fDone=new BButton(BRect(200,120,275,130),"done","Done",new BMessage (kDone_clicked),B_FOLLOW_NONE);
|
|
fCancel=new BButton(BRect(115,120,190,130),"cancel","Cancel",new BMessage (kCancel_clicked),B_FOLLOW_NONE);
|
|
owner->AddChild(fDone);
|
|
owner->AddChild(fCancel);
|
|
fDone->MakeDefault(true);
|
|
Update();
|
|
}
|
|
|
|
|
|
void
|
|
PasswordWindow::Update()
|
|
{
|
|
fUseNetPassword=(fUseCustom->Value()>0);
|
|
fConfirm->SetEnabled(fUseNetPassword);
|
|
fPassword->SetEnabled(fUseNetPassword);
|
|
}
|
|
|
|
|
|
void
|
|
PasswordWindow::MessageReceived(BMessage *message)
|
|
{
|
|
switch(message->what) {
|
|
case kDone_clicked:
|
|
if (fUseCustom->Value())
|
|
if (strcmp(fPassword->Text(),fConfirm->Text())) {
|
|
BAlert *alert=new BAlert("noMatch","Passwords don't match. Try again.","OK");
|
|
alert->Go();
|
|
} else {
|
|
fThePassword=fPassword->Text();
|
|
Hide();
|
|
}
|
|
else {
|
|
fPassword->SetText("");
|
|
fConfirm->SetText("");
|
|
Hide();
|
|
}
|
|
break;
|
|
case kCancel_clicked:
|
|
fPassword->SetText("");
|
|
fConfirm->SetText("");
|
|
Hide();
|
|
break;
|
|
case kButton_changed:
|
|
Update();
|
|
break;
|
|
case kShow:
|
|
Show();
|
|
break;
|
|
case kPopulate:
|
|
message->ReplaceString("lockpassword", ((fUseNetPassword)?"":fThePassword));
|
|
message->ReplaceString("lockmethod", (fUseNetPassword?"network":"custom"));
|
|
message->SendReply(message);
|
|
break;
|
|
case kUtilize: {
|
|
BString temp;
|
|
message->FindString("lockmethod",&temp);
|
|
fUseNetPassword=(temp=="custom");
|
|
if (!fUseNetPassword) {
|
|
message->FindString("lockpassword",&temp);
|
|
fThePassword=temp;
|
|
}
|
|
break;
|
|
}
|
|
default:
|
|
BWindow::MessageReceived(message);
|
|
break;
|
|
}
|
|
}
|