// Copyright 2012 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. // Multiply-included message file, no include guard. #include #include "base/basictypes.h" #include "ipc/ipc_message_macros.h" #include "ui/events/event_constants.h" #include "ui/gfx/native_widget_types.h" #include "ui/metro_viewer/ime_types.h" #define IPC_MESSAGE_START MetroViewerMsgStart IPC_ENUM_TRAITS(ui::EventType) IPC_ENUM_TRAITS(ui::EventFlags) // Contains the parameters sent for a mousebutton message. IPC_STRUCT_BEGIN(MetroViewerHostMsg_MouseButtonParams) IPC_STRUCT_MEMBER(int32, x) IPC_STRUCT_MEMBER(int32, y) IPC_STRUCT_MEMBER(int32, extra) IPC_STRUCT_MEMBER(ui::EventType, event_type) IPC_STRUCT_MEMBER(uint32, flags) IPC_STRUCT_MEMBER(ui::EventFlags, changed_button) IPC_STRUCT_MEMBER(bool, is_horizontal_wheel) IPC_STRUCT_END() // Messages sent from the viewer to the browser: // Inform the browser of the surface to target for compositing. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_SetTargetSurface, gfx::NativeViewId /* target hwnd */, float /* device scale */) // Informs the browser that the mouse moved. IPC_MESSAGE_CONTROL3(MetroViewerHostMsg_MouseMoved, int32, /* x-coordinate */ int32, /* y-coordinate */ int32 /* flags */) // Informs the brower that a mouse button was pressed. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_MouseButton, MetroViewerHostMsg_MouseButtonParams) // Informs the browser that a key was pressed. IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_KeyDown, uint32, /* virtual key */ uint32, /* repeat count */ uint32, /* scan code */ uint32 /* key state */); // Informs the browser that a key was released. IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_KeyUp, uint32, /* virtual key */ uint32, /* repeat count */ uint32, /* scan code */ uint32 /* key state */); IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_Character, uint32, /* virtual key */ uint32, /* repeat count */ uint32, /* scan code */ uint32 /* key state */); // Informs the browser that the Metro window has been activated. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_WindowActivated, bool /* Whether the window should be repainted */); // Informs the browser that the user has completed an edge gesture. IPC_MESSAGE_CONTROL0(MetroViewerHostMsg_EdgeGesture) IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_TouchDown, int32, /* x-coordinate */ int32, /* y-coordinate */ uint64, /* timestamp */ uint32) /* pointer_id */ IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_TouchUp, int32, /* x-coordinate */ int32, /* y-coordinate */ uint64, /* timestamp */ uint32) /* pointer_id */ IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_TouchMoved, int32, /* x-coordinate */ int32, /* y-coordinate */ uint64, /* timestamp */ uint32) /* pointer_id */ // Informs the browser of the result of a file save as operation. IPC_MESSAGE_CONTROL3(MetroViewerHostMsg_FileSaveAsDone, bool, /* success */ base::FilePath, /* filename */ int) /* filter_index */ // Informs the browser of the result of a file open operation. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_FileOpenDone, bool, /* success */ base::FilePath) /* filename */ IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_MultiFileOpenDone, bool, /* success */ std::vector) /* filenames */ // Informs the browser of the result of a select folder operation. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_SelectFolderDone, bool, /* success */ base::FilePath) /* filepath*/ // Messages sent from the browser to the viewer: // Requests the viewer to activate desktop mode. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_ActivateDesktop, base::FilePath /* shortcut */, bool /* ash exit */); // Request the viewer to close itself gracefully. IPC_MESSAGE_CONTROL0(MetroViewerHostMsg_MetroExit); // Requests the viewer to open a URL in desktop mode. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_OpenURLOnDesktop, base::FilePath, /* shortcut */ base::string16 /* url */); // Requests the viewer to change the pointer to a new cursor. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_SetCursor, int64 /* cursor */); // This structure contains the parameters sent to the viewer process to display // the file save dialog. IPC_STRUCT_BEGIN(MetroViewerHostMsg_SaveAsDialogParams) // The title of the file save dialog if any. IPC_STRUCT_MEMBER(base::string16, title) // The suggested file name. IPC_STRUCT_MEMBER(base::FilePath, suggested_name) // The save as filter to be used. IPC_STRUCT_MEMBER(base::string16, filter) // The filter index. IPC_STRUCT_MEMBER(uint32, filter_index) // The default extension. IPC_STRUCT_MEMBER(base::string16, default_extension) IPC_STRUCT_END() // Requests the viewer to display the file save dialog. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_DisplayFileSaveAs, MetroViewerHostMsg_SaveAsDialogParams) // Requests the viewer to display the file open dialog. IPC_MESSAGE_CONTROL4(MetroViewerHostMsg_DisplayFileOpen, base::string16, /* title */ base::string16, /* filter */ base::FilePath, /* Default path */ bool) /* allow_multi_select */ // Requests the viewer to display the select folder dialog. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_DisplaySelectFolder, base::string16) /* title */ // Sent to the viewer process to set the cursor position. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_SetCursorPos, int, /* x */ int) /* y */ // Ack sent by the viewer process indicating that the SetCursorPos operation // was completed. IPC_MESSAGE_CONTROL0(MetroViewerHostMsg_SetCursorPosAck) IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_OpenURL, base::string16) /* url */ IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_SearchRequest, base::string16) /* search_string */ // Sent from the metro viewer process to the browser process to indicate that // the viewer window size has changed. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_WindowSizeChanged, uint32, /* width */ uint32) /* height */ IPC_STRUCT_TRAITS_BEGIN(metro_viewer::UnderlineInfo) IPC_STRUCT_TRAITS_MEMBER(start_offset) IPC_STRUCT_TRAITS_MEMBER(end_offset) IPC_STRUCT_TRAITS_MEMBER(thick) IPC_STRUCT_TRAITS_END() // Sent from the metro viewer process to the browser process to update the // composition string. IPC_MESSAGE_CONTROL4( MetroViewerHostMsg_ImeCompositionChanged, base::string16, /* text */ int32, /* selection_start */ int32, /* selection_end */ std::vector) /* underlines */ // Sent from the metro viewer process to the browser process to update the // status of popup window that is managed by an IME. IPC_MESSAGE_CONTROL1( MetroViewerHostMsg_ImeCandidatePopupChanged, bool) /* UI visibility */ // Sent from the metro viewer process to the browser process to commit strings. IPC_MESSAGE_CONTROL1(MetroViewerHostMsg_ImeTextCommitted, base::string16) /* text */ // Sent from the metro viewer process to the browser process to notify that the // active text input source is changed. IPC_MESSAGE_CONTROL2(MetroViewerHostMsg_ImeInputSourceChanged, uint16, /* Win32 LangID */ bool) /* is IME or not */ // Requests the viewer to cancel the on-going composition. IPC_MESSAGE_CONTROL0(MetroViewerHostMsg_ImeCancelComposition) IPC_STRUCT_TRAITS_BEGIN(metro_viewer::CharacterBounds) IPC_STRUCT_TRAITS_MEMBER(left) IPC_STRUCT_TRAITS_MEMBER(top) IPC_STRUCT_TRAITS_MEMBER(right) IPC_STRUCT_TRAITS_MEMBER(bottom) IPC_STRUCT_TRAITS_END() // Requests the viewer to update the document context such as attached // InputScopes and character bounds. IPC_MESSAGE_CONTROL2( MetroViewerHostMsg_ImeTextInputClientUpdated, std::vector, /* InputScope enums */ std::vector) /* character bounds */