1 /* 2 ACfax - Fax reception with X11-interface for amateur radio 3 Copyright (C) 1995-1998 Andreas Czechanowski, DL4SDC 4 5 This program is free software; you can redistribute it and/or modify 6 it under the terms of the GNU General Public License as published by 7 the Free Software Foundation; either version 2 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU General Public License for more details. 14 15 You should have received a copy of the GNU General Public License 16 along with this program; if not, write to the Free Software Foundation, 17 Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 19 andreas.czechanowski@ins.uni-stuttgart.de 20 */ 21 22 /* 23 * widgets.h - structure definitions for widgets.c 24 */ 25 26 #include <X11/Intrinsic.h> 27 28 /* 29 * these structures are for grouping widgets together and not having 30 * too many global widget-variables. Most states are remembered by the 31 * status of the appropriate widget. For numeric values, or multi-state 32 * widgets, integer variables have been added. 33 */ 34 35 struct modem_ws { 36 Widget 37 form, /* form widget containining... : */ 38 modemdesc, /* label "modem settings" */ 39 modinfo, /* label "modulation type" */ 40 mmode, /* toggle (AM/FM) */ 41 filinfo, /* label "filter select" */ 42 mfilter, /* command (narrow/middle/wide filter) */ 43 mflpd, /* simpleMenu containing... : */ 44 mflt1, /* smeBSB: narrow filter */ 45 mflt2, /* smeBSB: middle filter */ 46 mflt3, /* smeBSB: wide filter */ 47 fmdevinfo, /* label "deviation (+/- Hz)" */ 48 fmdevval, /* asciiText (entry of deviation value) */ 49 siginfo, /* label "Signal" */ 50 sigbar; /* scrollbar showing current input signal level */ 51 int 52 c_filter, /* currently selected filter (see mod_demod.h) */ 53 c_devi; /* currently selected deviation (for FM) */ 54 }; 55 56 struct runctl_ws { 57 Widget 58 form, /* form widget containining... : */ 59 runinfo, /* label "operation control" */ 60 rmstop, /* toggle (stop) */ 61 rmsyn, /* toggle (sync) */ 62 rmrun; /* toggle (run) */ 63 }; 64 65 struct dirctl_ws { 66 Widget 67 form, /* form widget containining... : */ 68 dirinfo, /* label "direction control" */ 69 dirhv, /* toggle (hor/vert) */ 70 dirlr, /* toggle (right/left) */ 71 dirtb; /* toggle (bottom/top) */ 72 }; 73 74 struct polctl_ws { 75 Widget 76 form, /* form widget containining... : */ 77 polinfo, /* label "image polarity" */ 78 norinv, /* toggle (normal/invers) */ 79 phsinfo, /* label "phase polarity" */ 80 posneg; /* toggle (pos/neg phase) */ 81 }; 82 83 struct adjctl_ws { 84 Widget 85 form, /* form widget containining... : */ 86 adjinfo, /* label "image adjust" */ 87 lshift, /* command (shift image) */ 88 azimut; /* command (azimut correction) */ 89 }; 90 91 struct numval_ws { 92 Widget 93 form, /* form widget containining... : */ 94 numinfo, /* label "numeric parameters" */ 95 lpmtxt, /* label "lpm" */ 96 lpmval, /* asciiText (lpm entry) */ 97 ioctxt, /* label "IOC" */ 98 iocval, /* asciiText (IOC entry) */ 99 statxt, /* label "APT start" */ 100 staval, /* asciiText (APT start entry) */ 101 stotxt, /* label "APT stop" */ 102 stoval; /* asciiText (APT stop entry) */ 103 int 104 c_lpm, 105 c_ioc, 106 c_aptsta, 107 c_aptstp; 108 }; 109 110 struct info_popup { 111 Widget 112 shell, /* popup-shell for displaying auxiliary information */ 113 form, /* form widget containing... : */ 114 text, /* asciiText, displaying message */ 115 butn; /* button for Ok/cancel/dismiss etc */ 116 }; 117 118 struct file_menu { 119 Widget 120 butn, /* menuButton opening... : */ 121 menu, /* simpleMenu containing... : */ 122 saveas, /* smeBSB "save-as" */ 123 close, /* smeBSB "close" */ 124 autosave, /* smeBSB "save (auto-filename)" */ 125 quit; /* smeBSB "quit ACfax" */ 126 }; 127 128 struct fileshell_args { 129 char *title; /* title of shell to be poped up */ 130 char *dir_io; /* directory input/output */ 131 char *filename; /* filename_return */ 132 void (*file_act)(char *); /* function accepting name as argument */ 133 }; 134 135 struct file_browser { 136 Widget 137 shell, /* popup-shell for the file-browser */ 138 form, /* form widget containing... : */ 139 fchs, /* XfwfFileChooserWidget */ 140 okbut, /* command "Ok" */ 141 cancel, /* command "cancel" */ 142 fname; /* asciiText for file-/directory name entry */ 143 char 144 name[256]; /* name of file being selected */ 145 struct fileshell_args 146 *fsarg; /* file-shell arguments passed from application */ 147 }; 148 149 extern Widget 150 /* form, */ 151 fax_shell, 152 fax_form, 153 disp_form, 154 vport, 155 canvas; 156 157 extern Pixmap 158 px_horiz, 159 px_vert, 160 px_right, 161 px_left, 162 px_top, 163 px_bottom, 164 px_normal, 165 px_invers, 166 px_nphs, 167 px_iphs, 168 px_azimut, 169 px_shift, 170 px_stop, 171 px_syn, 172 px_run, 173 px_mam, 174 px_mfm, 175 px_narrow, 176 px_middle, 177 px_wide; 178 179 extern struct modem_ws mod_s; 180 extern struct runctl_ws run_s; 181 extern struct dirctl_ws dir_s; 182 extern struct polctl_ws pol_s; 183 extern struct adjctl_ws adj_s; 184 extern struct numval_ws num_s; 185 extern struct file_menu file_m; 186 extern struct info_popup info_s; 187 188 Widget cr_modemform(Widget); /* creates mod_s */ 189 Widget cr_faxctls(Widget); /* creates run_s, dir_s, pol_s, adj_s */ 190 Widget cr_faxparams(Widget); /* creates num_s */ 191 Widget cr_menubar(Widget); /* creates menu with pulldown-menus */ 192 Widget cr_infopop(Widget); /* creates info_s */ 193 void query_filename(struct fileshell_args *); 194 void create_widgets(Widget); 195 void simple_info(char *); 196 void create_pixmaps(Widget); 197 void set_sigdisplay(double); 198