= Developer News = == 2025-04-11 Dark Mode for new style apps == The arm825beta lib825ev is updated to allow new style apps to run in dark mode (light text on black background). Previously legacy recompiled apps used dark mode, but new style apps used a white background. A new patch will be coming soon that updates the startup preferences settings to have a dark mode selection. To insure apps work properly in dark mode apps should generally be coded without using fixed colors. For example, //SetBkColor(nColorWhite);// should be changed to //SetBkColor(COLOR_BKGND)//. //SetCurColor(nColorBlack);// should be changed to //SetCurColor(COLOR_INFO);// or some other non-fixed color identifier. From ssh apps can be tested in normal or dark mode by setting the environment variable DARKMODE as 0 or 1. For example to run //myapp// in dark mode: {{{ export DARKMODE=1 ./myapp }}} Running apps in the VM simulator can also be set to show in dark mode by selecting "Debug Configuration". Select the appropriate project under "C/C++ Application" and click the "Environment" tab. Click "Add..." and set the "Name:" to "DARKMODE" and "Value:" to "1". Click "Apply" and then "Debug". To switch back to normal mode exit the app and go back to the the "Debug Configurations" "Environment" and click "Edit..." and change the "Value:" to "0". Buttons that have bitmap images included will automatically invert the bitmap colors when in dark mode. Most of the standard app button images such as the zero button image // /usr/images/icon_app_btn_zeroX.bmp// have only black, white, and gray pixels. These images will appear very good when the colors are inverted. However, bitmaps with other colors may not appear as good when the colors are inverted. A new flag value for CFormButton is provided //FORM_BUTTON_BITMAP_NO_INVERT// to prevent the automatic bitmap color invert when in dark mode. The following example shows how different bitmap images may be specified for the app to use for buttons when in dark mode. {{{#!c++ const char* bitmapFile; if(dspMain.GetDarkMode()) { bitmapFile = "/usr/images/mydarkbitmap.bmp"; } else { bitmapFile = "/usr/images/mybitmap.bmp"; } // Use bitmapFile in FORM_ADD_BUTTON2 and be sure to OR the flag FORM_BUTTON_BITMAP_NO_INVERT }}} == 2025-03-04 Eclipse Subclipse may stop working == After recent Fedora updates, Subclipse SVN integration with Eclipse may stop working. Terminal command SVN commands are still working. To fix Subclipse close Eclipse. The VM Eclipse installation was installed using "snap". Open a terminal window and uninstall Eclipse. Type: {{{ rm -rf /home/user/snap/eclipse/* snap remove eclipse }}} Restart the VM. Open a terminal window and type the following command to install some additional items. {{{ pkcon install rpmlint rpm-build rpmdevtools systemtap-client valgrind }}} Instead of using snap to reinstall Eclipse it may be better to download the Eclipse installer from https://www.eclipse.org/downloads/packages/ Select "Download" "Linux x86_64". Open the "Downloads" folder and right-click on the "eclipse-inst-jre-linux64.tar.gz" and select "Extract" and "Extract Here". Then in the "eclipse-installer" folder double-click **eclipse-inst**. Select "Eclipse IDE for C/C++ Developers" and click "Install". Run Eclipse and select "Help", "Eclipse Marketplace...". In the "Find:" input type "Subclipse". "Subclipse 4.3.4" should appear in the list. Click the appropriate "Install" button and accept the license prompts to complete the installation. When finished press "Yes" to restart Eclipse. Eclipse will default to a different workspace name, probably "eclipse-workspace". Select "File", "Switch Workspace", "Other..." Select the workspace "/home/user/workspace_825" to open the existing workspace containing the 825 projects. == 2025-02-14 App ticket email sending and graphical printing == **Comming Soon...** arm825beta lib825ev CTktFlds and CTicket are updated to allow apps to send tickets as emails. These classes are also updated to allow graphical printing to [https://en.wikipedia.org/wiki/CUPS CUPS] supported printers connected by Network or USB. The library currently uses a !DoShellCmd (popen) system call to use the **msmtp** terminal command to send email. It is planned to improve this by using libesmtp to send emails directly. In the VM install the libesmtp-devel package. {{{ sudo dnf install libesmtp-devel }}} Apps that use these classes for ticket printing can be recompiled with the updated lib825ev to support sending emails and CUPS printing. It will be necessary to add the //${CUPS_LIBS}//, //json-c//, //esmtp//, //ssl//, //crypto// libraries to rebuild the apps. New environment variables //${PRT_LIBS}// and //${PRT_SIM_LIBS}// are being added to the environment to simplify this. Refer to [wiki:Dev/DevVMTechnical Development VM Technical Information] The //Configuration// app is updated to specify email server parameters. The //Configuration// program is being updated to allow formatting graphical tickets. This will allow specifying graphic files such as company logos to print on the ticket.