Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(329)

Side by Side Diff: components/app_modal_dialogs/app_modal_dialog.h

Issue 735473002: Rename app_modal_dialogs dir to app_modal (Closed) Base URL: https://chromium.googlesource.com/chromium/src@master
Patch Set: rebase Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « components/app_modal_dialogs/OWNERS ('k') | components/app_modal_dialogs/app_modal_dialog.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef COMPONENTS_APP_MODAL_DIALOGS_APP_MODAL_DIALOG_H_
6 #define COMPONENTS_APP_MODAL_DIALOGS_APP_MODAL_DIALOG_H_
7
8 #include <string>
9
10 #include "base/basictypes.h"
11 #include "base/strings/string16.h"
12 #include "build/build_config.h"
13
14 class NativeAppModalDialog;
15
16 namespace content {
17 class WebContents;
18 }
19
20 // A controller+model base class for modal dialogs.
21 class AppModalDialog {
22 public:
23 // A union of data necessary to determine the type of message box to
24 // show.
25 AppModalDialog(content::WebContents* web_contents,
26 const base::string16& title);
27 virtual ~AppModalDialog();
28
29 // Called by the AppModalDialogQueue to show this dialog.
30 void ShowModalDialog();
31
32 // Called by the AppModalDialogQueue to activate the dialog.
33 void ActivateModalDialog();
34
35 // Closes the dialog if it is showing.
36 void CloseModalDialog();
37
38 // Completes dialog handling, shows next modal dialog from the queue.
39 // TODO(beng): Get rid of this method.
40 void CompleteDialog();
41
42 base::string16 title() const { return title_; }
43 NativeAppModalDialog* native_dialog() const { return native_dialog_; }
44 content::WebContents* web_contents() const { return web_contents_; }
45
46 // Creates an implementation of NativeAppModalDialog and shows it.
47 // When the native dialog is closed, the implementation of
48 // NativeAppModalDialog should call OnAccept or OnCancel to notify the
49 // renderer of the user's action. The NativeAppModalDialog is also
50 // expected to delete the AppModalDialog associated with it.
51 void CreateAndShowDialog();
52
53 // Returns true if the dialog is still valid. As dialogs are created they are
54 // added to the AppModalDialogQueue. When the current modal dialog finishes
55 // and it's time to show the next dialog in the queue IsValid is invoked.
56 // If IsValid returns false the dialog is deleted and not shown.
57 bool IsValid();
58
59 // Methods overridable by AppModalDialog subclasses:
60
61 // Invalidates the dialog, therefore causing it to not be shown when its turn
62 // to be shown comes around.
63 virtual void Invalidate();
64
65 // Used only for testing. Returns whether the dialog is a JavaScript modal
66 // dialog.
67 virtual bool IsJavaScriptModalDialog();
68
69 protected:
70 // Overridden by subclasses to create the feature-specific native dialog box.
71 virtual NativeAppModalDialog* CreateNativeDialog() = 0;
72
73 private:
74 // Information about the message box is held in the following variables.
75 base::string16 title_;
76
77 // True if CompleteDialog was called.
78 bool completed_;
79
80 // False if the dialog should no longer be shown, e.g. because the underlying
81 // tab navigated away while the dialog was queued.
82 bool valid_;
83
84 // The toolkit-specific implementation of the app modal dialog box.
85 NativeAppModalDialog* native_dialog_;
86
87 content::WebContents* web_contents_;
88
89 DISALLOW_COPY_AND_ASSIGN(AppModalDialog);
90 };
91
92 // An interface to observe that a modal dialog is shown.
93 class AppModalDialogObserver {
94 public:
95 AppModalDialogObserver();
96 virtual ~AppModalDialogObserver();
97
98 // Called when the modal dialog is shown.
99 virtual void Notify(AppModalDialog* dialog) = 0;
100
101 private:
102 DISALLOW_COPY_AND_ASSIGN(AppModalDialogObserver);
103 };
104
105 #endif // COMPONENTS_APP_MODAL_DIALOGS_APP_MODAL_DIALOG_H_
OLDNEW
« no previous file with comments | « components/app_modal_dialogs/OWNERS ('k') | components/app_modal_dialogs/app_modal_dialog.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698