From f0da038e3de65f8d2e9cf5fbd69becad35c267d1 Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Sun, 28 Feb 2010 12:35:49 +0000 Subject: [PATCH] Patch by mt : localize stylededit. Thanks ! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35656 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/stylededit/FindWindow.cpp | 74 ++++--- src/apps/stylededit/FindWindow.h | 2 - src/apps/stylededit/Jamfile | 13 +- src/apps/stylededit/ReplaceWindow.cpp | 97 ++++----- src/apps/stylededit/ReplaceWindow.h | 2 - src/apps/stylededit/StyledEditApp.cpp | 23 ++- src/apps/stylededit/StyledEditApp.h | 2 + src/apps/stylededit/StyledEditWindow.cpp | 238 +++++++++++++++-------- 8 files changed, 271 insertions(+), 180 deletions(-) diff --git a/src/apps/stylededit/FindWindow.cpp b/src/apps/stylededit/FindWindow.cpp index 18705db007..4eff264916 100644 --- a/src/apps/stylededit/FindWindow.cpp +++ b/src/apps/stylededit/FindWindow.cpp @@ -12,57 +12,55 @@ #include "FindWindow.h" #include +#include #include +#include +#include +#include +#include #include #include -FindWindow::FindWindow(BRect frame, BHandler *_handler, BString *searchString, +#undef TR_CONTEXT +#define TR_CONTEXT "FindandReplaceWindow" + +FindWindow::FindWindow(BRect frame, BHandler* _handler, BString* searchString, bool caseState, bool wrapState, bool backState) : BWindow(frame, "FindWindow", B_MODAL_WINDOW, - B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_CURRENT_WORKSPACE) + B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS, + B_CURRENT_WORKSPACE) { AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED)); - - fFindView = new BView(Bounds(), "FindView", B_FOLLOW_ALL, B_WILL_DRAW); - fFindView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - AddChild(fFindView); - font_height height; - fFindView->GetFontHeight(&height); - float lineHeight = height.ascent + height.descent + height.leading; + fSearchString = new BTextControl("", TR("Find:"), NULL, NULL); + fCaseSensBox = new BCheckBox("", TR("Case-sensitive"), NULL); + fWrapBox = new BCheckBox("", TR("Wrap-around search"), NULL); + fBackSearchBox = new BCheckBox("", TR("Search backwards"), NULL); + fCancelButton = new BButton("", TR("Cancel"), new BMessage(B_QUIT_REQUESTED)); + fSearchButton = new BButton("", TR("Find"), new BMessage(MSG_SEARCH)); - float findWidth = fFindView->StringWidth("Find:") + 6; - - float searchBottom = 12 + 2 + lineHeight + 2 + 1; - float buttonTop = frame.Height() - 19 - lineHeight; - float wrapBoxTop = (buttonTop + searchBottom - lineHeight) / 2; - float wrapBoxBottom = (buttonTop + searchBottom + lineHeight) / 2; - float caseBoxTop = (searchBottom + wrapBoxTop - lineHeight) / 2; - float caseBoxBottom = (searchBottom + wrapBoxTop + lineHeight) / 2; - float backBoxTop = (buttonTop + wrapBoxBottom - lineHeight) / 2; - float backBoxBottom = (buttonTop + wrapBoxBottom + lineHeight) / 2; - - fFindView->AddChild(fSearchString = new BTextControl(BRect(14, 12, - frame.Width() - 10, searchBottom), "", "Find:", NULL, NULL)); - fSearchString->SetDivider(findWidth); - - fFindView->AddChild(fCaseSensBox = new BCheckBox(BRect(16 + findWidth, caseBoxTop, - frame.Width() - 12, caseBoxBottom), "", "Case-sensitive", NULL)); - fFindView->AddChild(fWrapBox = new BCheckBox(BRect(16 + findWidth, wrapBoxTop, - frame.Width() - 12, wrapBoxBottom), "", "Wrap-around search", NULL)); - fFindView->AddChild(fBackSearchBox = new BCheckBox(BRect(16 + findWidth, - backBoxTop, frame.Width() - 12, backBoxBottom), "", "Search backwards", NULL)); - - fFindView->AddChild(fCancelButton = new BButton(BRect(142, buttonTop, 212, - frame.Height() - 7), "", "Cancel", new BMessage(B_QUIT_REQUESTED))); - fFindView->AddChild(fSearchButton = new BButton(BRect(221, buttonTop, 291, - frame.Height() - 7), "", "Find", new BMessage(MSG_SEARCH))); + SetLayout(new BGroupLayout(B_HORIZONTAL)); + AddChild(BGroupLayoutBuilder(B_VERTICAL, 4) + .Add(BGridLayoutBuilder(6, 2) + .Add(fSearchString->CreateLabelLayoutItem(), 0, 0) + .Add(fSearchString->CreateTextViewLayoutItem(), 1, 0) + .Add(fCaseSensBox, 1, 1) + .Add(fWrapBox, 1, 2) + .Add(fBackSearchBox, 1, 3) + ) + .AddGroup(B_HORIZONTAL, 10) + .AddGlue() + .Add(fCancelButton) + .Add(fSearchButton) + .End() + .SetInsets(10, 10, 10, 10) + ); fSearchButton->MakeDefault(true); fHandler = _handler; - const char *text = searchString->String(); + const char* text = searchString->String(); fSearchString->SetText(text); fSearchString->MakeFocus(true); @@ -74,7 +72,7 @@ FindWindow::FindWindow(BRect frame, BHandler *_handler, BString *searchString, void -FindWindow::MessageReceived(BMessage *msg) +FindWindow::MessageReceived(BMessage* msg) { switch (msg->what) { case B_QUIT_REQUESTED: @@ -92,7 +90,7 @@ FindWindow::MessageReceived(BMessage *msg) void -FindWindow::DispatchMessage(BMessage *message, BHandler *handler) +FindWindow::DispatchMessage(BMessage* message, BHandler* handler) { if (message->what == B_KEY_DOWN) { int8 key; diff --git a/src/apps/stylededit/FindWindow.h b/src/apps/stylededit/FindWindow.h index 008c55ac4d..f63dc879af 100644 --- a/src/apps/stylededit/FindWindow.h +++ b/src/apps/stylededit/FindWindow.h @@ -16,7 +16,6 @@ class BButton; class BCheckBox; class BTextControl; -class BView; class FindWindow : public BWindow { @@ -30,7 +29,6 @@ class FindWindow : public BWindow { private: void _SendMessage(); - BView *fFindView; BTextControl *fSearchString; BCheckBox *fCaseSensBox; BCheckBox *fWrapBox; diff --git a/src/apps/stylededit/Jamfile b/src/apps/stylededit/Jamfile index 05d0c4da5d..fa95b12762 100644 --- a/src/apps/stylededit/Jamfile +++ b/src/apps/stylededit/Jamfile @@ -16,6 +16,17 @@ Application StyledEdit : StyledEditApp.cpp StyledEditView.cpp StyledEditWindow.cpp - : be translation tracker libtextencoding.so $(TARGET_LIBSUPC++) + : be translation tracker libtextencoding.so liblocale.so $(TARGET_LIBSUPC++) : $(styled_edit_rsrc) ; + +DoCatalogs StyledEdit : + x-vnd.Haiku-StyledEdit + : + FindWindow.cpp + ReplaceWindow.cpp + StyledEditApp.cpp + StyledEditWindow.cpp + : en.catalog + : +; diff --git a/src/apps/stylededit/ReplaceWindow.cpp b/src/apps/stylededit/ReplaceWindow.cpp index 2f66e6a837..14915a4503 100644 --- a/src/apps/stylededit/ReplaceWindow.cpp +++ b/src/apps/stylededit/ReplaceWindow.cpp @@ -12,69 +12,72 @@ #include "ReplaceWindow.h" #include +#include #include +#include +#include #include +#include +#include #include #include -#include #include #include -#include -ReplaceWindow::ReplaceWindow(BRect frame, BHandler *_handler, BString *searchString, - BString *replaceString, bool caseState, bool wrapState, bool backState) +#undef TR_CONTEXT +#define TR_CONTEXT "FindandReplaceWindow" + +ReplaceWindow::ReplaceWindow(BRect frame, BHandler* _handler, + BString* searchString, BString *replaceString, + bool caseState, bool wrapState, bool backState) : BWindow(frame, "ReplaceWindow", B_MODAL_WINDOW, - B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_CURRENT_WORKSPACE) + B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS, + B_CURRENT_WORKSPACE) { AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED)); - fReplaceView = new BView(Bounds(), "ReplaceView", B_FOLLOW_ALL, B_WILL_DRAW); - fReplaceView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR)); - AddChild(fReplaceView); - - char* findLabel = "Find:"; - float findWidth = fReplaceView->StringWidth(findLabel); - fReplaceView->AddChild(fSearchString = new BTextControl(BRect(5, 10, 290, 50), "", - findLabel, NULL, NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE)); - - char* replaceWithLabel = "Replace with:"; - float replaceWithWidth = fReplaceView->StringWidth(replaceWithLabel); - fReplaceView->AddChild(fReplaceString = new BTextControl(BRect(5, 35, 290, 50), "", - replaceWithLabel, NULL, NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); - float maxWidth = (replaceWithWidth > findWidth ? replaceWithWidth : findWidth) + TEXT_INSET; - fSearchString->SetDivider(maxWidth); - fReplaceString->SetDivider(maxWidth); - - fReplaceView->AddChild(fCaseSensBox = new BCheckBox(BRect(maxWidth + 8, 60, 290, 52), - "", "Case-sensitive", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE)); - fReplaceView->AddChild(fWrapBox = new BCheckBox(BRect(maxWidth + 8, 80, 290, 70), - "", "Wrap-around search", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); - fReplaceView->AddChild(fBackSearchBox = new BCheckBox(BRect(maxWidth + 8, 100, 290, 95), - "", "Search backwards", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); - fReplaceView->AddChild(fAllWindowsBox = new BCheckBox(BRect(maxWidth + 8, 120, 290, 95), - "", "Replace in all windows", new BMessage(CHANGE_WINDOW), - B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE)); + fSearchString = new BTextControl("", TR("Find:"), NULL, NULL); + fReplaceString = new BTextControl("", TR("Replace with:"), NULL, NULL); + fCaseSensBox = new BCheckBox("", TR("Case-sensitive"), NULL); + fWrapBox = new BCheckBox("", TR("Wrap-around search"), NULL); + fBackSearchBox = new BCheckBox("", TR("Search backwards"), NULL); + fAllWindowsBox = new BCheckBox("", TR("Replace in all windows"), + new BMessage(CHANGE_WINDOW)); fUIchange = false; - fReplaceView->AddChild(fReplaceAllButton = new BButton(BRect(10, 150, 98, 166), - "", "Replace all", new BMessage(MSG_REPLACE_ALL), B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); - fReplaceView->AddChild(fCancelButton = new BButton(BRect(141, 150, 211, 166), - "", "Cancel", new BMessage(B_QUIT_REQUESTED), B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); - fReplaceView->AddChild(fReplaceButton = new BButton(BRect(221, 150, 291, 166), - "", "Replace", new BMessage(MSG_REPLACE), B_FOLLOW_LEFT | B_FOLLOW_TOP, - B_WILL_DRAW | B_NAVIGABLE)); + fReplaceAllButton = new BButton("", TR("Replace all"), + new BMessage(MSG_REPLACE_ALL)); + fCancelButton = new BButton("", TR("Cancel"), new BMessage(B_QUIT_REQUESTED)); + fReplaceButton = new BButton("", TR("Replace"), new BMessage(MSG_REPLACE)); + + SetLayout(new BGroupLayout(B_HORIZONTAL)); + AddChild(BGroupLayoutBuilder(B_VERTICAL, 4) + .Add(BGridLayoutBuilder(6, 2) + .Add(fSearchString->CreateLabelLayoutItem(), 0, 0) + .Add(fSearchString->CreateTextViewLayoutItem(), 1, 0) + .Add(fReplaceString->CreateLabelLayoutItem(), 0, 1) + .Add(fReplaceString->CreateTextViewLayoutItem(), 1, 1) + .Add(fCaseSensBox, 1, 2) + .Add(fWrapBox, 1, 3) + .Add(fBackSearchBox, 1, 4) + .Add(fAllWindowsBox, 1, 5) + ) + .AddGroup(B_HORIZONTAL, 10) + .Add(fReplaceAllButton) + .AddGlue() + .Add(fCancelButton) + .Add(fReplaceButton) + .End() + .SetInsets(10, 10, 10, 10) + ); + fReplaceButton->MakeDefault(true); fHandler = _handler; - const char *searchtext = searchString->String(); - const char *replacetext = replaceString->String(); + const char* searchtext = searchString->String(); + const char* replacetext = replaceString->String(); fSearchString->SetText(searchtext); fReplaceString->SetText(replacetext); @@ -87,7 +90,7 @@ ReplaceWindow::ReplaceWindow(BRect frame, BHandler *_handler, BString *searchStr void -ReplaceWindow::MessageReceived(BMessage *msg) +ReplaceWindow::MessageReceived(BMessage* msg) { switch (msg->what) { case MSG_REPLACE: @@ -126,7 +129,7 @@ ReplaceWindow::_ChangeUI() void -ReplaceWindow::DispatchMessage(BMessage *message, BHandler *handler) +ReplaceWindow::DispatchMessage(BMessage* message, BHandler* handler) { if (message->what == B_KEY_DOWN) { int8 key; diff --git a/src/apps/stylededit/ReplaceWindow.h b/src/apps/stylededit/ReplaceWindow.h index 941363bd32..bb51f057c6 100644 --- a/src/apps/stylededit/ReplaceWindow.h +++ b/src/apps/stylededit/ReplaceWindow.h @@ -13,7 +13,6 @@ #include -class BView; class BString; class BButton; class BHandler; @@ -35,7 +34,6 @@ class ReplaceWindow : public BWindow { void _SendMessage(uint32 what); void _ChangeUI(); - BView *fReplaceView; BTextControl *fSearchString; BTextControl *fReplaceString; BCheckBox *fCaseSensBox; diff --git a/src/apps/stylededit/StyledEditApp.cpp b/src/apps/stylededit/StyledEditApp.cpp index 756e46ae76..60a6348ea8 100644 --- a/src/apps/stylededit/StyledEditApp.cpp +++ b/src/apps/stylededit/StyledEditApp.cpp @@ -15,6 +15,8 @@ #include #include +#include +#include #include #include #include @@ -49,7 +51,7 @@ namespace if (top + gWindowRect.Height() > screenBorder.bottom) top = 26; - gWindowRect.OffsetTo(BPoint(left,top)); + gWindowRect.OffsetTo(BPoint(left, top)); } @@ -71,24 +73,28 @@ namespace top = top - ((int)left % 15) + 26; } - gWindowRect.OffsetTo(BPoint(left,top)); + gWindowRect.OffsetTo(BPoint(left, top)); } } // #pragma mark - +#undef TR_CONTEXT +#define TR_CONTEXT "Open_and_SaveAsPanel" StyledEditApp::StyledEditApp() : BApplication(APP_SIGNATURE), fOpenPanel(NULL) { + be_locale->GetAppCatalog(&fCatalog); + fOpenPanel = new BFilePanel(); - BMenuBar *menuBar = + BMenuBar* menuBar = dynamic_cast(fOpenPanel->Window()->FindView("MenuBar")); fOpenAsEncoding = 0; - fOpenPanelEncodingMenu= new BMenu("Encoding"); + fOpenPanelEncodingMenu= new BMenu(TR("Encoding")); menuBar->AddItem(fOpenPanelEncodingMenu); fOpenPanelEncodingMenu->SetRadioMode(true); @@ -97,7 +103,7 @@ StyledEditApp::StyledEditApp() while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) { BString name; if (charset.GetFontID() == B_UNICODE_UTF8) - name = "Default"; + name = TR("Default"); else name = charset.GetPrintName(); @@ -107,7 +113,8 @@ StyledEditApp::StyledEditApp() name.Append(mime); name.Append(")"); } - BMenuItem* item = new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); + BMenuItem* item = + new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING)); item->SetTarget(this); fOpenPanelEncodingMenu->AddItem(item); if (charset.GetFontID() == fOpenAsEncoding) @@ -129,7 +136,7 @@ StyledEditApp::~StyledEditApp() void -StyledEditApp::MessageReceived(BMessage *message) +StyledEditApp::MessageReceived(BMessage* message) { switch (message->what) { case MENU_NEW: @@ -231,7 +238,7 @@ StyledEditApp::CloseDocument() void -StyledEditApp::RefsReceived(BMessage *message) +StyledEditApp::RefsReceived(BMessage* message) { int32 index = 0; entry_ref ref; diff --git a/src/apps/stylededit/StyledEditApp.h b/src/apps/stylededit/StyledEditApp.h index 7008237302..eb941a285c 100644 --- a/src/apps/stylededit/StyledEditApp.h +++ b/src/apps/stylededit/StyledEditApp.h @@ -12,6 +12,7 @@ #include +#include struct entry_ref; @@ -48,6 +49,7 @@ class StyledEditApp : public BApplication { int32 fWindowCount; int32 fNextUntitledWindow; bool fBadArguments; + BCatalog fCatalog; }; extern StyledEditApp* styled_edit_app; diff --git a/src/apps/stylededit/StyledEditWindow.cpp b/src/apps/stylededit/StyledEditWindow.cpp index 5bb4397b0c..626e7383f5 100644 --- a/src/apps/stylededit/StyledEditWindow.cpp +++ b/src/apps/stylededit/StyledEditWindow.cpp @@ -19,12 +19,14 @@ #include #include +#include #include #include #include #include #include #include +#include #include #include #include @@ -42,12 +44,14 @@ using namespace BPrivate; const float kLineViewWidth = 30.0; +#undef TR_CONTEXT +#define TR_CONTEXT "StyledEditWindow" StyledEditWindow::StyledEditWindow(BRect frame, int32 id, uint32 encoding) : BWindow(frame, "untitled", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS) { InitWindow(encoding); - BString unTitled("Untitled "); + BString unTitled(TR("Untitled ")); unTitled << id; SetTitle(unTitled.String()); fSaveItem->SetEnabled(true); @@ -56,7 +60,7 @@ StyledEditWindow::StyledEditWindow(BRect frame, int32 id, uint32 encoding) } -StyledEditWindow::StyledEditWindow(BRect frame, entry_ref *ref, uint32 encoding) +StyledEditWindow::StyledEditWindow(BRect frame, entry_ref* ref, uint32 encoding) : BWindow(frame, "untitled", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS) { InitWindow(encoding); @@ -73,6 +77,9 @@ StyledEditWindow::~StyledEditWindow() } +#undef TR_CONTEXT +#define TR_CONTEXT "Menus" + void StyledEditWindow::InitWindow(uint32 encoding) { @@ -124,79 +131,97 @@ StyledEditWindow::InitWindow(uint32 encoding) fTextView->MakeFocus(true); // Add "File"-menu: - BMenu* menu = new BMenu("File"); + BMenu* menu = new BMenu(TR("File")); fMenuBar->AddItem(menu); BMenuItem* menuItem; - menu->AddItem(menuItem = new BMenuItem("New", new BMessage(MENU_NEW), 'N')); + menu->AddItem(menuItem = new BMenuItem(TR("New"), + new BMessage(MENU_NEW), 'N')); menuItem->SetTarget(be_app); - menu->AddItem(menuItem = new BMenuItem(fRecentMenu = new BMenu("Open" B_UTF8_ELLIPSIS), - new BMessage(MENU_OPEN))); + menu->AddItem(menuItem = new BMenuItem(fRecentMenu = + new BMenu(TR("Open" B_UTF8_ELLIPSIS)), new BMessage(MENU_OPEN))); menuItem->SetShortcut('O', 0); menuItem->SetTarget(be_app); menu->AddSeparatorItem(); - menu->AddItem(fSaveItem = new BMenuItem("Save", new BMessage(MENU_SAVE), 'S')); + menu->AddItem(fSaveItem = new BMenuItem(TR("Save"), + new BMessage(MENU_SAVE), 'S')); fSaveItem->SetEnabled(false); - menu->AddItem(menuItem = new BMenuItem("Save as" B_UTF8_ELLIPSIS, new BMessage(MENU_SAVEAS))); - menuItem->SetShortcut('S',B_SHIFT_KEY); + menu->AddItem(menuItem = new BMenuItem(TR("Save as" B_UTF8_ELLIPSIS), + new BMessage(MENU_SAVEAS))); + menuItem->SetShortcut('S', B_SHIFT_KEY); menuItem->SetEnabled(true); - menu->AddItem(fRevertItem = new BMenuItem("Revert to saved" B_UTF8_ELLIPSIS, + menu->AddItem(fRevertItem = + new BMenuItem(TR("Revert to saved" B_UTF8_ELLIPSIS), new BMessage(MENU_REVERT))); fRevertItem->SetEnabled(false); - menu->AddItem(menuItem = new BMenuItem("Close", new BMessage(MENU_CLOSE), 'W')); + menu->AddItem(menuItem = new BMenuItem(TR("Close"), + new BMessage(MENU_CLOSE), 'W')); menu->AddSeparatorItem(); - menu->AddItem(menuItem = new BMenuItem("Page setup" B_UTF8_ELLIPSIS, new BMessage(MENU_PAGESETUP))); - menu->AddItem(menuItem = new BMenuItem("Print" B_UTF8_ELLIPSIS, new BMessage(MENU_PRINT), 'P')); + menu->AddItem(menuItem = new BMenuItem(TR("Page setup" B_UTF8_ELLIPSIS), + new BMessage(MENU_PAGESETUP))); + menu->AddItem(menuItem = new BMenuItem(TR("Print" B_UTF8_ELLIPSIS), + new BMessage(MENU_PRINT), 'P')); menu->AddSeparatorItem(); - menu->AddItem(menuItem = new BMenuItem("Quit", new BMessage(MENU_QUIT), 'Q')); + menu->AddItem(menuItem = new BMenuItem(TR("Quit"), + new BMessage(MENU_QUIT), 'Q')); // Add the "Edit"-menu: - menu = new BMenu("Edit"); + menu = new BMenu(TR("Edit")); fMenuBar->AddItem(menu); - menu->AddItem(fUndoItem = new BMenuItem("Can't undo", new BMessage(B_UNDO), 'Z')); + menu->AddItem(fUndoItem = new BMenuItem(TR("Can't undo"), + new BMessage(B_UNDO), 'Z')); fUndoItem->SetEnabled(false); menu->AddSeparatorItem(); - menu->AddItem(fCutItem = new BMenuItem("Cut", new BMessage(B_CUT), 'X')); + menu->AddItem(fCutItem = new BMenuItem(TR("Cut"), new BMessage(B_CUT), 'X')); fCutItem->SetEnabled(false); fCutItem->SetTarget(fTextView); - menu->AddItem(fCopyItem = new BMenuItem("Copy", new BMessage(B_COPY), 'C')); + menu->AddItem(fCopyItem = new BMenuItem(TR("Copy"), + new BMessage(B_COPY), 'C')); fCopyItem->SetEnabled(false); fCopyItem->SetTarget(fTextView); - menu->AddItem(menuItem = new BMenuItem("Paste", new BMessage(B_PASTE), 'V')); + menu->AddItem(menuItem = new BMenuItem(TR("Paste"), + new BMessage(B_PASTE), 'V')); menuItem->SetTarget(fTextView); - menu->AddItem(fClearItem = new BMenuItem("Clear", new BMessage(MENU_CLEAR))); + menu->AddItem(fClearItem = new BMenuItem(TR("Clear"), + new BMessage(MENU_CLEAR))); fClearItem->SetEnabled(false); fClearItem->SetTarget(fTextView); menu->AddSeparatorItem(); - menu->AddItem(menuItem = new BMenuItem("Select all", new BMessage(B_SELECT_ALL), 'A')); + menu->AddItem(menuItem = new BMenuItem(TR("Select all"), + new BMessage(B_SELECT_ALL), 'A')); menuItem->SetTarget(fTextView); menu->AddSeparatorItem(); - menu->AddItem(menuItem = new BMenuItem("Find" B_UTF8_ELLIPSIS, new BMessage(MENU_FIND),'F')); - menu->AddItem(fFindAgainItem= new BMenuItem("Find again",new BMessage(MENU_FIND_AGAIN),'G')); + menu->AddItem(menuItem = new BMenuItem(TR("Find" B_UTF8_ELLIPSIS), + new BMessage(MENU_FIND), 'F')); + menu->AddItem(fFindAgainItem= new BMenuItem(TR("Find again"), + new BMessage(MENU_FIND_AGAIN), 'G')); fFindAgainItem->SetEnabled(false); - menu->AddItem(menuItem = new BMenuItem("Find selection", new BMessage(MENU_FIND_SELECTION),'H')); - menu->AddItem(menuItem = new BMenuItem("Replace" B_UTF8_ELLIPSIS, new BMessage(MENU_REPLACE),'R')); - menu->AddItem(fReplaceSameItem = new BMenuItem("Replace same", new BMessage(MENU_REPLACE_SAME),'T')); + menu->AddItem(menuItem = new BMenuItem(TR("Find selection"), + new BMessage(MENU_FIND_SELECTION), 'H')); + menu->AddItem(menuItem = new BMenuItem(TR("Replace" B_UTF8_ELLIPSIS), + new BMessage(MENU_REPLACE), 'R')); + menu->AddItem(fReplaceSameItem = new BMenuItem(TR("Replace same"), + new BMessage(MENU_REPLACE_SAME), 'T')); fReplaceSameItem->SetEnabled(false); // Add the "Font"-menu: - fFontMenu = new BMenu("Font"); + fFontMenu = new BMenu(TR("Font")); fMenuBar->AddItem(fFontMenu); //"Size"-subMenu - fFontSizeMenu = new BMenu("Size"); + fFontSizeMenu = new BMenu(TR("Size")); fFontSizeMenu->SetRadioMode(true); fFontMenu->AddItem(fFontSizeMenu); @@ -214,18 +239,25 @@ StyledEditWindow::InitWindow(uint32 encoding) } // "Color"-subMenu - fFontColorMenu = new BMenu("Color"); + fFontColorMenu = new BMenu(TR("Color")); fFontColorMenu->SetRadioMode(true); fFontMenu->AddItem(fFontColorMenu); - fFontColorMenu->AddItem(fBlackItem = new BMenuItem("Black", new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fBlackItem = new BMenuItem(TR("Black"), + new BMessage(FONT_COLOR))); fBlackItem->SetMarked(true); - fFontColorMenu->AddItem(fRedItem = new ColorMenuItem("Red", RED, new BMessage(FONT_COLOR))); - fFontColorMenu->AddItem(fGreenItem = new ColorMenuItem("Green", GREEN, new BMessage(FONT_COLOR))); - fFontColorMenu->AddItem(fBlueItem = new ColorMenuItem("Blue", BLUE, new BMessage(FONT_COLOR))); - fFontColorMenu->AddItem(fCyanItem = new ColorMenuItem("Cyan", CYAN, new BMessage(FONT_COLOR))); - fFontColorMenu->AddItem(fMagentaItem = new ColorMenuItem("Magenta", MAGENTA, new BMessage(FONT_COLOR))); - fFontColorMenu->AddItem(fYellowItem = new ColorMenuItem("Yellow", YELLOW, new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fRedItem = new ColorMenuItem(TR("Red"), RED, + new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fGreenItem = new ColorMenuItem(TR("Green"), GREEN, + new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fBlueItem = new ColorMenuItem(TR("Blue"), BLUE, + new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fCyanItem = new ColorMenuItem(TR("Cyan"), CYAN, + new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fMagentaItem = new ColorMenuItem(TR("Magenta"), MAGENTA, + new BMessage(FONT_COLOR))); + fFontColorMenu->AddItem(fYellowItem = new ColorMenuItem(TR("Yellow"), YELLOW, + new BMessage(FONT_COLOR))); fFontMenu->AddSeparatorItem(); // Available fonts @@ -256,20 +288,24 @@ StyledEditWindow::InitWindow(uint32 encoding) } // Add the "Document"-menu: - menu = new BMenu("Document"); + menu = new BMenu(TR("Document")); fMenuBar->AddItem(menu); // "Align"-subMenu: - subMenu = new BMenu("Align"); + subMenu = new BMenu(TR("Align")); subMenu->SetRadioMode(true); - subMenu->AddItem(fAlignLeft = new BMenuItem("Left", new BMessage(ALIGN_LEFT))); + subMenu->AddItem(fAlignLeft = new BMenuItem(TR("Left"), + new BMessage(ALIGN_LEFT))); fAlignLeft->SetMarked(true); - subMenu->AddItem(fAlignCenter = new BMenuItem("Center", new BMessage(ALIGN_CENTER))); - subMenu->AddItem(fAlignRight = new BMenuItem("Right", new BMessage(ALIGN_RIGHT))); + subMenu->AddItem(fAlignCenter = new BMenuItem(TR("Center"), + new BMessage(ALIGN_CENTER))); + subMenu->AddItem(fAlignRight = new BMenuItem(TR("Right"), + new BMessage(ALIGN_RIGHT))); menu->AddItem(subMenu); - menu->AddItem(fWrapItem = new BMenuItem("Wrap lines", new BMessage(WRAP_LINES))); + menu->AddItem(fWrapItem = new BMenuItem(TR("Wrap lines"), + new BMessage(WRAP_LINES))); fWrapItem->SetMarked(true); fSavePanel = NULL; @@ -279,7 +315,7 @@ StyledEditWindow::InitWindow(uint32 encoding) void -StyledEditWindow::MessageReceived(BMessage *message) +StyledEditWindow::MessageReceived(BMessage* message) { if (message->WasDropped()) { entry_ref ref; @@ -502,7 +538,7 @@ StyledEditWindow::MessageReceived(BMessage *message) { BRect textRect(fTextView->Bounds()); textRect.OffsetTo(B_ORIGIN); - textRect.InsetBy(TEXT_INSET,TEXT_INSET); + textRect.InsetBy(TEXT_INSET, TEXT_INSET); if (fTextView->DoesWordWrap()) { fTextView->SetWordWrap(false); fWrapItem->SetMarked(false); @@ -534,15 +570,15 @@ StyledEditWindow::MessageReceived(BMessage *message) fClean = true; fUndoCleans = false; } else if (fClean) { - // if we were clean - // then a redo will make us clean again - fRedoCleans = true; - fClean = false; + // if we were clean + // then a redo will make us clean again + fRedoCleans = true; + fClean = false; } // set mode fCanUndo = false; fCanRedo = true; - fUndoItem->SetLabel("Redo typing"); + fUndoItem->SetLabel(TR("Redo typing")); fUndoItem->SetEnabled(true); fUndoFlag = false; } else { @@ -562,7 +598,7 @@ StyledEditWindow::MessageReceived(BMessage *message) // set mode fCanUndo = true; fCanRedo = false; - fUndoItem->SetLabel("Undo typing"); + fUndoItem->SetLabel(TR("Undo typing")); fUndoItem->SetEnabled(true); fRedoFlag = false; } @@ -579,7 +615,8 @@ StyledEditWindow::MessageReceived(BMessage *message) void* ptr; if (message->FindPointer("source", &ptr) == B_OK && fSavePanelEncodingMenu != NULL) { - fTextView->SetEncoding((uint32)fSavePanelEncodingMenu->IndexOf((BMenuItem*)ptr)); + fTextView->SetEncoding( + (uint32)fSavePanelEncodingMenu->IndexOf((BMenuItem*)ptr)); } break; @@ -736,15 +773,34 @@ StyledEditWindow::Quit() } +// This is temporary solution for building BString with printf like format. +// will be removed in the future. +static void +bs_printf(BString* string, const char* format, ...) +{ + va_list ap; + va_start(ap, format); + char* buf; + vasprintf(&buf, format, ap); + string->SetTo(buf); + free(buf); + va_end(ap); +} + + +#undef TR_CONTEXT +#define TR_CONTEXT "QuitAlert" + bool StyledEditWindow::QuitRequested() { if (fClean) return true; - BString alertText("Save changes to the document \""); - alertText<< Title() <<"\"? "; - int32 index = _ShowAlert(alertText, "Cancel", "Don't save", "Save", + BString alertText; + bs_printf(&alertText, TR("Save changes to the document \"%s\"? "), Title()); + + int32 index = _ShowAlert(alertText, TR("Cancel"), TR("Don't save"), TR("Save"), B_WARNING_ALERT); if (index == 0) @@ -762,8 +818,11 @@ StyledEditWindow::QuitRequested() } +#undef TR_CONTEXT +#define TR_CONTEXT "SaveAlert" + status_t -StyledEditWindow::Save(BMessage *message) +StyledEditWindow::Save(BMessage* message) { if (!message) message = fSaveMessage; @@ -788,10 +847,10 @@ StyledEditWindow::Save(BMessage *message) } if (status != B_OK) { - BString alertText("Error saving \""); - alertText << name << "\":\n" << strerror(status); + BString alertText; + bs_printf(&alertText, TR("Error saving \"%s\":\n%s"), name, strerror(status)); - _ShowAlert(alertText, "OK", "", "", B_STOP_ALERT); + _ShowAlert(alertText, TR("OK"), "", "", B_STOP_ALERT); return status; } @@ -816,8 +875,11 @@ StyledEditWindow::Save(BMessage *message) } +#undef TR_CONTEXT +#define TR_CONTEXT "Open_and_SaveAsPanel" + status_t -StyledEditWindow::SaveAs(BMessage *message) +StyledEditWindow::SaveAs(BMessage* message) { if (fSavePanel == NULL) { entry_ref* directory = NULL; @@ -834,7 +896,7 @@ StyledEditWindow::SaveAs(BMessage *message) BMenuBar* menuBar = dynamic_cast( fSavePanel->Window()->FindView("MenuBar")); - fSavePanelEncodingMenu= new BMenu("Encoding"); + fSavePanelEncodingMenu= new BMenu(TR("Encoding")); menuBar->AddItem(fSavePanelEncodingMenu); fSavePanelEncodingMenu->SetRadioMode(true); @@ -848,7 +910,8 @@ StyledEditWindow::SaveAs(BMessage *message) name.Append(mime); name.Append(")"); } - BMenuItem * item = new BMenuItem(name.String(), new BMessage(SAVE_AS_ENCODING)); + BMenuItem * item = new BMenuItem(name.String(), + new BMessage(SAVE_AS_ENCODING)); item->SetTarget(this); fSavePanelEncodingMenu->AddItem(item); if (charset.GetFontID() == fTextView->GetEncoding()) @@ -865,6 +928,9 @@ StyledEditWindow::SaveAs(BMessage *message) } +#undef TR_CONTEXT +#define TR_CONTEXT "LoadAlert" + status_t StyledEditWindow::_LoadFile(entry_ref* ref) { @@ -892,16 +958,15 @@ StyledEditWindow::_LoadFile(entry_ref* ref) BEntry entry(ref, true); char name[B_FILE_NAME_LENGTH]; if (entry.GetName(name) != B_OK) - strcpy(name, "???"); + strcpy(name, TR("???")); - BString text("Error loading \""); - text << name << "\":\n\t"; + BString text; if (status == B_BAD_TYPE) - text << "Unsupported format"; + bs_printf(&text, TR("Error loading \"%s\":\n\tUnsupported format"), name); else - text << strerror(status); + bs_printf(&text, TR("Error loading \"%s\":\n\t%s"), name, strerror(status)); - _ShowAlert(text, "OK", "", "", B_STOP_ALERT); + _ShowAlert(text, TR("OK"), "", "", B_STOP_ALERT); return status; } @@ -953,11 +1018,14 @@ StyledEditWindow::OpenFile(entry_ref* ref) } +#undef TR_CONTEXT +#define TR_CONTEXT "RevertToSavedAlert" + void StyledEditWindow::RevertToSaved() { entry_ref ref; - const char *name; + const char* name; fSaveMessage->FindRef("directory", &ref); fSaveMessage->FindString("name", &name); @@ -972,23 +1040,26 @@ StyledEditWindow::RevertToSaved() status = entry.GetRef(&ref); if (status != B_OK || !entry.Exists()) { - BString alertText("Cannot revert, file not found: \""); - alertText << name << "\"."; - _ShowAlert(alertText, "OK", "", "", B_STOP_ALERT); + BString alertText; + bs_printf(&alertText, TR("Cannot revert, file not found: \"%s\"."), name); + _ShowAlert(alertText, TR("OK"), "", "", B_STOP_ALERT); return; } - BString alertText("Revert to the last version of \""); - alertText << Title() << "\"? "; - if (_ShowAlert(alertText, "Cancel", "OK", "", B_WARNING_ALERT) != 1) + BString alertText; + bs_printf(&alertText, TR("Revert to the last version of \"%s\"? "), Title()); + if (_ShowAlert(alertText, TR("Cancel"), TR("OK"), "", B_WARNING_ALERT) != 1) return; fTextView->Reset(); if (_LoadFile(&ref) != B_OK) return; +#undef TR_CONTEXT +#define TR_CONTEXT "Menus" + // clear undo modes - fUndoItem->SetLabel("Can't undo"); + fUndoItem->SetLabel(TR("Can't undo")); fUndoItem->SetEnabled(false); fUndoFlag = false; fCanUndo = false; @@ -1089,7 +1160,8 @@ StyledEditWindow::Print(const char* documentName) top = fTextView->TextHeight(0, firstLineOnPage - 1); float bottom = fTextView->TextHeight(0, printLine - 1); - BRect textRect(0.0, top + TEXT_INSET, printableRect.Width(), bottom + TEXT_INSET); + BRect textRect(0.0, top + TEXT_INSET, + printableRect.Width(), bottom + TEXT_INSET); printJob.DrawView(fTextView, textRect, B_ORIGIN); printJob.SpoolPage(); } @@ -1213,7 +1285,7 @@ StyledEditWindow::ReplaceAll(BString findIt, BString replaceWith, bool caseSensi if (viewText.Length() < textFinish) textFinish = viewText.Length(); - fTextView->Select(textStart,textFinish); + fTextView->Select(textStart, textFinish); fTextView->ScrollToSelection(); _UpdateCleanUndoRedoSaveRevert(); @@ -1226,14 +1298,14 @@ StyledEditWindow::SearchAllWindows(BString find, BString replace, bool caseSensi int32 numWindows; numWindows = be_app->CountWindows(); - BMessage *message; + BMessage* message; message= new BMessage(MSG_REPLACE_ALL); message->AddString("FindText", find); message->AddString("ReplaceText", replace); message->AddBool("casesens", caseSensitive); while (numWindows >= 0) { - StyledEditWindow *window = dynamic_cast( + StyledEditWindow* window = dynamic_cast( be_app->WindowAt(numWindows)); BMessenger messenger(window); @@ -1259,7 +1331,7 @@ StyledEditWindow::SetFontSize(float fontSize) void -StyledEditWindow::SetFontColor(const rgb_color *color) +StyledEditWindow::SetFontColor(const rgb_color* color) { uint32 sameProperties; BFont font; @@ -1272,7 +1344,7 @@ StyledEditWindow::SetFontColor(const rgb_color *color) void -StyledEditWindow::SetFontStyle(const char *fontFamily, const char *fontStyle) +StyledEditWindow::SetFontStyle(const char* fontFamily, const char* fontStyle) { BFont font; uint32 sameProperties; @@ -1311,6 +1383,8 @@ StyledEditWindow::SetFontStyle(const char *fontFamily, const char *fontStyle) } +#undef TR_CONTEXT +#define TR_CONTEXT "Menus" void StyledEditWindow::_UpdateCleanUndoRedoSaveRevert() { @@ -1319,7 +1393,7 @@ StyledEditWindow::_UpdateCleanUndoRedoSaveRevert() fRedoCleans = false; fRevertItem->SetEnabled(fSaveMessage != NULL); fSaveItem->SetEnabled(true); - fUndoItem->SetLabel("Can't Undo"); + fUndoItem->SetLabel(TR("Can't Undo")); fUndoItem->SetEnabled(false); fCanUndo = false; fCanRedo = false;