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