From 5eff74c4210f1fd77d5c13b3f8f6844daa95aca3 Mon Sep 17 00:00:00 2001 From: Sam39 Date: Mon, 8 Aug 2022 15:23:48 +0300 Subject: [PATCH 1/2] [Fixed] Status color for white mode users. --- src/gui/Gui.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gui/Gui.cpp b/src/gui/Gui.cpp index f0a2481..04b1159 100644 --- a/src/gui/Gui.cpp +++ b/src/gui/Gui.cpp @@ -264,7 +264,6 @@ MyMainFrame::MyMainFrame() : txtServers->SetForegroundColour("white"); txtPatreon->SetForegroundColour("white"); txtStatus->SetForegroundColour("white"); - txtStatusResult->SetForegroundColour("green"); //Line Separators: HorizontalLine1->SetForegroundColour("white"); @@ -280,6 +279,7 @@ MyMainFrame::MyMainFrame() : auto* logo = new wxBitmapButton(this, 42, wxBitmapBundle(wxImage("BeamMP.png", wxBITMAP_TYPE_PNG).Scale(100,100, wxIMAGE_QUALITY_HIGH)), wxPoint(850, -15), wxSize(100,100), wxBORDER_NONE); logo->SetBackgroundColour("white"); } + txtStatusResult->SetForegroundColour("green"); } /////////// Account Frame Content /////////// From f8c081edc31467590d6b9443595c0fba1d434503 Mon Sep 17 00:00:00 2001 From: Sam39 Date: Mon, 8 Aug 2022 17:01:30 +0300 Subject: [PATCH 2/2] [Added] Icons folder, Launch Alert. --- icons/BeamMP_black.png | Bin 0 -> 15554 bytes icons/BeamMP_white.png | Bin 0 -> 9732 bytes icons/default.png | Bin 0 -> 2608 bytes src/gui/Gui.cpp | 90 ++++++++++++++++++++++++++++++++--------- 4 files changed, 71 insertions(+), 19 deletions(-) create mode 100644 icons/BeamMP_black.png create mode 100644 icons/BeamMP_white.png create mode 100644 icons/default.png diff --git a/icons/BeamMP_black.png b/icons/BeamMP_black.png new file mode 100644 index 0000000000000000000000000000000000000000..374bf20dbbc5219902f688a14d98a80ac94d725b GIT binary patch literal 15554 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 X|L+Yxn%q(W8-V1bm8GgBjD!Cd*F7bI literal 0 HcmV?d00001 diff --git a/icons/BeamMP_white.png b/icons/BeamMP_white.png new file mode 100644 index 0000000000000000000000000000000000000000..18a290c6cdde723870f5960df5f07a782fcc31a8 GIT binary patch literal 9732 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 LJn;2SfvNujA`$#l literal 0 HcmV?d00001 diff --git a/src/gui/Gui.cpp b/src/gui/Gui.cpp index 04b1159..43d89bc 100644 --- a/src/gui/Gui.cpp +++ b/src/gui/Gui.cpp @@ -14,7 +14,7 @@ #include #include #include - +#include #include "Launcher.h" #include "Logger.h" #endif @@ -68,6 +68,18 @@ class MySettingsFrame : public wxFrame { wxDECLARE_EVENT_TABLE(); }; +/////////// PopupFrame class /////////// +class MyPopupFrame : public wxFrame { + public: + MyPopupFrame(); + + private: + // Here you put the frame functions: + bool DarkMode = wxSystemSettings::GetAppearance().IsDark(); + void OnClickOk(wxCommandEvent& event); + wxDECLARE_EVENT_TABLE(); +}; + /////////// TestFrame class /////////// class MyTestFrame : public wxFrame { public: @@ -99,10 +111,15 @@ wxBEGIN_EVENT_TABLE(MySettingsFrame, wxFrame) EVT_CHECKBOX(45, MySettingsFrame::OnClickConsole) wxEND_EVENT_TABLE() + /////////// MainFrame Event Table /////////// +wxBEGIN_EVENT_TABLE(MyPopupFrame, wxFrame) + EVT_BUTTON(46, MyPopupFrame::OnClickOk) +wxEND_EVENT_TABLE() + /////////// OnInit function to show frame /////////// bool MyApp::OnInit() { auto* MainFrame = new MyMainFrame(); - MainFrame->SetIcon(wxIcon("beammp_original.png",wxBITMAP_TYPE_PNG)); + MainFrame->SetIcon(wxIcon("icons/BeamMP_black.png",wxBITMAP_TYPE_PNG)); // Set MainFrame properties: MainFrame->SetSize(1000, 650); @@ -121,7 +138,7 @@ bool MyApp::OnInit() { //Test Frame Properties: /* auto* TestFrame = new MyTestFrame(); - TestFrame->SetIcon(wxIcon("beammp_original.png",wxBITMAP_TYPE_PNG)); + TestFrame->SetIcon(wxIcon("icons/BeamMP_black.png",wxBITMAP_TYPE_PNG)); TestFrame->SetSize(1000, 650); TestFrame->Center(); @@ -186,6 +203,7 @@ void WindowsConsole (bool isChecked) { MyMainFrame::MyMainFrame() : wxFrame(nullptr, wxID_ANY, "BeamMP Launcher V3", wxDefaultPosition,wxDefaultSize, wxMINIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX) { + //News: wxWebView::New() ->Create(this, wxID_ANY, "https://beammp.com", wxPoint(10, 70), wxSize(950, 400)); auto* txtNews = new wxStaticText(this, wxID_ANY, wxT("News"), wxPoint(10, 40)); @@ -236,12 +254,12 @@ MyMainFrame::MyMainFrame() : auto* HorizontalLine3 = new wxStaticLine(this, wxID_ANY, wxPoint(10, 550), wxSize(950, 1)); //Account: - auto* bitmap = new wxBitmapButton(this, 39, wxBitmapBundle(wxImage("deer.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH)), wxPoint(20, 560), wxSize(45,45)); + auto* bitmap = new wxBitmapButton(this, 39, wxBitmapBundle(wxImage("icons/default.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH)), wxPoint(20, 560), wxSize(45,45)); if (isSignedIn()) - bitmap->SetBitmap(wxBitmapBundle(wxImage("deer.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH))); + bitmap->SetBitmap(wxBitmapBundle(wxImage("icons/default.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH))); else - bitmap->SetBitmap(wxBitmapBundle(wxImage("default.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH))); + bitmap->SetBitmap(wxBitmapBundle(wxImage("icons/default.png", wxBITMAP_TYPE_PNG).Scale(45,45, wxIMAGE_QUALITY_HIGH))); //Buttons: auto btnSettings = new wxButton(this, 40, wxT("Settings"), wxPoint(730,570), wxSize(110, 25)); @@ -271,12 +289,12 @@ MyMainFrame::MyMainFrame() : HorizontalLine3->SetForegroundColour("white"); //Logo: - auto* logo = new wxBitmapButton(this, 42, wxBitmapBundle(wxImage("beammp_original.png", wxBITMAP_TYPE_PNG).Scale(100,100, wxIMAGE_QUALITY_HIGH)), wxPoint(850, -15), wxSize(100,100), wxBORDER_NONE); + auto* logo = new wxBitmapButton(this, 42, wxBitmapBundle(wxImage("icons/BeamMP_white.png", wxBITMAP_TYPE_PNG).Scale(100,100, wxIMAGE_QUALITY_HIGH)), wxPoint(850, -15), wxSize(100,100), wxBORDER_NONE); logo->SetBackgroundColour(wxColour(40, 40, 40)); } else { //Logo: - auto* logo = new wxBitmapButton(this, 42, wxBitmapBundle(wxImage("BeamMP.png", wxBITMAP_TYPE_PNG).Scale(100,100, wxIMAGE_QUALITY_HIGH)), wxPoint(850, -15), wxSize(100,100), wxBORDER_NONE); + auto* logo = new wxBitmapButton(this, 42, wxBitmapBundle(wxImage("icons/BeamMP_black.png", wxBITMAP_TYPE_PNG).Scale(100,100, wxIMAGE_QUALITY_HIGH)), wxPoint(850, -15), wxSize(100,100), wxBORDER_NONE); logo->SetBackgroundColour("white"); } txtStatusResult->SetForegroundColour("green"); @@ -289,10 +307,10 @@ MyAccountFrame::MyAccountFrame() : wxFrame(nullptr, wxID_ANY, "Account Manager", auto *handler = new wxPNGHandler; wxImage::AddHandler(handler); wxStaticBitmap *image; - image = new wxStaticBitmap( this, wxID_ANY, wxBitmapBundle(wxImage("default.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH)), wxPoint(180,20), wxSize(120, 120)); + image = new wxStaticBitmap( this, wxID_ANY, wxBitmapBundle(wxImage("icons/BeamMP_black.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH)), wxPoint(180,20), wxSize(120, 120)); - if (isSignedIn()) { - image->SetBitmap(wxBitmapBundle(wxImage("deer.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH))); + if (!isSignedIn()) { + image->SetBitmap(wxBitmapBundle(wxImage("icons/default.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH))); auto* txtName = new wxStaticText(this, wxID_ANY, wxT("Username: BeamMP"), wxPoint(180, 200)); auto* txtEmail = new wxStaticText(this, wxID_ANY, wxT("Email: beamMP@gmail.com"), wxPoint(180, 250)); @@ -306,7 +324,7 @@ MyAccountFrame::MyAccountFrame() : wxFrame(nullptr, wxID_ANY, "Account Manager", } } else { - image->SetBitmap(wxBitmapBundle(wxImage("default.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH))); + image->SetBitmap(wxBitmapBundle(wxImage("icons/default.png", wxBITMAP_TYPE_PNG).Scale(120,120, wxIMAGE_QUALITY_HIGH))); auto* txtLogin = new wxStaticText(this, wxID_ANY, wxT("Login with your BeamMP account."), wxPoint(150, 200)); @@ -336,17 +354,15 @@ MySettingsFrame::MySettingsFrame() : MySettingsFrame::SetFocus(); auto btnGame = new wxButton(this, 40, wxT("Change Directory"), wxPoint(185,140), wxSize(110, 25)); - //auto* bitmapGame = new wxBitmapButton(this, wxID_ANY, wxBitmapBundle(wxImage("explorer.png", wxBITMAP_TYPE_PNG).Scale(15,15, wxIMAGE_QUALITY_HIGH)), wxPoint(350, 100), wxSize(15,15), wxBORDER_NONE); auto* txtProfileDirectory = new wxStaticText(this, wxID_ANY, wxT("Profile Directory: "), wxPoint(30, 200)); auto* ctrlProfileDirectory = new wxTextCtrl (this, wxID_ANY, wxT("D:/PATH/BeamNG.exe"), wxPoint(130, 200), wxSize(220,-1)); auto btnProfile = new wxButton(this, 40, wxT("Change Directory"), wxPoint(185,240), wxSize(110, 25)); - //auto* bitmapProfile = new wxBitmapButton(this, wxID_ANY, wxBitmapBundle(wxImage("explorer.png", wxBITMAP_TYPE_PNG).Scale(20,20, wxIMAGE_QUALITY_HIGH)), wxPoint(350, 175), wxSize(25,25)); auto* txtCacheDirectory = new wxStaticText(this, wxID_ANY, wxT("Cache Directory: "), wxPoint(30, 300)); auto* ctrlCacheDirectory = new wxTextCtrl (this, wxID_ANY, wxT("D:/PATH/Cache"), wxPoint(130, 300), wxSize(220,-1)); auto btnCache = new wxButton(this, 40, wxT("Change Directory"), wxPoint(185,340), wxSize(110, 25)); - //auto* bitmapCache = new wxBitmapButton(this, wxID_ANY, wxBitmapBundle(wxImage("explorer.png", wxBITMAP_TYPE_PNG).Scale(20,20, wxIMAGE_QUALITY_HIGH)), wxPoint(350, 250), wxSize(20,20), wxBORDER_NONE); + auto* txtBranch = new wxStaticText(this, wxID_ANY, wxT("Branch: "), wxPoint(30, 400)); wxArrayString BranchChoices; @@ -374,12 +390,29 @@ MySettingsFrame::MySettingsFrame() : } } +/////////// Popup Frame Content /////////// +MyPopupFrame::MyPopupFrame() : + wxFrame(nullptr, wxID_ANY, "Alert", wxDefaultPosition,wxDefaultSize, + wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxSTAY_ON_TOP ) { + auto* txtAlert = new wxStaticText(this, wxID_ANY, wxT("Please launch BeamNG.drive manually in case of\nSteam issues."), wxPoint(10, 10), wxSize(-1,-1)); + auto* btnOk = new wxButton(this, wxID_ANY, wxT("ok"), wxPoint(100, 70)); + //UI Colors: + if (DarkMode) { + //Text: + txtAlert->SetForegroundColour("white"); + } +} +/////////// OnClick Account Event /////////// +void MyPopupFrame::OnClickOk(wxCommandEvent& event WXUNUSED(event)) { + + +} /////////// OnClick Account Event /////////// void MyMainFrame::OnClickAccount(wxCommandEvent& event WXUNUSED(event)) { auto* AccountFrame = new MyAccountFrame(); AccountFrame->SetSize(500, 650); AccountFrame->Center(); - AccountFrame->SetIcon(wxIcon("beammp_original.png",wxBITMAP_TYPE_PNG)); + AccountFrame->SetIcon(wxIcon("icons/BeamMP_black.png",wxBITMAP_TYPE_PNG)); if (wxSystemSettings::GetAppearance().IsDark()) { AccountFrame->SetBackgroundColour(wxColour(40, 40, 40)); @@ -397,7 +430,7 @@ void MyMainFrame::OnClickSettings(wxCommandEvent& event WXUNUSED(event)) { auto* SettingsFrame = new MySettingsFrame(); SettingsFrame->SetSize(500, 650); SettingsFrame->Center(); - SettingsFrame->SetIcon(wxIcon("beammp_original.png",wxBITMAP_TYPE_PNG)); + SettingsFrame->SetIcon(wxIcon("icons/BeamMP_black.png",wxBITMAP_TYPE_PNG)); if (wxSystemSettings::GetAppearance().IsDark()) { SettingsFrame->SetBackgroundColour(wxColour(40, 40, 40)); @@ -429,7 +462,8 @@ void MyAccountFrame::OnClickLogout(wxCommandEvent& event WXUNUSED(event)) { /////////// OnClick Launch Event /////////// void MyMainFrame::OnClickLaunch(wxCommandEvent& event WXUNUSED(event)) { - if (Launcher::EntryThread.joinable()) Launcher::EntryThread.join(); + static bool FirstTime = true; +/* if (Launcher::EntryThread.joinable()) Launcher::EntryThread.join(); Launcher::EntryThread = std::thread([&]() { entry(); txtStatusResult->SetLabelText(wxT("Online")); @@ -438,7 +472,25 @@ void MyMainFrame::OnClickLaunch(wxCommandEvent& event WXUNUSED(event)) { }); txtStatusResult->SetLabelText(wxT("In-Game")); txtStatusResult->SetForegroundColour("purple"); - btnLaunch->Disable(); + btnLaunch->Disable();*/ + + if(FirstTime) { + auto* PopupFrame = new MyPopupFrame(); + PopupFrame->SetSize(300, 150); + PopupFrame->Center(); + PopupFrame->SetIcon(wxIcon("icons/BeamMP_black.png",wxBITMAP_TYPE_PNG)); + + if (wxSystemSettings::GetAppearance().IsDark()) { + PopupFrame->SetBackgroundColour(wxColour(40, 40, 40)); + PopupFrame->SetForegroundColour(wxColour(255, 255, 255)); + } + else { + PopupFrame->SetBackgroundColour(wxColour("white")); + PopupFrame->SetForegroundColour(wxColour("white")); + } + PopupFrame->Show(true); + FirstTime = false; + } } /////////// OnClick Console Event ///////////