yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
assembly_editor.h
Go to the documentation of this file.
1#ifndef YAZE_APP_EDITOR_ASSEMBLY_EDITOR_H
2#define YAZE_APP_EDITOR_ASSEMBLY_EDITOR_H
3
4#include <string>
5#include <vector>
6
7#include "absl/container/flat_hash_map.h"
8#include "app/editor/editor.h"
11#include "app/gui/core/style.h"
12#include "app/rom.h"
13
14namespace yaze {
15namespace editor {
16
17struct FolderItem {
18 std::string name;
19 std::vector<FolderItem> subfolders;
20 std::vector<std::string> files;
21};
22
27class AssemblyEditor : public Editor {
28 public:
34 void ChangeActiveFile(const std::string_view &filename);
35
36 void Initialize() override;
37 absl::Status Load() override;
38 void Update(bool &is_loaded);
39 void InlineUpdate();
40
41 void UpdateCodeView();
42
43 absl::Status Cut() override;
44 absl::Status Copy() override;
45 absl::Status Paste() override;
46
47 absl::Status Undo() override;
48 absl::Status Redo() override;
49 absl::Status Find() override { return absl::UnimplementedError("Find"); }
50
51 absl::Status Update() override;
52
53 absl::Status Save() override;
54
55 void OpenFolder(const std::string &folder_path);
56
57 void set_rom(Rom* rom) { rom_ = rom; }
58 Rom* rom() const { return rom_; }
59
60 private:
61 void DrawFileMenu();
62 void DrawEditMenu();
63 void DrawCurrentFolder();
65 void DrawToolset();
66
67 bool file_is_loaded_ = false;
70
71 std::vector<std::string> files_;
72 std::vector<TextEditor> open_files_;
73 ImVector<int> active_files_;
74
75 std::string current_file_;
78
80};
81
82} // namespace editor
83} // namespace yaze
84
85#endif
static const Palette & GetDarkPalette()
void SetShowWhitespaces(bool aValue)
void SetPalette(const Palette &aValue)
The Rom class is used to load, save, and modify Rom data.
Definition rom.h:74
Text editor for modifying assembly code.
absl::Status Find() override
absl::Status Save() override
std::vector< TextEditor > open_files_
absl::Status Load() override
void ChangeActiveFile(const std::string_view &filename)
absl::Status Copy() override
void OpenFolder(const std::string &folder_path)
absl::Status Paste() override
absl::Status Update() override
std::vector< std::string > files_
AssemblyEditor(Rom *rom=nullptr)
absl::Status Redo() override
absl::Status Undo() override
absl::Status Cut() override
Interface for editor classes.
Definition editor.h:122
EditorType type_
Definition editor.h:164
Main namespace for the application.
Definition controller.cc:20
std::vector< FolderItem > subfolders
std::vector< std::string > files