Ticket #5149: terminal.patch

File terminal.patch, 6.8 KB (added by mt, 12 years ago)

patch file

  • AppearPrefView.cpp

     
    1313
    1414#include <Button.h>
    1515#include <ColorControl.h>
     16#include <GridLayoutBuilder.h>
    1617#include <GroupLayoutBuilder.h>
    1718#include <LayoutBuilder.h>
    1819#include <Menu.h>
     
    2728
    2829
    2930
    30 AppearancePrefView::AppearancePrefView(const char *name,
    31         const BMessenger &messenger)
     31AppearancePrefView::AppearancePrefView(const char* name,
     32        const BMessenger& messenger)
    3233    : BView(name, B_WILL_DRAW),
    3334    fTerminalMessenger(messenger)
    3435{
    35     const char *kColorTable[] = {
     36    const char* kColorTable[] = {
    3637        PREF_TEXT_FORE_COLOR,
    3738        PREF_TEXT_BACK_COLOR,
    3839        PREF_CURSOR_FORE_COLOR,
     
    5960
    6061    SetLayout(new BGroupLayout(B_HORIZONTAL));
    6162   
    62     BMenu *fontMenu = _MakeFontMenu(MSG_HALF_FONT_CHANGED,
     63    BMenu* fontMenu = _MakeFontMenu(MSG_HALF_FONT_CHANGED,
    6364        PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY),
    6465        PrefHandler::Default()->getString(PREF_HALF_FONT_STYLE));
    6566   
    66     BMenu *sizeMenu = _MakeSizeMenu(MSG_HALF_SIZE_CHANGED,
     67    BMenu* sizeMenu = _MakeSizeMenu(MSG_HALF_SIZE_CHANGED,
    6768        PrefHandler::Default()->getInt32(PREF_HALF_FONT_SIZE));
    6869   
    69     BView *layoutView = BLayoutBuilder::Group<>()
     70    fFont = new BMenuField("Font:", fontMenu);
     71    fFontSize = new BMenuField("Size:", sizeMenu);
     72    fColorField = new BMenuField("Color:",
     73        _MakeMenu(MSG_COLOR_FIELD_CHANGED, kColorTable,
     74        kColorTable[0]));
     75
     76    BView* layoutView = BLayoutBuilder::Group<>()
    7077        .SetInsets(5, 5, 5, 5)
    7178        .AddGroup(B_VERTICAL, 5)
    72             .Add(fFont = new BMenuField("font", "Font:", fontMenu))
    73             .Add(fFontSize = new BMenuField("size", "Size:", sizeMenu))
    74             .Add(fColorField = new BMenuField("color", "Color:",
    75                 _MakeMenu(MSG_COLOR_FIELD_CHANGED, kColorTable,
    76                     kColorTable[0])))
    77             .Add(BSpaceLayoutItem::CreateGlue())
    78             .Add(fColorControl = new BColorControl(BPoint(10, 10),
    79                 B_CELLS_32x8, 8.0, "", new BMessage(MSG_COLOR_CHANGED)))
     79            .Add(BGridLayoutBuilder(5, 5)
     80                .Add(fFont->CreateLabelLayoutItem(), 0, 0)
     81                .Add(fFont->CreateMenuBarLayoutItem(), 1, 0)
     82                .Add(fFontSize->CreateLabelLayoutItem(), 0, 1)
     83                .Add(fFontSize->CreateMenuBarLayoutItem(), 1, 1)
     84                .Add(fColorField->CreateLabelLayoutItem(), 0, 2)
     85                .Add(fColorField->CreateMenuBarLayoutItem(), 1, 2)
     86                )
     87            .AddGroup(B_VERTICAL, 5)
     88                .AddGlue()
     89                .Add(fColorControl = new BColorControl(BPoint(10, 10),
     90                    B_CELLS_32x8, 8.0, "", new BMessage(MSG_COLOR_CHANGED)))
     91            .End()
    8092        .End();
    8193   
    8294    AddChild(layoutView);
     
    98110
    99111
    100112void
    101 AppearancePrefView::GetPreferredSize(float *_width, float *_height)
     113AppearancePrefView::GetPreferredSize(float* _width, float* _height)
    102114{
    103115    if (_width)
    104116        *_width = Bounds().Width();
     
    112124AppearancePrefView::Revert()
    113125{
    114126    fColorField->Menu()->ItemAt(0)->SetMarked(true);
    115     fColorControl->SetValue(PrefHandler::Default()->getRGB(PREF_TEXT_FORE_COLOR));
     127    fColorControl->SetValue(PrefHandler::Default()->
     128        getRGB(PREF_TEXT_FORE_COLOR));
    116129
    117     fFont->Menu()->FindItem(PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true);
    118     fFontSize->Menu()->FindItem(PrefHandler::Default()->getString(PREF_HALF_FONT_FAMILY))->SetMarked(true);
     130    fFont->Menu()->
     131        FindItem(PrefHandler::Default()->
     132        getString(PREF_HALF_FONT_FAMILY))->SetMarked(true);
     133    fFontSize->Menu()->
     134        FindItem(PrefHandler::Default()->
     135        getString(PREF_HALF_FONT_FAMILY))->SetMarked(true);
    119136}
    120137
    121138
     
    131148
    132149
    133150void
    134 AppearancePrefView::MessageReceived(BMessage *msg)
     151AppearancePrefView::MessageReceived(BMessage* msg)
    135152{
    136153    bool modified = false;
    137154
    138155    switch (msg->what) {
    139156        case MSG_HALF_FONT_CHANGED:
    140157        {
    141             const char *family = NULL;
    142             const char *style = NULL;
     158            const char* family = NULL;
     159            const char* style = NULL;
    143160            msg->FindString("font_family", &family);
    144161            msg->FindString("font_style", &style);
    145162           
    146             PrefHandler *pref = PrefHandler::Default();
    147             const char *currentFamily
     163            PrefHandler* pref = PrefHandler::Default();
     164            const char* currentFamily
    148165                = pref->getString(PREF_HALF_FONT_FAMILY);
    149             const char *currentStyle
     166            const char* currentStyle
    150167                = pref->getString(PREF_HALF_FONT_STYLE);
    151168            if (currentFamily == NULL || strcmp(currentFamily, family)
    152169                || currentStyle == NULL || strcmp(currentStyle, style)) {
     
    198215
    199216
    200217static bool
    201 IsFontUsable(const BFont &font)
     218IsFontUsable(const BFont& font)
    202219{
    203220    // TODO: If BFont::IsFullAndHalfFixed() was implemented, we could
    204221    // use that. But I don't think it's easily implementable using
     
    228245
    229246
    230247/* static */
    231 BMenu *
     248BMenu*
    232249AppearancePrefView::_MakeFontMenu(uint32 command,
    233     const char *defaultFamily, const char *defaultStyle)
     250    const char* defaultFamily, const char* defaultStyle)
    234251{
    235     BPopUpMenu *menu = new BPopUpMenu("");
     252    BPopUpMenu* menu = new BPopUpMenu("");
    236253    int32 numFamilies = count_font_families();
    237254    uint32 flags;
    238255   
     
    246263                if (get_font_style(family, j, &style) == B_OK) {
    247264                    font.SetFamilyAndStyle(family, style);
    248265                    if (IsFontUsable(font)) {
    249                         BMessage *message = new BMessage(command);
     266                        BMessage* message = new BMessage(command);
    250267                        message->AddString("font_family", family);
    251268                        message->AddString("font_style", style);
    252269                        char itemLabel[134];
    253270                        snprintf(itemLabel, sizeof(itemLabel),
    254271                            "%s - %s", family, style);
    255                         BMenuItem *item = new BMenuItem(itemLabel,
     272                        BMenuItem* item = new BMenuItem(itemLabel,
    256273                            message);
    257274                        menu->AddItem(item);
    258275                        if (!strcmp(defaultFamily, family)
     
    272289
    273290
    274291/* static */
    275 BMenu *
     292BMenu*
    276293AppearancePrefView::_MakeSizeMenu(uint32 command, uint8 defaultSize)
    277294{
    278     BPopUpMenu *menu = new BPopUpMenu("size");
     295    BPopUpMenu* menu = new BPopUpMenu("size");
    279296    int32 sizes[] = {9, 10, 11, 12, 14, 16, 18, 0};
    280297
    281298    bool found = false;
     
    284301        BString string;
    285302        string << sizes[i];
    286303
    287         BMenuItem *item = new BMenuItem(string.String(), new BMessage(command));
     304        BMenuItem* item = new BMenuItem(string.String(), new BMessage(command));
    288305        menu->AddItem(item);
    289306
    290307        if (sizes[i] == defaultSize) {
     
    297314            if (sizes[i] > defaultSize) {
    298315                BString string;
    299316                string << defaultSize;
    300                 BMenuItem *item = new BMenuItem(string.String(), new BMessage(command));
     317                BMenuItem* item = new BMenuItem(string.String(), new BMessage(command));
    301318                item->SetMarked(true);
    302319                menu->AddItem(item, i);
    303320                break;
     
    310327
    311328
    312329/* static */
    313 BPopUpMenu *
    314 AppearancePrefView::_MakeMenu(uint32 msg, const char **items,
    315     const char *defaultItemName)
     330BPopUpMenu*
     331AppearancePrefView::_MakeMenu(uint32 msg, const char** items,
     332    const char* defaultItemName)
    316333{
    317     BPopUpMenu *menu = new BPopUpMenu("");
     334    BPopUpMenu* menu = new BPopUpMenu("");
    318335
    319336    int32 i = 0;
    320337    while (*items) {