Program Listing for File common.h¶
↰ Return to documentation for file (/home/docs/checkouts/readthedocs.org/user_builds/canonical-mir-documentation/checkouts/2.30/include/core/mir_toolkit/common.h)
/*
* Simple definitions common to client and server.
*
* Copyright © Canonical Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 2 or 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef MIR_COMMON_H_
#define MIR_COMMON_H_
enum MirWindowAttrib
{
/* Do not specify values...code relies on 0...N ordering. */
mir_window_attrib_type,
mir_window_attrib_state,
mir_window_attrib_focus = mir_window_attrib_state + 2,
mir_window_attrib_dpi,
mir_window_attrib_visibility,
mir_window_attrib_preferred_orientation,
/* Must be last */
mir_window_attribs
};
enum MirWindowType
{
mir_window_type_normal,
mir_window_type_utility,
mir_window_type_dialog,
mir_window_type_gloss,
mir_window_type_freestyle,
mir_window_type_menu,
mir_window_type_inputmethod,
mir_window_type_satellite,
mir_window_type_tip,
mir_window_type_decoration,
mir_window_types
};
enum MirWindowState
{
mir_window_state_unknown,
mir_window_state_restored,
mir_window_state_minimized,
mir_window_state_maximized,
mir_window_state_vertmaximized,
/* mir_window_state_semimaximized,
Omitted for now, since it's functionally a subset of vertmaximized and
differs only in the X coordinate. */
mir_window_state_fullscreen,
mir_window_state_horizmaximized,
mir_window_state_hidden,
mir_window_state_attached,
mir_window_states
};
enum MirWindowFocusState
{
mir_window_focus_state_unfocused = 0,
mir_window_focus_state_focused,
mir_window_focus_state_active
};
enum MirWindowVisibility
{
mir_window_visibility_occluded = 0,
mir_window_visibility_exposed
};
enum MirLifecycleState
{
mir_lifecycle_state_will_suspend,
mir_lifecycle_state_resumed,
mir_lifecycle_connection_lost
};
enum MirPowerMode
{
mir_power_mode_on, /* Display in use. */
mir_power_mode_standby, /* Blanked, low power. */
mir_power_mode_suspend, /* Blanked, lowest power. */
mir_power_mode_off /* Powered down. */
};
enum MirOutputType
{
mir_output_type_unknown = 0, /* DRM_MODE_CONNECTOR_Unknown */
mir_output_type_vga = 1, /* DRM_MODE_CONNECTOR_VGA */
mir_output_type_dvii = 2, /* DRM_MODE_CONNECTOR_DVII */
mir_output_type_dvid = 3, /* DRM_MODE_CONNECTOR_DVID */
mir_output_type_dvia = 4, /* DRM_MODE_CONNECTOR_DVIA */
mir_output_type_composite = 5, /* DRM_MODE_CONNECTOR_Composite */
mir_output_type_svideo = 6, /* DRM_MODE_CONNECTOR_SVIDEO */
mir_output_type_lvds = 7, /* DRM_MODE_CONNECTOR_LVDS */
mir_output_type_component = 8, /* DRM_MODE_CONNECTOR_Component */
mir_output_type_ninepindin = 9, /* DRM_MODE_CONNECTOR_9PinDIN */
mir_output_type_displayport = 10, /* DRM_MODE_CONNECTOR_DisplayPort */
mir_output_type_hdmia = 11, /* DRM_MODE_CONNECTOR_HDMIA */
mir_output_type_hdmib = 12, /* DRM_MODE_CONNECTOR_HDMIB */
mir_output_type_tv = 13, /* DRM_MODE_CONNECTOR_TV */
mir_output_type_edp = 14, /* DRM_MODE_CONNECTOR_eDP */
mir_output_type_virtual = 15, /* DRM_MODE_CONNECTOR_VIRTUAL */
mir_output_type_dsi = 16, /* DRM_MODE_CONNECTOR_DSI */
mir_output_type_dpi = 17, /* DRM_MODE_CONNECTOR_DPI */
};
enum MirPixelFormat
{
mir_pixel_format_invalid = 0,
mir_pixel_format_abgr_8888 = 1,
mir_pixel_format_xbgr_8888 = 2,
mir_pixel_format_argb_8888 = 3,
mir_pixel_format_xrgb_8888 = 4,
mir_pixel_format_bgr_888 = 5,
mir_pixel_format_rgb_888 = 6,
mir_pixel_format_rgb_565 = 7,
mir_pixel_format_rgba_5551 = 8,
mir_pixel_format_rgba_4444 = 9,
/*
* TODO: Big endian support would require additional formats in order to
* composite software surfaces using OpenGL (GL_RGBA/GL_BGRA_EXT):
* mir_pixel_format_rgb[ax]_8888
* mir_pixel_format_bgr[ax]_8888
*/
mir_pixel_formats /* Note: This is always max format + 1 */
};
/* This could be improved... https://bugs.launchpad.net/mir/+bug/1236254 */
#define MIR_BYTES_PER_PIXEL(f) \
((f) == mir_pixel_format_bgr_888 ? 3 : \
(f) == mir_pixel_format_rgb_888 ? 3 : \
(f) == mir_pixel_format_rgb_565 ? 2 : \
(f) == mir_pixel_format_rgba_5551 ? 2 : \
(f) == mir_pixel_format_rgba_4444 ? 2 : \
4)
enum MirOrientation
{
mir_orientation_normal = 0,
mir_orientation_left = 90,
mir_orientation_inverted = 180,
mir_orientation_right = 270
};
enum MirMirrorMode
{
mir_mirror_mode_none,
mir_mirror_mode_vertical,
mir_mirror_mode_horizontal
};
enum MirOrientationMode
{
mir_orientation_mode_portrait = 1 << 0,
mir_orientation_mode_landscape = 1 << 1,
mir_orientation_mode_portrait_inverted = 1 << 2,
mir_orientation_mode_landscape_inverted = 1 << 3,
mir_orientation_mode_portrait_any = mir_orientation_mode_portrait | mir_orientation_mode_portrait_inverted,
mir_orientation_mode_landscape_any = mir_orientation_mode_landscape | mir_orientation_mode_landscape_inverted,
mir_orientation_mode_any = mir_orientation_mode_portrait_any | mir_orientation_mode_landscape_any
};
enum MirEdgeAttachment
{
mir_edge_attachment_vertical = 1 << 0,
mir_edge_attachment_horizontal = 1 << 1,
mir_edge_attachment_any = mir_edge_attachment_vertical | mir_edge_attachment_horizontal
};
// Inspired by GdkGravity
enum MirPlacementGravity
{
mir_placement_gravity_center = 0,
mir_placement_gravity_west = 1 << 0,
mir_placement_gravity_east = 1 << 1,
mir_placement_gravity_north = 1 << 2,
mir_placement_gravity_south = 1 << 3,
mir_placement_gravity_northwest = mir_placement_gravity_north | mir_placement_gravity_west,
mir_placement_gravity_northeast = mir_placement_gravity_north | mir_placement_gravity_east,
mir_placement_gravity_southwest = mir_placement_gravity_south | mir_placement_gravity_west,
mir_placement_gravity_southeast = mir_placement_gravity_south | mir_placement_gravity_east
};
// Inspired by GdkAnchorHints
enum MirPlacementHints
{
mir_placement_hints_flip_x = 1 << 0,
mir_placement_hints_flip_y = 1 << 1,
mir_placement_hints_slide_x = 1 << 2,
mir_placement_hints_slide_y = 1 << 3,
mir_placement_hints_resize_x = 1 << 4,
mir_placement_hints_resize_y = 1 << 5,
mir_placement_hints_antipodes [[deprecated("UNUSED since Mir 2.0")]] = 1 << 6,
mir_placement_hints_flip_any = mir_placement_hints_flip_x | mir_placement_hints_flip_y,
mir_placement_hints_slide_any = mir_placement_hints_slide_x | mir_placement_hints_slide_y,
mir_placement_hints_resize_any = mir_placement_hints_resize_x | mir_placement_hints_resize_y,
};
enum MirResizeEdge
{
mir_resize_edge_none = 0,
mir_resize_edge_west = 1 << 0,
mir_resize_edge_east = 1 << 1,
mir_resize_edge_north = 1 << 2,
mir_resize_edge_south = 1 << 3,
mir_resize_edge_northwest = mir_resize_edge_north | mir_resize_edge_west,
mir_resize_edge_northeast = mir_resize_edge_north | mir_resize_edge_east,
mir_resize_edge_southwest = mir_resize_edge_south | mir_resize_edge_west,
mir_resize_edge_southeast = mir_resize_edge_south | mir_resize_edge_east
};
enum MirFormFactor
{
mir_form_factor_unknown,
mir_form_factor_phone,
mir_form_factor_tablet,
mir_form_factor_monitor,
mir_form_factor_tv,
mir_form_factor_projector,
};
enum MirSubpixelArrangement
{
mir_subpixel_arrangement_unknown,
mir_subpixel_arrangement_horizontal_rgb,
mir_subpixel_arrangement_horizontal_bgr,
mir_subpixel_arrangement_vertical_rgb,
mir_subpixel_arrangement_vertical_bgr,
mir_subpixel_arrangement_none
};
enum MirShellChrome
{
mir_shell_chrome_normal,
mir_shell_chrome_low,
};
enum MirPointerConfinementState
{
mir_pointer_unconfined,
mir_pointer_confined_oneshot,
mir_pointer_confined_persistent,
mir_pointer_locked_oneshot,
mir_pointer_locked_persistent,
};
enum MirOutputGammaSupported
{
mir_output_gamma_unsupported,
mir_output_gamma_supported
};
enum MirDepthLayer
{
mir_depth_layer_background,
mir_depth_layer_below,
mir_depth_layer_application,
mir_depth_layer_always_on_top,
mir_depth_layer_above,
mir_depth_layer_overlay,
};
enum MirFocusMode
{
mir_focus_mode_focusable,
mir_focus_mode_disabled,
mir_focus_mode_grabbing,
};
enum MirTiledEdge
{
mir_tiled_edge_none = 0,
mir_tiled_edge_north = 1 << 0,
mir_tiled_edge_east = 1 << 1,
mir_tiled_edge_south = 1 << 2,
mir_tiled_edge_west = 1 << 3
};
enum MirOutputFilter
{
mir_output_filter_none,
mir_output_filter_grayscale,
mir_output_filter_invert,
};
#endif