Patch by Andrea Anzani which fixes font sensitiveness issues with
Expander preferences window (thus fixing bug #162). Some cleanups by me git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20119 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
e32034330f
commit
69d0d14914
@ -32,11 +32,12 @@ ExpanderPreferences::ExpanderPreferences(BMessage *settings)
|
||||
rect.OffsetBy(11,9);
|
||||
rect.bottom -= 64;
|
||||
rect.right -= 22;
|
||||
BBox *box = new BBox(rect, "background", B_FOLLOW_ALL,
|
||||
BBox *box = new BBox(rect, "background", B_FOLLOW_NONE,
|
||||
B_WILL_DRAW | B_FRAME_EVENTS, B_FANCY_BORDER);
|
||||
box->SetLabel("Expander Preferences");
|
||||
background->AddChild(box);
|
||||
|
||||
float maxWidth=box->Bounds().right;
|
||||
|
||||
BRect frameRect = box->Bounds();
|
||||
frameRect.OffsetBy(15,23);
|
||||
@ -47,81 +48,132 @@ ExpanderPreferences::ExpanderPreferences(BMessage *settings)
|
||||
textRect.InsetBy(1,1);
|
||||
BStringView *stringView = new BStringView(frameRect, "expansion", "Expansion:",
|
||||
B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW);
|
||||
stringView->ResizeToPreferred();
|
||||
if(stringView->Frame().right>maxWidth) maxWidth=stringView->Frame().right;
|
||||
box->AddChild(stringView);
|
||||
|
||||
frameRect.OffsetBy(0, 60);
|
||||
stringView = new BStringView(frameRect, "destinationFolder", "Destination Folder:",
|
||||
B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW);
|
||||
box->AddChild(stringView);
|
||||
|
||||
frameRect.OffsetBy(0, 90);
|
||||
stringView = new BStringView(frameRect, "other", "Other:",
|
||||
B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW);
|
||||
box->AddChild(stringView);
|
||||
frameRect.top = stringView->Frame().bottom + 5;
|
||||
frameRect.left += 10;
|
||||
|
||||
rect = box->Bounds();
|
||||
rect.OffsetBy(25, 42);
|
||||
rect.bottom = rect.top + 20;
|
||||
rect.right = rect.right - 30;
|
||||
fAutoExpand = new BCheckBox(rect, "autoExpand", "Automatically expand files", NULL);
|
||||
fAutoExpand = new BCheckBox(frameRect, "autoExpand", "Automatically expand files", NULL);
|
||||
fAutoExpand->ResizeToPreferred();
|
||||
if(fAutoExpand->Frame().right>maxWidth) maxWidth=fAutoExpand->Frame().right;
|
||||
box->AddChild(fAutoExpand);
|
||||
|
||||
rect.OffsetBy(0, 17);
|
||||
fCloseWindow = new BCheckBox(rect, "closeWindowWhenDone", "Close window when done expanding", NULL);
|
||||
frameRect = fAutoExpand->Frame();
|
||||
frameRect.top = fAutoExpand->Frame().bottom + 1;
|
||||
fCloseWindow = new BCheckBox(frameRect, "closeWindowWhenDone", "Close window when done expanding", NULL);
|
||||
fCloseWindow->ResizeToPreferred();
|
||||
if(fCloseWindow->Frame().right>maxWidth) maxWidth=fCloseWindow->Frame().right;
|
||||
box->AddChild(fCloseWindow);
|
||||
|
||||
rect.OffsetBy(0, 44);
|
||||
fLeaveDest = new BRadioButton(rect, "leaveDest", "Leave destination folder path empty",
|
||||
|
||||
frameRect = stringView->Frame();
|
||||
frameRect.top = fCloseWindow->Frame().bottom + 10;
|
||||
stringView = new BStringView(frameRect, "destinationFolder", "Destination Folder:",
|
||||
B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW);
|
||||
stringView->ResizeToPreferred();
|
||||
if(stringView->Frame().right>maxWidth) maxWidth=stringView->Frame().right;
|
||||
box->AddChild(stringView);
|
||||
|
||||
frameRect.top = stringView->Frame().bottom + 5;
|
||||
frameRect.left += 10;
|
||||
|
||||
fLeaveDest = new BRadioButton(frameRect, "leaveDest", "Leave destination folder path empty",
|
||||
new BMessage(MSG_LEAVEDEST));
|
||||
fLeaveDest->ResizeToPreferred();
|
||||
if(fLeaveDest->Frame().right>maxWidth) maxWidth=fLeaveDest->Frame().right;
|
||||
box->AddChild(fLeaveDest);
|
||||
|
||||
rect.OffsetBy(0, 20);
|
||||
fSameDest = new BRadioButton(rect, "sameDir", "Same directory as source (archive) file",
|
||||
frameRect = fLeaveDest->Frame();
|
||||
frameRect.top = fLeaveDest->Frame().bottom + 1;
|
||||
fSameDest = new BRadioButton(frameRect, "sameDir", "Same directory as source (archive) file",
|
||||
new BMessage(MSG_SAMEDIR));
|
||||
fSameDest->ResizeToPreferred();
|
||||
if(fSameDest->Frame().right>maxWidth) maxWidth=fSameDest->Frame().right;
|
||||
box->AddChild(fSameDest);
|
||||
|
||||
rect.OffsetBy(0, 20);
|
||||
BRect useRect = rect;
|
||||
useRect.right = useRect.left + 50;
|
||||
fDestUse = new BRadioButton(useRect, "destUse", "Use:",
|
||||
new BMessage(MSG_DESTUSE));
|
||||
frameRect = fSameDest->Frame();
|
||||
frameRect.top = frameRect.bottom + 1;
|
||||
fDestUse = new BRadioButton(frameRect, "destUse", "Use:",new BMessage(MSG_DESTUSE));
|
||||
fDestUse->ResizeToPreferred();
|
||||
if(fDestUse->Frame().right>maxWidth) maxWidth=fDestUse->Frame().right;
|
||||
box->AddChild(fDestUse);
|
||||
|
||||
textRect = rect;
|
||||
textRect.OffsetBy(fDestUse->StringWidth("Use:") + 20, 0);
|
||||
textRect.right = textRect.left + 158;
|
||||
fDestText = new BTextControl(textRect, "destText", "", "", new BMessage(MSG_DESTTEXT));
|
||||
|
||||
frameRect = fDestUse->Frame();
|
||||
frameRect.left = fDestUse->Frame().right + 1;
|
||||
frameRect.right = frameRect.left + 58;
|
||||
frameRect.bottom = frameRect.top + 38;
|
||||
|
||||
fDestText = new BTextControl(frameRect, "destText", "", "", new BMessage(MSG_DESTTEXT));
|
||||
box->AddChild(fDestText);
|
||||
fDestText->ResizeToPreferred();
|
||||
fDestText->SetDivider(0);
|
||||
fDestText->TextView()->MakeEditable(false);
|
||||
box->AddChild(fDestText);
|
||||
fDestText->ResizeTo(158,fDestText->Frame().Height());
|
||||
|
||||
fDestText->SetEnabled(false);
|
||||
|
||||
textRect.OffsetBy(168, -4);
|
||||
textRect.right = textRect.left + 50;
|
||||
fSelect = new BButton(textRect, "selectButton", "Select", new BMessage(MSG_DESTSELECT));
|
||||
frameRect = fDestText->Frame();
|
||||
frameRect.left = frameRect.right + 5;
|
||||
fSelect = new BButton(frameRect, "selectButton", "Select", new BMessage(MSG_DESTSELECT));
|
||||
fSelect->ResizeToPreferred();
|
||||
if(fSelect->Frame().right>maxWidth) maxWidth=fSelect->Frame().right;
|
||||
box->AddChild(fSelect);
|
||||
fSelect->SetEnabled(false);
|
||||
|
||||
rect.OffsetBy(0, 50);
|
||||
fOpenDest = new BCheckBox(rect, "openDestination", "Open destination folder after extraction", NULL);
|
||||
fDestText->MoveBy(0,(fSelect->Frame().Height() - fDestText->Frame().Height())/2.0);
|
||||
fDestText->ResizeTo(158,fDestText->Frame().Height());
|
||||
|
||||
|
||||
|
||||
frameRect = stringView->Frame();
|
||||
frameRect.top = fDestUse->Frame().bottom + 10;
|
||||
|
||||
stringView = new BStringView(frameRect, "other", "Other:",B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW);
|
||||
stringView->ResizeToPreferred();
|
||||
if(stringView->Frame().right>maxWidth) maxWidth=stringView->Frame().right;
|
||||
box->AddChild(stringView);
|
||||
|
||||
frameRect.top = stringView->Frame().bottom + 5;
|
||||
frameRect.left += 10;
|
||||
|
||||
fOpenDest = new BCheckBox(frameRect, "openDestination", "Open destination folder after extraction", NULL);
|
||||
fOpenDest->ResizeToPreferred();
|
||||
if(fOpenDest->Frame().right>maxWidth) maxWidth=fOpenDest->Frame().right;
|
||||
box->AddChild(fOpenDest);
|
||||
|
||||
rect.OffsetBy(0, 17);
|
||||
fAutoShow = new BCheckBox(rect, "autoShow", "Automatically show contents listing", NULL);
|
||||
frameRect = fOpenDest->Frame();
|
||||
frameRect.top = frameRect.bottom + 1;
|
||||
fAutoShow = new BCheckBox(frameRect, "autoShow", "Automatically show contents listing", NULL);
|
||||
fAutoShow->ResizeToPreferred();
|
||||
if(fAutoShow->Frame().right>maxWidth) maxWidth=fAutoShow->Frame().right;
|
||||
box->AddChild(fAutoShow);
|
||||
|
||||
rect = BRect(Bounds().right-89, Bounds().bottom-40,
|
||||
Bounds().right-14, Bounds().bottom-16);
|
||||
BButton *button = new BButton(rect, "OKButton", "OK",
|
||||
new BMessage(MSG_OK));
|
||||
background->AddChild(button);
|
||||
button->MakeDefault(true);
|
||||
|
||||
rect.OffsetBy(-89, 0);
|
||||
button = new BButton(rect, "CancelButton", "Cancel",
|
||||
new BMessage(MSG_CANCEL));
|
||||
box->ResizeTo(maxWidth + 15,fAutoShow->Frame().bottom + 10);
|
||||
|
||||
rect = BRect(Bounds().right-89, Bounds().bottom-40, Bounds().right-14, Bounds().bottom-16);
|
||||
|
||||
rect = Bounds();
|
||||
BButton *button = new BButton(rect, "OKButton", "OK",new BMessage(MSG_OK));
|
||||
button->MakeDefault(true);
|
||||
button->ResizeToPreferred();
|
||||
button->MoveTo(box->Frame().right - button->Frame().Width(),box->Frame().bottom + 10 );
|
||||
background->AddChild(button);
|
||||
|
||||
|
||||
rect = button->Frame();
|
||||
BButton *cancel = new BButton(rect, "CancelButton", "Cancel", new BMessage(MSG_CANCEL));
|
||||
cancel->ResizeToPreferred();
|
||||
cancel->MoveBy(-cancel->Frame().Width() - 10, (button->Frame().Height() - cancel->Frame().Height()) /2.0);
|
||||
background->AddChild(cancel);
|
||||
|
||||
ResizeTo(box->Frame().right + 11 ,button->Frame().bottom + 11);
|
||||
|
||||
|
||||
BScreen screen(this);
|
||||
MoveBy((screen.Frame().Width()-Bounds().Width())/2,
|
||||
(screen.Frame().Height()-Bounds().Height())/2);
|
||||
|
@ -86,8 +86,7 @@ ExpanderThread::ExecuteUnit (void)
|
||||
// read output from command
|
||||
// send it to window
|
||||
|
||||
char * output_string;
|
||||
output_string = fgets(fExpanderOutputBuffer , 4096-1, fExpanderOutput);
|
||||
char *output_string = fgets(fExpanderOutputBuffer , 4096-1, fExpanderOutput);
|
||||
|
||||
if (output_string == NULL)
|
||||
return EOF;
|
||||
@ -198,10 +197,8 @@ ExpanderThread::PipeCommand(int argc, const char **argv, int &in, int &out, int
|
||||
status_t
|
||||
ExpanderThread::SuspendExternalExpander()
|
||||
{
|
||||
status_t status;
|
||||
thread_info thread_info;
|
||||
status = get_thread_info(fThreadId, &thread_info);
|
||||
BString thread_name = thread_info.name;
|
||||
status_t status = get_thread_info(fThreadId, &thread_info);
|
||||
|
||||
if (status == B_OK)
|
||||
return send_signal(-fThreadId, SIGSTOP);
|
||||
@ -212,10 +209,8 @@ ExpanderThread::SuspendExternalExpander()
|
||||
status_t
|
||||
ExpanderThread::ResumeExternalExpander()
|
||||
{
|
||||
status_t status = B_OK;
|
||||
thread_info thread_info;
|
||||
status = get_thread_info(fThreadId, &thread_info);
|
||||
BString thread_name = thread_info.name;
|
||||
status_t status = get_thread_info(fThreadId, &thread_info);
|
||||
|
||||
if (status == B_OK)
|
||||
return send_signal(-fThreadId, SIGCONT);
|
||||
@ -226,10 +221,8 @@ ExpanderThread::ResumeExternalExpander()
|
||||
status_t
|
||||
ExpanderThread::InterruptExternalExpander()
|
||||
{
|
||||
status_t status = B_OK;
|
||||
thread_info thread_info;
|
||||
status = get_thread_info (fThreadId, &thread_info);
|
||||
BString thread_name = thread_info.name;
|
||||
status_t status = get_thread_info (fThreadId, &thread_info);
|
||||
|
||||
if (status == B_OK) {
|
||||
status = send_signal(-fThreadId, SIGINT);
|
||||
@ -241,10 +234,8 @@ ExpanderThread::InterruptExternalExpander()
|
||||
status_t
|
||||
ExpanderThread::WaitOnExternalExpander()
|
||||
{
|
||||
status_t status;
|
||||
thread_info thread_info;
|
||||
status = get_thread_info(fThreadId, &thread_info);
|
||||
BString thread_name = thread_info.name;
|
||||
status_t status = get_thread_info(fThreadId, &thread_info);
|
||||
|
||||
if (status == B_OK)
|
||||
return wait_for_thread(fThreadId, &status);
|
||||
|
Loading…
Reference in New Issue
Block a user