/* * Copyright 2020-2024 Haiku, Inc. All rights reserved. * Distributed under the terms of the MIT License. * * Authors: * John Scipione, jscipione@gmail.com */ #ifndef _SHORTCUTS_H #define _SHORTCUTS_H #include #include "ContainerWindow.h" class BMenu; class BMenuItem; namespace BPrivate { class BPoseView; class TShortcuts { public: TShortcuts(); TShortcuts(BContainerWindow* window); // build item BMenuItem* AddOnsItem(); const char* AddOnsLabel(); BMenuItem* ArrangeByItem(); const char* ArrangeByLabel(); BMenuItem* AddPrinterItem(); const char* AddPrinterLabel(); BMenuItem* CleanupItem(); const char* CleanupLabel(); int32 CleanupCommand(); BMenuItem* CloseItem(); const char* CloseLabel(); int32 CloseCommand(); BMenuItem* CloseAllInWorkspaceItem(); const char* CloseAllInWorkspaceLabel(); BMenuItem* CopyItem(); const char* CopyLabel(); int32 CopyCommand(); BMenuItem* CopyToItem(); BMenuItem* CopyToItem(BMenu*); const char* CopyToLabel(); BMenuItem* CreateLinkItem(); BMenuItem* CreateLinkItem(BMenu*); const char* CreateLinkLabel(); int32 CreateLinkCommand(); BMenuItem* CreateLinkHereItem(); const char* CreateLinkHereLabel(); int32 CreateLinkHereCommand(); BMenuItem* CutItem(); const char* CutLabel(); int32 CutCommand(); BMenuItem* DeleteItem(); const char* DeleteLabel(); BMenuItem* DuplicateItem(); const char* DuplicateLabel(); BMenuItem* EditNameItem(); const char* EditNameLabel(); BMenuItem* EditQueryItem(); const char* EditQueryLabel(); BMenuItem* EmptyTrashItem(); const char* EmptyTrashLabel(); BMenuItem* FindItem(); const char* FindLabel(); BMenuItem* GetInfoItem(); const char* GetInfoLabel(); BMenuItem* IdentifyItem(); const char* IdentifyLabel(); BMenuItem* InvertSelectionItem(); const char* InvertSelectionLabel(); BMenuItem* MakeActivePrinterItem(); const char* MakeActivePrinterLabel(); BMenuItem* MountItem(); BMenuItem* MountItem(BMenu*); const char* MountLabel(); BMenuItem* MoveToItem(); BMenuItem* MoveToItem(BMenu*); const char* MoveToLabel(); BMenuItem* MoveToTrashItem(); const char* MoveToTrashLabel(); int32 MoveToTrashCommand(); BMenuItem* NewFolderItem(); const char* NewFolderLabel(); BMenuItem* NewTemplatesItem(); BMenuItem* NewTemplatesItem(BMenu*); const char* NewTemplatesLabel(); BMenuItem* OpenItem(); const char* OpenLabel(); BMenuItem* OpenParentItem(); const char* OpenParentLabel(); BMenuItem* OpenWithItem(); BMenuItem* OpenWithItem(BMenu*); const char* OpenWithLabel(); BMenuItem* PasteItem(); const char* PasteLabel(); int32 PasteCommand(); BMenuItem* RestoreItem(); const char* RestoreLabel(); BMenuItem* ReverseOrderItem(); const char* ReverseOrderLabel(); BMenuItem* ResizeToFitItem(); const char* ResizeToFitLabel(); BMenuItem* SelectItem(); const char* SelectLabel(); BMenuItem* SelectAllItem(); const char* SelectAllLabel(); BMenuItem* UnmountItem(); const char* UnmountLabel(); // update item void Update(BMenu*); void UpdateAddOnsItem(BMenuItem*); void UpdateAddPrinterItem(BMenuItem*); void UpdateArrangeByItem(BMenuItem*); void UpdateCleanupItem(BMenuItem*); void UpdateCloseAllInWorkspaceItem(BMenuItem*); void UpdateCloseItem(BMenuItem*); void UpdateCopyItem(BMenuItem*); void UpdateCopyToItem(BMenuItem*); void UpdateCreateLinkItem(BMenuItem*); void UpdateCreateLinkHereItem(BMenuItem*); void UpdateCutItem(BMenuItem*); void UpdateDeleteItem(BMenuItem*); void UpdateDuplicateItem(BMenuItem*); void UpdateEditNameItem(BMenuItem*); void UpdateEditQueryItem(BMenuItem*); void UpdateEmptyTrashItem(BMenuItem*); void UpdateFindItem(BMenuItem*); void UpdateGetInfoItem(BMenuItem*); void UpdateIdentifyItem(BMenuItem*); void UpdateInvertSelectionItem(BMenuItem*); void UpdateMakeActivePrinterItem(BMenuItem*); void UpdateMoveToItem(BMenuItem*); void UpdateMoveToTrashItem(BMenuItem*); void UpdateNewFolderItem(BMenuItem*); void UpdateNewTemplatesItem(BMenuItem*); void UpdateOpenItem(BMenuItem*); void UpdateOpenParentItem(BMenuItem*); void UpdateOpenWithItem(BMenuItem*); void UpdatePasteItem(BMenuItem*); void UpdateResizeToFitItem(BMenuItem*); void UpdateRestoreItem(BMenuItem*); void UpdateReverseOrderItem(BMenuItem*); void UpdateSelectItem(BMenuItem*); void UpdateSelectAllItem(BMenuItem*); void UpdateUnmountItem(BMenuItem*); // convenience methods BMenuItem* FindItem(BMenu* menu, int32 command1, int32 command2); BPoseView* PoseView() const; bool IsCurrentFocusOnTextView() const; bool IsDesktop() const; bool IsQuery() const; bool IsQueryTemplate() const; bool IsRoot() const; bool InTrash() const; bool IsTrash() const; bool IsVirtualDirectory() const; bool IsVolume() const; bool HasSelection() const; bool SelectionIsReadOnly() const; bool TargetIsReadOnly() const; private: BContainerWindow* fContainerWindow; bool fInWindow; }; inline BPoseView* TShortcuts::PoseView() const { return fInWindow ? fContainerWindow->PoseView() : NULL; } } // namespace BPrivate using namespace BPrivate; #endif // _SHORTCUTS_H