Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
ViewportAttributes
offers the viewport properties to user agents to
control the viewport layout. It contains the viewport size, initial scale with limits,
and information about whether a user is able to scale the contents in the viewport.
This makes a web page fit the device screen.
The WebView
::viewport-attributes-changed
signal will be emitted with ViewportAttributes
when the viewport attributes are updated in the case of loading web pages contain
the viewport properties and calling webkit_viewport_attributes_recompute.
If the device size, available size, desktop width, or device DPI needs to be changed due to
a consequence of an explicit browser request (caused by screen rotation, resizing, or similar reasons),
You should call webkit_viewport_attributes_recompute
to recompute the viewport properties and
override those values in the handler of WebView
::viewport-attributes-recompute-requested
signal.
For more information on the viewport properties, refer to the Safari reference library at http://developer.apple.com/safari/library/documentation/appleapplications/reference/safarihtmlref/articles/metatags.html
<informalexample><programlisting> /<!-- -->* Connect to the viewport-attributes-changes signal *<!-- -->/ WebKitViewportAttributes* attributes = webkit_web_view_get_viewport_attributes (web_view); g_signal_connect (web_view, "viewport-attributes-recompute-requested", G_CALLBACK (viewport_recompute_cb), window); g_signal_connect (web_view, "viewport-attributes-changed", G_CALLBACK (viewport_changed_cb), window); g_signal_connect (attributes, "notify::valid", G_CALLBACK (viewport_valid_changed_cb), web_view);
/<!-- -->* Handle the viewport-attributes-recompute-requested signal to override the device width *<!-- -->/ static void viewport_recompute_cb (WebKitWebView* web_view, WebKitViewportAttributes* attributes, GtkWidget* window) { int override_available_width = 480; g_object_set (G_OBJECT(attributes), "available-width", override_available_width, NULL); }
/<!-- -->* Handle the viewport-attributes-changed signal to recompute the initial scale factor *<!-- -->/ static void viewport_changed_cb (WebKitWebView* web_view, WebKitViewportAttributes* attributes, gpointer data) { gfloat initialScale; g_object_get (G_OBJECT (atributes), "initial-scale-factor", &initialScale, NULL); webkit_web_view_set_zoom_level (web_view, initialScale); }
/<!-- -->* Handle the notify::valid signal to initialize the zoom level *<!-- -->/ static void viewport_valid_changed_cb (WebKitViewportAttributes* attributes, GParamSpec* pspec, WebKitWebView* web_view) { gboolean is_valid; g_object_get (attributes, "valid", &is_valid, NULL); if (!is_valid) webkit_web_view_set_zoom_level (web_view, 1.0); } </programlisting></informalexample>
- newtype ViewportAttributes = ViewportAttributes (ManagedPtr ViewportAttributes)
- class GObject o => IsViewportAttributes o
- toViewportAttributes :: (MonadIO m, IsViewportAttributes o) => o -> m ViewportAttributes
- noViewportAttributes :: Maybe ViewportAttributes
- viewportAttributesRecompute :: (HasCallStack, MonadIO m, IsViewportAttributes a) => a -> m ()
- constructViewportAttributesAvailableHeight :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesAvailableHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesAvailableHeight :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- constructViewportAttributesAvailableWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesAvailableWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesAvailableWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- constructViewportAttributesDesktopWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesDesktopWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesDesktopWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- constructViewportAttributesDeviceDpi :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesDeviceDpi :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesDeviceDpi :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- constructViewportAttributesDeviceHeight :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesDeviceHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesDeviceHeight :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- getViewportAttributesDevicePixelRatio :: (MonadIO m, IsViewportAttributes o) => o -> m Float
- constructViewportAttributesDeviceWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o)
- getViewportAttributesDeviceWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- setViewportAttributesDeviceWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m ()
- getViewportAttributesHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
- getViewportAttributesInitialScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float
- getViewportAttributesMaximumScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float
- getViewportAttributesMinimumScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float
- getViewportAttributesUserScalable :: (MonadIO m, IsViewportAttributes o) => o -> m Bool
- getViewportAttributesValid :: (MonadIO m, IsViewportAttributes o) => o -> m Bool
- getViewportAttributesWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32
Exported types
newtype ViewportAttributes Source #
class GObject o => IsViewportAttributes o Source #
toViewportAttributes :: (MonadIO m, IsViewportAttributes o) => o -> m ViewportAttributes Source #
Methods
recompute
viewportAttributesRecompute Source #
:: (HasCallStack, MonadIO m, IsViewportAttributes a) | |
=> a |
|
-> m () |
Recompute the optimal viewport attributes and emit the viewport-attribute-changed signal. The viewport-attributes-recompute-requested signal also will be handled to override the device size, available size, desktop width, or device DPI.
Since: 1.3.8
Properties
availableHeight
constructViewportAttributesAvailableHeight :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesAvailableHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesAvailableHeight :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
availableWidth
constructViewportAttributesAvailableWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesAvailableWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesAvailableWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
desktopWidth
constructViewportAttributesDesktopWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesDesktopWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesDesktopWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
deviceDpi
constructViewportAttributesDeviceDpi :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesDeviceDpi :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesDeviceDpi :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
deviceHeight
constructViewportAttributesDeviceHeight :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesDeviceHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesDeviceHeight :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
devicePixelRatio
getViewportAttributesDevicePixelRatio :: (MonadIO m, IsViewportAttributes o) => o -> m Float Source #
deviceWidth
constructViewportAttributesDeviceWidth :: IsViewportAttributes o => Int32 -> IO (GValueConstruct o) Source #
getViewportAttributesDeviceWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
setViewportAttributesDeviceWidth :: (MonadIO m, IsViewportAttributes o) => o -> Int32 -> m () Source #
height
getViewportAttributesHeight :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #
initialScaleFactor
getViewportAttributesInitialScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float Source #
maximumScaleFactor
getViewportAttributesMaximumScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float Source #
minimumScaleFactor
getViewportAttributesMinimumScaleFactor :: (MonadIO m, IsViewportAttributes o) => o -> m Float Source #
userScalable
getViewportAttributesUserScalable :: (MonadIO m, IsViewportAttributes o) => o -> m Bool Source #
valid
getViewportAttributesValid :: (MonadIO m, IsViewportAttributes o) => o -> m Bool Source #
width
getViewportAttributesWidth :: (MonadIO m, IsViewportAttributes o) => o -> m Int32 Source #