FLMSG
* Added RadioGram * Separated ICS213 from main(...) source file * Added html document view for ICS213 message
14
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
|
||||
|
|
|
|||
2
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:
|
||||
|
|
|
|||
30
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])
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
69
data/radiogram.rtf
Normal file
|
|
@ -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 <nbr:}
|
||||
\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 <prec:}
|
||||
\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 <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 <sta:}
|
||||
\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 <ck:}
|
||||
\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 <org:}
|
||||
\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 <t1:}
|
||||
\cell\pard\plain \intbl\ltrpar\s1\aspalpha\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 <d1:}
|
||||
\cell\row\pard \pard\plain \ltrpar\s1\qj\rtlch\af2\afs20\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs20\lang1033\loch\f2\fs20\lang1033
|
||||
\par \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\cellx5402\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 TO}
|
||||
\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 THIS RADIO MESSAGE WAS RECEIVED AT}
|
||||
\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\cellx5402\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 <to:}
|
||||
\cell\pard\plain \intbl\ltrpar\s1\aspalpha\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 <rx:}
|
||||
\cell\row\pard \pard\plain \ltrpar\s1\qj\rtlch\af2\afs20\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs20\lang1033\loch\f2\fs20\lang1033
|
||||
\par \pard\plain \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 TELEPHONE NUMBER}
|
||||
\par \pard\plain \ltrpar\s1\aspalpha\ql\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033 {\rtlch \ltrch\loch\f2\fs18\lang1033\i0\b0 <tel:}
|
||||
\par \pard\plain \ltrpar\s1\aspalpha\ql\rtlch\afs24\lang255\ltrch\dbch\langfe1033\hich\fs24\lang1033\loch\fs24\lang1033
|
||||
\par \trowd\trql\trrh1936\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800
|
||||
\pard\intbl\pard\plain \intbl\ltrpar\s9\aspalpha\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 <msg:}
|
||||
\cell\row\pard \pard\plain \ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033
|
||||
\par \trowd\trql\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx3309\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4479\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx5400\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx8777\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx9936\clbrdrt\brdrs\brdrw1\brdrcf1\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800
|
||||
\pard\intbl\pard\plain \intbl\ltrpar\s9\aspalpha\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 FROM}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 DATE}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 TIME}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 SENT TO}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 DATE}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 TIME}
|
||||
\cell\row\pard \trowd\trql\trpaddft3\trpaddt55\trpaddfl3\trpaddl55\trpaddfb3\trpaddb55\trpaddfr3\trpaddr55\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx3309\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx4479\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx5400\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx8777\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\cellx9936\clbrdrl\brdrs\brdrw1\brdrcf1\clbrdrb\brdrs\brdrw1\brdrcf1\clbrdrr\brdrs\brdrw1\brdrcf1\cellx10800
|
||||
\pard\intbl\pard\plain \intbl\ltrpar\s9\aspalpha\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 <sgn:}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 <d2:}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 <t2:}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 <sto:}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 <d3:}
|
||||
\cell\pard\plain \intbl\ltrpar\s9\aspalpha\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 <t3:}
|
||||
\cell\row\pard \pard\plain \ltrpar\s1\qj\rtlch\af2\afs18\lang255\ltrch\dbch\af2\langfe1033\hich\f2\fs18\lang1033\loch\f2\fs18\lang1033
|
||||
\par }
|
||||
114
data/rgtemplate.html
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
||||
<html><head><meta content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>RG_TEMPLATE</title></head><body>
|
||||
<table style="text-align: left; width: 1000px; margin-left: auto; margin-right: auto;" border="0" cellpadding="2" cellspacing="2">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">
|
||||
<div style="text-align: center;"><font size="3"><b>THE AMERICAN RADIO RELAY LEAGUE</b></font><br>
|
||||
<font size="6"><b>RADIOGRAM</b></font><br>
|
||||
<big><font size="1"><big>VIA AMATEUR RADIO</big></font></big><br>
|
||||
<br>
|
||||
</div>
|
||||
<table style="width: 100%;" border="1" cellpadding="2" cellspacing="0">
|
||||
<tbody><tr><td style="width: 70px;" class="heading">NUMBER</td><td style="width: 100px;" class="heading">PRECEDENCE</td><td style="width: 40px;" class="heading">HX</td><td class="heading">STATION OF ORIGIN</td><td style="width: 60px;" class="heading">CHECK</td><td class="heading">PLACE OF ORIGIN</td><td style="width: 90px;" class="heading">TIME FILED</td><td style="width: 90px;" class="heading">DATE</td></tr><tr>
|
||||
<td style="vertical-align: top;">VNBR<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VPREC<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VHX<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VCALL<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VCHK<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VORG<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VT1<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VD1<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">TO<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">THIS RADIO MESSAGE WAS RECEIVED AT<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">VTO<br>
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 50%;">VRX<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<table style="text-align: left; width: 100%;" border="0" cellpadding="0" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">TELEPHONE NUMBER<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">VTEL<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">
|
||||
<p>VMSG1<br>
|
||||
VMSG2<br>
|
||||
VMSG3<br></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="0">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="vertical-align: top; width: 340px;">FROM<br>
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 80px;">DATE<br>
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 80px;">TIME<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">SENT TO<br>
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 80px;">DATE<br>
|
||||
</td>
|
||||
<td style="vertical-align: top; width: 80px;">TIME<br>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="vertical-align: top;">VFM<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VD2<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VT2<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VSNT<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VD3<br>
|
||||
</td>
|
||||
<td style="vertical-align: top;">VT3<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
</body></html>
|
||||
|
|
@ -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}"
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
44
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"
|
||||
|
|
|
|||
|
|
@ -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 .
|
||||
|
||||
|
|
|
|||
|
|
@ -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 .
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include "config.h"
|
||||
#include "flics_config.h"
|
||||
#include "flmsg_config.h"
|
||||
|
||||
#include <cstring>
|
||||
#include <cstdlib>
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
110
src/arl_msgs.cxx
Normal file
|
|
@ -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();
|
||||
}
|
||||
|
||||
|
|
@ -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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
#include <windows.h> // include for version info constants
|
||||
#include "flicsrc.h"
|
||||
|
||||
IDI_ICON ICON DISCARDABLE "flics.ico"
|
||||
|
||||
//A ICON MOVEABLE PURE LOADONCALL DISCARDABLE "flics.ico"
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#include "config.h"
|
||||
#include "flics_config.h"
|
||||
#include "flmsg_config.h"
|
||||
|
||||
#include <cctype>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#include <windows.h> // include for version info constants
|
||||
|
||||
#include "icsrc.h"
|
||||
#include "flmsgrc.h"
|
||||
|
||||
IDI_ICON ICON DISCARDABLE "flics.ico"
|
||||
IDI_ICON ICON DISCARDABLE "flmsg.ico"
|
||||
|
||||
515
src/flmsg.cxx
Normal file
|
|
@ -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 <stdlib.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cstring>
|
||||
#include <ctime>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Enumerations.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
#include <FL/Fl_Sys_Menu_Bar.H>
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Help_Dialog.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_File_Icon.H>
|
||||
|
||||
#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 <FL/filename.H>
|
||||
#ifdef __MINGW32__
|
||||
# undef dirent
|
||||
#endif
|
||||
#include <dirent.h>
|
||||
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
|
||||
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
|
||||
}
|
||||
973
src/flmsg_dialog.cxx
Normal file
|
|
@ -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 -<option> [filename]"));
|
||||
o->box(FL_FLAT_BOX);
|
||||
o->color((Fl_Color)FL_LIGHT3);
|
||||
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||
} // Fl_Box* o
|
||||
o->end();
|
||||
} // Fl_Double_Window* o
|
||||
return w;
|
||||
}
|
||||
|
||||
Fl_Browser *select_arl=(Fl_Browser *)0;
|
||||
|
||||
static void cb_select_arl(Fl_Browser* o, void*) {
|
||||
arl_nbr = o->value()- 1;
|
||||
arl_text->clear();
|
||||
arl_text->addstr(arl_list[arl_nbr].text);
|
||||
txt_arl_fill1->value("");
|
||||
txt_arl_fill1->deactivate();
|
||||
txt_arl_fill2->value("");
|
||||
txt_arl_fill2->deactivate();
|
||||
txt_arl_fill3->value("");
|
||||
txt_arl_fill3->deactivate();
|
||||
txt_arl_fill4->value("");
|
||||
txt_arl_fill4->deactivate();
|
||||
if (arl_list[arl_nbr].nfills > 0) txt_arl_fill1->activate();
|
||||
if (arl_list[arl_nbr].nfills > 1) txt_arl_fill2->activate();
|
||||
if (arl_list[arl_nbr].nfills > 2) txt_arl_fill3->activate();
|
||||
if (arl_list[arl_nbr].nfills > 3) txt_arl_fill4->activate();
|
||||
}
|
||||
|
||||
Fl_Input *txt_arl_fill1=(Fl_Input *)0;
|
||||
|
||||
Fl_Input *txt_arl_fill2=(Fl_Input *)0;
|
||||
|
||||
Fl_Input *txt_arl_fill3=(Fl_Input *)0;
|
||||
|
||||
Fl_Input *txt_arl_fill4=(Fl_Input *)0;
|
||||
|
||||
Fl_Button *btn_arl_cancel=(Fl_Button *)0;
|
||||
|
||||
static void cb_btn_arl_cancel(Fl_Button*, void*) {
|
||||
cb_arl_cancel();
|
||||
}
|
||||
|
||||
Fl_Button *btn_arl_add=(Fl_Button *)0;
|
||||
|
||||
static void cb_btn_arl_add(Fl_Button*, void*) {
|
||||
cb_arl_add();
|
||||
}
|
||||
|
||||
FTextEdit *arl_text=(FTextEdit *)0;
|
||||
|
||||
Fl_Double_Window* arl_dialog() {
|
||||
Fl_Double_Window* w;
|
||||
{ Fl_Double_Window* o = new Fl_Double_Window(521, 261, _("ARL Message Selector"));
|
||||
w = o;
|
||||
{ select_arl = new Fl_Browser(6, 21, 161, 107, _("ARL #"));
|
||||
select_arl->type(2);
|
||||
select_arl->callback((Fl_Callback*)cb_select_arl);
|
||||
select_arl->align(FL_ALIGN_TOP);
|
||||
} // Fl_Browser* select_arl
|
||||
{ txt_arl_fill1 = new Fl_Input(48, 131, 465, 22, _("fill 1:"));
|
||||
} // Fl_Input* txt_arl_fill1
|
||||
{ txt_arl_fill2 = new Fl_Input(48, 155, 465, 22, _("fill 2:"));
|
||||
} // Fl_Input* txt_arl_fill2
|
||||
{ txt_arl_fill3 = new Fl_Input(48, 179, 465, 22, _("fill 3:"));
|
||||
} // Fl_Input* txt_arl_fill3
|
||||
{ txt_arl_fill4 = new Fl_Input(48, 204, 465, 22, _("fill 4:"));
|
||||
} // Fl_Input* txt_arl_fill4
|
||||
{ btn_arl_cancel = new Fl_Button(362, 232, 70, 20, _("Cancel"));
|
||||
btn_arl_cancel->callback((Fl_Callback*)cb_btn_arl_cancel);
|
||||
} // Fl_Button* btn_arl_cancel
|
||||
{ btn_arl_add = new Fl_Button(440, 232, 70, 20, _("Add"));
|
||||
btn_arl_add->callback((Fl_Callback*)cb_btn_arl_add);
|
||||
} // Fl_Button* btn_arl_add
|
||||
{ arl_text = new FTextEdit(169, 21, 345, 107, _("Message:"));
|
||||
arl_text->tooltip(_("Message contents - recommend limit to 25 words or less"));
|
||||
arl_text->box(FL_DOWN_BOX);
|
||||
arl_text->color((Fl_Color)FL_LIGHT3);
|
||||
arl_text->selection_color((Fl_Color)FL_SELECTION_COLOR);
|
||||
arl_text->labeltype(FL_NORMAL_LABEL);
|
||||
arl_text->labelfont(0);
|
||||
arl_text->labelsize(14);
|
||||
arl_text->labelcolor((Fl_Color)FL_FOREGROUND_COLOR);
|
||||
arl_text->align(FL_ALIGN_TOP_LEFT);
|
||||
arl_text->when(FL_WHEN_RELEASE);
|
||||
Fl_Group::current()->resizable(arl_text);
|
||||
} // FTextEdit* arl_text
|
||||
o->end();
|
||||
} // Fl_Double_Window* o
|
||||
return w;
|
||||
}
|
||||
|
||||
Fl_Check_Button *btn_compress=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_compress(Fl_Check_Button* o, void*) {
|
||||
progStatus.compression = o->value();
|
||||
}
|
||||
|
||||
Fl_Check_Button *btn_UTC=(Fl_Check_Button *)0;
|
||||
|
||||
static void cb_btn_UTC(Fl_Check_Button* o, void*) {
|
||||
progStatus.UTC = o->value();
|
||||
}
|
||||
|
||||
Fl_Round_Button *btn_dtformat0=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btn_dtformat0(Fl_Round_Button* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 0;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btn_dtformat1=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btn_dtformat1(Fl_Round_Button* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 1;
|
||||
}
|
||||
|
||||
Fl_Round_Button *btn_dtformat2=(Fl_Round_Button *)0;
|
||||
|
||||
static void cb_btn_dtformat2(Fl_Round_Button* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 2;
|
||||
}
|
||||
|
||||
Fl_Spinner *cnt_wpl=(Fl_Spinner *)0;
|
||||
|
||||
static void cb_cnt_wpl(Fl_Spinner* o, void*) {
|
||||
progStatus.wpl = (int)o->value();
|
||||
}
|
||||
|
||||
Fl_Button *btn_close_config=(Fl_Button *)0;
|
||||
|
||||
static void cb_btn_close_config(Fl_Button*, void*) {
|
||||
cb_close_config();
|
||||
}
|
||||
|
||||
Fl_Double_Window* config_dialog() {
|
||||
Fl_Double_Window* w;
|
||||
{ Fl_Double_Window* o = new Fl_Double_Window(233, 248, _("flmsg configure"));
|
||||
w = o;
|
||||
{ Fl_Check_Button* o = btn_compress = new Fl_Check_Button(42, 10, 70, 15, _("Use compression"));
|
||||
btn_compress->tooltip(_("Compress wrap files"));
|
||||
btn_compress->down_box(FL_DOWN_BOX);
|
||||
btn_compress->callback((Fl_Callback*)cb_btn_compress);
|
||||
o->value(progStatus.compression);
|
||||
} // Fl_Check_Button* btn_compress
|
||||
{ Fl_Check_Button* o = btn_UTC = new Fl_Check_Button(44, 41, 70, 15, _("use UTC"));
|
||||
btn_UTC->tooltip(_("UTC / local time"));
|
||||
btn_UTC->down_box(FL_DOWN_BOX);
|
||||
btn_UTC->callback((Fl_Callback*)cb_btn_UTC);
|
||||
o->value(progStatus.UTC);
|
||||
} // Fl_Check_Button* btn_UTC
|
||||
{ Fl_Group* o = new Fl_Group(46, 67, 133, 115, _("Date format"));
|
||||
o->box(FL_ENGRAVED_FRAME);
|
||||
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
|
||||
{ Fl_Round_Button* o = btn_dtformat0 = new Fl_Round_Button(58, 100, 70, 15, _("YYYY-DD-MM"));
|
||||
btn_dtformat0->down_box(FL_ROUND_DOWN_BOX);
|
||||
btn_dtformat0->callback((Fl_Callback*)cb_btn_dtformat0);
|
||||
if (progStatus.dtformat == 0) o->value(1); else o->value(0);
|
||||
} // Fl_Round_Button* btn_dtformat0
|
||||
{ Fl_Round_Button* o = btn_dtformat1 = new Fl_Round_Button(58, 125, 70, 15, _("MM/DD/YY"));
|
||||
btn_dtformat1->down_box(FL_ROUND_DOWN_BOX);
|
||||
btn_dtformat1->callback((Fl_Callback*)cb_btn_dtformat1);
|
||||
if (progStatus.dtformat == 1) o->value(1); else o->value(0);
|
||||
} // Fl_Round_Button* btn_dtformat1
|
||||
{ Fl_Round_Button* o = btn_dtformat2 = new Fl_Round_Button(58, 151, 70, 15, _("DD/MM/YY"));
|
||||
btn_dtformat2->down_box(FL_ROUND_DOWN_BOX);
|
||||
btn_dtformat2->callback((Fl_Callback*)cb_btn_dtformat2);
|
||||
if (progStatus.dtformat == 2) o->value(1); else o->value(0);
|
||||
} // Fl_Round_Button* btn_dtformat2
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Spinner* o = cnt_wpl = new Fl_Spinner(47, 188, 40, 25, _("words per line"));
|
||||
cnt_wpl->tooltip(_("Radiogram message contents auto format"));
|
||||
cnt_wpl->minimum(4);
|
||||
cnt_wpl->maximum(10);
|
||||
cnt_wpl->value(5);
|
||||
cnt_wpl->callback((Fl_Callback*)cb_cnt_wpl);
|
||||
cnt_wpl->align(FL_ALIGN_RIGHT);
|
||||
o->value(progStatus.wpl);
|
||||
} // Fl_Spinner* cnt_wpl
|
||||
{ btn_close_config = new Fl_Button(146, 216, 73, 25, _("close"));
|
||||
btn_close_config->callback((Fl_Callback*)cb_btn_close_config);
|
||||
} // Fl_Button* btn_close_config
|
||||
o->end();
|
||||
} // Fl_Double_Window* o
|
||||
return w;
|
||||
}
|
||||
575
src/flmsg_dialog.fl
Normal file
|
|
@ -0,0 +1,575 @@
|
|||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0110
|
||||
i18n_type 1
|
||||
i18n_include "gettext.h"
|
||||
i18n_function _
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
decl {\#include <FL/Fl_Pixmap.H>} {public global
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_Text_Editor.H>} {public
|
||||
}
|
||||
|
||||
decl {\#include "FTextView.h"} {public
|
||||
}
|
||||
|
||||
decl {\#include "status.h"} {}
|
||||
|
||||
decl {\#include "flinput2.h"} {public global
|
||||
}
|
||||
|
||||
Function {ics_dialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {Standard Message Generator} open
|
||||
xywh {488 101 569 431} type Double align 80 resizable visible
|
||||
} {
|
||||
Fl_Menu_Bar {} {open
|
||||
xywh {1 0 280 22}
|
||||
} {
|
||||
Submenu {} {
|
||||
label {&File} open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuNew {
|
||||
label {&New}
|
||||
callback {cb_new();}
|
||||
tooltip {New ICS file} xywh {0 0 36 21} shortcut 0x4006e
|
||||
code0 {\#include "ics213.h"}
|
||||
}
|
||||
MenuItem mnuOpen {
|
||||
label {&Open}
|
||||
callback {cb_open();}
|
||||
tooltip {Open ICS file} xywh {0 0 36 21} shortcut 0x4006f divider
|
||||
}
|
||||
MenuItem mnuSave {
|
||||
label {&Save}
|
||||
callback {cb_save();}
|
||||
tooltip {Save ICS file} xywh {0 0 36 21} shortcut 0x40073
|
||||
}
|
||||
MenuItem mnuSaveAs {
|
||||
label {Save &As}
|
||||
callback {cb_save_as();}
|
||||
tooltip {Save ICS file as} xywh {0 0 36 21} shortcut 0x40061 divider
|
||||
}
|
||||
Submenu {} {
|
||||
label View open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnu_html {
|
||||
label {Html format}
|
||||
callback {cb_html();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_rtf {
|
||||
label {Rich text format}
|
||||
callback {cb_rtf();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_text {
|
||||
label Text
|
||||
callback {cb_text();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {Q-forms} open
|
||||
xywh {0 0 70 21} divider
|
||||
} {
|
||||
MenuItem mnu_qimport {
|
||||
label Import
|
||||
callback {cb_import();}
|
||||
tooltip {Import Qforms xml data file} xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_qexport {
|
||||
label Export
|
||||
callback {cb_export();}
|
||||
tooltip {Export Qforms xml data file} xywh {0 0 36 21} divider
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label Wrap open
|
||||
xywh {0 0 70 21} divider
|
||||
} {
|
||||
MenuItem mnuWrapImport {
|
||||
label Import
|
||||
callback {cb_wrap_import();}
|
||||
tooltip {Import data from wrapped file} xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnuWrapExport {
|
||||
label Export
|
||||
callback {cb_wrap_export();}
|
||||
tooltip {Export Wrapped data file} xywh {0 0 36 21} divider
|
||||
}
|
||||
MenuItem mnuAutoSend {
|
||||
label AutoSend
|
||||
callback {cb_wrap_autosend();}
|
||||
tooltip {Send to fldigi for transmit} xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
MenuItem mnuExit {
|
||||
label {E&xit}
|
||||
callback {cb_exit();}
|
||||
xywh {0 0 36 21} shortcut 0x40078
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Template} open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnu_load_template {
|
||||
label Load
|
||||
callback {cb_load_template();}
|
||||
xywh {0 0 36 21} divider
|
||||
}
|
||||
MenuItem mnu_save_template {
|
||||
label Save
|
||||
callback {cb_save_template();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_save_as_template {
|
||||
label {Save As}
|
||||
callback {cb_save_as_template();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
MenuItem mnuConfig {
|
||||
label {&Config}
|
||||
callback {cb_config();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem {} {
|
||||
label { }
|
||||
xywh {0 0 36 21} deactivate divider
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Help} open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuOptions {
|
||||
label {Command line options}
|
||||
callback {showoptions();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnuOnLineHelp {
|
||||
label {On Line help}
|
||||
callback {show_help();}
|
||||
xywh {0 0 36 21} divider
|
||||
}
|
||||
MenuItem mnuAbout {
|
||||
label About
|
||||
callback {cb_About();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Output txt_filename {
|
||||
label {filename:}
|
||||
xywh {363 2 205 20} box FLAT_BOX color 49
|
||||
}
|
||||
Fl_Tabs tabs_msg_type {
|
||||
callback {cb_msg_type();} open
|
||||
xywh {1 22 564 405}
|
||||
} {
|
||||
Fl_Group tab_ics213 {
|
||||
label ICS213 open selected
|
||||
xywh {2 45 560 380}
|
||||
} {
|
||||
Fl_Tabs tabs_ics213 {open
|
||||
xywh {3 49 555 370} resizable
|
||||
} {
|
||||
Fl_Group tab_originator {
|
||||
label Originator open
|
||||
xywh {4 72 551 346}
|
||||
} {
|
||||
Fl_Input txt_To {
|
||||
label To
|
||||
tooltip Addressee xywh {43 77 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P1 {
|
||||
label {Pos.}
|
||||
tooltip {Position of addressee} xywh {315 77 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_Fm {
|
||||
label Fm
|
||||
tooltip Originator xywh {43 102 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P2 {
|
||||
label {Pos.}
|
||||
tooltip {Position of originator} xywh {315 102 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_Subj {
|
||||
label {Sub.}
|
||||
tooltip Subject xywh {43 127 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_D1 {
|
||||
label Date
|
||||
tooltip {Date of origination} xywh {316 128 122 24}
|
||||
code0 {\#include "calendar.h"}
|
||||
code1 {txt_D1->format(2);}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Button btnDate1 {
|
||||
label {...}
|
||||
callback {cb_SetDate1();}
|
||||
tooltip {Set today} xywh {440 130 20 20}
|
||||
}
|
||||
Fl_Input txt_T1 {
|
||||
label Time
|
||||
tooltip {Time of origination} xywh {317 153 100 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnTime1 {
|
||||
label {...}
|
||||
callback {cb_SetTime1();}
|
||||
tooltip {Set time now} xywh {419 155 20 20}
|
||||
}
|
||||
Fl_Text_Editor txt_Msg {
|
||||
label {Message:}
|
||||
xywh {8 180 544 206} align 5 resizable
|
||||
class FTextEdit
|
||||
}
|
||||
Fl_Input txt_S1 {
|
||||
label {Sig.}
|
||||
tooltip {Signature of preparer} xywh {38 389 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P3 {
|
||||
label {Pos.}
|
||||
tooltip {Position of preparer} xywh {312 389 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
}
|
||||
Fl_Group tab_responder {
|
||||
label Responder open
|
||||
xywh {4 72 551 346} hide resizable
|
||||
} {
|
||||
Fl_Input txt_S2 {
|
||||
label {Sig.}
|
||||
tooltip {Signature of responder} xywh {38 387 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_D2 {
|
||||
label Date
|
||||
tooltip {Reply Date} xywh {240 78 122 24}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Input txt_T2 {
|
||||
label Time
|
||||
tooltip {Reply Time} xywh {425 78 100 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnTime2 {
|
||||
label {...}
|
||||
callback {cb_SetTime2();}
|
||||
tooltip Now xywh {528 80 20 20}
|
||||
}
|
||||
Fl_Text_Editor txt_Reply {
|
||||
label Reply
|
||||
xywh {8 108 545 275} align 5
|
||||
class FTextEdit
|
||||
}
|
||||
Fl_Input txt_P4 {
|
||||
label {Pos.}
|
||||
tooltip {Position of responder} xywh {315 387 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnDate2 {
|
||||
label {...}
|
||||
callback {cb_SetDate2();}
|
||||
tooltip Today xywh {363 80 20 20}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Group tab_radiogram {
|
||||
label RadioGram open
|
||||
xywh {2 45 562 380} hide
|
||||
} {
|
||||
Fl_Input txt_rg_station {
|
||||
label {*Originating station}
|
||||
tooltip {Station call sign} xywh {146 51 80 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_place {
|
||||
label Place
|
||||
tooltip {Point of origin} xywh {273 51 283 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_nbr {
|
||||
label {*Nbr}
|
||||
tooltip {Message number at station of origin} xywh {5 97 80 24} align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Choice sel_rg_prec {
|
||||
label {*Prec} open
|
||||
tooltip {Message Precedence} xywh {88 97 118 24} down_box BORDER_BOX align 5
|
||||
} {}
|
||||
Fl_Choice sel_rg_hx {
|
||||
label HX_ open
|
||||
tooltip {Handling instructions} xywh {209 97 60 24} down_box BORDER_BOX align 5
|
||||
} {}
|
||||
Fl_Input txt_rg_hx_n {
|
||||
label {\#}
|
||||
tooltip {Numeric for HXB/C/F} xywh {272 97 40 24} align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_d1 {
|
||||
label {*Date filed}
|
||||
tooltip {Date of origination} xywh {315 97 122 24} align 5
|
||||
code0 {txt_rg_d1->format(4);}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Button btn_rgDate1 {
|
||||
label {...}
|
||||
callback {cb_rgSetDate1();}
|
||||
tooltip {Set today} xywh {437 99 20 20}
|
||||
}
|
||||
Fl_Input txt_rg_t1 {
|
||||
label {Time filed}
|
||||
tooltip {Time of origination} xywh {459 97 80 24} align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btn_rgTime1 {
|
||||
label {...}
|
||||
callback {cb_rgSetTime1();}
|
||||
tooltip {Set time now} xywh {540 99 20 20}
|
||||
}
|
||||
Fl_Input txt_rg_to {
|
||||
label {*Addressee}
|
||||
tooltip Addressee xywh {5 139 275 60} type Multiline align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_rx {
|
||||
label {Message was received at}
|
||||
tooltip {Receipt information} xywh {281 139 275 60} type Multiline align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_phone {
|
||||
label {Tele:}
|
||||
tooltip {Addressee telephone number} xywh {90 202 190 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Text_Editor txt_rg_msg {
|
||||
label {Message:}
|
||||
tooltip {Message contents - recommend limit to 25 words or less} xywh {5 243 550 100} box DOWN_BOX align 5 resizable
|
||||
class FTextEdit
|
||||
}
|
||||
Fl_Group {} {open
|
||||
xywh {7 346 270 76} box ENGRAVED_FRAME
|
||||
} {
|
||||
Fl_Input txt_rg_signed {
|
||||
label {*Signed}
|
||||
tooltip {Person requesting message} xywh {73 349 200 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_rg_d2 {
|
||||
label Date
|
||||
tooltip {Date of preparation} xywh {20 391 122 24} align 5
|
||||
code0 {txt_rg_d1->format(2);}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Button btn_rgDate2 {
|
||||
label {...}
|
||||
callback {cb_rgSetDate2();}
|
||||
tooltip {Set today} xywh {142 393 20 20}
|
||||
}
|
||||
Fl_Input txt_rg_t2 {
|
||||
label Time
|
||||
tooltip {Time of preparation} xywh {164 391 80 24} align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btn_rgTime2 {
|
||||
label {...}
|
||||
callback {cb_rgSetTime2();}
|
||||
tooltip {Set time now} xywh {245 393 20 20}
|
||||
}
|
||||
}
|
||||
Fl_Group {} {open
|
||||
xywh {284 346 270 76} box ENGRAVED_FRAME
|
||||
} {
|
||||
Fl_Input txt_rg_d3 {
|
||||
label Date
|
||||
tooltip {Date message sent} xywh {296 391 122 24} align 5
|
||||
code0 {txt_rg_d1->format(2);}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Button btn_rgDate3 {
|
||||
label {...}
|
||||
callback {cb_rgSetDate3();}
|
||||
tooltip {Set today} xywh {418 393 20 20}
|
||||
}
|
||||
Fl_Input txt_rg_t3 {
|
||||
label Time
|
||||
tooltip {Time message sent} xywh {440 391 80 24} align 5
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btn_rgTime3 {
|
||||
label {...}
|
||||
callback {cb_rgSetTime3();}
|
||||
tooltip {Set time now} xywh {521 393 20 20}
|
||||
}
|
||||
Fl_Input txt_rg_sent_to {
|
||||
label {Sent to}
|
||||
tooltip {Message sent to (call sign)} xywh {348 349 200 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
}
|
||||
Fl_Button btn_rg_check {
|
||||
label Check
|
||||
callback {cb_rg_check();}
|
||||
tooltip {Compute check count} xywh {435 216 52 24}
|
||||
}
|
||||
Fl_Output txt_rg_check {
|
||||
tooltip {check count} xywh {494 215 60 25}
|
||||
}
|
||||
Fl_Button btn_arl {
|
||||
label {ARL MSG}
|
||||
callback {cb_arl();}
|
||||
tooltip {ARL message selector} xywh {355 216 75 24}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Function {optionsdialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {Command Line Options} open
|
||||
xywh {490 707 411 263} type Double hide
|
||||
} {
|
||||
Fl_Browser brwsOptions {
|
||||
xywh {3 31 405 202}
|
||||
}
|
||||
Fl_Return_Button btnCloseOptions {
|
||||
label OK
|
||||
callback {closeoptions();}
|
||||
xywh {329 239 72 20}
|
||||
}
|
||||
Fl_Box {} {
|
||||
label {usage: flics -<option> [filename]}
|
||||
xywh {4 7 401 21} box FLAT_BOX color 54 align 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Function {arl_dialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {ARL Message Selector} open
|
||||
xywh {489 572 521 261} type Double hide resizable
|
||||
} {
|
||||
Fl_Browser select_arl {
|
||||
label {ARL \#}
|
||||
callback {arl_nbr = o->value()- 1;
|
||||
arl_text->clear();
|
||||
arl_text->addstr(arl_list[arl_nbr].text);
|
||||
txt_arl_fill1->value("");
|
||||
txt_arl_fill1->deactivate();
|
||||
txt_arl_fill2->value("");
|
||||
txt_arl_fill2->deactivate();
|
||||
txt_arl_fill3->value("");
|
||||
txt_arl_fill3->deactivate();
|
||||
txt_arl_fill4->value("");
|
||||
txt_arl_fill4->deactivate();
|
||||
if (arl_list[arl_nbr].nfills > 0) txt_arl_fill1->activate();
|
||||
if (arl_list[arl_nbr].nfills > 1) txt_arl_fill2->activate();
|
||||
if (arl_list[arl_nbr].nfills > 2) txt_arl_fill3->activate();
|
||||
if (arl_list[arl_nbr].nfills > 3) txt_arl_fill4->activate();}
|
||||
xywh {6 21 161 107} type Hold align 1
|
||||
}
|
||||
Fl_Input txt_arl_fill1 {
|
||||
label {fill 1:}
|
||||
xywh {48 131 465 22}
|
||||
}
|
||||
Fl_Input txt_arl_fill2 {
|
||||
label {fill 2:}
|
||||
xywh {48 155 465 22}
|
||||
}
|
||||
Fl_Input txt_arl_fill3 {
|
||||
label {fill 3:}
|
||||
xywh {48 179 465 22}
|
||||
}
|
||||
Fl_Input txt_arl_fill4 {
|
||||
label {fill 4:}
|
||||
xywh {48 204 465 22}
|
||||
}
|
||||
Fl_Button btn_arl_cancel {
|
||||
label Cancel
|
||||
callback {cb_arl_cancel();}
|
||||
xywh {362 232 70 20}
|
||||
}
|
||||
Fl_Button btn_arl_add {
|
||||
label Add
|
||||
callback {cb_arl_add();}
|
||||
xywh {440 232 70 20}
|
||||
}
|
||||
Fl_Text_Editor arl_text {
|
||||
label {Message:}
|
||||
tooltip {Message contents - recommend limit to 25 words or less} xywh {169 21 345 107} box DOWN_BOX color 54 align 5 resizable
|
||||
class FTextEdit
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Function {config_dialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {flmsg configure} open
|
||||
xywh {478 561 233 248} type Double hide
|
||||
} {
|
||||
Fl_Check_Button btn_compress {
|
||||
label {Use compression}
|
||||
callback {progStatus.compression = o->value();}
|
||||
tooltip {Compress wrap files} xywh {42 10 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.compression);}
|
||||
}
|
||||
Fl_Check_Button btn_UTC {
|
||||
label {use UTC}
|
||||
callback {progStatus.UTC = o->value();}
|
||||
tooltip {UTC / local time} xywh {44 41 70 15} down_box DOWN_BOX
|
||||
code0 {o->value(progStatus.UTC);}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label {Date format} open
|
||||
xywh {46 67 133 115} box ENGRAVED_FRAME align 21
|
||||
} {
|
||||
Fl_Round_Button btn_dtformat0 {
|
||||
label {YYYY-DD-MM}
|
||||
callback {if (o->value()) progStatus.dtformat = 0;}
|
||||
xywh {58 100 70 15} down_box ROUND_DOWN_BOX
|
||||
code0 {if (progStatus.dtformat == 0) o->value(1); else o->value(0);}
|
||||
}
|
||||
Fl_Round_Button btn_dtformat1 {
|
||||
label {MM/DD/YY}
|
||||
callback {if (o->value()) progStatus.dtformat = 1;}
|
||||
xywh {58 125 70 15} down_box ROUND_DOWN_BOX
|
||||
code0 {if (progStatus.dtformat == 1) o->value(1); else o->value(0);}
|
||||
}
|
||||
Fl_Round_Button btn_dtformat2 {
|
||||
label {DD/MM/YY}
|
||||
callback {if (o->value()) progStatus.dtformat = 2;}
|
||||
xywh {58 151 70 15} down_box ROUND_DOWN_BOX
|
||||
code0 {if (progStatus.dtformat == 2) o->value(1); else o->value(0);}
|
||||
}
|
||||
}
|
||||
Fl_Spinner cnt_wpl {
|
||||
label {words per line}
|
||||
callback {progStatus.wpl = (int)o->value();}
|
||||
tooltip {Radiogram message contents auto format} xywh {47 188 40 25} align 8 minimum 4 maximum 10 value 5
|
||||
code0 {o->value(progStatus.wpl);}
|
||||
}
|
||||
Fl_Button btn_close_config {
|
||||
label close
|
||||
callback {cb_close_config();}
|
||||
xywh {146 216 73 25}
|
||||
}
|
||||
}
|
||||
}
|
||||
6
src/flmsgres.rc
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
#include <windows.h> // include for version info constants
|
||||
|
||||
#include "flmsgrc.h"
|
||||
|
||||
IDI_ICON ICON DISCARDABLE "flmsg.ico"
|
||||
|
||||
|
|
@ -21,7 +21,7 @@
|
|||
// ----------------------------------------------------------------------------
|
||||
|
||||
#include <config.h>
|
||||
#include "flics_config.h"
|
||||
#include "flmsg_config.h"
|
||||
#include "icons.h"
|
||||
#include "util.h"
|
||||
|
||||
|
|
|
|||
440
src/ics213.cxx
|
|
@ -20,13 +20,13 @@
|
|||
#include <FL/Fl_File_Icon.H>
|
||||
|
||||
#include "config.h"
|
||||
#include "flics_config.h"
|
||||
#include "flmsg_config.h"
|
||||
|
||||
#include "ics213_template.h"
|
||||
#include "templates.h"
|
||||
#include "debug.h"
|
||||
#include "util.h"
|
||||
#include "gettext.h"
|
||||
#include "ics213_dialog.h"
|
||||
#include "flmsg_dialog.h"
|
||||
#include "flinput2.h"
|
||||
#include "date.h"
|
||||
#include "calendar.h"
|
||||
|
|
@ -34,9 +34,10 @@
|
|||
#include "fileselect.h"
|
||||
#include "wrap.h"
|
||||
#include "status.h"
|
||||
#include "parse_xml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
# include "flicsrc.h"
|
||||
# include "flmsgrc.h"
|
||||
# include "compat.h"
|
||||
# define dirent fl_dirent_no_thanks
|
||||
#endif
|
||||
|
|
@ -53,36 +54,7 @@
|
|||
|
||||
using namespace std;
|
||||
|
||||
void checkdirectories(void);
|
||||
int parse_args(int argc, char **argv, int& idx);
|
||||
void showoptions();
|
||||
|
||||
Fl_Double_Window *mainwindow = 0;
|
||||
Fl_Double_Window *optionswindow = 0;
|
||||
string title;
|
||||
string FlicsHomeDir;
|
||||
|
||||
// flarq, fldigi, flics, 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;
|
||||
// ICS213 fields
|
||||
|
||||
const char * _to = "<to:";
|
||||
const char * _fm = "<fm:";
|
||||
|
|
@ -123,58 +95,6 @@ FIELD fields[] = {
|
|||
|
||||
int numfields = sizeof(fields) / sizeof(FIELD);
|
||||
|
||||
void removespaces(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;
|
||||
}
|
||||
|
||||
void cb_SetDate1()
|
||||
{
|
||||
txt_D1->value(szDate());
|
||||
|
|
@ -221,7 +141,7 @@ void update_fields()
|
|||
}
|
||||
}
|
||||
|
||||
void clear_form()
|
||||
void clear_ics_form()
|
||||
{
|
||||
clear_fields();
|
||||
txt_To->value("");
|
||||
|
|
@ -247,9 +167,10 @@ void make_buffer()
|
|||
char sznum[80];
|
||||
update_fields();
|
||||
buffer.clear();
|
||||
buffer.append("<flics>");
|
||||
buffer.append("<flmsg>");
|
||||
buffer.append(PACKAGE_VERSION);
|
||||
buffer += '\n';
|
||||
buffer.append("<ics213>\n");
|
||||
for (int i = 0; i < numfields; i++) {
|
||||
snprintf(sznum, sizeof(sznum), "%0d", (int)strlen(fields[i].f_data.c_str()));
|
||||
buffer.append(fields[i].f_type);
|
||||
|
|
@ -298,17 +219,16 @@ void read_buffer(string data)
|
|||
}
|
||||
}
|
||||
|
||||
void cb_new()
|
||||
void cb_ics_new()
|
||||
{
|
||||
clear_form();
|
||||
clear_ics_form();
|
||||
defFileName = ICS_msg_dir;
|
||||
defFileName.append("new"DATAFILE_EXT);
|
||||
show_filename(defFileName);
|
||||
}
|
||||
|
||||
void cb_import()
|
||||
void cb_ics_import()
|
||||
{
|
||||
extern void qform_import(string);
|
||||
string deffilename = ICS_dir;
|
||||
deffilename.append("DEFAULT.XML");
|
||||
const char *p = FSEL::select(
|
||||
|
|
@ -316,14 +236,13 @@ extern void qform_import(string);
|
|||
"Qforms xml\t*.{xml,XML}",
|
||||
deffilename.c_str());
|
||||
if (p){
|
||||
clear_form();
|
||||
qform_import(p);
|
||||
clear_ics_form();
|
||||
qform_ics_import(p);
|
||||
}
|
||||
}
|
||||
|
||||
void cb_export()
|
||||
void cb_ics_export()
|
||||
{
|
||||
extern void qform_export(string);
|
||||
string deffilename = ICS_dir;
|
||||
deffilename.append(baseFileName);
|
||||
deffilename.append(".XML");
|
||||
|
|
@ -335,11 +254,11 @@ extern void qform_export(string);
|
|||
const char *pext = fl_filename_ext(p);
|
||||
deffilename = p;
|
||||
if (strlen(pext) == 0) deffilename.append(".XML");
|
||||
qform_export(deffilename);
|
||||
qform_ics_export(deffilename);
|
||||
}
|
||||
}
|
||||
|
||||
void cb_wrap_import()
|
||||
void cb_ics_wrap_import()
|
||||
{
|
||||
string wrapfilename = WRAP_recv_dir;
|
||||
string inpbuffer;
|
||||
|
|
@ -350,16 +269,20 @@ void cb_wrap_import()
|
|||
"Wrap file\t*.{wrap,WRAP}",
|
||||
wrapfilename.c_str());
|
||||
if (p){
|
||||
clear_form();
|
||||
clear_ics_form();
|
||||
isok = import_wrapfile(p, wrapfilename, inpbuffer);
|
||||
read_buffer(inpbuffer);
|
||||
defFileName = ICS_msg_dir;
|
||||
defFileName.append(wrapfilename);
|
||||
show_filename(defFileName);
|
||||
if (inpbuffer.find("<flics") != string::npos ||
|
||||
inpbuffer.find("<flmsg") != string::npos) {
|
||||
defFileName = ICS_msg_dir;
|
||||
defFileName.append(wrapfilename);
|
||||
show_filename(defFileName);
|
||||
} else
|
||||
fl_alert2(_("Not an flmsg data file"));
|
||||
}
|
||||
}
|
||||
|
||||
void cb_wrap_export()
|
||||
void cb_ics_wrap_export()
|
||||
{
|
||||
string wrapfilename = WRAP_send_dir;
|
||||
wrapfilename.append(baseFileName);
|
||||
|
|
@ -376,7 +299,7 @@ void cb_wrap_export()
|
|||
}
|
||||
}
|
||||
|
||||
void cb_wrap_autosend()
|
||||
void cb_ics_wrap_autosend()
|
||||
{
|
||||
string wrapfilename = WRAP_auto_dir;
|
||||
wrapfilename.append("wrap_auto_file");
|
||||
|
|
@ -384,7 +307,7 @@ void cb_wrap_autosend()
|
|||
export_wrapfile(baseFileName, wrapfilename, buffer, false);
|
||||
}
|
||||
|
||||
void cb_load_template()
|
||||
void cb_ics_load_template()
|
||||
{
|
||||
string deffilename = defTemplateName;
|
||||
const char *p = FSEL::select(
|
||||
|
|
@ -392,7 +315,7 @@ void cb_load_template()
|
|||
"Template file\t*.f2t",
|
||||
deffilename.c_str());
|
||||
if (p) {
|
||||
clear_form();
|
||||
clear_ics_form();
|
||||
read_ics(p);
|
||||
defTemplateName = p;
|
||||
show_filename(defTemplateName);
|
||||
|
|
@ -400,7 +323,7 @@ void cb_load_template()
|
|||
}
|
||||
}
|
||||
|
||||
void cb_save_template()
|
||||
void cb_ics_save_template()
|
||||
{
|
||||
if (!usingTemplate) {
|
||||
cb_save_as_template();
|
||||
|
|
@ -415,7 +338,7 @@ void cb_save_template()
|
|||
write_ics(p);
|
||||
}
|
||||
|
||||
void cb_save_as_template()
|
||||
void cb_ics_save_as_template()
|
||||
{
|
||||
string deffilename = defTemplateName;
|
||||
const char *p = FSEL::saveas(
|
||||
|
|
@ -426,7 +349,7 @@ void cb_save_as_template()
|
|||
const char *pext = fl_filename_ext(p);
|
||||
defTemplateName = p;
|
||||
if (strlen(pext) == 0) defTemplateName.append(".f2t");
|
||||
removespaces(defTemplateName);
|
||||
remove_spaces_from_filename(defTemplateName);
|
||||
write_ics(defTemplateName);
|
||||
show_filename(defTemplateName);
|
||||
usingTemplate = true;
|
||||
|
|
@ -447,6 +370,12 @@ void read_ics(string s)
|
|||
// determine its size for buffer creation
|
||||
fseek (icsfile, 0, SEEK_END);
|
||||
filesize = ftell (icsfile);
|
||||
// test file integrity
|
||||
if (filesize == 0) {
|
||||
fl_alert2(_("Empty file"));
|
||||
return;
|
||||
}
|
||||
|
||||
buff = new char[filesize + 1];
|
||||
// read the entire file into the buffer
|
||||
fseek (icsfile, 0, SEEK_SET);
|
||||
|
|
@ -454,28 +383,23 @@ void read_ics(string s)
|
|||
fclose (icsfile);
|
||||
buffend = buff + filesize;
|
||||
|
||||
// test file integrity
|
||||
if (filesize == 0) {
|
||||
fl_alert2(_("Empty file"));
|
||||
return;
|
||||
}
|
||||
if (strstr(buff, "<flmsg") == buff ||
|
||||
strstr(buff, "<flics") == buff)
|
||||
read_buffer(buff);
|
||||
else
|
||||
fl_alert2(_("Not an flmsg data file"));
|
||||
|
||||
if (strstr(buff, "<flics") != buff) {
|
||||
fl_alert2(_("Not an flics data file"));
|
||||
return;
|
||||
}
|
||||
read_buffer(buff);
|
||||
delete [] buff;
|
||||
|
||||
}
|
||||
|
||||
void cb_open()
|
||||
void cb_ics_open()
|
||||
{
|
||||
const char *p = FSEL::select(_("Open data file"), "F2S\t*"DATAFILE_EXT,
|
||||
defFileName.c_str());
|
||||
if (!p) return;
|
||||
if (strlen(p) == 0) return;
|
||||
clear_form();
|
||||
clear_ics_form();
|
||||
read_ics(p);
|
||||
usingTemplate = false;
|
||||
defFileName = p;
|
||||
|
|
@ -484,18 +408,14 @@ void cb_open()
|
|||
|
||||
void write_ics(string s)
|
||||
{
|
||||
//#ifdef __WIN32__
|
||||
// FILE *icsfile = fopen(s.c_str(), "wb");
|
||||
//#else
|
||||
FILE *icsfile = fopen(s.c_str(), "w");
|
||||
//#endif
|
||||
if (!icsfile) return;
|
||||
make_buffer();
|
||||
fwrite(buffer.c_str(), buffer.length(), 1, icsfile);
|
||||
fclose(icsfile);
|
||||
}
|
||||
|
||||
void cb_save_as()
|
||||
void cb_ics_save_as()
|
||||
{
|
||||
const char *p;
|
||||
string newfilename;
|
||||
|
|
@ -504,7 +424,7 @@ void cb_save_as()
|
|||
newfilename.append(fl_filename_name ( defTemplateName.c_str() ));
|
||||
size_t ext = newfilename.find(".f2t");
|
||||
if (ext != string::npos) newfilename.erase(ext, 4);
|
||||
newfilename.append(".f2s");
|
||||
newfilename.append(DATAFILE_EXT);
|
||||
} else newfilename = defFileName;
|
||||
|
||||
p = FSEL::saveas(_("Save data file"), "F2S\t*"DATAFILE_EXT,
|
||||
|
|
@ -514,16 +434,16 @@ void cb_save_as()
|
|||
|
||||
const char *pext = fl_filename_ext(p);
|
||||
defFileName = p;
|
||||
if (strlen(pext) == 0) defFileName.append(".f2s");
|
||||
removespaces(defFileName);
|
||||
if (strlen(pext) == 0) defFileName.append(DATAFILE_EXT);
|
||||
remove_spaces_from_filename(defFileName);
|
||||
write_ics(defFileName);
|
||||
show_filename(defFileName);
|
||||
usingTemplate = false;
|
||||
}
|
||||
|
||||
void cb_save()
|
||||
void cb_ics_save()
|
||||
{
|
||||
if (baseFileName == "new.f2s" || baseFileName == "default.f2s") {
|
||||
if (baseFileName == "new"DATAFILE_EXT || baseFileName == "default"DATAFILE_EXT) {
|
||||
cb_save_as();
|
||||
return;
|
||||
}
|
||||
|
|
@ -534,36 +454,14 @@ void cb_save()
|
|||
write_ics(defFileName);
|
||||
}
|
||||
|
||||
void cb_write()
|
||||
void cb_ics_write()
|
||||
{
|
||||
const char *p;
|
||||
string rtfname;
|
||||
rtfname = ICS_dir;
|
||||
if (usingTemplate) {
|
||||
rtfname.append(fl_filename_name ( defTemplateName.c_str() ));
|
||||
size_t ext = rtfname.find(".f2t");
|
||||
if (ext != string::npos) rtfname.erase(ext, 4);
|
||||
} else {
|
||||
rtfname.append(fl_filename_name ( defFileName.c_str() ));
|
||||
size_t ext = rtfname.find(".f2s");
|
||||
if (ext != string::npos) rtfname.erase(ext, 4);
|
||||
}
|
||||
rtfname.append(".rtf");
|
||||
|
||||
p = FSEL::saveas(_("Write Rich Text Format file"), "RTF\t*.rtf",
|
||||
rtfname.c_str());
|
||||
if (!p) return;
|
||||
if (strlen(p) == 0) return;
|
||||
|
||||
const char *pext = fl_filename_ext(p);
|
||||
rtfname = p;
|
||||
if (strlen(pext) == 0)
|
||||
rtfname.append(".rtf");
|
||||
removespaces(rtfname);
|
||||
string rtfname = ICS_dir;
|
||||
rtfname.append("ics213_doc.rtf");
|
||||
|
||||
update_fields();
|
||||
|
||||
string form = rtf_template;
|
||||
string form = ics_rtf_template;
|
||||
FILE *rtf_file = fopen(rtfname.c_str(), "w");
|
||||
|
||||
ICS_msg = fields[numfields-2].f_data;
|
||||
|
|
@ -591,197 +489,71 @@ void cb_write()
|
|||
ICS_reply);
|
||||
fprintf(rtf_file,"%s", form.c_str());
|
||||
fclose(rtf_file);
|
||||
|
||||
open_url(rtfname.c_str());
|
||||
}
|
||||
|
||||
void cb_exit()
|
||||
void cb_ics_html()
|
||||
{
|
||||
progStatus.saveLastState();
|
||||
FSEL::destroy();
|
||||
exit(0);
|
||||
}
|
||||
string icsname = ICS_dir;
|
||||
icsname.append("ics213_doc.html");
|
||||
|
||||
void exit_main(Fl_Widget *w)
|
||||
{
|
||||
if (Fl::event_key() == FL_Escape)
|
||||
return;
|
||||
cb_exit();
|
||||
}
|
||||
update_fields();
|
||||
string form = ics_html_template;
|
||||
|
||||
void cb_About()
|
||||
{
|
||||
fl_alert2(_("Version "PACKAGE_VERSION));
|
||||
}
|
||||
ICS_msg = fields[numfields-2].f_data;
|
||||
ICS_reply = fields[numfields-1].f_data;
|
||||
|
||||
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: flics\n");
|
||||
return 0;
|
||||
}
|
||||
if (strcasecmp("--version", argv[1]) == 0) {
|
||||
printf("Version: "VERSION"\n");
|
||||
return 0;
|
||||
}
|
||||
int nlines = 0;
|
||||
size_t pos = ICS_msg.find('\n');
|
||||
while (pos != string::npos) {
|
||||
ICS_msg.replace(pos, 1, "<br>");
|
||||
nlines++;
|
||||
pos = ICS_msg.find( '\n', pos );
|
||||
}
|
||||
for (int i = nlines; i < 20; i++) ICS_msg.append("<br>");
|
||||
to_html(ICS_msg);
|
||||
|
||||
mainwindow = ics_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");
|
||||
|
||||
Fl_File_Icon::load_system_icons();
|
||||
FSEL::create();
|
||||
|
||||
int arg_idx;
|
||||
if (Fl::args(argc, argv, arg_idx, parse_args) != argc)
|
||||
showoptions();
|
||||
|
||||
progStatus.loadLastState();
|
||||
progStatus.compression ? mnuCompress->set() : mnuCompress->clear();
|
||||
progStatus.UTC ? mnuUTC->set(): mnuUTC->clear();
|
||||
|
||||
mainwindow->resize( progStatus.mainX, progStatus.mainY, mainwindow->w(), mainwindow->h());
|
||||
#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();
|
||||
nlines = 0;
|
||||
pos = ICS_reply.find('\n');
|
||||
while (pos != string::npos) {
|
||||
ICS_reply.replace(pos, 1, "<br>");
|
||||
nlines++;
|
||||
pos = ICS_reply.find( '\n', pos );
|
||||
}
|
||||
}
|
||||
for (int i = nlines; i < 20; i++) ICS_reply.append("<br>");
|
||||
to_html(ICS_reply);
|
||||
|
||||
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]);
|
||||
for (int i = 0; i < numfields - 2; i++) {
|
||||
pos = form.find(fields[i].f_type);
|
||||
if (pos != string::npos)
|
||||
form.replace( pos,
|
||||
strlen(fields[i].f_type),
|
||||
fields[i].f_data );
|
||||
}
|
||||
optionswindow->show();
|
||||
pos = form.find(fields[numfields-2].f_type);
|
||||
if (pos)
|
||||
form.replace( pos,
|
||||
strlen(fields[numfields-2].f_type),
|
||||
ICS_msg);
|
||||
pos = form.find(fields[numfields-1].f_type);
|
||||
if (pos)
|
||||
form.replace( pos,
|
||||
strlen(fields[numfields-1].f_type),
|
||||
ICS_reply);
|
||||
|
||||
FILE *icsfile = fopen(icsname.c_str(), "w");
|
||||
fprintf(icsfile,"%s", form.c_str());
|
||||
fclose(icsfile);
|
||||
|
||||
open_url(icsname.c_str());
|
||||
}
|
||||
|
||||
void closeoptions()
|
||||
void cb_msg_type()
|
||||
{
|
||||
optionswindow->hide();
|
||||
}
|
||||
|
||||
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_form();
|
||||
defFileName = fname;
|
||||
read_ics(defFileName);
|
||||
usingTemplate = false;
|
||||
if (tabs_msg_type->value() == tab_ics213 ) {
|
||||
show_filename(defFileName);
|
||||
} else {
|
||||
show_filename(def_rgFileName);
|
||||
}
|
||||
else if (fname.find(".f2t")) {
|
||||
clear_form();
|
||||
defFileName = fname;
|
||||
read_ics(defFileName);
|
||||
usingTemplate = true;
|
||||
show_filename(defFileName);
|
||||
}
|
||||
|
||||
idx++;
|
||||
return 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,450 +0,0 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0110
|
||||
|
||||
#include "gettext.h"
|
||||
#include "ics213_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_mnuWrite(Fl_Menu_*, void*) {
|
||||
cb_write();
|
||||
}
|
||||
|
||||
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_mnuCompress(Fl_Menu_*, void*) {
|
||||
progStatus.compression = mnuCompress->value();
|
||||
}
|
||||
|
||||
static void cb_mnuUTC(Fl_Menu_*, void*) {
|
||||
progStatus.UTC = mnuUTC->value();
|
||||
}
|
||||
|
||||
static void cb_mnu_dtformat0(Fl_Menu_* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 0;
|
||||
}
|
||||
|
||||
static void cb_mnu_dtformat1(Fl_Menu_* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 1;
|
||||
}
|
||||
|
||||
static void cb_mnu_dtformat2(Fl_Menu_* o, void*) {
|
||||
if (o->value()) progStatus.dtformat = 2;
|
||||
}
|
||||
|
||||
static void cb_mnuOptions(Fl_Menu_*, void*) {
|
||||
showoptions();
|
||||
}
|
||||
|
||||
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},
|
||||
{_("&Write"), 0x40077, (Fl_Callback*)cb_mnuWrite, 0, 128, FL_NORMAL_LABEL, 0, 14, 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, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("Use compression"), 0, (Fl_Callback*)cb_mnuCompress, 0, 2, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("Date"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("use UTC"), 0, (Fl_Callback*)cb_mnuUTC, 0, 2, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("YYYY-DD-MM"), 0, (Fl_Callback*)cb_mnu_dtformat0, 0, 8, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("MM/DD/YY"), 0, (Fl_Callback*)cb_mnu_dtformat1, 0, 8, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("DD/MM/YY"), 0, (Fl_Callback*)cb_mnu_dtformat2, 0, 8, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{0,0,0,0,0,0,0,0,0},
|
||||
{0,0,0,0,0,0,0,0,0},
|
||||
{_(" "), 0, 0, 0, 129, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("Help"), 0, 0, 0, 64, FL_NORMAL_LABEL, 0, 14, 0},
|
||||
{_("Options"), 0, (Fl_Callback*)cb_mnuOptions, 0, 0, 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_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_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_Output *txt_filename=(Fl_Output *)0;
|
||||
|
||||
Fl_Double_Window* ics_dialog() {
|
||||
Fl_Double_Window* w;
|
||||
{ Fl_Double_Window* o = new Fl_Double_Window(558, 395, _("ICS213 Message Generator"));
|
||||
w = o;
|
||||
o->align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE);
|
||||
{ Fl_Menu_Bar* o = new Fl_Menu_Bar(1, 0, 555, 20);
|
||||
{ Fl_Menu_Item* o = &menu_[23];
|
||||
progStatus.compression ? o->set() :o->clear();
|
||||
}
|
||||
{ Fl_Menu_Item* o = &menu_[25];
|
||||
progStatus.UTC ? o->set() :o->clear();
|
||||
}
|
||||
{ Fl_Menu_Item* o = &menu_[26];
|
||||
progStatus.dtformat==0 ? o->set() :o->clear();
|
||||
}
|
||||
{ Fl_Menu_Item* o = &menu_[27];
|
||||
progStatus.dtformat==1 ? o->set() :o->clear();
|
||||
}
|
||||
{ Fl_Menu_Item* o = &menu_[28];
|
||||
progStatus.dtformat==2 ? o->set() :o->clear();
|
||||
}
|
||||
o->menu(menu_);
|
||||
} // Fl_Menu_Bar* o
|
||||
{ Fl_Tabs* o = new Fl_Tabs(1, 22, 555, 370);
|
||||
{ Fl_Group* o = new Fl_Group(2, 45, 551, 346, _("Originator"));
|
||||
{ txt_To = new Fl_Input2(41, 50, 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(313, 50, 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(41, 75, 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(313, 75, 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(41, 100, 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(314, 101, 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(438, 103, 20, 20, _("..."));
|
||||
btnDate1->tooltip(_("Set today"));
|
||||
btnDate1->callback((Fl_Callback*)cb_btnDate1);
|
||||
} // Fl_Button* btnDate1
|
||||
{ txt_T1 = new Fl_Input2(315, 126, 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(417, 128, 20, 20, _("..."));
|
||||
btnTime1->tooltip(_("Set time now"));
|
||||
btnTime1->callback((Fl_Callback*)cb_btnTime1);
|
||||
} // Fl_Button* btnTime1
|
||||
{ txt_Msg = new FTextEdit(6, 153, 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(36, 362, 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(310, 362, 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
|
||||
o->end();
|
||||
} // Fl_Group* o
|
||||
{ Fl_Group* o = new Fl_Group(2, 45, 551, 346, _("Responder"));
|
||||
o->hide();
|
||||
{ txt_S2 = new Fl_Input2(36, 360, 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(238, 51, 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(423, 51, 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(526, 53, 20, 20, _("..."));
|
||||
btnTime2->callback((Fl_Callback*)cb_btnTime2);
|
||||
} // Fl_Button* btnTime2
|
||||
{ txt_Reply = new FTextEdit(6, 81, 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(313, 360, 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(361, 53, 20, 20, _("..."));
|
||||
btnDate2->callback((Fl_Callback*)cb_btnDate2);
|
||||
} // Fl_Button* btnDate2
|
||||
o->end();
|
||||
Fl_Group::current()->resizable(o);
|
||||
} // Fl_Group* o
|
||||
o->end();
|
||||
Fl_Group::current()->resizable(o);
|
||||
} // Fl_Tabs* o
|
||||
{ txt_filename = new Fl_Output(260, 22, 205, 20, _("filename:"));
|
||||
txt_filename->box(FL_FLAT_BOX);
|
||||
txt_filename->color((Fl_Color)FL_BACKGROUND_COLOR);
|
||||
} // Fl_Output* txt_filename
|
||||
o->end();
|
||||
} // 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 -<option> [filename]"));
|
||||
o->box(FL_FLAT_BOX);
|
||||
o->color((Fl_Color)FL_LIGHT3);
|
||||
o->align(FL_ALIGN_LEFT|FL_ALIGN_INSIDE);
|
||||
} // Fl_Box* o
|
||||
o->end();
|
||||
} // Fl_Double_Window* o
|
||||
return w;
|
||||
}
|
||||
|
|
@ -1,319 +0,0 @@
|
|||
# data file for the Fltk User Interface Designer (fluid)
|
||||
version 1.0110
|
||||
i18n_type 1
|
||||
i18n_include "gettext.h"
|
||||
i18n_function _
|
||||
header_name {.h}
|
||||
code_name {.cxx}
|
||||
decl {\#include <FL/Fl_Pixmap.H>} {public global
|
||||
}
|
||||
|
||||
decl {\#include <FL/Fl_Text_Editor.H>} {public
|
||||
}
|
||||
|
||||
decl {\#include "FTextView.h"} {public
|
||||
}
|
||||
|
||||
decl {\#include "status.h"} {}
|
||||
|
||||
decl {\#include "flinput2.h"} {public global
|
||||
}
|
||||
|
||||
Function {ics_dialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {ICS213 Message Generator} open
|
||||
xywh {479 79 558 395} type Double align 80 resizable visible
|
||||
} {
|
||||
Fl_Menu_Bar {} {open selected
|
||||
xywh {1 0 555 20}
|
||||
} {
|
||||
Submenu {} {
|
||||
label {&File} open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuNew {
|
||||
label {&New}
|
||||
callback {cb_new();}
|
||||
tooltip {New ICS file} xywh {0 0 36 21} shortcut 0x4006e
|
||||
code0 {\#include "ics213.h"}
|
||||
}
|
||||
MenuItem mnuOpen {
|
||||
label {&Open}
|
||||
callback {cb_open();}
|
||||
tooltip {Open ICS file} xywh {0 0 36 21} shortcut 0x4006f divider
|
||||
}
|
||||
MenuItem mnuSave {
|
||||
label {&Save}
|
||||
callback {cb_save();}
|
||||
tooltip {Save ICS file} xywh {0 0 36 21} shortcut 0x40073
|
||||
}
|
||||
MenuItem mnuSaveAs {
|
||||
label {Save &As}
|
||||
callback {cb_save_as();}
|
||||
tooltip {Save ICS file as} xywh {0 0 36 21} shortcut 0x40061 divider
|
||||
}
|
||||
MenuItem mnuWrite {
|
||||
label {&Write}
|
||||
callback {cb_write();}
|
||||
tooltip {Write Rich Text Format file} xywh {0 0 36 21} shortcut 0x40077 divider
|
||||
}
|
||||
Submenu {} {
|
||||
label {Q-forms} open
|
||||
xywh {0 0 70 21} divider
|
||||
} {
|
||||
MenuItem mnu_qimport {
|
||||
label Import
|
||||
callback {cb_import();}
|
||||
tooltip {Import Qforms xml data file} xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_qexport {
|
||||
label Export
|
||||
callback {cb_export();}
|
||||
tooltip {Export Qforms xml data file} xywh {0 0 36 21} divider
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label Wrap open
|
||||
xywh {0 0 70 21} divider
|
||||
} {
|
||||
MenuItem mnuWrapImport {
|
||||
label Import
|
||||
callback {cb_wrap_import();}
|
||||
tooltip {Import data from wrapped file} xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnuWrapExport {
|
||||
label Export
|
||||
callback {cb_wrap_export();}
|
||||
tooltip {Export Wrapped data file} xywh {0 0 36 21} divider
|
||||
}
|
||||
MenuItem mnuAutoSend {
|
||||
label AutoSend
|
||||
callback {cb_wrap_autosend();}
|
||||
tooltip {Send to fldigi for transmit} xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
MenuItem mnuExit {
|
||||
label {E&xit}
|
||||
callback {cb_exit();}
|
||||
xywh {0 0 36 21} shortcut 0x40078
|
||||
}
|
||||
}
|
||||
Submenu {} {
|
||||
label {&Template} open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnu_load_template {
|
||||
label Load
|
||||
callback {cb_load_template();}
|
||||
xywh {0 0 36 21} divider
|
||||
}
|
||||
MenuItem mnu_save_template {
|
||||
label Save
|
||||
callback {cb_save_template();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnu_save_as_template {
|
||||
label {Save As}
|
||||
callback {cb_save_as_template();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
Submenu mnuConfig {
|
||||
label Config open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuCompress {
|
||||
label {Use compression}
|
||||
callback {progStatus.compression = mnuCompress->value();}
|
||||
tooltip {Compress all files for transmit} xywh {0 0 36 21} type Toggle
|
||||
code0 {progStatus.compression ? o->set() :o->clear();}
|
||||
}
|
||||
Submenu {} {
|
||||
label Date open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuUTC {
|
||||
label {use UTC}
|
||||
callback {progStatus.UTC = mnuUTC->value();}
|
||||
xywh {0 0 36 21} type Toggle
|
||||
code0 {progStatus.UTC ? o->set() :o->clear();}
|
||||
}
|
||||
MenuItem mnu_dtformat0 {
|
||||
label {YYYY-DD-MM}
|
||||
callback {if (o->value()) progStatus.dtformat = 0;}
|
||||
xywh {0 0 36 21} type Radio
|
||||
code0 {progStatus.dtformat==0 ? o->set() :o->clear();}
|
||||
}
|
||||
MenuItem mnu_dtformat1 {
|
||||
label {MM/DD/YY}
|
||||
callback {if (o->value()) progStatus.dtformat = 1;}
|
||||
xywh {10 10 36 21} type Radio
|
||||
code0 {progStatus.dtformat==1 ? o->set() :o->clear();}
|
||||
}
|
||||
MenuItem mnu_dtformat2 {
|
||||
label {DD/MM/YY}
|
||||
callback {if (o->value()) progStatus.dtformat = 2;}
|
||||
xywh {20 20 36 21} type Radio
|
||||
code0 {progStatus.dtformat==2 ? o->set() :o->clear();}
|
||||
}
|
||||
}
|
||||
}
|
||||
MenuItem {} {
|
||||
label { }
|
||||
xywh {0 0 36 21} deactivate divider
|
||||
}
|
||||
Submenu {} {
|
||||
label Help open
|
||||
xywh {0 0 70 21}
|
||||
} {
|
||||
MenuItem mnuOptions {
|
||||
label Options
|
||||
callback {showoptions();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
MenuItem mnuAbout {
|
||||
label About
|
||||
callback {cb_About();}
|
||||
xywh {0 0 36 21}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Tabs {} {open
|
||||
xywh {1 22 555 370} resizable
|
||||
} {
|
||||
Fl_Group {} {
|
||||
label Originator open
|
||||
xywh {2 45 551 346}
|
||||
} {
|
||||
Fl_Input txt_To {
|
||||
label To
|
||||
tooltip Addressee xywh {41 50 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P1 {
|
||||
label {Pos.}
|
||||
tooltip {Position of addressee} xywh {313 50 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_Fm {
|
||||
label Fm
|
||||
tooltip Originator xywh {41 75 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P2 {
|
||||
label {Pos.}
|
||||
tooltip {Position of originator} xywh {313 75 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_Subj {
|
||||
label {Sub.}
|
||||
tooltip Subject xywh {41 100 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_D1 {
|
||||
label Date
|
||||
tooltip {Date of origination} xywh {314 101 122 24}
|
||||
code0 {\#include "calendar.h"}
|
||||
code1 {txt_D1->format(2);}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Button btnDate1 {
|
||||
label {...}
|
||||
callback {cb_SetDate1();}
|
||||
tooltip {Set today} xywh {438 103 20 20}
|
||||
}
|
||||
Fl_Input txt_T1 {
|
||||
label Time
|
||||
tooltip {Time of origination} xywh {315 126 100 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnTime1 {
|
||||
label {...}
|
||||
callback {cb_SetTime1();}
|
||||
tooltip {Set time now} xywh {417 128 20 20}
|
||||
}
|
||||
Fl_Text_Editor txt_Msg {
|
||||
label {Message:}
|
||||
xywh {6 153 544 206} align 5 resizable
|
||||
class FTextEdit
|
||||
}
|
||||
Fl_Input txt_S1 {
|
||||
label {Sig.}
|
||||
tooltip {Signature of preparer} xywh {36 362 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_P3 {
|
||||
label {Pos.}
|
||||
tooltip {Position of preparer} xywh {310 362 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
}
|
||||
Fl_Group {} {
|
||||
label Responder open
|
||||
xywh {2 45 551 346} hide resizable
|
||||
} {
|
||||
Fl_Input txt_S2 {
|
||||
label {Sig.}
|
||||
tooltip {Signature of responder} xywh {36 360 240 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Input txt_D2 {
|
||||
label Date
|
||||
tooltip {Reply Date} xywh {238 51 122 24}
|
||||
class Fl_DateInput
|
||||
}
|
||||
Fl_Input txt_T2 {
|
||||
label Time
|
||||
tooltip {Reply Time} xywh {423 51 100 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnTime2 {
|
||||
label {...}
|
||||
callback {cb_SetTime2();}
|
||||
xywh {526 53 20 20}
|
||||
}
|
||||
Fl_Text_Editor txt_Reply {
|
||||
label Reply
|
||||
xywh {6 81 545 275} align 5
|
||||
class FTextEdit
|
||||
}
|
||||
Fl_Input txt_P4 {
|
||||
label {Pos.}
|
||||
tooltip {Position of responder} xywh {313 360 235 24}
|
||||
class Fl_Input2
|
||||
}
|
||||
Fl_Button btnDate2 {
|
||||
label {...}
|
||||
callback {cb_SetDate2();}
|
||||
xywh {361 53 20 20}
|
||||
}
|
||||
}
|
||||
}
|
||||
Fl_Output txt_filename {
|
||||
label {filename:}
|
||||
xywh {260 22 205 20} box FLAT_BOX color 49
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Function {optionsdialog()} {open
|
||||
} {
|
||||
Fl_Window {} {
|
||||
label {Command Line Options} open
|
||||
xywh {484 520 411 263} type Double visible
|
||||
} {
|
||||
Fl_Browser brwsOptions {
|
||||
xywh {3 31 405 202}
|
||||
}
|
||||
Fl_Return_Button btnCloseOptions {
|
||||
label OK
|
||||
callback {closeoptions();}
|
||||
xywh {329 239 72 20}
|
||||
}
|
||||
Fl_Box {} {
|
||||
label {usage: flics -<option> [filename]}
|
||||
xywh {4 7 401 21} box FLAT_BOX color 54 align 20
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,75 +0,0 @@
|
|||
#include "ics213_template.h"
|
||||
|
||||
// rtf ICS-213 template created from Open Office rich text format
|
||||
// document.
|
||||
// all occurances of '\ first substituted with '\\'
|
||||
// all occurances of new line character substituted with "\n\" plus the
|
||||
// new line character.
|
||||
// resulting text is then wrapped in double quotes and the
|
||||
// const char name[] =
|
||||
// or
|
||||
// const char name * = is then added to the beginning of the text.
|
||||
|
||||
const char rtf_template[] = \
|
||||
"{\\rtf1\\ansi\\deff1\\adeflang1025\n\
|
||||
{\\fonttbl{\\f0\\froman\\fprq2\\fcharset0 Liberation Serif{\\*\\falt Times New Roman};}{\\f1\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f2\\fswiss\\fprq2\\fcharset0 Liberation Sans{\\*\\falt Arial};}{\\f3\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f4\\fswiss\\fprq2\\fcharset0 Arial;}{\\f5\\fnil\\fprq2\\fcharset0 DejaVu Sans;}{\\f6\\fnil\\fprq2\\fcharset0 Tahoma Slashed;}{\\f7\\fnil\\fprq0\\fcharset0 Tahoma Slashed;}}\n\
|
||||
{\\colortbl;\\red0\\green0\\blue0;\\red242\\green242\\blue242;\\red229\\green229\\blue229;\\red128\\green128\\blue128;}\n\
|
||||
{\\stylesheet{\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\snext1 Normal;}\n\
|
||||
{\\s2\\sb240\\sa120\\keepn\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af6\\afs28\\lang1025\\ltrch\\dbch\\af5\\langfe1033\\hich\\f2\\fs28\\lang1033\\loch\\f2\\fs28\\lang1033\\sbasedon1\\snext3 Heading;}\n\
|
||||
{\\s3\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext3 Body Text;}\n\
|
||||
{\\s4\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon3\\snext4 List;}\n\
|
||||
{\\s5\\sb120\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ai\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\i\\loch\\f1\\fs24\\lang1033\\i\\sbasedon1\\snext5 caption;}\n\
|
||||
{\\s6\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext6 Index;}\n\
|
||||
{\\s7\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext7 Table Contents;}\n\
|
||||
{\\s8\\cf0\\qc{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ab\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\b\\loch\\f1\\fs24\\lang1033\\b\\sbasedon7\\snext8 Table Heading;}\n\
|
||||
{\\*\\cs10\\cf0\\rtlch\\af1\\afs24\\lang1033\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033 Default Paragraph Font;}\n\
|
||||
}\n\
|
||||
{\\info{\\title GENERAL MESSAGE}{\\author Dave, W1HKJ}{\\creatim\\yr2009\\mo9\\dy25\\hr15\\min10}{\\author Dave, W1HKJ}{\\revtim\\yr2009\\mo9\\dy25\\hr15\\min10}{\\printim\\yr0\\mo0\\dy0\\hr0\\min0}{\\comment StarWriter}{\\vern3000}}\\deftab720\n\
|
||||
{\\*\\pgdsctbl\n\
|
||||
{\\pgdsc0\\pgdscuse195\\pgwsxn12240\\pghsxn15840\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\pgdscnxt0 Standard;}}\n\
|
||||
{\\*\\pgdscno0}\\paperh15840\\paperw12240\\margl1800\\margr1800\\margt1440\\margb1440\\sectd\\sbknone\\pgwsxn12240\\pghsxn15840\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n\
|
||||
\\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat2\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0\\qc{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 GENERAL MESSAGE}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TO:\\tab <to:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:\\tab <p1:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 FROM: \\tab <fm:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:\\tab <p2:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx6380\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SUBJ: \\tab <sb:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 DATE:\\tab <d1:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TIME:\\tab <t1:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat3\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 MESSAGE:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trrh4752\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <mg:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4431\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SIGNATURE:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <s1:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <p3:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat3\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 REPLY:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trrh4680\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <rp:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx1733\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx3429\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 DATE:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <d2:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TIME:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <t2:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SIGNATURE/POSITION:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <s2: / <p4:}\n\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\cf0\\qj{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 \n\
|
||||
\\par }\n\
|
||||
";
|
||||
|
||||
// rtf formated new line
|
||||
// rtf substitute for the '\n' character in C++ string
|
||||
// used to modify the body of the message or reply section.
|
||||
|
||||
const char nuline[] = \
|
||||
"}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af1\\afs24\\lang1033\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 ";
|
||||
|
||||
|
||||
26
src/include/arl_msgs.h
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
// =====================================================================
|
||||
//
|
||||
// arl_msgs.h
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// =====================================================================
|
||||
|
||||
#ifndef ARL_MSGS_H
|
||||
#define ARL_MSGS_H
|
||||
|
||||
struct ARL_TEXT { const char *sznbr; int nfills; const char *text; };
|
||||
|
||||
extern ARL_TEXT arl_list[];
|
||||
|
||||
#endif
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
#ifndef FLICS_CONFIG_H_
|
||||
#define FLICS_CONFIG_H_
|
||||
|
||||
#define DATAFILE_EXT ".f2s"
|
||||
|
||||
#endif
|
||||
|
||||
8
src/include/flmsg_config.h
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#ifndef FLMSG_CONFIG_H_
|
||||
#define FLMSG_CONFIG_H_
|
||||
|
||||
#define DATAFILE_EXT ".f2s"
|
||||
#define RGFILE_EXT ".m2s"
|
||||
|
||||
#endif
|
||||
|
||||
121
src/include/flmsg_dialog.h
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0110
|
||||
|
||||
#ifndef flmsg_dialog_h
|
||||
#define flmsg_dialog_h
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Text_Editor.H>
|
||||
#include "FTextView.h"
|
||||
#include "flinput2.h"
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include "ics213.h"
|
||||
#include <FL/Fl_Output.H>
|
||||
extern Fl_Output *txt_filename;
|
||||
#include <FL/Fl_Tabs.H>
|
||||
extern Fl_Tabs *tabs_msg_type;
|
||||
#include <FL/Fl_Group.H>
|
||||
extern Fl_Group *tab_ics213;
|
||||
extern Fl_Tabs *tabs_ics213;
|
||||
extern Fl_Group *tab_originator;
|
||||
extern Fl_Input2 *txt_To;
|
||||
extern Fl_Input2 *txt_P1;
|
||||
extern Fl_Input2 *txt_Fm;
|
||||
extern Fl_Input2 *txt_P2;
|
||||
extern Fl_Input2 *txt_Subj;
|
||||
#include "calendar.h"
|
||||
extern Fl_DateInput *txt_D1;
|
||||
#include <FL/Fl_Button.H>
|
||||
extern Fl_Button *btnDate1;
|
||||
extern Fl_Input2 *txt_T1;
|
||||
extern Fl_Button *btnTime1;
|
||||
extern FTextEdit *txt_Msg;
|
||||
extern Fl_Input2 *txt_S1;
|
||||
extern Fl_Input2 *txt_P3;
|
||||
extern Fl_Group *tab_responder;
|
||||
extern Fl_Input2 *txt_S2;
|
||||
extern Fl_DateInput *txt_D2;
|
||||
extern Fl_Input2 *txt_T2;
|
||||
extern Fl_Button *btnTime2;
|
||||
extern FTextEdit *txt_Reply;
|
||||
extern Fl_Input2 *txt_P4;
|
||||
extern Fl_Button *btnDate2;
|
||||
extern Fl_Group *tab_radiogram;
|
||||
extern Fl_Input2 *txt_rg_station;
|
||||
extern Fl_Input2 *txt_rg_place;
|
||||
extern Fl_Input2 *txt_rg_nbr;
|
||||
#include <FL/Fl_Choice.H>
|
||||
extern Fl_Choice *sel_rg_prec;
|
||||
extern Fl_Choice *sel_rg_hx;
|
||||
extern Fl_Input2 *txt_rg_hx_n;
|
||||
extern Fl_DateInput *txt_rg_d1;
|
||||
extern Fl_Button *btn_rgDate1;
|
||||
extern Fl_Input2 *txt_rg_t1;
|
||||
extern Fl_Button *btn_rgTime1;
|
||||
extern Fl_Input2 *txt_rg_to;
|
||||
extern Fl_Input2 *txt_rg_rx;
|
||||
extern Fl_Input2 *txt_rg_phone;
|
||||
extern FTextEdit *txt_rg_msg;
|
||||
extern Fl_Input2 *txt_rg_signed;
|
||||
extern Fl_DateInput *txt_rg_d2;
|
||||
extern Fl_Button *btn_rgDate2;
|
||||
extern Fl_Input2 *txt_rg_t2;
|
||||
extern Fl_Button *btn_rgTime2;
|
||||
extern Fl_DateInput *txt_rg_d3;
|
||||
extern Fl_Button *btn_rgDate3;
|
||||
extern Fl_Input2 *txt_rg_t3;
|
||||
extern Fl_Button *btn_rgTime3;
|
||||
extern Fl_Input2 *txt_rg_sent_to;
|
||||
extern Fl_Button *btn_rg_check;
|
||||
extern Fl_Output *txt_rg_check;
|
||||
extern Fl_Button *btn_arl;
|
||||
Fl_Double_Window* ics_dialog();
|
||||
extern Fl_Menu_Item menu_[];
|
||||
#define mnuNew (menu_+1)
|
||||
#define mnuOpen (menu_+2)
|
||||
#define mnuSave (menu_+3)
|
||||
#define mnuSaveAs (menu_+4)
|
||||
#define mnu_html (menu_+6)
|
||||
#define mnu_rtf (menu_+7)
|
||||
#define mnu_text (menu_+8)
|
||||
#define mnu_qimport (menu_+11)
|
||||
#define mnu_qexport (menu_+12)
|
||||
#define mnuWrapImport (menu_+15)
|
||||
#define mnuWrapExport (menu_+16)
|
||||
#define mnuAutoSend (menu_+17)
|
||||
#define mnuExit (menu_+19)
|
||||
#define mnu_load_template (menu_+22)
|
||||
#define mnu_save_template (menu_+23)
|
||||
#define mnu_save_as_template (menu_+24)
|
||||
#define mnuConfig (menu_+26)
|
||||
#define mnuOptions (menu_+29)
|
||||
#define mnuOnLineHelp (menu_+30)
|
||||
#define mnuAbout (menu_+31)
|
||||
#include <FL/Fl_Browser.H>
|
||||
extern Fl_Browser *brwsOptions;
|
||||
#include <FL/Fl_Return_Button.H>
|
||||
extern Fl_Return_Button *btnCloseOptions;
|
||||
#include <FL/Fl_Box.H>
|
||||
Fl_Double_Window* optionsdialog();
|
||||
extern Fl_Browser *select_arl;
|
||||
#include <FL/Fl_Input.H>
|
||||
extern Fl_Input *txt_arl_fill1;
|
||||
extern Fl_Input *txt_arl_fill2;
|
||||
extern Fl_Input *txt_arl_fill3;
|
||||
extern Fl_Input *txt_arl_fill4;
|
||||
extern Fl_Button *btn_arl_cancel;
|
||||
extern Fl_Button *btn_arl_add;
|
||||
extern FTextEdit *arl_text;
|
||||
Fl_Double_Window* arl_dialog();
|
||||
#include <FL/Fl_Check_Button.H>
|
||||
extern Fl_Check_Button *btn_compress;
|
||||
extern Fl_Check_Button *btn_UTC;
|
||||
#include <FL/Fl_Round_Button.H>
|
||||
extern Fl_Round_Button *btn_dtformat0;
|
||||
extern Fl_Round_Button *btn_dtformat1;
|
||||
extern Fl_Round_Button *btn_dtformat2;
|
||||
#include <FL/Fl_Spinner.H>
|
||||
extern Fl_Spinner *cnt_wpl;
|
||||
extern Fl_Button *btn_close_config;
|
||||
Fl_Double_Window* config_dialog();
|
||||
#endif
|
||||
|
|
@ -1,3 +1,20 @@
|
|||
// =====================================================================
|
||||
//
|
||||
// ics213.h
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// =====================================================================
|
||||
#ifndef ICS213_H
|
||||
#define ICS213_H
|
||||
|
||||
|
|
@ -7,13 +24,27 @@
|
|||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
|
||||
#include "arl_msgs.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
struct FIELD { const char *f_type; string f_data; Fl_Widget **w; char w_type; };
|
||||
extern FIELD fields[];
|
||||
extern FIELD rg_fields[];
|
||||
|
||||
|
||||
extern void checkdirectories(void);
|
||||
extern int parse_args(int argc, char **argv, int& idx);
|
||||
extern void showoptions();
|
||||
|
||||
extern string IcsHomeDir;
|
||||
extern Fl_Double_Window *mainwindow;
|
||||
extern Fl_Double_Window *optionswindow;
|
||||
extern Fl_Double_Window *arlwindow;
|
||||
extern Fl_Double_Window *configwindow;
|
||||
extern string flmsgHomeDir;
|
||||
extern string IcsHomeDir;
|
||||
|
||||
extern int arl_nbr;
|
||||
|
||||
extern string NBEMS_dir;
|
||||
extern string ARQ_dir;
|
||||
|
|
@ -28,18 +59,23 @@ extern string ICS_dir;
|
|||
extern string ICS_msg_dir;
|
||||
extern string ICS_tmp_dir;
|
||||
|
||||
extern string baseFileName;
|
||||
extern string defTemplateName;
|
||||
extern string defFileName;
|
||||
extern string defRTFname;
|
||||
extern string title;
|
||||
extern string buffer;
|
||||
|
||||
extern void clear_form();
|
||||
extern void read_ics(string);
|
||||
extern void write_ics(string);
|
||||
extern void cb_msg_type();
|
||||
|
||||
//menu callbacks
|
||||
extern void cb_new();
|
||||
extern void cb_open();
|
||||
extern void cb_save();
|
||||
extern void cb_save_as();
|
||||
extern void cb_write();
|
||||
extern void cb_rtf();
|
||||
extern void cb_text();
|
||||
extern void cb_import();
|
||||
extern void cb_export();
|
||||
extern void cb_wrap_import();
|
||||
|
|
@ -49,18 +85,96 @@ extern void cb_exit();
|
|||
extern void cb_load_template();
|
||||
extern void cb_save_template();
|
||||
extern void cb_save_as_template();
|
||||
extern void cb_About();
|
||||
extern void cb_SetTime1();
|
||||
extern void cb_SetTime2();
|
||||
extern void cb_useZulu(bool);
|
||||
extern void cb_SetDate1();
|
||||
extern void cb_SetDate2();
|
||||
extern void cb_config();
|
||||
extern void cb_close_config();
|
||||
extern void showoptions();
|
||||
extern void show_help();
|
||||
extern void cb_About();
|
||||
extern void cb_html();
|
||||
|
||||
extern void open_url(const char* url);
|
||||
|
||||
extern void cb_arl();
|
||||
extern void cb_arl_cancel();
|
||||
extern void cb_arl_add();
|
||||
|
||||
extern void closeoptions();
|
||||
|
||||
extern void remove_spaces_from_filename(string &fname);
|
||||
extern char *szTime();
|
||||
extern char *szDate();
|
||||
extern char *szAbbrevDate();
|
||||
|
||||
extern void set_main_label();
|
||||
extern void show_filename(string);
|
||||
extern void clear_fields();
|
||||
extern void update_fields();
|
||||
|
||||
extern void to_html(string &s);
|
||||
extern void fm_html(string &html);
|
||||
|
||||
// ics213
|
||||
|
||||
extern string rg_base_filename;
|
||||
extern string def_rgFileName;
|
||||
|
||||
extern bool usingTemplate;
|
||||
|
||||
extern void clear_ics_form();
|
||||
extern void read_ics(string);
|
||||
extern void write_ics(string);
|
||||
extern void cb_ics_new();
|
||||
extern void cb_ics_open();
|
||||
extern void cb_ics_save();
|
||||
extern void cb_ics_save_as();
|
||||
extern void cb_ics_write();
|
||||
extern void cb_ics_html();
|
||||
extern void cb_ics_import();
|
||||
extern void cb_ics_export();
|
||||
extern void cb_ics_wrap_import();
|
||||
extern void cb_ics_wrap_export();
|
||||
extern void cb_ics_wrap_autosend();
|
||||
extern void cb_ics_load_template();
|
||||
extern void cb_ics_save_template();
|
||||
extern void cb_ics_save_as_template();
|
||||
extern void cb_SetDate1();
|
||||
extern void cb_SetDate2();
|
||||
extern void cb_SetTime1();
|
||||
extern void cb_SetTime2();
|
||||
|
||||
// radiogram
|
||||
|
||||
extern const char hxitems[];
|
||||
extern const char precitems[];
|
||||
extern const char *s_prec[];
|
||||
extern const char *s_hx[];
|
||||
|
||||
extern void cb_rgSetDate1();
|
||||
extern void cb_rgSetDate2();
|
||||
extern void cb_rgSetDate3();
|
||||
extern void cb_rgSetTime1();
|
||||
extern void cb_rgSetTime2();
|
||||
extern void cb_rgSetTime3();
|
||||
extern void clear_rg_fields();
|
||||
extern void update_rg_fields();
|
||||
extern void clear_rg_form();
|
||||
extern void make_rg_buffer();
|
||||
extern void read_rg_buffer(string data);
|
||||
extern void cb_rg_new();
|
||||
extern void cb_rg_import();
|
||||
extern void cb_rg_export();
|
||||
extern void cb_rg_wrap_import();
|
||||
extern void cb_rg_wrap_export();
|
||||
extern void cb_rg_wrap_autosend();
|
||||
extern void read_rg(string s);
|
||||
extern void cb_rg_open();
|
||||
extern void write_rg(string s);
|
||||
extern void cb_rg_save_as();
|
||||
extern void cb_rg_save();
|
||||
extern void cb_rg_html();
|
||||
extern void cb_rg_rtf();
|
||||
extern void cb_rg_textout();
|
||||
extern void set_rg_choices();
|
||||
extern void cb_rg_check();
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,68 +0,0 @@
|
|||
// generated by Fast Light User Interface Designer (fluid) version 1.0110
|
||||
|
||||
#ifndef ics213_dialog_h
|
||||
#define ics213_dialog_h
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Text_Editor.H>
|
||||
#include "FTextView.h"
|
||||
#include "flinput2.h"
|
||||
#include <FL/Fl_Double_Window.H>
|
||||
#include <FL/Fl_Menu_Bar.H>
|
||||
#include "ics213.h"
|
||||
#include <FL/Fl_Tabs.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
extern Fl_Input2 *txt_To;
|
||||
extern Fl_Input2 *txt_P1;
|
||||
extern Fl_Input2 *txt_Fm;
|
||||
extern Fl_Input2 *txt_P2;
|
||||
extern Fl_Input2 *txt_Subj;
|
||||
#include "calendar.h"
|
||||
extern Fl_DateInput *txt_D1;
|
||||
#include <FL/Fl_Button.H>
|
||||
extern Fl_Button *btnDate1;
|
||||
extern Fl_Input2 *txt_T1;
|
||||
extern Fl_Button *btnTime1;
|
||||
extern FTextEdit *txt_Msg;
|
||||
extern Fl_Input2 *txt_S1;
|
||||
extern Fl_Input2 *txt_P3;
|
||||
extern Fl_Input2 *txt_S2;
|
||||
extern Fl_DateInput *txt_D2;
|
||||
extern Fl_Input2 *txt_T2;
|
||||
extern Fl_Button *btnTime2;
|
||||
extern FTextEdit *txt_Reply;
|
||||
extern Fl_Input2 *txt_P4;
|
||||
extern Fl_Button *btnDate2;
|
||||
#include <FL/Fl_Output.H>
|
||||
extern Fl_Output *txt_filename;
|
||||
Fl_Double_Window* ics_dialog();
|
||||
extern Fl_Menu_Item menu_[];
|
||||
#define mnuNew (menu_+1)
|
||||
#define mnuOpen (menu_+2)
|
||||
#define mnuSave (menu_+3)
|
||||
#define mnuSaveAs (menu_+4)
|
||||
#define mnuWrite (menu_+5)
|
||||
#define mnu_qimport (menu_+7)
|
||||
#define mnu_qexport (menu_+8)
|
||||
#define mnuWrapImport (menu_+11)
|
||||
#define mnuWrapExport (menu_+12)
|
||||
#define mnuAutoSend (menu_+13)
|
||||
#define mnuExit (menu_+15)
|
||||
#define mnu_load_template (menu_+18)
|
||||
#define mnu_save_template (menu_+19)
|
||||
#define mnu_save_as_template (menu_+20)
|
||||
#define mnuConfig (menu_+22)
|
||||
#define mnuCompress (menu_+23)
|
||||
#define mnuUTC (menu_+25)
|
||||
#define mnu_dtformat0 (menu_+26)
|
||||
#define mnu_dtformat1 (menu_+27)
|
||||
#define mnu_dtformat2 (menu_+28)
|
||||
#define mnuOptions (menu_+33)
|
||||
#define mnuAbout (menu_+34)
|
||||
#include <FL/Fl_Browser.H>
|
||||
extern Fl_Browser *brwsOptions;
|
||||
#include <FL/Fl_Return_Button.H>
|
||||
extern Fl_Return_Button *btnCloseOptions;
|
||||
#include <FL/Fl_Box.H>
|
||||
Fl_Double_Window* optionsdialog();
|
||||
#endif
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
#ifndef RTF_TEMPLATE
|
||||
#define RTF_TEMPLATE
|
||||
|
||||
extern const char rtf_template[];
|
||||
extern const char nuline[];
|
||||
|
||||
#endif
|
||||
|
||||
|
|
@ -8,7 +8,13 @@ using namespace std;
|
|||
|
||||
struct TAGS { const char *tag; void (*fp)(size_t &, string);};
|
||||
|
||||
void parse_xml( string );
|
||||
extern void parse_ics(string);
|
||||
extern bool qform_ics_import(string);
|
||||
extern void qform_ics_export(string);
|
||||
|
||||
extern void parse_rg(string);
|
||||
extern bool qform_rg_import(string);
|
||||
extern void qform_rg_export(string);
|
||||
|
||||
#endif
|
||||
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ struct status {
|
|||
int mainX;
|
||||
int mainY;
|
||||
|
||||
int wpl; // words per line in radiogram
|
||||
bool compression;
|
||||
bool UTC;
|
||||
int dtformat;
|
||||
|
|
|
|||
12
src/include/templates.h
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef _TEMPLATES
|
||||
#define _TEMPLATES
|
||||
|
||||
extern const char ics_rtf_template[];
|
||||
extern const char nuline[];
|
||||
extern const char ics_html_template[];
|
||||
|
||||
extern const char rg_html_template[];
|
||||
extern const char rg_rtf_template[];
|
||||
|
||||
#endif
|
||||
|
||||
665
src/radiogram.cxx
Normal file
|
|
@ -0,0 +1,665 @@
|
|||
// =====================================================================
|
||||
//
|
||||
// radiogram.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 <stdlib.h>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cstring>
|
||||
#include <ctime>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <FL/Fl.H>
|
||||
#include <FL/Enumerations.H>
|
||||
#include <FL/Fl_Window.H>
|
||||
#include <FL/Fl_Button.H>
|
||||
#include <FL/Fl_Group.H>
|
||||
#include <FL/Fl_Sys_Menu_Bar.H>
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Help_Dialog.H>
|
||||
#include <FL/Fl_Menu_Item.H>
|
||||
#include <FL/Fl_File_Icon.H>
|
||||
|
||||
#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"
|
||||
#include "parse_xml.h"
|
||||
|
||||
#ifdef WIN32
|
||||
# include "flmsgrc.h"
|
||||
# include "compat.h"
|
||||
# define dirent fl_dirent_no_thanks
|
||||
#endif
|
||||
|
||||
#include <FL/filename.H>
|
||||
#ifdef __MINGW32__
|
||||
# undef dirent
|
||||
#endif
|
||||
#include <dirent.h>
|
||||
|
||||
#include <FL/x.H>
|
||||
#include <FL/Fl_Pixmap.H>
|
||||
#include <FL/Fl_Image.H>
|
||||
|
||||
using namespace std;
|
||||
|
||||
string rg_base_filename = "";
|
||||
string def_rgFileName = "";
|
||||
|
||||
// Radiogram rg_fields
|
||||
|
||||
const char * _rg_nbr = "<nbr:";
|
||||
const char * _rg_prec = "<prec:";
|
||||
const char * _rg_hx = "<hx:";
|
||||
const char * _rg_hx_n = "<hn:";
|
||||
const char * _rg_d1 = "<d1:";
|
||||
const char * _rg_t1 = "<t1:";
|
||||
const char * _rg_d2 = "<d2:";
|
||||
const char * _rg_t2 = "<t2:";
|
||||
const char * _rg_d3 = "<d3:";
|
||||
const char * _rg_t3 = "<t3:";
|
||||
const char * _rg_to = "<to:";
|
||||
const char * _rg_rx = "<rx:";
|
||||
const char * _rg_phone = "<tel:";
|
||||
const char * _rg_msg = "<msg:";
|
||||
const char * _rg_check = "<ck:";
|
||||
const char * _rg_station = "<sta:";
|
||||
const char * _rg_place = "<org:";
|
||||
const char * _rg_signed = "<sgn:";
|
||||
const char * _rg_sent_to = "<sto:";
|
||||
|
||||
const char *s_prec[] = {"ROUTINE", "WELFARE", "PRIORITY", "EMERGENCY"};
|
||||
const char *s_hx[] = {"", "HXA", "HXB", "HXC", "HXD", "HXE", "HXF", "HXG"};
|
||||
const char hxitems[] = " |HXA|HXB|HXC|HXD|HXE|HXF|HXG";
|
||||
const char precitems[] = "ROUTINE|WELFARE|PRIORITY|EMERGENCY";
|
||||
|
||||
FIELD rg_fields[] = {
|
||||
{ _rg_nbr, "", (Fl_Widget **)&txt_rg_nbr, 't' }, // 0
|
||||
{ _rg_prec, "", (Fl_Widget **)&sel_rg_prec, 's' }, // 1
|
||||
{ _rg_hx, "", (Fl_Widget **)&sel_rg_hx, 's' }, // 2
|
||||
{ _rg_hx_n, "", (Fl_Widget **)&txt_rg_hx_n, 't' }, // 3
|
||||
{ _rg_d1, "", (Fl_Widget **)&txt_rg_d1, 'd' }, // 4
|
||||
{ _rg_t1, "", (Fl_Widget **)&txt_rg_t1, 't' }, // 5
|
||||
{ _rg_d2, "", (Fl_Widget **)&txt_rg_d2, 'd' }, // 6
|
||||
{ _rg_t2, "", (Fl_Widget **)&txt_rg_t2, 't' }, // 7
|
||||
{ _rg_d3, "", (Fl_Widget **)&txt_rg_d3, 'd' }, // 8
|
||||
{ _rg_t3, "", (Fl_Widget **)&txt_rg_t3, 't' }, // 9
|
||||
{ _rg_to, "", (Fl_Widget **)&txt_rg_to, 't' }, // 10
|
||||
{ _rg_rx, "", (Fl_Widget **)&txt_rg_rx, 't' }, // 11
|
||||
{ _rg_phone, "", (Fl_Widget **)&txt_rg_phone, 't' }, // 12
|
||||
{ _rg_msg, "", (Fl_Widget **)&txt_rg_msg, 'e' }, // 13
|
||||
{ _rg_station, "", (Fl_Widget **)&txt_rg_station, 't' }, // 14
|
||||
{ _rg_place, "", (Fl_Widget **)&txt_rg_place, 't' }, // 15
|
||||
{ _rg_signed, "", (Fl_Widget **)&txt_rg_signed, 't' }, // 16
|
||||
{ _rg_sent_to, "", (Fl_Widget **)&txt_rg_sent_to, 't' }, // 17
|
||||
{ _rg_check, "", (Fl_Widget **)&txt_rg_check, 't' } };// 18
|
||||
|
||||
int num_rg_fields = sizeof(rg_fields) / sizeof(FIELD);
|
||||
|
||||
//======================================================================
|
||||
|
||||
void ucase(string &s)
|
||||
{
|
||||
for (size_t n = 0; n < s.length(); n++) s[n] = toupper(s[n]);
|
||||
}
|
||||
|
||||
//======================================================================
|
||||
|
||||
void cb_rgSetDate1()
|
||||
{
|
||||
txt_rg_d1->value(szAbbrevDate());
|
||||
}
|
||||
|
||||
void cb_rgSetDate2()
|
||||
{
|
||||
txt_rg_d2->value(szDate());
|
||||
}
|
||||
|
||||
void cb_rgSetDate3()
|
||||
{
|
||||
txt_rg_d3->value(szDate());
|
||||
}
|
||||
|
||||
void cb_rgSetTime1()
|
||||
{
|
||||
txt_rg_t1->value(szTime());
|
||||
}
|
||||
|
||||
void cb_rgSetTime2()
|
||||
{
|
||||
txt_rg_t2->value(szTime());
|
||||
}
|
||||
|
||||
void cb_rgSetTime3()
|
||||
{
|
||||
txt_rg_t3->value(szTime());
|
||||
}
|
||||
|
||||
void clear_rg_fields()
|
||||
{
|
||||
for (int i = 0; i < num_rg_fields; i++)
|
||||
rg_fields[i].f_data.clear();
|
||||
}
|
||||
|
||||
string numeric(int n)
|
||||
{
|
||||
static char snum[10];
|
||||
snprintf(snum, sizeof(snum), "%d", n);
|
||||
return snum;
|
||||
}
|
||||
|
||||
void update_rg_fields()
|
||||
{
|
||||
for (int i = 0; i < num_rg_fields; i++) {
|
||||
if (rg_fields[i].w_type == 'd')
|
||||
rg_fields[i].f_data = ((Fl_DateInput *)(*rg_fields[i].w))->value();
|
||||
else if (rg_fields[i].w_type == 't')
|
||||
rg_fields[i].f_data = ((Fl_Input2 *)(*rg_fields[i].w))->value();
|
||||
else if (rg_fields[i].w_type == 's')
|
||||
rg_fields[i].f_data = numeric(((Fl_Choice *)(*rg_fields[i].w))->value());
|
||||
else if (rg_fields[i].w_type == 'e') {
|
||||
rg_fields[i].f_data = ((FTextEdit *)(*rg_fields[i].w))->buffer()->text();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void set_rg_choices() {
|
||||
sel_rg_prec->clear();
|
||||
sel_rg_prec->add(precitems);
|
||||
sel_rg_prec->value(0);
|
||||
sel_rg_hx->clear();
|
||||
sel_rg_hx->add(hxitems);
|
||||
sel_rg_hx->value(0);
|
||||
}
|
||||
|
||||
void clear_rg_form()
|
||||
{
|
||||
clear_rg_fields();
|
||||
|
||||
for (int i = 0; i < num_rg_fields; i++)
|
||||
if (rg_fields[i].w_type == 'd')
|
||||
((Fl_DateInput *)(*rg_fields[i].w))->value("");
|
||||
else if (rg_fields[i].w_type == 't')
|
||||
((Fl_Input2 *)(*rg_fields[i].w))->value("");
|
||||
else if (rg_fields[i].w_type == 's')
|
||||
((Fl_Choice *)(*rg_fields[i].w))->value(0);
|
||||
else if (rg_fields[i].w_type == 'e')
|
||||
((FTextEdit *)(*rg_fields[i].w))->clear();
|
||||
update_rg_fields();
|
||||
}
|
||||
|
||||
void make_rg_buffer()
|
||||
{
|
||||
char sznum[80];
|
||||
update_rg_fields();
|
||||
buffer.clear();
|
||||
buffer.append("<flmsg>");
|
||||
buffer.append(PACKAGE_VERSION);
|
||||
buffer += '\n';
|
||||
buffer.append("<radiogram>\n");
|
||||
for (int i = 0; i < num_rg_fields; i++) {
|
||||
snprintf(sznum, sizeof(sznum), "%0d", (int)strlen(rg_fields[i].f_data.c_str()));
|
||||
buffer.append(rg_fields[i].f_type);
|
||||
buffer.append(sznum);
|
||||
buffer += ' ';
|
||||
buffer.append(rg_fields[i].f_data);
|
||||
buffer += '\n';
|
||||
}
|
||||
}
|
||||
|
||||
void read_rg_buffer(string data)
|
||||
{
|
||||
const char *buff, *p1, *p2, *buffend;
|
||||
size_t pos = 0;
|
||||
|
||||
while ((pos = data.find('\r', pos)) != string::npos) data.erase(pos, 1);
|
||||
p1 = buff = data.c_str();
|
||||
buffend = p1 + data.length();
|
||||
clear_rg_fields();
|
||||
|
||||
// search the file buffer for each of the ics rg_fields
|
||||
for (int i = 0; i < num_rg_fields; i++) {
|
||||
p1 = strstr(buff, rg_fields[i].f_type);
|
||||
if (p1) {
|
||||
int nchars;
|
||||
p2 = p1 + strlen(rg_fields[i].f_type);
|
||||
sscanf(p2, "%d", &nchars);
|
||||
if (nchars) {
|
||||
p2 = strchr(p2, ' ') + 1;
|
||||
if (p2 < buffend && p2 + nchars < buffend)
|
||||
for ( int ch = 0; ch < nchars; ch++, p2++)
|
||||
rg_fields[i].f_data += *p2;
|
||||
if (rg_fields[i].w_type == 'd')
|
||||
((Fl_DateInput *)(*rg_fields[i].w))->value(rg_fields[i].f_data.c_str());
|
||||
else if (rg_fields[i].w_type == 't')
|
||||
((Fl_Input2 *)(*rg_fields[i].w))->value(rg_fields[i].f_data.c_str());
|
||||
else if (rg_fields[i].w_type == 's') {
|
||||
int n;
|
||||
sscanf(rg_fields[i].f_data.c_str(),"%d", &n);
|
||||
((Fl_Choice *)(*rg_fields[i].w))->value(n);
|
||||
}
|
||||
else if (rg_fields[i].w_type == 'e') {
|
||||
((FTextEdit *)(*rg_fields[i].w))->clear();
|
||||
((FTextEdit *)(*rg_fields[i].w))->addstr(rg_fields[i].f_data.c_str());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void cb_rg_new()
|
||||
{
|
||||
clear_rg_form();
|
||||
def_rgFileName = ICS_msg_dir;
|
||||
def_rgFileName.append("new"RGFILE_EXT);
|
||||
show_filename(def_rgFileName);
|
||||
}
|
||||
|
||||
void cb_rg_import()
|
||||
{
|
||||
string def_rgFileName = ICS_dir;
|
||||
def_rgFileName.append("DEFAULT.XML");
|
||||
const char *p = FSEL::select(
|
||||
"Open Qforms xml file",
|
||||
"Qforms xml\t*.{xml,XML}",
|
||||
def_rgFileName.c_str());
|
||||
if (p){
|
||||
clear_rg_form();
|
||||
qform_rg_import(p);
|
||||
}
|
||||
}
|
||||
|
||||
void cb_rg_export()
|
||||
{
|
||||
string def_rgFileName = ICS_dir;
|
||||
def_rgFileName.append(rg_base_filename);
|
||||
def_rgFileName.append(".XML");
|
||||
const char *p = FSEL::saveas(
|
||||
"Open Qforms xml file",
|
||||
"Qforms xml\t*.{xml,XML}",
|
||||
def_rgFileName.c_str());
|
||||
if (p) {
|
||||
const char *pext = fl_filename_ext(p);
|
||||
def_rgFileName = p;
|
||||
if (strlen(pext) == 0) def_rgFileName.append(".XML");
|
||||
qform_rg_export(def_rgFileName);
|
||||
}
|
||||
}
|
||||
|
||||
void cb_rg_wrap_import()
|
||||
{
|
||||
string wrapfilename = WRAP_recv_dir;
|
||||
string inpbuffer;
|
||||
bool isok;
|
||||
wrapfilename.append("default.wrap");
|
||||
const char *p = FSEL::select(
|
||||
"Import wrapped radiogram file",
|
||||
"Wrap file\t*.{wrap,WRAP}",
|
||||
wrapfilename.c_str());
|
||||
if (p){
|
||||
clear_rg_form();
|
||||
isok = import_wrapfile(p, wrapfilename, inpbuffer);
|
||||
read_rg_buffer(inpbuffer);
|
||||
def_rgFileName = ICS_msg_dir;
|
||||
def_rgFileName.append(wrapfilename);
|
||||
show_filename(def_rgFileName);
|
||||
}
|
||||
}
|
||||
|
||||
void cb_rg_wrap_export()
|
||||
{
|
||||
string wrapfilename = WRAP_send_dir;
|
||||
wrapfilename.append(baseFileName);
|
||||
wrapfilename.append(".wrap");
|
||||
const char *p = FSEL::saveas(
|
||||
"Save as wrapped radiogram file",
|
||||
"Wrap file\t*.{wrap,WRAP}",
|
||||
wrapfilename.c_str());
|
||||
if (p) {
|
||||
string pext = fl_filename_ext(p);
|
||||
wrapfilename = p;
|
||||
make_rg_buffer();
|
||||
export_wrapfile(baseFileName, wrapfilename, buffer, pext != ".wrap");
|
||||
}
|
||||
}
|
||||
|
||||
void cb_rg_wrap_autosend()
|
||||
{
|
||||
string wrapfilename = WRAP_auto_dir;
|
||||
wrapfilename.append("wrap_auto_file");
|
||||
make_rg_buffer();
|
||||
export_wrapfile(baseFileName, wrapfilename, buffer, false);
|
||||
}
|
||||
|
||||
void read_rg(string s)
|
||||
{
|
||||
// def_rgFileName = s;
|
||||
long filesize = 0;
|
||||
char *buff, *buffend;
|
||||
int retval;
|
||||
FILE *icsfile;
|
||||
|
||||
icsfile = fopen (s.c_str(), "r");
|
||||
if (!icsfile)
|
||||
return;
|
||||
// determine its size for buffer creation
|
||||
fseek (icsfile, 0, SEEK_END);
|
||||
filesize = ftell (icsfile);
|
||||
buff = new char[filesize + 1];
|
||||
// read the entire file into the buffer
|
||||
fseek (icsfile, 0, SEEK_SET);
|
||||
retval = fread (buff, filesize, 1, icsfile);
|
||||
fclose (icsfile);
|
||||
buffend = buff + filesize;
|
||||
|
||||
// test file integrity
|
||||
if (filesize == 0) {
|
||||
fl_alert2(_("Empty file"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (strstr(buff, "<flmsg") != buff) {
|
||||
fl_alert2(_("Not an flmsg data file"));
|
||||
return;
|
||||
}
|
||||
read_rg_buffer(buff);
|
||||
delete [] buff;
|
||||
|
||||
}
|
||||
|
||||
void cb_rg_open()
|
||||
{
|
||||
const char *p = FSEL::select(_("Open data file"), "M2S\t*"RGFILE_EXT,
|
||||
def_rgFileName.c_str());
|
||||
if (!p) return;
|
||||
if (strlen(p) == 0) return;
|
||||
clear_ics_form();
|
||||
read_rg(p);
|
||||
usingTemplate = false;
|
||||
def_rgFileName = p;
|
||||
show_filename(def_rgFileName);
|
||||
}
|
||||
|
||||
void write_rg(string s)
|
||||
{
|
||||
FILE *icsfile = fopen(s.c_str(), "w");
|
||||
if (!icsfile) return;
|
||||
make_rg_buffer();
|
||||
fwrite(buffer.c_str(), buffer.length(), 1, icsfile);
|
||||
fclose(icsfile);
|
||||
}
|
||||
|
||||
void cb_rg_save_as()
|
||||
{
|
||||
const char *p;
|
||||
string newfilename;
|
||||
newfilename = def_rgFileName;
|
||||
|
||||
p = FSEL::saveas(_("Save data file"), "M2S\t*"RGFILE_EXT,
|
||||
newfilename.c_str());
|
||||
if (!p) return;
|
||||
if (strlen(p) == 0) return;
|
||||
|
||||
const char *pext = fl_filename_ext(p);
|
||||
def_rgFileName = p;
|
||||
if (strlen(pext) == 0) def_rgFileName.append(".m2s");
|
||||
remove_spaces_from_filename(def_rgFileName);
|
||||
write_rg(def_rgFileName);
|
||||
show_filename(def_rgFileName);
|
||||
}
|
||||
|
||||
void cb_rg_save()
|
||||
{
|
||||
if (rg_base_filename == "new"RGFILE_EXT || rg_base_filename == "default"RGFILE_EXT) {
|
||||
cb_save_as();
|
||||
return;
|
||||
}
|
||||
write_rg(def_rgFileName);
|
||||
}
|
||||
|
||||
void cb_rg_check()
|
||||
{
|
||||
update_rg_fields();
|
||||
string hx = rg_fields[2].f_data;
|
||||
string hxn = rg_fields[3].f_data;
|
||||
if ((hx == "2" || hx == "3" || hx == "6") &&
|
||||
hxn.empty()) {
|
||||
fl_alert2(_("HXB/C/F require secondary data"));
|
||||
return;
|
||||
}
|
||||
|
||||
string temp = txt_rg_msg->buffer()->text();
|
||||
if (temp.empty()) {
|
||||
txt_rg_check->value("");
|
||||
return;
|
||||
}
|
||||
|
||||
// convert to uppercase
|
||||
for (size_t n = 0; n < temp.length(); n++)
|
||||
temp[n] = toupper(temp[n]);
|
||||
|
||||
size_t pos = string::npos;
|
||||
// convert periods and commas into " X "
|
||||
while ((pos = temp.find(". ")) != string::npos) temp.replace(pos,1," X");
|
||||
if (temp[temp.length()-1] == '.') {
|
||||
temp[temp.length()-1] = ' '; temp += 'X';
|
||||
}
|
||||
while ((pos = temp.find(", ")) != string::npos) temp.replace(pos,1," X");
|
||||
if (temp[temp.length()-1] == ',') {
|
||||
temp[temp.length()-1] = ' '; temp += 'X';
|
||||
}
|
||||
|
||||
// remove any user inserted end-of-lines
|
||||
while ((pos = temp.find('\n')) != string::npos) temp[pos] = ' ';
|
||||
|
||||
// only single spaces no trailing spaces, no leading spaces
|
||||
while ((pos = temp.find(" ")) != string::npos) temp.erase(pos,1);
|
||||
if (temp[temp.length() -1] == ' ') temp.erase(temp.length()-1, 1);
|
||||
if (temp[0] == ' ') temp.erase(0,1);
|
||||
|
||||
// count number of words in text
|
||||
int numwords = 1;
|
||||
if (temp.length()) {
|
||||
pos = 0;
|
||||
while ((pos = temp.find(" ", pos + 1)) != string::npos) numwords++;
|
||||
}
|
||||
|
||||
// no more than 5 words to a line
|
||||
if (numwords > progStatus.wpl) {
|
||||
int wc = numwords;
|
||||
size_t pos = 0;
|
||||
while (wc > progStatus.wpl) {
|
||||
for (int i = 0; i < progStatus.wpl; i++) pos = temp.find(' ', pos + 1);
|
||||
temp[pos] = '\n';
|
||||
wc -= progStatus.wpl;
|
||||
}
|
||||
}
|
||||
// insert trailing end-of-line
|
||||
temp += '\n';
|
||||
|
||||
// return converted text to editor
|
||||
txt_rg_msg->clear();
|
||||
txt_rg_msg->addstr(temp.c_str());
|
||||
|
||||
char snum[10];
|
||||
snprintf(snum, sizeof(snum), "%s %d",
|
||||
temp.find("ARL") != string::npos ? "ARL" : "",
|
||||
numwords);
|
||||
txt_rg_check->value(snum);
|
||||
}
|
||||
|
||||
void cb_rg_html()
|
||||
{
|
||||
string rgname;
|
||||
int nbr;
|
||||
rgname = ICS_dir;
|
||||
rgname.append("radiogram.html");
|
||||
|
||||
cb_rg_check();
|
||||
string form = rg_html_template;
|
||||
|
||||
int nlines = 0;
|
||||
size_t pos;
|
||||
for (int i = 0; i < num_rg_fields; i++) {
|
||||
if (rg_fields[i].w_type == 'e' || rg_fields[i].w_type == 't') {
|
||||
nlines = 0;
|
||||
string MSG = rg_fields[i].f_data;
|
||||
size_t pos2 = MSG.find('\n');
|
||||
while (pos2 != string::npos) {
|
||||
MSG.replace(pos2, 1, "<br>");
|
||||
nlines++;
|
||||
pos2 = MSG.find( '\n', pos2 );
|
||||
}
|
||||
if (strcmp(rg_fields[i].f_type ,"<msg:") == 0)
|
||||
for (int k = nlines; k < 10; k++) MSG.append("<br>");
|
||||
to_html(MSG);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), MSG );
|
||||
} else if (strcmp(rg_fields[i].f_type, "<prec:") == 0) {
|
||||
sscanf(rg_fields[i].f_data.c_str(), "%d", &nbr);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), s_prec[nbr] );
|
||||
} else if (strcmp(rg_fields[i].f_type, "<hx:") == 0) {
|
||||
sscanf(rg_fields[i].f_data.c_str(), "%d", &nbr);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), s_hx[nbr] );
|
||||
} else {
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type),
|
||||
rg_fields[i].f_data );
|
||||
}
|
||||
}
|
||||
|
||||
FILE *rgfile = fopen(rgname.c_str(), "w");
|
||||
fprintf(rgfile,"%s", form.c_str());
|
||||
fclose(rgfile);
|
||||
|
||||
open_url(rgname.c_str());
|
||||
}
|
||||
|
||||
void cb_rg_rtf()
|
||||
{
|
||||
string rgname;
|
||||
int nbr;
|
||||
rgname = ICS_dir;
|
||||
rgname.append("radiogram.rtf");
|
||||
|
||||
cb_rg_check();
|
||||
string form = rg_rtf_template;
|
||||
|
||||
int nlines = 0;
|
||||
size_t pos;
|
||||
for (int i = 0; i < num_rg_fields; i++) {
|
||||
if (rg_fields[i].w_type == 'e' || rg_fields[i].w_type == 't') {
|
||||
nlines = 0;
|
||||
string MSG = rg_fields[i].f_data;
|
||||
size_t pos2 = MSG.find('\n');
|
||||
while (pos2 != string::npos) {
|
||||
MSG.replace(pos2, 1, nuline);
|
||||
nlines++;
|
||||
pos2 = MSG.find( '\n', pos2 + strlen(nuline) );
|
||||
}
|
||||
if (strcmp(rg_fields[i].f_type ,"<msg:") == 0)
|
||||
for (int k = nlines; k < 10; k++) MSG.append("\n");//nuline);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), MSG );
|
||||
} else if (strcmp(rg_fields[i].f_type, "<prec:") == 0) {
|
||||
sscanf(rg_fields[i].f_data.c_str(), "%d", &nbr);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), s_prec[nbr] );
|
||||
} else if (strcmp(rg_fields[i].f_type, "<hx:") == 0) {
|
||||
sscanf(rg_fields[i].f_data.c_str(), "%d", &nbr);
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type), s_hx[nbr] );
|
||||
} else {
|
||||
if ((pos = form.find(rg_fields[i].f_type)) != string::npos)
|
||||
form.replace( pos, strlen(rg_fields[i].f_type),
|
||||
rg_fields[i].f_data );
|
||||
}
|
||||
}
|
||||
|
||||
FILE *rgfile = fopen(rgname.c_str(), "w");
|
||||
fprintf(rgfile,"%s", form.c_str());
|
||||
fclose(rgfile);
|
||||
|
||||
open_url(rgname.c_str());
|
||||
}
|
||||
|
||||
void cb_rg_textout()
|
||||
{
|
||||
string rgname;
|
||||
string lines;
|
||||
string str;
|
||||
int nbr;
|
||||
rgname = ICS_dir;
|
||||
rgname.append("radiogram.txt");
|
||||
|
||||
cb_rg_check();
|
||||
|
||||
// first line
|
||||
lines = rg_fields[0].f_data; // message number
|
||||
lines += ' ';
|
||||
sscanf(rg_fields[1].f_data.c_str(), "%d", &nbr);
|
||||
str = s_prec[nbr];
|
||||
if (str == "EMERGENCY")
|
||||
lines.append(" ").append(str); // EMERGENCY spelled out
|
||||
else
|
||||
lines += str[0]; // just first char
|
||||
sscanf(rg_fields[2].f_data.c_str(), "%d", &nbr);
|
||||
lines.append(" ").append(s_hx[nbr]); // HX_
|
||||
lines.append(" ").append(rg_fields[3].f_data); // additional HX
|
||||
lines.append(" ").append(rg_fields[14].f_data); // station
|
||||
lines.append(" ").append(rg_fields[18].f_data); // check
|
||||
lines.append(" ").append(rg_fields[5].f_data); // time
|
||||
lines.append(" ").append(rg_fields[4].f_data); // date
|
||||
lines += '\n';
|
||||
// addressee
|
||||
lines.append(rg_fields[10].f_data);
|
||||
if (lines[lines.length()-1] != '\n') lines += '\n';
|
||||
// telephone
|
||||
lines.append(rg_fields[12].f_data).append("\nBT\n");
|
||||
// body of message
|
||||
lines.append(rg_fields[13].f_data);
|
||||
if (lines[lines.length()-1] != '\n') lines += '\n';
|
||||
lines.append("BT\n");
|
||||
// signed
|
||||
lines.append(rg_fields[16].f_data).append("\nAR\n");
|
||||
|
||||
ucase(lines);
|
||||
|
||||
FILE *rgfile = fopen(rgname.c_str(), "w");
|
||||
fprintf(rgfile,"%s", lines.c_str());
|
||||
fclose(rgfile);
|
||||
|
||||
open_url(rgname.c_str());
|
||||
}
|
||||
|
||||
|
|
@ -16,12 +16,13 @@
|
|||
#include "status.h"
|
||||
#include "config.h"
|
||||
#include "ics213.h"
|
||||
#include "ics213_dialog.h"
|
||||
#include "flmsg_dialog.h"
|
||||
|
||||
status progStatus = {
|
||||
50, // int mainX;
|
||||
50, // int mainY;
|
||||
|
||||
5, // int wpl;
|
||||
false, // bool compression;
|
||||
true, // bool UTC
|
||||
0 // date format 0: YYYY-MM-DD, 1: MM/DD/YY, 2: DD/MM/YY
|
||||
|
|
@ -29,7 +30,7 @@ status progStatus = {
|
|||
|
||||
void status::saveLastState()
|
||||
{
|
||||
Fl_Preferences flicspref(ICS_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
|
||||
Fl_Preferences flmsgpref(ICS_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
|
||||
|
||||
int mX = mainwindow->x();
|
||||
int mY = mainwindow->y();
|
||||
|
|
@ -38,45 +39,45 @@ void status::saveLastState()
|
|||
mainY = mY;
|
||||
}
|
||||
|
||||
flicspref.set("version", PACKAGE_VERSION);
|
||||
flicspref.set("mainx", mX);
|
||||
flicspref.set("mainy", mY);
|
||||
flmsgpref.set("version", PACKAGE_VERSION);
|
||||
flmsgpref.set("mainx", mX);
|
||||
flmsgpref.set("mainy", mY);
|
||||
|
||||
flicspref.set("compression", compression);
|
||||
flicspref.set("utc", UTC);
|
||||
flicspref.set("dtformat", dtformat);
|
||||
flmsgpref.set("wpl", wpl);
|
||||
flmsgpref.set("compression", compression);
|
||||
flmsgpref.set("utc", UTC);
|
||||
flmsgpref.set("dtformat", dtformat);
|
||||
}
|
||||
|
||||
void status::loadLastState()
|
||||
{
|
||||
Fl_Preferences flicspref(ICS_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
|
||||
Fl_Preferences flmsgpref(ICS_dir.c_str(), "w1hkj.com", PACKAGE_NAME);
|
||||
|
||||
if (flicspref.entryExists("version")) {
|
||||
if (flmsgpref.entryExists("version")) {
|
||||
|
||||
int i;
|
||||
|
||||
flicspref.get("mainx", mainX, mainX);
|
||||
flicspref.get("mainy", mainY, mainY);
|
||||
flmsgpref.get("mainx", mainX, mainX);
|
||||
flmsgpref.get("mainy", mainY, mainY);
|
||||
|
||||
if (flicspref.get("compression", i, i)) compression = i;
|
||||
if (flicspref.get("utc", i, i)) UTC = i;
|
||||
flicspref.get("dtformat", dtformat, dtformat);
|
||||
flmsgpref.get("wpl", wpl, wpl);
|
||||
cnt_wpl->value(wpl);
|
||||
if (flmsgpref.get("compression", i, i)) compression = i;
|
||||
if (flmsgpref.get("utc", i, i)) UTC = i;
|
||||
flmsgpref.get("dtformat", dtformat, dtformat);
|
||||
btn_dtformat0->value(0);
|
||||
btn_dtformat1->value(0);
|
||||
btn_dtformat2->value(0);
|
||||
switch (dtformat) {
|
||||
case 1:
|
||||
mnu_dtformat0->clear();
|
||||
mnu_dtformat1->set();
|
||||
mnu_dtformat2->clear();
|
||||
btn_dtformat0->value(1);
|
||||
break;
|
||||
case 2:
|
||||
mnu_dtformat0->clear();
|
||||
mnu_dtformat1->clear();
|
||||
mnu_dtformat2->set();
|
||||
btn_dtformat1->value(1);
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
mnu_dtformat0->set();
|
||||
mnu_dtformat1->clear();
|
||||
mnu_dtformat2->clear();
|
||||
btn_dtformat2->value(1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
343
src/templates.cxx
Normal file
|
|
@ -0,0 +1,343 @@
|
|||
#include "templates.h"
|
||||
|
||||
// rtf ICS-213 template created from Open Office rich text format
|
||||
// document.
|
||||
// all occurances of '\ first substituted with '\\'
|
||||
// all occurances of new line character substituted with "\n\" plus the
|
||||
// new line character.
|
||||
// resulting text is then wrapped in double quotes and the
|
||||
// const char name[] =
|
||||
// or
|
||||
// const char name * = is then added to the beginning of the text.
|
||||
|
||||
const char ics_rtf_template[] = \
|
||||
"{\\rtf1\\ansi\\deff1\\adeflang1025\n\
|
||||
{\\fonttbl{\\f0\\froman\\fprq2\\fcharset0 Liberation Serif{\\*\\falt Times New Roman};}{\\f1\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f2\\fswiss\\fprq2\\fcharset0 Liberation Sans{\\*\\falt Arial};}{\\f3\\froman\\fprq2\\fcharset0 Times New Roman;}{\\f4\\fswiss\\fprq2\\fcharset0 Arial;}{\\f5\\fnil\\fprq2\\fcharset0 DejaVu Sans;}{\\f6\\fnil\\fprq2\\fcharset0 Tahoma Slashed;}{\\f7\\fnil\\fprq0\\fcharset0 Tahoma Slashed;}}\n\
|
||||
{\\colortbl;\\red0\\green0\\blue0;\\red242\\green242\\blue242;\\red229\\green229\\blue229;\\red128\\green128\\blue128;}\n\
|
||||
{\\stylesheet{\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\snext1 Normal;}\n\
|
||||
{\\s2\\sb240\\sa120\\keepn\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af6\\afs28\\lang1025\\ltrch\\dbch\\af5\\langfe1033\\hich\\f2\\fs28\\lang1033\\loch\\f2\\fs28\\lang1033\\sbasedon1\\snext3 Heading;}\n\
|
||||
{\\s3\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext3 Body Text;}\n\
|
||||
{\\s4\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon3\\snext4 List;}\n\
|
||||
{\\s5\\sb120\\sa120\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ai\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\i\\loch\\f1\\fs24\\lang1033\\i\\sbasedon1\\snext5 caption;}\n\
|
||||
{\\s6\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\af7\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext6 Index;}\n\
|
||||
{\\s7\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033\\sbasedon1\\snext7 Table Contents;}\n\
|
||||
{\\s8\\cf0\\qc{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\aspalpha\\rtlch\\afs24\\lang1025\\ab\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\b\\loch\\f1\\fs24\\lang1033\\b\\sbasedon7\\snext8 Table Heading;}\n\
|
||||
{\\*\\cs10\\cf0\\rtlch\\af1\\afs24\\lang1033\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033 Default Paragraph Font;}\n\
|
||||
}\n\
|
||||
{\\info{\\title GENERAL MESSAGE}{\\author Dave, W1HKJ}{\\creatim\\yr2009\\mo9\\dy25\\hr15\\min10}{\\author Dave, W1HKJ}{\\revtim\\yr2009\\mo9\\dy25\\hr15\\min10}{\\printim\\yr0\\mo0\\dy0\\hr0\\min0}{\\comment StarWriter}{\\vern3000}}\\deftab720\n\
|
||||
{\\*\\pgdsctbl\n\
|
||||
{\\pgdsc0\\pgdscuse195\\pgwsxn12240\\pghsxn15840\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\pgdscnxt0 Standard;}}\n\
|
||||
{\\*\\pgdscno0}\\paperh15840\\paperw12240\\margl1800\\margr1800\\margt1440\\margb1440\\sectd\\sbknone\\pgwsxn12240\\pghsxn15840\\marglsxn1800\\margrsxn1800\\margtsxn1440\\margbsxn1440\\ftnbj\\ftnstart1\\ftnrstcont\\ftnnar\\aenddoc\\aftnrstcont\\aftnstart1\\aftnnrlc\n\
|
||||
\\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat2\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0\\qc{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 GENERAL MESSAGE}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TO:\\tab <to:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:\\tab <p1:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 FROM: \\tab <fm:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:\\tab <p2:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4148\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx6380\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SUBJ: \\tab <sb:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 DATE:\\tab <d1:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TIME:\\tab <t1:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat3\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 MESSAGE:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trrh4752\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <mg:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\cellx4431\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SIGNATURE:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <s1:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 POSITION:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <p3:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\clcbpat3\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 REPLY:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trrh4680\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <rp:}\n\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trleft0\\trpaddft3\\trpaddt0\\trpaddfl3\\trpaddl10\\trpaddfb3\\trpaddb0\\trpaddfr3\\trpaddr10\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx1733\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx3429\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx8619\n\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 DATE:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <d2:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 TIME:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <t2:}\n\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\li14\\ri0\\lin14\\rin0\\fi0\\sb60\\sa60\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 SIGNATURE/POSITION:}\n\
|
||||
\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\ql\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 <s2: / <p4:}\n\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\cf0\\qj{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af4\\afs20\\lang1025\\ltrch\\dbch\\af4\\langfe1033\\hich\\f4\\fs20\\lang1033\\loch\\f4\\fs20\\lang1033 \n\
|
||||
\\par }\n\
|
||||
";
|
||||
|
||||
// rtf formated new line
|
||||
// rtf substitute for the '\n' character in C++ string
|
||||
// used to modify the body of the message or reply section.
|
||||
|
||||
const char nuline[] = "\\line ";
|
||||
//\
|
||||
//"}\n\
|
||||
//\\par \\pard\\plain \\intbl\\ltrpar\\s1\\cf0{\\*\\hyphen2\\hyphlead2\\hyphtrail2\\hyphmax0}\\rtlch\\af1\\afs24\\lang1033\\ltrch\\dbch\\af1\\langfe1033\\hich\\f1\\fs24\\lang1033\\loch\\f1\\fs24\\lang1033 {\\rtlch \\ltrch\\loch\\f4\\fs20\\lang1033\\i0\\b0 ";
|
||||
|
||||
// ICS213 HTML TEMPLATE
|
||||
const char ics_html_template[] =
|
||||
"\
|
||||
<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\
|
||||
<html><head><meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\"><title>ics_html_template</title></head><body>\n\
|
||||
<table style=\"text-align: left; width: 1000px;\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr align=\"center\">\n\
|
||||
<td colspan=\"3\" style=\"vertical-align: top; background-color: rgb(238, 238, 238);\"><big><span style=\"font-weight: bold;\"><br>\n\
|
||||
GENERAL MESSAGE</span></big><br>\n\
|
||||
(ics-213)<br>\n\
|
||||
<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">TO: <to:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 50%;\" colspan=\"2\">POSITION: <p1:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">FROM: <fm:<br>\n\
|
||||
</td>\n\
|
||||
<td colspan=\"2\" style=\"vertical-align: top;\">POSITION: <p2:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">SUBJ: <sb:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 25%;\">DATE: <d1:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\">TIME: <t1:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td colspan=\"3\" style=\"vertical-align: top; background-color: rgb(238, 238, 238);\">MESSAGE:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td colspan=\"3\" style=\"vertical-align: top;\"><mg:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">SIGNATURE: <s1:<br>\n\
|
||||
</td>\n\
|
||||
<td colspan=\"2\" style=\"vertical-align: top;\">POSITION: <p3:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td colspan=\"3\" style=\"vertical-align: top; background-color: rgb(238, 238, 238);\">REPLY:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td colspan=\"3\" style=\"vertical-align: top;\"><rp:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">\n\
|
||||
<table style=\"text-align: left; width: 100%;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top; width: 50%; height: 100%;\">DATE:<br>\n\
|
||||
<d2:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\">TIME:<br>\n\
|
||||
<t2:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\" colspan=\"2\">SIGNATURE/POSITION:<br>\n\
|
||||
<p4:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
</body></html>\
|
||||
";
|
||||
|
||||
// RADIOGRAM HTML TEMPLATE
|
||||
|
||||
const char rg_html_template[] = \
|
||||
"<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \"http://www.w3.org/TR/html4/strict.dtd\">\n\
|
||||
<html><head><meta content=\"text/html; charset=ISO-8859-1\" http-equiv=\"content-type\"><title>rg_html_template</title></head><body>\n\
|
||||
<table style=\"text-align: left; width: 1000px; margin-left: auto; margin-right: auto;\" border=\"0\" cellpadding=\"2\" cellspacing=\"2\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">\n\
|
||||
<div style=\"text-align: center;\"><font size=\"3\"><b>THE AMERICAN RADIO RELAY LEAGUE</b></font><br>\n\
|
||||
<font size=\"6\"><b>RADIOGRAM</b></font><br>\n\
|
||||
<big><font size=\"1\"><big>VIA AMATEUR RADIO</big></font></big><br>\n\
|
||||
<br>\n\
|
||||
</div>\n\
|
||||
<table style=\"width: 100%;\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">\n\
|
||||
<tbody><tr><td style=\"width: 70px;\" class=\"heading\">NUMBER</td><td style=\"width: 100px;\" class=\"heading\">PRECEDENCE</td><td style=\"width: 40px;\" class=\"heading\">HX</td><td class=\"heading\">STATION OF ORIGIN</td><td style=\"width: 60px;\" class=\"heading\">CHECK</td><td class=\"heading\">PLACE OF ORIGIN</td><td style=\"width: 90px;\" class=\"heading\">TIME FILED</td><td style=\"width: 90px;\" class=\"heading\">DATE</td></tr><tr>\n\
|
||||
<td style=\"vertical-align: top;\"><nbr:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><prec:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><hx:<hn:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><sta:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><ck:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><org:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><t1:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><d1:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
<table style=\"text-align: left; width: 100%;\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">TO<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\">THIS RADIO MESSAGE WAS RECEIVED AT<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\"><to:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 50%;\"><rx:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
<table style=\"text-align: left; width: 100%;\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">TELEPHONE NUMBER<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\"><tel:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
<table style=\"text-align: left; width: 100%;\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\">\n\
|
||||
<p><msg:</p>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
<table style=\"text-align: left; width: 100%;\" border=\"1\" cellpadding=\"2\" cellspacing=\"0\">\n\
|
||||
<tbody>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top; width: 340px;\">FROM<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 80px;\">DATE<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 80px;\">TIME<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\">SENT TO<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 80px;\">DATE<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top; width: 80px;\">TIME<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
<tr>\n\
|
||||
<td style=\"vertical-align: top;\"><sgn:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><d2:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><t2:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><sto:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><d3:<br>\n\
|
||||
</td>\n\
|
||||
<td style=\"vertical-align: top;\"><t3:<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
</td>\n\
|
||||
</tr>\n\
|
||||
</tbody>\n\
|
||||
</table>\n\
|
||||
<br>\n\
|
||||
</body></html>\
|
||||
";
|
||||
|
||||
const char rg_rtf_template[] = "\
|
||||
{\\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 <nbr:}\
|
||||
\\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 <prec:}\
|
||||
\\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 <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 <sta:}\
|
||||
\\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 <ck:}\
|
||||
\\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 <org:}\
|
||||
\\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 <t1:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\aspalpha\\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 <d1:}\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\qj\\rtlch\\af2\\afs20\\lang255\\ltrch\\dbch\\af2\\langfe1033\\hich\\f2\\fs20\\lang1033\\loch\\f2\\fs20\\lang1033 \
|
||||
\\par \\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\\cellx5402\\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 TO}\
|
||||
\\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 THIS RADIO MESSAGE WAS RECEIVED AT}\
|
||||
\\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\\cellx5402\\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 <to:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s1\\aspalpha\\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 <rx:}\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\qj\\rtlch\\af2\\afs20\\lang255\\ltrch\\dbch\\af2\\langfe1033\\hich\\f2\\fs20\\lang1033\\loch\\f2\\fs20\\lang1033 \
|
||||
\\par \\pard\\plain \\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 TELEPHONE NUMBER}\
|
||||
\\par \\pard\\plain \\ltrpar\\s1\\aspalpha\\ql\\rtlch\\afs24\\lang255\\ltrch\\dbch\\langfe1033\\hich\\f2\\fs18\\lang1033\\loch\\f2\\fs18\\lang1033 {\\rtlch \\ltrch\\loch\\f2\\fs18\\lang1033\\i0\\b0 <tel:}\
|
||||
\\par \\pard\\plain \\ltrpar\\s1\\aspalpha\\ql\\rtlch\\afs24\\lang255\\ltrch\\dbch\\langfe1033\\hich\\fs24\\lang1033\\loch\\fs24\\lang1033 \
|
||||
\\par \\trowd\\trql\\trrh1936\\trpaddft3\\trpaddt55\\trpaddfl3\\trpaddl55\\trpaddfb3\\trpaddb55\\trpaddfr3\\trpaddr55\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx10800\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <msg:}\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\qj\\rtlch\\af2\\afs18\\lang255\\ltrch\\dbch\\af2\\langfe1033\\hich\\f2\\fs18\\lang1033\\loch\\f2\\fs18\\lang1033 \
|
||||
\\par \\trowd\\trql\\trpaddft3\\trpaddt55\\trpaddfl3\\trpaddl55\\trpaddfb3\\trpaddb55\\trpaddfr3\\trpaddr55\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx3309\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx4479\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx5400\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx8777\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx9936\\clbrdrt\\brdrs\\brdrw1\\brdrcf1\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx10800\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 FROM}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 DATE}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 TIME}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 SENT TO}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 DATE}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 TIME}\
|
||||
\\cell\\row\\pard \\trowd\\trql\\trpaddft3\\trpaddt55\\trpaddfl3\\trpaddl55\\trpaddfb3\\trpaddb55\\trpaddfr3\\trpaddr55\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx3309\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx4479\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx5400\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx8777\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\cellx9936\\clbrdrl\\brdrs\\brdrw1\\brdrcf1\\clbrdrb\\brdrs\\brdrw1\\brdrcf1\\clbrdrr\\brdrs\\brdrw1\\brdrcf1\\cellx10800\
|
||||
\\pard\\intbl\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <sgn:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <d2:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <t2:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <sto:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <d3:}\
|
||||
\\cell\\pard\\plain \\intbl\\ltrpar\\s9\\aspalpha\\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 <t3:}\
|
||||
\\cell\\row\\pard \\pard\\plain \\ltrpar\\s1\\qj\\rtlch\\af2\\afs18\\lang255\\ltrch\\dbch\\af2\\langfe1033\\hich\\f2\\fs18\\lang1033\\loch\\f2\\fs18\\lang1033 \
|
||||
\\par }";
|
||||