-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathUiPrinterFrame.h
121 lines (85 loc) · 3.4 KB
/
UiPrinterFrame.h
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// This implements the window that displays the emulated printer paper,
// It directly handles menu and status bar duties, and passes off the rest
// to the Printer class.
#ifndef _INCLUDE_UI_PRINTER_FRAME_H_
#define _INCLUDE_UI_PRINTER_FRAME_H_
#include "w2200.h"
#include "wx/wx.h"
#include <wx/cmndata.h>
#include <wx/print.h>
class Printer;
class PrinterFrame : public wxFrame
{
public:
CANT_ASSIGN_OR_COPY_CLASS(PrinterFrame);
// constructor
PrinterFrame(const wxString &title, int io_addr);
// destructor
~PrinterFrame() override;
// save/restore class-global options to/from config file
static void saveGlobalDefaults();
static void getGlobalDefaults();
// translation of papersize (wxPaperSize) enum
wxPaperSize paperSize(const std::string &papersize_name);
std::string paperSize(wxPaperSize papersize_val) const;
// translation of paperbin (wxPrintBin) enum
wxPrintBin paperBin(const std::string &paperbin_name) const noexcept;
std::string paperBin(wxPrintBin paperbin_val) const;
// emit a character to the display
void printChar(uint8 byte);
// add Printer to list
void addPrinter();
// destroy a specific Printer
void destroyWindow();
// print the entire contents of the print stream, then clear it
void printAndClear();
private:
// ---- event handlers ----
void OnFileClose(wxCommandEvent &event);
void OnFileSaveAs(wxCommandEvent &event);
void OnMenuOpen(wxMenuEvent &event);
// select screen font size
void OnFontSize(wxCommandEvent &event);
// toggle greenbar or not
void OnDisplayGreenbar(wxCommandEvent &event);
// bring up configuration dialog
void OnConfigureDialog(wxCommandEvent &event);
// clear the printer contents
void OnPrintClear(wxCommandEvent &event);
// print preview
void OnPrintPreview(wxCommandEvent &event);
// print
void OnPrint(wxCommandEvent &event);
// print setup
void OnPrintSetup(wxCommandEvent &event);
// page setup
void OnPageSetup(wxCommandEvent &event);
// called when the window changes size
void OnSize(wxSizeEvent &event);
// called when the window is manually closed ("X" button, or sys menu)
void OnClose(wxCloseEvent& WXUNUSED(event));
// used to override the preview window's OnClose event
void PP_OnClose(wxCloseEvent &event);
// ---- utility functions ----
void makeMenubar();
void makeStatusbar();
// save/get Printer options to the config file
void saveDefaults();
void getDefaults();
void setupRealPrinter(); // set the printer settings based on current defaults
void setMenuChecks();
// pick one of N color schemes
void setDisplayColorScheme(int n);
// ---- data members ----
const int m_printer_addr; // use to track configuration options
int m_font_size = 12; // eg 8 for 8 pt, 12 for 12 pt, etc
int m_preview_zoom = 25; // zoom factor for page preview
wxMenuBar *m_menubar = nullptr; // menubar on frame
wxStatusBar *m_statusbar = nullptr; // status bar on frame
Printer *m_printer = nullptr; // emulated Printer display window
wxPreviewFrame *m_preview = nullptr; // print preview frame
std::unique_ptr<wxPrintData> m_printData;
std::unique_ptr<wxPageSetupDialogData> m_pageSetupData;
};
#endif // _INCLUDE_UI_PRINTER_FRAME_H_
// vim: ts=8:et:sw=4:smarttab