MeshLib C++ Docs
Loading...
Searching...
No Matches
MRIOFilesMenuItems.h
Go to the documentation of this file.
1#pragma once
2#include "MRMesh/MRMeshFwd.h"
6#include <filesystem>
7
8#ifndef MESHLIB_NO_VOXELS
9#include "MRVoxels/MRVoxelsFwd.h"
10#endif
11
12namespace MR
13{
16
17using FileNamesStack = std::vector<std::filesystem::path>;
18
20{
21public:
23 std::string isAvailable( const std::vector<std::shared_ptr<const Object>>& ) const override;
24 bool action() override;
25 void openDirectory( const std::filesystem::path& directory ) const;
26};
27
28class OpenFilesMenuItem : public RibbonMenuItem, public MultiListener<DragEntranceListener, DragOverListener, DragDropListener, PreDrawListener>
29{
30public:
33 virtual bool action() override;
34
35 virtual const DropItemsList& dropItems() const override;
36private:
37 virtual void dragEntrance_( bool entered ) override;
38 virtual bool dragOver_( int x, int y ) override;
39 virtual bool dragDrop_( const std::vector<std::filesystem::path>& paths ) override;
40
41 virtual void preDraw_() override;
42
43 bool dragging_{ false };
44 Vector2i dragPos_;
45
46 void parseLaunchParams_();
47 void setupListUpdate_();
48
49 boost::signals2::scoped_connection recentStoreConnection_;
50 FileNamesStack recentPathsCache_;
51 IOFilters filters_;
52 std::shared_ptr<OpenDirectoryMenuItem> openDirectoryItem_;
53};
54
55#if !defined( MESHLIB_NO_VOXELS ) && !defined( MRVOXELS_NO_DICOM )
57{
58public:
60 virtual bool action() override;
61};
62#endif
63
65{
66public:
68 virtual bool action() override;
69 virtual std::string isAvailable( const std::vector<std::shared_ptr<const Object>>&objs ) const override;
70};
71
73{
74public:
76 virtual bool action() override;
77};
78
80{
81public:
82 SaveSceneAsMenuItem( const std::string& pluginName = "Save Scene As" );
83 virtual bool action() override;
84 virtual std::string isAvailable( const std::vector<std::shared_ptr<const Object>>& ) const override;
85
86protected:
88 void saveScene_( const std::filesystem::path& savePath );
89};
90
92{
93public:
95 virtual bool action() override;
96};
97
98class CaptureScreenshotMenuItem : public StatePlugin
99{
100public:
102 virtual void drawDialog( ImGuiContext* ) override;
103 virtual bool blocking() const override { return false; }
104private:
105 Vector2i resolution_;
106 bool transparentBg_{ true };
107};
108
110{
111public:
113 virtual bool action() override;
114};
115
117{
118public:
120 virtual bool action() override;
121 virtual std::string isAvailable( const std::vector<std::shared_ptr<const Object>>& ) const override;
122};
123
124}
Definition MRIOFilesMenuItems.h:99
Definition MRIOFilesMenuItems.h:117
Definition MRIOFilesMenuItems.h:110
Definition MRIOFilesMenuItems.h:57
Definition MRIOFilesMenuItems.h:20
Definition MRIOFilesMenuItems.h:29
Definition MRRibbonMenuItem.h:23
Definition MRIOFilesMenuItems.h:65
Definition MRIOFilesMenuItems.h:80
Definition MRIOFilesMenuItems.h:92
Definition MRIOFilesMenuItems.h:73
checks that given vector has at least N objects if type ObjectT
Definition MRSceneStateCheck.h:125
SaveSceneAsMenuItem(const std::string &pluginName="Save Scene As")
virtual std::string isAvailable(const std::vector< std::shared_ptr< const Object > > &) const override
return empty string if all requirements are satisfied, otherwise return first unsatisfied requirement
virtual bool action() override
returns true if state of item changed
std::vector< std::shared_ptr< RibbonMenuItem > > DropItemsList
Definition MRRibbonMenuItem.h:50
std::string isAvailable(const std::vector< std::shared_ptr< const Object > > &) const override
return empty string if all requirements are satisfied, otherwise return first unsatisfied requirement
virtual void drawDialog(ImGuiContext *) override
virtual bool action() override
returns true if state of item changed
virtual bool action() override
returns true if state of item changed
bool action() override
returns true if state of item changed
virtual bool action() override
returns true if state of item changed
virtual const DropItemsList & dropItems() const override
virtual bool action() override
returns true if state of item changed
virtual std::string isAvailable(const std::vector< std::shared_ptr< const Object > > &) const override
return empty string if all requirements are satisfied, otherwise return first unsatisfied requirement
virtual std::string isAvailable(const std::vector< std::shared_ptr< const Object > > &objs) const override
return empty string if all requirements are satisfied, otherwise return first unsatisfied requirement
std::vector< std::filesystem::path > FileNamesStack
Definition MRIOFilesMenuItems.h:17
virtual bool blocking() const override
Definition MRIOFilesMenuItems.h:103
virtual bool action() override
returns true if state of item changed
virtual bool action() override
returns true if state of item changed
void openDirectory(const std::filesystem::path &directory) const
void saveScene_(const std::filesystem::path &savePath)
virtual bool action() override
returns true if state of item changed
std::vector< IOFilter > IOFilters
Definition MRIOFilters.h:32
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRViewerEventsListener.h:32