Window size is now saved into preferences. This resolves bug #42

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18429 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
DarkWyrm
2006-08-07 13:57:30 +00:00
parent 1920c5bc7d
commit 464b524b93
+66 -85
View File
@@ -123,6 +123,7 @@ TermWindow::InitWindow(void)
// Initialize TermView. (font, size and color)
fTermView->SetTermFont(&halfFont, &fullFont);
BRect rect = fTermView->SetTermSize(gTermPref->getInt32(PREF_ROWS),
gTermPref->getInt32(PREF_COLS), 1);
@@ -198,9 +199,7 @@ TermWindow::SetupMenu(void)
// Menu bar object.
fMenubar = new BMenuBar(Bounds(), "mbar");
/*
* Make File Menu.
*/
// Make File Menu.
fFilemenu = new BMenu("Terminal");
fFilemenu->AddItem(new BMenuItem("Switch Terminals", new BMessage(MENU_SWITCH_TERM),'G'));
fFilemenu->AddItem(new BMenuItem("Start New Terminal", new BMessage(MENU_NEW_TERM), 'N'));
@@ -213,9 +212,7 @@ TermWindow::SetupMenu(void)
fFilemenu->AddItem(new BMenuItem("Quit", new BMessage(MENU_FILE_QUIT), 'Q'));
fMenubar->AddItem(fFilemenu);
/*
* Make Edit Menu.
*/
// Make Edit Menu.
fEditmenu = new BMenu ("Edit");
fEditmenu->AddItem (new BMenuItem ("Copy", new BMessage (B_COPY),'C'));
fEditmenu->AddItem (new BMenuItem ("Paste", new BMessage (B_PASTE),'V'));
@@ -231,10 +228,7 @@ TermWindow::SetupMenu(void)
*/
fMenubar->AddItem (fEditmenu);
/*
* Make Help Menu.
*/
// Make Help Menu.
fHelpmenu = new BMenu("Settings");
fWindowSizeMenu = new BMenu("Window Size");
fWindowSizeMenu->AddItem(new BMenuItem("80x24", new BMessage(EIGHTYTWENTYFOUR)));
@@ -285,11 +279,10 @@ TermWindow::MessageReceived(BMessage *message)
BFont fullFont;
switch (message->what) {
case MENU_SWITCH_TERM:
case MENU_SWITCH_TERM: {
be_app->PostMessage(MENU_SWITCH_TERM);
break;
}
case MENU_NEW_TERM: {
app_info info;
be_app->GetAppInfo(&info);
@@ -297,36 +290,32 @@ TermWindow::MessageReceived(BMessage *message)
// try launching two different ways to work around possible problems
if (be_roster->Launch(&info.ref)!=B_OK)
be_roster->Launch(TERM_SIGNATURE);
}
break;
case MENU_PREF_OPEN:
if (!fPrefWindow){
}
case MENU_PREF_OPEN: {
if (!fPrefWindow)
fPrefWindow = new PrefDlg(this);
}else{
else
fPrefWindow->Activate();
}
break;
case MSG_PREF_CLOSED:
}
case MSG_PREF_CLOSED: {
fPrefWindow = NULL;
break;
case MENU_FILE_QUIT:
}
case MENU_FILE_QUIT: {
be_app->PostMessage(B_QUIT_REQUESTED);
break;
case MENU_ENCODING:
}
case MENU_ENCODING: {
message->FindInt32 ("op", &coding_id);
gNowCoding = coding_id;
SetCoding(coding_id);
break;
/*
* Extended B_SET_PROPERTY. Dispatch this message,
* Set coding ID.
*/
case B_SET_PROPERTY:
{
}
// Extended B_SET_PROPERTY. Dispatch this message,
// Set coding ID.
case B_SET_PROPERTY: {
int32 i;
BMessage spe;
message->GetCurrentSpecifier(&i, &spe);
@@ -336,18 +325,14 @@ TermWindow::MessageReceived(BMessage *message)
SetCoding (coding_id);
message->SendReply(B_REPLY);
}else{
} else {
BWindow::MessageReceived(message);
}
break;
}
/*
* Extended B_GET_PROPERTY. Dispatch this message,
* reply now coding ID.
*/
case B_GET_PROPERTY:
{
// Extended B_GET_PROPERTY. Dispatch this message, reply now coding ID.
case B_GET_PROPERTY: {
int32 i;
BMessage spe;
message->GetCurrentSpecifier(&i, &spe);
@@ -355,41 +340,41 @@ TermWindow::MessageReceived(BMessage *message)
BMessage reply(B_REPLY);
reply.AddInt32("result", gNowCoding);
message->SendReply(&reply);
}else if (!strcmp("tty", spe.FindString("property", i))){
}
else if (!strcmp("tty", spe.FindString("property", i))) {
BMessage reply(B_REPLY);
reply.AddString("result", &tty_name[8]);
message->SendReply(&reply);
}else{
} else {
BWindow::MessageReceived(message);
}
break;
}
/*
* Message from Preference panel.
*/
// Message from Preference panel.
case MSG_ROWS_CHANGED:
case MSG_COLS_CHANGED:
case MSG_COLS_CHANGED: {
r = fTermView->SetTermSize (gTermPref->getInt32 (PREF_ROWS),
gTermPref->getInt32 (PREF_COLS),
0);
gTermPref->getInt32 (PREF_COLS), 0);
ResizeTo (r.Width()+ B_V_SCROLL_BAR_WIDTH + VIEW_OFFSET * 2,
r.Height()+fMenubar->Bounds().Height() + VIEW_OFFSET *2);
break;
BPath path;
if (PrefHandler::GetDefaultPath(path) == B_OK)
gTermPref->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: {
halfFont.SetFamilyAndStyle (gTermPref->getString(PREF_HALF_FONT_FAMILY),
NULL);
halfFont.SetFamilyAndStyle (gTermPref->getString(PREF_HALF_FONT_FAMILY),NULL);
halfFont.SetSize (gTermPref->getFloat(PREF_HALF_FONT_SIZE));
halfFont.SetSpacing (B_FIXED_SPACING);
fullFont.SetFamilyAndStyle (gTermPref->getString(PREF_FULL_FONT_FAMILY),
NULL);
fullFont.SetFamilyAndStyle (gTermPref->getString(PREF_FULL_FONT_FAMILY),NULL);
fullFont.SetSize (gTermPref->getFloat(PREF_FULL_FONT_SIZE));
fullFont.SetSpacing (B_FIXED_SPACING);
@@ -403,50 +388,48 @@ TermWindow::MessageReceived(BMessage *message)
SetSizeLimits (MIN_COLS * width, MAX_COLS * width,
MIN_COLS * height, MAX_COLS * height);
ResizeTo (r.Width()+ B_V_SCROLL_BAR_WIDTH + VIEW_OFFSET * 2,
r.Height()+fMenubar->Bounds().Height() + VIEW_OFFSET * 2);
fTermView->Invalidate();
break;
case EIGHTYTWENTYFOUR:
}
case EIGHTYTWENTYFOUR: {
gTermPref->setString(PREF_COLS, "80");
gTermPref->setString(PREF_ROWS, "24");
this->PostMessage (MSG_ROWS_CHANGED);
this->PostMessage (MSG_COLS_CHANGED);
break;
case EIGHTYTWENTYFIVE:
}
case EIGHTYTWENTYFIVE: {
gTermPref->setString(PREF_COLS, "80");
gTermPref->setString(PREF_ROWS, "25");
this->PostMessage (MSG_ROWS_CHANGED);
this->PostMessage (MSG_COLS_CHANGED);
break;
case EIGHTYFORTY:
}
case EIGHTYFORTY: {
gTermPref->setString(PREF_COLS, "80");
gTermPref->setString(PREF_ROWS, "40");
this->PostMessage (MSG_ROWS_CHANGED);
this->PostMessage (MSG_COLS_CHANGED);
break;
case ONETHREETWOTWENTYFOUR:
}
case ONETHREETWOTWENTYFOUR: {
gTermPref->setString(PREF_COLS, "132");
gTermPref->setString(PREF_ROWS, "24");
this->PostMessage (MSG_ROWS_CHANGED);
this->PostMessage (MSG_COLS_CHANGED);
break;
case ONETHREETWOTWENTYFIVE:
}
case ONETHREETWOTWENTYFIVE: {
gTermPref->setString(PREF_COLS, "132");
gTermPref->setString(PREF_ROWS, "25");
this->PostMessage (MSG_ROWS_CHANGED);
this->PostMessage (MSG_COLS_CHANGED);
break;
case FULLSCREEN:
}
case FULLSCREEN: {
if (!fSavedFrame.IsValid()) { // go fullscreen
float mbHeight = fMenubar->Bounds().Height() + 1;
fSavedFrame = Frame();
@@ -472,45 +455,46 @@ TermWindow::MessageReceived(BMessage *message)
fSavedFrame = BRect(0,0,-1,-1);
}
break;
case MSG_FONT_CHANGED:
}
case MSG_FONT_CHANGED: {
gTermPref->setString (PREF_HALF_FONT_FAMILY, fNewFontMenu->FindMarked()->Label());
this->PostMessage (MSG_HALF_FONT_CHANGED);
break;
case MSG_COLOR_CHANGED:
}
case MSG_COLOR_CHANGED: {
fBaseView->SetViewColor (gTermPref->getRGB (PREF_TEXT_BACK_COLOR));
fTermView->SetTermColor ();
fBaseView->Invalidate();
fTermView->Invalidate();
break;
case SAVE_AS_DEFAULT:
{
}
case SAVE_AS_DEFAULT: {
BPath path;
if (PrefHandler::GetDefaultPath(path) == B_OK)
gTermPref->SaveAsText(path.Path(), PREFFILE_MIMETYPE);
}
break;
case MENU_PAGE_SETUP:
}
case MENU_PAGE_SETUP: {
DoPageSetup ();
break;
case MENU_PRINT:
}
case MENU_PRINT: {
DoPrint ();
break;
case MSGRUN_WINDOW:
}
case MSGRUN_WINDOW: {
fTermView->UpdateSIGWINCH ();
break;
case B_ABOUT_REQUESTED:
}
case B_ABOUT_REQUESTED: {
be_app->PostMessage(B_ABOUT_REQUESTED);
break;
default:
}
default: {
BWindow::MessageReceived(message);
break;
}
}
}
////////////////////////////////////////////////////////////////////////////
// WindowActivated (bool)
@@ -566,9 +550,6 @@ TermWindow::GetTimeZone ()
}
#include "spawn.h"
void
TermWindow::TermWinActivate()
{