electron/atom/browser/browser.h

116 lines
2.9 KiB
C
Raw Normal View History

// Copyright (c) 2013 GitHub, Inc. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef ATOM_BROWSER_BROWSER_H_
#define ATOM_BROWSER_BROWSER_H_
#include <string>
#include "base/basictypes.h"
#include "base/compiler_specific.h"
#include "base/observer_list.h"
2014-03-16 00:30:26 +00:00
#include "atom/browser/browser_observer.h"
#include "atom/browser/window_list_observer.h"
namespace atom {
// This class is used for control application-wide operations.
class Browser : public WindowListObserver {
public:
Browser();
~Browser();
static Browser* Get();
// Try to close all windows and quit the application.
void Quit();
// Quit the application immediately without cleanup work.
void Terminate();
2013-05-30 11:24:47 +00:00
// Focus the application.
void Focus();
// Returns the version of the executable (or bundle).
2013-12-05 02:26:01 +00:00
std::string GetVersion() const;
// Overrides the application version.
void SetVersion(const std::string& version);
// Returns the application's name, default is just Atom-Shell.
std::string GetName() const;
// Overrides the application name.
void SetName(const std::string& name);
2013-08-06 08:19:56 +00:00
#if defined(OS_MACOSX)
// Bounce the dock icon.
enum BounceType {
BOUNCE_CRITICAL = 0,
BOUNCE_INFORMATIONAL = 10,
};
int DockBounce(BounceType type);
void DockCancelBounce(int request_id);
2013-08-06 08:39:31 +00:00
// Set/Get dock's badge text.
2013-08-06 08:19:56 +00:00
void DockSetBadgeText(const std::string& label);
2013-08-06 08:39:31 +00:00
std::string DockGetBadgeText();
2013-08-06 08:19:56 +00:00
#endif // defined(OS_MACOSX)
// Tell the application to open a file.
bool OpenFile(const std::string& file_path);
// Tell the application to open a url.
void OpenURL(const std::string& url);
// Tell the application that application is activated with no open windows.
void ActivateWithNoOpenWindows();
// Tell the application the loading has been done.
void WillFinishLaunching();
void DidFinishLaunching();
void AddObserver(BrowserObserver* obs) {
observers_.AddObserver(obs);
}
void RemoveObserver(BrowserObserver* obs) {
observers_.RemoveObserver(obs);
}
bool is_quiting() const { return is_quiting_; }
protected:
2013-12-05 02:26:01 +00:00
// Returns the version of application bundle or executable file.
std::string GetExecutableFileVersion() const;
// Returns the name of application bundle or executable file.
std::string GetExecutableFileProductName() const;
// Send the will-quit message and then terminate the application.
void NotifyAndTerminate();
// Tell the system we have cancelled quiting.
void CancelQuit();
bool is_quiting_;
private:
// WindowListObserver implementations:
virtual void OnWindowCloseCancelled(NativeWindow* window) OVERRIDE;
virtual void OnWindowAllClosed() OVERRIDE;
// Observers of the browser.
ObserverList<BrowserObserver> observers_;
2013-12-05 02:26:01 +00:00
std::string version_override_;
std::string name_override_;
2013-12-05 02:26:01 +00:00
DISALLOW_COPY_AND_ASSIGN(Browser);
};
} // namespace atom
#endif // ATOM_BROWSER_BROWSER_H_