28e2075280
trunk/talk git-svn-id: http://webrtc.googlecode.com/svn/trunk@4318 4adac7df-926f-26a2-2b94-8c16560cd09d
79 lines
2.3 KiB
C++
79 lines
2.3 KiB
C++
// Copyright 2010 Google Inc. All Rights Reserved
|
|
|
|
// thorcarpenter@google.com (Thor Carpenter)
|
|
|
|
#ifndef TALK_BASE_WINDOWPICKER_H_
|
|
#define TALK_BASE_WINDOWPICKER_H_
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "talk/base/window.h"
|
|
|
|
namespace talk_base {
|
|
|
|
class WindowDescription {
|
|
public:
|
|
WindowDescription() : id_() {}
|
|
WindowDescription(const WindowId& id, const std::string& title)
|
|
: id_(id), title_(title) {
|
|
}
|
|
const WindowId& id() const { return id_; }
|
|
void set_id(const WindowId& id) { id_ = id; }
|
|
const std::string& title() const { return title_; }
|
|
void set_title(const std::string& title) { title_ = title; }
|
|
|
|
private:
|
|
WindowId id_;
|
|
std::string title_;
|
|
};
|
|
|
|
class DesktopDescription {
|
|
public:
|
|
DesktopDescription() : id_() {}
|
|
DesktopDescription(const DesktopId& id, const std::string& title)
|
|
: id_(id), title_(title), primary_(false) {
|
|
}
|
|
const DesktopId& id() const { return id_; }
|
|
void set_id(const DesktopId& id) { id_ = id; }
|
|
const std::string& title() const { return title_; }
|
|
void set_title(const std::string& title) { title_ = title; }
|
|
// Indicates whether it is the primary desktop in the system.
|
|
bool primary() const { return primary_; }
|
|
void set_primary(bool primary) { primary_ = primary; }
|
|
|
|
private:
|
|
DesktopId id_;
|
|
std::string title_;
|
|
bool primary_;
|
|
};
|
|
|
|
typedef std::vector<WindowDescription> WindowDescriptionList;
|
|
typedef std::vector<DesktopDescription> DesktopDescriptionList;
|
|
|
|
class WindowPicker {
|
|
public:
|
|
virtual ~WindowPicker() {}
|
|
virtual bool Init() = 0;
|
|
|
|
// TODO: Move this two methods to window.h when we no longer need to load
|
|
// CoreGraphics dynamically.
|
|
virtual bool IsVisible(const WindowId& id) = 0;
|
|
virtual bool MoveToFront(const WindowId& id) = 0;
|
|
|
|
// Gets a list of window description and appends to descriptions.
|
|
// Returns true if successful.
|
|
virtual bool GetWindowList(WindowDescriptionList* descriptions) = 0;
|
|
// Gets a list of desktop descriptions and appends to descriptions.
|
|
// Returns true if successful.
|
|
virtual bool GetDesktopList(DesktopDescriptionList* descriptions) = 0;
|
|
// Gets the width and height of a desktop.
|
|
// Returns true if successful.
|
|
virtual bool GetDesktopDimensions(const DesktopId& id, int* width,
|
|
int* height) = 0;
|
|
};
|
|
|
|
} // namespace talk_base
|
|
|
|
#endif // TALK_BASE_WINDOWPICKER_H_
|