Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 VA Outline improper display
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Esone
Tomato Guru

Russia
115 Posts

Posted - Oct 09 2008 :  05:45:15 AM  Show Profile  Reply with Quote
Excuse me code verbosity, but this code chunk is parsed wrong by VA Outline in the area of "#pragma warning(suppress: 4355)". Thanks! (VAX 1649)



// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "chrome/browser/history_tab_ui.h"

#include "base/string_util.h"
#include "chrome/app/theme/theme_resources.h"
#include "chrome/browser/history_model.h"
#include "chrome/browser/history_view.h"
#include "chrome/browser/user_metrics.h"
#include "chrome/common/l10n_util.h"
#include "chrome/common/resource_bundle.h"
#include "chrome/views/checkbox.h"
#include "net/base/escape.h"

#include "generated_resources.h"

// State key used to identify search text.
static const wchar_t kSearchTextKey[] = L"st";

// State key used for whether the search is for starred pages only.
static const wchar_t kStarredOnlyKey[] = L"starred_only";

// HistoryTabUIFactory ------------------------------------------------------

class HistoryTabUIFactory : public NativeUIFactory {
 public:
  HistoryTabUIFactory() {}
  virtual ~HistoryTabUIFactory() {}

  virtual NativeUI* CreateNativeUIForURL(const GURL& url,
                                         NativeUIContents* contents) {
    HistoryTabUI* tab_ui = new HistoryTabUI(contents);
    tab_ui->Init();
    return tab_ui;
  }

 private:
  DISALLOW_EVIL_CONSTRUCTORS(HistoryTabUIFactory);
};

// HistoryTabUI -------------------------------------------------------------

HistoryTabUI::HistoryTabUI(NativeUIContents* contents)
#pragma warning(suppress: 4355)  // Okay to pass "this" here.
    : searchable_container_(this),
      contents_(contents) {
}

void HistoryTabUI::Init() {
  model_ = CreateModel();
  searchable_container_.SetContents(CreateHistoryView());
}

const std::wstring HistoryTabUI::GetTitle() const {
  return l10n_util::GetString(IDS_HISTORY_TITLE);
}

const int HistoryTabUI::GetFavIconID() const {
  return IDR_HISTORY_FAVICON;
}

const int HistoryTabUI::GetSectionIconID() const {
  return IDR_HISTORY_SECTION;
}

const std::wstring HistoryTabUI::GetSearchButtonText() const {
  return l10n_util::GetString(IDS_HISTORY_SEARCH_BUTTON);
}

ChromeViews::View* HistoryTabUI::GetView() {
  return &searchable_container_;
}

void HistoryTabUI::WillBecomeVisible(NativeUIContents* parent) {
  UserMetrics::RecordAction(L"Destination_History", parent->profile());
}

void HistoryTabUI::WillBecomeInvisible(NativeUIContents* parent) {
}

void HistoryTabUI::Navigate(const PageState& state) {
  std::wstring search_text;
  state.GetProperty(kSearchTextKey, &search_text);
  // Make sure a query starts on navigation, that way if history has changed
  // since we last issued the query we'll show the right thing.
  if (model_->GetSearchText() == search_text)
    model_->Refresh();
  else
    model_->SetSearchText(search_text);
  searchable_container_.GetSearchField()->SetText(search_text);

  ChangedModel();
}

bool HistoryTabUI::SetInitialFocus() {
  searchable_container_.GetSearchField()->RequestFocus();
  return true;
}

// static
GURL HistoryTabUI::GetURL() {
  std::string spec(NativeUIContents::GetScheme());
  spec.append("://history");
  return GURL(spec);
}

// static
NativeUIFactory* HistoryTabUI::GetNativeUIFactory() {
  return new HistoryTabUIFactory();
}

// static
const GURL HistoryTabUI::GetHistoryURLWithSearchText(
    const std::wstring& text) {
  return GURL(GetURL().spec() + "/params?" + WideToUTF8(kSearchTextKey) + "=" +
              EscapeQueryParamValue(WideToUTF8(text)));
}

BaseHistoryModel* HistoryTabUI::CreateModel() {
  return new HistoryModel(contents_->profile(), std::wstring());
}

HistoryView* HistoryTabUI::CreateHistoryView() {
  return new HistoryView(&searchable_container_, model_, contents_);
}

void HistoryTabUI::ChangedModel() {
  HistoryView* history_view =
      static_cast<HistoryView*>(searchable_container_.GetContents());
  history_view->SetShowDeleteControls(model_->GetSearchText().empty());
  if (!model_->GetSearchText().empty())
    UserMetrics::RecordAction(L"History_Search", contents_->profile());
}

void HistoryTabUI::DoSearch(const std::wstring& text) {
  if (model_->GetSearchText() == text)
    return;

  model_->SetSearchText(text);

  // Update the page state.
  PageState* page_state = contents_->page_state().Copy();
  page_state->SetProperty(kSearchTextKey, text);
  contents_->SetPageState(page_state);

  ChangedModel();
}


feline
Whole Tomato Software

United Kingdom
19022 Posts

Posted - Oct 10 2008 :  4:39:31 PM  Show Profile  Reply with Quote
Interesting. After a bit of fiddling I have pinned down the problem. Our parser is confused by pre-processor directives after a function signature but before the first curly bracket, so this code also shows a problem:

class testThingsGenerally
{
    void FunctionWithDirective()
#pragma warning(suppress:28167)
    {
    }
};


Which is what is happening here, only on a constructor.

case=11545

zen is the art of being at one with the two'ness
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000