<?xml version="1.0" encoding="UTF-8"?>
<interface domain="blur-my-shell@aunetx">
  <template class="Applications" parent="AdwPreferencesPage">
    <property name="name">applications</property>
    <property name="title" translatable="yes">Applications</property>
    <property name="icon-name">applications-symbolic</property>

    <child>
      <object class="AdwPreferencesGroup">
        <property name="title" translatable="yes">Applications blur</property>
        <property name="description" translatable="yes">Adds blur to the applications.
To get the best results possible, although with reduced performances, you can choose the option “No artifact” in the “Other → Hack level” tab.</property>
        <property name="header-suffix">
          <object class="GtkSwitch" id="blur">
            <property name="valign">center</property>
          </object>
        </property>

        <child>
          <object class="AdwActionRow">
            <property name="title" translatable="yes">Blur type</property>
            <property name="subtitle" translatable="yes">The dynamic blur is slower and only compatible with a gaussian blur effect, but shows content behind windows.</property>
            <property name="activatable-widget">blur_mode_choose</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkBox" id="blur_mode_choose">
                <property name="valign">center</property>
                <property name="hexpand">false</property>
                <style>
                  <class name="linked" />
                </style>

                <child>
                  <object class="GtkToggleButton" id="mode_static">
                    <property name="valign">center</property>
                    <property name="hexpand">true</property>
                    <property name="group">mode_dynamic</property>
                    <property name="child">
                      <object class="AdwButtonContent">
                        <property name="icon-name">static-mode-symbolic</property>
                        <property name="label" translatable="yes">Static</property>
                      </object>
                    </property>
                  </object>
                </child>
                <child>
                  <object class="GtkToggleButton" id="mode_dynamic">
                    <property name="valign">center</property>
                    <property name="hexpand">true</property>
                    <property name="child">
                      <object class="AdwButtonContent">
                        <property name="icon-name">dynamic-mode-symbolic</property>
                        <property name="label" translatable="yes">Dynamic</property>
                      </object>
                    </property>
                  </object>
                </child>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="PipelineChooseRow" id="pipeline_choose_row">
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />
          </object>
        </child>

        <child>
          <object class="AdwActionRow" id="sigma_row">
            <property name="title" translatable="yes">Sigma</property>
            <property name="subtitle" translatable="yes">The intensity of the blur.</property>
            <property name="activatable-widget">sigma_scale</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkScale" id="sigma_scale">
                <property name="valign">center</property>
                <property name="hexpand">true</property>
                <property name="width-request">200px</property>
                <property name="draw-value">true</property>
                <property name="value-pos">right</property>
                <property name="digits">0</property>
                <property name="adjustment">sigma</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow" id="brightness_row">
            <property name="title" translatable="yes">Brightness</property>
            <property name="subtitle" translatable="yes">The brightness of the blur effect, a high value might make the text harder to read.</property>
            <property name="activatable-widget">brightness_scale</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkScale" id="brightness_scale">
                <property name="valign">center</property>
                <property name="hexpand">true</property>
                <property name="width-request">200px</property>
                <property name="draw-value">true</property>
                <property name="value-pos">right</property>
                <property name="digits">2</property>
                <property name="adjustment">brightness</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow" id="corner_radius_not_found_row">
            <property name="title" translatable="yes">Corner radius</property>
            <property name="subtitle" translatable="yes">In order to use rounded corners, please install the GNOME Rounded Blur library.</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />
            <property name="activatable-widget">open_gnome_rounded_blur</property>

            <child type="suffix">
              <object class="GtkButton" id="open_gnome_rounded_blur">
                <property name="icon-name">external-link-symbolic</property>
                <property name="valign">center</property>
                <property name="action-name">link.open-gnome-rounded-blur</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwSpinRow" id="corner_radius_row">
            <property name="title" translatable="yes">Corner radius</property>
            <property name="subtitle" translatable="yes">Radius for the corner rounding effect.</property>
            <property name="adjustment">corner_radius</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />
          </object>
        </child>

        <child>
          <object class="AdwActionRow" id="corner_when_maximized_row">
            <property name="title" translatable="yes">Enable corner rounding on maximized and fullscreen</property>
            <property name="subtitle" translatable="yes">Corner rounding effect will keep being applied to maximized and fullscreen windows.</property>
            <property name="activatable-widget">corner_when_maximized</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkSwitch" id="corner_when_maximized">
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow">
            <property name="title" translatable="yes">Opacity</property>
            <property name="subtitle" translatable="yes">The opacity of the window on top of the blur effect, a higher value will be more legible.</property>
            <property name="activatable-widget">opacity_scale</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkScale" id="opacity_scale">
                <property name="valign">center</property>
                <property name="hexpand">true</property>
                <property name="width-request">200px</property>
                <property name="draw-value">true</property>
                <property name="value-pos">right</property>
                <property name="orientation">horizontal</property>
                <property name="digits">0</property>
                <property name="adjustment">opacity</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow">
            <property name="title" translatable="yes">Opaque focused window</property>
            <property name="subtitle" translatable="yes">Makes the focused window opaque and the other ones blurred, helping with legibility.</property>
            <property name="activatable-widget">dynamic_opacity</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkSwitch" id="dynamic_opacity">
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow">
            <property name="title" translatable="yes">Blur on overview</property>
            <property name="subtitle" translatable="yes">Forces the blur to be properly shown on all workspaces on overview.
This may cause some latency or performance issues.</property>
            <property name="activatable-widget">blur_on_overview</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkSwitch" id="blur_on_overview">
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>

        <child>
          <object class="AdwActionRow">
            <property name="title" translatable="yes">Enable all by default</property>
            <property name="subtitle" translatable="yes">Adds blur behind all windows by default.</property>
            <property name="activatable-widget">enable_all</property>
            <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />

            <child>
              <object class="GtkSwitch" id="enable_all">
                <property name="valign">center</property>
              </object>
            </child>
          </object>
        </child>
      </object>
    </child>

    <child>
      <object class="AdwPreferencesGroup" id="whitelist">
        <property name="title" translatable="yes">Whitelist</property>
        <property name="description" translatable="yes">A list of windows to blur.
Use * to match any sequence of characters (e.g., Firefox* or *Code*), and ? for a single one.</property>
        <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />
        <property name="header-suffix">
          <object class="GtkButton" id="add_window_whitelist">
            <property name="halign">start</property>
            <property name="valign">center</property>
            <child>
              <object class="GtkBox">
                <property name="margin-start">12</property>
                <property name="margin-end">12</property>
                <child>
                  <object class="GtkImage">
                    <property name="margin-end">6</property>
                    <property name="icon-name">add-row-symbolic</property>
                  </object>
                </child>
                <child>
                  <object class="GtkLabel">
                    <property name="label" translatable="yes">Add Window</property>
                  </object>
                </child>
              </object>
            </child>
            <style>
              <class name="circular" />
              <class name="suggested-action" />
            </style>
          </object>
        </property>

        <!-- WINDOW ROW WIDGETS GO HERE -->
      </object>
    </child>

    <child>
      <object class="AdwPreferencesGroup" id="blacklist">
        <property name="title" translatable="yes">Blacklist</property>
        <property name="description" translatable="yes">A list of windows not to blur.
Use * to match any sequence of characters (e.g., Firefox* or *Code*), and ? for a single one.</property>
        <property name="sensitive" bind-source="blur" bind-property="state" bind-flags="sync-create" />
        <property name="header-suffix">
          <object class="GtkButton" id="add_window_blacklist">
            <property name="halign">start</property>
            <property name="valign">center</property>
            <child>
              <object class="GtkBox">
                <property name="margin-start">12</property>
                <property name="margin-end">12</property>
                <child>
                  <object class="GtkImage">
                    <property name="margin-end">6</property>
                    <property name="icon-name">add-row-symbolic</property>
                  </object>
                </child>
                <child>
                  <object class="GtkLabel">
                    <property name="label" translatable="yes">Add Window</property>
                  </object>
                </child>
              </object>
            </child>
            <style>
              <class name="circular" />
              <class name="suggested-action" />
            </style>
          </object>
        </property>

        <!-- WINDOW ROW WIDGETS GO HERE -->
      </object>
    </child>
  </template>

  <object class="GtkAdjustment" id="sigma">
    <property name="lower">0</property>
    <property name="upper">100</property>
    <property name="step-increment">1</property>
  </object>

  <object class="GtkAdjustment" id="brightness">
    <property name="lower">0.0</property>
    <property name="upper">1.0</property>
    <property name="step-increment">0.01</property>
  </object>

  <object class="GtkAdjustment" id="corner_radius">
    <property name="lower">0</property>
    <property name="upper">150</property>
    <property name="step-increment">1</property>
  </object>

  <object class="GtkAdjustment" id="opacity">
    <property name="lower">25</property>
    <property name="upper">255</property>
    <property name="step-increment">1</property>
  </object>
</interface>
