* The window size is no longer directly saved when you change it in the menu.
* "Save as Default" now also saves the current Terminal size.
* Exchanged the strange default Termina sizes with some others, added a
separator between the full screen setting.
* Removed the "Term" prefix from TermView::fTerm{Columns|Rows}.
* Whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29513 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2008, Haiku, Inc.
|
||||
* Copyright 2001-2009, Haiku, Inc.
|
||||
* Copyright 2003-2004 Kian Duffy, [email protected]
|
||||
* Parts Copyright 1998-1999 Kazuho Okui and Takashi Murai.
|
||||
* All rights reserved. Distributed under the terms of the MIT license.
|
||||
@@ -47,6 +47,7 @@
|
||||
|
||||
#include "CodeConv.h"
|
||||
#include "Globals.h"
|
||||
#include "PrefHandler.h"
|
||||
#include "Shell.h"
|
||||
#include "TermConst.h"
|
||||
#include "TerminalCharClassifier.h"
|
||||
@@ -166,8 +167,8 @@ private:
|
||||
TermView::TermView(BRect frame, int32 argc, const char** argv, int32 historySize)
|
||||
: BView(frame, "termview", B_FOLLOW_ALL,
|
||||
B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE | B_PULSE_NEEDED),
|
||||
fTermRows(ROWS_DEFAULT),
|
||||
fTermColumns(COLUMNS_DEFAULT),
|
||||
fColumns(COLUMNS_DEFAULT),
|
||||
fRows(ROWS_DEFAULT),
|
||||
fEncoding(M_UTF8),
|
||||
fScrBufSize(historySize)
|
||||
{
|
||||
@@ -179,13 +180,13 @@ TermView::TermView(int rows, int columns, int32 argc, const char** argv,
|
||||
int32 historySize)
|
||||
: BView(BRect(0, 0, 0, 0), "termview", B_FOLLOW_ALL,
|
||||
B_WILL_DRAW | B_FRAME_EVENTS | B_FULL_UPDATE_ON_RESIZE | B_PULSE_NEEDED),
|
||||
fTermRows(rows),
|
||||
fTermColumns(columns),
|
||||
fColumns(columns),
|
||||
fRows(rows),
|
||||
fEncoding(M_UTF8),
|
||||
fScrBufSize(historySize)
|
||||
{
|
||||
_InitObject(argc, argv);
|
||||
SetTermSize(fTermRows, fTermColumns, true);
|
||||
SetTermSize(fRows, fColumns, true);
|
||||
|
||||
// TODO: Don't show the dragger, since replicant capabilities
|
||||
// don't work very well ATM.
|
||||
@@ -203,8 +204,8 @@ TermView::TermView(int rows, int columns, int32 argc, const char** argv,
|
||||
TermView::TermView(BMessage* archive)
|
||||
:
|
||||
BView(archive),
|
||||
fTermRows(ROWS_DEFAULT),
|
||||
fTermColumns(COLUMNS_DEFAULT),
|
||||
fColumns(COLUMNS_DEFAULT),
|
||||
fRows(ROWS_DEFAULT),
|
||||
fEncoding(M_UTF8),
|
||||
fScrBufSize(1000)
|
||||
{
|
||||
@@ -213,10 +214,10 @@ TermView::TermView(BMessage* archive)
|
||||
|
||||
if (archive->FindInt32("encoding", (int32*)&fEncoding) < B_OK)
|
||||
fEncoding = M_UTF8;
|
||||
if (archive->FindInt32("columns", (int32*)&fTermColumns) < B_OK)
|
||||
fTermColumns = COLUMNS_DEFAULT;
|
||||
if (archive->FindInt32("rows", (int32*)&fTermRows) < B_OK)
|
||||
fTermRows = ROWS_DEFAULT;
|
||||
if (archive->FindInt32("columns", (int32*)&fColumns) < B_OK)
|
||||
fColumns = COLUMNS_DEFAULT;
|
||||
if (archive->FindInt32("rows", (int32*)&fRows) < B_OK)
|
||||
fRows = ROWS_DEFAULT;
|
||||
|
||||
int32 argc = 0;
|
||||
if (archive->HasInt32("argc"))
|
||||
@@ -235,7 +236,7 @@ TermView::TermView(BMessage* archive)
|
||||
|
||||
|
||||
/*! Initializes the object for further use.
|
||||
The members fTermRows, fTermColumns, fEncoding, and fScrBufSize must
|
||||
The members fRows, fColumns, fEncoding, and fScrBufSize must
|
||||
already be initialized; they are not touched by this method.
|
||||
*/
|
||||
status_t
|
||||
@@ -290,12 +291,12 @@ TermView::_InitObject(int32 argc, const char** argv)
|
||||
if (fCharClassifier == NULL)
|
||||
return B_NO_MEMORY;
|
||||
|
||||
status_t error = fTextBuffer->Init(fTermColumns, fTermRows, fScrBufSize);
|
||||
status_t error = fTextBuffer->Init(fColumns, fRows, fScrBufSize);
|
||||
if (error != B_OK)
|
||||
return error;
|
||||
fTextBuffer->SetEncoding(fEncoding);
|
||||
|
||||
error = fVisibleTextBuffer->Init(fTermColumns, fTermRows + 2, 0);
|
||||
error = fVisibleTextBuffer->Init(fColumns, fRows + 2, 0);
|
||||
if (error != B_OK)
|
||||
return error;
|
||||
|
||||
@@ -304,10 +305,10 @@ TermView::_InitObject(int32 argc, const char** argv)
|
||||
return B_NO_MEMORY;
|
||||
|
||||
SetTermFont(be_fixed_font);
|
||||
SetTermSize(fTermRows, fTermColumns, false);
|
||||
SetTermSize(fRows, fColumns, false);
|
||||
//SetIMAware(false);
|
||||
|
||||
status_t status = fShell->Open(fTermRows, fTermColumns,
|
||||
status_t status = fShell->Open(fRows, fColumns,
|
||||
EncodingAsShortString(fEncoding), argc, argv);
|
||||
|
||||
if (status < B_OK)
|
||||
@@ -360,9 +361,9 @@ TermView::Archive(BMessage* data, bool deep) const
|
||||
if (status == B_OK)
|
||||
status = data->AddInt32("encoding", (int32)fEncoding);
|
||||
if (status == B_OK)
|
||||
status = data->AddInt32("columns", (int32)fTermColumns);
|
||||
status = data->AddInt32("columns", (int32)fColumns);
|
||||
if (status == B_OK)
|
||||
status = data->AddInt32("rows", (int32)fTermRows);
|
||||
status = data->AddInt32("rows", (int32)fRows);
|
||||
|
||||
if (data->ReplaceString("class", "TermView") != B_OK)
|
||||
data->AddString("class", "TermView");
|
||||
@@ -422,9 +423,9 @@ void
|
||||
TermView::GetPreferredSize(float *width, float *height)
|
||||
{
|
||||
if (width)
|
||||
*width = fTermColumns * fFontWidth - 1;
|
||||
*width = fColumns * fFontWidth - 1;
|
||||
if (height)
|
||||
*height = fTermRows * fFontHeight - 1;
|
||||
*height = fRows * fFontHeight - 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -453,9 +454,12 @@ TermView::SetTermSize(int rows, int columns, bool resize)
|
||||
{
|
||||
//debug_printf("TermView::SetTermSize(%d, %d)\n", rows, columns);
|
||||
if (rows > 0)
|
||||
fTermRows = rows;
|
||||
fRows = rows;
|
||||
if (columns > 0)
|
||||
fTermColumns = columns;
|
||||
fColumns = columns;
|
||||
|
||||
PrefHandler::Default()->setInt32(PREF_COLS, fColumns);
|
||||
PrefHandler::Default()->setInt32(PREF_ROWS, fRows);
|
||||
|
||||
// To keep things simple, get rid of the selection first.
|
||||
_Deselect();
|
||||
@@ -469,23 +473,19 @@ TermView::SetTermSize(int rows, int columns, bool resize)
|
||||
}
|
||||
}
|
||||
|
||||
fTermRows = rows;
|
||||
fTermColumns = columns;
|
||||
|
||||
//debug_printf("Invalidate()\n");
|
||||
Invalidate();
|
||||
|
||||
if (fScrollBar != NULL) {
|
||||
_UpdateScrollBarRange();
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fTermRows);
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fRows);
|
||||
}
|
||||
|
||||
BRect rect(0, 0, fTermColumns * fFontWidth, fTermRows * fFontHeight);
|
||||
BRect rect(0, 0, fColumns * fFontWidth, fRows * fFontHeight);
|
||||
|
||||
if (resize)
|
||||
ResizeTo(rect.Width(), rect.Height());
|
||||
|
||||
|
||||
// synchronize the visible text buffer
|
||||
{
|
||||
BAutolock _(fTextBuffer);
|
||||
@@ -593,7 +593,7 @@ TermView::SetTermFont(const BFont *font)
|
||||
|
||||
_ScrollTo(0, false);
|
||||
if (fScrollBar != NULL)
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fTermRows);
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fRows);
|
||||
}
|
||||
|
||||
|
||||
@@ -602,7 +602,7 @@ TermView::SetScrollBar(BScrollBar *scrollBar)
|
||||
{
|
||||
fScrollBar = scrollBar;
|
||||
if (fScrollBar != NULL) {
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fTermRows);
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fRows);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -703,10 +703,10 @@ TermView::_InvalidateTextRange(TermPos start, TermPos end)
|
||||
if (start.y == end.y) {
|
||||
_InvalidateTextRect(start.x, start.y, end.x, end.y);
|
||||
} else {
|
||||
_InvalidateTextRect(start.x, start.y, fTermColumns, start.y);
|
||||
_InvalidateTextRect(start.x, start.y, fColumns, start.y);
|
||||
|
||||
if (end.y - start.y > 0)
|
||||
_InvalidateTextRect(0, start.y + 1, fTermColumns, end.y - 1);
|
||||
_InvalidateTextRect(0, start.y + 1, fColumns, end.y - 1);
|
||||
|
||||
_InvalidateTextRect(0, end.y, end.x, end.y);
|
||||
}
|
||||
@@ -891,7 +891,7 @@ TermView::_UpdateScrollBarRange()
|
||||
historySize = fTextBuffer->HistorySize();
|
||||
}
|
||||
|
||||
float viewHeight = fTermRows * fFontHeight;
|
||||
float viewHeight = fRows * fFontHeight;
|
||||
float historyHeight = (float)historySize * fFontHeight;
|
||||
|
||||
//debug_printf("TermView::_UpdateScrollBarRange(): history: %ld, range: %f - 0\n",
|
||||
@@ -908,7 +908,7 @@ void
|
||||
TermView::_UpdateSIGWINCH()
|
||||
{
|
||||
if (fFrameResized) {
|
||||
fShell->UpdateWindowSize(fTermRows, fTermColumns);
|
||||
fShell->UpdateWindowSize(fRows, fColumns);
|
||||
fFrameResized = false;
|
||||
}
|
||||
}
|
||||
@@ -921,7 +921,7 @@ TermView::AttachedToWindow()
|
||||
|
||||
MakeFocus(true);
|
||||
if (fScrollBar) {
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fTermRows);
|
||||
fScrollBar->SetSteps(fFontHeight, fFontHeight * fRows);
|
||||
_UpdateScrollBarRange();
|
||||
}
|
||||
|
||||
@@ -994,7 +994,7 @@ TermView::Draw(BRect updateRect)
|
||||
|
||||
for (int32 j = y1; j <= y2; j++) {
|
||||
int32 k = x1;
|
||||
char buf[fTermColumns * 4 + 1];
|
||||
char buf[fColumns * 4 + 1];
|
||||
|
||||
if (fVisibleTextBuffer->IsFullWidthChar(j - firstVisible, k))
|
||||
k--;
|
||||
@@ -1233,7 +1233,7 @@ TermView::KeyDown(const char *bytes, int32 numBytes)
|
||||
|
||||
case B_PAGE_UP:
|
||||
if (mod & B_SHIFT_KEY) {
|
||||
_ScrollTo(fScrollOffset - fFontHeight * fTermRows, true);
|
||||
_ScrollTo(fScrollOffset - fFontHeight * fRows, true);
|
||||
return;
|
||||
}
|
||||
if (rawChar == B_PAGE_UP)
|
||||
@@ -1242,7 +1242,7 @@ TermView::KeyDown(const char *bytes, int32 numBytes)
|
||||
|
||||
case B_PAGE_DOWN:
|
||||
if (mod & B_SHIFT_KEY) {
|
||||
_ScrollTo(fScrollOffset + fFontHeight * fTermRows, true);
|
||||
_ScrollTo(fScrollOffset + fFontHeight * fRows, true);
|
||||
return;
|
||||
}
|
||||
if (rawChar == B_PAGE_DOWN)
|
||||
@@ -1281,7 +1281,7 @@ TermView::FrameResized(float width, float height)
|
||||
int32 columns = ((int32)width + 1) / fFontWidth;
|
||||
int32 rows = ((int32)height + 1) / fFontHeight;
|
||||
|
||||
if (columns == fTermColumns && rows == fTermRows)
|
||||
if (columns == fColumns && rows == fRows)
|
||||
return;
|
||||
|
||||
bool hasResizeView = fResizeRunner != NULL;
|
||||
@@ -1775,7 +1775,7 @@ TermView::_SynchronizeWithTextBuffer(int32 visibleDirtyTop,
|
||||
// been scrolled in less than a sync update period. Once we're
|
||||
// actively considering it, the same condition will convince us to
|
||||
// actually do it.
|
||||
if (fScrolledSinceLastSync + linesScrolled <= fTermRows) {
|
||||
if (fScrolledSinceLastSync + linesScrolled <= fRows) {
|
||||
// Condition doesn't hold yet. Reset if time is up, or otherwise
|
||||
// keep counting.
|
||||
if (timeElapsed > kSyncUpdateGranularity) {
|
||||
@@ -1808,7 +1808,7 @@ TermView::_SynchronizeWithTextBuffer(int32 visibleDirtyTop,
|
||||
// sync time not passed yet -- keep counting
|
||||
fScrolledSinceLastSync += linesScrolled;
|
||||
return;
|
||||
} else if (fScrolledSinceLastSync + linesScrolled <= fTermRows) {
|
||||
} else if (fScrolledSinceLastSync + linesScrolled <= fRows) {
|
||||
// time's up, but not enough happened
|
||||
delete fSyncRunner;
|
||||
fSyncRunner = NULL;
|
||||
@@ -2194,8 +2194,8 @@ TermView::_Select(TermPos start, TermPos end, bool inclusive,
|
||||
|
||||
if (start.x < 0)
|
||||
start.x = 0;
|
||||
if (end.x >= fTermColumns)
|
||||
end.x = fTermColumns;
|
||||
if (end.x >= fColumns)
|
||||
end.x = fColumns;
|
||||
|
||||
TermPos minPos(0, -fTextBuffer->HistorySize());
|
||||
TermPos maxPos(0, fTextBuffer->Height());
|
||||
@@ -2217,8 +2217,8 @@ TermView::_Select(TermPos start, TermPos end, bool inclusive,
|
||||
|
||||
if (fTextBuffer->IsFullWidthChar(end.y, end.x)) {
|
||||
end.x++;
|
||||
if (end.x >= fTermColumns)
|
||||
end.x = fTermColumns;
|
||||
if (end.x >= fColumns)
|
||||
end.x = fColumns;
|
||||
}
|
||||
|
||||
if (fSelStart != fSelEnd)
|
||||
@@ -2389,10 +2389,10 @@ TermView::GetFrameSize(float *width, float *height)
|
||||
}
|
||||
|
||||
if (width != NULL)
|
||||
*width = fTermColumns * fFontWidth;
|
||||
*width = fColumns * fFontWidth;
|
||||
|
||||
if (height != NULL)
|
||||
*height = (fTermRows + historySize) * fFontHeight;
|
||||
*height = (fRows + historySize) * fFontHeight;
|
||||
}
|
||||
|
||||
|
||||
@@ -2483,7 +2483,7 @@ TermView::InitiateDrag()
|
||||
if (fSelStart.y == fSelEnd.y)
|
||||
rect.Set(start.x, start.y, end.x + fFontWidth, end.y + fFontHeight);
|
||||
else
|
||||
rect.Set(0, start.y, fTermColumns * fFontWidth, end.y + fFontHeight);
|
||||
rect.Set(0, start.y, fColumns * fFontWidth, end.y + fFontHeight);
|
||||
|
||||
rect = rect & Bounds();
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2001-2008, Haiku.
|
||||
* Copyright 2001-2009, Haiku.
|
||||
* Copyright (c) 2003-4 Kian Duffy <[email protected]>
|
||||
* Parts Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
|
||||
*
|
||||
@@ -208,8 +208,8 @@ private:
|
||||
int32 fMouseButtons;
|
||||
|
||||
// Terminal rows and columns.
|
||||
int fTermRows;
|
||||
int fTermColumns;
|
||||
int fColumns;
|
||||
int fRows;
|
||||
|
||||
int fEncoding;
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* Copyright 2007 Haiku, Inc.
|
||||
* Copyright (c) 2004 Daniel Furrer <[email protected]>
|
||||
* Copyright (c) 2003-2004 Kian Duffy <[email protected]>
|
||||
* Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
|
||||
* Copyright (C) 1998,99 Kazuho Okui and Takashi Murai.
|
||||
*
|
||||
* Distributed under the terms of the MIT license.
|
||||
*/
|
||||
@@ -63,7 +63,7 @@ public:
|
||||
class TermViewContainerView : public BView {
|
||||
public:
|
||||
TermViewContainerView(TermView* termView)
|
||||
:
|
||||
:
|
||||
BView(BRect(), "term view container", B_FOLLOW_ALL, 0),
|
||||
fTermView(termView)
|
||||
{
|
||||
@@ -161,7 +161,7 @@ TermWindow::TermWindow(BRect frame, const char* title, Arguments *args)
|
||||
|
||||
TermWindow::~TermWindow()
|
||||
{
|
||||
if (fPrefWindow)
|
||||
if (fPrefWindow)
|
||||
fPrefWindow->PostMessage(B_QUIT_REQUESTED);
|
||||
|
||||
if (fFindPanel && fFindPanel->Lock()) {
|
||||
@@ -299,14 +299,14 @@ TermWindow::_SetupMenu()
|
||||
fEncodingmenu = new BMenu("Text Encoding");
|
||||
fEncodingmenu->SetRadioMode(true);
|
||||
MakeEncodingMenu(fEncodingmenu, false);
|
||||
fHelpmenu->AddItem(fWindowSizeMenu);
|
||||
fHelpmenu->AddItem(fWindowSizeMenu);
|
||||
fHelpmenu->AddItem(fEncodingmenu);
|
||||
fHelpmenu->AddSeparatorItem();
|
||||
fHelpmenu->AddItem(new BMenuItem("Preferences" B_UTF8_ELLIPSIS,
|
||||
new BMessage(MENU_PREF_OPEN)));
|
||||
fHelpmenu->AddSeparatorItem();
|
||||
fHelpmenu->AddItem(new BMenuItem("Save as default",
|
||||
new BMessage(SAVE_AS_DEFAULT)));
|
||||
new BMessage(SAVE_AS_DEFAULT)));
|
||||
fMenubar->AddItem(fHelpmenu);
|
||||
|
||||
AddChild(fMenubar);
|
||||
@@ -358,7 +358,7 @@ TermWindow::MessageReceived(BMessage *message)
|
||||
be_app->PostMessage(MENU_SWITCH_TERM);
|
||||
break;
|
||||
|
||||
case MENU_NEW_TERM:
|
||||
case MENU_NEW_TERM:
|
||||
{
|
||||
app_info info;
|
||||
be_app->GetAppInfo(&info);
|
||||
@@ -396,13 +396,13 @@ TermWindow::MessageReceived(BMessage *message)
|
||||
case MSG_FIND:
|
||||
fFindPanel->PostMessage(B_QUIT_REQUESTED);
|
||||
message->FindBool("findselection", &fFindSelection);
|
||||
if (!fFindSelection)
|
||||
if (!fFindSelection)
|
||||
message->FindString("findstring", &fFindString);
|
||||
else
|
||||
else
|
||||
_ActiveTermView()->GetSelection(fFindString);
|
||||
|
||||
if (fFindString.Length() == 0) {
|
||||
BAlert *alert = new BAlert("find failed", "No search string.", "Okay", NULL,
|
||||
BAlert *alert = new BAlert("find failed", "No search string.", "Okay", NULL,
|
||||
NULL, B_WIDTH_AS_USUAL, B_WARNING_ALERT);
|
||||
alert->Go();
|
||||
fFindBackwardMenuItem->SetEnabled(false);
|
||||
@@ -461,29 +461,22 @@ TermWindow::MessageReceived(BMessage *message)
|
||||
int32 columns, rows;
|
||||
message->FindInt32("columns", &columns);
|
||||
message->FindInt32("rows", &rows);
|
||||
PrefHandler::Default()->setInt32(PREF_COLS, columns);
|
||||
PrefHandler::Default()->setInt32(PREF_ROWS, rows);
|
||||
|
||||
_ActiveTermView()->SetTermSize(rows, columns, 0);
|
||||
|
||||
|
||||
_ActiveTermView()->SetTermSize(rows, columns, false);
|
||||
|
||||
_ResizeView(_ActiveTermView());
|
||||
|
||||
BPath path;
|
||||
if (PrefHandler::GetDefaultPath(path) == B_OK)
|
||||
PrefHandler::Default()->SaveAsText(path.Path(), PREFFILE_MIMETYPE);
|
||||
break;
|
||||
}
|
||||
case MSG_HALF_FONT_CHANGED:
|
||||
case MSG_FULL_FONT_CHANGED:
|
||||
case MSG_HALF_SIZE_CHANGED:
|
||||
case MSG_FULL_SIZE_CHANGED:
|
||||
case MSG_FULL_SIZE_CHANGED:
|
||||
{
|
||||
BFont font;
|
||||
_GetPreferredFont(font);
|
||||
_ActiveTermView()->SetTermFont(&font);
|
||||
|
||||
|
||||
_ResizeView(_ActiveTermView());
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -513,9 +506,9 @@ TermWindow::MessageReceived(BMessage *message)
|
||||
fSavedFrame = BRect(0,0,-1,-1);
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
case MSG_FONT_CHANGED:
|
||||
PostMessage(MSG_HALF_FONT_CHANGED);
|
||||
PostMessage(MSG_HALF_FONT_CHANGED);
|
||||
break;
|
||||
|
||||
case MSG_COLOR_CHANGED:
|
||||
@@ -525,7 +518,7 @@ TermWindow::MessageReceived(BMessage *message)
|
||||
break;
|
||||
}
|
||||
|
||||
case SAVE_AS_DEFAULT:
|
||||
case SAVE_AS_DEFAULT:
|
||||
{
|
||||
BPath path;
|
||||
if (PrefHandler::GetDefaultPath(path) == B_OK)
|
||||
@@ -647,8 +640,8 @@ TermWindow::_SetTermColors(TermViewContainerView *containerView)
|
||||
|
||||
|
||||
status_t
|
||||
TermWindow::_DoPageSetup()
|
||||
{
|
||||
TermWindow::_DoPageSetup()
|
||||
{
|
||||
BPrintJob job("PageSetup");
|
||||
|
||||
// display the page configure panel
|
||||
@@ -659,7 +652,7 @@ TermWindow::_DoPageSetup()
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
TermWindow::_DoPrint()
|
||||
@@ -668,10 +661,10 @@ TermWindow::_DoPrint()
|
||||
(new BAlert("Cancel", "Print cancelled.", "OK"))->Go();
|
||||
return;
|
||||
}
|
||||
|
||||
BPrintJob job("Print");
|
||||
|
||||
BPrintJob job("Print");
|
||||
job.SetSettings(new BMessage(*fPrintSettings));
|
||||
|
||||
|
||||
BRect pageRect = job.PrintableRect();
|
||||
BRect curPageRect = pageRect;
|
||||
|
||||
@@ -690,18 +683,19 @@ TermWindow::_DoPrint()
|
||||
curPageRect.OffsetTo(x * pWidth, y * pHeight);
|
||||
job.DrawView(_ActiveTermView(), curPageRect, B_ORIGIN);
|
||||
job.SpoolPage();
|
||||
|
||||
if (!job.CanContinue()){
|
||||
|
||||
if (!job.CanContinue()) {
|
||||
// It is likely that the only way that the job was cancelled is
|
||||
// because the user hit 'Cancel' in the page setup window, in which
|
||||
// case, the user does *not* need to be told that it was cancelled.
|
||||
// He/she will simply expect that it was done.
|
||||
return;
|
||||
// because the user hit 'Cancel' in the page setup window, in
|
||||
// which case, the user does *not* need to be told that it was
|
||||
// cancelled.
|
||||
// He/she will simply expect that it was done.
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
job.CommitJob();
|
||||
job.CommitJob();
|
||||
}
|
||||
|
||||
|
||||
@@ -716,7 +710,8 @@ TermWindow::_AddTab(Arguments *args)
|
||||
try {
|
||||
// Note: I don't pass the Arguments class directly to the termview,
|
||||
// only to avoid adding it as a dependency: in other words, to keep
|
||||
// the TermView class as agnostic as possible about the surrounding world.
|
||||
// the TermView class as agnostic as possible about the surrounding
|
||||
// world.
|
||||
CustomTermView *view = new CustomTermView(
|
||||
PrefHandler::Default()->getInt32(PREF_ROWS),
|
||||
PrefHandler::Default()->getInt32(PREF_COLS),
|
||||
@@ -883,12 +878,11 @@ TermWindow::_ResizeView(TermView *view)
|
||||
void
|
||||
TermWindow::_BuildWindowSizeMenu(BMenu *menu)
|
||||
{
|
||||
const int32 windowSizes[5][2] = {
|
||||
{ 80, 24 },
|
||||
const int32 windowSizes[4][2] = {
|
||||
{ 80, 25 },
|
||||
{ 80, 40 },
|
||||
{ 132, 24 },
|
||||
{ 132, 25 }
|
||||
{ 132, 25 },
|
||||
{ 132, 40 }
|
||||
};
|
||||
|
||||
const int32 sizeNum = sizeof(windowSizes) / sizeof(windowSizes[0]);
|
||||
@@ -902,9 +896,10 @@ TermWindow::_BuildWindowSizeMenu(BMenu *menu)
|
||||
message->AddInt32("rows", rows);
|
||||
menu->AddItem(new BMenuItem(label, message));
|
||||
}
|
||||
|
||||
menu->AddItem(new BMenuItem("Fullscreen",
|
||||
new BMessage(FULLSCREEN), B_ENTER));
|
||||
|
||||
menu->AddSeparatorItem();
|
||||
menu->AddItem(new BMenuItem("Fullscreen", new BMessage(FULLSCREEN),
|
||||
B_ENTER));
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user