Fixed some font size issues:
* Use layout manager in "Add printer dialog". * Made preferences window resizable. TODO printers and job list view should truncate text if it does not fit into a row. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32452 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
37dd4be139
commit
43337f64e4
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright 2002-2007, Haiku.
|
* Copyright 2002-2009, Haiku.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
|
@ -26,12 +26,19 @@
|
||||||
#include <Application.h>
|
#include <Application.h>
|
||||||
#include <StorageKit.h>
|
#include <StorageKit.h>
|
||||||
|
|
||||||
|
#include <Layout.h>
|
||||||
|
#include <GridLayout.h>
|
||||||
|
#include <GridLayoutBuilder.h>
|
||||||
|
#include <GroupLayoutBuilder.h>
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
AddPrinterDialog::AddPrinterDialog(BWindow *parent)
|
AddPrinterDialog::AddPrinterDialog(BWindow *parent)
|
||||||
: Inherited(BRect(78.0, 71.0, 400, 300), "Add Printer",
|
:
|
||||||
B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL, B_NOT_ZOOMABLE)
|
Inherited(BRect(78.0, 71.0, 400, 300), "Add Printer",
|
||||||
, fPrintersPrefletMessenger(parent)
|
B_TITLED_WINDOW_LOOK, B_MODAL_APP_WINDOW_FEEL,
|
||||||
|
B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS),
|
||||||
|
fPrintersPrefletMessenger(parent)
|
||||||
{
|
{
|
||||||
BuildGUI(0);
|
BuildGUI(0);
|
||||||
|
|
||||||
|
@ -163,105 +170,54 @@ AddPrinterDialog::HandleChangedTransport(BMessage *msg)
|
||||||
void
|
void
|
||||||
AddPrinterDialog::BuildGUI(int stage)
|
AddPrinterDialog::BuildGUI(int stage)
|
||||||
{
|
{
|
||||||
float w, h;
|
|
||||||
// preferred size of current control
|
|
||||||
|
|
||||||
const int32 kHMargin = 8;
|
|
||||||
const int32 kVMargin = 8;
|
|
||||||
|
|
||||||
#define NAME_LABEL "Printer Name:"
|
|
||||||
#define KIND_LABEL "Printer Type:"
|
|
||||||
#define PORT_LABEL "Connected to:"
|
|
||||||
|
|
||||||
|
|
||||||
BRect r = Bounds();
|
|
||||||
|
|
||||||
BView *panel = new BView(r, "panel", B_FOLLOW_ALL, 0);
|
|
||||||
AddChild(panel);
|
|
||||||
panel->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
|
|
||||||
|
|
||||||
r.InsetBy(kHMargin, kVMargin);
|
|
||||||
|
|
||||||
// add a "printer name" input field
|
// add a "printer name" input field
|
||||||
fName = new BTextControl(r, "printer_name",
|
fName = new BTextControl("printer_name", "Printer Name:", B_EMPTY_STRING,
|
||||||
NAME_LABEL, B_EMPTY_STRING, NULL,
|
NULL);
|
||||||
B_FOLLOW_LEFT_RIGHT);
|
|
||||||
fName->SetFont(be_bold_font);
|
fName->SetFont(be_bold_font);
|
||||||
fName->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT);
|
fName->SetAlignment(B_ALIGN_RIGHT, B_ALIGN_LEFT);
|
||||||
panel->AddChild(fName);
|
|
||||||
fName->SetModificationMessage(new BMessage(kNameChangedMsg));
|
fName->SetModificationMessage(new BMessage(kNameChangedMsg));
|
||||||
fName->GetPreferredSize(&w, &h);
|
|
||||||
fName->ResizeTo(r.Width(), h);
|
|
||||||
|
|
||||||
r.OffsetBy(0, h + 2 * kVMargin);
|
|
||||||
|
|
||||||
// add a "driver" popup menu field
|
// add a "driver" popup menu field
|
||||||
fPrinter = new BPopUpMenu("<pick one>");
|
fPrinter = new BPopUpMenu("<pick one>");
|
||||||
BMenuField *printerMenuField = new BMenuField(r, "drivers_list", KIND_LABEL, fPrinter,
|
BMenuField *printerMenuField = new BMenuField("drivers_list",
|
||||||
B_FOLLOW_TOP | B_FOLLOW_LEFT_RIGHT,
|
"Printer Type:", fPrinter);
|
||||||
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE);
|
|
||||||
printerMenuField->SetFont(be_plain_font);
|
|
||||||
printerMenuField->SetAlignment(B_ALIGN_RIGHT);
|
printerMenuField->SetAlignment(B_ALIGN_RIGHT);
|
||||||
panel->AddChild(printerMenuField);
|
|
||||||
printerMenuField->GetPreferredSize(&w, &h);
|
|
||||||
printerMenuField->ResizeTo(r.Width(), h);
|
|
||||||
FillMenu(fPrinter, "Print", kPrinterSelectedMsg);
|
FillMenu(fPrinter, "Print", kPrinterSelectedMsg);
|
||||||
|
|
||||||
r.OffsetBy(0, printerMenuField->Bounds().Height() + kVMargin);
|
|
||||||
|
|
||||||
// add a "connected to" (aka transports list) menu field
|
// add a "connected to" (aka transports list) menu field
|
||||||
fTransport = new BPopUpMenu("<pick one>");
|
fTransport = new BPopUpMenu("<pick one>");
|
||||||
BMenuField *transportMenuField = new BMenuField(r, "transports_list", PORT_LABEL, fTransport,
|
BMenuField *transportMenuField = new BMenuField("transports_list",
|
||||||
B_FOLLOW_TOP | B_FOLLOW_LEFT_RIGHT,
|
"Connected to:", fTransport);
|
||||||
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE);
|
|
||||||
transportMenuField->SetFont(be_plain_font);
|
|
||||||
transportMenuField->SetAlignment(B_ALIGN_RIGHT);
|
transportMenuField->SetAlignment(B_ALIGN_RIGHT);
|
||||||
panel->AddChild(transportMenuField);
|
|
||||||
transportMenuField->GetPreferredSize(&w, &h);
|
|
||||||
transportMenuField->ResizeTo(r.Width(), h);
|
|
||||||
FillTransportMenu(fTransport);
|
FillTransportMenu(fTransport);
|
||||||
|
|
||||||
r.OffsetBy(0, transportMenuField->Bounds().Height() + kVMargin);
|
// add a "OK" button
|
||||||
|
fOk = new BButton(NULL, "Add", new BMessage((uint32)B_OK),
|
||||||
// update dividers
|
|
||||||
float divider = be_bold_font->StringWidth(NAME_LABEL "#");
|
|
||||||
divider = max_c(divider, be_plain_font->StringWidth(NAME_LABEL "#"));
|
|
||||||
divider = max_c(divider, be_plain_font->StringWidth(PORT_LABEL "#"));
|
|
||||||
|
|
||||||
fName->SetDivider(divider);
|
|
||||||
printerMenuField->SetDivider(divider);
|
|
||||||
transportMenuField->SetDivider(divider);
|
|
||||||
|
|
||||||
// add a "OK" button, and make it default
|
|
||||||
fOk = new BButton(r, NULL, "Add", new BMessage((uint32)B_OK),
|
|
||||||
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
|
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
|
||||||
fOk->ResizeToPreferred();
|
|
||||||
fOk->GetPreferredSize(&w, &h);
|
|
||||||
// put the ok bottom at bottom right corner
|
|
||||||
float x = panel->Bounds().right - w - kHMargin;
|
|
||||||
float y = panel->Bounds().bottom - h - kVMargin;
|
|
||||||
fOk->MoveTo(x, y);
|
|
||||||
panel->AddChild(fOk);
|
|
||||||
|
|
||||||
// add a "Cancel button
|
// add a "Cancel button
|
||||||
BButton *cancel = new BButton(r, NULL, "Cancel", new BMessage(B_CANCEL), B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
|
BButton *cancel = new BButton(NULL, "Cancel", new BMessage(B_CANCEL));
|
||||||
cancel->ResizeToPreferred();
|
|
||||||
cancel->GetPreferredSize(&w, &h);
|
SetLayout(new BGridLayout());
|
||||||
// put cancel button left next the ok button
|
|
||||||
x = fOk->Frame().left - w - kVMargin;
|
AddChild(BGridLayoutBuilder(0, 4)
|
||||||
y = fOk->Frame().top;
|
.Add(fName->CreateLabelLayoutItem(), 0, 0)
|
||||||
cancel->MoveTo(x, y);
|
.Add(fName->CreateTextViewLayoutItem(), 1, 0)
|
||||||
panel->AddChild(cancel);
|
.Add(printerMenuField->CreateLabelLayoutItem(), 0, 1)
|
||||||
|
.Add(printerMenuField->CreateMenuBarLayoutItem(), 1, 1)
|
||||||
|
.Add(transportMenuField->CreateLabelLayoutItem(), 0, 2)
|
||||||
|
.Add(transportMenuField->CreateMenuBarLayoutItem(), 1, 2)
|
||||||
|
.Add(BGroupLayoutBuilder(B_HORIZONTAL)
|
||||||
|
.AddGlue()
|
||||||
|
.Add(cancel)
|
||||||
|
.Add(fOk)
|
||||||
|
, 0, 3, 2)
|
||||||
|
.SetInsets(8, 8, 8, 8)
|
||||||
|
);
|
||||||
|
|
||||||
SetDefaultButton(fOk);
|
SetDefaultButton(fOk);
|
||||||
fOk->MakeDefault(true);
|
fOk->MakeDefault(true);
|
||||||
|
|
||||||
// Auto resize window
|
|
||||||
r.bottom = transportMenuField->Frame().bottom + fOk->Bounds().Height() + 2 * kVMargin;
|
|
||||||
ResizeTo(r.right, r.bottom);
|
|
||||||
|
|
||||||
SetSizeLimits(r.right, 10e5, r.bottom, 10e5);
|
|
||||||
|
|
||||||
fName->MakeFocus(true);
|
fName->MakeFocus(true);
|
||||||
|
|
||||||
Update();
|
Update();
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
SubDir HAIKU_TOP src preferences print ;
|
SubDir HAIKU_TOP src preferences print ;
|
||||||
|
|
||||||
SetSubDirSupportedPlatformsBeOSCompatible ;
|
|
||||||
|
|
||||||
UsePrivateHeaders shared print ;
|
UsePrivateHeaders shared print ;
|
||||||
|
|
||||||
Preference Printers :
|
Preference Printers :
|
||||||
|
@ -20,8 +18,3 @@ Preference Printers :
|
||||||
:
|
:
|
||||||
Printers.rdef
|
Printers.rdef
|
||||||
;
|
;
|
||||||
|
|
||||||
Package haiku-printingkit-cvs :
|
|
||||||
Printers :
|
|
||||||
# boot beos preferences ;
|
|
||||||
boot home Desktop haiku-printingkit ;
|
|
||||||
|
|
|
@ -47,7 +47,8 @@
|
||||||
|
|
||||||
|
|
||||||
JobListView::JobListView(BRect frame)
|
JobListView::JobListView(BRect frame)
|
||||||
: Inherited(frame, "jobs_list", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL)
|
: Inherited(frame, "jobs_list", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL,
|
||||||
|
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE | B_FULL_UPDATE_ON_RESIZE)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,8 @@
|
||||||
|
|
||||||
|
|
||||||
PrinterListView::PrinterListView(BRect frame)
|
PrinterListView::PrinterListView(BRect frame)
|
||||||
: Inherited(frame, "printers_list", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL),
|
: Inherited(frame, "printers_list", B_SINGLE_SELECTION_LIST, B_FOLLOW_ALL,
|
||||||
|
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE | B_FULL_UPDATE_ON_RESIZE),
|
||||||
fFolder(NULL),
|
fFolder(NULL),
|
||||||
fActivePrinter(NULL)
|
fActivePrinter(NULL)
|
||||||
{
|
{
|
||||||
|
|
|
@ -47,8 +47,7 @@
|
||||||
|
|
||||||
PrintersWindow::PrintersWindow(BRect frame)
|
PrintersWindow::PrintersWindow(BRect frame)
|
||||||
:
|
:
|
||||||
Inherited(BRect(78.0, 71.0, 561.0, 409.0), "Printers", B_TITLED_WINDOW,
|
Inherited(BRect(78.0, 71.0, 561.0, 409.0), "Printers", B_TITLED_WINDOW, 0),
|
||||||
B_NOT_H_RESIZABLE),
|
|
||||||
fSelectedPrinter(NULL),
|
fSelectedPrinter(NULL),
|
||||||
fAddingPrinter(false)
|
fAddingPrinter(false)
|
||||||
{
|
{
|
||||||
|
@ -285,8 +284,6 @@ PrintersWindow::BuildGUI()
|
||||||
// Resize boxes to the same size
|
// Resize boxes to the same size
|
||||||
jscroller->ResizeTo(width, jscroller->Bounds().Height());
|
jscroller->ResizeTo(width, jscroller->Bounds().Height());
|
||||||
pscroller->ResizeTo(width, pscroller->Bounds().Height());
|
pscroller->ResizeTo(width, pscroller->Bounds().Height());
|
||||||
|
|
||||||
SetSizeLimits(Bounds().Width(), Bounds().Width(), Bounds().Height(), 20000);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue