diff options
Diffstat (limited to 'support/dktools/ScreenSizeFrame.cpp')
-rw-r--r-- | support/dktools/ScreenSizeFrame.cpp | 880 |
1 files changed, 0 insertions, 880 deletions
diff --git a/support/dktools/ScreenSizeFrame.cpp b/support/dktools/ScreenSizeFrame.cpp deleted file mode 100644 index 0870666469..0000000000 --- a/support/dktools/ScreenSizeFrame.cpp +++ /dev/null @@ -1,880 +0,0 @@ -/* -Copyright (C) 2017-2020, Dirk Krause -SPDX-License-Identifier: BSD-3-Clause -*/ - -/* - WARNING: This file was generated by the dkct program (see - http://dktools.sourceforge.net/ for details). - Changes you make here will be lost if dkct is run again! - You should modify the original source and run dkct on it. - Original source: ScreenSizeFrame.wxc -*/ - -/** @file ScreenSizeFrame.cpp The ScreenSizeFrame module. -*/ - - -#line 309 "ScreenSizeFrame.wxc" - -#define AUTO_EXIT_ONLY_ON_SUCCESS 1 - -#include "dk4conf.h" -#include "dk4mem.h" -#include "wxdkscrsz.h" -#include <dk4maixdul.h> -#include "dk4maoxd.h" - -#if !defined(__WXMSW__) -#include "gui-img/icons/wxdkscrsz.xpm" -#endif - - - - - -#line 325 "ScreenSizeFrame.wxc" - - - -static const wxChar * const settingsNames[] = { -/* 0 */ -wxT("screen.size.normal.width"), - -/* 1 */ -wxT("screen.size.normal.height"), - -/* 2 */ -wxT("screen.size.alternative.width"), - -/* 3 */ -wxT("screen.size.alternative.height"), - -NULL - - -#line 335 "ScreenSizeFrame.wxc" -}; - - -/* __CHANGE__ 017: Add further events. */ -/* __CHANGE__ 008: Remove OnIdle if no idle processing required. */ - -#if wxCHECK_VERSION(3,0,0) -wxBEGIN_EVENT_TABLE(ScreenSizeFrame,wxFrame) -#else -BEGIN_EVENT_TABLE(ScreenSizeFrame,wxFrame) -#endif - EVT_MENU(ScreenSizeFrame_Quit, ScreenSizeFrame::OnQuit) - EVT_MENU(ScreenSizeFrame_Help_About, ScreenSizeFrame::OnAbout) - EVT_MENU(ScreenSizeFrame_Help_Contents, ScreenSizeFrame::OnHelpContents) - EVT_IDLE(ScreenSizeFrame::OnIdle) -#if wxCHECK_VERSION(3,0,0) -wxEND_EVENT_TABLE() -#else -END_EVENT_TABLE() -#endif - - - - -#line 359 "ScreenSizeFrame.wxc" -ScreenSizeFrame::ScreenSizeFrame( - int wxid, - Dk4WxApplicationHelper *applicationHelper, - Dk4WxHelpController *hc, - int argc, - wxChar **argv, - wxChar const * const *localizedTexts, - wxChar const * const *nlWx, - dkChar const * const *nlDk -) : Dk4WxFrame(nlWx[0], applicationHelper, hc, wxid), - cGreen(0, 127, 0), - cRed(127, 0, 0) -{ - /* __CHANGE__ 012: Add further local variables. - */ - - /* __CHANGE__ 012: Initialize further local variables. - */ - - sTexts = localizedTexts; - sNlWx = nlWx; - sNlDk = nlDk; -#if defined(__WXMSW__) - wxIcon wxdkscrsz_icon(sNlWx[4]); -#else - wxIcon wxdkscrsz_icon(xpm_wxdkscrsz); -#endif - - /* __CHANGE__ 011: Initialize further class members. - */ - bActive = true; - iArgc = argc; - ppArgv = argv; - - dkctGUILayoutOK = false; - dkctGUIContentsPanel = NULL; - mainSizer = NULL; - mbMain = NULL; - menuFile = NULL; - menuHelp = NULL; - miFileExit = NULL; - miHelpAbout = NULL; - miHelpContents = NULL; - verticalSizer = NULL; - contentsSizer = NULL; - lOldSize = NULL; - lOldWidth = NULL; - vOldWidth = NULL; - lOldHeight = NULL; - vOldHeight = NULL; - lNewSize = NULL; - lNewWidth = NULL; - vNewWidth = NULL; - lNewHeight = NULL; - vNewHeight = NULL; - lResult = NULL; - lSsc = NULL; - lSsr = NULL; - dkctGUIContentsPanel = new wxPanel(this); - if(!(dkctGUIContentsPanel)) { - goto dkctGUILayoutFinished; - } -#if wxUSE_MENUS - mbMain = new wxMenuBar( - ); - if(!(mbMain)) { - goto dkctGUILayoutFinished; - } - menuFile = new wxMenu( - ); - if(!(menuFile)) { - goto dkctGUILayoutFinished; - } - miFileExit = menuFile->Append( - ScreenSizeFrame_Quit, - sTexts[1], - sTexts[2] - ); - if(!(miFileExit)) { - goto dkctGUILayoutFinished; - } - mbMain->Append(menuFile, sTexts[0]); - menuHelp = new wxMenu( - ); - if(!(menuHelp)) { - goto dkctGUILayoutFinished; - } - miHelpAbout = menuHelp->Append( - ScreenSizeFrame_Help_About, - sTexts[4], - sTexts[5] - ); - if(!(miHelpAbout)) { - goto dkctGUILayoutFinished; - } - miHelpContents = menuHelp->Append( - ScreenSizeFrame_Help_Contents, - sTexts[6], - sTexts[7] - ); - if(!(miHelpContents)) { - goto dkctGUILayoutFinished; - } - mbMain->Append(menuHelp, sTexts[3]); - SetMenuBar(mbMain); -#endif - mainSizer = new wxBoxSizer( - wxHORIZONTAL - ); - if(!(mainSizer)) { - goto dkctGUILayoutFinished; - } - mainSizer->Add(10, 10, 0); - verticalSizer = new wxBoxSizer( - wxVERTICAL - ); - if(!(verticalSizer)) { - goto dkctGUILayoutFinished; - } - verticalSizer->Add(10, 10, 0); - contentsSizer = new wxGridBagSizer( - 5, 5 - ); - if(!(contentsSizer)) { - goto dkctGUILayoutFinished; - } - lOldSize = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[25], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_CENTRE - ); - if(!(lOldSize)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lOldSize, - wxGBPosition(0, 0), - wxGBSpan(1, 2), - wxALIGN_CENTER_HORIZONTAL - ); - lOldWidth = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[26], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_RIGHT - ); - if(!(lOldWidth)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lOldWidth, - wxGBPosition(1, 0), - wxGBSpan(1, 1), - wxALIGN_RIGHT - ); - vOldWidth = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[28], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_LEFT - ); - if(!(vOldWidth)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - vOldWidth, - wxGBPosition(1, 1), - wxGBSpan(1, 1), - wxALIGN_LEFT - ); - lOldHeight = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[27], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_RIGHT - ); - if(!(lOldHeight)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lOldHeight, - wxGBPosition(2, 0), - wxGBSpan(1, 1), - wxALIGN_RIGHT - ); - vOldHeight = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[28], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_LEFT - ); - if(!(vOldHeight)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - vOldHeight, - wxGBPosition(2, 1), - wxGBSpan(1, 1), - wxALIGN_LEFT - ); - contentsSizer->Add(1, 5, wxGBPosition(3, 0), wxGBSpan(1, 1)); - lNewSize = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[29], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_CENTRE - ); - if(!(lNewSize)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lNewSize, - wxGBPosition(4, 0), - wxGBSpan(1, 2), - wxALIGN_CENTER_HORIZONTAL - ); - lNewWidth = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[26], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_RIGHT - ); - if(!(lNewWidth)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lNewWidth, - wxGBPosition(5, 0), - wxGBSpan(1, 1), - wxALIGN_RIGHT - ); - vNewWidth = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[28], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_LEFT - ); - if(!(vNewWidth)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - vNewWidth, - wxGBPosition(5, 1), - wxGBSpan(1, 1), - wxALIGN_LEFT - ); - lNewHeight = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[27], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_RIGHT - ); - if(!(lNewHeight)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lNewHeight, - wxGBPosition(6, 0), - wxGBSpan(1, 1), - wxALIGN_RIGHT - ); - vNewHeight = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[28], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_LEFT - ); - if(!(vNewHeight)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - vNewHeight, - wxGBPosition(6, 1), - wxGBSpan(1, 1), - wxALIGN_LEFT - ); - contentsSizer->Add(1, 5, wxGBPosition(7, 0), wxGBSpan(1, 1)); - lResult = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[30], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_CENTRE - ); - if(!(lResult)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lResult, - wxGBPosition(8, 0), - wxGBSpan(1, 2), - wxALIGN_CENTER_HORIZONTAL - ); - lSsc = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[13], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_RIGHT - ); - if(!(lSsc)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lSsc, - wxGBPosition(9, 0), - wxGBSpan(1, 1), - wxALIGN_RIGHT - ); - lSsr = new wxStaticText( - dkctGUIContentsPanel, - wxID_ANY, - sTexts[14], - wxDefaultPosition, - wxDefaultSize, - wxALIGN_LEFT - ); - if(!(lSsr)) { - goto dkctGUILayoutFinished; - } - contentsSizer->Add( - lSsr, - wxGBPosition(9, 1), - wxGBSpan(1, 1), - wxALIGN_LEFT - ); - verticalSizer->Add( - contentsSizer - ); - verticalSizer->Add(10, 10, 0); - mainSizer->Add( - verticalSizer, - 1, - wxGROW - ); - mainSizer->Add(10, 10, 0); - dkctGUIContentsPanel->SetSizer(mainSizer); - SetIcon(wxdkscrsz_icon); - dkctGUILayoutOK = true; - dkctGUILayoutFinished: -#if wxUSE_STATUSBAR - if(dkctGUILayoutOK) { - CreateStatusBar(1); - SetStatusText(sTexts[8]); - } -#endif - if(dkctGUILayoutOK) { - mainSizer->Fit(this); - mainSizer->SetSizeHints(this); - } - -#line 394 "ScreenSizeFrame.wxc" - if(dkctGUILayoutOK) { - SetTitle(nlWx[0]); - oAsc.SetAutoStart(true); - oAsc.SetAutoExit(true); - } - - /* __CHANGE__ 012: Release resources allocated by local variables. - */ -} - - -#line 405 "ScreenSizeFrame.wxc" - - - -ScreenSizeFrame::~ScreenSizeFrame() -{ - - /* __CHANGE__ 011: Release resources allocated by further class members. - */ -} - - - -bool -ScreenSizeFrame::CanClose(bool isLast) -{ - bool back = true; - - /* __CHANGE__ 013: Check for unsaved data. - */ - - return back; -} - - -void -ScreenSizeFrame::OnQuit(wxCommandEvent & event) -{ - Close(); -} - - - -void -ScreenSizeFrame::OnAbout(wxCommandEvent & event) -{ - wxString text(wxT("")); - wxString title(wxT("")); - - /* Construct message text. */ - text.Append(sNlWx[0]); - text.Append(sNlWx[7]); - text.Append(sNlWx[1]); - text.Append(sNlWx[8]); - text.Append(sTexts[9]); - text.Append(sNlWx[2]); - text.Append(sNlWx[8]); - text.Append(sNlWx[8]); - text.Append(sTexts[11]); - text.Append(sNlWx[8]); - text.Append(sNlWx[9]); - text.Append(sNlWx[8]); - text.Append(sNlWx[8]); - text.Append(sTexts[12]); - text.Append(sNlWx[8]); - text.Append(sNlWx[10]); - text.Append(sNlWx[8]); - text.Append(sNlWx[11]); - text.Append(sNlWx[8]); - text.Append(sNlWx[12]); - text.Append(sNlWx[8]); - text.Append(sNlWx[13]); - text.Append(sNlWx[8]); - text.Append(sNlWx[14]); - text.Append(sNlWx[8]); - text.Append(sNlWx[15]); - text.Append(sNlWx[8]); - - /* Construct dialog box title. */ - title.Append(sTexts[10]); - title.Append(sNlWx[0]); - - /* Show dialog box. */ - wxMessageBox(text, title); - - /* __CHANGE__ 019: Create better about box. - */ -} - - - -void -ScreenSizeFrame::OnHelpContents(wxCommandEvent & event) -{ - DisplayContents(); -} - -/* __CHANGE__ 017: Event handlers for further events. -*/ - -/* __CHANGE__ 014: Implementation of further methods. -*/ - -#if DK4_ON_WINDOWS -/** Current device mode. -*/ -static DEVMODE devmode; -/** New device mode. -*/ -static DEVMODE newmode; -#endif - -bool -ScreenSizeFrame::ModifyScreenSize(const unsigned long *ulp, int action) -{ - wxChar b1[64]; - wxChar b2[64]; - wxChar b3[64]; - wxChar b4[64]; -#if DK4_ON_WINDOWS - DWORD dmfm = (DM_PELSWIDTH | DM_PELSHEIGHT); - DWORD dwfl = 0; - LONG res = 0L; -#endif - bool back = false; - - dk4ma_write_wx_decimal_unsigned( - b1, DK4_SIZEOF(b1,wxChar), (dk4_um_t)(ulp[0]), 0, NULL - ); - dk4ma_write_wx_decimal_unsigned( - b2, DK4_SIZEOF(b2,wxChar), (dk4_um_t)(ulp[1]), 0, NULL - ); - dk4ma_write_wx_decimal_unsigned( - b3, DK4_SIZEOF(b3,wxChar), (dk4_um_t)(ulp[2]), 0, NULL - ); - dk4ma_write_wx_decimal_unsigned( - b4, DK4_SIZEOF(b4,wxChar), (dk4_um_t)(ulp[3]), 0, NULL - ); - switch (action) { - case ACTION_TOGGLE_SCREEN_SIZE : { - vOldWidth->SetLabel(b3); - vOldHeight->SetLabel(b4); - vNewWidth->SetLabel(b1); - vNewHeight->SetLabel(b2); - } break; - default : { - vNewWidth->SetLabel(b1); - vNewHeight->SetLabel(b2); - } break; - } - Refresh(); - Update(); -#if DK4_ON_WINDOWS - SecureZeroMemory(&devmode, sizeof(DEVMODE)); - SecureZeroMemory(&newmode, sizeof(DEVMODE)); - if (EnumDisplaySettingsW(NULL, ENUM_CURRENT_SETTINGS, &devmode)) { - if (dmfm == (dmfm & (devmode.dmFields))) { - DK4_MEMCPY(&newmode, &devmode, sizeof(DEVMODE)); - - dk4ma_write_wx_decimal_unsigned( - b1, DK4_SIZEOF(b1,wxChar), - (dk4_um_t)(devmode.dmPelsWidth), 0, NULL - ); - dk4ma_write_wx_decimal_unsigned( - b2, DK4_SIZEOF(b2,wxChar), - (dk4_um_t)(devmode.dmPelsHeight), 0, NULL - ); - vOldWidth->SetLabel(b1); - vOldHeight->SetLabel(b2); - Refresh(); - Update(); - switch (action) { - case ACTION_TOGGLE_SCREEN_SIZE : { - if (ulp[0] == devmode.dmPelsWidth) { - if (ulp[1] == devmode.dmPelsHeight) { - newmode.dmPelsWidth = ulp[2]; - newmode.dmPelsHeight = ulp[3]; - vOldWidth->SetLabel(b1); - vOldHeight->SetLabel(b2); - vNewWidth->SetLabel(b3); - vNewHeight->SetLabel(b4); - Refresh(); - Update(); - } - else { - newmode.dmPelsWidth = ulp[0]; - newmode.dmPelsHeight = ulp[1]; - } - } - else { - newmode.dmPelsWidth = ulp[0]; - newmode.dmPelsHeight = ulp[1]; - } - } break; - default : { - newmode.dmPelsWidth = ulp[0]; - newmode.dmPelsHeight = ulp[1]; - } break; - } - newmode.dmFields |= dmfm; - res = ChangeDisplaySettingsEx(NULL, &newmode, NULL, dwfl, NULL); - if (DISP_CHANGE_SUCCESSFUL == res) { - back = true; - } - else { - /* ERROR: Failed to change screen size */ - wxMessageBox( - sTexts[20], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - } - } - else { - /* ERROR: Failed to retrieve current settings */ - wxMessageBox( - sTexts[19], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - } - } - else { - /* ERROR: Failed to retrieve current settings */ - wxMessageBox( - sTexts[19], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - } -#else - wxMessageBox( - sTexts[21], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - back = false; -#endif - return back; -} - - -void -ScreenSizeFrame::ShowUnusableText(const wxChar *str) -{ - wxString s(sTexts[22]); - s.Append(str); - s.Append(sTexts[23]); - wxMessageBox(s, sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR)); -} - - - -bool -ScreenSizeFrame::ChangeScreenSize(void) -{ - const wxChar *ep = NULL; - long lv[] = { 0L, 0L, 0L, 0L }; - unsigned long ulv[] = { 0UL, 0UL, 0UL, 0UL }; - int action = ACTION_SET_SCREEN_SIZE; - int res = 0; - bool back = false; - bool found = false; - - -#line 650 "ScreenSizeFrame.wxc" - switch (iArgc) { - case 5 : { - back = true; - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[0]), ppArgv[1], &ep, 1, NULL); - if (0 == res) { - back = false; - ShowUnusableText(ppArgv[1]); - } - if (back) { - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[1]),ppArgv[2],&ep,1,NULL); - if (0 == res) { - ShowUnusableText(ppArgv[2]); - back = false; - } - } - if (back) { - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[2]),ppArgv[3],&ep,1,NULL); - if (0 == res) { - ShowUnusableText(ppArgv[3]); - back = false; - } - } - if (back) { - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[3]),ppArgv[4],&ep,1,NULL); - if (0 == res) { - ShowUnusableText(ppArgv[4]); - back = false; - } - } - if (back) { - back = ModifyScreenSize(ulv, ACTION_TOGGLE_SCREEN_SIZE); - } - } break; - case 3 : { - back = true; - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[0]), ppArgv[1], &ep, 1, NULL); - if (0 == res) { - ShowUnusableText(ppArgv[1]); - back = false; - } - if (back) { - ep = NULL; - res = dk4ma_input_wx_dec_ulong(&(ulv[1]),ppArgv[2],&ep,1,NULL); - if (0 == res) { - ShowUnusableText(ppArgv[2]); - back = false; - } - } - if (back) { - back = ModifyScreenSize(ulv, ACTION_SET_SCREEN_SIZE); - } - } break; - case 1 : { - action = ACTION_REPORT_NO_ARGS_NO_SETTINGS; - if (pAppHelp->GetMultiple(settingsNames, lv, 4)) { - if (0L < lv[0]) { - if (0L < lv[1]) { - if (0L < lv[2]) { - if (0L < lv[3]) { - ulv[0] = (unsigned long)(lv[0]); - ulv[1] = (unsigned long)(lv[1]); - ulv[2] = (unsigned long)(lv[2]); - ulv[3] = (unsigned long)(lv[3]); - found = true; - back = ModifyScreenSize( - ulv, ACTION_TOGGLE_SCREEN_SIZE - ); - } - } - else { - ulv[0] = (unsigned long)(lv[0]); - ulv[1] = (unsigned long)(lv[1]); - found = true; - back = ModifyScreenSize( - ulv, ACTION_SET_SCREEN_SIZE - ); - } - } - } - } - else { - } - if (!(found)) { - wxMessageBox( - sTexts[24], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - } - } break; - default : { - wxMessageBox( - sTexts[24], sTexts[18], (wxOK | wxCENTRE | wxICON_ERROR) - ); - } break; - } - - if (back) { - lSsr->SetLabel(sTexts[16]); - lSsr->SetForegroundColour(cGreen); - } - else { - lSsr->SetLabel(sTexts[17]); - lSsr->SetForegroundColour(cRed); - } - Refresh(); - Update(); - - -#line 761 "ScreenSizeFrame.wxc" - return back; -} - - -/* __CHANGE__ 008: Remove OnIdle if no idle processing required. -*/ - -void -ScreenSizeFrame::OnIdle(wxIdleEvent & event) -{ -#if AUTO_EXIT_ONLY_ON_SUCCESS - bool bSuccess; -#endif - - -#line 775 "ScreenSizeFrame.wxc" - /* __CHANGE__ - */ - if (bActive) { - switch (oAsc.GetReaction()) { -#if 0 - case Dk4WxAutostartController::REACTION_IGNORE : { - } break; -#endif - case Dk4WxAutostartController::REACTION_START : { - oAsc.StartProcessing(); -#if AUTO_EXIT_ONLY_ON_SUCCESS - bSuccess = ChangeScreenSize(); - oAsc.EndProcessing(bSuccess); -#else - (void)ChangeScreenSize(); - oAsc.EndProcessing(true); -#endif - } break; - case Dk4WxAutostartController::REACTION_MORE : { - } break; - case Dk4WxAutostartController::REACTION_EXIT : { - bActive = false; - Close(); - } break; - } - event.RequestMore(); - } - - -#line 803 "ScreenSizeFrame.wxc" - event.Skip(); -} - - -/* vim: set ai sw=4 ts=4 : */ - |