Ticket #2623: style.patch

File style.patch, 3.2 KB (added by bebop, 11 years ago)

Patch, thanks AnEvilYak, Stippi and Rene

  • StyledEditWindow.cpp

     
    3131#include <Rect.h>
    3232#include <Roster.h>
    3333#include <ScrollView.h>
     34#include <StringView.h>
    3435#include <TextControl.h>
    3536#include <TextView.h>
    3637#include <TranslationUtils.h>
    3738
    38 
    3939using namespace BPrivate;
    4040
     41const float kLineViewWidth = 30.0;
    4142
    4243StyledEditWindow::StyledEditWindow(BRect frame, int32 id, uint32 encoding)
    4344    : BWindow(frame, "untitled", B_DOCUMENT_WINDOW, B_ASYNCHRONOUS_CONTROLS)
     
    118119        true, true, B_PLAIN_BORDER);
    119120    AddChild(fScrollView);
    120121    fTextView->MakeFocus(true);
    121 
     122   
     123    BScrollBar* HScrollBar = fScrollView->ScrollBar(B_HORIZONTAL);
     124    HScrollBar->MoveBy(kLineViewWidth + 1, 0);
     125    HScrollBar->ResizeBy((-1 * kLineViewWidth) - 1, 0);
     126   
     127    fStringView = new BStringView(BRect(0,0,kLineViewWidth,B_H_SCROLL_BAR_HEIGHT), "stringview", "1", B_FOLLOW_LEFT | B_FOLLOW_BOTTOM);
     128    fStringView->SetAlignment(B_ALIGN_CENTER);
     129    fScrollView->AddChild(fStringView);
     130    fStringView->MoveTo(0.0, HScrollBar->Frame().top);
     131   
    122132    // Add "File"-menu:
    123 
    124133    BMenu* menu = new BMenu("File");
    125134    fMenuBar->AddItem(menu);
    126135
     
    533542            fCopyItem->SetEnabled(false);
    534543            fClearItem->SetEnabled(false);
    535544            break;
     545        case UPDATE_LINE:
     546            char buf[20];
     547            sprintf(buf, "%ld", fTextView->CurrentLine() + 1);
     548            fStringView->SetText(buf);
     549            break; 
    536550        case TEXT_CHANGED:
    537551            if (fUndoFlag) {
    538552                if (fUndoCleans) {
  • StyledEditView.cpp

     
    4949StyledEditView::Select(int32 start, int32 finish)
    5050{
    5151    fMessenger->SendMessage(start == finish ? DISABLE_ITEMS : ENABLE_ITEMS);
    52 
    53     BTextView::Select(start, finish);
     52    fMessenger->SendMessage(UPDATE_LINE);
     53    BTextView::Select(start, finish);   
    5454}
    5555
    5656
     
    169169        fMessenger-> SendMessage(TEXT_CHANGED);
    170170
    171171    BTextView::DeleteText(start, finish);
     172    fMessenger->SendMessage(UPDATE_LINE);
    172173}
    173174
    174175
     
    179180    if (!fSuppressChanges)
    180181        fMessenger->SendMessage(TEXT_CHANGED);
    181182
    182     BTextView::InsertText(text, length, offset, runs); 
     183    BTextView::InsertText(text, length, offset, runs);
     184    fMessenger->SendMessage(UPDATE_LINE);
    183185}
    184186
    185187
  • StyledEditWindow.h

     
    1515#include <String.h>
    1616#include <Message.h>
    1717
    18 
    1918struct entry_ref;
    2019
    2120class BMenu;
     
    2423class BMenuItem;
    2524class BFilePanel;
    2625class BScrollView;
     26class BStringView;
    2727class StyledEditView;
    2828
    2929
     
    116116
    117117        StyledEditView  *fTextView;
    118118        BScrollView     *fScrollView;
     119        BStringView     *fStringView;
    119120
    120121        BFilePanel      *fSavePanel;
    121122        BMenu           *fSavePanelEncodingMenu;
  • Constants.h

     
    7575const uint32 SAVE_AS_ENCODING           = 'FPse';
    7676const uint32 SAVE_THEN_QUIT             = 'FPsq';
    7777
     78// Update Line Info
     79const uint32 UPDATE_LINE                = 'UPln';
     80
    7881#endif  // CONSTANTS_H
    7982