Give LpImage a native with that should feel nice. When opening a new window with a new image the window size is determined by LpImage's natural width. The image size and EXIF data is loaded before the image such that the window can be shown in the right dimension while loading the actual image.
110 lines
4.4 KiB
XML
110 lines
4.4 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<interface>
|
|
<menu id="image_menu">
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Open With…</attribute>
|
|
<attribute name="action">win.open-with</attribute>
|
|
</item>
|
|
<!--<item>
|
|
<attribute name="label" translatable="yes">_Display On…</attribute>
|
|
<attribute name="action">win.display-on</attribute>
|
|
</item>-->
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Print…</attribute>
|
|
<attribute name="action">win.print</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Copy</attribute>
|
|
<attribute name="action">win.copy</attribute>
|
|
</item>
|
|
</section>
|
|
<section>
|
|
<attribute name="label" translatable="yes">Rotate</attribute>
|
|
<attribute name="display-hint">inline-buttons</attribute>
|
|
<item>
|
|
<attribute name="custom">rotate-left</attribute>
|
|
</item>
|
|
<item>
|
|
<attribute name="custom">rotate-right</attribute>
|
|
</item>
|
|
</section>
|
|
<section>
|
|
<item>
|
|
<attribute name="label" translatable="yes">_Set as Background…</attribute>
|
|
<attribute name="action">win.set-background</attribute>
|
|
</item>
|
|
</section>
|
|
</menu>
|
|
<template class="LpImagePage" parent="AdwBin">
|
|
<property name="hexpand">True</property>
|
|
<property name="vexpand">True</property>
|
|
<property name="child">
|
|
<object class="GtkStack" id="stack">
|
|
<property name="transition-type">crossfade</property>
|
|
<child>
|
|
<object class="GtkSpinner" id="spinner">
|
|
<property name="halign">center</property>
|
|
<property name="valign">center</property>
|
|
<property name="spinning">True</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="AdwStatusPage" id="error_page">
|
|
<property name="icon-name">image-missing-symbolic</property>
|
|
<property name="title" translatable="yes">Could not Load Image</property>
|
|
<property name="description" bind-source="LpImagePage" bind-property="error"/>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkScrolledWindow" id="scrolled_window">
|
|
<property name="propagate-natural-height">True</property>
|
|
<property name="propagate-natural-width">True</property>
|
|
<property name="child">
|
|
<object class="LpImage" id="image">
|
|
<child>
|
|
<object class="GtkGestureClick" id="click_gesture">
|
|
<property name="button">3</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkGestureLongPress" id="press_gesture">
|
|
<property name="touch-only">True</property>
|
|
</object>
|
|
</child>
|
|
<child>
|
|
<object class="GtkPopoverMenu" id="popover">
|
|
<property name="has-arrow">False</property>
|
|
<property name="menu-model">image_menu</property>
|
|
<child type="rotate-left">
|
|
<object class="GtkButton">
|
|
<property name="icon-name">object-rotate-left-symbolic</property>
|
|
<property name="tooltip-text" translatable="yes">Rotate Left</property>
|
|
<property name="action-name">win.rotate</property>
|
|
<property name="action-target">-90.0</property>
|
|
<style>
|
|
<class name="flat" />
|
|
</style>
|
|
</object>
|
|
</child>
|
|
<child type="rotate-right">
|
|
<object class="GtkButton">
|
|
<property name="icon-name">object-rotate-right-symbolic</property>
|
|
<property name="tooltip-text" translatable="yes">Rotate Right</property>
|
|
<property name="action-name">win.rotate</property>
|
|
<property name="action-target">90.0</property>
|
|
<style>
|
|
<class name="flat" />
|
|
</style>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</object>
|
|
</child>
|
|
</object>
|
|
</property>
|
|
</template>
|
|
</interface>
|