Mercurial > minori
comparison src/ui_utils.cpp @ 2:23d0d9319a00
Update
Also converted everything to LF from CRLF
author | Paper <mrpapersonic@gmail.com> |
---|---|
date | Sat, 12 Aug 2023 03:16:26 -0400 |
parents | 1ae666fdf9e2 |
children | 1d82f6e04d7d |
comparison
equal
deleted
inserted
replaced
1:1ae666fdf9e2 | 2:23d0d9319a00 |
---|---|
1 #include "window.h" | 1 #include "window.h" |
2 #include "ui_utils.h" | 2 #include "ui_utils.h" |
3 #ifdef MACOSX | |
4 #include "sys/osx/dark_theme.h" | |
5 #else | |
6 #include "sys/win32/dark_theme.h" | |
7 #endif | |
3 | 8 |
4 void UiUtils::CreateTextHeader(wxWindow* parent, const wchar_t* title, int width, int x, int y) { | 9 bool UiUtils::IsInDarkMode() { |
5 wxStaticText* static_text_title = new wxStaticText(parent, wxID_ANY, title, wxPoint(x, y), wxSize(width, 15), wxALIGN_LEFT); | 10 if (session.config.theme != OS) |
6 wxFont font = static_text_title->GetFont(); | 11 return (session.config.theme == DARK); |
7 font.SetWeight(wxFONTWEIGHT_BOLD); | 12 #ifdef MACOSX |
8 static_text_title->SetFont(font); | 13 if (osx::DarkThemeAvailable()) { |
9 //wxStaticLine* line = new wxStaticLine(parent, wxID_ANY, wxPoint(x,y+15), wxSize(width, 2), wxLI_HORIZONTAL); | 14 if (osx::IsInDarkTheme()) { |
10 wxClientDC dc(parent); | 15 return true; |
11 dc.DrawRectangle(x, y+15, width, 2); | 16 } else { |
17 return false; | |
18 } | |
19 } | |
20 #elif defined(WIN32) | |
21 if (win32::DarkThemeAvailable()) { | |
22 if (win32::IsInDarkTheme()) { | |
23 return true; | |
24 } else { | |
25 return false; | |
26 } | |
27 } | |
28 #endif | |
29 return (session.config.theme == DARK); | |
12 } | 30 } |
13 | 31 |
14 wxStaticText* UiUtils::CreateTextParagraph(wxWindow* parent, const wchar_t* title, const wchar_t* data, int width, int height, int x, int y) { | 32 void UiUtils::CreateTextHeader(QWidget* parent, QString title, QPoint point, QSize size) { |
15 CreateTextHeader(parent, title, width, x, y); | 33 QLabel* static_text_title = new QLabel(title, parent); |
16 return new wxStaticText(parent, wxID_ANY, data, wxPoint(x+23, y+30), wxSize(width-23, height), wxALIGN_LEFT); | 34 static_text_title->setTextFormat(Qt::PlainText); |
35 static_text_title->setStyleSheet("font-weight: bold"); | |
36 static_text_title->move(point.x(), point.y()); | |
37 static_text_title->resize(size.width(), 16); | |
38 | |
39 QFrame* static_text_line = new QFrame(parent); | |
40 static_text_line->setFrameShape(QFrame::HLine); | |
41 static_text_line->setFrameShadow(QFrame::Sunken); | |
42 static_text_line->resize(size.width(), 2); | |
43 static_text_line->move(point.x(), point.y()+18); | |
17 } | 44 } |
18 | 45 |
19 wxStaticText* UiUtils::CreateTextParagraphWithLabels(wxWindow* parent, const wchar_t* title, const wchar_t* label, const wchar_t* data, int width, int height, int x, int y) { | 46 QPlainTextEdit* UiUtils::CreateTextParagraph(QWidget* parent, QString title, QString data, QPoint point, QSize size) { |
20 CreateTextHeader(parent, title, width, x, y); | 47 CreateTextHeader(parent, title, point, size); |
21 new wxStaticText(parent, wxID_ANY, label, wxPoint(x+23, y+30), wxSize(width-23, height), wxALIGN_LEFT); | 48 |
22 return new wxStaticText(parent, wxID_ANY, data, wxPoint(x+157, y+30), wxSize(width-157, height), wxALIGN_LEFT); | 49 QPlainTextEdit* paragraph = new QPlainTextEdit(data, parent); |
50 paragraph->setTextInteractionFlags(Qt::NoTextInteraction); | |
51 paragraph->setWordWrapMode(QTextOption::NoWrap); | |
52 paragraph->setFrameShape(QFrame::NoFrame); | |
53 paragraph->move(point.x()+12, point.y()+32); | |
54 paragraph->resize(size.width()-12, size.height()-32); | |
55 return paragraph; | |
56 } | |
57 | |
58 QPlainTextEdit* UiUtils::CreateTextParagraphWithLabels(QWidget* parent, QString title, QString label, QString data, QPoint point, QSize size) { | |
59 CreateTextHeader(parent, title, point, size); | |
60 | |
61 QPlainTextEdit* label_t = new QPlainTextEdit(label, parent); | |
62 label_t->setTextInteractionFlags(Qt::NoTextInteraction); | |
63 label_t->setWordWrapMode(QTextOption::NoWrap); | |
64 label_t->setFrameShape(QFrame::NoFrame); | |
65 label_t->move(point.x()+12, point.y()+32); | |
66 label_t->resize(90, size.height()-32); | |
67 | |
68 QPlainTextEdit* paragraph = new QPlainTextEdit(data, parent); | |
69 paragraph->setTextInteractionFlags(Qt::NoTextInteraction); | |
70 paragraph->setWordWrapMode(QTextOption::NoWrap); | |
71 paragraph->setFrameShape(QFrame::NoFrame); | |
72 paragraph->move(point.x()+102, point.y()+32); | |
73 paragraph->resize(size.width()-102, size.height()-32); | |
74 return paragraph; | |
23 } | 75 } |
24 | 76 |
25 /* As far as I can tell, this is identical to the way Taiga implements it. | 77 /* As far as I can tell, this is identical to the way Taiga implements it. |
26 Kind of cool, I didn't even look into the source code for it :p */ | 78 Kind of cool, I didn't even look into the source code for it :p */ |
27 wxTextCtrl* UiUtils::CreateSelectableTextParagraph(wxWindow* parent, const wchar_t* title, const wchar_t* data, int width, int height, int x, int y) { | 79 QPlainTextEdit* UiUtils::CreateSelectableTextParagraph(QWidget* parent, QString title, QString data, QPoint point, QSize size) { |
28 CreateTextHeader(parent, title, width, x, y); | 80 CreateTextHeader(parent, title, point, size); |
29 wxTextCtrl* textctrl = new wxTextCtrl(parent, wxID_ANY, "", wxPoint(x+23, y+30), wxSize(width-23, height), wxTE_LEFT | wxBORDER_NONE | wxTE_BESTWRAP | wxTE_READONLY | wxTE_MULTILINE | wxTE_NO_VSCROLL); | 81 |
30 (*textctrl) << data; | 82 QPlainTextEdit* text_edit = new QPlainTextEdit(data, parent); |
31 return textctrl; | 83 text_edit->setReadOnly(true); |
84 text_edit->setFrameShape(QFrame::NoFrame); | |
85 text_edit->move(point.x()+12, point.y()+32); | |
86 text_edit->resize(size.width()-12, size.height()-32); | |
87 return text_edit; | |
32 } | 88 } |