Aggiunta gestione caratteri fincatura
git-svn-id: svn://10.65.10.50/trunk@2182 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
199ef85a71
commit
0a20a1932e
@ -28,7 +28,8 @@ SUBMENU BAR_ITEM(5) "~Sfondo"
|
||||
MENU BAR_ITEM(1)
|
||||
ITEM MENU_ITEM(11) "~Relazione"
|
||||
ITEM MENU_ITEM(12) "~Parametri"
|
||||
ITEM MENU_ITEM(13) "~Cambia profilo..."
|
||||
ITEM MENU_ITEM(13) "Caratteri ~fincatura"
|
||||
ITEM MENU_ITEM(14) "~Cambia profilo"
|
||||
|
||||
MENU BAR_ITEM(2)
|
||||
ITEM MENU_ITEM(21) "~Normale"
|
||||
@ -84,6 +85,7 @@ MENU BAR_ITEM(1)
|
||||
MENU BAR_ITEM(1)
|
||||
ITEM MENU_ITEM(11) "~Relazione"
|
||||
ITEM MENU_ITEM(12) "~Parametri"
|
||||
ITEM MENU_ITEM(13) "Caratteri ~fincatura"
|
||||
|
||||
MENU BAR_ITEM(2)
|
||||
ITEM MENU_ITEM(21) "~Normale"
|
||||
|
176
ba/ba2100.cpp
176
ba/ba2100.cpp
@ -1,5 +1,157 @@
|
||||
#include "baformed.h"
|
||||
#include "ba2100.h"
|
||||
#include "ba2100.h"
|
||||
#include <colors.h>
|
||||
// -----------------------------------------------------------------
|
||||
// maschera per le finkature
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
#include "ba21fn.h"
|
||||
|
||||
class TFink_mask : public TMask
|
||||
{
|
||||
TToken_string _chars;
|
||||
|
||||
enum pos { // posizioni scatoletta
|
||||
xl = 1,
|
||||
xm = 15,
|
||||
xr = 29,
|
||||
yt = 1,
|
||||
ym = 5,
|
||||
yb = 9,
|
||||
ofs = 36
|
||||
};
|
||||
|
||||
protected:
|
||||
|
||||
void paint_example();
|
||||
|
||||
virtual void handler(WINDOW win, EVENT* ep);
|
||||
static bool char_handler(TMask_field& f, KEY k);
|
||||
virtual void start_run();
|
||||
virtual bool stop_run(KEY k);
|
||||
virtual PNT log2dev(long x, long y) const;
|
||||
|
||||
public:
|
||||
|
||||
TToken_string& get_chars() { return _chars; }
|
||||
|
||||
TFink_mask(const char* def) : TMask("ba21fn"), _chars(def,',')
|
||||
{
|
||||
set_handler(C_TR, char_handler);
|
||||
set_handler(C_TL, char_handler);
|
||||
set_handler(C_TM, char_handler);
|
||||
set_handler(C_BR, char_handler);
|
||||
set_handler(C_BL, char_handler);
|
||||
set_handler(C_BM, char_handler);
|
||||
set_handler(C_CM, char_handler);
|
||||
set_handler(C_CR, char_handler);
|
||||
set_handler(C_CL, char_handler);
|
||||
set_handler(C_HR, char_handler);
|
||||
set_handler(C_VR, char_handler);
|
||||
}
|
||||
virtual ~TFink_mask() {}
|
||||
};
|
||||
|
||||
PNT TFink_mask::log2dev(long x, long y) const
|
||||
{
|
||||
PNT p;
|
||||
p.h = ((short)x+1)*CHARX;
|
||||
p.v = (short)y*ROWY;
|
||||
return p;
|
||||
}
|
||||
|
||||
void TFink_mask::handler(WINDOW win, EVENT* ep)
|
||||
{
|
||||
TMask::handler(win, ep);
|
||||
if (ep->type == E_UPDATE)
|
||||
{
|
||||
// pittura le righette
|
||||
rect(xl, yt, xr+1, yb+1);
|
||||
line(xl, ym, xr, ym);
|
||||
line(xm, yt, xm, yb);
|
||||
paint_example();
|
||||
}
|
||||
}
|
||||
|
||||
void TFink_mask::paint_example()
|
||||
{
|
||||
// pittura un'immaginetta finculata
|
||||
// on the right of the mask
|
||||
TString line(xr);
|
||||
set_font(XVT_FFN_COURIER);
|
||||
set_color(MASK_DARK_COLOR,MASK_BACK_COLOR);
|
||||
set_opaque_text(TRUE);
|
||||
|
||||
for (int i = yt; i <= yb; i++)
|
||||
{
|
||||
line.spaces();
|
||||
if (i == yt)
|
||||
{
|
||||
line.fill(_chars.get_char(9));
|
||||
line[xl-1] = _chars.get_char(0);
|
||||
line[xm-1] = _chars.get_char(1);
|
||||
line[xr-1] = _chars.get_char(2);
|
||||
}
|
||||
else if (i == ym)
|
||||
{
|
||||
line.fill(_chars.get_char(9));
|
||||
line[xl-1] = _chars.get_char(6);
|
||||
line[xm-1] = _chars.get_char(7);
|
||||
line[xr-1] = _chars.get_char(8);
|
||||
}
|
||||
else if (i == yb)
|
||||
{
|
||||
line.fill(_chars.get_char(9));
|
||||
line[xl-1] = _chars.get_char(3);
|
||||
line[xm-1] = _chars.get_char(4);
|
||||
line[xr-1] = _chars.get_char(5);
|
||||
}
|
||||
else
|
||||
{
|
||||
line[xl-1] = _chars.get_char(10);
|
||||
line[xm-1] = _chars.get_char(10);
|
||||
line[xr-1] = _chars.get_char(10);
|
||||
}
|
||||
stringat(ofs, i, line);
|
||||
}
|
||||
}
|
||||
|
||||
void TFink_mask::start_run()
|
||||
{
|
||||
TMask::start_run();
|
||||
for (int i = 101; i <= 111; i++)
|
||||
{
|
||||
field(i).allow_pipe(); // allowa la pipa, se no son cazzi
|
||||
field(i).set(_chars.get(i - 101));
|
||||
}
|
||||
}
|
||||
|
||||
bool TFink_mask::stop_run(KEY k)
|
||||
{
|
||||
if (k == K_ENTER)
|
||||
{
|
||||
for (int i = 101; i <= 111; i++)
|
||||
_chars.add(field(i).get(), i-101);
|
||||
}
|
||||
return TMask::stop_run(k);
|
||||
}
|
||||
|
||||
bool TFink_mask::char_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (f.focusdirty() && k == K_TAB)
|
||||
{
|
||||
TFink_mask& m = (TFink_mask&)f.mask();
|
||||
TToken_string& ch = m.get_chars();
|
||||
ch.add(f.get(), f.dlg() - 101);
|
||||
m.paint_example();
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
// -----------------------------------------------------------------
|
||||
// form editor
|
||||
// -----------------------------------------------------------------
|
||||
|
||||
|
||||
TForm_editor::TForm_editor() : _form(NULL), _extra(FALSE), _m(NULL)
|
||||
@ -37,7 +189,7 @@ bool TForm_editor::create()
|
||||
if (!_extra) dispatch_e_menu(MENU_ITEM(13));
|
||||
}
|
||||
else
|
||||
dispatch_e_menu(MENU_ITEM(13));
|
||||
dispatch_e_menu(MENU_ITEM(14));
|
||||
|
||||
_m = new TMask("ba2100b");
|
||||
if (form)
|
||||
@ -70,8 +222,10 @@ bool TForm_editor::menu(MENU_TAG tag)
|
||||
case MENU_ITEM(11):
|
||||
sec = 'R'; pt = odd_page; break;
|
||||
case MENU_ITEM(12):
|
||||
sec = 'D'; pt = odd_page; break;
|
||||
sec = 'D'; pt = odd_page; break;
|
||||
case MENU_ITEM(13):
|
||||
sec = 'K'; break;
|
||||
case MENU_ITEM(14):
|
||||
quit = ask_profile();
|
||||
sec = 'B'; pt = odd_page; break;
|
||||
case MENU_ITEM(21):
|
||||
@ -153,6 +307,19 @@ bool TForm_editor::cod_handler(TMask_field& f, KEY k)
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TForm_editor::edit_fincatura()
|
||||
{
|
||||
TFink_mask m(_form->get_fincatura());
|
||||
bool dirty = FALSE;
|
||||
|
||||
if (m.run() == K_ENTER)
|
||||
{
|
||||
_form->set_fincatura(m.get_chars());
|
||||
dirty = TRUE;
|
||||
}
|
||||
return dirty;
|
||||
}
|
||||
|
||||
bool TForm_editor::edit_relation()
|
||||
{
|
||||
TMask m("ba2100r");
|
||||
@ -228,6 +395,9 @@ bool TForm_editor::edit(char s, pagetype t)
|
||||
else
|
||||
if (s == 'D')
|
||||
form_config();
|
||||
else
|
||||
if (s == 'K')
|
||||
dirty = edit_fincatura();
|
||||
else
|
||||
{
|
||||
TString80 caption;
|
||||
|
11
ba/ba21fn.h
Executable file
11
ba/ba21fn.h
Executable file
@ -0,0 +1,11 @@
|
||||
#define C_TL 101
|
||||
#define C_TM 102
|
||||
#define C_TR 103
|
||||
#define C_BL 104
|
||||
#define C_BM 105
|
||||
#define C_BR 106
|
||||
#define C_CL 107
|
||||
#define C_CM 108
|
||||
#define C_CR 109
|
||||
#define C_HR 110
|
||||
#define C_VR 111
|
82
ba/ba21fn.uml
Executable file
82
ba/ba21fn.uml
Executable file
@ -0,0 +1,82 @@
|
||||
#include "ba21fn.h"
|
||||
|
||||
PAGE "Caratteri per fincatura" -1 -1 77 14
|
||||
|
||||
STRING C_TL 1
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_TM 1
|
||||
BEGIN
|
||||
PROMPT 15 1 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_TR 1
|
||||
BEGIN
|
||||
PROMPT 29 1 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_BL 1
|
||||
BEGIN
|
||||
PROMPT 1 9 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_BM 1
|
||||
BEGIN
|
||||
PROMPT 15 9 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_BR 1
|
||||
BEGIN
|
||||
PROMPT 29 9 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_CL 1
|
||||
BEGIN
|
||||
PROMPT 1 5 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_CM 1
|
||||
BEGIN
|
||||
PROMPT 15 5 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_CR 1
|
||||
BEGIN
|
||||
PROMPT 29 5 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_HR 1
|
||||
BEGIN
|
||||
PROMPT 8 1 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
STRING C_VR 1
|
||||
BEGIN
|
||||
PROMPT 1 3 ""
|
||||
HELP ""
|
||||
END
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -12 -1 ""
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -22 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
ENDMASK
|
@ -26,6 +26,7 @@ protected:
|
||||
void set_form(TForm * f) { _form = f; }
|
||||
bool ask_profile();
|
||||
bool edit_relation();
|
||||
bool edit_fincatura();
|
||||
bool edit(char s, pagetype p);
|
||||
bool form_config() const;
|
||||
public:
|
||||
|
Loading…
x
Reference in New Issue
Block a user