diff --git a/INSTALL b/INSTALL index 749b9c9..76703a3 100644 --- a/INSTALL +++ b/INSTALL @@ -1,7 +1,7 @@ -Installation Instructions for flics +Installation Instructions for flmsg ************************************ -To compile flics you will need: +To compile flmsg you will need: * A recent C++ compiler. The GNU C++ compilers in the 4.x series are known to work. @@ -12,27 +12,27 @@ To compile flics you will need: required. Once you have installed the required packages, the following commands -should be sufficient to compile flics and install it under /usr/local: +should be sufficient to compile flmsg and install it under /usr/local: ./configure make make install (you may need superuser privileges for installation) The `install' target installs the executable, an icon, and a .desktop -file. After installation, an flics launcher should appear somewhere in +file. After installation, an flmsg launcher should appear somewhere in your applications menu. -Create the desktop launcher. flics is designed as a desktop application +Create the desktop launcher. flmsg is designed as a desktop application that accepts target files to be wrapped or unwrapped by dropping the file onto the desktop launcher. Windows installation notes ************************** -flics supports win32 systems as a cross compiled application using the +flmsg supports win32 systems as a cross compiled application using the MinGW win32 environment. -To build an internationalized version of flics, install these +To build an internationalized version of flmsg, install these additional packages: gettext gettext-devel libiconv libiconv2 diff --git a/README b/README index 69607a6..4e35feb 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -flics is a editor / file management tool for ics213 forms which form the +flmsg is a editor / file management tool for ics213 forms which form the basis for emergency communications data transfers. The latest version can always be found at: diff --git a/configure.ac b/configure.ac index 8b8b794..6232b18 100644 --- a/configure.ac +++ b/configure.ac @@ -10,21 +10,21 @@ AC_PREREQ([2.63]) dnl major and minor must be integers; patch may dnl contain other characters or be empty -m4_define(FLICS_MAJOR, [1]) -m4_define(FLICS_MINOR, [0]) -m4_define(FLICS_PATCH, [.21]) +m4_define(FLMSG_MAJOR, [0]) +m4_define(FLMSG_MINOR, [9]) +m4_define(FLMSG_PATCH, [.04]) -AC_INIT([FLICS], FLICS_MAJOR.FLICS_MINOR[]FLICS_PATCH, [w1hkj AT w1hkj DOT com]) +AC_INIT([FLMSG], FLMSG_MAJOR.FLMSG_MINOR[]FLMSG_PATCH, [w1hkj AT w1hkj DOT com]) -AC_SUBST([FLICS_VERSION_MAJOR], [FLICS_MAJOR]) -AC_SUBST([FLICS_VERSION_MINOR], [FLICS_MINOR]) -AC_SUBST([FLICS_VERSION_PATCH], [FLICS_PATCH]) -AC_SUBST([FLICS_VERSION], [FLICS_MAJOR.FLICS_MINOR[]FLICS_PATCH]) +AC_SUBST([FLMSG_VERSION_MAJOR], [FLMSG_MAJOR]) +AC_SUBST([FLMSG_VERSION_MINOR], [FLMSG_MINOR]) +AC_SUBST([FLMSG_VERSION_PATCH], [FLMSG_PATCH]) +AC_SUBST([FLMSG_VERSION], [FLMSG_MAJOR.FLMSG_MINOR[]FLMSG_PATCH]) -AC_DEFINE([FLICS_VERSION_MAJOR], [FLICS_MAJOR], [major version number]) -AC_DEFINE([FLICS_VERSION_MINOR], [FLICS_MINOR], [minor version number]) -AC_DEFINE([FLICS_VERSION_PATCH], ["FLICS_PATCH"], [patch/alpha version string]) -AC_DEFINE([FLICS_VERSION], ["FLICS_MAJOR.FLICS_MINOR[]FLICS_PATCH"], [version string]) +AC_DEFINE([FLMSG_VERSION_MAJOR], [FLMSG_MAJOR], [major version number]) +AC_DEFINE([FLMSG_VERSION_MINOR], [FLMSG_MINOR], [minor version number]) +AC_DEFINE([FLMSG_VERSION_PATCH], ["FLMSG_PATCH"], [patch/alpha version string]) +AC_DEFINE([FLMSG_VERSION], ["FLMSG_MAJOR.FLMSG_MINOR[]FLMSG_PATCH"], [version string]) AC_SUBST([AC_CONFIG_ARGS], [$ac_configure_args]) AC_CONFIG_AUX_DIR([build-aux]) @@ -39,7 +39,7 @@ AC_CANONICAL_TARGET AM_INIT_AUTOMAKE([-Wall foreign std-options 1.9.6]) #change the next config item for the specific application src's -AC_CONFIG_SRCDIR([src/ics213.cxx]) +AC_CONFIG_SRCDIR([src/flmsg.cxx]) AC_CONFIG_HEADERS([src/config.h]) AC_CONFIG_MACRO_DIR([m4]) @@ -100,11 +100,11 @@ AC_CHECK_FLTK # Substitute XMLRPC_CFLAGS and XMLRPC_LIBS in Makefile # Define USE_XMLRPC in config.h # Set ENABLE_XMLRPC Makefile conditional -#AC_FLICS_XMLRPC +#AC_FLMSG_XMLRPC ### build info # Define various build variables in config.h -AC_FLICS_BUILD_INFO +AC_FLMSG_BUILD_INFO AC_CONFIG_FILES([Makefile src/Makefile]) diff --git a/data/flics.desktop b/data/flmsg.desktop similarity index 82% rename from data/flics.desktop rename to data/flmsg.desktop index 70b14b0..80e7096 100644 --- a/data/flics.desktop +++ b/data/flmsg.desktop @@ -1,9 +1,9 @@ [Desktop Entry] -Name=Flics +Name=flmsg GenericName=Amateur Radio Data Encapsulation Comment=Amateur Radio Communications -Exec=flics -Icon=flics +Exec=flmsg +Icon=flmsg Terminal=false Type=Application Categories=Network;HamRadio; diff --git a/data/flics.ico b/data/flmsg.ico similarity index 100% rename from data/flics.ico rename to data/flmsg.ico diff --git a/data/flics.png b/data/flmsg.png similarity index 100% rename from data/flics.png rename to data/flmsg.png diff --git a/data/flics.xpm b/data/flmsg.xpm similarity index 100% rename from data/flics.xpm rename to data/flmsg.xpm diff --git a/data/mac/flics.icns b/data/mac/flmsg.icns similarity index 100% rename from data/mac/flics.icns rename to data/mac/flmsg.icns diff --git a/data/radiogram.rtf b/data/radiogram.rtf new file mode 100644 index 0000000..ca3b243 --- /dev/null +++ b/data/radiogram.rtf @@ -0,0 +1,69 @@ +{\rtf1\ansi\deff1\adeflang1025 +{\fonttbl{\f0\froman\fprq2\fcharset0 Liberation Serif{\*\falt Times New Roman};}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fswiss\fprq2\fcharset0 Arial;}{\f3\froman\fprq2\fcharset0 Times New Roman;}{\f4\fswiss\fprq2\fcharset0 Liberation Sans{\*\falt Arial};}{\f5\fnil\fprq0\fcharset0 Tahoma Slashed;}} +{\colortbl;\red0\green0\blue0;\red128\green128\blue128;} +{\stylesheet{\s1\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\snext1 Normal;} +{\s2\sb240\sa120\keepn\aspalpha\rtlch\af4\afs28\lang255\ltrch\dbch\af4\langfe1033\hich\f4\fs28\lang1033\loch\f4\fs28\lang1033\sbasedon1\snext3 Heading;} +{\s3\sa120\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext3 Body Text;} +{\s4\sa120\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon3\snext4 List;} +{\s5\sb120\sa120\aspalpha\rtlch\af5\afs24\lang255\ai\ltrch\dbch\langfe1033\hich\fs24\lang1033\i\loch\fs24\lang1033\i\sbasedon1\snext5 caption;} +{\s6\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext6 Index;} +{\s7\sb120\sa120\aspalpha\rtlch\afs24\lang255\ai\ltrch\dbch\langfe1033\hich\fs24\lang1033\i\loch\fs24\lang1033\i\sbasedon1\snext7 caption;} +{\s8\sb120\sa120\aspalpha\rtlch\afs24\lang255\ai\ltrch\dbch\langfe1033\hich\fs24\lang1033\i\loch\fs24\lang1033\i\sbasedon1\snext8 WW-caption;} +{\s9\aspalpha\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033\sbasedon1\snext9 Table Contents;} +{\s10\qc\aspalpha\rtlch\afs24\lang255\ab\ltrch\dbch\langfe1033\hich\fs24\lang1033\b\loch\fs24\lang1033\b\sbasedon9\snext10 Table Heading;} +{\*\cs12\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033 Default Paragraph Font;} +} +{\info{\title GENERAL MESSAGE}{\author Dave}{\creatim\yr2010\mo5\dy9\hr3\min22}{\revtim\yr2010\mo5\dy9\hr3\min47}{\printim\yr0\mo0\dy0\hr0\min0}{\comment StarWriter}{\vern3000}}\deftab720 +{\*\pgdsctbl +{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn1440\margbsxn720\pgdscnxt0 Standard;}} +{\*\pgdscno0}\paperh15840\paperw12240\margl720\margr720\margt1440\margb720\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn720\margrsxn720\margtsxn1440\margbsxn720\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc +\trowd\trql\trleft3\trpaddft3\trpaddt0\trpaddfl3\trpaddl115\trpaddfb3\trpaddb0\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800 +\pard\intbl\pard\plain \intbl\ltrpar\s1\qc\aspalpha\li14\ri0\lin14\rin0\fi0\sb60\sa60\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033{\rtlch \ltrch\loch\f1\fs24\lang1033\i0\b0{\rtlch\ltrch\hich\b\loch\b THE AMERICAN RADIO RELAY LEAGUE}}{\rtlch \ltrch\loch\f1\fs24\lang1033\i0\b0 \line {\rtlch\ltrch\hich\fs48\b\loch\fs48\b RADIOGRAM}\line {\rtlch\ltrch\hich\fs20\loch\fs20 VIA AMATEUR RADIO}} +\cell\row\pard \trowd\trql\trleft3\trpaddft3\trpaddt0\trpaddfl3\trpaddl115\trpaddfb3\trpaddb0\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx1100\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx2675\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx3740\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx5753\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx6764\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8980\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9949\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800 +\pard\intbl\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 NUMBER} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 PRECEDENCE} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 HX} +\cell\pard\plain \intbl\ltrpar\s1\ql\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 STATION OF ORIGIN} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 CHECK} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 PLACE OF ORIGIN} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 TIME} +\cell\pard\plain \intbl\ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 DATE} +\cell\row\pard \trowd\trql\trleft3\trpaddft3\trpaddt0\trpaddfl3\trpaddl115\trpaddfb3\trpaddb0\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx1100\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx2675\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx3740\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx5753\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx6764\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx8980\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx9949\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800 +\pard\intbl\pard\plain \intbl\ltrpar\s1\ql\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 +RG_TEMPLATE + + + + + + +
+
THE AMERICAN RADIO RELAY LEAGUE
+ RADIOGRAM
+ VIA AMATEUR RADIO
+
+
+ + + + + + + + + + + + +
NUMBERPRECEDENCEHXSTATION OF ORIGINCHECKPLACE OF ORIGINTIME FILEDDATE
VNBR
+
VPREC
+
VHX
+
VCALL
+
VCHK
+
VORG
+
VT1
+
VD1
+
+
+ + + + + + + + + + + +
TO
+
THIS RADIO MESSAGE WAS RECEIVED AT
+
VTO
+
VRX
+
+
+ + + + + + + + + +
TELEPHONE NUMBER
+
VTEL
+
+
+ + + + + + +
+

VMSG1
+VMSG2
+VMSG3

+
+
+ + + + + + + + + + + + + + + + + + + +
FROM
+
DATE
+
TIME
+
SENT TO
+
DATE
+
TIME
+
VFM
+
VD2
+
VT2
+
VSNT
+
VD3
+
VT3
+
+
+
+
+ \ No newline at end of file diff --git a/data/win32/fl_app.nsi b/data/win32/fl_app.nsi index b159892..ca42b28 100644 --- a/data/win32/fl_app.nsi +++ b/data/win32/fl_app.nsi @@ -4,17 +4,17 @@ # Copyright (c) 2009 Stelios Bounanos, M0GLD. # Copyright (c) 2009 Dave Freese, W1HKJ -# substitute your application name for instances of FLICS +# substitute your application name for instances of FLMSG # Variables -!define FLICS_DESCRIPTION "${FLICS_NAME} ${FLICS_VERSION}" -!define FLICS_STRING "${FLICS_NAME}-${FLICS_VERSION}" +!define FLMSG_DESCRIPTION "${FLMSG_NAME} ${FLMSG_VERSION}" +!define FLMSG_STRING "${FLMSG_NAME}-${FLMSG_VERSION}" -!define PRODUCT_BINARY "${FLICS_BINARY}" -!define PRODUCT_NAME "${FLICS_NAME}" -!define PRODUCT_VERSION "${FLICS_VERSION}" -!define PRODUCT_STRING "${FLICS_STRING}" -!define PRODUCT_DESCRIPTION "${FLICS_DESCRIPTION}" +!define PRODUCT_BINARY "${FLMSG_BINARY}" +!define PRODUCT_NAME "${FLMSG_NAME}" +!define PRODUCT_VERSION "${FLMSG_VERSION}" +!define PRODUCT_STRING "${FLMSG_STRING}" +!define PRODUCT_DESCRIPTION "${FLMSG_DESCRIPTION}" # Compression options SetCompressor /SOLID lzma @@ -59,7 +59,7 @@ InstProgressFlags smooth VIAddVersionKey ProductName "${PRODUCT_NAME}" VIAddVersionKey ProductVersion "${PRODUCT_VERSION}" VIAddVersionKey FileVersion "${PRODUCT_VERSION}" -VIAddVersionKey FileDescription "${FLICS_DESCRIPTION} installer" +VIAddVersionKey FileDescription "${FLMSG_DESCRIPTION} installer" VIAddVersionKey LegalCopyright "${PRODUCT_NAME} developers" VIAddVersionKey OriginalFilename "${INSTALLER_FILE}" VIProductVersion "3.0.0.0" @@ -89,7 +89,7 @@ Section -install WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "DisplayVersion" "${PRODUCT_VERSION}" WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "DisplayIcon" '"$INSTDIR\${PRODUCT_BINARY}"' WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "HelpLink" "${SUPPORT_URL}" - WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "Publisher" "FLICS developers" + WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "Publisher" "FLMSG developers" WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "URLUpdateInfo" "${UPDATES_URL}" WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "UninstallString" '"$INSTDIR\uninstall.exe"' WriteRegStr HKLM "${REG_UNINSTALL_PATH}" "QuietUninstallString" '"$INSTDIR\uninstall.exe" /S' @@ -98,12 +98,12 @@ Section -install WriteUninstaller "uninstall.exe" SectionEnd -#Var WANT_FLICS +#Var WANT_FLMSG -Section "FLICS" +Section "FLMSG" SectionIn RO SetOutPath $INSTDIR - File "${FLICS_BINARY}" + File "${FLMSG_BINARY}" File /nonfatal "${MINGWM_DLL}" "${PTW32_DLL}" SectionEnd @@ -114,21 +114,21 @@ SectionEnd # The following sections are optional Section "Start Menu Shortcuts" CreateDirectory "${SM_PATH}" - CreateShortCut "${SM_PATH}\${FLICS_NAME}.lnk" "$INSTDIR\${FLICS_BINARY}" "" "$INSTDIR\${FLICS_BINARY}" 0 - CreateShortCut "${SM_PATH}\${FLICS_NAME} Beginners' Guide.lnk" "${GUIDE_URL}" - CreateShortCut "${SM_PATH}\${FLICS_NAME} Documentation.lnk" "${FLICS_DOCS_URL}" + CreateShortCut "${SM_PATH}\${FLMSG_NAME}.lnk" "$INSTDIR\${FLMSG_BINARY}" "" "$INSTDIR\${FLMSG_BINARY}" 0 + CreateShortCut "${SM_PATH}\${FLMSG_NAME} Beginners' Guide.lnk" "${GUIDE_URL}" + CreateShortCut "${SM_PATH}\${FLMSG_NAME} Documentation.lnk" "${FLMSG_DOCS_URL}" CreateShortCut "${SM_PATH}\Uninstall.lnk" "$INSTDIR\uninstall.exe" "" "$INSTDIR\uninstall.exe" 0 SectionEnd Section "Desktop Shortcuts" - CreateShortCut "$DESKTOP\${FLICS_DESCRIPTION}.lnk" "$INSTDIR\${FLICS_BINARY}" "" \ - "$INSTDIR\${FLICS_BINARY}" 0 + CreateShortCut "$DESKTOP\${FLMSG_DESCRIPTION}.lnk" "$INSTDIR\${FLMSG_BINARY}" "" \ + "$INSTDIR\${FLMSG_BINARY}" 0 SectionEnd # This is unselected by default Section /o "Quick Launch Shortcuts" - CreateShortCut "$QUICKLAUNCH\${FLICS_DESCRIPTION}}.lnk" "$INSTDIR\${FLICS_BINARY}" "" \ - "$INSTDIR\${FLICS_BINARY}" 0 + CreateShortCut "$QUICKLAUNCH\${FLMSG_DESCRIPTION}}.lnk" "$INSTDIR\${FLMSG_BINARY}" "" \ + "$INSTDIR\${FLMSG_BINARY}" 0 SectionEnd # Uninstaller @@ -138,13 +138,13 @@ Section "Uninstall" DeleteRegKey HKLM "${INSTALL_DIR_REG_KEY}" # Remove files and uninstaller - Delete /REBOOTOK $INSTDIR\${FLICS_BINARY} + Delete /REBOOTOK $INSTDIR\${FLMSG_BINARY} Delete /REBOOTOK $INSTDIR\uninstall.exe # Remove shortcuts, if any Delete "${SM_PATH}\*.*" - Delete "$DESKTOP\${FLICS_DESCRIPTION}.lnk" - Delete "$QUICKLAUNCH\${FLICS_DESCRIPTION}.lnk" + Delete "$DESKTOP\${FLMSG_DESCRIPTION}.lnk" + Delete "$QUICKLAUNCH\${FLMSG_DESCRIPTION}.lnk" # Remove directories used RMDir "${SM_PATH}" diff --git a/data/win32/flics.ico b/data/win32/flmsg.ico similarity index 100% rename from data/win32/flics.ico rename to data/win32/flmsg.ico diff --git a/flics-doc/Menu0.png b/flmsg-doc/Menu0.png similarity index 100% rename from flics-doc/Menu0.png rename to flmsg-doc/Menu0.png diff --git a/flics-doc/Menu1.png b/flmsg-doc/Menu1.png similarity index 100% rename from flics-doc/Menu1.png rename to flmsg-doc/Menu1.png diff --git a/flics-doc/Menu2.png b/flmsg-doc/Menu2.png similarity index 100% rename from flics-doc/Menu2.png rename to flmsg-doc/Menu2.png diff --git a/flics-doc/flics-quick-guide.html b/flmsg-doc/flmsg-quick-guide.html similarity index 100% rename from flics-doc/flics-quick-guide.html rename to flmsg-doc/flmsg-quick-guide.html diff --git a/flics-doc/flics-ss1.png b/flmsg-doc/flmsg-ss1.png similarity index 100% rename from flics-doc/flics-ss1.png rename to flmsg-doc/flmsg-ss1.png diff --git a/flics-doc/flics-ss4.png b/flmsg-doc/flmsg-ss4.png similarity index 100% rename from flics-doc/flics-ss4.png rename to flmsg-doc/flmsg-ss4.png diff --git a/m4/build.m4 b/m4/build.m4 index 14f32ca..9b86176 100644 --- a/m4/build.m4 +++ b/m4/build.m4 @@ -1,30 +1,30 @@ -AC_DEFUN([AC_FLICS_SH_DQ], [ +AC_DEFUN([AC_FLMSG_SH_DQ], [ ac_sh_dq="\"`$1 | sed 's/"/\\\\"/g'`\"" ]) -AC_DEFUN([AC_FLICS_BUILD_INFO], [ +AC_DEFUN([AC_FLMSG_BUILD_INFO], [ # Define build flags and substitute in Makefile.in # CPPFLAGS - FLICS_BUILD_CPPFLAGS="-I\$(srcdir) -I\$(srcdir)/include" + FLMSG_BUILD_CPPFLAGS="-I\$(srcdir) -I\$(srcdir)/include" # CXXFLAGS - FLICS_BUILD_CXXFLAGS="$FLTK_CFLAGS -pipe -Wall -fexceptions $OPT_CFLAGS $DEBUG_CFLAGS \ + FLMSG_BUILD_CXXFLAGS="$FLTK_CFLAGS -pipe -Wall -fexceptions $OPT_CFLAGS $DEBUG_CFLAGS \ $PTW32_CFLAGS" # LDFLAGS - FLICS_BUILD_LDFLAGS= + FLMSG_BUILD_LDFLAGS= # LDADD - FLICS_BUILD_LDADD="$FLTK_LIBS $EXTRA_LIBS $PTW32_LIBS" + FLMSG_BUILD_LDADD="$FLTK_LIBS $EXTRA_LIBS $PTW32_LIBS" if test "x$ac_cv_debug" = "xyes"; then - FLICS_BUILD_CXXFLAGS="$FLICS_BUILD_CXXFLAGS -UNDEBUG" - FLICS_BUILD_LDFLAGS="$FLICS_BUILD_LDFLAGS $RDYNAMIC" + FLMSG_BUILD_CXXFLAGS="$FLMSG_BUILD_CXXFLAGS -UNDEBUG" + FLMSG_BUILD_LDFLAGS="$FLMSG_BUILD_LDFLAGS $RDYNAMIC" else - FLICS_BUILD_CXXFLAGS="$FLICS_BUILD_CXXFLAGS -DNDEBUG" + FLMSG_BUILD_CXXFLAGS="$FLMSG_BUILD_CXXFLAGS -DNDEBUG" fi - AC_SUBST([FLICS_BUILD_CPPFLAGS]) - AC_SUBST([FLICS_BUILD_CXXFLAGS]) - AC_SUBST([FLICS_BUILD_LDFLAGS]) - AC_SUBST([FLICS_BUILD_LDADD]) + AC_SUBST([FLMSG_BUILD_CPPFLAGS]) + AC_SUBST([FLMSG_BUILD_CXXFLAGS]) + AC_SUBST([FLMSG_BUILD_LDFLAGS]) + AC_SUBST([FLMSG_BUILD_LDADD]) #define build variables for config.h AC_DEFINE_UNQUOTED([BUILD_BUILD_PLATFORM], ["$build"], [Build platform]) @@ -35,25 +35,25 @@ $PTW32_CFLAGS" LC_ALL=C export LC_ALL - AC_FLICS_SH_DQ([echo $ac_configure_args]) + AC_FLMSG_SH_DQ([echo $ac_configure_args]) AC_DEFINE_UNQUOTED([BUILD_CONFIGURE_ARGS], [$ac_sh_dq], [Configure arguments]) - AC_FLICS_SH_DQ([date]) + AC_FLMSG_SH_DQ([date]) AC_DEFINE_UNQUOTED([BUILD_DATE], [$ac_sh_dq], [Build date]) - AC_FLICS_SH_DQ([whoami]) + AC_FLMSG_SH_DQ([whoami]) AC_DEFINE_UNQUOTED([BUILD_USER], [$ac_sh_dq], [Build user]) - AC_FLICS_SH_DQ([hostname]) + AC_FLMSG_SH_DQ([hostname]) AC_DEFINE_UNQUOTED([BUILD_HOST], [$ac_sh_dq], [Build host]) - AC_FLICS_SH_DQ([$CXX -v 2>&1 | tail -1]) + AC_FLMSG_SH_DQ([$CXX -v 2>&1 | tail -1]) AC_DEFINE_UNQUOTED([BUILD_COMPILER], [$ac_sh_dq], [Compiler]) - AC_FLICS_SH_DQ([echo $FLICS_BUILD_CPPFLAGS $FLICS_BUILD_CXXFLAGS]) - AC_DEFINE_UNQUOTED([FLICS_BUILD_CXXFLAGS], [$ac_sh_dq], [FLICS compiler flags]) - AC_FLICS_SH_DQ([echo $FLICS_BUILD_LDFLAGS $FLICS_BUILD_LDADD]) - AC_DEFINE_UNQUOTED([FLICS_BUILD_LDFLAGS], [$ac_sh_dq], [FLICS linker flags]) + AC_FLMSG_SH_DQ([echo $FLMSG_BUILD_CPPFLAGS $FLMSG_BUILD_CXXFLAGS]) + AC_DEFINE_UNQUOTED([FLMSG_BUILD_CXXFLAGS], [$ac_sh_dq], [FLMSG compiler flags]) + AC_FLMSG_SH_DQ([echo $FLMSG_BUILD_LDFLAGS $FLMSG_BUILD_LDADD]) + AC_DEFINE_UNQUOTED([FLMSG_BUILD_LDFLAGS], [$ac_sh_dq], [FLMSG linker flags]) if test "x$LC_ALL_saved" != "x"; then LC_ALL="$LC_ALL_saved" diff --git a/scripts/build4mingw.sh b/scripts/build4mingw.sh index 0ae9b83..a8ce66f 100755 --- a/scripts/build4mingw.sh +++ b/scripts/build4mingw.sh @@ -4,7 +4,7 @@ ./configure $CROSSCFG $PKGCFG FLTK_CONFIG=$PREFIX/bin/fltk-config --with-ptw32=$PREFIX/ptw32 XMLRPC_C_CONFIG=$PREFIX/bin/xmlrpc-c-config make -i586-mingw32msvc-strip src/flics.exe +i586-mingw32msvc-strip src/flmsg.exe make nsisinst mv src/*setup*exe . diff --git a/scripts/builddist.sh b/scripts/builddist.sh index ed5357d..89ae315 100755 --- a/scripts/builddist.sh +++ b/scripts/builddist.sh @@ -2,15 +2,15 @@ # Linux binary make clean -./configure --enable-static --prefix=/tmp/flics-build +./configure --enable-static --prefix=/tmp/flmsg-build make install-strip -tar czf flics-$1.bin.tgz -C /tmp/flics-build/bin flics +tar czf flmsg-$1.bin.tgz -C /tmp/flmsg-build/bin flmsg # MS exectable make clean ./configure $CROSSCFG $PKGCFG FLTK_CONFIG=$PREFIX/bin/fltk-config --with-ptw32=$PREFIX/ptw32 XMLRPC_C_CONFIG=$PREFIX/bin/xmlrpc-c-config make -i586-mingw32msvc-strip src/flics.exe +i586-mingw32msvc-strip src/flmsg.exe make nsisinst mv src/*setup*exe . diff --git a/scripts/mkappbundle.sh b/scripts/mkappbundle.sh index 1ca52a4..363f65f 100755 --- a/scripts/mkappbundle.sh +++ b/scripts/mkappbundle.sh @@ -30,8 +30,8 @@ if ! test -w "$build"; then fi plist="${data}/mac/Info.plist.in" -flics_icon="${data}/mac/flics.icns" -for f in "$plist" "$flics_icon"; do +flmsg_icon="${data}/mac/flmsg.icns" +for f in "$plist" "$flmsg_icon"; do test -r "$f" && continue echo "E: ${f}: not readable" >&2 exit 1 @@ -106,9 +106,9 @@ name=$(echo "$PACKAGE_TARNAME" | upcase1) # we'll use the first four consonants as the signature signature="$(echo $PACKAGE_TARNAME | sed 's/[aeiouAEIOU]//g; s/\(^....\).*/\1/')" binary="$PACKAGE_TARNAME" -icon="$flics_icon" -version="${FLICS_VERSION_MAJOR}.${FLICS_VERSION_MINOR}" -appversion="$FLICS_VERSION" +icon="$flmsg_icon" +version="${flmsg_VERSION_MAJOR}.${flmsg_VERSION_MINOR}" +appversion="$flmsg_VERSION" bundle diff --git a/scripts/mknsisinst.sh b/scripts/mknsisinst.sh index 788aad9..353ff00 100755 --- a/scripts/mknsisinst.sh +++ b/scripts/mknsisinst.sh @@ -4,8 +4,8 @@ ### 20090510 Stelios Bounanos M0GLD, Dave Freese W1HKJ ### change for the target application -FLICS_name=flics -FLICS_bin=flics.exe +flmsg_name=flmsg +flmsg_bin=flmsg.exe if [ $# -ne 2 ]; then echo "Syntax: $0 data-dir build-dir" >&2 @@ -34,8 +34,8 @@ fi set -e -test "x$NOSTRIP" = "x" && $STRIP -S "$FLICS_bin" -def="$def -DFLICS_NAME=$FLICS_name -DFLICS_BINARY=$FLICS_bin -DFLICS_VERSION=$PACKAGE_VERSION" +test "x$NOSTRIP" = "x" && $STRIP -S "$flmsg_bin" +def="$def -Dflmsg_NAME=$flmsg_name -Dflmsg_BINARY=$flmsg_bin -Dflmsg_VERSION=$PACKAGE_VERSION" $MAKENSIS -V2 -NOCD -D"INSTALLER_FILE=$INSTALLER_FILE" -D"LICENSE_FILE=$data/../COPYING" \ -D"SUPPORT_URL=$PACKAGE_HOME" -D"UPDATES_URL=$PACKAGE_DL" $def "$data/win32/fl_app.nsi" diff --git a/src/FTextView.cxx b/src/FTextView.cxx index 046365e..32fe26c 100644 --- a/src/FTextView.cxx +++ b/src/FTextView.cxx @@ -24,7 +24,7 @@ // ---------------------------------------------------------------------------- #include "config.h" -#include "flics_config.h" +#include "flmsg_config.h" #include #include diff --git a/src/Makefile.am b/src/Makefile.am index 922eca3..76b9f1c 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,42 +1,42 @@ # Copyright (c) 2008 Dave Freese, W1HKJ (w1hkj AT w1hkj DOT com) -bin_PROGRAMS = flics +bin_PROGRAMS = flmsg -flics_CPPFLAGS = @FLICS_BUILD_CPPFLAGS@ -flics_CXXFLAGS = @FLICS_BUILD_CXXFLAGS@ -flics_CFLAGS = $(flics_CXXFLAGS) -flics_LDFLAGS = @FLICS_BUILD_LDFLAGS@ -flics_LDADD = @FLICS_BUILD_LDADD@ +flmsg_CPPFLAGS = @FLMSG_BUILD_CPPFLAGS@ +flmsg_CXXFLAGS = @FLMSG_BUILD_CXXFLAGS@ +flmsg_CFLAGS = $(flmsg_CXXFLAGS) +flmsg_LDFLAGS = @FLMSG_BUILD_LDFLAGS@ +flmsg_LDADD = @FLMSG_BUILD_LDADD@ MINGW32_SRC = \ - flics-rc.rc \ - include/flicsrc.h + flmsg-rc.rc \ + include/flmsgrc.h # We distribute these but do not always compile them -EXTRA_flics_SOURCES = $(FLICS_WIN32_RES_SRC) $(MINGW32_SRC) +EXTRA_flmsg_SOURCES = $(FLMSG_WIN32_RES_SRC) $(MINGW32_SRC) -flics_SOURCES = +flmsg_SOURCES = if MINGW32 if HAVE_WINDRES - flics_SOURCES += $(MINGW32_SRC) + flmsg_SOURCES += $(MINGW32_SRC) endif endif ######################################################################## -FLICS_VERSION_MAJOR = @FLICS_VERSION_MAJOR@ -FLICS_VERSION_MINOR = @FLICS_VERSION_MINOR@ -FLICS_VERSION_PATCH = @FLICS_VERSION_PATCH@ -FLICS_VERSION = @FLICS_VERSION@ +FLMSG_VERSION_MAJOR = @FLMSG_VERSION_MAJOR@ +FLMSG_VERSION_MINOR = @FLMSG_VERSION_MINOR@ +FLMSG_VERSION_PATCH = @FLMSG_VERSION_PATCH@ +FLMSG_VERSION = @FLMSG_VERSION@ .EXPORT_ALL_VARIABLES: nsisinst appbundle # Sources that are generated, BUILT_SOURCES = # not distributed, -nodist_flics_SOURCES = $(BUILT_SOURCES) +nodist_flmsg_SOURCES = $(BUILT_SOURCES) # and deleted by the clean targets CLEANFILES = $(BUILT_SOURCES) CLEAN_LOCAL = @@ -49,20 +49,20 @@ endif endif install-data-local: - if test -f $(srcdir)/../data/flics.xpm; then \ + if test -f $(srcdir)/../data/flmsg.xpm; then \ $(mkinstalldirs) $(DESTDIR)/$(datadir)/pixmaps; \ - $(INSTALL_DATA) $(srcdir)/../data/flics.xpm $(DESTDIR)/$(datadir)/pixmaps; \ + $(INSTALL_DATA) $(srcdir)/../data/flmsg.xpm $(DESTDIR)/$(datadir)/pixmaps; \ fi - if test -f $(srcdir)/../data/flics.desktop; then \ + if test -f $(srcdir)/../data/flmsg.desktop; then \ $(mkinstalldirs) $(DESTDIR)/$(datadir)/applications; \ - $(INSTALL_DATA) $(srcdir)/../data/flics.desktop $(DESTDIR)/$(datadir)/applications; \ + $(INSTALL_DATA) $(srcdir)/../data/flmsg.desktop $(DESTDIR)/$(datadir)/applications; \ fi uninstall-local: - rm -f $(DESTDIR)/$(datadir)/pixmaps/flics.xpm - rm -f $(DESTDIR)/$(datadir)/applications/flics.desktop + rm -f $(DESTDIR)/$(datadir)/pixmaps/flmsg.xpm + rm -f $(DESTDIR)/$(datadir)/applications/flmsg.desktop -FL_SRC = ics213_dialog.fl +FL_SRC = flmsg_dialog.fl if HAVE_FLUID flgen: $(FL_SRC) @@ -76,8 +76,8 @@ flgen: $(FL_SRC) endif -INSTALLER_FILE = flics-$(FLICS_VERSION)_setup.exe -APPBUNDLE=flics-$(FLICS_VERSION) +INSTALLER_FILE = flmsg-$(FLMSG_VERSION)_setup.exe +APPBUNDLE=flmsg-$(FLMSG_VERSION) APPBUNDLE_NOLIBS=$(APPBUNDLE)-nolibs if HAVE_NSIS @@ -96,7 +96,8 @@ clean-local: -rm -rf $(CLEAN_LOCAL) # Sources that we build. It is OK to have headers here. -flics_SOURCES += \ +flmsg_SOURCES += \ + $(srcdir)/arl_msgs.cxx \ $(srcdir)/calendar.cxx \ $(srcdir)/combo.cxx \ $(srcdir)/base64.cxx \ @@ -104,12 +105,14 @@ flics_SOURCES += \ $(srcdir)/debug.cxx \ $(srcdir)/fileselect.cxx \ $(srcdir)/flinput2.cxx \ + $(srcdir)/flmsg.cxx \ $(srcdir)/icons.cxx \ $(srcdir)/ics213.cxx \ - $(srcdir)/ics213_template.cxx \ - $(srcdir)/ics213_dialog.cxx \ + $(srcdir)/templates.cxx \ + $(srcdir)/flmsg_dialog.cxx \ $(srcdir)/parse_xml.cxx \ $(srcdir)/pixmaps.cxx \ + $(srcdir)/radiogram.cxx \ $(srcdir)/status.cxx \ $(srcdir)/util.cxx \ $(srcdir)/wrap.cxx \ @@ -138,6 +141,7 @@ EXTRA_DIST = \ $(srcdir)/Fl_Native_File_Chooser_MAC.cxx \ $(srcdir)/Fl_Native_File_Chooser_WIN32.cxx \ $(srcdir)/mingw.c \ + $(srcdir)/include/arl_msgs.h \ $(srcdir)/include/base64.h \ $(srcdir)/include/calendar.h \ $(srcdir)/include/combo.h \ @@ -147,14 +151,14 @@ EXTRA_DIST = \ $(srcdir)/include/date.h \ $(srcdir)/include/debug.h \ $(srcdir)/include/fileselect.h \ - $(srcdir)/include/flics_config.h \ - $(srcdir)/include/flicsrc.h \ + $(srcdir)/include/flmsg_config.h \ + $(srcdir)/include/flmsgrc.h \ $(srcdir)/include/flinput2.h \ $(srcdir)/include/gettext.h \ $(srcdir)/include/icons.h \ $(srcdir)/include/ics213.h \ - $(srcdir)/include/ics213_dialog.h \ - $(srcdir)/include/ics213_template.h \ + $(srcdir)/include/flmsg_dialog.h \ + $(srcdir)/include/templates.h \ $(srcdir)/include/mingw.h \ $(srcdir)/include/parse_xml.h \ $(srcdir)/include/pixmaps.h \ @@ -172,24 +176,24 @@ EXTRA_DIST = \ # Additional non-source files that are distributed EXTRA_DIST += \ $(srcdir)/../data/template.rtf \ - $(srcdir)/../flics-doc/flics-quick-guide.html \ - $(srcdir)/../flics-doc/flics-ss1.png \ - $(srcdir)/../flics-doc/flics-ss4.png \ - $(srcdir)/../flics-doc/Menu0.png \ - $(srcdir)/../flics-doc/Menu1.png \ - $(srcdir)/../flics-doc/Menu2.png + $(srcdir)/../flmsg-doc/flmsg-quick-guide.html \ + $(srcdir)/../flmsg-doc/flmsg-ss1.png \ + $(srcdir)/../flmsg-doc/flmsg-ss4.png \ + $(srcdir)/../flmsg-doc/Menu0.png \ + $(srcdir)/../flmsg-doc/Menu1.png \ + $(srcdir)/../flmsg-doc/Menu2.png # Additional source files that support non-Linux cross compilation EXTRA_DIST += \ - $(srcdir)/../data/flics.desktop \ - $(srcdir)/../data/flics.xpm \ + $(srcdir)/../data/flmsg.desktop \ + $(srcdir)/../data/flmsg.xpm \ $(srcdir)/../data/win32/fl_app.nsi \ - $(srcdir)/../data/win32/flics.ico \ + $(srcdir)/../data/win32/flmsg.ico \ $(srcdir)/../scripts/build4mingw.sh \ $(srcdir)/../scripts/builddist.sh \ $(srcdir)/../scripts/mkappbundle.sh \ $(srcdir)/../scripts/mknsisinst.sh \ $(srcdir)/../data/mac/Info.plist.in \ - $(srcdir)/../data/mac/flics.icns \ - $(FLICS_WIN32_SRC) \ - $(FLICS_FL_SRC) + $(srcdir)/../data/mac/flmsg.icns \ + $(FLMSG_WIN32_SRC) \ + $(FLMSG_FL_SRC) diff --git a/src/arl_msgs.cxx b/src/arl_msgs.cxx new file mode 100644 index 0000000..b50602c --- /dev/null +++ b/src/arl_msgs.cxx @@ -0,0 +1,110 @@ +// ===================================================================== +// +// arl_msgs.cxx +// +// Author: Dave Freese, W1HKJ +// Copyright: 2010 +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is +// copyright under the GNU General Public License. +// +// You should have received a copy of the GNU General Public License +// along with the program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ===================================================================== + +#include "ics213.h" +#include "flmsg_dialog.h" + +ARL_TEXT arl_list[] = { +{"ONE", 0, "Everyone safe here. Please don't worry." }, +{"TWO", 0, "Coming home as soon as possible." }, +{"THREE", 1, "Am in ____ hospital. Receiving excellent care and recovering fine." }, +{"FOUR", 0, "Only slight property damage here. Do not be concerned about disaster reports." }, +{"FIVE", 0, "Am moving to new location. Send no further mail or communication. Will inform you of new address when relocated." }, +{"SIX", 0, "Will contact you as soon as possible." }, +{"SEVEN", 0, "Please reply by Amateur Radio through the amateur delivering this message. This is a free public service." }, +{"EIGHT", 1, "Need additional ____ mobile or portable equipment for immediate emergency use." }, +{"NINE", 1, "Additional ____ radio operators needed to assist with emergency at this location." }, +{"TEN", 1, "Please contact ____. Advise to standby and provide further emergency information, instructions or assistance." }, +{"ELEVEN", 2, "Establish Amateur Radio emergency communications with ____ on ____ MHz." }, +{"TWELVE", 0, "Anxious to hear from you. No word in some time. Please contact me as soon as possible." }, +{"THIRTEEN", 0, "Medical emergency situation exits here." }, +{"FOURTEEN", 1, "Situation here becoming critical. Losses and damage from ____ increasing." }, +{"FIFTEEN", 0, "Please advise your condition and what help is needed." }, +{"SIXTEEN", 0, "Property damage very severe in this area." }, +{"SEVENTEEN", 2, "REACT communications services also available. Establish REACT communication with ____ on channel ____." }, +{"EIGHTEEN", 1, "Please contact me as soon as possible at ____." }, +{"NINETEEN", 1, "Request health and welfare report on ____ . (State name, address and telephone number.)" }, +{"TWENTY", 1, "Temporarily stranded. Will need some assistance. Please contact me at ____." }, +{"TWENTY ONE", 0, "Search and Rescue assistance is needed by local authorities here. Advise availability." }, +{"TWENTY TWO", 0, "Need accurate information on the extent and type of conditions now existing at your location. Please furnish this information and reply without delay." }, +{"TWENTY THREE", 0, "Report at once the accessibility and best way to reach your location." }, +{"TWENTY FOUR", 0, "Evacuation of residents from this area urgently needed. Advise plans for help." }, +{"TWENTY FIVE", 0, "Furnish as soon as possible the weather conditions at your location." }, +{"TWENTY SIX", 0, "Help and care for evacuation of sick and injured from this location needed at once. Emergency/priority messages originating from official sources must carry the signature of the originating official." }, +{"FORTY SIX", 0, "Greetings on your birthday and best wishes for many more to come." }, +{"FORTY SEVEN", 4, "Reference your message number ____ to ____ delivered on ____ at ____ UTC." }, +{"FIFTY", 0, "Greetings by Amateur Radio." }, +{"FIFTY ONE", 1, "Greetings by Amateur Radio. This message is sent as a free public service by ham radio operators at ____. Am having a wonderful time." }, +{"FIFTY TWO", 0, "Really enjoyed being with you. Looking forward to getting together again." }, +{"FIFTY THREE", 1, "Received your ____. It's appreciated; many thanks." }, +{"FIFTY FOUR", 0, "Many thanks for your good wishes." }, +{"FIFTY FIVE", 0, "Good news is always welcome. Very delighted to hear about yours." }, +{"FIFTY SIX", 1, "Congratulations on your ____, a most worthy and deserved achievement." }, +{"FIFTY SEVEN", 0, "Wish we could be together." }, +{"FIFTY EIGHT", 0, "Have a wonderful time. Let us know when you return." }, +{"FIFTY NINE", 0, "Congratulations on the new arrival. Hope mother and child are well." }, +{"SIXTY", 1, "Wishing you the best of everything on ____." }, +{"SIXTY ONE", 0, "Wishing you a very Merry Christmas and a Happy New Year." }, +{"SIXTY TWO", 1, "Greetings and best wishes to you for a pleasant ____ holiday season." }, +{"SIXTY THREE", 0, "Victory or defeat, our best wishes are with you. Hope you win." }, +{"SIXTY FOUR", 1, "Arrived safely at ____." }, +{"SIXTY FIVE", 2, "Arriving ____ on ____. Please arrange to meet me there." }, +{"SIXTY SIX", 2, "DX QSLs are on hand for you at the ____ QSL Bureau. Send ____ self addressed envelopes." }, +{"SIXTY SEVEN", 2, "Your message number ____ undeliverable because of ____. Please advise." }, +{"SIXTY EIGHT", 0, "Sorry to hear you are ill. Best wishes for a speedy recovery." }, +{"SIXTY NINE", 1, "Welcome to the ____. We are glad to have you with us and hope you will enjoy the fun and fellowship of the organization." }, +{0, 0, 0} +}; + +int arl_nbr = 0; + +void cb_arl() +{ + if (!arlwindow) { + arlwindow = arl_dialog(); + int n = 0; + while (arl_list[n].sznbr) { + select_arl->add(arl_list[n].sznbr); + n++; + } + } + select_arl->value(1); + select_arl->do_callback(); + arlwindow->show(); +} + +void cb_arl_cancel() +{ + arlwindow->hide(); +} + +void cb_arl_add() +{ + string msg = "ARL "; + string fill; + msg.append(arl_list[arl_nbr].sznbr).append(" X "); + fill = txt_arl_fill1->value(); if (!fill.empty()) msg.append(fill).append(" X "); + fill = txt_arl_fill2->value(); if (!fill.empty()) msg.append(fill).append(" X "); + fill = txt_arl_fill3->value(); if (!fill.empty()) msg.append(fill).append(" X "); + fill = txt_arl_fill4->value(); if (!fill.empty()) msg.append(fill).append(" X "); + txt_rg_msg->addstr(msg.c_str()); + select_arl->value(1); + select_arl->do_callback(); + cb_rg_check(); +} + diff --git a/src/debug.cxx b/src/debug.cxx index 3634082..dc4f886 100644 --- a/src/debug.cxx +++ b/src/debug.cxx @@ -57,7 +57,7 @@ static bool tty; static Fl_Double_Window* window; static Fl_Text_Display* text; -static Fl_Text_Buffer* buffer; +static Fl_Text_Buffer* dgb_buffer; debug* debug::inst = 0; debug::level_e debug::level = debug::WARN_LEVEL; @@ -112,8 +112,8 @@ void debug::start(const char* filename) text->wrap_mode(true, 60); window->resizable(text); - buffer = new Fl_Text_Buffer(); - text->buffer(buffer); + dgb_buffer = new Fl_Text_Buffer(); + text->buffer(dgb_buffer); window->end(); } @@ -225,12 +225,12 @@ static void src_menu_cb(Fl_Widget* w, void*) static void clear_cb(Fl_Widget* w, void*) { - buffer->text(""); + dgb_buffer->text(""); } static void save_cb(Fl_Widget* w, void*) { string filename = ICS_dir; filename.append("debug_log.txt"); - buffer->savefile(filename.c_str()); + dgb_buffer->savefile(filename.c_str()); } diff --git a/src/flics-rc.rc b/src/flics-rc.rc deleted file mode 100644 index 53aa911..0000000 --- a/src/flics-rc.rc +++ /dev/null @@ -1,7 +0,0 @@ -#include // include for version info constants -#include "flicsrc.h" - -IDI_ICON ICON DISCARDABLE "flics.ico" - -//A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "flics.ico" - diff --git a/src/flinput2.cxx b/src/flinput2.cxx index 2c71404..5d5570c 100644 --- a/src/flinput2.cxx +++ b/src/flinput2.cxx @@ -1,5 +1,5 @@ #include "config.h" -#include "flics_config.h" +#include "flmsg_config.h" #include diff --git a/src/icsres.rc b/src/flmsg-rc.rc similarity index 51% rename from src/icsres.rc rename to src/flmsg-rc.rc index 9f30b0b..95265ef 100644 --- a/src/icsres.rc +++ b/src/flmsg-rc.rc @@ -1,6 +1,6 @@ #include // include for version info constants -#include "icsrc.h" +#include "flmsgrc.h" -IDI_ICON ICON DISCARDABLE "flics.ico" +IDI_ICON ICON DISCARDABLE "flmsg.ico" diff --git a/src/flmsg.cxx b/src/flmsg.cxx new file mode 100644 index 0000000..c8e5600 --- /dev/null +++ b/src/flmsg.cxx @@ -0,0 +1,515 @@ +// ===================================================================== +// +// flmsg.cxx +// +// Author: Dave Freese, W1HKJ +// Copyright: 2010 +// +// This software is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. It is +// copyright under the GNU General Public License. +// +// You should have received a copy of the GNU General Public License +// along with the program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// +// ===================================================================== +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "config.h" +#include "flmsg_config.h" + +#include "templates.h" +#include "debug.h" +#include "util.h" +#include "gettext.h" +#include "flmsg_dialog.h" +#include "flinput2.h" +#include "date.h" +#include "calendar.h" +#include "icons.h" +#include "fileselect.h" +#include "wrap.h" +#include "status.h" + +#ifdef WIN32 +# include "flmsgrc.h" +# include "compat.h" +# define dirent fl_dirent_no_thanks +#endif + +#include +#ifdef __MINGW32__ +# undef dirent +#endif +#include + +#include +#include +#include + +using namespace std; + +Fl_Double_Window *mainwindow = 0; +Fl_Double_Window *optionswindow = 0; +Fl_Double_Window *arlwindow = 0; +Fl_Double_Window *configwindow = 0; + +string title; +string flmsgHomeDir; + +// flarq, fldigi, flmsg, flwrap share a common NBEMS directory + +string NBEMS_dir; +string ARQ_dir; +string ARQ_files_dir; +string ARQ_recv_dir; +string ARQ_send; +string WRAP_dir; +string WRAP_recv_dir; +string WRAP_send_dir; +string WRAP_auto_dir; +string ICS_dir; +string ICS_msg_dir; +string ICS_tmp_dir; + +string baseFileName = ""; +string defFileName = ""; +string defTemplateName = ""; +string defRTFname = ""; + +bool usingTemplate = false; + +// utility functions + +void remove_spaces_from_filename(string &fname) +{ + size_t n = fname.length(); + char szfname[n + 1]; + char *p; + memset(szfname, 0, n + 1); + strcpy(szfname, fname.c_str()); + p = (char *)fl_filename_name(szfname); + while (*p) { + if (*p == ' ') *p = '_'; + p++; + } + fname = szfname; +} + +char *szTime() +{ + static char szDt[80]; + time_t tmptr; + tm sTime; + time (&tmptr); + if (progStatus.UTC) { + gmtime_r (&tmptr, &sTime); + strftime(szDt, 79, "%H:%M UTC", &sTime); + } else { + localtime_r(&tmptr, &sTime); + strftime(szDt, 79, "%H:%M", &sTime); + } + return szDt; +} + +char *szDate() +{ + static char szDt[80]; + time_t tmptr; + tm sTime; + time (&tmptr); + if (progStatus.UTC) { + gmtime_r (&tmptr, &sTime); + } else { + localtime_r(&tmptr, &sTime); + } + switch (progStatus.dtformat) { + case 1: strftime(szDt, 79, "%m/%d/%y", &sTime); break; + case 2: strftime(szDt, 79, "%d/%m/%y", &sTime); break; + case 0: + default: + strftime(szDt, 79, "%Y-%m-%d", &sTime); + } + return szDt; +} + +char *szAbbrevDate() +{ + static char szDt[80]; + time_t tmptr; + tm sTime; + time (&tmptr); + if (progStatus.UTC) { + gmtime_r (&tmptr, &sTime); + } else { + localtime_r(&tmptr, &sTime); + } + strftime(szDt, 79, "%b %d", &sTime); + return szDt; +} + +// + +void cb_new() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_new(); + else cb_rg_new(); +} + +void cb_import() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_import(); + else cb_rg_import(); +} + +void cb_export() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_export(); + else cb_rg_export(); +} + +void cb_wrap_import() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_wrap_import(); + else cb_rg_wrap_import(); +} + +void cb_wrap_export() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_wrap_export(); + else cb_rg_wrap_export(); +} + +void cb_wrap_autosend() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_wrap_autosend(); + else cb_rg_wrap_autosend(); +} + +void cb_load_template() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_load_template(); +} + +void cb_save_template() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_save_template(); +} + +void cb_save_as_template() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_save_as_template(); +} + +void cb_open() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_open(); + else cb_rg_open(); +} + +void cb_save_as() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_save_as(); + else cb_rg_save_as(); +} + +void cb_save() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_save(); + else cb_rg_save(); +} + +void cb_write() +{ +} + +void cb_html() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_html(); + else cb_rg_html(); +} + +void cb_rtf() +{ + if (tabs_msg_type->value() == tab_ics213) cb_ics_write(); + else cb_rg_rtf(); +} + +void cb_text() +{ + if (tabs_msg_type->value() == tab_ics213) ; + else cb_rg_textout(); +} + +void cb_exit() +{ + progStatus.saveLastState(); + FSEL::destroy(); + exit(0); +} + +void exit_main(Fl_Widget *w) +{ + if (Fl::event_key() == FL_Escape) + return; + cb_exit(); +} + +void cb_About() +{ + fl_alert2(_("Version "PACKAGE_VERSION)); +} + +void show_filename(string p) +{ + baseFileName = fl_filename_name(p.c_str()); + txt_filename->value(baseFileName.c_str()); + txt_filename->redraw(); +} + +void set_main_label() +{ + string main_label = PACKAGE_NAME; + main_label.append(": ").append(PACKAGE_VERSION); + mainwindow->label(main_label.c_str()); +} + +int main(int argc, char *argv[]) +{ + if (argc > 1) { + if (strcasecmp("--help", argv[1]) == 0) { + printf("\ + --help this help text\n\ + --version\n\ +\n\ + Usage: flmsg\n"); + return 0; + } + if (strcasecmp("--version", argv[1]) == 0) { + printf("Version: "VERSION"\n"); + return 0; + } + } + + mainwindow = ics_dialog(); + configwindow = config_dialog(); + +char dirbuf[FL_PATH_MAX + 1]; +#ifdef __WIN32__ + fl_filename_expand(dirbuf, sizeof(dirbuf) - 1, "$USERPROFILE/NBEMS.files/"); +#else + fl_filename_expand(dirbuf, sizeof(dirbuf) - 1, "$HOME/.nbems/"); +#endif + NBEMS_dir = dirbuf; + checkdirectories(); + + defFileName = ICS_msg_dir; + defFileName.append("default"DATAFILE_EXT); + defRTFname = ICS_dir; + defRTFname.append("default.rtf"); + defTemplateName = ICS_tmp_dir; + defTemplateName.append("default.f2t"); + + def_rgFileName = ICS_msg_dir; + def_rgFileName.append("default"RGFILE_EXT); + set_rg_choices(); + + Fl_File_Icon::load_system_icons(); + FSEL::create(); + + int arg_idx; + if (Fl::args(argc, argv, arg_idx, parse_args) != argc) + showoptions(); + + progStatus.loadLastState(); + + mainwindow->resize( progStatus.mainX, progStatus.mainY, mainwindow->w(), mainwindow->h()); + + tab_ics213->show(); + +#ifdef WIN32 + mainwindow->icon((char*)LoadIcon(fl_display, MAKEINTRESOURCE(IDI_ICON))); + mainwindow->show(1, argv); +#else + mainwindow->show(argc, argv); +#endif + set_main_label(); + show_filename(defFileName); + + return Fl::run(); +} + +void checkdirectories(void) +{ + struct DIRS { + string& dir; + const char* suffix; + void (*new_dir_func)(void); + }; + DIRS NBEMS_dirs[] = { + { NBEMS_dir, 0, 0 }, + { ARQ_dir, "ARQ", 0 }, + { ARQ_files_dir, "ARQ/files", 0 }, + { ARQ_recv_dir, "ARQ/recv", 0 }, + { ARQ_send, "ARQ/send", 0 }, + { WRAP_dir, "WRAP", 0 }, + { WRAP_recv_dir, "WRAP/recv", 0 }, + { WRAP_send_dir, "WRAP/send", 0 }, + { WRAP_auto_dir, "WRAP/auto", 0 }, + { ICS_dir, "ICS", 0 }, + { ICS_msg_dir, "ICS/messages", 0 }, + { ICS_tmp_dir, "ICS/templates", 0 }, + }; + + int r; + + for (size_t i = 0; i < sizeof(NBEMS_dirs)/sizeof(*NBEMS_dirs); i++) { + if (NBEMS_dirs[i].suffix) + NBEMS_dirs[i].dir.assign(NBEMS_dir).append(NBEMS_dirs[i].suffix).append(PATH_SEP); + + if ((r = mkdir(NBEMS_dirs[i].dir.c_str(), 0777)) == -1 && errno != EEXIST) { + cerr << _("Could not make directory") << ' ' << NBEMS_dirs[i].dir + << ": " << strerror(errno) << '\n'; + exit(EXIT_FAILURE); + } + else if (r == 0 && NBEMS_dirs[i].new_dir_func) + NBEMS_dirs[i].new_dir_func(); + } +} + +const char *options[] = {\ +"-bg\t-background [COLOR]", +"-bg2\t-background2 [COLOR]", +"-di\t-display [host:n.n]", +"-dn\t-dnd : enable drag and drop", +"-nodn\t-nodnd : disable drag and drop", +"-fg\t-foreground [COLOR]", +"-g\t-geometry [WxH+X+Y]", +"-i\t-iconic", +"-k\t-kbd : enable keyboard focus:", +"-nok\t-nokbd : en/disable keyboard focus", +"-na\t-name [CLASSNAME]", +"-s\t-scheme [plastic | gtk+]", +"-ti\t-title [WINDOWTITLE]", +"-to\t-tooltips : enable tooltips", +"-not\t-notooltips : disable tooltips\n", +0 +}; + +const int widths[] = {60, 0}; + +void showoptions() +{ + if (!optionswindow) { + optionswindow = optionsdialog(); + brwsOptions->column_widths(widths); + for (int i = 0; options[i] != 0; i++) + brwsOptions->add(options[i]); + } + optionswindow->show(); +} + +void closeoptions() +{ + optionswindow->hide(); +} + +void cb_config() +{ + configwindow->show(); +} + +void cb_close_config() +{ + configwindow->hide(); +} + +void show_help() +{ + open_url("http://www.w1hkj.com/flmsg-help/index.html"); +} + +int parse_args(int argc, char **argv, int& idx) +{ +// Only handle a filename option + if ( argv[idx][0] == '-' ) + return 0; + +string fname = argv[idx]; + if (fname.find(".f2s")) { + clear_ics_form(); + defFileName = fname; + read_ics(defFileName); + usingTemplate = false; + show_filename(defFileName); + } + else if (fname.find(".f2t")) { + clear_ics_form(); + defFileName = fname; + read_ics(defFileName); + usingTemplate = true; + show_filename(defFileName); + } + + idx++; + return 1; +} + +void open_url(const char* url) +{ +#ifndef __WOE32__ + const char* browsers[] = { +# ifdef __APPLE__ + getenv("FLDIGI_BROWSER"), // valid for any OS - set by user + "open" // OS X +# else + "fl-xdg-open", // Puppy Linux + "xdg-open", // other Unix-Linux distros + getenv("FLDIGI_BROWSER"), // force use of spec'd browser + getenv("BROWSER"), // most Linux distributions + "sensible-browser", + "firefox", + "mozilla" // must be something out there! +# endif + }; + switch (fork()) { + case 0: +# ifndef NDEBUG + unsetenv("MALLOC_CHECK_"); + unsetenv("MALLOC_PERTURB_"); +# endif + for (size_t i = 0; i < sizeof(browsers)/sizeof(browsers[0]); i++) + if (browsers[i]) + execlp(browsers[i], browsers[i], url, (char*)0); + exit(EXIT_FAILURE); + case -1: + fl_alert2(_("Could not run a web browser:\n%s\n\n" + "Open this URL manually:\n%s"), + strerror(errno), url); + } +#else + if ((int)ShellExecute(NULL, "open", url, NULL, NULL, SW_SHOWNORMAL) <= 32) + fl_alert2(_("Could not open url:\n%s\n"), url); +#endif +} diff --git a/src/flmsg_dialog.cxx b/src/flmsg_dialog.cxx new file mode 100644 index 0000000..c0b8781 --- /dev/null +++ b/src/flmsg_dialog.cxx @@ -0,0 +1,973 @@ +// generated by Fast Light User Interface Designer (fluid) version 1.0110 + +#include "gettext.h" +#include "flmsg_dialog.h" +#include "status.h" + +static void cb_mnuNew(Fl_Menu_*, void*) { + cb_new(); +} + +static void cb_mnuOpen(Fl_Menu_*, void*) { + cb_open(); +} + +static void cb_mnuSave(Fl_Menu_*, void*) { + cb_save(); +} + +static void cb_mnuSaveAs(Fl_Menu_*, void*) { + cb_save_as(); +} + +static void cb_mnu_html(Fl_Menu_*, void*) { + cb_html(); +} + +static void cb_mnu_rtf(Fl_Menu_*, void*) { + cb_rtf(); +} + +static void cb_mnu_text(Fl_Menu_*, void*) { + cb_text(); +} + +static void cb_mnu_qimport(Fl_Menu_*, void*) { + cb_import(); +} + +static void cb_mnu_qexport(Fl_Menu_*, void*) { + cb_export(); +} + +static void cb_mnuWrapImport(Fl_Menu_*, void*) { + cb_wrap_import(); +} + +static void cb_mnuWrapExport(Fl_Menu_*, void*) { + cb_wrap_export(); +} + +static void cb_mnuAutoSend(Fl_Menu_*, void*) { + cb_wrap_autosend(); +} + +static void cb_mnuExit(Fl_Menu_*, void*) { + cb_exit(); +} + +static void cb_mnu_load_template(Fl_Menu_*, void*) { + cb_load_template(); +} + +static void cb_mnu_save_template(Fl_Menu_*, void*) { + cb_save_template(); +} + +static void cb_mnu_save_as_template(Fl_Menu_*, void*) { + cb_save_as_template(); +} + +static void cb_mnuConfig(Fl_Menu_*, void*) { + cb_config(); +} + +static void cb_mnuOptions(Fl_Menu_*, void*) { + showoptions(); +} + +static void cb_mnuOnLineHelp(Fl_Menu_*, void*) { + show_help(); +} + +static void cb_mnuAbout(Fl_Menu_*, void*) { + cb_About(); +} + +Fl_Menu_Item menu_[] = { + {_("&File"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0}, + {_("&New"), 0x4006e, (Fl_Callback*)cb_mnuNew, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("&Open"), 0x4006f, (Fl_Callback*)cb_mnuOpen, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {_("&Save"), 0x40073, (Fl_Callback*)cb_mnuSave, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Save &As"), 0x40061, (Fl_Callback*)cb_mnuSaveAs, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {_("View"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Html format"), 0, (Fl_Callback*)cb_mnu_html, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Rich text format"), 0, (Fl_Callback*)cb_mnu_rtf, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Text"), 0, (Fl_Callback*)cb_mnu_text, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {_("Q-forms"), 0, 0, 0, 192, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Import"), 0, (Fl_Callback*)cb_mnu_qimport, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Export"), 0, (Fl_Callback*)cb_mnu_qexport, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {_("Wrap"), 0, 0, 0, 192, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Import"), 0, (Fl_Callback*)cb_mnuWrapImport, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Export"), 0, (Fl_Callback*)cb_mnuWrapExport, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {_("AutoSend"), 0, (Fl_Callback*)cb_mnuAutoSend, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {_("E&xit"), 0x40078, (Fl_Callback*)cb_mnuExit, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {_("&Template"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Load"), 0, (Fl_Callback*)cb_mnu_load_template, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Save"), 0, (Fl_Callback*)cb_mnu_save_template, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Save As"), 0, (Fl_Callback*)cb_mnu_save_as_template, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {_("&Config"), 0, (Fl_Callback*)cb_mnuConfig, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_(" "), 0, 0, 0, 129, FL_NORMAL_LABEL, 0, 14, 0}, + {_("&Help"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0}, + {_("Command line options"), 0, (Fl_Callback*)cb_mnuOptions, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {_("On Line help"), 0, (Fl_Callback*)cb_mnuOnLineHelp, 0, 128, FL_NORMAL_LABEL, 0, 14, 0}, + {_("About"), 0, (Fl_Callback*)cb_mnuAbout, 0, 0, FL_NORMAL_LABEL, 0, 14, 0}, + {0,0,0,0,0,0,0,0,0}, + {0,0,0,0,0,0,0,0,0} +}; + +Fl_Output *txt_filename=(Fl_Output *)0; + +Fl_Tabs *tabs_msg_type=(Fl_Tabs *)0; + +static void cb_tabs_msg_type(Fl_Tabs*, void*) { + cb_msg_type(); +} + +Fl_Group *tab_ics213=(Fl_Group *)0; + +Fl_Tabs *tabs_ics213=(Fl_Tabs *)0; + +Fl_Group *tab_originator=(Fl_Group *)0; + +Fl_Input2 *txt_To=(Fl_Input2 *)0; + +Fl_Input2 *txt_P1=(Fl_Input2 *)0; + +Fl_Input2 *txt_Fm=(Fl_Input2 *)0; + +Fl_Input2 *txt_P2=(Fl_Input2 *)0; + +Fl_Input2 *txt_Subj=(Fl_Input2 *)0; + +Fl_DateInput *txt_D1=(Fl_DateInput *)0; + +Fl_Button *btnDate1=(Fl_Button *)0; + +static void cb_btnDate1(Fl_Button*, void*) { + cb_SetDate1(); +} + +Fl_Input2 *txt_T1=(Fl_Input2 *)0; + +Fl_Button *btnTime1=(Fl_Button *)0; + +static void cb_btnTime1(Fl_Button*, void*) { + cb_SetTime1(); +} + +FTextEdit *txt_Msg=(FTextEdit *)0; + +Fl_Input2 *txt_S1=(Fl_Input2 *)0; + +Fl_Input2 *txt_P3=(Fl_Input2 *)0; + +Fl_Group *tab_responder=(Fl_Group *)0; + +Fl_Input2 *txt_S2=(Fl_Input2 *)0; + +Fl_DateInput *txt_D2=(Fl_DateInput *)0; + +Fl_Input2 *txt_T2=(Fl_Input2 *)0; + +Fl_Button *btnTime2=(Fl_Button *)0; + +static void cb_btnTime2(Fl_Button*, void*) { + cb_SetTime2(); +} + +FTextEdit *txt_Reply=(FTextEdit *)0; + +Fl_Input2 *txt_P4=(Fl_Input2 *)0; + +Fl_Button *btnDate2=(Fl_Button *)0; + +static void cb_btnDate2(Fl_Button*, void*) { + cb_SetDate2(); +} + +Fl_Group *tab_radiogram=(Fl_Group *)0; + +Fl_Input2 *txt_rg_station=(Fl_Input2 *)0; + +Fl_Input2 *txt_rg_place=(Fl_Input2 *)0; + +Fl_Input2 *txt_rg_nbr=(Fl_Input2 *)0; + +Fl_Choice *sel_rg_prec=(Fl_Choice *)0; + +Fl_Choice *sel_rg_hx=(Fl_Choice *)0; + +Fl_Input2 *txt_rg_hx_n=(Fl_Input2 *)0; + +Fl_DateInput *txt_rg_d1=(Fl_DateInput *)0; + +Fl_Button *btn_rgDate1=(Fl_Button *)0; + +static void cb_btn_rgDate1(Fl_Button*, void*) { + cb_rgSetDate1(); +} + +Fl_Input2 *txt_rg_t1=(Fl_Input2 *)0; + +Fl_Button *btn_rgTime1=(Fl_Button *)0; + +static void cb_btn_rgTime1(Fl_Button*, void*) { + cb_rgSetTime1(); +} + +Fl_Input2 *txt_rg_to=(Fl_Input2 *)0; + +Fl_Input2 *txt_rg_rx=(Fl_Input2 *)0; + +Fl_Input2 *txt_rg_phone=(Fl_Input2 *)0; + +FTextEdit *txt_rg_msg=(FTextEdit *)0; + +Fl_Input2 *txt_rg_signed=(Fl_Input2 *)0; + +Fl_DateInput *txt_rg_d2=(Fl_DateInput *)0; + +Fl_Button *btn_rgDate2=(Fl_Button *)0; + +static void cb_btn_rgDate2(Fl_Button*, void*) { + cb_rgSetDate2(); +} + +Fl_Input2 *txt_rg_t2=(Fl_Input2 *)0; + +Fl_Button *btn_rgTime2=(Fl_Button *)0; + +static void cb_btn_rgTime2(Fl_Button*, void*) { + cb_rgSetTime2(); +} + +Fl_DateInput *txt_rg_d3=(Fl_DateInput *)0; + +Fl_Button *btn_rgDate3=(Fl_Button *)0; + +static void cb_btn_rgDate3(Fl_Button*, void*) { + cb_rgSetDate3(); +} + +Fl_Input2 *txt_rg_t3=(Fl_Input2 *)0; + +Fl_Button *btn_rgTime3=(Fl_Button *)0; + +static void cb_btn_rgTime3(Fl_Button*, void*) { + cb_rgSetTime3(); +} + +Fl_Input2 *txt_rg_sent_to=(Fl_Input2 *)0; + +Fl_Button *btn_rg_check=(Fl_Button *)0; + +static void cb_btn_rg_check(Fl_Button*, void*) { + cb_rg_check(); +} + +Fl_Output *txt_rg_check=(Fl_Output *)0; + +Fl_Button *btn_arl=(Fl_Button *)0; + +static void cb_btn_arl(Fl_Button*, void*) { + cb_arl(); +} + +Fl_Double_Window* ics_dialog() { + Fl_Double_Window* w; + { Fl_Double_Window* o = new Fl_Double_Window(569, 431, _("Standard Message Generator")); + w = o; + o->align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE); + { Fl_Menu_Bar* o = new Fl_Menu_Bar(1, 0, 280, 22); + o->menu(menu_); + } // Fl_Menu_Bar* o + { txt_filename = new Fl_Output(363, 2, 205, 20, _("filename:")); + txt_filename->box(FL_FLAT_BOX); + txt_filename->color((Fl_Color)FL_BACKGROUND_COLOR); + } // Fl_Output* txt_filename + { tabs_msg_type = new Fl_Tabs(1, 22, 564, 405); + tabs_msg_type->callback((Fl_Callback*)cb_tabs_msg_type); + { tab_ics213 = new Fl_Group(2, 45, 560, 380, _("ICS213")); + { tabs_ics213 = new Fl_Tabs(3, 49, 555, 370); + { tab_originator = new Fl_Group(4, 72, 551, 346, _("Originator")); + { txt_To = new Fl_Input2(43, 77, 235, 24, _("To")); + txt_To->tooltip(_("Addressee")); + txt_To->box(FL_DOWN_BOX); + txt_To->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_To->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_To->labeltype(FL_NORMAL_LABEL); + txt_To->labelfont(0); + txt_To->labelsize(14); + txt_To->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_To->align(FL_ALIGN_LEFT); + txt_To->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_To + { txt_P1 = new Fl_Input2(315, 77, 235, 24, _("Pos.")); + txt_P1->tooltip(_("Position of addressee")); + txt_P1->box(FL_DOWN_BOX); + txt_P1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_P1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_P1->labeltype(FL_NORMAL_LABEL); + txt_P1->labelfont(0); + txt_P1->labelsize(14); + txt_P1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_P1->align(FL_ALIGN_LEFT); + txt_P1->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_P1 + { txt_Fm = new Fl_Input2(43, 102, 235, 24, _("Fm")); + txt_Fm->tooltip(_("Originator")); + txt_Fm->box(FL_DOWN_BOX); + txt_Fm->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_Fm->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_Fm->labeltype(FL_NORMAL_LABEL); + txt_Fm->labelfont(0); + txt_Fm->labelsize(14); + txt_Fm->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_Fm->align(FL_ALIGN_LEFT); + txt_Fm->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_Fm + { txt_P2 = new Fl_Input2(315, 102, 235, 24, _("Pos.")); + txt_P2->tooltip(_("Position of originator")); + txt_P2->box(FL_DOWN_BOX); + txt_P2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_P2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_P2->labeltype(FL_NORMAL_LABEL); + txt_P2->labelfont(0); + txt_P2->labelsize(14); + txt_P2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_P2->align(FL_ALIGN_LEFT); + txt_P2->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_P2 + { txt_Subj = new Fl_Input2(43, 127, 235, 24, _("Sub.")); + txt_Subj->tooltip(_("Subject")); + txt_Subj->box(FL_DOWN_BOX); + txt_Subj->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_Subj->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_Subj->labeltype(FL_NORMAL_LABEL); + txt_Subj->labelfont(0); + txt_Subj->labelsize(14); + txt_Subj->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_Subj->align(FL_ALIGN_LEFT); + txt_Subj->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_Subj + { txt_D1 = new Fl_DateInput(316, 128, 122, 24, _("Date")); + txt_D1->tooltip(_("Date of origination")); + txt_D1->box(FL_DOWN_BOX); + txt_D1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_D1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_D1->labeltype(FL_NORMAL_LABEL); + txt_D1->labelfont(0); + txt_D1->labelsize(14); + txt_D1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_D1->align(FL_ALIGN_LEFT); + txt_D1->when(FL_WHEN_RELEASE); + txt_D1->format(2); + } // Fl_DateInput* txt_D1 + { btnDate1 = new Fl_Button(440, 130, 20, 20, _("...")); + btnDate1->tooltip(_("Set today")); + btnDate1->callback((Fl_Callback*)cb_btnDate1); + } // Fl_Button* btnDate1 + { txt_T1 = new Fl_Input2(317, 153, 100, 24, _("Time")); + txt_T1->tooltip(_("Time of origination")); + txt_T1->box(FL_DOWN_BOX); + txt_T1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_T1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_T1->labeltype(FL_NORMAL_LABEL); + txt_T1->labelfont(0); + txt_T1->labelsize(14); + txt_T1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_T1->align(FL_ALIGN_LEFT); + txt_T1->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_T1 + { btnTime1 = new Fl_Button(419, 155, 20, 20, _("...")); + btnTime1->tooltip(_("Set time now")); + btnTime1->callback((Fl_Callback*)cb_btnTime1); + } // Fl_Button* btnTime1 + { txt_Msg = new FTextEdit(8, 180, 544, 206, _("Message:")); + txt_Msg->box(FL_DOWN_FRAME); + txt_Msg->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_Msg->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_Msg->labeltype(FL_NORMAL_LABEL); + txt_Msg->labelfont(0); + txt_Msg->labelsize(14); + txt_Msg->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_Msg->align(FL_ALIGN_TOP_LEFT); + txt_Msg->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(txt_Msg); + } // FTextEdit* txt_Msg + { txt_S1 = new Fl_Input2(38, 389, 240, 24, _("Sig.")); + txt_S1->tooltip(_("Signature of preparer")); + txt_S1->box(FL_DOWN_BOX); + txt_S1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_S1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_S1->labeltype(FL_NORMAL_LABEL); + txt_S1->labelfont(0); + txt_S1->labelsize(14); + txt_S1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_S1->align(FL_ALIGN_LEFT); + txt_S1->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_S1 + { txt_P3 = new Fl_Input2(312, 389, 240, 24, _("Pos.")); + txt_P3->tooltip(_("Position of preparer")); + txt_P3->box(FL_DOWN_BOX); + txt_P3->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_P3->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_P3->labeltype(FL_NORMAL_LABEL); + txt_P3->labelfont(0); + txt_P3->labelsize(14); + txt_P3->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_P3->align(FL_ALIGN_LEFT); + txt_P3->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_P3 + tab_originator->end(); + } // Fl_Group* tab_originator + { tab_responder = new Fl_Group(4, 72, 551, 346, _("Responder")); + tab_responder->hide(); + { txt_S2 = new Fl_Input2(38, 387, 240, 24, _("Sig.")); + txt_S2->tooltip(_("Signature of responder")); + txt_S2->box(FL_DOWN_BOX); + txt_S2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_S2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_S2->labeltype(FL_NORMAL_LABEL); + txt_S2->labelfont(0); + txt_S2->labelsize(14); + txt_S2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_S2->align(FL_ALIGN_LEFT); + txt_S2->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_S2 + { txt_D2 = new Fl_DateInput(240, 78, 122, 24, _("Date")); + txt_D2->tooltip(_("Reply Date")); + txt_D2->box(FL_DOWN_BOX); + txt_D2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_D2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_D2->labeltype(FL_NORMAL_LABEL); + txt_D2->labelfont(0); + txt_D2->labelsize(14); + txt_D2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_D2->align(FL_ALIGN_LEFT); + txt_D2->when(FL_WHEN_RELEASE); + } // Fl_DateInput* txt_D2 + { txt_T2 = new Fl_Input2(425, 78, 100, 24, _("Time")); + txt_T2->tooltip(_("Reply Time")); + txt_T2->box(FL_DOWN_BOX); + txt_T2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_T2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_T2->labeltype(FL_NORMAL_LABEL); + txt_T2->labelfont(0); + txt_T2->labelsize(14); + txt_T2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_T2->align(FL_ALIGN_LEFT); + txt_T2->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_T2 + { btnTime2 = new Fl_Button(528, 80, 20, 20, _("...")); + btnTime2->tooltip(_("Now")); + btnTime2->callback((Fl_Callback*)cb_btnTime2); + } // Fl_Button* btnTime2 + { txt_Reply = new FTextEdit(8, 108, 545, 275, _("Reply")); + txt_Reply->box(FL_DOWN_FRAME); + txt_Reply->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_Reply->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_Reply->labeltype(FL_NORMAL_LABEL); + txt_Reply->labelfont(0); + txt_Reply->labelsize(14); + txt_Reply->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_Reply->align(FL_ALIGN_TOP_LEFT); + txt_Reply->when(FL_WHEN_RELEASE); + } // FTextEdit* txt_Reply + { txt_P4 = new Fl_Input2(315, 387, 235, 24, _("Pos.")); + txt_P4->tooltip(_("Position of responder")); + txt_P4->box(FL_DOWN_BOX); + txt_P4->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_P4->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_P4->labeltype(FL_NORMAL_LABEL); + txt_P4->labelfont(0); + txt_P4->labelsize(14); + txt_P4->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_P4->align(FL_ALIGN_LEFT); + txt_P4->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_P4 + { btnDate2 = new Fl_Button(363, 80, 20, 20, _("...")); + btnDate2->tooltip(_("Today")); + btnDate2->callback((Fl_Callback*)cb_btnDate2); + } // Fl_Button* btnDate2 + tab_responder->end(); + Fl_Group::current()->resizable(tab_responder); + } // Fl_Group* tab_responder + tabs_ics213->end(); + Fl_Group::current()->resizable(tabs_ics213); + } // Fl_Tabs* tabs_ics213 + tab_ics213->end(); + } // Fl_Group* tab_ics213 + { tab_radiogram = new Fl_Group(2, 45, 562, 380, _("RadioGram")); + tab_radiogram->hide(); + { txt_rg_station = new Fl_Input2(146, 51, 80, 24, _("*Originating station")); + txt_rg_station->tooltip(_("Station call sign")); + txt_rg_station->box(FL_DOWN_BOX); + txt_rg_station->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_station->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_station->labeltype(FL_NORMAL_LABEL); + txt_rg_station->labelfont(0); + txt_rg_station->labelsize(14); + txt_rg_station->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_station->align(FL_ALIGN_LEFT); + txt_rg_station->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_station + { txt_rg_place = new Fl_Input2(273, 51, 283, 24, _("Place")); + txt_rg_place->tooltip(_("Point of origin")); + txt_rg_place->box(FL_DOWN_BOX); + txt_rg_place->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_place->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_place->labeltype(FL_NORMAL_LABEL); + txt_rg_place->labelfont(0); + txt_rg_place->labelsize(14); + txt_rg_place->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_place->align(FL_ALIGN_LEFT); + txt_rg_place->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_place + { txt_rg_nbr = new Fl_Input2(5, 97, 80, 24, _("*Nbr")); + txt_rg_nbr->tooltip(_("Message number at station of origin")); + txt_rg_nbr->box(FL_DOWN_BOX); + txt_rg_nbr->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_nbr->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_nbr->labeltype(FL_NORMAL_LABEL); + txt_rg_nbr->labelfont(0); + txt_rg_nbr->labelsize(14); + txt_rg_nbr->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_nbr->align(FL_ALIGN_TOP_LEFT); + txt_rg_nbr->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_nbr + { sel_rg_prec = new Fl_Choice(88, 97, 118, 24, _("*Prec")); + sel_rg_prec->tooltip(_("Message Precedence")); + sel_rg_prec->down_box(FL_BORDER_BOX); + sel_rg_prec->align(FL_ALIGN_TOP_LEFT); + } // Fl_Choice* sel_rg_prec + { sel_rg_hx = new Fl_Choice(209, 97, 60, 24, _("HX_")); + sel_rg_hx->tooltip(_("Handling instructions")); + sel_rg_hx->down_box(FL_BORDER_BOX); + sel_rg_hx->align(FL_ALIGN_TOP_LEFT); + } // Fl_Choice* sel_rg_hx + { txt_rg_hx_n = new Fl_Input2(272, 97, 40, 24, _("#")); + txt_rg_hx_n->tooltip(_("Numeric for HXB/C/F")); + txt_rg_hx_n->box(FL_DOWN_BOX); + txt_rg_hx_n->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_hx_n->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_hx_n->labeltype(FL_NORMAL_LABEL); + txt_rg_hx_n->labelfont(0); + txt_rg_hx_n->labelsize(14); + txt_rg_hx_n->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_hx_n->align(FL_ALIGN_TOP_LEFT); + txt_rg_hx_n->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_hx_n + { txt_rg_d1 = new Fl_DateInput(315, 97, 122, 24, _("*Date filed")); + txt_rg_d1->tooltip(_("Date of origination")); + txt_rg_d1->box(FL_DOWN_BOX); + txt_rg_d1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_d1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_d1->labeltype(FL_NORMAL_LABEL); + txt_rg_d1->labelfont(0); + txt_rg_d1->labelsize(14); + txt_rg_d1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_d1->align(FL_ALIGN_TOP_LEFT); + txt_rg_d1->when(FL_WHEN_RELEASE); + txt_rg_d1->format(4); + } // Fl_DateInput* txt_rg_d1 + { btn_rgDate1 = new Fl_Button(437, 99, 20, 20, _("...")); + btn_rgDate1->tooltip(_("Set today")); + btn_rgDate1->callback((Fl_Callback*)cb_btn_rgDate1); + } // Fl_Button* btn_rgDate1 + { txt_rg_t1 = new Fl_Input2(459, 97, 80, 24, _("Time filed")); + txt_rg_t1->tooltip(_("Time of origination")); + txt_rg_t1->box(FL_DOWN_BOX); + txt_rg_t1->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_t1->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_t1->labeltype(FL_NORMAL_LABEL); + txt_rg_t1->labelfont(0); + txt_rg_t1->labelsize(14); + txt_rg_t1->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_t1->align(FL_ALIGN_TOP_LEFT); + txt_rg_t1->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_t1 + { btn_rgTime1 = new Fl_Button(540, 99, 20, 20, _("...")); + btn_rgTime1->tooltip(_("Set time now")); + btn_rgTime1->callback((Fl_Callback*)cb_btn_rgTime1); + } // Fl_Button* btn_rgTime1 + { txt_rg_to = new Fl_Input2(5, 139, 275, 60, _("*Addressee")); + txt_rg_to->tooltip(_("Addressee")); + txt_rg_to->type(4); + txt_rg_to->box(FL_DOWN_BOX); + txt_rg_to->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_to->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_to->labeltype(FL_NORMAL_LABEL); + txt_rg_to->labelfont(0); + txt_rg_to->labelsize(14); + txt_rg_to->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_to->align(FL_ALIGN_TOP_LEFT); + txt_rg_to->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_to + { txt_rg_rx = new Fl_Input2(281, 139, 275, 60, _("Message was received at")); + txt_rg_rx->tooltip(_("Receipt information")); + txt_rg_rx->type(4); + txt_rg_rx->box(FL_DOWN_BOX); + txt_rg_rx->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_rx->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_rx->labeltype(FL_NORMAL_LABEL); + txt_rg_rx->labelfont(0); + txt_rg_rx->labelsize(14); + txt_rg_rx->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_rx->align(FL_ALIGN_TOP_LEFT); + txt_rg_rx->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_rx + { txt_rg_phone = new Fl_Input2(90, 202, 190, 24, _("Tele:")); + txt_rg_phone->tooltip(_("Addressee telephone number")); + txt_rg_phone->box(FL_DOWN_BOX); + txt_rg_phone->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_phone->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_phone->labeltype(FL_NORMAL_LABEL); + txt_rg_phone->labelfont(0); + txt_rg_phone->labelsize(14); + txt_rg_phone->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_phone->align(FL_ALIGN_LEFT); + txt_rg_phone->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_phone + { txt_rg_msg = new FTextEdit(5, 243, 550, 100, _("Message:")); + txt_rg_msg->tooltip(_("Message contents - recommend limit to 25 words or less")); + txt_rg_msg->box(FL_DOWN_BOX); + txt_rg_msg->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_msg->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_msg->labeltype(FL_NORMAL_LABEL); + txt_rg_msg->labelfont(0); + txt_rg_msg->labelsize(14); + txt_rg_msg->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_msg->align(FL_ALIGN_TOP_LEFT); + txt_rg_msg->when(FL_WHEN_RELEASE); + Fl_Group::current()->resizable(txt_rg_msg); + } // FTextEdit* txt_rg_msg + { Fl_Group* o = new Fl_Group(7, 346, 270, 76); + o->box(FL_ENGRAVED_FRAME); + { txt_rg_signed = new Fl_Input2(73, 349, 200, 24, _("*Signed")); + txt_rg_signed->tooltip(_("Person requesting message")); + txt_rg_signed->box(FL_DOWN_BOX); + txt_rg_signed->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_signed->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_signed->labeltype(FL_NORMAL_LABEL); + txt_rg_signed->labelfont(0); + txt_rg_signed->labelsize(14); + txt_rg_signed->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_signed->align(FL_ALIGN_LEFT); + txt_rg_signed->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_signed + { txt_rg_d2 = new Fl_DateInput(20, 391, 122, 24, _("Date")); + txt_rg_d2->tooltip(_("Date of preparation")); + txt_rg_d2->box(FL_DOWN_BOX); + txt_rg_d2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_d2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_d2->labeltype(FL_NORMAL_LABEL); + txt_rg_d2->labelfont(0); + txt_rg_d2->labelsize(14); + txt_rg_d2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_d2->align(FL_ALIGN_TOP_LEFT); + txt_rg_d2->when(FL_WHEN_RELEASE); + txt_rg_d1->format(2); + } // Fl_DateInput* txt_rg_d2 + { btn_rgDate2 = new Fl_Button(142, 393, 20, 20, _("...")); + btn_rgDate2->tooltip(_("Set today")); + btn_rgDate2->callback((Fl_Callback*)cb_btn_rgDate2); + } // Fl_Button* btn_rgDate2 + { txt_rg_t2 = new Fl_Input2(164, 391, 80, 24, _("Time")); + txt_rg_t2->tooltip(_("Time of preparation")); + txt_rg_t2->box(FL_DOWN_BOX); + txt_rg_t2->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_t2->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_t2->labeltype(FL_NORMAL_LABEL); + txt_rg_t2->labelfont(0); + txt_rg_t2->labelsize(14); + txt_rg_t2->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_t2->align(FL_ALIGN_TOP_LEFT); + txt_rg_t2->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_t2 + { btn_rgTime2 = new Fl_Button(245, 393, 20, 20, _("...")); + btn_rgTime2->tooltip(_("Set time now")); + btn_rgTime2->callback((Fl_Callback*)cb_btn_rgTime2); + } // Fl_Button* btn_rgTime2 + o->end(); + } // Fl_Group* o + { Fl_Group* o = new Fl_Group(284, 346, 270, 76); + o->box(FL_ENGRAVED_FRAME); + { txt_rg_d3 = new Fl_DateInput(296, 391, 122, 24, _("Date")); + txt_rg_d3->tooltip(_("Date message sent")); + txt_rg_d3->box(FL_DOWN_BOX); + txt_rg_d3->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_d3->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_d3->labeltype(FL_NORMAL_LABEL); + txt_rg_d3->labelfont(0); + txt_rg_d3->labelsize(14); + txt_rg_d3->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_d3->align(FL_ALIGN_TOP_LEFT); + txt_rg_d3->when(FL_WHEN_RELEASE); + txt_rg_d1->format(2); + } // Fl_DateInput* txt_rg_d3 + { btn_rgDate3 = new Fl_Button(418, 393, 20, 20, _("...")); + btn_rgDate3->tooltip(_("Set today")); + btn_rgDate3->callback((Fl_Callback*)cb_btn_rgDate3); + } // Fl_Button* btn_rgDate3 + { txt_rg_t3 = new Fl_Input2(440, 391, 80, 24, _("Time")); + txt_rg_t3->tooltip(_("Time message sent")); + txt_rg_t3->box(FL_DOWN_BOX); + txt_rg_t3->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_t3->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_t3->labeltype(FL_NORMAL_LABEL); + txt_rg_t3->labelfont(0); + txt_rg_t3->labelsize(14); + txt_rg_t3->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_t3->align(FL_ALIGN_TOP_LEFT); + txt_rg_t3->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_t3 + { btn_rgTime3 = new Fl_Button(521, 393, 20, 20, _("...")); + btn_rgTime3->tooltip(_("Set time now")); + btn_rgTime3->callback((Fl_Callback*)cb_btn_rgTime3); + } // Fl_Button* btn_rgTime3 + { txt_rg_sent_to = new Fl_Input2(348, 349, 200, 24, _("Sent to")); + txt_rg_sent_to->tooltip(_("Message sent to (call sign)")); + txt_rg_sent_to->box(FL_DOWN_BOX); + txt_rg_sent_to->color((Fl_Color)FL_BACKGROUND2_COLOR); + txt_rg_sent_to->selection_color((Fl_Color)FL_SELECTION_COLOR); + txt_rg_sent_to->labeltype(FL_NORMAL_LABEL); + txt_rg_sent_to->labelfont(0); + txt_rg_sent_to->labelsize(14); + txt_rg_sent_to->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + txt_rg_sent_to->align(FL_ALIGN_LEFT); + txt_rg_sent_to->when(FL_WHEN_RELEASE); + } // Fl_Input2* txt_rg_sent_to + o->end(); + } // Fl_Group* o + { btn_rg_check = new Fl_Button(435, 216, 52, 24, _("Check")); + btn_rg_check->tooltip(_("Compute check count")); + btn_rg_check->callback((Fl_Callback*)cb_btn_rg_check); + } // Fl_Button* btn_rg_check + { txt_rg_check = new Fl_Output(494, 215, 60, 25); + txt_rg_check->tooltip(_("check count")); + } // Fl_Output* txt_rg_check + { btn_arl = new Fl_Button(355, 216, 75, 24, _("ARL MSG")); + btn_arl->tooltip(_("ARL message selector")); + btn_arl->callback((Fl_Callback*)cb_btn_arl); + } // Fl_Button* btn_arl + tab_radiogram->end(); + } // Fl_Group* tab_radiogram + tabs_msg_type->end(); + } // Fl_Tabs* tabs_msg_type + o->end(); + o->resizable(o); + } // Fl_Double_Window* o + return w; +} + +Fl_Browser *brwsOptions=(Fl_Browser *)0; + +Fl_Return_Button *btnCloseOptions=(Fl_Return_Button *)0; + +static void cb_btnCloseOptions(Fl_Return_Button*, void*) { + closeoptions(); +} + +Fl_Double_Window* optionsdialog() { + Fl_Double_Window* w; + { Fl_Double_Window* o = new Fl_Double_Window(411, 263, _("Command Line Options")); + w = o; + { brwsOptions = new Fl_Browser(3, 31, 405, 202); + } // Fl_Browser* brwsOptions + { btnCloseOptions = new Fl_Return_Button(329, 239, 72, 20, _("OK")); + btnCloseOptions->callback((Fl_Callback*)cb_btnCloseOptions); + } // Fl_Return_Button* btnCloseOptions + { Fl_Box* o = new Fl_Box(4, 7, 401, 21, _("usage: flics -