| Index: chrome/browser/ui/gtk/options/content_exception_editor.h
|
| diff --git a/chrome/browser/ui/gtk/options/content_exception_editor.h b/chrome/browser/ui/gtk/options/content_exception_editor.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..b52602ebf03708adafb3c463f64c7c5c63847b70
|
| --- /dev/null
|
| +++ b/chrome/browser/ui/gtk/options/content_exception_editor.h
|
| @@ -0,0 +1,81 @@
|
| +// Copyright (c) 2010 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.
|
| +
|
| +#ifndef CHROME_BROWSER_UI_GTK_OPTIONS_CONTENT_EXCEPTION_EDITOR_H_
|
| +#define CHROME_BROWSER_UI_GTK_OPTIONS_CONTENT_EXCEPTION_EDITOR_H_
|
| +#pragma once
|
| +
|
| +#include <gtk/gtk.h>
|
| +
|
| +#include "app/gtk_signal.h"
|
| +#include "chrome/browser/content_exceptions_table_model.h"
|
| +#include "chrome/browser/content_setting_combo_model.h"
|
| +#include "chrome/common/content_settings.h"
|
| +#include "chrome/common/content_settings_types.h"
|
| +
|
| +// An editor which lets the user create or edit an individual exception to the
|
| +// current content setting policy. (i.e. let www.google.com always show
|
| +// images). Modal to parent.
|
| +class ContentExceptionEditor {
|
| + public:
|
| + class Delegate {
|
| + public:
|
| + // Invoked when the user accepts the edit.
|
| + virtual void AcceptExceptionEdit(
|
| + const ContentSettingsPattern& pattern,
|
| + ContentSetting setting,
|
| + bool is_off_the_record,
|
| + int index,
|
| + bool is_new) = 0;
|
| +
|
| + protected:
|
| + virtual ~Delegate() {}
|
| + };
|
| +
|
| + ContentExceptionEditor(GtkWindow* parent,
|
| + Delegate* delegate,
|
| + ContentExceptionsTableModel* model,
|
| + bool allow_off_the_record,
|
| + int index,
|
| + const ContentSettingsPattern& pattern,
|
| + ContentSetting setting,
|
| + bool is_off_the_record);
|
| + virtual ~ContentExceptionEditor() {}
|
| +
|
| + private:
|
| + // Returns true if we're adding a new item.
|
| + bool is_new() const { return index_ == -1; }
|
| +
|
| + bool IsPatternValid(const ContentSettingsPattern& pattern,
|
| + bool is_off_the_record) const;
|
| +
|
| + void UpdateImage(GtkWidget* image, bool is_valid);
|
| +
|
| + // GTK callbacks
|
| + CHROMEGTK_CALLBACK_0(ContentExceptionEditor, void, OnEntryChanged);
|
| + CHROMEGTK_CALLBACK_1(ContentExceptionEditor, void, OnResponse, int);
|
| + CHROMEGTK_CALLBACK_0(ContentExceptionEditor, void, OnWindowDestroy);
|
| +
|
| + Delegate* delegate_;
|
| + ContentExceptionsTableModel* model_;
|
| +
|
| + // The model for Combobox widget.
|
| + ContentSettingComboModel cb_model_;
|
| +
|
| + // Index of the item being edited. If -1, indicates this is a new entry.
|
| + const int index_;
|
| + const ContentSettingsPattern pattern_;
|
| + const ContentSetting setting_;
|
| +
|
| + // UI widgets.
|
| + GtkWidget* dialog_;
|
| + GtkWidget* entry_;
|
| + GtkWidget* pattern_image_;
|
| + GtkWidget* action_combo_;
|
| + GtkWidget* otr_checkbox_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ContentExceptionEditor);
|
| +};
|
| +
|
| +#endif // CHROME_BROWSER_UI_GTK_OPTIONS_CONTENT_EXCEPTION_EDITOR_H_
|
|
|