2021-01-08 09:14:13 +01:00
using Gtk ;
2024-01-29 22:08:24 +00:00
using System ;
2021-01-08 09:14:13 +01:00
2024-02-11 02:09:18 +00:00
namespace Ryujinx.UI.Widgets
2021-01-08 09:14:13 +01:00
{
public partial class GameTableContextMenu : Menu
{
private MenuItem _openSaveUserDirMenuItem ;
private MenuItem _openSaveDeviceDirMenuItem ;
private MenuItem _openSaveBcatDirMenuItem ;
private MenuItem _manageTitleUpdatesMenuItem ;
private MenuItem _manageDlcMenuItem ;
2022-01-03 08:39:43 +00:00
private MenuItem _manageCheatMenuItem ;
2021-01-08 09:14:13 +01:00
private MenuItem _openTitleModDirMenuItem ;
2022-03-06 21:12:01 +00:00
private MenuItem _openTitleSdModDirMenuItem ;
2023-07-02 00:25:07 +02:00
private Menu _extractSubMenu ;
2021-01-08 09:14:13 +01:00
private MenuItem _extractMenuItem ;
private MenuItem _extractRomFsMenuItem ;
private MenuItem _extractExeFsMenuItem ;
private MenuItem _extractLogoMenuItem ;
2023-07-02 00:25:07 +02:00
private Menu _manageSubMenu ;
2021-01-08 09:14:13 +01:00
private MenuItem _manageCacheMenuItem ;
private MenuItem _purgePtcCacheMenuItem ;
private MenuItem _purgeShaderCacheMenuItem ;
private MenuItem _openPtcDirMenuItem ;
private MenuItem _openShaderCacheDirMenuItem ;
2023-10-21 05:51:15 +11:00
private MenuItem _createShortcutMenuItem ;
2021-01-08 09:14:13 +01:00
private void InitializeComponent ( )
{
//
// _openSaveUserDirMenuItem
//
_openSaveUserDirMenuItem = new MenuItem ( "Open User Save Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains Application's User Saves." ,
2021-01-08 09:14:13 +01:00
} ;
_openSaveUserDirMenuItem . Activated + = OpenSaveUserDir_Clicked ;
//
// _openSaveDeviceDirMenuItem
//
_openSaveDeviceDirMenuItem = new MenuItem ( "Open Device Save Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains Application's Device Saves." ,
2021-01-08 09:14:13 +01:00
} ;
_openSaveDeviceDirMenuItem . Activated + = OpenSaveDeviceDir_Clicked ;
//
// _openSaveBcatDirMenuItem
//
_openSaveBcatDirMenuItem = new MenuItem ( "Open BCAT Save Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains Application's BCAT Saves." ,
2021-01-08 09:14:13 +01:00
} ;
_openSaveBcatDirMenuItem . Activated + = OpenSaveBcatDir_Clicked ;
//
// _manageTitleUpdatesMenuItem
//
_manageTitleUpdatesMenuItem = new MenuItem ( "Manage Title Updates" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the Title Update management window" ,
2021-01-08 09:14:13 +01:00
} ;
_manageTitleUpdatesMenuItem . Activated + = ManageTitleUpdates_Clicked ;
//
// _manageDlcMenuItem
//
_manageDlcMenuItem = new MenuItem ( "Manage DLC" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the DLC management window" ,
2021-01-08 09:14:13 +01:00
} ;
_manageDlcMenuItem . Activated + = ManageDlc_Clicked ;
2022-01-03 08:39:43 +00:00
//
// _manageCheatMenuItem
//
_manageCheatMenuItem = new MenuItem ( "Manage Cheats" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the Cheat management window" ,
2022-01-03 08:39:43 +00:00
} ;
_manageCheatMenuItem . Activated + = ManageCheats_Clicked ;
2021-01-08 09:14:13 +01:00
//
// _openTitleModDirMenuItem
//
_openTitleModDirMenuItem = new MenuItem ( "Open Mods Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains Application's Mods." ,
2021-01-08 09:14:13 +01:00
} ;
_openTitleModDirMenuItem . Activated + = OpenTitleModDir_Clicked ;
2022-03-06 21:12:01 +00:00
//
// _openTitleSdModDirMenuItem
//
_openTitleSdModDirMenuItem = new MenuItem ( "Open Atmosphere Mods Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the alternative SD card atmosphere directory which contains the Application's Mods." ,
2022-03-06 21:12:01 +00:00
} ;
_openTitleSdModDirMenuItem . Activated + = OpenTitleSdModDir_Clicked ;
2021-01-08 09:14:13 +01:00
//
// _extractSubMenu
//
_extractSubMenu = new Menu ( ) ;
//
// _extractMenuItem
//
_extractMenuItem = new MenuItem ( "Extract Data" )
{
Submenu = _extractSubMenu
} ;
//
// _extractRomFsMenuItem
//
_extractRomFsMenuItem = new MenuItem ( "RomFS" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Extract the RomFS section from Application's current config (including updates)." ,
2021-01-08 09:14:13 +01:00
} ;
_extractRomFsMenuItem . Activated + = ExtractRomFs_Clicked ;
//
// _extractExeFsMenuItem
//
_extractExeFsMenuItem = new MenuItem ( "ExeFS" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Extract the ExeFS section from Application's current config (including updates)." ,
2021-01-08 09:14:13 +01:00
} ;
_extractExeFsMenuItem . Activated + = ExtractExeFs_Clicked ;
//
// _extractLogoMenuItem
//
_extractLogoMenuItem = new MenuItem ( "Logo" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Extract the Logo section from Application's current config (including updates)." ,
2021-01-08 09:14:13 +01:00
} ;
_extractLogoMenuItem . Activated + = ExtractLogo_Clicked ;
//
// _manageSubMenu
//
_manageSubMenu = new Menu ( ) ;
//
// _manageCacheMenuItem
//
_manageCacheMenuItem = new MenuItem ( "Cache Management" )
{
2023-07-02 00:25:07 +02:00
Submenu = _manageSubMenu ,
2021-01-08 09:14:13 +01:00
} ;
//
// _purgePtcCacheMenuItem
//
2022-08-19 17:39:59 -06:00
_purgePtcCacheMenuItem = new MenuItem ( "Queue PPTC Rebuild" )
2021-01-08 09:14:13 +01:00
{
2023-07-02 00:25:07 +02:00
TooltipText = "Trigger PPTC to rebuild at boot time on the next game launch." ,
2021-01-08 09:14:13 +01:00
} ;
_purgePtcCacheMenuItem . Activated + = PurgePtcCache_Clicked ;
//
// _purgeShaderCacheMenuItem
//
_purgeShaderCacheMenuItem = new MenuItem ( "Purge Shader Cache" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Delete the Application's shader cache." ,
2021-01-08 09:14:13 +01:00
} ;
_purgeShaderCacheMenuItem . Activated + = PurgeShaderCache_Clicked ;
//
// _openPtcDirMenuItem
//
_openPtcDirMenuItem = new MenuItem ( "Open PPTC Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains the Application's PPTC cache." ,
2021-01-08 09:14:13 +01:00
} ;
_openPtcDirMenuItem . Activated + = OpenPtcDir_Clicked ;
//
// _openShaderCacheDirMenuItem
//
_openShaderCacheDirMenuItem = new MenuItem ( "Open Shader Cache Directory" )
{
2023-07-02 00:25:07 +02:00
TooltipText = "Open the directory which contains the Application's shader cache." ,
2021-01-08 09:14:13 +01:00
} ;
_openShaderCacheDirMenuItem . Activated + = OpenShaderCacheDir_Clicked ;
2023-10-21 05:51:15 +11:00
//
// _createShortcutMenuItem
//
_createShortcutMenuItem = new MenuItem ( "Create Application Shortcut" )
{
2024-01-29 22:08:24 +00:00
TooltipText = OperatingSystem . IsMacOS ( ) ? "Create a shortcut in macOS's Applications folder that launches the selected Application" : "Create a Desktop Shortcut that launches the selected Application."
2023-10-21 05:51:15 +11:00
} ;
_createShortcutMenuItem . Activated + = CreateShortcut_Clicked ;
2021-01-08 09:14:13 +01:00
ShowComponent ( ) ;
}
private void ShowComponent ( )
{
_extractSubMenu . Append ( _extractExeFsMenuItem ) ;
_extractSubMenu . Append ( _extractRomFsMenuItem ) ;
_extractSubMenu . Append ( _extractLogoMenuItem ) ;
_manageSubMenu . Append ( _purgePtcCacheMenuItem ) ;
_manageSubMenu . Append ( _purgeShaderCacheMenuItem ) ;
_manageSubMenu . Append ( _openPtcDirMenuItem ) ;
_manageSubMenu . Append ( _openShaderCacheDirMenuItem ) ;
2023-11-12 01:08:42 +10:00
Add ( _createShortcutMenuItem ) ;
Add ( new SeparatorMenuItem ( ) ) ;
2021-01-08 09:14:13 +01:00
Add ( _openSaveUserDirMenuItem ) ;
Add ( _openSaveDeviceDirMenuItem ) ;
Add ( _openSaveBcatDirMenuItem ) ;
Add ( new SeparatorMenuItem ( ) ) ;
Add ( _manageTitleUpdatesMenuItem ) ;
Add ( _manageDlcMenuItem ) ;
2022-01-03 08:39:43 +00:00
Add ( _manageCheatMenuItem ) ;
2021-01-08 09:14:13 +01:00
Add ( _openTitleModDirMenuItem ) ;
2022-03-06 21:12:01 +00:00
Add ( _openTitleSdModDirMenuItem ) ;
2021-01-08 09:14:13 +01:00
Add ( new SeparatorMenuItem ( ) ) ;
Add ( _manageCacheMenuItem ) ;
Add ( _extractMenuItem ) ;
ShowAll ( ) ;
}
}
2023-07-02 00:25:07 +02:00
}