Ticket #5480: StyledEdit.patch

File StyledEdit.patch, 30.8 KB (added by mt, 14 years ago)

patch file

  • StyledEditWindow.cpp

     
    1919
    2020#include <Alert.h>
    2121#include <Autolock.h>
     22#include <Catalog.h>
    2223#include <CharacterSet.h>
    2324#include <CharacterSetRoster.h>
    2425#include <Clipboard.h>
    2526#include <Debug.h>
    2627#include <File.h>
    2728#include <FilePanel.h>
     29#include <Locale.h>
    2830#include <Menu.h>
    2931#include <MenuBar.h>
    3032#include <MenuItem.h>
     
    4244
    4345const float kLineViewWidth = 30.0;
    4446
     47#undef TR_CONTEXT
     48#define TR_CONTEXT "StyledEditWindow"
    4549
    4650StyledEditWindow::StyledEditWindow(BRect frame, int32 id, uint32 encoding)
    4751    : BWindow(frame, "untitled", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS)
    4852{
    4953    InitWindow(encoding);
    50     BString unTitled("Untitled ");
     54    BString unTitled(TR("Untitled "));
    5155    unTitled << id;
    5256    SetTitle(unTitled.String());
    5357    fSaveItem->SetEnabled(true);
     
    5660}
    5761
    5862
    59 StyledEditWindow::StyledEditWindow(BRect frame, entry_ref *ref, uint32 encoding)
     63StyledEditWindow::StyledEditWindow(BRect frame, entry_ref* ref, uint32 encoding)
    6064    : BWindow(frame, "untitled", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS)
    6165{
    6266    InitWindow(encoding);
     
    7377}
    7478
    7579
     80#undef TR_CONTEXT
     81#define TR_CONTEXT "Menus"
     82
    7683void
    7784StyledEditWindow::InitWindow(uint32 encoding)
    7885{
     
    124131    fTextView->MakeFocus(true);
    125132   
    126133    // Add "File"-menu:
    127     BMenu* menu = new BMenu("File");
     134    BMenu* menu = new BMenu(TR("File"));
    128135    fMenuBar->AddItem(menu);
    129136
    130137    BMenuItem* menuItem;
    131     menu->AddItem(menuItem = new BMenuItem("New", new BMessage(MENU_NEW), 'N'));
     138    menu->AddItem(menuItem = new BMenuItem(TR("New"),
     139        new BMessage(MENU_NEW), 'N'));
    132140    menuItem->SetTarget(be_app);
    133141
    134     menu->AddItem(menuItem = new BMenuItem(fRecentMenu = new BMenu("Open" B_UTF8_ELLIPSIS),
     142    menu->AddItem(menuItem = new BMenuItem(fRecentMenu = new BMenu(TR("Open…")),
    135143        new BMessage(MENU_OPEN)));
    136144    menuItem->SetShortcut('O', 0);
    137145    menuItem->SetTarget(be_app);
    138146    menu->AddSeparatorItem();
    139147
    140     menu->AddItem(fSaveItem = new BMenuItem("Save", new BMessage(MENU_SAVE), 'S'));
     148    menu->AddItem(fSaveItem = new BMenuItem(TR("Save"),
     149        new BMessage(MENU_SAVE), 'S'));
    141150    fSaveItem->SetEnabled(false);
    142     menu->AddItem(menuItem = new BMenuItem("Save as" B_UTF8_ELLIPSIS, new BMessage(MENU_SAVEAS)));
     151    menu->AddItem(menuItem = new BMenuItem(TR("Save as…"),
     152        new BMessage(MENU_SAVEAS)));
    143153    menuItem->SetShortcut('S',B_SHIFT_KEY);
    144154    menuItem->SetEnabled(true);
    145155
    146     menu->AddItem(fRevertItem = new BMenuItem("Revert to saved" B_UTF8_ELLIPSIS,
     156    menu->AddItem(fRevertItem = new BMenuItem(TR("Revert to saved…"),
    147157        new BMessage(MENU_REVERT)));
    148158    fRevertItem->SetEnabled(false);
    149     menu->AddItem(menuItem = new BMenuItem("Close", new BMessage(MENU_CLOSE), 'W'));
     159    menu->AddItem(menuItem = new BMenuItem(TR("Close"),
     160        new BMessage(MENU_CLOSE), 'W'));
    150161
    151162    menu->AddSeparatorItem();
    152     menu->AddItem(menuItem = new BMenuItem("Page setup" B_UTF8_ELLIPSIS, new BMessage(MENU_PAGESETUP)));
    153     menu->AddItem(menuItem = new BMenuItem("Print" B_UTF8_ELLIPSIS, new BMessage(MENU_PRINT), 'P'));
     163    menu->AddItem(menuItem = new BMenuItem(TR("Page setup…"),
     164        new BMessage(MENU_PAGESETUP)));
     165    menu->AddItem(menuItem = new BMenuItem(TR("Print…"),
     166        new BMessage(MENU_PRINT), 'P'));
    154167
    155168    menu->AddSeparatorItem();
    156     menu->AddItem(menuItem = new BMenuItem("Quit", new BMessage(MENU_QUIT), 'Q'));
     169    menu->AddItem(menuItem = new BMenuItem(TR("Quit"),
     170        new BMessage(MENU_QUIT), 'Q'));
    157171
    158172    // Add the "Edit"-menu:
    159     menu = new BMenu("Edit");
     173    menu = new BMenu(TR("Edit"));
    160174    fMenuBar->AddItem(menu);
    161175
    162     menu->AddItem(fUndoItem = new BMenuItem("Can't undo", new BMessage(B_UNDO), 'Z'));
     176    menu->AddItem(fUndoItem = new BMenuItem(TR("Can't undo"),
     177        new BMessage(B_UNDO), 'Z'));
    163178    fUndoItem->SetEnabled(false);
    164179
    165180    menu->AddSeparatorItem();
    166     menu->AddItem(fCutItem = new BMenuItem("Cut", new BMessage(B_CUT), 'X'));
     181    menu->AddItem(fCutItem = new BMenuItem(TR("Cut"), new BMessage(B_CUT), 'X'));
    167182    fCutItem->SetEnabled(false);
    168183    fCutItem->SetTarget(fTextView);
    169184
    170     menu->AddItem(fCopyItem = new BMenuItem("Copy", new BMessage(B_COPY), 'C'));
     185    menu->AddItem(fCopyItem = new BMenuItem(TR("Copy"),
     186        new BMessage(B_COPY), 'C'));
    171187    fCopyItem->SetEnabled(false);
    172188    fCopyItem->SetTarget(fTextView);
    173189
    174     menu->AddItem(menuItem = new BMenuItem("Paste", new BMessage(B_PASTE), 'V'));
     190    menu->AddItem(menuItem = new BMenuItem(TR("Paste"),
     191        new BMessage(B_PASTE), 'V'));
    175192    menuItem->SetTarget(fTextView);
    176     menu->AddItem(fClearItem = new BMenuItem("Clear", new BMessage(MENU_CLEAR)));
     193    menu->AddItem(fClearItem = new BMenuItem(TR("Clear"),
     194        new BMessage(MENU_CLEAR)));
    177195    fClearItem->SetEnabled(false);
    178196    fClearItem->SetTarget(fTextView);
    179197
    180198    menu->AddSeparatorItem();
    181     menu->AddItem(menuItem = new BMenuItem("Select all", new BMessage(B_SELECT_ALL), 'A'));
     199    menu->AddItem(menuItem = new BMenuItem(TR("Select all"),
     200        new BMessage(B_SELECT_ALL), 'A'));
    182201    menuItem->SetTarget(fTextView);
    183202
    184203    menu->AddSeparatorItem();
    185     menu->AddItem(menuItem = new BMenuItem("Find" B_UTF8_ELLIPSIS, new BMessage(MENU_FIND),'F'));
    186     menu->AddItem(fFindAgainItem= new BMenuItem("Find again",new BMessage(MENU_FIND_AGAIN),'G'));
     204    menu->AddItem(menuItem = new BMenuItem(TR("Find…"),
     205        new BMessage(MENU_FIND),'F'));
     206    menu->AddItem(fFindAgainItem= new BMenuItem(TR("Find again"),
     207        new BMessage(MENU_FIND_AGAIN),'G'));
    187208    fFindAgainItem->SetEnabled(false);
    188209
    189     menu->AddItem(menuItem = new BMenuItem("Find selection", new BMessage(MENU_FIND_SELECTION),'H'));
    190     menu->AddItem(menuItem = new BMenuItem("Replace" B_UTF8_ELLIPSIS, new BMessage(MENU_REPLACE),'R'));
    191     menu->AddItem(fReplaceSameItem = new BMenuItem("Replace same", new BMessage(MENU_REPLACE_SAME),'T'));
     210    menu->AddItem(menuItem = new BMenuItem(TR("Find selection"),
     211        new BMessage(MENU_FIND_SELECTION),'H'));
     212    menu->AddItem(menuItem = new BMenuItem(TR("Replace…"),
     213        new BMessage(MENU_REPLACE),'R'));
     214    menu->AddItem(fReplaceSameItem = new BMenuItem(TR("Replace same"),
     215        new BMessage(MENU_REPLACE_SAME),'T'));
    192216    fReplaceSameItem->SetEnabled(false);
    193217
    194218    // Add the "Font"-menu:
    195     fFontMenu = new BMenu("Font");
     219    fFontMenu = new BMenu(TR("Font"));
    196220    fMenuBar->AddItem(fFontMenu);
    197221
    198222    //"Size"-subMenu
    199     fFontSizeMenu = new BMenu("Size");
     223    fFontSizeMenu = new BMenu(TR("Size"));
    200224    fFontSizeMenu->SetRadioMode(true);
    201225    fFontMenu->AddItem(fFontSizeMenu);
    202226
     
    214238    }
    215239
    216240    // "Color"-subMenu
    217     fFontColorMenu = new BMenu("Color");
     241    fFontColorMenu = new BMenu(TR("Color"));
    218242    fFontColorMenu->SetRadioMode(true);
    219243    fFontMenu->AddItem(fFontColorMenu);
    220244
    221     fFontColorMenu->AddItem(fBlackItem = new BMenuItem("Black", new BMessage(FONT_COLOR)));
     245    fFontColorMenu->AddItem(fBlackItem = new BMenuItem(TR("Black"),
     246        new BMessage(FONT_COLOR)));
    222247    fBlackItem->SetMarked(true);
    223     fFontColorMenu->AddItem(fRedItem = new ColorMenuItem("Red", RED, new BMessage(FONT_COLOR)));
    224     fFontColorMenu->AddItem(fGreenItem = new ColorMenuItem("Green", GREEN, new BMessage(FONT_COLOR)));
    225     fFontColorMenu->AddItem(fBlueItem = new ColorMenuItem("Blue", BLUE, new BMessage(FONT_COLOR)));
    226     fFontColorMenu->AddItem(fCyanItem = new ColorMenuItem("Cyan", CYAN, new BMessage(FONT_COLOR)));
    227     fFontColorMenu->AddItem(fMagentaItem = new ColorMenuItem("Magenta", MAGENTA, new BMessage(FONT_COLOR)));
    228     fFontColorMenu->AddItem(fYellowItem = new ColorMenuItem("Yellow", YELLOW, new BMessage(FONT_COLOR)));
     248    fFontColorMenu->AddItem(fRedItem = new ColorMenuItem(TR("Red"), RED,
     249        new BMessage(FONT_COLOR)));
     250    fFontColorMenu->AddItem(fGreenItem = new ColorMenuItem(TR("Green"), GREEN,
     251        new BMessage(FONT_COLOR)));
     252    fFontColorMenu->AddItem(fBlueItem = new ColorMenuItem(TR("Blue"), BLUE,
     253        new BMessage(FONT_COLOR)));
     254    fFontColorMenu->AddItem(fCyanItem = new ColorMenuItem(TR("Cyan"), CYAN,
     255        new BMessage(FONT_COLOR)));
     256    fFontColorMenu->AddItem(fMagentaItem = new ColorMenuItem(TR("Magenta"), MAGENTA,
     257        new BMessage(FONT_COLOR)));
     258    fFontColorMenu->AddItem(fYellowItem = new ColorMenuItem(TR("Yellow"), YELLOW,
     259        new BMessage(FONT_COLOR)));
    229260    fFontMenu->AddSeparatorItem();
    230261
    231262    // Available fonts
     
    256287    }
    257288
    258289    // Add the "Document"-menu:
    259     menu = new BMenu("Document");
     290    menu = new BMenu(TR("Document"));
    260291    fMenuBar->AddItem(menu);
    261292
    262293    // "Align"-subMenu:
    263     subMenu = new BMenu("Align");
     294    subMenu = new BMenu(TR("Align"));
    264295    subMenu->SetRadioMode(true);
    265296
    266     subMenu->AddItem(fAlignLeft = new BMenuItem("Left", new BMessage(ALIGN_LEFT)));
     297    subMenu->AddItem(fAlignLeft = new BMenuItem(TR("Left"),
     298        new BMessage(ALIGN_LEFT)));
    267299    fAlignLeft->SetMarked(true);
    268300
    269     subMenu->AddItem(fAlignCenter = new BMenuItem("Center", new BMessage(ALIGN_CENTER)));
    270     subMenu->AddItem(fAlignRight = new BMenuItem("Right", new BMessage(ALIGN_RIGHT)));
     301    subMenu->AddItem(fAlignCenter = new BMenuItem(TR("Center"),
     302        new BMessage(ALIGN_CENTER)));
     303    subMenu->AddItem(fAlignRight = new BMenuItem(TR("Right"),
     304        new BMessage(ALIGN_RIGHT)));
    271305    menu->AddItem(subMenu);
    272     menu->AddItem(fWrapItem = new BMenuItem("Wrap lines", new BMessage(WRAP_LINES)));
     306    menu->AddItem(fWrapItem = new BMenuItem(TR("Wrap lines"),
     307        new BMessage(WRAP_LINES)));
    273308    fWrapItem->SetMarked(true);
    274309
    275310    fSavePanel = NULL;
     
    279314
    280315
    281316void
    282 StyledEditWindow::MessageReceived(BMessage *message)
     317StyledEditWindow::MessageReceived(BMessage* message)
    283318{
    284319    if (message->WasDropped()) {
    285320        entry_ref ref;
     
    502537        {
    503538            BRect textRect(fTextView->Bounds());
    504539            textRect.OffsetTo(B_ORIGIN);
    505             textRect.InsetBy(TEXT_INSET,TEXT_INSET);
     540            textRect.InsetBy(TEXT_INSET, TEXT_INSET);
    506541            if (fTextView->DoesWordWrap()) {
    507542                fTextView->SetWordWrap(false);
    508543                fWrapItem->SetMarked(false);
     
    534569                    fClean = true;
    535570                    fUndoCleans = false;
    536571                } else if (fClean) {
    537                    // if we were clean
    538                    // then a redo will make us clean again
    539                    fRedoCleans = true;
    540                    fClean = false;
     572                    // if we were clean
     573                    // then a redo will make us clean again
     574                    fRedoCleans = true;
     575                    fClean = false;
    541576                }
    542577                // set mode
    543578                fCanUndo = false;
    544579                fCanRedo = true;
    545                 fUndoItem->SetLabel("Redo typing");
     580                fUndoItem->SetLabel(TR("Redo typing"));
    546581                fUndoItem->SetEnabled(true);
    547582                fUndoFlag = false;
    548583            } else {
     
    562597                // set mode
    563598                fCanUndo = true;
    564599                fCanRedo = false;
    565                 fUndoItem->SetLabel("Undo typing");
     600                fUndoItem->SetLabel(TR("Undo typing"));
    566601                fUndoItem->SetEnabled(true);
    567602                fRedoFlag = false;
    568603            }
     
    579614            void* ptr;
    580615            if (message->FindPointer("source", &ptr) == B_OK
    581616                && fSavePanelEncodingMenu != NULL) {
    582                 fTextView->SetEncoding((uint32)fSavePanelEncodingMenu->IndexOf((BMenuItem*)ptr));
     617                fTextView->SetEncoding(
     618                    (uint32)fSavePanelEncodingMenu->IndexOf((BMenuItem*)ptr));
    583619            }
    584620            break;
    585621
     
    736772}
    737773
    738774
     775// This is temporary solution for building BString with printf like format.
     776// will be removed in the future.
     777static void
     778bs_printf(BString* string, const char* format, ...)
     779{
     780    va_list     ap;
     781    va_start(ap, format);
     782    char*   buf;
     783    vasprintf(&buf, format, ap);
     784    string->SetTo(buf);
     785    free(buf);
     786    va_end(ap);
     787}
     788
     789
     790#undef TR_CONTEXT
     791#define TR_CONTEXT "QuitAlert"
     792
    739793bool
    740794StyledEditWindow::QuitRequested()
    741795{
    742796    if (fClean)
    743797        return true;
    744798
    745     BString alertText("Save changes to the document \"");
    746     alertText<< Title() <<"\"? ";
    747     int32 index = _ShowAlert(alertText, "Cancel", "Don't save", "Save",
     799    BString alertText;
     800    bs_printf(&alertText, TR("Save changes to the document \"%s\"? "), Title());
     801   
     802    int32 index = _ShowAlert(alertText, TR("Cancel"), TR("Don't save"), TR("Save"),
    748803        B_WARNING_ALERT);
    749804
    750805    if (index == 0)
     
    762817}
    763818
    764819
     820#undef TR_CONTEXT
     821#define TR_CONTEXT "SaveAlert"
     822
    765823status_t
    766 StyledEditWindow::Save(BMessage *message)
     824StyledEditWindow::Save(BMessage* message)
    767825{
    768826    if (!message)
    769827        message = fSaveMessage;
     
    788846    }
    789847
    790848    if (status != B_OK) {
    791         BString alertText("Error saving \"");
    792         alertText << name << "\":\n" << strerror(status);
     849        BString alertText;
     850        bs_printf(&alertText, TR("Error saving \"%s\":\n%s"), name, strerror(status));
    793851
    794         _ShowAlert(alertText, "OK", "", "", B_STOP_ALERT);
     852        _ShowAlert(alertText, TR("OK"), "", "", B_STOP_ALERT);
    795853        return status;
    796854    }
    797855
     
    816874}
    817875
    818876
     877#undef TR_CONTEXT
     878#define TR_CONTEXT "Open_and_SaveAsPanel"
     879
    819880status_t
    820 StyledEditWindow::SaveAs(BMessage *message)
     881StyledEditWindow::SaveAs(BMessage* message)
    821882{
    822883    if (fSavePanel == NULL) {
    823884        entry_ref* directory = NULL;
     
    834895        BMenuBar* menuBar = dynamic_cast<BMenuBar*>(
    835896            fSavePanel->Window()->FindView("MenuBar"));
    836897
    837         fSavePanelEncodingMenu= new BMenu("Encoding");
     898        fSavePanelEncodingMenu= new BMenu(TR("Encoding"));
    838899        menuBar->AddItem(fSavePanelEncodingMenu);
    839900        fSavePanelEncodingMenu->SetRadioMode(true);
    840901
     
    848909                name.Append(mime);
    849910                name.Append(")");
    850911            }
    851             BMenuItem * item = new BMenuItem(name.String(), new BMessage(SAVE_AS_ENCODING));
     912            BMenuItem * item = new BMenuItem(name.String(),
     913                new BMessage(SAVE_AS_ENCODING));
    852914            item->SetTarget(this);
    853915            fSavePanelEncodingMenu->AddItem(item);
    854916            if (charset.GetFontID() == fTextView->GetEncoding())
     
    865927}
    866928
    867929
     930#undef TR_CONTEXT
     931#define TR_CONTEXT "LoadAlert"
     932
    868933status_t
    869934StyledEditWindow::_LoadFile(entry_ref* ref)
    870935{
     
    892957        BEntry entry(ref, true);
    893958        char name[B_FILE_NAME_LENGTH];
    894959        if (entry.GetName(name) != B_OK)
    895             strcpy(name, "???");
     960            strcpy(name, TR("???"));
    896961
    897         BString text("Error loading \"");
    898         text << name << "\":\n\t";
     962        BString text;
    899963        if (status == B_BAD_TYPE)
    900             text << "Unsupported format";
     964            bs_printf(&text, TR("Error loading \"%s\":\n\tUnsupported format"), name);
    901965        else
    902             text << strerror(status);
     966            bs_printf(&text, TR("Error loading \"%s\":\n\t%s"), name, strerror(status));
    903967
    904         _ShowAlert(text, "OK", "", "", B_STOP_ALERT);
     968        _ShowAlert(text, TR("OK"), "", "", B_STOP_ALERT);
    905969        return status;
    906970    }
    907971
     
    9531017}
    9541018
    9551019
     1020#undef TR_CONTEXT
     1021#define TR_CONTEXT "RevertToSavedAlert"
     1022
    9561023void
    9571024StyledEditWindow::RevertToSaved()
    9581025{
    9591026    entry_ref ref;
    960     const char *name;
     1027    const char* name;
    9611028
    9621029    fSaveMessage->FindRef("directory", &ref);
    9631030    fSaveMessage->FindString("name", &name);
     
    9721039        status = entry.GetRef(&ref);
    9731040
    9741041    if (status != B_OK || !entry.Exists()) {
    975         BString alertText("Cannot revert, file not found: \"");
    976         alertText << name << "\".";
    977         _ShowAlert(alertText, "OK", "", "", B_STOP_ALERT);
     1042        BString alertText;
     1043        bs_printf(&alertText, TR("Cannot revert, file not found: \"%s\"."), name);
     1044        _ShowAlert(alertText, TR("OK"), "", "", B_STOP_ALERT);
    9781045        return;
    9791046    }
    9801047
    981     BString alertText("Revert to the last version of \"");
    982     alertText << Title() << "\"? ";
    983     if (_ShowAlert(alertText, "Cancel", "OK", "", B_WARNING_ALERT) != 1)
     1048    BString alertText;
     1049    bs_printf(&alertText, TR("Revert to the last version of \"%s\"? "), Title());
     1050    if (_ShowAlert(alertText, TR("Cancel"), TR("OK"), "", B_WARNING_ALERT) != 1)
    9841051        return;
    9851052
    9861053    fTextView->Reset();
    9871054    if (_LoadFile(&ref) != B_OK)
    9881055        return;
    9891056
     1057#undef TR_CONTEXT
     1058#define TR_CONTEXT "Menus"
     1059
    9901060    // clear undo modes
    991     fUndoItem->SetLabel("Can't undo");
     1061    fUndoItem->SetLabel(TR("Can't undo"));
    9921062    fUndoItem->SetEnabled(false);
    9931063    fUndoFlag = false;
    9941064    fCanUndo = false;
     
    10891159                top = fTextView->TextHeight(0, firstLineOnPage - 1);
    10901160
    10911161            float bottom = fTextView->TextHeight(0, printLine - 1);
    1092             BRect textRect(0.0, top + TEXT_INSET, printableRect.Width(), bottom + TEXT_INSET);
     1162            BRect textRect(0.0, top + TEXT_INSET,
     1163                printableRect.Width(), bottom + TEXT_INSET);
    10931164            printJob.DrawView(fTextView, textRect, B_ORIGIN);
    10941165            printJob.SpoolPage();
    10951166        }
     
    12131284    if (viewText.Length() < textFinish)
    12141285        textFinish = viewText.Length();
    12151286
    1216     fTextView->Select(textStart,textFinish);
     1287    fTextView->Select(textStart, textFinish);
    12171288    fTextView->ScrollToSelection();
    12181289
    12191290    _UpdateCleanUndoRedoSaveRevert();
     
    12261297    int32 numWindows;
    12271298    numWindows = be_app->CountWindows();
    12281299
    1229     BMessage *message;
     1300    BMessage* message;
    12301301    message= new BMessage(MSG_REPLACE_ALL);
    12311302    message->AddString("FindText", find);
    12321303    message->AddString("ReplaceText", replace);
    12331304    message->AddBool("casesens", caseSensitive);
    12341305
    12351306    while (numWindows >= 0) {
    1236         StyledEditWindow *window = dynamic_cast<StyledEditWindow *>(
     1307        StyledEditWindow* window = dynamic_cast<StyledEditWindow *>(
    12371308            be_app->WindowAt(numWindows));
    12381309
    12391310        BMessenger messenger(window);
     
    12591330
    12601331
    12611332void
    1262 StyledEditWindow::SetFontColor(const rgb_color *color)
     1333StyledEditWindow::SetFontColor(const rgb_color* color)
    12631334{
    12641335    uint32 sameProperties;
    12651336    BFont font;
     
    12721343
    12731344
    12741345void
    1275 StyledEditWindow::SetFontStyle(const char *fontFamily, const char *fontStyle)
     1346StyledEditWindow::SetFontStyle(const char* fontFamily, const char* fontStyle)
    12761347{
    12771348    BFont font;
    12781349    uint32 sameProperties;
     
    13111382}
    13121383
    13131384
     1385#undef TR_CONTEXT
     1386#define TR_CONTEXT "Menus"
    13141387void
    13151388StyledEditWindow::_UpdateCleanUndoRedoSaveRevert()
    13161389{
     
    13191392    fRedoCleans = false;
    13201393    fRevertItem->SetEnabled(fSaveMessage != NULL);
    13211394    fSaveItem->SetEnabled(true);
    1322     fUndoItem->SetLabel("Can't Undo");
     1395    fUndoItem->SetLabel(TR("Can't Undo"));
    13231396    fUndoItem->SetEnabled(false);
    13241397    fCanUndo = false;
    13251398    fCanRedo = false;
  • ReplaceWindow.cpp

     
    1212#include "ReplaceWindow.h"
    1313
    1414#include <Button.h>
     15#include <Catalog.h>
    1516#include <CheckBox.h>
     17#include <GroupLayoutBuilder.h>
     18#include <GridLayoutBuilder.h>
    1619#include <Handler.h>
     20#include <Locale.h>
     21#include <LayoutBuilder.h>
    1722#include <Message.h>
    1823#include <Messenger.h>
    19 #include <Rect.h>
    2024#include <String.h>
    2125#include <TextControl.h>
    22 #include <View.h>
    2326
    2427
    25 ReplaceWindow::ReplaceWindow(BRect frame, BHandler *_handler, BString *searchString,
    26     BString *replaceString, bool caseState, bool wrapState, bool backState)
     28#undef TR_CONTEXT
     29#define TR_CONTEXT "FindandReplaceWindow"
     30
     31ReplaceWindow::ReplaceWindow(BRect frame, BHandler* _handler,
     32    BString* searchString,  BString *replaceString,
     33    bool caseState, bool wrapState, bool backState)
    2734    : BWindow(frame, "ReplaceWindow", B_MODAL_WINDOW,
    28         B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_CURRENT_WORKSPACE)
     35        B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS,
     36        B_CURRENT_WORKSPACE)
    2937{
    3038    AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED));
    3139   
    32     fReplaceView = new BView(Bounds(), "ReplaceView", B_FOLLOW_ALL, B_WILL_DRAW);
    33     fReplaceView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
    34     AddChild(fReplaceView);
     40    fSearchString = new BTextControl("", TR("Find:"), NULL, NULL);
     41    fReplaceString = new BTextControl("", TR("Replace with:"), NULL, NULL);
     42    fCaseSensBox = new BCheckBox("", TR("Case-sensitive"), NULL);
     43    fWrapBox = new BCheckBox("", TR("Wrap-around search"), NULL);
     44    fBackSearchBox = new BCheckBox("", TR("Search backwards"), NULL);
     45    fAllWindowsBox = new BCheckBox("", TR("Replace in all windows"),
     46        new BMessage(CHANGE_WINDOW));
     47    fUIchange = false;
    3548
    36     char* findLabel = "Find:";
    37     float findWidth = fReplaceView->StringWidth(findLabel);
    38     fReplaceView->AddChild(fSearchString = new BTextControl(BRect(5, 10, 290, 50), "",
    39         findLabel, NULL, NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE));
    40    
    41     char* replaceWithLabel = "Replace with:";
    42     float replaceWithWidth = fReplaceView->StringWidth(replaceWithLabel);
    43     fReplaceView->AddChild(fReplaceString = new BTextControl(BRect(5, 35, 290, 50), "",
    44         replaceWithLabel, NULL, NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP,
    45         B_WILL_DRAW | B_NAVIGABLE));
    46     float maxWidth = (replaceWithWidth > findWidth ? replaceWithWidth : findWidth) + TEXT_INSET;
    47     fSearchString->SetDivider(maxWidth);
    48     fReplaceString->SetDivider(maxWidth);
     49    fReplaceAllButton = new BButton("", TR("Replace all"),
     50        new BMessage(MSG_REPLACE_ALL));
     51    fCancelButton = new BButton("", TR("Cancel"), new BMessage(B_QUIT_REQUESTED));
     52    fReplaceButton = new BButton("", TR("Replace"), new BMessage(MSG_REPLACE));
    4953
    50     fReplaceView->AddChild(fCaseSensBox = new BCheckBox(BRect(maxWidth + 8, 60, 290, 52),
    51         "", "Case-sensitive", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE));
    52     fReplaceView->AddChild(fWrapBox = new BCheckBox(BRect(maxWidth + 8, 80, 290, 70),
    53         "", "Wrap-around search", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP,
    54         B_WILL_DRAW | B_NAVIGABLE));
    55     fReplaceView->AddChild(fBackSearchBox = new BCheckBox(BRect(maxWidth + 8, 100, 290, 95),
    56         "", "Search backwards", NULL, B_FOLLOW_LEFT | B_FOLLOW_TOP,
    57         B_WILL_DRAW | B_NAVIGABLE));
    58     fReplaceView->AddChild(fAllWindowsBox = new BCheckBox(BRect(maxWidth + 8, 120, 290, 95),
    59         "", "Replace in all windows", new BMessage(CHANGE_WINDOW),
    60         B_FOLLOW_LEFT | B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE));
    61     fUIchange = false;
     54    SetLayout(new BGroupLayout(B_HORIZONTAL));
     55    AddChild(BGroupLayoutBuilder(B_VERTICAL, 4)
     56        .Add(BGridLayoutBuilder(6, 2)
     57                .Add(fSearchString->CreateLabelLayoutItem(), 0, 0)
     58                .Add(fSearchString->CreateTextViewLayoutItem(), 1, 0)
     59                .Add(fReplaceString->CreateLabelLayoutItem(), 0, 1)
     60                .Add(fReplaceString->CreateTextViewLayoutItem(), 1, 1)
     61                .Add(fCaseSensBox, 1, 2)
     62                .Add(fWrapBox, 1, 3)
     63                .Add(fBackSearchBox, 1, 4)
     64                .Add(fAllWindowsBox, 1, 5)
     65                )
     66        .AddGroup(B_HORIZONTAL, 10)
     67            .Add(fReplaceAllButton)
     68            .AddGlue()
     69            .Add(fCancelButton)
     70            .Add(fReplaceButton)
     71        .End()
     72        .SetInsets(10, 10, 10, 10)
     73    );
    6274
    63     fReplaceView->AddChild(fReplaceAllButton = new BButton(BRect(10, 150, 98, 166),
    64         "", "Replace all", new BMessage(MSG_REPLACE_ALL), B_FOLLOW_LEFT | B_FOLLOW_TOP,
    65         B_WILL_DRAW | B_NAVIGABLE));
    66     fReplaceView->AddChild(fCancelButton = new BButton(BRect(141, 150, 211, 166),
    67         "", "Cancel", new BMessage(B_QUIT_REQUESTED), B_FOLLOW_LEFT | B_FOLLOW_TOP,
    68         B_WILL_DRAW | B_NAVIGABLE));
    69     fReplaceView->AddChild(fReplaceButton = new BButton(BRect(221, 150, 291, 166),
    70         "", "Replace", new BMessage(MSG_REPLACE), B_FOLLOW_LEFT | B_FOLLOW_TOP,
    71         B_WILL_DRAW | B_NAVIGABLE));
    7275    fReplaceButton->MakeDefault(true);
    7376
    7477    fHandler = _handler;
    7578
    76     const char *searchtext = searchString->String();
    77     const char *replacetext = replaceString->String();
     79    const char* searchtext = searchString->String();
     80    const char* replacetext = replaceString->String();
    7881
    7982    fSearchString->SetText(searchtext);
    8083    fReplaceString->SetText(replacetext);
     
    8790
    8891
    8992void
    90 ReplaceWindow::MessageReceived(BMessage *msg)
     93ReplaceWindow::MessageReceived(BMessage* msg)
    9194{
    9295    switch (msg->what) {
    9396        case MSG_REPLACE:
     
    126129
    127130
    128131void
    129 ReplaceWindow::DispatchMessage(BMessage *message, BHandler *handler)
     132ReplaceWindow::DispatchMessage(BMessage* message, BHandler* handler)
    130133{
    131134    if (message->what == B_KEY_DOWN) {
    132135        int8 key;
  • ReplaceWindow.h

     
    1313#include <Window.h>
    1414
    1515
    16 class BView;
    1716class BString;
    1817class BButton;
    1918class BHandler;
     
    3534        void            _SendMessage(uint32 what);
    3635        void            _ChangeUI();       
    3736
    38         BView           *fReplaceView;
    3937        BTextControl    *fSearchString;
    4038        BTextControl    *fReplaceString;
    4139        BCheckBox       *fCaseSensBox;
  • FindWindow.cpp

     
    1212#include "FindWindow.h"
    1313
    1414#include <Button.h>
     15#include <Catalog.h>
    1516#include <CheckBox.h>
     17#include <GroupLayoutBuilder.h>
     18#include <GridLayoutBuilder.h>
     19#include <Locale.h>
     20#include <LayoutBuilder.h>
    1621#include <String.h>
    1722#include <TextControl.h>
    1823
    1924
    20 FindWindow::FindWindow(BRect frame, BHandler *_handler, BString *searchString,
     25#undef TR_CONTEXT
     26#define TR_CONTEXT "FindandReplaceWindow"
     27
     28FindWindow::FindWindow(BRect frame, BHandler* _handler, BString* searchString,
    2129    bool caseState, bool wrapState, bool backState)
    2230    : BWindow(frame, "FindWindow", B_MODAL_WINDOW,
    23         B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS, B_CURRENT_WORKSPACE)
     31        B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_AUTO_UPDATE_SIZE_LIMITS,
     32        B_CURRENT_WORKSPACE)
    2433{
    2534    AddShortcut('W', B_COMMAND_KEY, new BMessage(B_QUIT_REQUESTED));
    26    
    27     fFindView = new BView(Bounds(), "FindView", B_FOLLOW_ALL, B_WILL_DRAW);
    28     fFindView->SetViewColor(ui_color(B_PANEL_BACKGROUND_COLOR));
    29     AddChild(fFindView);
    3035
    31     font_height height;
    32     fFindView->GetFontHeight(&height);
    33     float lineHeight = height.ascent + height.descent + height.leading;
     36    fSearchString = new BTextControl("", TR("Find:"), NULL, NULL);
     37    fCaseSensBox = new BCheckBox("", TR("Case-sensitive"), NULL);
     38    fWrapBox = new BCheckBox("", TR("Wrap-around search"), NULL);
     39    fBackSearchBox = new BCheckBox("", TR("Search backwards"), NULL);
     40    fCancelButton = new BButton("", TR("Cancel"), new BMessage(B_QUIT_REQUESTED));
     41    fSearchButton = new BButton("", TR("Find"), new BMessage(MSG_SEARCH));
    3442
    35     float findWidth = fFindView->StringWidth("Find:") + 6;
     43    SetLayout(new BGroupLayout(B_HORIZONTAL));
     44    AddChild(BGroupLayoutBuilder(B_VERTICAL, 4)
     45        .Add(BGridLayoutBuilder(6, 2)
     46                .Add(fSearchString->CreateLabelLayoutItem(), 0, 0)
     47                .Add(fSearchString->CreateTextViewLayoutItem(), 1, 0)
     48                .Add(fCaseSensBox, 1, 1)
     49                .Add(fWrapBox, 1, 2)
     50                .Add(fBackSearchBox, 1, 3)
     51                )
     52        .AddGroup(B_HORIZONTAL, 10)
     53            .AddGlue()
     54            .Add(fCancelButton)
     55            .Add(fSearchButton)
     56        .End()
     57        .SetInsets(10, 10, 10, 10)
     58    );
    3659
    37     float searchBottom = 12 + 2 + lineHeight + 2 + 1;
    38     float buttonTop = frame.Height() - 19 - lineHeight;
    39     float wrapBoxTop = (buttonTop + searchBottom - lineHeight) / 2;
    40     float wrapBoxBottom = (buttonTop + searchBottom + lineHeight) / 2;
    41     float caseBoxTop = (searchBottom + wrapBoxTop - lineHeight) / 2;
    42     float caseBoxBottom = (searchBottom + wrapBoxTop + lineHeight) / 2;
    43     float backBoxTop = (buttonTop + wrapBoxBottom - lineHeight) / 2;
    44     float backBoxBottom = (buttonTop + wrapBoxBottom + lineHeight) / 2;
    45 
    46     fFindView->AddChild(fSearchString = new BTextControl(BRect(14, 12,
    47         frame.Width() - 10, searchBottom), "", "Find:", NULL, NULL));
    48     fSearchString->SetDivider(findWidth);
    49 
    50     fFindView->AddChild(fCaseSensBox = new BCheckBox(BRect(16 + findWidth, caseBoxTop,
    51         frame.Width() - 12, caseBoxBottom), "", "Case-sensitive", NULL));
    52     fFindView->AddChild(fWrapBox = new BCheckBox(BRect(16 + findWidth, wrapBoxTop,
    53         frame.Width() - 12, wrapBoxBottom), "", "Wrap-around search", NULL));
    54     fFindView->AddChild(fBackSearchBox = new BCheckBox(BRect(16 + findWidth,
    55         backBoxTop, frame.Width() - 12, backBoxBottom), "", "Search backwards", NULL));
    56    
    57     fFindView->AddChild(fCancelButton = new BButton(BRect(142, buttonTop, 212,
    58         frame.Height() - 7), "", "Cancel", new BMessage(B_QUIT_REQUESTED)));
    59     fFindView->AddChild(fSearchButton = new BButton(BRect(221, buttonTop, 291,
    60         frame.Height() - 7), "", "Find", new BMessage(MSG_SEARCH)));
    61 
    6260    fSearchButton->MakeDefault(true);
    6361    fHandler = _handler;
    6462
    65     const char *text = searchString->String();
     63    const char* text = searchString->String();
    6664
    6765    fSearchString->SetText(text);
    6866    fSearchString->MakeFocus(true);
     
    7472
    7573
    7674void
    77 FindWindow::MessageReceived(BMessage *msg)
     75FindWindow::MessageReceived(BMessage* msg)
    7876{
    7977    switch (msg->what) {
    8078        case B_QUIT_REQUESTED:
     
    9290
    9391
    9492void
    95 FindWindow::DispatchMessage(BMessage *message, BHandler *handler)
     93FindWindow::DispatchMessage(BMessage* message, BHandler* handler)
    9694{
    9795    if (message->what == B_KEY_DOWN) {
    9896        int8 key;
  • StyledEditApp.cpp

     
    1515
    1616#include <Alert.h>
    1717#include <Autolock.h>
     18#include <Catalog.h>
     19#include <Locale.h>
    1820#include <MenuBar.h>
    1921#include <CharacterSet.h>
    2022#include <CharacterSetRoster.h>
     
    4951        if (top + gWindowRect.Height() > screenBorder.bottom)
    5052            top = 26;
    5153
    52         gWindowRect.OffsetTo(BPoint(left,top));
     54        gWindowRect.OffsetTo(BPoint(left, top));   
    5355    }
    5456
    5557
     
    7173            top = top - ((int)left % 15) + 26;
    7274        }
    7375
    74         gWindowRect.OffsetTo(BPoint(left,top));
     76        gWindowRect.OffsetTo(BPoint(left, top));   
    7577    }
    7678}
    7779
    7880
    7981//  #pragma mark -
    8082
     83#undef TR_CONTEXT
     84#define TR_CONTEXT "Open_and_SaveAsPanel"
    8185
    8286StyledEditApp::StyledEditApp()
    8387    : BApplication(APP_SIGNATURE),
    8488    fOpenPanel(NULL)
    8589{
     90    be_locale->GetAppCatalog(&fCatalog);
     91
    8692    fOpenPanel = new BFilePanel();
    87     BMenuBar *menuBar =
     93    BMenuBar* menuBar =
    8894        dynamic_cast<BMenuBar*>(fOpenPanel->Window()->FindView("MenuBar"));
    8995
    9096    fOpenAsEncoding = 0;
    91     fOpenPanelEncodingMenu= new BMenu("Encoding");
     97    fOpenPanelEncodingMenu= new BMenu(TR("Encoding"));
    9298    menuBar->AddItem(fOpenPanelEncodingMenu);
    9399    fOpenPanelEncodingMenu->SetRadioMode(true);
    94100
     
    97103    while (roster.GetNextCharacterSet(&charset) == B_NO_ERROR) {
    98104        BString name;
    99105        if (charset.GetFontID() == B_UNICODE_UTF8)
    100             name = "Default";
     106            name = TR("Default");
    101107        else
    102108            name = charset.GetPrintName();
    103109
     
    107113            name.Append(mime);
    108114            name.Append(")");
    109115        }
    110         BMenuItem* item = new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING));
     116        BMenuItem* item =
     117            new BMenuItem(name.String(), new BMessage(OPEN_AS_ENCODING));
    111118        item->SetTarget(this);
    112119        fOpenPanelEncodingMenu->AddItem(item);
    113120        if (charset.GetFontID() == fOpenAsEncoding)
     
    129136
    130137
    131138void
    132 StyledEditApp::MessageReceived(BMessage *message)
     139StyledEditApp::MessageReceived(BMessage* message)
    133140{
    134141    switch (message->what) {
    135142        case MENU_NEW:
     
    231238
    232239
    233240void
    234 StyledEditApp::RefsReceived(BMessage *message)
     241StyledEditApp::RefsReceived(BMessage* message)
    235242{
    236243    int32 index = 0;
    237244    entry_ref ref;
  • FindWindow.h

     
    1616class BButton;
    1717class BCheckBox;
    1818class BTextControl;
    19 class BView;
    2019
    2120
    2221class FindWindow : public BWindow {
     
    3029    private:
    3130        void            _SendMessage();
    3231
    33         BView           *fFindView;
    3432        BTextControl    *fSearchString;
    3533        BCheckBox       *fCaseSensBox;
    3634        BCheckBox       *fWrapBox;
  • StyledEditApp.h

     
    1212
    1313
    1414#include <Application.h>
     15#include <Catalog.h>
    1516
    1617
    1718struct entry_ref;
     
    4849        int32           fWindowCount;
    4950        int32           fNextUntitledWindow;
    5051        bool            fBadArguments;
     52        BCatalog        fCatalog;
    5153};
    5254
    5355extern StyledEditApp* styled_edit_app;
  • Jamfile

     
    1616    StyledEditApp.cpp
    1717    StyledEditView.cpp
    1818    StyledEditWindow.cpp
    19     : be translation tracker libtextencoding.so $(TARGET_LIBSUPC++)
     19    : be translation tracker libtextencoding.so liblocale.so $(TARGET_LIBSUPC++)
    2020    : $(styled_edit_rsrc)
    2121    ;
     22
     23DoCatalogs StyledEdit :
     24    x-vnd.Haiku-StyledEdit
     25    :
     26    FindWindow.cpp
     27    ReplaceWindow.cpp
     28    StyledEditApp.cpp
     29    StyledEditWindow.cpp
     30    : en.catalog
     31    :
     32;