blob: 0b776aef02be2d0c6732a7ff16e3a2f26a65b8e9 [file] [log] [blame]
// Copyright 2021 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.
// This file was automatically generated with:
// ../../ui/gfx/x/gen_xproto.py \
// ../../third_party/xcbproto/src \
// gen/ui/gfx/x \
// bigreq \
// composite \
// damage \
// dpms \
// dri2 \
// dri3 \
// ge \
// glx \
// present \
// randr \
// record \
// render \
// res \
// screensaver \
// shape \
// shm \
// sync \
// xc_misc \
// xevie \
// xf86dri \
// xf86vidmode \
// xfixes \
// xinerama \
// xinput \
// xkb \
// xprint \
// xproto \
// xselinux \
// xtest \
// xv \
// xvmc
#ifndef UI_GFX_X_GENERATED_PROTOS_XPRINT_H_
#define UI_GFX_X_GENERATED_PROTOS_XPRINT_H_
#include <array>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <vector>
#include "base/component_export.h"
#include "base/files/scoped_file.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_refptr.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/x/error.h"
#include "ui/gfx/x/ref_counted_fd.h"
#include "xproto.h"
namespace x11 {
class Connection;
template <typename Reply>
struct Response;
template <typename Reply>
class Future;
class COMPONENT_EXPORT(X11) XPrint {
public:
static constexpr unsigned major_version = 1;
static constexpr unsigned minor_version = 0;
XPrint(Connection* connection, const x11::QueryExtensionReply& info);
uint8_t present() const { return info_.present; }
uint8_t major_opcode() const { return info_.major_opcode; }
uint8_t first_event() const { return info_.first_event; }
uint8_t first_error() const { return info_.first_error; }
Connection* connection() const { return connection_; }
enum class String8 : char {};
enum class PContext : uint32_t {};
enum class GetDoc : int {
Finished = 0,
SecondConsumer = 1,
};
enum class EvMask : int {
NoEventMask = 0,
PrintMask = 1 << 0,
AttributeMask = 1 << 1,
};
enum class Detail : int {
StartJobNotify = 1,
EndJobNotify = 2,
StartDocNotify = 3,
EndDocNotify = 4,
StartPageNotify = 5,
EndPageNotify = 6,
};
enum class Attr : int {
JobAttr = 1,
DocAttr = 2,
PageAttr = 3,
PrinterAttr = 4,
ServerAttr = 5,
MediumAttr = 6,
SpoolerAttr = 7,
};
struct Printer {
std::vector<String8> name{};
std::vector<String8> description{};
};
struct NotifyEvent {
static constexpr int type_id = 50;
static constexpr uint8_t opcode = 0;
bool send_event{};
uint8_t detail{};
uint16_t sequence{};
PContext context{};
uint8_t cancel{};
x11::Window* GetWindow() { return nullptr; }
};
struct AttributNotifyEvent {
static constexpr int type_id = 51;
static constexpr uint8_t opcode = 1;
bool send_event{};
uint8_t detail{};
uint16_t sequence{};
PContext context{};
x11::Window* GetWindow() { return nullptr; }
};
struct BadContextError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadSequenceError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct PrintQueryVersionRequest {};
struct PrintQueryVersionReply {
uint16_t sequence{};
uint16_t major_version{};
uint16_t minor_version{};
};
using PrintQueryVersionResponse = Response<PrintQueryVersionReply>;
Future<PrintQueryVersionReply> PrintQueryVersion(
const PrintQueryVersionRequest& request);
Future<PrintQueryVersionReply> PrintQueryVersion();
struct PrintGetPrinterListRequest {
std::vector<String8> printer_name{};
std::vector<String8> locale{};
};
struct PrintGetPrinterListReply {
uint16_t sequence{};
std::vector<Printer> printers{};
};
using PrintGetPrinterListResponse = Response<PrintGetPrinterListReply>;
Future<PrintGetPrinterListReply> PrintGetPrinterList(
const PrintGetPrinterListRequest& request);
Future<PrintGetPrinterListReply> PrintGetPrinterList(
const std::vector<String8>& printer_name = {},
const std::vector<String8>& locale = {});
struct PrintRehashPrinterListRequest {};
using PrintRehashPrinterListResponse = Response<void>;
Future<void> PrintRehashPrinterList(
const PrintRehashPrinterListRequest& request);
Future<void> PrintRehashPrinterList();
struct CreateContextRequest {
uint32_t context_id{};
std::vector<String8> printerName{};
std::vector<String8> locale{};
};
using CreateContextResponse = Response<void>;
Future<void> CreateContext(const CreateContextRequest& request);
Future<void> CreateContext(const uint32_t& context_id = {},
const std::vector<String8>& printerName = {},
const std::vector<String8>& locale = {});
struct PrintSetContextRequest {
uint32_t context{};
};
using PrintSetContextResponse = Response<void>;
Future<void> PrintSetContext(const PrintSetContextRequest& request);
Future<void> PrintSetContext(const uint32_t& context = {});
struct PrintGetContextRequest {};
struct PrintGetContextReply {
uint16_t sequence{};
uint32_t context{};
};
using PrintGetContextResponse = Response<PrintGetContextReply>;
Future<PrintGetContextReply> PrintGetContext(
const PrintGetContextRequest& request);
Future<PrintGetContextReply> PrintGetContext();
struct PrintDestroyContextRequest {
uint32_t context{};
};
using PrintDestroyContextResponse = Response<void>;
Future<void> PrintDestroyContext(const PrintDestroyContextRequest& request);
Future<void> PrintDestroyContext(const uint32_t& context = {});
struct PrintGetScreenOfContextRequest {};
struct PrintGetScreenOfContextReply {
uint16_t sequence{};
Window root{};
};
using PrintGetScreenOfContextResponse =
Response<PrintGetScreenOfContextReply>;
Future<PrintGetScreenOfContextReply> PrintGetScreenOfContext(
const PrintGetScreenOfContextRequest& request);
Future<PrintGetScreenOfContextReply> PrintGetScreenOfContext();
struct PrintStartJobRequest {
uint8_t output_mode{};
};
using PrintStartJobResponse = Response<void>;
Future<void> PrintStartJob(const PrintStartJobRequest& request);
Future<void> PrintStartJob(const uint8_t& output_mode = {});
struct PrintEndJobRequest {
uint8_t cancel{};
};
using PrintEndJobResponse = Response<void>;
Future<void> PrintEndJob(const PrintEndJobRequest& request);
Future<void> PrintEndJob(const uint8_t& cancel = {});
struct PrintStartDocRequest {
uint8_t driver_mode{};
};
using PrintStartDocResponse = Response<void>;
Future<void> PrintStartDoc(const PrintStartDocRequest& request);
Future<void> PrintStartDoc(const uint8_t& driver_mode = {});
struct PrintEndDocRequest {
uint8_t cancel{};
};
using PrintEndDocResponse = Response<void>;
Future<void> PrintEndDoc(const PrintEndDocRequest& request);
Future<void> PrintEndDoc(const uint8_t& cancel = {});
struct PrintPutDocumentDataRequest {
Drawable drawable{};
std::vector<uint8_t> data{};
std::vector<String8> doc_format{};
std::vector<String8> options{};
};
using PrintPutDocumentDataResponse = Response<void>;
Future<void> PrintPutDocumentData(const PrintPutDocumentDataRequest& request);
Future<void> PrintPutDocumentData(const Drawable& drawable = {},
const std::vector<uint8_t>& data = {},
const std::vector<String8>& doc_format = {},
const std::vector<String8>& options = {});
struct PrintGetDocumentDataRequest {
PContext context{};
uint32_t max_bytes{};
};
struct PrintGetDocumentDataReply {
uint16_t sequence{};
uint32_t status_code{};
uint32_t finished_flag{};
std::vector<uint8_t> data{};
};
using PrintGetDocumentDataResponse = Response<PrintGetDocumentDataReply>;
Future<PrintGetDocumentDataReply> PrintGetDocumentData(
const PrintGetDocumentDataRequest& request);
Future<PrintGetDocumentDataReply> PrintGetDocumentData(
const PContext& context = {},
const uint32_t& max_bytes = {});
struct PrintStartPageRequest {
Window window{};
};
using PrintStartPageResponse = Response<void>;
Future<void> PrintStartPage(const PrintStartPageRequest& request);
Future<void> PrintStartPage(const Window& window = {});
struct PrintEndPageRequest {
uint8_t cancel{};
};
using PrintEndPageResponse = Response<void>;
Future<void> PrintEndPage(const PrintEndPageRequest& request);
Future<void> PrintEndPage(const uint8_t& cancel = {});
struct PrintSelectInputRequest {
PContext context{};
uint32_t event_mask{};
};
using PrintSelectInputResponse = Response<void>;
Future<void> PrintSelectInput(const PrintSelectInputRequest& request);
Future<void> PrintSelectInput(const PContext& context = {},
const uint32_t& event_mask = {});
struct PrintInputSelectedRequest {
PContext context{};
};
struct PrintInputSelectedReply {
uint16_t sequence{};
uint32_t event_mask{};
uint32_t all_events_mask{};
};
using PrintInputSelectedResponse = Response<PrintInputSelectedReply>;
Future<PrintInputSelectedReply> PrintInputSelected(
const PrintInputSelectedRequest& request);
Future<PrintInputSelectedReply> PrintInputSelected(
const PContext& context = {});
struct PrintGetAttributesRequest {
PContext context{};
uint8_t pool{};
};
struct PrintGetAttributesReply {
uint16_t sequence{};
std::vector<String8> attributes{};
};
using PrintGetAttributesResponse = Response<PrintGetAttributesReply>;
Future<PrintGetAttributesReply> PrintGetAttributes(
const PrintGetAttributesRequest& request);
Future<PrintGetAttributesReply> PrintGetAttributes(
const PContext& context = {},
const uint8_t& pool = {});
struct PrintGetOneAttributesRequest {
PContext context{};
uint8_t pool{};
std::vector<String8> name{};
};
struct PrintGetOneAttributesReply {
uint16_t sequence{};
std::vector<String8> value{};
};
using PrintGetOneAttributesResponse = Response<PrintGetOneAttributesReply>;
Future<PrintGetOneAttributesReply> PrintGetOneAttributes(
const PrintGetOneAttributesRequest& request);
Future<PrintGetOneAttributesReply> PrintGetOneAttributes(
const PContext& context = {},
const uint8_t& pool = {},
const std::vector<String8>& name = {});
struct PrintSetAttributesRequest {
PContext context{};
uint32_t stringLen{};
uint8_t pool{};
uint8_t rule{};
std::vector<String8> attributes{};
};
using PrintSetAttributesResponse = Response<void>;
Future<void> PrintSetAttributes(const PrintSetAttributesRequest& request);
Future<void> PrintSetAttributes(const PContext& context = {},
const uint32_t& stringLen = {},
const uint8_t& pool = {},
const uint8_t& rule = {},
const std::vector<String8>& attributes = {});
struct PrintGetPageDimensionsRequest {
PContext context{};
};
struct PrintGetPageDimensionsReply {
uint16_t sequence{};
uint16_t width{};
uint16_t height{};
uint16_t offset_x{};
uint16_t offset_y{};
uint16_t reproducible_width{};
uint16_t reproducible_height{};
};
using PrintGetPageDimensionsResponse = Response<PrintGetPageDimensionsReply>;
Future<PrintGetPageDimensionsReply> PrintGetPageDimensions(
const PrintGetPageDimensionsRequest& request);
Future<PrintGetPageDimensionsReply> PrintGetPageDimensions(
const PContext& context = {});
struct PrintQueryScreensRequest {};
struct PrintQueryScreensReply {
uint16_t sequence{};
std::vector<Window> roots{};
};
using PrintQueryScreensResponse = Response<PrintQueryScreensReply>;
Future<PrintQueryScreensReply> PrintQueryScreens(
const PrintQueryScreensRequest& request);
Future<PrintQueryScreensReply> PrintQueryScreens();
struct PrintSetImageResolutionRequest {
PContext context{};
uint16_t image_resolution{};
};
struct PrintSetImageResolutionReply {
uint8_t status{};
uint16_t sequence{};
uint16_t previous_resolutions{};
};
using PrintSetImageResolutionResponse =
Response<PrintSetImageResolutionReply>;
Future<PrintSetImageResolutionReply> PrintSetImageResolution(
const PrintSetImageResolutionRequest& request);
Future<PrintSetImageResolutionReply> PrintSetImageResolution(
const PContext& context = {},
const uint16_t& image_resolution = {});
struct PrintGetImageResolutionRequest {
PContext context{};
};
struct PrintGetImageResolutionReply {
uint16_t sequence{};
uint16_t image_resolution{};
};
using PrintGetImageResolutionResponse =
Response<PrintGetImageResolutionReply>;
Future<PrintGetImageResolutionReply> PrintGetImageResolution(
const PrintGetImageResolutionRequest& request);
Future<PrintGetImageResolutionReply> PrintGetImageResolution(
const PContext& context = {});
private:
Connection* const connection_;
x11::QueryExtensionReply info_{};
};
} // namespace x11
inline constexpr x11::XPrint::GetDoc operator|(x11::XPrint::GetDoc l,
x11::XPrint::GetDoc r) {
using T = std::underlying_type_t<x11::XPrint::GetDoc>;
return static_cast<x11::XPrint::GetDoc>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XPrint::GetDoc operator&(x11::XPrint::GetDoc l,
x11::XPrint::GetDoc r) {
using T = std::underlying_type_t<x11::XPrint::GetDoc>;
return static_cast<x11::XPrint::GetDoc>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::XPrint::EvMask operator|(x11::XPrint::EvMask l,
x11::XPrint::EvMask r) {
using T = std::underlying_type_t<x11::XPrint::EvMask>;
return static_cast<x11::XPrint::EvMask>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XPrint::EvMask operator&(x11::XPrint::EvMask l,
x11::XPrint::EvMask r) {
using T = std::underlying_type_t<x11::XPrint::EvMask>;
return static_cast<x11::XPrint::EvMask>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::XPrint::Detail operator|(x11::XPrint::Detail l,
x11::XPrint::Detail r) {
using T = std::underlying_type_t<x11::XPrint::Detail>;
return static_cast<x11::XPrint::Detail>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XPrint::Detail operator&(x11::XPrint::Detail l,
x11::XPrint::Detail r) {
using T = std::underlying_type_t<x11::XPrint::Detail>;
return static_cast<x11::XPrint::Detail>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::XPrint::Attr operator|(x11::XPrint::Attr l,
x11::XPrint::Attr r) {
using T = std::underlying_type_t<x11::XPrint::Attr>;
return static_cast<x11::XPrint::Attr>(static_cast<T>(l) | static_cast<T>(r));
}
inline constexpr x11::XPrint::Attr operator&(x11::XPrint::Attr l,
x11::XPrint::Attr r) {
using T = std::underlying_type_t<x11::XPrint::Attr>;
return static_cast<x11::XPrint::Attr>(static_cast<T>(l) & static_cast<T>(r));
}
#endif // UI_GFX_X_GENERATED_PROTOS_XPRINT_H_