-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
71 lines (60 loc) · 1.88 KB
/
main.cpp
File metadata and controls
71 lines (60 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#include "menu_class.hpp"
#include "desktop.hpp"
using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;
#ifdef _IRR_WINDOWS_
#pragma comment(lib, "Irrlicht.lib")
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#endif
#define IN_DESKTOP(X) my_desktop.GET_DESKTOP_PATH()+"\\"+X
#define var_dict(X) {{"filename",IN_DESKTOP(X)}}
#define DEFAULT_EXTENSION "default"
#include <iostream>
#include <map>
#include <vector>
using namespace std;
int main(int argc, char const* argv[])
{
extension_menu_dictionary menuitems = menu_utils::get_popups_from_file("src/menu_items.xml", "src/vars.xml");
vector<filename> file_list = my_desktop.get_filenames();
vector<foldername> folder_list = my_desktop.get_foldernames();
size_t i;
for (i = 0; i < file_list.size(); i++)
{
filename cur_file = file_list[i];
extension ext = menu_utils::extension_of(cur_file);
if (menuitems.find(ext) == menuitems.end())
ext = DEFAULT_EXTENSION;
p_menu* menu = new p_menu(menuitems[ext]);
my_desktop.iconset[i].set_icon(
&my_desktop,
menu,
cur_file,
my_desktop.GET_DESKTOP_PATH(),
ext
);
std::vector<p_item>& items = my_desktop.iconset[i].get_menu()->menu_items();
for (p_item& p : items)
p.set_cmd(menu_utils::mustache_parse(p.get_cmd(), var_dict(cur_file)));
}
for (i = 0; i < folder_list.size(); i++)
{
foldername cur_folder = folder_list[i];
p_menu* menu = new p_menu(menuitems[FOLDER_EXTENSION]);
my_desktop.iconset[i].set_icon(
&my_desktop,
menu,
cur_folder,
my_desktop.GET_DESKTOP_PATH()
);
std::vector<p_item>& items = my_desktop.iconset[i].get_menu()->menu_items();
for (p_item& p : items)
p.set_cmd(menu_utils::mustache_parse(p.get_cmd(), var_dict(cur_folder)));
}
my_desktop.render();
return 0;
}