1 #ifndef slic3r_GUI_KBShortcutsDialog_hpp_
2 #define slic3r_GUI_KBShortcutsDialog_hpp_
3 
4 #include <wx/wx.h>
5 #include <map>
6 #include <vector>
7 
8 #include "GUI_Utils.hpp"
9 #include "wxExtensions.hpp"
10 
11 namespace Slic3r {
12 namespace GUI {
13 
14 class KBShortcutsDialog : public DPIDialog
15 {
16     typedef std::pair<std::string, std::string> Shortcut;
17     typedef std::vector<Shortcut> Shortcuts;
18     typedef std::pair<std::pair<wxString, wxString>, Shortcuts> ShortcutsItem;
19     typedef std::vector<ShortcutsItem> ShortcutsVec;
20 
21     ShortcutsVec    m_full_shortcuts;
22     ScalableBitmap  m_logo_bmp;
23     wxStaticBitmap* m_header_bitmap;
24     std::vector<wxPanel*> m_pages;
25 
26 public:
27     KBShortcutsDialog();
28 
29 protected:
30     void on_dpi_changed(const wxRect &suggested_rect) override;
31 
32 private:
33     void fill_shortcuts();
34 
35     wxPanel* create_header(wxWindow* parent, const wxFont& bold_font);
36     wxPanel* create_page(wxWindow* parent, const ShortcutsItem& shortcuts, const wxFont& font, const wxFont& bold_font);
37 };
38 
39 } // namespace GUI
40 } // namespace Slic3r
41 
42 #endif
43