Printers: PDF uses layout.

* Fix Advanced settings dialog.
* Fix Fonts dialog.
* Improve Page Setup.
* Partialy fix #4178.
This commit is contained in:
Janus
2015-05-09 16:52:12 +02:00
parent 684739c6bd
commit 8f1823774c
5 changed files with 175 additions and 245 deletions
@@ -34,12 +34,14 @@ THE SOFTWARE.
#include <Box.h>
#include <Button.h>
#include <FindDirectory.h>
#include <LayoutBuilder.h>
#include <MenuField.h>
#include <Message.h>
#include <Messenger.h>
#include <Path.h>
#include <PopUpMenu.h>
#include <Screen.h>
#include <SeparatorView.h>
#include <TextControl.h>
@@ -54,7 +56,7 @@ static BMessage* BorderWidthMessage(uint32 what, float width)
AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
: HWindow(BRect(0, 0, 450, 180), "Advanced Settings", B_TITLED_WINDOW_LOOK,
B_MODAL_APP_WINDOW_FEEL, B_NOT_RESIZABLE | B_NOT_MINIMIZABLE |
B_NOT_ZOOMABLE | B_CLOSE_ON_ESCAPE),
B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS | B_CLOSE_ON_ESCAPE),
fSettings(settings)
{
AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED));
@@ -84,19 +86,9 @@ AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
if (settings->FindInt32("close_option", (int32*)&fCloseOption) != B_OK)
fCloseOption = kNever;
BRect bounds(Bounds());
BBox *panel = new BBox(bounds, "background", B_FOLLOW_ALL,
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP, B_PLAIN_BORDER);
AddChild(panel);
bounds.InsetBy(10.0, 10.0);
float divider = be_plain_font->StringWidth("Close status window when done: ");
fLicenseKey = new BTextControl(bounds, "pdflib_license_key",
fLicenseKey = new BTextControl("pdflib_license_key",
"PDFlib License Key: ", "", NULL);
panel->AddChild(fLicenseKey);
fLicenseKey->SetEnabled(false);
fLicenseKey->ResizeToPreferred();
fLicenseKey->SetDivider(divider);
fLicenseKey->TextView()->HideTyping(true);
fLicenseKey->TextView()->SetText(licenseKey.String());
@@ -106,49 +98,52 @@ AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
// border link
// bounds.OffsetBy(0.0, fLicenseKey->Bounds().Height() + 10.0);
BPopUpMenu* m = new BPopUpMenu("Link Border");
m->SetRadioMode(true);
BPopUpMenu* menuLinkBorder = new BPopUpMenu("Link Border");
menuLinkBorder->SetRadioMode(true);
BMenuField *mf = new BMenuField(bounds, "link_border_width_menu",
"Link Border: ", m);
panel->AddChild(mf);
mf->ResizeToPreferred();
mf->SetDivider(divider);
mf->Menu()->SetLabelFromMarked(true);
BMenuField* menuFieldLinkBorder = new BMenuField("link_border_width_menu",
"Link Border: ", menuLinkBorder);
menuFieldLinkBorder->Menu()->SetLabelFromMarked(true);
BMenuItem* item;
m->AddItem(item = new BMenuItem("None", new BMessage(CREATE_LINKS_MSG)));
item->SetMarked(!fCreateLinks);
m->AddSeparatorItem();
menuLinkBorder->AddItem(item = new BMenuItem("None",
new BMessage(CREATE_LINKS_MSG)));
item->SetMarked(!fCreateLinks);
menuLinkBorder->AddSeparatorItem();
menuLinkBorder->AddItem(item = new BMenuItem("No Border",
BorderWidthMessage(LINK_BORDER_MSG, 0.0)));
m->AddItem(item = new BMenuItem("No Border", BorderWidthMessage(LINK_BORDER_MSG, 0.0)));
if (fCreateLinks && fLinkBorderWidth == 0)
item->SetMarked(true);
m->AddItem(item = new BMenuItem("Normal Border", BorderWidthMessage(LINK_BORDER_MSG, 1.0)));
menuLinkBorder->AddItem(item = new BMenuItem("Normal Border",
BorderWidthMessage(LINK_BORDER_MSG, 1.0)));
if (fCreateLinks && fLinkBorderWidth == 1)
item->SetMarked(true);
m->AddItem(item = new BMenuItem("Bold Border", BorderWidthMessage(LINK_BORDER_MSG, 2.0)));
menuLinkBorder->AddItem(item = new BMenuItem("Bold Border",
BorderWidthMessage(LINK_BORDER_MSG, 2.0)));
if (fCreateLinks && fLinkBorderWidth == 2)
item->SetMarked(true);
// bookmarks
m = new BPopUpMenu("Bookmark Definition File");
m->SetRadioMode(true);
BPopUpMenu* menuBookmark = new BPopUpMenu("Bookmark Definition File");
menuBookmark->SetRadioMode(true);
bounds.OffsetBy(0.0, mf->Bounds().Height() + 10.0);
mf = new BMenuField(bounds, "definition_menu", "Bookmark Definition File: ", m);
panel->AddChild(mf);
mf->ResizeToPreferred();
mf->SetDivider(divider);
mf->Menu()->SetLabelFromMarked(true);
BMenuField* menuFieldBookmark = new BMenuField("definition_menu",
"Bookmark Definition File: ", menuBookmark);
menuFieldBookmark->Menu()->SetLabelFromMarked(true);
m->AddItem(item = new BMenuItem("None", new BMessage(CREATE_BOOKMARKS_MSG)));
menuBookmark->AddItem(item = new BMenuItem("None",
new BMessage(CREATE_BOOKMARKS_MSG)));
item->SetMarked(!fCreateBookmarks);
m->AddSeparatorItem();
menuBookmark->AddSeparatorItem();
BDirectory bookmarks(_SetupDirectory("bookmarks"));
if (bookmarks.InitCheck() == B_OK) {
@@ -156,7 +151,7 @@ AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
while (bookmarks.GetNextEntry(&entry) != B_ENTRY_NOT_FOUND) {
char name[B_FILE_NAME_LENGTH];
if (entry.GetName(name) == B_OK) {
m->AddItem(item = new BMenuItem(name, new BMessage(DEFINITION_MSG)));
menuBookmark->AddItem(item = new BMenuItem(name, new BMessage(DEFINITION_MSG)));
if (fCreateBookmarks && strcmp(name, fBookmarkDefinition.String()) == 0)
item->SetMarked(true);
}
@@ -165,19 +160,17 @@ AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
// cross references
m = new BPopUpMenu("Cross References File");
m->SetRadioMode(true);
BPopUpMenu* menuCrossReferences = new BPopUpMenu("Cross References File");
menuCrossReferences->SetRadioMode(true);
bounds.OffsetBy(0.0, mf->Bounds().Height() + 10.0);
mf = new BMenuField(bounds, "xrefs_menu", "Cross References File: ", m);
panel->AddChild(mf);
mf->ResizeToPreferred();
mf->SetDivider(divider);
mf->Menu()->SetLabelFromMarked(true);
BMenuField* menuFieldCrossReferences = new BMenuField("xrefs_menu",
"Cross References File: ", menuCrossReferences);
menuFieldCrossReferences->Menu()->SetLabelFromMarked(true);
m->AddItem(item = new BMenuItem("None", new BMessage(CREATE_XREFS_MSG)));
menuCrossReferences->AddItem(item = new BMenuItem("None",
new BMessage(CREATE_XREFS_MSG)));
item->SetMarked(!fCreateXRefs);
m->AddSeparatorItem();
menuCrossReferences->AddSeparatorItem();
BDirectory xrefs(_SetupDirectory("xrefs"));
if (xrefs.InitCheck() == B_OK) {
@@ -185,62 +178,62 @@ AdvancedSettingsWindow::AdvancedSettingsWindow(BMessage *settings)
while (xrefs.GetNextEntry(&entry) != B_ENTRY_NOT_FOUND) {
char name[B_FILE_NAME_LENGTH];
if (entry.GetName(name) == B_OK) {
m->AddItem (item = new BMenuItem(name, new BMessage(XREFS_MSG)));
menuCrossReferences->AddItem(item = new BMenuItem(name,
new BMessage(XREFS_MSG)));
if (fCreateXRefs && strcmp(name, fXRefs.String()) == 0)
item->SetMarked(true);
}
}
}
m = new BPopUpMenu("Close status window when done");
m->SetRadioMode(true);
BPopUpMenu* menuStatusWindow =
new BPopUpMenu("Close status window when done");
menuStatusWindow->SetRadioMode(true);
bounds.OffsetBy(0.0, mf->Bounds().Height() + 10.0);
mf = new BMenuField(bounds, "close_option_menu", "Close status window when done: ", m);
panel->AddChild(mf);
mf->ResizeToPreferred();
mf->SetDivider(divider);
mf->Menu()->SetLabelFromMarked(true);
BMenuField* menuFieldStatusWindow = new BMenuField("close_option_menu",
"Close status window when done: ", menuStatusWindow);
menuFieldStatusWindow->Menu()->SetLabelFromMarked(true);
_AddMenuItem(m, "Never", kNever);
_AddMenuItem(m, "No Errors", kNoErrors);
_AddMenuItem(m, "No Errors or Warnings", kNoErrorsOrWarnings);
_AddMenuItem(m, "No Errors, Warnings or Info", kNoErrorsWarningsOrInfo);
_AddMenuItem(m, "Always", kAlways);
_AddMenuItem(menuStatusWindow, "Never", kNever);
_AddMenuItem(menuStatusWindow, "No Errors", kNoErrors);
_AddMenuItem(menuStatusWindow, "No Errors or Warnings",
kNoErrorsOrWarnings);
_AddMenuItem(menuStatusWindow, "No Errors, Warnings or Info",
kNoErrorsWarningsOrInfo);
_AddMenuItem(menuStatusWindow, "Always", kAlways);
bounds = Bounds();
bounds.InsetBy(5.0, 0.0);
bounds.top = mf->Frame().bottom + 10.0;
BBox *line = new BBox(BRect(bounds.left, bounds.top, bounds.right,
bounds.top + 1.0), NULL, B_FOLLOW_LEFT_RIGHT);
panel->AddChild(line);
BButton *cancelButton = new BButton("cancel", "Cancel",
new BMessage(CANCEL_MSG));
bounds.InsetBy(5.0, 0.0);
bounds.OffsetBy(0.0, 11.0);
BButton *cancel = new BButton(bounds, NULL, "Cancel", new BMessage(CANCEL_MSG));
panel->AddChild(cancel);
cancel->ResizeToPreferred();
BButton *okButton = new BButton("ok", "Ok", new BMessage(OK_MSG));
okButton->MakeDefault(true);
BButton *ok = new BButton(bounds, NULL, "OK", new BMessage(OK_MSG));
panel->AddChild(ok, cancel);
ok->ResizeToPreferred();
ResizeTo(divider * 1.3 + 10.0 + ok->Bounds().Width() + cancel->Bounds().Width(),
ok->Frame().bottom + 10.0);
bounds.right = Bounds().right - 10.0;
ok->MoveTo(bounds.right - ok->Bounds().Width(), ok->Frame().top);
bounds = ok->Frame();
cancel->MoveTo(bounds.left - cancel->Bounds().Width() - 10.0, bounds.top);
ok->MakeDefault(true);
BButton *button = new BButton(bounds, NULL, "Open Settings Folder" B_UTF8_ELLIPSIS,
BButton *openButton = new BButton("openSettingsFolder",
"Open Settings Folder" B_UTF8_ELLIPSIS,
new BMessage(OPEN_SETTINGS_FOLDER_MSG));
panel->AddChild(button);
button->ResizeToPreferred();
button->MoveTo(fLicenseKey->Frame().left, bounds.top);
BLayoutBuilder::Group<>(this, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.AddGrid(B_USE_DEFAULT_SPACING, B_USE_SMALL_SPACING)
.Add(fLicenseKey->CreateLabelLayoutItem(), 0, 0)
.Add(fLicenseKey->CreateTextViewLayoutItem(), 1, 0)
.Add(menuFieldLinkBorder->CreateLabelLayoutItem(), 0, 1)
.Add(menuFieldLinkBorder->CreateMenuBarLayoutItem(), 1, 1)
.Add(menuFieldBookmark->CreateLabelLayoutItem(), 0, 2)
.Add(menuFieldBookmark->CreateMenuBarLayoutItem(), 1, 2)
.Add(menuFieldCrossReferences->CreateLabelLayoutItem(), 0, 3)
.Add(menuFieldCrossReferences->CreateMenuBarLayoutItem(), 1, 3)
.Add(menuFieldStatusWindow->CreateLabelLayoutItem(), 0, 4)
.Add(menuFieldStatusWindow->CreateMenuBarLayoutItem(), 1, 4)
.End()
.Add(new BSeparatorView(B_HORIZONTAL, B_FANCY_BORDER))
.AddGroup(B_HORIZONTAL)
.Add(openButton)
.AddGlue()
.Add(cancelButton)
.Add(okButton)
.End();
BRect winFrame(Frame());
BRect screenFrame(BScreen().Frame());
@@ -30,6 +30,7 @@ THE SOFTWARE.
*/
#include <InterfaceKit.h>
#include <LayoutBuilder.h>
#include <SupportKit.h>
#include "BlockingWindow.h"
#include "FontsWindow.h"
@@ -108,93 +109,70 @@ DragListView::InitiateDrag(BPoint point, int32 index, bool wasSelected)
FontsWindow::FontsWindow(Fonts *fonts)
: HWindow(BRect(0,0,400,220), "Fonts", B_TITLED_WINDOW_LOOK,
B_MODAL_APP_WINDOW_FEEL, B_NOT_RESIZABLE | B_NOT_MINIMIZABLE |
B_NOT_ZOOMABLE | B_CLOSE_ON_ESCAPE)
B_NOT_ZOOMABLE | B_AUTO_UPDATE_SIZE_LIMITS | B_CLOSE_ON_ESCAPE)
{
// ---- Ok, build a default page setup user interface
BRect r, r1;
BView *panel;
BButton *button;
float x, y, w, h;
BString setting_value;
BTabView *tabView;
BTab *tab;
AddShortcut('W',B_COMMAND_KEY,new BMessage(B_QUIT_REQUESTED));
fFonts = fonts;
r = Bounds();
tabView = new BTabView(r, "tab_view");
BTabView* tabView = new BTabView("tabview", B_WIDTH_FROM_LABEL);
// --- Embedding tab ---
tab = new BTab();
// add a *dialog* background
BView* embeddingPanel = new BView("Embedding", B_WILL_DRAW
| B_FRAME_EVENTS | B_NAVIGABLE_JUMP);
embeddingPanel->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
r.bottom -= tabView->TabHeight();
panel = new BView(r, "embedding_panel", B_FOLLOW_ALL,
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP);
panel-> SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
r1 = r; r1.OffsetTo(0, 0);
// add font list
#if USE_CLV
fList = new BColumnListView(BRect(r.left+5, r.top+5, r.right-5-B_V_SCROLL_BAR_WIDTH, r.bottom-5-B_H_SCROLL_BAR_HEIGHT-30),
fList = new BColumnListView(BRect(),
"fonts_list", B_FOLLOW_ALL, B_WILL_DRAW | B_NAVIGABLE_JUMP);
panel->AddChild(fList);
embeddingPanel->AddChild(fList);
#else
fList = new BListView(BRect(r1.left+5, r1.top+5, r1.right-5-B_V_SCROLL_BAR_WIDTH, r1.bottom-5-B_H_SCROLL_BAR_HEIGHT-30),
"fonts_list", B_MULTIPLE_SELECTION_LIST);
panel->AddChild(new BScrollView("scroll_list", fList,
B_FOLLOW_LEFT | B_FOLLOW_TOP, 0, false, true));
fList = new BListView("fonts_list", B_MULTIPLE_SELECTION_LIST);
BScrollView* embeddingScrollView = new BScrollView("scroll_list",
fList, 0, false, true);
fList->SetSelectionMessage(new BMessage(SELECTION_MSG));
#endif
FillFontList();
// add a "Embed" button, and make it default
button = new BButton(r1, NULL, "Embed", new BMessage(EMBED_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->ResizeToPreferred();
button->GetPreferredSize(&w, &h);
x = r1.right - w - 8;
y = r1.bottom - h - 8;
button->MoveTo(x, y);
button->SetEnabled(false);
panel->AddChild(button);
button->MakeDefault(true);
fEmbedButton = button;
fEmbedButton = new BButton("embed", "Embed", new BMessage(EMBED_MSG));
fEmbedButton->SetEnabled(false);
fEmbedButton->MakeDefault(true);
// add a "Substitute" button
button = new BButton(r, NULL, "Substitute", new BMessage(SUBST_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->GetPreferredSize(&w, &h);
button->ResizeToPreferred();
button->MoveTo(x - w - 8, y);
button->SetEnabled(false);
panel->AddChild(button);
fSubstButton = button;
fSubstButton = new BButton("substitute", "Substitute",
new BMessage(SUBST_MSG));
fSubstButton->SetEnabled(false);
embeddingScrollView->SetExplicitMinSize(BSize(200, 200));
// add a separator line...
BBox * line = new BBox(BRect(r1.left, y - 9, r1.right, y - 8), NULL,
B_FOLLOW_LEFT_RIGHT | B_FOLLOW_BOTTOM );
panel->AddChild(line);
BLayoutBuilder::Group<>(embeddingPanel, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(embeddingScrollView)
.AddGroup(B_HORIZONTAL)
.AddGlue()
.Add(fEmbedButton)
.Add(fSubstButton);
tabView->AddTab(panel, tab);
tab->SetLabel("Embedding");
tabView->AddTab(embeddingPanel);
// --- CJK tab ---
tab = new BTab();
// add a *dialog* background
panel = new BView(r, "cjk_panel", B_FOLLOW_ALL,
B_WILL_DRAW | B_FRAME_EVENTS | B_NAVIGABLE_JUMP);
panel-> SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
BView* cjkPanel = new BView("CJK", B_WILL_DRAW | B_FRAME_EVENTS
| B_NAVIGABLE_JUMP);
cjkPanel->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
BListView* list =
new DragListView(BRect(r1.left+5, r1.top+5, r1.right-5-B_V_SCROLL_BAR_WIDTH, r1.bottom-5-B_H_SCROLL_BAR_HEIGHT-30),
new DragListView(BRect(),
"cjk", B_MULTIPLE_SELECTION_LIST);
panel->AddChild(new BScrollView("cjk_scroll_list", list,
B_FOLLOW_LEFT | B_FOLLOW_TOP, 0, false, true));
BScrollView* cjkScrollView = new BScrollView("cjk_scroll_list",
list, 0, false, true);
font_encoding enc; bool active;
for (int i = 0; fFonts->GetCJKOrder(i, enc, active); i++) {
@@ -204,63 +182,40 @@ FontsWindow::FontsWindow(Fonts *fonts)
fCJKList = list;
// add a "Embed" button
button = new BButton(r, NULL, "Enable", new BMessage(ENABLE_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->ResizeToPreferred();
button->GetPreferredSize(&w, &h);
x = r1.right - w - 8;
y = r1.bottom - h - 8;
button->MoveTo(x, y);
button->SetEnabled(false);
panel->AddChild(button);
fEnableButton = button;
fEnableButton = new BButton("enable", "Enable", new BMessage(ENABLE_MSG));
fEnableButton->SetEnabled(false);
// add a "Disable" button
button = new BButton(r, NULL, "Disable", new BMessage(DISABLE_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->GetPreferredSize(&w, &h);
button->ResizeToPreferred();
x -= w + 8;
button->MoveTo(x, y);
button->SetEnabled(false);
panel->AddChild(button);
fDisableButton = button;
fDisableButton = new BButton("disable", "Disable",
new BMessage(DISABLE_MSG));
fDisableButton->SetEnabled(false);
// add a "Down" button
button = new BButton(r, NULL, "Down", new BMessage(DOWN_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->GetPreferredSize(&w, &h);
button->ResizeToPreferred();
x -= w + 8;
button->MoveTo(x, y);
button->SetEnabled(false);
panel->AddChild(button);
fDownButton = button;
fDownButton = new BButton("down", "Down", new BMessage(DOWN_MSG));
fDownButton->SetEnabled(false);
// add a "Up" button
button = new BButton(r, NULL, "Up", new BMessage(UP_MSG),
B_FOLLOW_RIGHT | B_FOLLOW_BOTTOM);
button->GetPreferredSize(&w, &h);
button->ResizeToPreferred();
x -= w + 8;
button->MoveTo(x, y);
button->SetEnabled(false);
panel->AddChild(button);
fUpButton = button;
fUpButton = new BButton("up", "Up", new BMessage(UP_MSG));
fUpButton->SetEnabled(false);
// add a separator line...
line = new BBox(BRect(r1.left, y - 9, r1.right, y - 8), NULL,
B_FOLLOW_LEFT_RIGHT | B_FOLLOW_BOTTOM );
panel->AddChild(line);
BLayoutBuilder::Group<>(cjkPanel, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(cjkScrollView)
.AddGroup(B_HORIZONTAL)
.AddGlue()
.Add(fEnableButton)
.Add(fDisableButton)
.Add(fDownButton)
.Add(fUpButton);
tabView->AddTab(panel, tab);
tab->SetLabel("CJK");
tabView->AddTab(cjkPanel);
// add the tabView to the window
AddChild(tabView);
MoveTo(320, 320);
BLayoutBuilder::Group<>(this, B_VERTICAL)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(tabView);
MoveTo(320,320);
}
@@ -53,7 +53,7 @@ class DragListView : public BListView
public:
DragListView(BRect frame, const char *name,
list_view_type type = B_SINGLE_SELECTION_LIST,
uint32 resizingMode = B_FOLLOW_LEFT | B_FOLLOW_TOP,
uint32 resizingMode = B_FOLLOW_ALL,
uint32 flags = B_WILL_DRAW | B_NAVIGABLE | B_FRAME_EVENTS);
bool InitiateDrag(BPoint point, int32 index, bool wasSelected);
};
@@ -31,9 +31,9 @@ THE SOFTWARE.
*/
#include <GridView.h>
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
#include <InterfaceKit.h>
#include <LayoutBuilder.h>
#include <SeparatorView.h>
#include <SupportKit.h>
#include <stdlib.h>
@@ -122,41 +122,34 @@ JobSetupWindow::JobSetupWindow(BMessage *msg, const char * printerName)
fFrom->TextView()->DisallowChar(i);
}
BBox *separator = new BBox("separator");
separator->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 1));
BButton *documentInfo = new BButton("documentInfo",
BButton* documentInfo = new BButton("documentInfo",
"Document" B_UTF8_ELLIPSIS,
new BMessage(DOC_INFO_MSG));
BButton *cancel = new BButton("cancel", "Cancel", new BMessage(CANCEL_MSG));
BButton* cancel = new BButton("cancel", "Cancel", new BMessage(CANCEL_MSG));
BButton *ok = new BButton("ok", "OK", new BMessage(OK_MSG));
BButton* ok = new BButton("ok", "OK", new BMessage(OK_MSG));
ok->MakeDefault(true);
BGridView* settings = new BGridView();
BGridLayout* settingsLayout = settings->GridLayout();
settingsLayout->AddItem(fFrom->CreateLabelLayoutItem(), 0, 0);
settingsLayout->AddItem(fFrom->CreateTextViewLayoutItem(), 1, 0);
settingsLayout->AddItem(fTo->CreateLabelLayoutItem(), 0, 1);
settingsLayout->AddItem(fTo->CreateTextViewLayoutItem(), 1, 1);
settingsLayout->SetSpacing(0, 0);
SetLayout(new BGroupLayout(B_VERTICAL));
AddChild(BGroupLayoutBuilder(B_VERTICAL, 0)
BLayoutBuilder::Group<>(this, B_VERTICAL, B_USE_SMALL_SPACING)
.SetInsets(B_USE_DEFAULT_SPACING)
.Add(fAll)
.Add(fRange)
.Add(settings)
.AddGrid(B_USE_SMALL_SPACING, B_USE_SMALL_SPACING)
.SetInsets(B_USE_SMALL_SPACING, 0, B_USE_SMALL_SPACING, 0)
.Add(fFrom->CreateLabelLayoutItem(), 0, 0)
.Add(fFrom->CreateTextViewLayoutItem(), 1, 0)
.Add(fTo->CreateLabelLayoutItem(), 0, 1)
.Add(fTo->CreateTextViewLayoutItem(), 1, 1)
.End()
.AddGlue()
.Add(separator)
.AddGroup(B_HORIZONTAL, 10, 1.0f)
.Add(new BSeparatorView(B_HORIZONTAL, B_FANCY_BORDER))
.AddGroup(B_HORIZONTAL)
.Add(documentInfo)
.AddGlue()
.Add(cancel)
.Add(ok)
.End()
.SetInsets(10, 10, 10, 10)
);
.End();
}
@@ -43,14 +43,12 @@ THE SOFTWARE.
#include "PrintUtils.h"
#include <Box.h>
#include <Button.h>
#include <GridView.h>
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
#include <LayoutBuilder.h>
#include <MenuField.h>
#include <Message.h>
#include <PopUpMenu.h>
#include <SeparatorView.h>
#include <Screen.h>
#include <TextControl.h>
@@ -212,9 +210,6 @@ PageSetupWindow::PageSetupWindow(BMessage *msg, const char *printerName)
fPDFCompressionSlider->SetHashMarks(B_HASH_MARKS_BOTTOM);
fPDFCompressionSlider->SetValue(compression);
BBox *separator = new BBox("separator");
separator->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, 1));
BButton *cancel = new BButton("cancel", "Cancel", new BMessage(CANCEL_MSG));
BButton *ok = new BButton("ok", "OK", new BMessage(OK_MSG));
@@ -227,39 +222,33 @@ PageSetupWindow::PageSetupWindow(BMessage *msg, const char *printerName)
"Advanced" B_UTF8_ELLIPSIS,
new BMessage(ADVANCED_MSG));
BGridView* settings = new BGridView();
BGridLayout* settingsLayout = settings->GridLayout();
settingsLayout->AddItem(fPageSizeMenu->CreateLabelLayoutItem(), 0, 0);
settingsLayout->AddItem(fPageSizeMenu->CreateMenuBarLayoutItem(), 1, 0);
settingsLayout->AddItem(fOrientationMenu->CreateLabelLayoutItem(), 0, 1);
settingsLayout->AddItem(fOrientationMenu->CreateMenuBarLayoutItem(), 1, 1);
settingsLayout->AddItem(fPDFCompatibilityMenu->CreateLabelLayoutItem(), 0, 2);
settingsLayout->AddItem(fPDFCompatibilityMenu->CreateMenuBarLayoutItem(), 1, 2);
settingsLayout->AddView(fPDFCompressionSlider, 0, 3, 2);
settingsLayout->SetSpacing(0, 0);
float padding = 10;
SetLayout(new BGroupLayout(B_VERTICAL));
AddChild(BGroupLayoutBuilder(B_VERTICAL, 0)
BLayoutBuilder::Group<>(this, B_VERTICAL, padding)
.SetInsets(B_USE_DEFAULT_SPACING)
.AddGroup(B_HORIZONTAL, 5, 1)
.AddGroup(B_VERTICAL, 0, 1.0f)
.Add(fMarginView)
.AddGlue()
.End()
.AddGroup(B_VERTICAL, 0, 1.0f)
.Add(settings)
.AddGlue()
.AddGrid(padding, padding / 2)
.SetInsets(padding, padding * 2, padding, padding)
.Add(fPageSizeMenu->CreateLabelLayoutItem(), 0, 0)
.Add(fPageSizeMenu->CreateMenuBarLayoutItem(), 1, 0)
.Add(fOrientationMenu->CreateLabelLayoutItem(), 0, 1)
.Add(fOrientationMenu->CreateMenuBarLayoutItem(), 1, 1)
.Add(fPDFCompatibilityMenu->CreateLabelLayoutItem(), 0, 2)
.Add(fPDFCompatibilityMenu->CreateMenuBarLayoutItem(), 1, 2)
.Add(fPDFCompressionSlider, 0, 3, 2)
.End()
.End()
.Add(separator)
.Add(new BSeparatorView(B_HORIZONTAL, B_FANCY_BORDER))
.AddGroup(B_HORIZONTAL, 10, 1.0f)
.Add(fontsButton)
.Add(advancedButton)
.AddGlue()
.Add(cancel)
.Add(ok)
.End()
.SetInsets(10, 10, 10, 10)
);
.End();
BRect winFrame(Frame());
BRect screenFrame(BScreen().Frame());