general: Add fullscreen widget

This commit is contained in:
Christopher Davis 2024-06-13 00:24:45 -04:00
parent 422750949c
commit 230ffd5c77
6 changed files with 264 additions and 115 deletions

View file

@ -68,75 +68,72 @@
</object>
</child>
<property name="content">
<object class="AdwToolbarView" id="toolbar_view">
<child type="top">
<object class="LpShyBin">
<property name="child">
<object class="AdwHeaderBar" id="headerbar">
<property name="show-end-title-buttons" bind-source="LpWindow" bind-property="fullscreened" bind-flags="sync-create|invert-boolean" />
<property name="show-start-title-buttons" bind-source="LpWindow" bind-property="fullscreened" bind-flags="sync-create|invert-boolean" />
<style>
<class name="fullscreen-osd" />
</style>
<child type="start">
<object class="GtkButton">
<property name="icon-name">edit-copy-symbolic</property>
<property name="action-name">win.copy-image</property>
<property name="tooltip-text" translatable="yes">Copy to Clipboard</property>
</object>
</child>
<child type="start">
<object class="GtkButton">
<property name="icon-name">user-trash-symbolic</property>
<property name="action-name">win.trash</property>
<property name="tooltip-text" translatable="yes">Move to Trash</property>
</object>
</child>
<child type="end">
<object class="GtkMenuButton" id="primary_menu">
<property name="icon-name">open-menu-symbolic</property>
<property name="tooltip-text" translatable="yes">Main Menu</property>
<property name="primary">True</property>
<property name="popover">
<object class="GtkPopoverMenu">
<property name="menu-model">primary_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-ccw</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-cw</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<child type="end">
<object class="GtkToggleButton" id="properties_button">
<property name="icon-name">info-outline-symbolic</property>
<property name="tooltip-text" translatable="yes">Image Properties</property>
</object>
</child>
<child>
<object class="GtkEventControllerMotion" id="headerbar_events" />
</child>
<object class="LpFullscreenWidget" id="fullscreen_widget">
<property name="extend-content" bind-source="properties_button" bind-property="active" bind-flags="sync-create|invert-boolean"/>
<property name="headerbar">
<object class="AdwHeaderBar" id="headerbar">
<property name="show-end-title-buttons" bind-source="LpWindow" bind-property="fullscreened" bind-flags="sync-create|invert-boolean" />
<property name="show-start-title-buttons" bind-source="LpWindow" bind-property="fullscreened" bind-flags="sync-create|invert-boolean" />
<style>
<class name="fullscreen-osd" />
</style>
<child type="start">
<object class="GtkButton">
<property name="icon-name">edit-copy-symbolic</property>
<property name="action-name">win.copy-image</property>
<property name="tooltip-text" translatable="yes">Copy to Clipboard</property>
</object>
</property>
</child>
<child type="start">
<object class="GtkButton">
<property name="icon-name">user-trash-symbolic</property>
<property name="action-name">win.trash</property>
<property name="tooltip-text" translatable="yes">Move to Trash</property>
</object>
</child>
<child type="end">
<object class="GtkMenuButton" id="primary_menu">
<property name="icon-name">open-menu-symbolic</property>
<property name="tooltip-text" translatable="yes">Main Menu</property>
<property name="primary">True</property>
<property name="popover">
<object class="GtkPopoverMenu">
<property name="menu-model">primary_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-ccw</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-cw</property>
<style>
<class name="flat" />
</style>
</object>
</child>
</object>
</property>
</object>
</child>
<child type="end">
<object class="GtkToggleButton" id="properties_button">
<property name="icon-name">info-outline-symbolic</property>
<property name="tooltip-text" translatable="yes">Image Properties</property>
</object>
</child>
<child>
<object class="GtkEventControllerMotion" id="headerbar_events" />
</child>
</object>
</child>
</property>
<property name="content">
<object class="AdwToastOverlay" id="toast_overlay">
<property name="child">