Merge with upstream

pull/2/head
Stelios Bounanos 2008-08-31 08:19:05 +01:00
commit 05fecac6a5
14 zmienionych plików z 390 dodań i 95 usunięć

Wyświetl plik

@ -3,6 +3,22 @@ Change Log:
3.03
1) Changes to socket server to correct shutdown process
2) Added event logging and an event viewer
3) Added QRZ cdrom / database location specifier with auto-search
4) Bug fix for sound on OS X 10.4
5) Bug fix for Socket Server. Added error checking for listen().
6) Update to build scripts. Corrected compiler flags for building
universal binary on OS X. Changed to a more reliable way of linking
hamlib statically. Updated app bundling script.
7) Set tooltip font - tooltip changed to use same font and size selected
with the command line switch --font. Set default font sizes on OS X.
8) Inhibit Tx / Rx of higher speed MFSKpic modes on slower computers
9) Added color selection for Rx/Tx text panels
Normal text
Transmitted text
Control character text
Skipped text
Alternate (quick view) text
Background
3.02
1) Added hamlib interface for rig control

Wyświetl plik

@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may
dnl contain other characters or be empty
m4_define(FLDIGI_MAJOR, [3])
m4_define(FLDIGI_MINOR, [0])
m4_define(FLDIGI_PATCH, [3AC])
m4_define(FLDIGI_PATCH, [3AE])
AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com])

Wyświetl plik

@ -539,18 +539,6 @@ progdefaults.QRZ = 0;
progdefaults.changed = true;
}
Fl_Check_Button *btnQRZsocket=(Fl_Check_Button *)0;
static void cb_btnQRZsocket(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
btnQRZcdrom->value(0);
btnQRZnotavailable->value(0);
btnHAMCALLsocket->value(0);
progdefaults.QRZ = 1;
}
progdefaults.changed = true;
}
Fl_Check_Button *btnQRZcdrom=(Fl_Check_Button *)0;
static void cb_btnQRZcdrom(Fl_Check_Button* o, void*) {
@ -563,6 +551,26 @@ progdefaults.QRZ = 2;
progdefaults.changed = true;
}
Fl_Input *txtQRZpathname=(Fl_Input *)0;
static void cb_txtQRZpathname(Fl_Input* o, void*) {
progdefaults.QRZpathname = o->value();
progdefaults.QRZchanged = true;
progdefaults.changed = true;
}
Fl_Check_Button *btnQRZsocket=(Fl_Check_Button *)0;
static void cb_btnQRZsocket(Fl_Check_Button* o, void*) {
if (o->value() == 1) {
btnQRZcdrom->value(0);
btnQRZnotavailable->value(0);
btnHAMCALLsocket->value(0);
progdefaults.QRZ = 1;
}
progdefaults.changed = true;
}
Fl_Check_Button *btnHAMCALLsocket=(Fl_Check_Button *)0;
static void cb_btnHAMCALLsocket(Fl_Check_Button* o, void*) {
@ -1813,38 +1821,43 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
tabQRZ->color((Fl_Color)51);
tabQRZ->selection_color((Fl_Color)51);
tabQRZ->hide();
{ Fl_Check_Button* o = btnQRZnotavailable = new Fl_Check_Button(31, 45, 110, 20, "Not available");
{ Fl_Check_Button* o = btnQRZnotavailable = new Fl_Check_Button(12, 45, 110, 20, "Not available");
btnQRZnotavailable->down_box(FL_DOWN_BOX);
btnQRZnotavailable->value(1);
btnQRZnotavailable->callback((Fl_Callback*)cb_btnQRZnotavailable);
if (progdefaults.QRZ == 0) o->value(1); else o->value(0);
} // Fl_Check_Button* btnQRZnotavailable
{ Fl_Check_Button* o = btnQRZsocket = new Fl_Check_Button(32, 74, 190, 20, "QRZ online subscription");
{ Fl_Check_Button* o = btnQRZcdrom = new Fl_Check_Button(12, 70, 103, 20, "QRZ cdrom");
btnQRZcdrom->down_box(FL_DOWN_BOX);
btnQRZcdrom->callback((Fl_Callback*)cb_btnQRZcdrom);
if (progdefaults.QRZ == 2) o->value(1); else o->value(0);
} // Fl_Check_Button* btnQRZcdrom
{ Fl_Input* o = txtQRZpathname = new Fl_Input(139, 67, 255, 25, "at:");
txtQRZpathname->tooltip("ie: /home/dave/CALLBK/ or C:/CALLBK/^jLeave blank to search for database");
txtQRZpathname->callback((Fl_Callback*)cb_txtQRZpathname);
o->value(progdefaults.QRZpathname.c_str());
} // Fl_Input* txtQRZpathname
{ Fl_Check_Button* o = btnQRZsocket = new Fl_Check_Button(12, 96, 190, 20, "QRZ online subscription");
btnQRZsocket->tooltip("You need a QRZ on-line subscription to access QRZ.com");
btnQRZsocket->down_box(FL_DOWN_BOX);
btnQRZsocket->callback((Fl_Callback*)cb_btnQRZsocket);
if (progdefaults.QRZ == 1) o->value(1); else o->value(0);
} // Fl_Check_Button* btnQRZsocket
{ Fl_Check_Button* o = btnQRZcdrom = new Fl_Check_Button(185, 45, 103, 20, "QRZ cdrom");
btnQRZcdrom->down_box(FL_DOWN_BOX);
btnQRZcdrom->callback((Fl_Callback*)cb_btnQRZcdrom);
if (progdefaults.QRZ == 2) o->value(1); else o->value(0);
} // Fl_Check_Button* btnQRZcdrom
{ Fl_Check_Button* o = btnHAMCALLsocket = new Fl_Check_Button(31, 103, 205, 20, "Hamcall online subscription");
{ Fl_Check_Button* o = btnHAMCALLsocket = new Fl_Check_Button(12, 119, 205, 20, "Hamcall online subscription");
btnHAMCALLsocket->tooltip("You need a QRZ on-line subscription to access QRZ.com");
btnHAMCALLsocket->down_box(FL_DOWN_BOX);
btnHAMCALLsocket->callback((Fl_Callback*)cb_btnHAMCALLsocket);
if (progdefaults.QRZ == 3) o->value(1); else o->value(0);
} // Fl_Check_Button* btnHAMCALLsocket
{ Fl_Input* o = inpQRZusername = new Fl_Input(150, 129, 90, 25, "User name:");
{ Fl_Input* o = inpQRZusername = new Fl_Input(150, 145, 90, 25, "User name:");
inpQRZusername->callback((Fl_Callback*)cb_inpQRZusername);
o->value(progdefaults.QRZusername.c_str());
} // Fl_Input* inpQRZusername
{ Fl_Input* o = inpQRZuserpassword = new Fl_Input(150, 160, 90, 25, "User password:");
{ Fl_Input* o = inpQRZuserpassword = new Fl_Input(150, 176, 90, 25, "User password:");
inpQRZuserpassword->callback((Fl_Callback*)cb_inpQRZuserpassword);
o->value(progdefaults.QRZuserpassword.c_str()); o->type(FL_SECRET_INPUT);
} // Fl_Input* inpQRZuserpassword
{ btnQRZpasswordShow = new Fl_Button(245, 160, 50, 25, "Show");
{ btnQRZpasswordShow = new Fl_Button(245, 176, 50, 25, "Show");
btnQRZpasswordShow->callback((Fl_Callback*)cb_btnQRZpasswordShow);
} // Fl_Button* btnQRZpasswordShow
tabQRZ->end();
@ -2087,7 +2100,6 @@ l with your sound hardware.");
{ tabCW = new Fl_Group(0, 50, 400, 170, "CW");
tabCW->color((Fl_Color)51);
tabCW->selection_color((Fl_Color)51);
tabCW->hide();
{ Fl_Group* o = new Fl_Group(1, 60, 398, 155);
o->box(FL_ENGRAVED_FRAME);
{ Fl_Value_Slider* o = sldrCWbandwidth = new Fl_Value_Slider(65, 65, 325, 20, "BW");
@ -2283,6 +2295,7 @@ l with your sound hardware.");
{ tabDomEX = new Fl_Group(0, 50, 400, 170, "Dom");
tabDomEX->color((Fl_Color)51);
tabDomEX->selection_color((Fl_Color)51);
tabDomEX->hide();
{ txtSecondary = new Fl_Input(20, 75, 360, 44, "Secondary Text");
txtSecondary->type(4);
txtSecondary->callback((Fl_Callback*)cb_txtSecondary);

Wyświetl plik

@ -39,14 +39,14 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600
code {} {}
Fl_Window {} {
label {fldigi - config} open
xywh {529 209 400 250} type Double color 45 selection_color 51 align 80 visible
xywh {519 158 400 250} type Double color 45 selection_color 51 align 80 visible
} {
Fl_Tabs tabsConfigure {open
xywh {0 0 405 220} color 47 selection_color 9
} {
Fl_Group tabOperator {
label Oper
callback {progdefaults.changed = true;} open
callback {progdefaults.changed = true;} open selected
xywh {0 25 400 195} color 51 selection_color 51 when 1
} {
Fl_Input inpMyCallsign {
@ -61,7 +61,7 @@ progdefaults.secText = o->value();
progdefaults.secText.append(" ");
txtSecondary->value(progdefaults.secText.c_str());
}
progdefaults.changed = true;} selected
progdefaults.changed = true;}
xywh {78 36 85 24}
}
Fl_Input inpMyName {
@ -649,21 +649,9 @@ btnHAMCALLsocket->value(0);
progdefaults.QRZ = 0;
}
progdefaults.changed = true;}
xywh {31 45 110 20} down_box DOWN_BOX value 1
xywh {12 45 110 20} down_box DOWN_BOX value 1
code0 {if (progdefaults.QRZ == 0) o->value(1); else o->value(0);}
}
Fl_Check_Button btnQRZsocket {
label {QRZ online subscription}
callback {if (o->value() == 1) {
btnQRZcdrom->value(0);
btnQRZnotavailable->value(0);
btnHAMCALLsocket->value(0);
progdefaults.QRZ = 1;
}
progdefaults.changed = true;}
tooltip {You need a QRZ on-line subscription to access QRZ.com} xywh {32 74 190 20} down_box DOWN_BOX
code0 {if (progdefaults.QRZ == 1) o->value(1); else o->value(0);}
}
Fl_Check_Button btnQRZcdrom {
label {QRZ cdrom}
callback {if (o->value() == 1) {
@ -673,9 +661,29 @@ btnHAMCALLsocket->value(0);
progdefaults.QRZ = 2;
}
progdefaults.changed = true;}
xywh {185 45 103 20} down_box DOWN_BOX
xywh {12 70 103 20} down_box DOWN_BOX
code0 {if (progdefaults.QRZ == 2) o->value(1); else o->value(0);}
}
Fl_Input txtQRZpathname {
label {at:}
callback {progdefaults.QRZpathname = o->value();
progdefaults.QRZchanged = true;
progdefaults.changed = true;}
tooltip {ie: /home/dave/CALLBK/ or C:/CALLBK/^jLeave blank to search for database} xywh {139 67 255 25}
code0 {o->value(progdefaults.QRZpathname.c_str());}
}
Fl_Check_Button btnQRZsocket {
label {QRZ online subscription}
callback {if (o->value() == 1) {
btnQRZcdrom->value(0);
btnQRZnotavailable->value(0);
btnHAMCALLsocket->value(0);
progdefaults.QRZ = 1;
}
progdefaults.changed = true;}
tooltip {You need a QRZ on-line subscription to access QRZ.com} xywh {12 96 190 20} down_box DOWN_BOX
code0 {if (progdefaults.QRZ == 1) o->value(1); else o->value(0);}
}
Fl_Check_Button btnHAMCALLsocket {
label {Hamcall online subscription}
callback {if (o->value() == 1) {
@ -685,21 +693,21 @@ btnQRZsocket->value(0);
progdefaults.QRZ = 3;
}
progdefaults.changed = true;}
tooltip {You need a QRZ on-line subscription to access QRZ.com} xywh {31 103 205 20} down_box DOWN_BOX
tooltip {You need a QRZ on-line subscription to access QRZ.com} xywh {12 119 205 20} down_box DOWN_BOX
code0 {if (progdefaults.QRZ == 3) o->value(1); else o->value(0);}
}
Fl_Input inpQRZusername {
label {User name:}
callback {progdefaults.QRZusername = o->value();
progdefaults.changed = true;}
xywh {150 129 90 25}
xywh {150 145 90 25}
code0 {o->value(progdefaults.QRZusername.c_str());}
}
Fl_Input inpQRZuserpassword {
label {User password:}
callback {progdefaults.QRZuserpassword = o->value();
progdefaults.changed = true;}
xywh {150 160 90 25}
xywh {150 176 90 25}
code0 {o->value(progdefaults.QRZuserpassword.c_str()); o->type(FL_SECRET_INPUT);}
}
Fl_Button btnQRZpasswordShow {
@ -707,7 +715,7 @@ progdefaults.changed = true;}
callback {inpQRZuserpassword->type(inpQRZuserpassword->type() ^ FL_SECRET_INPUT);
inpQRZuserpassword->redraw();
o->label((inpQRZuserpassword->type() & FL_SECRET_INPUT) ? "Show" : "Hide");}
xywh {245 160 50 25}
xywh {245 176 50 25}
}
}
Fl_Group tabSoundCard {
@ -1003,7 +1011,7 @@ progdefaults.changed = true;}
} {
Fl_Group tabCW {
label CW open
xywh {0 50 400 170} color 51 selection_color 51 hide
xywh {0 50 400 170} color 51 selection_color 51
} {
Fl_Group {} {open
xywh {1 60 398 155} box ENGRAVED_FRAME
@ -1176,7 +1184,7 @@ progdefaults.changed = true;}
}
Fl_Group tabDomEX {
label Dom open
xywh {0 50 400 170} color 51 selection_color 51
xywh {0 50 400 170} color 51 selection_color 51 hide
} {
Fl_Input txtSecondary {
label {Secondary Text}

Wyświetl plik

@ -1752,6 +1752,15 @@ void create_fl_digi_main() {
progdefaults.RxColor.R,
progdefaults.RxColor.G,
progdefaults.RxColor.B));
ReceiveText->setFont((Fl_Font)progdefaults.RxFontnbr);
ReceiveText->setFontSize(progdefaults.RxFontsize);
ReceiveText->setFontColor((Fl_Color)progdefaults.RxFontcolor);
ReceiveText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
TiledGroup->add_resize_check(FTextView::wheight_mult_tsize, ReceiveText);
FHdisp = new Raster(sw, Y, WNOM-sw, minRxHeight);
FHdisp->hide();
@ -1762,6 +1771,13 @@ void create_fl_digi_main() {
progdefaults.TxColor.R,
progdefaults.TxColor.G,
progdefaults.TxColor.B));
TransmitText->setFont((Fl_Font)progdefaults.TxFontnbr);
TransmitText->setFontSize(progdefaults.TxFontsize);
TransmitText->setFontColor((Fl_Color)progdefaults.TxFontcolor);
TransmitText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
Fl_Box *minbox = new Fl_Box(sw,Y + 66, WNOM-sw, Htext - 66 - 32);
minbox->hide();

Wyświetl plik

@ -161,7 +161,7 @@ Font_Browser::Font_Browser(const char *lbl ) :
btn_Color->align(FL_ALIGN_TOP_LEFT);
btn_Color->color(FL_BLACK);
btn_Color->callback( (Fl_Callback*)cb_Color_Select, this );
btn_Color->hide(); // comment this out if you need color selection
// btn_Color->hide(); // comment this out if you need color selection
box_Example = new Preview_Box(5, 145, 390, 75, "abcdefghijk ABCDEFGHIJK\n0 1 2 3 4 5 6 7 8 9");
box_Example->box(FL_DOWN_BOX);

Wyświetl plik

@ -75,8 +75,9 @@ extern Fl_Check_Button *chkUSEMEMMAP;
extern Fl_Button *btnInit_Interface;
extern Fl_Group *tabQRZ;
extern Fl_Check_Button *btnQRZnotavailable;
extern Fl_Check_Button *btnQRZsocket;
extern Fl_Check_Button *btnQRZcdrom;
extern Fl_Input *txtQRZpathname;
extern Fl_Check_Button *btnQRZsocket;
extern Fl_Check_Button *btnHAMCALLsocket;
extern Fl_Input *inpQRZusername;
extern Fl_Input *inpQRZuserpassword;

Wyświetl plik

@ -125,8 +125,10 @@ struct configuration {
bool ID_SMALL;
bool macrotextid;
int QRZ;
string QRZpathname;
string QRZusername;
string QRZuserpassword;
bool QRZchanged;
// Rig Interface data
bool btnusb;
int btnPTTis;
@ -202,6 +204,11 @@ struct configuration {
int TxFontcolor;
RGBint RxColor;
RGBint TxColor;
int XMITcolor;
int CTRLcolor;
int SKIPcolor;
int ALTRcolor;
int WaterfallFontnbr;
int WaterfallFontsize;

Wyświetl plik

@ -207,6 +207,7 @@ class QRZ
int CompState( const char *, const char *, const char * );
int getQRZvalid();
void NewDBpath( const char * );
int FindRecord( char * );
int NextRecord();

Wyświetl plik

@ -43,6 +43,12 @@ Fl_Button *btnTextDefaults=(Fl_Button *)0;
Fl_Button *btnNoTextColor=(Fl_Button *)0;
Fl_Button *btnClrFntOK=(Fl_Button *)0;
Fl_Button *btnXMIT=(Fl_Button *)0;
Fl_Button *btnCTRL=(Fl_Button *)0;
Fl_Button *btnSKIP=(Fl_Button *)0;
Fl_Button *btnALTR=(Fl_Button *)0;
void selectColorsFonts()
{
if (!dlgColorFont)
@ -213,17 +219,25 @@ void cbRxFontBrowser(Font_Browser*, void* v)
Font_Browser *ft= (Font_Browser*)v;
Fl_Font fnt = ft->fontNumber();
int size = ft->fontSize();
Fl_Color color = ft->fontColor();
RxText->textfont(fnt);
RxText->textsize(size);
RxText->textcolor(color);
RxText->redraw();
progdefaults.RxFontnbr = (int)(fnt);
progdefaults.RxFontsize = size;
progdefaults.RxFontcolor = color;
progdefaults.changed = true;
ReceiveText->setFont(fnt);
ReceiveText->setFontSize(size);
ReceiveText->setFontColor((Fl_Color)progdefaults.RxFontcolor, FTextBase::NATTR);
ReceiveText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->redraw();
ft->hide();
@ -236,6 +250,7 @@ static void cb_btnRxFont(Fl_Button*, void*)
b = new Font_Browser;
b->fontNumber((Fl_Font)progdefaults.RxFontnbr);
b->fontSize(progdefaults.RxFontsize);
b->fontColor((Fl_Color)progdefaults.RxFontcolor);
}
b->callback((Fl_Callback*)cbRxFontBrowser, (void*)(b));
b->show();
@ -272,17 +287,25 @@ void cbTxFontBrowser(Font_Browser*, void* v)
Font_Browser *ft= (Font_Browser*)v;
Fl_Font fnt = ft->fontNumber();
int size = ft->fontSize();
Fl_Color color = ft->fontColor();
TxText->textfont(fnt);
TxText->textsize(size);
TxText->textcolor(color);
TxText->redraw();
progdefaults.TxFontnbr = (int)(fnt);
progdefaults.TxFontsize = size;
progdefaults.TxFontcolor = color;
progdefaults.changed = true;
TransmitText->setFont(fnt);
TransmitText->setFontSize(size);
TransmitText->setFontColor((Fl_Color)progdefaults.TxFontcolor, FTextBase::NATTR);
TransmitText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
TransmitText->redraw();
ft->hide();
@ -295,6 +318,7 @@ static void cb_btnTxFont(Fl_Button*, void*)
b = new Font_Browser;
b->fontNumber((Fl_Font)progdefaults.TxFontnbr);
b->fontSize(progdefaults.TxFontsize);
b->fontColor((Fl_Color)progdefaults.TxFontcolor);
}
b->callback((Fl_Callback*)cbTxFontBrowser, (void*)(b));
b->show();
@ -320,23 +344,55 @@ static void cb_btnNoTextColor(Fl_Button*, void*)
Fl_Color clr = FL_BACKGROUND2_COLOR;
Fl::get_color(clr, r, g, b);
RxText->color(clr);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->redraw();
TxText->color(clr);
TxText->redraw();
TransmitText->color(clr);
TransmitText->redraw();
progdefaults.TxFontcolor = FL_BLACK;
progdefaults.RxFontcolor = FL_BLACK;
progdefaults.XMITcolor = FL_RED;
progdefaults.CTRLcolor = FL_DARK_GREEN;
progdefaults.SKIPcolor = FL_BLUE;
progdefaults.ALTRcolor = FL_DARK_MAGENTA;
btnXMIT->color((Fl_Color)progdefaults.XMITcolor);
btnCTRL->color((Fl_Color)progdefaults.CTRLcolor);
btnSKIP->color((Fl_Color)progdefaults.SKIPcolor);
btnALTR->color((Fl_Color)progdefaults.ALTRcolor);
btnXMIT->redraw();
btnCTRL->redraw();
btnSKIP->redraw();
btnALTR->redraw();
progdefaults.RxColor.R = r;
progdefaults.RxColor.G = g;
progdefaults.RxColor.B = b;
clr = fl_rgb_color(r,g,b);
RxText->color(clr);
RxText->textcolor((Fl_Color)progdefaults.RxFontcolor);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->setFontColor((Fl_Color)progdefaults.RxFontcolor, FTextBase::NATTR);
ReceiveText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->redraw();
progdefaults.TxColor.R = r;
progdefaults.TxColor.G = g;
progdefaults.TxColor.B = b;
TxText->color(clr);
TxText->textcolor((Fl_Color)progdefaults.TxFontcolor);
TxText->redraw();
TransmitText->color(clr);
TransmitText->setFontColor((Fl_Color)progdefaults.TxFontcolor, FTextBase::NATTR);
TransmitText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
TransmitText->redraw();
progdefaults.changed = true;
}
@ -345,29 +401,97 @@ static void cb_btnTextDefaults(Fl_Button*, void*)
uchar r, g, b;
Fl_Color clr;
progdefaults.TxFontcolor = FL_BLACK;
progdefaults.RxFontcolor = FL_BLACK;
progdefaults.XMITcolor = FL_RED;
progdefaults.CTRLcolor = FL_DARK_GREEN;
progdefaults.SKIPcolor = FL_BLUE;
progdefaults.ALTRcolor = FL_DARK_MAGENTA;
btnXMIT->color((Fl_Color)progdefaults.XMITcolor);
btnCTRL->color((Fl_Color)progdefaults.CTRLcolor);
btnSKIP->color((Fl_Color)progdefaults.SKIPcolor);
btnALTR->color((Fl_Color)progdefaults.ALTRcolor);
btnXMIT->redraw();
btnCTRL->redraw();
btnSKIP->redraw();
btnALTR->redraw();
r = 255; g = 242; b = 190;
clr = fl_rgb_color(r,g,b);
RxText->color(clr);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->redraw();
progdefaults.RxColor.R = r;
progdefaults.RxColor.G = g;
progdefaults.RxColor.B = b;
r = 200; g = 235; b = 255;
clr = fl_rgb_color(r,g,b);
TxText->color(clr);
TxText->redraw();
TransmitText->color(clr);
TransmitText->redraw();
RxText->color(clr);
RxText->textcolor((Fl_Color)progdefaults.RxFontcolor);
RxText->redraw();
ReceiveText->color(clr);
ReceiveText->setFontColor((Fl_Color)progdefaults.RxFontcolor, FTextBase::NATTR);
ReceiveText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->redraw();
r = 200; g = 235; b = 255;
progdefaults.TxColor.R = r;
progdefaults.TxColor.G = g;
progdefaults.TxColor.B = b;
clr = fl_rgb_color(r,g,b);
TxText->color(clr);
TxText->textcolor((Fl_Color)progdefaults.TxFontcolor);
TxText->redraw();
TransmitText->color(clr);
TransmitText->setFontColor((Fl_Color)progdefaults.TxFontcolor, FTextBase::NATTR);
TransmitText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
TransmitText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
TransmitText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
TransmitText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
TransmitText->redraw();
progdefaults.changed = true;
}
void cb_XMITcolor(Fl_Widget *, void *)
{
progdefaults.XMITcolor = fl_show_colormap( (Fl_Color)progdefaults.XMITcolor );
btnXMIT->color( progdefaults.XMITcolor );
TransmitText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
ReceiveText->setFontColor((Fl_Color)progdefaults.XMITcolor, FTextBase::XMIT);
progdefaults.changed = true;
}
void cb_CTRLcolor(Fl_Widget *, void *)
{
progdefaults.CTRLcolor = fl_show_colormap( (Fl_Color)progdefaults.CTRLcolor );
btnCTRL->color( progdefaults.CTRLcolor );
TransmitText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
ReceiveText->setFontColor((Fl_Color)progdefaults.CTRLcolor, FTextBase::CTRL);
progdefaults.changed = true;
}
void cb_SKIPcolor(Fl_Widget *, void *)
{
progdefaults.SKIPcolor = fl_show_colormap( (Fl_Color)progdefaults.SKIPcolor );
btnSKIP->color( progdefaults.SKIPcolor );
TransmitText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
ReceiveText->setFontColor((Fl_Color)progdefaults.SKIPcolor, FTextBase::SKIP);
progdefaults.changed = true;
}
void cb_ALTRcolor(Fl_Widget *, void *)
{
progdefaults.ALTRcolor = fl_show_colormap( (Fl_Color)progdefaults.ALTRcolor );
btnALTR->color( progdefaults.ALTRcolor );
TransmitText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
ReceiveText->setFontColor((Fl_Color)progdefaults.ALTRcolor, FTextBase::ALTR);
progdefaults.changed = true;
}
static void cb_btnClrFntOK(Fl_Button*, void*)
{
cb_ColorFontOK();
@ -376,9 +500,9 @@ static void cb_btnClrFntOK(Fl_Button*, void*)
void make_colorsfonts()
{
Fl_Double_Window* w;
{ Fl_Double_Window* o = new Fl_Double_Window(370, 235, "Fldigi - Colors / Fonts");
{ Fl_Double_Window* o = new Fl_Double_Window(370, 275, "Fldigi - Colors / Fonts");
w = o;
{ Fl_Group* o = new Fl_Group(0, 5, 185, 200, "Function Keys");
{ Fl_Group* o = new Fl_Group(0, 5, 185, 240, "Function Keys");
o->box(FL_ENGRAVED_FRAME);
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
@ -446,7 +570,7 @@ void make_colorsfonts()
o->end();
}
{ Fl_Group* o = new Fl_Group(185, 5, 185, 200, "Text Controls");
{ Fl_Group* o = new Fl_Group(185, 5, 185, 240, "Text Controls");
o->box(FL_ENGRAVED_FRAME);
o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE);
@ -459,6 +583,7 @@ void make_colorsfonts()
progdefaults.RxColor.B));
RxText->textfont(progdefaults.RxFontnbr);
RxText->textsize(progdefaults.RxFontsize);
RxText->textcolor((Fl_Color)progdefaults.RxFontcolor);
TxText = new Fl_Multiline_Output(195, 103, 165, 37, "");
TxText->value("Transmit Text");
@ -469,6 +594,7 @@ void make_colorsfonts()
progdefaults.TxColor.B));
TxText->textfont(progdefaults.TxFontnbr);
TxText->textsize(progdefaults.TxFontsize);
TxText->textcolor((Fl_Color)progdefaults.TxFontcolor);
btnRxColor = new Fl_Button(200, 75, 70, 20, "Rx Bkgnd");
btnRxColor->callback((Fl_Callback*)cb_btnRxColor);
@ -482,16 +608,37 @@ void make_colorsfonts()
btnTxFont = new Fl_Button(285, 145, 70, 20, "Tx Font");
btnTxFont->callback((Fl_Callback*)cb_btnTxFont);
btnNoTextColor = new Fl_Button(200, 175, 70, 20, "No Color");
btnXMIT = new Fl_Button(190, 170, 40, 20, "");
btnXMIT->color((Fl_Color)progdefaults.XMITcolor);
btnXMIT->tooltip("Sent chars in Rx/Tx pane");
btnXMIT->callback((Fl_Callback*)cb_XMITcolor);
new Fl_Box(190, 190, 40, 20, "XMIT");
btnCTRL = new Fl_Button(235, 170, 40, 20, "");
btnCTRL->color((Fl_Color)progdefaults.CTRLcolor);
btnCTRL->tooltip("Control chars in Rx/Tx pane");
btnCTRL->callback((Fl_Callback*)cb_CTRLcolor);
new Fl_Box(235, 190, 40, 20, "CTRL");
btnSKIP = new Fl_Button(280, 170, 40, 20, "");
btnSKIP->color((Fl_Color)progdefaults.SKIPcolor);
btnSKIP->tooltip("Skipped chars in Rx/Tx pane, ie: Tx on/off");
btnSKIP->callback((Fl_Callback*)cb_SKIPcolor);
new Fl_Box(280, 190, 40, 20, "SKIP");
btnALTR = new Fl_Button(325, 170, 40, 20, "");
btnALTR->color((Fl_Color)progdefaults.ALTRcolor);
btnALTR->tooltip("Quick view chars in Rx pane");
btnALTR->callback((Fl_Callback*)cb_ALTRcolor);
new Fl_Box(325, 190, 40, 20, "ALTR");
btnNoTextColor = new Fl_Button(200, 212, 70, 20, "No Color");
btnNoTextColor->callback((Fl_Callback*)cb_btnNoTextColor);
btnTextDefaults = new Fl_Button(285, 175, 70, 20, "Defaults");
btnTextDefaults = new Fl_Button(285, 212, 70, 20, "Defaults");
btnTextDefaults->callback((Fl_Callback*)cb_btnTextDefaults);
o->end();
}
btnClrFntOK = new Fl_Button(295, 209, 72, 20, "OK");
btnClrFntOK = new Fl_Button(295, 250, 72, 20, "OK");
btnClrFntOK->callback((Fl_Callback*)cb_btnClrFntOK);
o->end();

Wyświetl plik

@ -132,8 +132,10 @@ configuration progdefaults = {
true, // bool ID_SMALL;
false, // bool macrotextid;
0, // int QRZ;
"", // string QRZpathname;
"", // string QRZusername;
"", // string QRZuserpassword;
false, // bool QRZchanged;
//
true, // bool btnusb;
0, // int btnPTTis
@ -219,6 +221,12 @@ configuration progdefaults = {
0, // int TxFontcolor
{ 255, 242, 190}, // RGBint RxColor;
{ 200, 235, 255}, // RGBint TxColor;
FL_RED, // int XMITcolor;
FL_DARK_GREEN, // int CTRLcolor;
FL_BLUE, // int SKIPcolor;
FL_DARK_MAGENTA,// int ALTRcolor;
FL_SCREEN, // int WaterfallFontnbr
12, // int WaterfallFontsize
@ -284,7 +292,7 @@ enum TAG { \
CCCOLORS,
BWTCOLORS,
VIEWXMTSIGNAL, SENDID, MACROID, SENDTEXTID, STRTEXTID, VIDEOWIDTH, IDSMALL,
QRZTYPE, QRZUSER, QRZPASSWORD,
QRZTYPE, QRZPATHNAME, QRZUSER, QRZPASSWORD,
BTNUSB, BTNPTTIS,
RTSPTT, DTRPTT, RTSPLUS, DTRPLUS,
CHOICEHAMLIBIS, CHKUSEMEMMAPIS,
@ -305,8 +313,8 @@ enum TAG { \
VIEWERCHANNELS, VIEWERSQUELCH, VIEWERTIMEOUT, WFAVERAGING,
USEGROUPCOLORS, FKEYGROUP1, FKEYGROUP2, FKEYGROUP3,
FKEYTEXTCOLOR,
RXFONTNBR, RXFONTSIZE, TXFONTNBR, TXFONTSIZE,
RXFONTCOLOR, TXFONTCOLOR,
RXFONTNBR, RXFONTSIZE, RXFNTCOLOR, TXFONTNBR, TXFONTSIZE, TXFNTCOLOR,
RXFONTCOLOR, TXFONTCOLOR, XMITCOLOR, CTRLCOLOR, SKIPCOLOR, ALTRCOLOR,
WATERFALLFONTNBR, WATERFALLFONTSIZE,
RSIDWIDESEARCH, TRANSMITRSID, SLOWCPU
};
@ -463,6 +471,7 @@ void configuration::writeDefaultsXML()
writeXMLint(f, "VIDEOWIDTH", videowidth);
writeXMLbool(f, "IDSMALL", ID_SMALL);
writeXMLint(f, "QRZTYPE", QRZ);
writeXMLstr(f, "QRZPATHNAME", QRZpathname);
writeXMLstr(f, "QRZUSER", QRZusername);
writeXMLstr(f, "QRZPASSWORD", QRZuserpassword);
writeXMLbool(f, "BTNUSB", btnusb);
@ -528,8 +537,15 @@ void configuration::writeDefaultsXML()
writeXMLint(f, "RXFONTNBR", RxFontnbr);
writeXMLint(f, "RXFONTSIZE", RxFontsize);
writeXMLint(f, "RXFNTCOLOR", RxFontcolor);
writeXMLint(f, "TXFONTNBR", TxFontnbr);
writeXMLint(f, "TXFONTSIZE", TxFontsize);
writeXMLint(f, "TXFNTCOLOR", TxFontcolor);
writeXMLint(f, "XMITCOLOR", XMITcolor);
writeXMLint(f, "CTRLCOLOR", CTRLcolor);
writeXMLint(f, "SKIPCOLOR", SKIPcolor);
writeXMLint(f, "ALTRCOLOR", ALTRcolor);
writeXMLrgb(f, "RXFONTCOLOR", RxColor.R, RxColor.G, RxColor.B);
writeXMLrgb(f, "TXFONTCOLOR", TxColor.R, TxColor.G, TxColor.B);
writeXMLint(f, "WATERFALLFONTNBR", WaterfallFontnbr);
@ -835,6 +851,9 @@ bool configuration::readDefaultsXML()
case QRZTYPE :
QRZ = atoi(xml->getNodeData());
break;
case QRZPATHNAME :
QRZpathname = xml->getNodeData();
break;
case QRZUSER :
QRZusername = xml->getNodeData();
break;
@ -1050,16 +1069,34 @@ bool configuration::readDefaultsXML()
case RXFONTSIZE :
RxFontsize = atoi(xml->getNodeData());
break;
case RXFNTCOLOR :
RxFontcolor = atoi(xml->getNodeData());
break;
case TXFONTNBR :
TxFontnbr = atoi(xml->getNodeData());
break;
case TXFONTSIZE :
TxFontsize = atoi(xml->getNodeData());
break;
case TXFNTCOLOR :
TxFontcolor = atoi(xml->getNodeData());
break;
case RXFONTCOLOR :
sscanf( xml->getNodeData(), "%d %d %d",
&RxColor.R, &RxColor.G, &RxColor.B);
break;
case XMITCOLOR :
XMITcolor = atoi(xml->getNodeData());
break;
case CTRLCOLOR :
CTRLcolor = atoi(xml->getNodeData());
break;
case SKIPCOLOR :
SKIPcolor = atoi(xml->getNodeData());
break;
case ALTRCOLOR :
ALTRcolor = atoi(xml->getNodeData());
break;
case WATERFALLFONTNBR :
WaterfallFontnbr = atoi(xml->getNodeData());
break;
@ -1175,6 +1212,7 @@ bool configuration::readDefaultsXML()
else if (!strcmp("VIDEOWIDTH", nodeName)) tag = VIDEOWIDTH;
else if (!strcmp("IDSMALL", nodeName)) tag = IDSMALL;
else if (!strcmp("QRZUSER", nodeName)) tag = QRZUSER;
else if (!strcmp("QRZPATHNAME", nodeName)) tag = QRZPATHNAME;
else if (!strcmp("QRZPASSWORD", nodeName)) tag = QRZPASSWORD;
else if (!strcmp("QRZTYPE", nodeName)) tag = QRZTYPE;
else if (!strcmp("BTNUSB", nodeName)) tag = BTNUSB;
@ -1241,10 +1279,16 @@ bool configuration::readDefaultsXML()
else if (!strcmp("FKEYTEXTCOLOR", nodeName)) tag = FKEYTEXTCOLOR;
else if (!strcmp("RXFONTNBR", nodeName)) tag = RXFONTNBR;
else if (!strcmp("RXFONTSIZE", nodeName)) tag = RXFONTSIZE;
else if (!strcmp("RXFNTCOLOR", nodeName)) tag = RXFNTCOLOR;
else if (!strcmp("TXFONTNBR", nodeName)) tag = TXFONTNBR;
else if (!strcmp("TXFONTSIZE", nodeName)) tag = TXFONTSIZE;
else if (!strcmp("TXFNTCOLOR", nodeName)) tag = TXFNTCOLOR;
else if (!strcmp("RXFONTCOLOR", nodeName)) tag = RXFONTCOLOR;
else if (!strcmp("TXFONTCOLOR", nodeName)) tag = TXFONTCOLOR;
else if (!strcmp("XMITCOLOR", nodeName)) tag = XMITCOLOR;
else if (!strcmp("CTRLCOLOR", nodeName)) tag = CTRLCOLOR;
else if (!strcmp("SKIPCOLOR", nodeName)) tag = SKIPCOLOR;
else if (!strcmp("ALTRCOLOR", nodeName)) tag = ALTRCOLOR;
else if (!strcmp("WATERFALLFONTNBR", nodeName)) tag = WATERFALLFONTNBR;
else if (!strcmp("WATERFALLFONTSIZE", nodeName)) tag = WATERFALLFONTSIZE;
else if (!strcmp("RSIDWIDESEARCH", nodeName)) tag = RSIDWIDESEARCH;
@ -1483,6 +1527,7 @@ int configuration::setDefaults() {
btnQRZcdrom->value(1);
else if (QRZ == 3)
btnHAMCALLsocket->value(1);
txtQRZpathname->value(QRZpathname.c_str());
btnRTTY_USB->value(RTTY_USB);
btnsendid->value(sendid);
@ -1491,12 +1536,6 @@ int configuration::setDefaults() {
FL_UNLOCK();
ReceiveText->setFont((Fl_Font)RxFontnbr);
ReceiveText->setFontSize(RxFontsize);
TransmitText->setFont((Fl_Font)TxFontnbr);
TransmitText->setFontSize(TxFontsize);
wf->setPrefilter(wfPreFilter);
valLatency->value(latency);

Wyświetl plik

@ -750,6 +750,10 @@ void CALLSIGNquery()
case 2 :
if (!qCall)
qCall = new QRZ( "callbkc" );
if (progdefaults.QRZchanged == true) {
qCall->NewDBpath("callbkc");
progdefaults.QRZchanged = false;
}
if (qCall && qCall->getQRZvalid())
QRZ_CD_query();
DB_query = NONE;

Wyświetl plik

@ -31,11 +31,14 @@
#include <stdlib.h>
# include <unistd.h>
# include <pwd.h>
#include <string>
#include <iostream>
using namespace std;
#include "qrzlib.h"
#include "configuration.h"
#include "debug.h"
static char QRZdir[256] = "";
@ -52,10 +55,6 @@ static const char *QRZtry[] = {
"/cdrom/callbk/",
"/mnt/cdrom/callbk/", "/mnt/cdrom0/callbk/", "/mnt/cdrom1/callbk/",
"/media/cdrom/callbk/", "/media/cdrom0/callbk/", "/media/cdrom1/callbk/",
"~/callbk/",
"/cdrom/callbk/",
"/mnt/cdrom/callbk/", "/mnt/cdrom0/callbk/", "/mnt/cdrom1/callbk/",
"/media/cdrom/callbk/", "/media/cdrom0/callbk/", "/media/cdrom1/callbk/",
#endif
0 };
@ -146,8 +145,38 @@ char *QRZImageFilename (char *call)
int checkPath( const char *filename )
{
char fname[80];
char fname[120];
FILE *f;
bool notfound = false;
if (!progdefaults.QRZpathname.empty()) {
strcpy ( fname, progdefaults.QRZpathname.c_str());
for (size_t i = 0; i < strlen(fname); i++)
if (fname[i] == '\\') fname[i] = '/'; // fix for DOS path convention
strcat( fname, filename );
strcat( fname, ".dat" );
if (fname[0] == '~' || fname[0] == '$') {
char f2name[80];
filename_expand(f2name, 79, fname);
strcpy (fname, f2name);
}
f = fopen(fname, "r" );
if( f != NULL ) {
fclose( f );
char pathname[120];
strcpy( pathname, progdefaults.QRZpathname.c_str());
if (pathname[0] == '~' || pathname[0] == '$')
filename_expand(QRZdir, 79, pathname);
else
strcpy (QRZdir, pathname);
return 1;
}
string err = fname;
err.append(" not found, performing search");
LOG_WARN(err.c_str());
notfound = true;
}
// not specified, perform a search
const char **pQRZpath = QRZtry;
while (*pQRZpath) {
strcpy( fname, *pQRZpath );
@ -166,11 +195,17 @@ int checkPath( const char *filename )
filename_expand(QRZdir, 79, QRZpath);
else
strcpy (QRZdir, QRZpath);
if (notfound) {
string err = "Using ";
err.append(fname);
LOG_WARN(err.c_str());
}
return 1;
}
pQRZpath++;
}
QRZpath = QRZtry[0];
LOG_WARN("QRZ data base not found");
return 0;
}
@ -303,6 +338,14 @@ QRZ::QRZ( const char *fname, char c )
OpenQRZFiles( fname );
}
void QRZ::NewDBpath( const char *fname )
{
int len = strlen(fname);
criteria = fname[ len - 1 ];
*QRZdir = 0;
OpenQRZFiles( fname );
}
QRZ::~QRZ()
{

Wyświetl plik

@ -77,10 +77,10 @@ int FTextBase::handle(int event)
if (event == FL_MOUSEWHEEL && !Fl::event_inside(this))
return 1;
if (event == FL_SHOW) {
reset_styles(SET_COLOR);
adjust_colours();
}
// if (event == FL_SHOW) {
// reset_styles(SET_COLOR);
// adjust_colours();
// }
return Fl_Text_Editor_mod::handle(event);
}