Ticket #254: 20070819 - Ticket 254c.diff

File 20070819 - Ticket 254c.diff, 16.0 KB (added by anxiety, 17 years ago)

Diff file, contains changes for Appearance, Menu, and Tracker

  • src/preferences/appearance/ColorSet.h

     
    3232        bool        ConvertFromMessage(const BMessage *msg);
    3333
    3434        void        SetToDefaults(void);
     35        bool        IsDefaultable(void);
    3536
    3637        rgb_color   StringToColor(const char *string);
    3738        rgb_color   AttributeToColor(int32 which);
  • src/preferences/appearance/APRView.cpp

     
    146146    fDefaults = new BButton(BRect(0,0,1,1),"DefaultsButton","Defaults",
    147147                            new BMessage(DEFAULT_SETTINGS),
    148148                            B_FOLLOW_LEFT |B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE);
    149     fDefaults->ResizeToPreferred();
     149    fDefaults->ResizeToPreferred();
     150    fDefaults->SetEnabled(false);
    150151    fDefaults->MoveTo((fPicker->Frame().right-(fDefaults->Frame().Width()*2)-20)/2,fPicker->Frame().bottom+20);
    151152    AddChild(fDefaults);
    152153   
     
    157158    fRevert = new BButton(cvrect,"RevertButton","Revert",
    158159                        new BMessage(REVERT_SETTINGS),
    159160                        B_FOLLOW_LEFT |B_FOLLOW_TOP, B_WILL_DRAW | B_NAVIGABLE);
     161    fRevert->SetEnabled(false);
    160162    AddChild(fRevert);
    161     fRevert->SetEnabled(false);
    162163   
    163164}
    164165
    165166APRView::~APRView(void)
    166167{
     168    //BPrivate::set_system_colors(&fCurrentSet);
    167169    ColorSet::SaveColorSet("/boot/home/config/settings/app_server/system_colors",fCurrentSet);
    168170}
    169171
     
    185187                       fDefaults->Frame().bottom + 10);
    186188    LoadSettings();
    187189    fAttrList->Select(0);
     190   
     191    fDefaults->SetEnabled(fCurrentSet.IsDefaultable());
    188192}
    189193
    190194void
     
    221225            // Update current fAttribute in the settings
    222226            fCurrentSet.SetColor(fAttrString.String(),col);
    223227           
     228            fDefaults->SetEnabled(fCurrentSet.IsDefaultable());
    224229            fRevert->SetEnabled(true);
    225230           
    226231            break;
     
    236241           
    237242            fAttrString=whichitem->Text();
    238243            UpdateControlsFromAttr(whichitem->Text());
     244
     245            fDefaults->SetEnabled(fCurrentSet.IsDefaultable());
    239246            break;
    240247        }
    241248        case REVERT_SETTINGS: {
     
    248255        }
    249256        case DEFAULT_SETTINGS: {
    250257            fCurrentSet.SetToDefaults();
     258            fDefaults->SetEnabled(false);
    251259           
    252260            UpdateControlsFromAttr(fAttrString.String());
    253261            BMenuItem *item = fDecorMenu->FindItem("Default");
     
    272280    // getting them from the server at this point for testing purposes.
    273281   
    274282    // Query the server for the current settings
    275     //BPrivate::get_system_colors(&fCurrentSet);
     283    // BPrivate::get_system_colors(&fCurrentSet);
    276284   
    277285    // TODO: remove this and enable the get_system_colors() call
    278286    if (ColorSet::LoadColorSet("/boot/home/config/settings/app_server/system_colors",&fCurrentSet) != B_OK) {
  • src/preferences/appearance/ColorSet.cpp

     
    2525    color.alpha = 255;
    2626}
    2727
     28static bool
     29match_rgb_color(rgb_color& color, uint8 red, uint8 green, uint8 blue)
     30{
     31    return color.red == red
     32        && color.green == green
     33        && color.blue == blue;
     34}
    2835
     36
    2937//  #pragma mark -
    3038
    3139
     
    173181}
    174182
    175183/*!
     184    \brief Checks if the ColorSet can be set to defaults.
     185*/
     186bool
     187ColorSet::IsDefaultable()
     188{
     189    return !match_rgb_color(panel_background, 216, 216, 216)
     190        || !match_rgb_color(panel_text, 0, 0, 0)
     191        || !match_rgb_color(document_background, 255, 255, 255)
     192        || !match_rgb_color(document_text, 0, 0, 0)
     193        || !match_rgb_color(control_background, 245, 245, 245)
     194        || !match_rgb_color(control_text, 0, 0, 0)
     195        || !match_rgb_color(control_border, 0, 0, 0)
     196        || !match_rgb_color(control_highlight, 102, 152, 203)
     197        || !match_rgb_color(keyboard_navigation_base, 0, 0, 229)
     198        || !match_rgb_color(keyboard_navigation_pulse, 0, 0, 0)
     199        || !match_rgb_color(shine, 255, 255, 255)
     200        || !match_rgb_color(shadow, 0, 0, 0)
     201        || !match_rgb_color(menu_background, 216, 216, 216)
     202        || !match_rgb_color(menu_selected_background, 115, 120, 184)
     203        || !match_rgb_color(menu_text, 0, 0, 0)
     204        || !match_rgb_color(menu_selected_text, 255, 255, 255)
     205        || !match_rgb_color(menu_selected_border, 0, 0, 0)
     206        || !match_rgb_color(tooltip_background, 255, 255, 0)
     207        || !match_rgb_color(tooltip_text, 0, 0, 0)
     208        || !match_rgb_color(success, 0, 255, 0)
     209        || !match_rgb_color(failure, 255, 0, 0)
     210        || !match_rgb_color(window_tab, 255, 203, 0)
     211        || !match_rgb_color(window_tab_text, 0, 0, 0)
     212        || !match_rgb_color(inactive_window_tab, 232, 232, 232)
     213        || !match_rgb_color(inactive_window_tab_text, 80, 80, 80);
     214}
     215
     216/*!
    176217    \brief Attaches the color set's members as data to the given BMessage
    177218    \param msg The message to receive the attributes
    178219*/
  • src/preferences/menu/MenuWindow.h

     
    2525        virtual void MessageReceived(BMessage *message);
    2626        virtual bool QuitRequested();
    2727
    28         void Update();
    29         void Defaults();
    30 
    3128    private:   
    32         bool        fRevert;
    33         ColorWindow* fColorWindow;
    34         MenuBar*    fMenuBar;
    35         BButton*    fRevertButton;
     29        ColorWindow*    fColorWindow;
     30        MenuBar*        fMenuBar;
     31        BButton*        fDefaultsButton;
     32        BButton*        fRevertButton;
    3633};
    3734
    3835#endif  // MENU_WINDOW_H
  • src/preferences/menu/MenuSettings.cpp

     
    7474    set_menu_info(&fDefaultSettings);
    7575}
    7676
     77
     78bool
     79MenuSettings::IsDefaultable()
     80{
     81    menu_info info;
     82    get_menu_info(&info);
     83
     84    return info.font_size !=  fDefaultSettings.font_size
     85        || info.background_color != fDefaultSettings.background_color
     86        || info.separator != fDefaultSettings.separator
     87        || info.click_to_open != fDefaultSettings.click_to_open
     88        || info.triggers_always_shown != fDefaultSettings.triggers_always_shown;
     89}
     90
  • src/preferences/menu/MenuSettings.h

     
    2121
    2222        void Revert();
    2323        void ResetToDefaults();
     24        bool IsDefaultable();
    2425
    2526    private:
    2627        MenuSettings();
  • src/preferences/menu/MenuWindow.cpp

     
    3131        B_NOT_ZOOMABLE | B_NOT_RESIZABLE | B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE)
    3232{
    3333    fColorWindow = NULL;
    34     fRevert = false;
    3534
    3635    BView* topView = new BView(Bounds(), "menuView", B_FOLLOW_ALL_SIDES,
    3736        B_WILL_DRAW);
     
    4847    BRect buttonFrame(menuBarFrame.left, menuBarFrame.bottom + 10,
    4948        menuBarFrame.left + 75, menuBarFrame.bottom + 30);
    5049
    51     BButton* defaultButton = new BButton(buttonFrame, "Default", "Defaults",
     50    fDefaultsButton = new BButton(buttonFrame, "Default", "Defaults",
    5251        new BMessage(MENU_DEFAULT), B_FOLLOW_H_CENTER | B_FOLLOW_BOTTOM,
    5352        B_WILL_DRAW | B_NAVIGABLE);
    54     topView->AddChild(defaultButton);
     53    fDefaultsButton->SetEnabled(false);
     54    topView->AddChild(fDefaultsButton);
    5555
    5656    buttonFrame.OffsetBy(buttonFrame.Width() + 20, 0);
    5757    fRevertButton = new BButton(buttonFrame, "Revert", "Revert", new BMessage(MENU_REVERT),
     
    6060    topView->AddChild(fRevertButton);
    6161
    6262    topView->MakeFocus();
    63 
    64     Update();   
     63    fMenuBar->Update();
    6564}
    6665
    6766
     
    7372
    7473    switch (msg->what) {
    7574        case MENU_REVERT:
    76             fRevert = false;
    7775            settings->Revert();
    78             Update();
     76
     77            fRevertButton->SetEnabled(false);
     78            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     79            fMenuBar->Update();
    7980            break;
    8081
    8182        case MENU_DEFAULT:
    82             fRevert = true;
    8383            settings->ResetToDefaults();
    84             Update();
     84
     85            fDefaultsButton->SetEnabled(false);
     86            fMenuBar->Update();
    8587            break;
    8688
    8789        case UPDATE_WINDOW:
    88             Update();
     90            fMenuBar->Update();
    8991            break;
    9092
    9193        case MENU_FONT_FAMILY:
    9294        case MENU_FONT_STYLE:
    9395        {
    94             fRevert = true;
    9596            const font_family *family;
    9697            msg->FindString("family", (const char **)&family);
    9798            const font_style *style;
     
    101102            strlcpy(info.f_family, (const char *)family, B_FONT_FAMILY_LENGTH);
    102103            strlcpy(info.f_style, (const char *)style, B_FONT_STYLE_LENGTH);
    103104            settings->Set(info);
    104             Update();
     105
     106            fRevertButton->SetEnabled(true);
     107            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     108            fMenuBar->Update();
    105109            break;
    106110        }
    107111
    108112        case MENU_FONT_SIZE:
    109             fRevert = true;
    110113            settings->Get(info);
    111114            msg->FindFloat("size", &info.font_size);
    112115            settings->Set(info);
    113             Update();
     116
     117            fRevertButton->SetEnabled(true);
     118            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     119            fMenuBar->Update();
    114120            break;
    115121
    116122        case ALLWAYS_TRIGGERS_MSG:
    117             fRevert = true;
    118123            settings->Get(info);
    119124            info.triggers_always_shown = !info.triggers_always_shown;
    120125            settings->Set(info);
     126
     127            fRevertButton->SetEnabled(true);
     128            fDefaultsButton->SetEnabled(settings->IsDefaultable());
    121129            fMenuBar->UpdateMenu();
    122             Update();
     130            fMenuBar->Update();
    123131            break;
    124132
    125133        case CTL_MARKED_MSG:
    126             fRevert = true;
    127134            // This might not be the same for all keyboards
    128135            set_modifier_key(B_LEFT_COMMAND_KEY, 0x5c);
    129136            set_modifier_key(B_RIGHT_COMMAND_KEY, 0x60);
    130137            set_modifier_key(B_LEFT_CONTROL_KEY, 0x5d);
    131138            set_modifier_key(B_RIGHT_OPTION_KEY, 0x5f);
    132139            be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED));
    133             Update();
     140
     141            fRevertButton->SetEnabled(true);
     142            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     143            fMenuBar->Update();
    134144            break;
    135145
    136146        case ALT_MARKED_MSG:
    137             fRevert = true;
     147
    138148            // This might not be the same for all keyboards
    139149            set_modifier_key(B_LEFT_COMMAND_KEY, 0x5d);
    140150            set_modifier_key(B_RIGHT_COMMAND_KEY, 0x5f);
     
    142152            set_modifier_key(B_RIGHT_OPTION_KEY, 0x60);
    143153
    144154            be_roster->Broadcast(new BMessage(B_MODIFIERS_CHANGED));
    145             Update();
     155
     156            fRevertButton->SetEnabled(true);
     157            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     158            fMenuBar->Update();
    146159            break;
    147160
    148161        case COLOR_SCHEME_OPEN_MSG:
     
    158171            break;
    159172
    160173        case MENU_COLOR:
    161             fRevert = true;
    162             Update();
     174            fRevertButton->SetEnabled(true);
     175            fDefaultsButton->SetEnabled(settings->IsDefaultable());
     176            fMenuBar->Update();
    163177            break;
    164178
    165179        default:
     
    180194    return true;
    181195}
    182196
    183 
    184 void
    185 MenuWindow::Update()
    186 {
    187     fRevertButton->SetEnabled(fRevert);
    188 
    189     // alert the rest of the application to update 
    190     fMenuBar->Update();
    191 }
    192 
  • src/kits/tracker/SettingsViews.cpp

     
    9393
    9494
    9595/*!
     96    This function is used by the window to tell whether
     97    it can ghost the defaults button or not. It doesn't
     98    shows the default settings, this function should
     99    return true.
     100*/
     101bool
     102SettingsView::IsDefaultable() const
     103{
     104    return true;
     105}
     106
     107
     108/*!
    96109    The inherited functions should set the values that was
    97110    active when the settings window opened. It should also
    98111    update the UI widgets accordingly, preferrable by calling
     
    317330}
    318331
    319332
     333bool
     334DesktopSettingsView::IsDefaultable() const
     335{
     336    TrackerSettings settings;
     337
     338    return settings.ShowDisksIcon() != false
     339        || settings.MountVolumesOntoDesktop() != true
     340        || settings.MountSharedVolumesOntoDesktop() != true
     341        || settings.IntegrateNonBootBeOSDesktops() != false
     342        || settings.EjectWhenUnmounting() != true;
     343}
     344
     345
    320346void
    321347DesktopSettingsView::Revert()
    322348{
     
    570596}
    571597
    572598
     599bool
     600WindowsSettingsView::IsDefaultable() const
     601{
     602    TrackerSettings settings;
     603
     604    return settings.ShowFullPathInTitleBar() != false
     605        || settings.SingleWindowBrowse() != false
     606        || settings.ShowNavigator() != false
     607        || settings.TransparentSelection() != true
     608        || settings.SortFolderNamesFirst() != true;
     609}
     610
     611
    573612void
    574613WindowsSettingsView::Revert()
    575614{
     
    843882}
    844883
    845884
     885bool
     886TimeFormatSettingsView::IsDefaultable() const
     887{
     888    TrackerSettings settings;
     889
     890    return settings.TimeFormatSeparator() != kSlashSeparator
     891        || settings.DateOrderFormat() != kMDYFormat
     892        || settings.ClockIs24Hr() != false;
     893}
     894
     895
    846896void
    847897TimeFormatSettingsView::Revert()
    848898{
     
    11461196}
    11471197
    11481198
     1199bool
     1200SpaceBarSettingsView::IsDefaultable() const
     1201{
     1202    TrackerSettings settings;
     1203
     1204    return settings.ShowVolumeSpaceBar() != false
     1205        || settings.UsedSpaceColor() != Color(0, 203, 0, 192)
     1206        || settings.FreeSpaceColor() != Color(255, 255, 255, 192)
     1207        || settings.WarningSpaceColor() != Color(203, 0, 0, 192);
     1208}
     1209
     1210
    11491211void
    11501212SpaceBarSettingsView::Revert()
    11511213{
     
    13071369}
    13081370
    13091371
     1372bool
     1373TrashSettingsView::IsDefaultable() const
     1374{
     1375    TrackerSettings settings;
     1376
     1377    return settings.DontMoveFilesToTrash() != false
     1378        || settings.AskBeforeDeleteFile() != true;
     1379}
     1380
     1381
    13101382void
    13111383TrashSettingsView::Revert()
    13121384{
  • src/kits/tracker/TrackerSettingsWindow.cpp

     
    8888    fDefaultsButton = new BButton(rect, "Defaults", "Defaults",
    8989        new BMessage(kDefaultsButtonPressed), B_FOLLOW_LEFT | B_FOLLOW_BOTTOM);
    9090    fDefaultsButton->ResizeToPreferred();
     91    fDefaultsButton->SetEnabled(false);
    9192    fDefaultsButton->MoveBy(0, -fDefaultsButton->Bounds().Height());
    9293    topView->AddChild(fDefaultsButton);
    9394
     
    240241{
    241242    int32 itemCount = fSettingsTypeListView->CountItems();
    242243
     244    bool defaultable = false;
    243245    bool revertable = false;
    244246
    245247    for (int32 i = 0; i < itemCount; i++) {
     248        defaultable |= _ViewAt(i)->IsDefaultable();
    246249        revertable |= _ViewAt(i)->IsRevertable();
    247250    }
    248251
    249     fSettingsTypeListView->Invalidate();   
     252    fSettingsTypeListView->Invalidate();
     253    fDefaultsButton->SetEnabled(defaultable);
    250254    fRevertButton->SetEnabled(revertable);
    251255
    252256    TrackerSettings().SaveSettings(false);
     
    258262{
    259263    int32 itemCount = fSettingsTypeListView->CountItems();
    260264   
    261     for (int32 i = 0; i < itemCount; i++)
    262         _ViewAt(i)->SetDefaults();
     265    for (int32 i = 0; i < itemCount; i++) {
     266        if (_ViewAt(i)->IsDefaultable())
     267            _ViewAt(i)->SetDefaults();
     268    }
    263269
    264270    _HandleChangedContents();
    265271}
  • src/kits/tracker/SettingsViews.h

     
    5757        virtual ~SettingsView();
    5858
    5959        virtual void SetDefaults();
     60        virtual bool IsDefaultable() const;
    6061        virtual void Revert();
    6162        virtual void ShowCurrentSettings();
    6263        virtual void RecordRevertSettings();
     
    7576        virtual void GetPreferredSize(float *_width, float *_height);
    7677
    7778        virtual void SetDefaults();
     79        virtual bool IsDefaultable() const;
    7880        virtual void Revert();
    7981        virtual void ShowCurrentSettings();
    8082        virtual void RecordRevertSettings();
     
    108110        virtual void GetPreferredSize(float *_width, float *_height);
    109111
    110112        virtual void SetDefaults();
     113        virtual bool IsDefaultable() const;
    111114        virtual void Revert();
    112115        virtual void ShowCurrentSettings();
    113116        virtual void RecordRevertSettings();
     
    139142        virtual void GetPreferredSize(float *_width, float *_height);
    140143
    141144        virtual void SetDefaults();
     145        virtual bool IsDefaultable() const;
    142146        virtual void Revert();
    143147        virtual void ShowCurrentSettings();
    144148        virtual void RecordRevertSettings();
     
    178182        virtual void GetPreferredSize(float *_width, float *_height);
    179183
    180184        virtual void SetDefaults();
     185        virtual bool IsDefaultable() const;
    181186        virtual void Revert();
    182187        virtual void ShowCurrentSettings();
    183188        virtual void RecordRevertSettings();
     
    206211        virtual void GetPreferredSize(float *_width, float *_height);
    207212
    208213        virtual void SetDefaults();
     214        virtual bool IsDefaultable() const;
    209215        virtual void Revert();
    210216        virtual void ShowCurrentSettings();
    211217        virtual void RecordRevertSettings();