using Gtk 4.0;
using Adw 1;

template $PreferencesWindow : Adw.PreferencesWindow {
  default-height: 500;

  Adw.PreferencesPage general_page {
    name: "general";
    title: _("General");
    icon-name: "user-home-symbolic";

    Adw.PreferencesGroup behavior_group {
      title: _("Behavior");

      Adw.ActionRow {
        title: _("Exit After Launching Games");
        activatable-widget: exit_after_launch_switch;

        Switch exit_after_launch_switch {
          valign: center;
        }
      }

      Adw.ActionRow {
        title: _("Cover Image Launches Game");
        subtitle: _("Swaps the behavior of the cover image and the play button");
        activatable-widget: cover_launches_game_switch;

        Switch cover_launches_game_switch {
          valign: center;
        }
      }
    }

    Adw.PreferencesGroup images_group {
      title: _("Images");

      Adw.ActionRow {
        title: _("High Quality Images");
        subtitle: _("Save game covers losslessly at the cost of storage");
        activatable-widget: high_quality_images_switch;

        Switch high_quality_images_switch {
          valign: center;
        }
      }
    }

    Adw.PreferencesGroup danger_zone_group {
      title: _("Danger Zone");

      Adw.ActionRow {
        title: _("Remove All Games");

        Button remove_all_games_button {
          label: _("Remove");
          valign: center;

          styles [
            "destructive-action",
          ]
        }
      }
    }
  }

  Adw.PreferencesPage import_page {
    name: "import";
    title: _("Import");
    icon-name: "document-save-symbolic";

    Adw.PreferencesGroup sources_group {
      title: _("Sources");

      Adw.ExpanderRow steam_expander_row {
        title: _("Steam");
        show-enable-switch: true;

        Adw.ActionRow steam_action_row {
          title: _("Steam Install Location");

          Button steam_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }
      }

      Adw.ExpanderRow lutris_expander_row {
        title: _("Lutris");
        show-enable-switch: true;

        Adw.ActionRow lutris_action_row {
          title: _("Lutris Install Location");

          Button lutris_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }

        Adw.ActionRow lutris_cache_action_row {
          title: _("Lutris Cache Location");

          Button lutris_cache_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }

        Adw.ActionRow {
          title: _("Import Steam Games");
          activatable-widget: lutris_import_steam_switch;

          Switch lutris_import_steam_switch {
            valign: center;
          }
        }
      }

      Adw.ExpanderRow heroic_expander_row {
        title: _("Heroic");
        show-enable-switch: true;

        Adw.ActionRow heroic_action_row {
          title: _("Heroic Install Location");

          Button heroic_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }

        Adw.ActionRow {
          title: _("Import Epic Games");
          activatable-widget: heroic_import_epic_switch;

          Switch heroic_import_epic_switch {
            valign: center;
          }
        }

        Adw.ActionRow {
          title: _("Import GOG Games");
          activatable-widget: heroic_import_gog_switch;

          Switch heroic_import_gog_switch {
            valign: center;
          }
        }

        Adw.ActionRow {
          title: _("Import Sideloaded Games");
          activatable-widget: heroic_import_sideload_switch;

          Switch heroic_import_sideload_switch {
            valign: center;
          }
        }
      }

      Adw.ExpanderRow bottles_expander_row {
        title: _("Bottles");
        show-enable-switch: true;

        Adw.ActionRow bottles_action_row {
          title: _("Bottles Install Location");

          Button bottles_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }
      }

      Adw.ExpanderRow itch_expander_row {
        title: _("itch");
        show-enable-switch: true;

        Adw.ActionRow itch_action_row {
          title: _("itch Install Location");

          Button itch_file_chooser_button {
            icon-name: "folder-symbolic";
            valign: center;
          }
        }
      }
    }
  }

  Adw.PreferencesPage sgdb_page {
    name: "sgdb";
    title: _("SteamGridDB");
    icon-name: "image-x-generic-symbolic";

    Adw.PreferencesGroup sgdb_key_group {
      title: _("Authentication");

      Adw.EntryRow sgdb_key_entry_row {
        title: _("API Key");
      }
    }

    Adw.PreferencesGroup sgdb_behavior_group {
      title: _("Behavior");

      Adw.ActionRow sgdb_switch_row {
        title: _("Use SteamGridDB");
        subtitle: _("Download images when adding or importing games");
        activatable-widget: sgdb_switch;

        Switch sgdb_switch {
          valign: center;
        }
      }

      Adw.ActionRow {
        title: _("Prefer Over Official Images");
        activatable-widget: sgdb_prefer_switch;

        Switch sgdb_prefer_switch {
          valign: center;
        }
      }

      Adw.ActionRow {
        title: _("Prefer Animated Images");
        activatable-widget: sgdb_animated_switch;

        Switch sgdb_animated_switch {
          valign: center;
        }
      }
    }
  }
}
