Eclipse SUMO - Simulation of Urban MObility
Loading...
Searching...
No Matches
GNEFileSelector.h
Go to the documentation of this file.
1/****************************************************************************/
2// Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
3// Copyright (C) 2001-2025 German Aerospace Center (DLR) and others.
4// This program and the accompanying materials are made available under the
5// terms of the Eclipse Public License 2.0 which is available at
6// https://www.eclipse.org/legal/epl-2.0/
7// This Source Code may also be made available under the following Secondary
8// Licenses when the conditions for such availability set forth in the Eclipse
9// Public License 2.0 are satisfied: GNU General Public License, version 2
10// or later which is available at
11// https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
12// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
13/****************************************************************************/
18// widget used for file selection
19/****************************************************************************/
20#pragma once
21#include <config.h>
22
23#include <vector>
25
26#include "GNEFileDialog.h"
27
28// ===========================================================================
29// class declaration
30// ===========================================================================
31
32class MFXComboBoxIcon;
35
36// ===========================================================================
37// class definitions
38// ===========================================================================
39
40class GNEFileSelector : public FXVerticalFrame {
42 FXDECLARE(GNEFileSelector)
43
44public:
46 GNEFileSelector(GNEFileDialog* fileDialog, const std::vector<std::string>& extensions,
48
50 virtual ~GNEFileSelector();
51
53 void setFilename(const FXString& path);
54
56 std::string getFilename() const;
57
59 std::vector<std::string> getFilenames() const;
60
62 std::string getDirectory() const;
63
65 const std::vector<std::string>& getFileExtension() const;
66
68 void setDirectory(const FXString& path);
69
71 void setItemSpace(FXint s);
72
74 FXint getItemSpace() const;
75
77 void setFileBoxStyle(FXuint style);
78
80 FXuint getFileBoxStyle() const;
81
83 void setMatchMode(FXuint mode);
84
86 FXuint getMatchMode() const;
87
89 FXbool showHiddenFiles() const;
90
92 void showHiddenFiles(FXbool showing);
93
95 FXbool showImages() const;
96
98 void showImages(FXbool showing);
99
101 FXint getImageSize() const;
102
104 void setImageSize(FXint size);
105
108
111
113 long onCmdAccept(FXObject*, FXSelector, void*);
114
116 long onCmdFilter(FXObject*, FXSelector, void*);
117
119 long onCmdItemDoubleClicked(FXObject* obj, FXSelector sel, void* ptr);
120
122 long onCmdItemSelected(FXObject*, FXSelector, void*);
123
125 long onCmdItemDeselected(FXObject*, FXSelector, void*);
126
128 long onCmdDirectoryUp(FXObject*, FXSelector, void*);
129
131 long onUpdDirectoryUp(FXObject*, FXSelector, void*);
132
134 long onCmdDirTree(FXObject*, FXSelector, void*);
135
137 long onCmdHomeFolder(FXObject*, FXSelector, void*);
138
140 long onCmdWorkFolder(FXObject*, FXSelector, void*);
141
143 long onCmdConfigFolder(FXObject*, FXSelector, void*);
144
146 long onCmdBookmark(FXObject*, FXSelector, void*);
147
149 long onCmdVisit(FXObject*, FXSelector, void*);
150
152 long onCmdNewFolder(FXObject*, FXSelector, void*);
153
155 long onUpdNewFolder(FXObject*, FXSelector, void*);
156
158 long onCmdMove(FXObject*, FXSelector, void*);
159
161 long onCmdCopy(FXObject*, FXSelector, void*);
162
164 long onCmdDelete(FXObject*, FXSelector, void*);
165
167 long onUpdSelected(FXObject*, FXSelector, void*);
168
170 long onPopupMenu(FXObject*, FXSelector, void*);
171
173 long onCmdImageSize(FXObject*, FXSelector, void*);
174
176 long onUpdImageSize(FXObject*, FXSelector, void*);
177
179 long onKeyPress(FXObject* obj, FXSelector sel, void* ptr);
180
182
183protected:
185 FOX_CONSTRUCTOR(GNEFileSelector)
186
187
189
191 const GNEFileDialog::OpenMode myOpenMode = GNEFileDialog::OpenMode::SAVE;
192
194 const GNEFileDialog::ConfigType myConfigType = GNEFileDialog::ConfigType::NETEDIT;
195
197 FXFileList* myFileSelector = nullptr;
198
201
204
206 FXMenuPane* myBookmarkMenuPane = nullptr;
207
209 FXDirBox* myDirBox = nullptr;
210
212 FXRecentFiles myBookmarksRecentFiles = nullptr;
213
215 std::vector<std::vector<std::string> > myExtensions;
216
217private:
219 std::vector<std::string> getSelectedFiles() const;
220
222 std::vector<std::string> getSelectedFilesOnly() const;
223
225 void buildBookmarkMenuPane(FXHorizontalFrame* navigatorHorizontalFrame);
226
228 void buildButtons(FXHorizontalFrame* navigatorHorizontalFrame, MFXStaticToolTip* staticTooltipMenu);
229
231 void buildShortcuts();
232
234 void parseExtensions(const std::vector<std::string>& extensions);
235
238
240 GNEFileSelector& operator=(const GNEFileSelector&) = delete;
241};
242
243/****************************************************************************/
@ SAVE
save icons
OpenMode
file open mode
ConfigType
config type
void parseExtensions(const std::vector< std::string > &extensions)
parse extensions from pattern text
std::string getFilename() const
Return file name, if any.
void setFilename(const FXString &path)
Change file name.
long onCmdVisit(FXObject *, FXSelector, void *)
Handler for visiting a bookmarked location.
long onKeyPress(FXObject *obj, FXSelector sel, void *ptr)
called when user press a key
void setFileBoxStyle(FXuint style)
Change file list style.
FXint getImageSize() const
Return images preview size.
std::string getDirectory() const
Return directory.
GNEFileDialog * myFileDialog
FOX needs this.
FXDirBox * myDirBox
Directory hierarchy list.
long onCmdDelete(FXObject *, FXSelector, void *)
Handler for deleting an item.
long onCmdFilter(FXObject *, FXSelector, void *)
Handler for filtering items.
const std::vector< std::string > & getFileExtension() const
get file extension
long onCmdDirTree(FXObject *, FXSelector, void *)
Handler for directory tree navigation.
long onUpdImageSize(FXObject *, FXSelector, void *)
Update handler for enabling/disabling image size command.
long onCmdItemSelected(FXObject *, FXSelector, void *)
Handler for selecting an item.
std::vector< std::string > getSelectedFiles() const
get selected files
const GNEFileDialog::ConfigType myConfigType
config type
std::vector< std::vector< std::string > > myExtensions
extensions
std::vector< std::string > getFilenames() const
get file names
FXint getItemSpace() const
Return the inter-item spacing (in pixels)
const GNEFileDialog::OpenMode myOpenMode
open mode
virtual ~GNEFileSelector()
Destructor.
MFXComboBoxIcon * myFileFilterComboBox
Combobox for pattern list.
long onCmdDirectoryUp(FXObject *, FXSelector, void *)
Handler for moving up one directory.
void setDirectory(const FXString &path)
Change directory.
long onCmdNewFolder(FXObject *, FXSelector, void *)
Handler for creating a new item or directory.
FXFileList * myFileSelector
File list widget.
void buildShortcuts()
build shortcuts
MFXTextFieldIcon * getFilenameTextField() const
get file name entry field
long onCmdItemDoubleClicked(FXObject *obj, FXSelector sel, void *ptr)
Handler for double-clicking an item.
long onCmdCopy(FXObject *, FXSelector, void *)
Handler for copying an item.
FXbool showHiddenFiles() const
Return TRUE if showing hidden files.
long onCmdMove(FXObject *, FXSelector, void *)
Handler for moving an item.
FXuint getFileBoxStyle() const
Return file list style.
long onUpdDirectoryUp(FXObject *, FXSelector, void *)
Update handler for enabling/disabling directory up command.
long onCmdHomeFolder(FXObject *, FXSelector, void *)
Handler for navigating to the home directory.
long onCmdWorkFolder(FXObject *, FXSelector, void *)
Handler for navigating to the work directory.
long onCmdItemDeselected(FXObject *, FXSelector, void *)
Handler for deselecting an item.
long onCmdAccept(FXObject *, FXSelector, void *)
Handler for accepting a command.
std::vector< std::string > getSelectedFilesOnly() const
get selected files that are not directories
void setMatchMode(FXuint mode)
Change wildcard matching mode.
long onPopupMenu(FXObject *, FXSelector, void *)
Handler for showing the popup menu.
MFXTextFieldIcon * myFilenameTextField
File name entry field.
FXMenuPane * myBookmarkMenuPane
Menu for myBookmarksRecentFiles.
long onCmdConfigFolder(FXObject *, FXSelector, void *)
Handler for navigating to the sumo/netedit config directory.
FXbool showImages() const
Return TRUE if image preview on.
long onUpdNewFolder(FXObject *, FXSelector, void *)
Update handler for enabling/disabling new command.
long onUpdSelected(FXObject *, FXSelector, void *)
Update handler for enabling/disabling commands based on selection.
void setImageSize(FXint size)
Change images preview size.
long onCmdBookmark(FXObject *, FXSelector, void *)
Handler for opening myBookmarksRecentFiles.
void buildBookmarkMenuPane(FXHorizontalFrame *navigatorHorizontalFrame)
build bookmarks menu
void setItemSpace(FXint s)
Set the inter-item spacing (in pixels)
long onCmdImageSize(FXObject *, FXSelector, void *)
Handler for showing or calculating image size.
FXuint getMatchMode() const
Return wildcard matching mode.
void buildButtons(FXHorizontalFrame *navigatorHorizontalFrame, MFXStaticToolTip *staticTooltipMenu)
build buttons
FXRecentFiles myBookmarksRecentFiles
Bookmarked places.
MFXStaticToolTip (based on FXToolTip)
Definition json.hpp:4471