Patch level : 10.0 260
Files correlati : bcg2.exe cg2100k.msk Ricompilazione Demo : [ ] Commento : Aggiunto supporto per le Property Grid git-svn-id: svn://10.65.10.50/trunk@18533 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
781b7bda8a
commit
51ed2733f0
@ -1,10 +1,8 @@
|
|||||||
PAGE "Colori delle righe di prima nota" -1 -1 42 15
|
PAGE "Colori delle righe di prima nota" -1 -1 42 16
|
||||||
|
|
||||||
SPREADSHEET 101 -1 -3
|
PROPERTIES DLG_USER -1 12
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 1 "Colori"
|
PROMPT 1 1 "Colori"
|
||||||
ITEM "Colore@32"
|
|
||||||
FLAGS "D"
|
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
@ -13,46 +11,20 @@ TOOLBAR "topbar" 0 0 0 2
|
|||||||
|
|
||||||
BUTTON DLG_OK 10 2
|
BUTTON DLG_OK 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -33 -1 ""
|
PROMPT 1 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON 102 10 2
|
BUTTON DLG_DELREC 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -13 -1 "A~zzera"
|
PROMPT 2 -1 "A~zzera"
|
||||||
PICTURE TOOL_DELREC
|
|
||||||
END
|
END
|
||||||
|
|
||||||
BUTTON DLG_CANCEL 10 2
|
BUTTON DLG_CANCEL 10 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT -23 -1 ""
|
PROMPT 3 -1 ""
|
||||||
END
|
END
|
||||||
|
|
||||||
ENDPAGE
|
ENDPAGE
|
||||||
|
|
||||||
ENDMASK
|
ENDMASK
|
||||||
|
|
||||||
PAGE "Colore" -1 -1 40 10
|
|
||||||
|
|
||||||
STRING 101 32
|
|
||||||
BEGIN
|
|
||||||
PROMPT 1 1 "Tipo "
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON 100 14 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 2 5 "~Sfondo"
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON 99 14 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT 22 5 "~Testo"
|
|
||||||
END
|
|
||||||
|
|
||||||
BUTTON DLG_OK 14 2
|
|
||||||
BEGIN
|
|
||||||
PROMPT -11 -1 ""
|
|
||||||
END
|
|
||||||
|
|
||||||
ENDPAGE
|
|
||||||
|
|
||||||
ENDMASK
|
|
||||||
|
230
cg/cg2106.cpp
230
cg/cg2106.cpp
@ -1,7 +1,10 @@
|
|||||||
|
#include <automask.h>
|
||||||
#include <colors.h>
|
#include <colors.h>
|
||||||
#include <execp.h>
|
#include <execp.h>
|
||||||
#include <modaut.h>
|
#include <modaut.h>
|
||||||
|
#include <treectrl.h>
|
||||||
#include <utility.h>
|
#include <utility.h>
|
||||||
|
#include <defmask.h>
|
||||||
#include <varmask.h>
|
#include <varmask.h>
|
||||||
|
|
||||||
#include "cg2100.h"
|
#include "cg2100.h"
|
||||||
@ -11,142 +14,56 @@
|
|||||||
// Maschere per colori
|
// Maschere per colori
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
class TRow_mask : public TMask
|
class TColor_mask : public TAutomask
|
||||||
{
|
|
||||||
public:
|
|
||||||
virtual void update();
|
|
||||||
|
|
||||||
TRow_mask();
|
|
||||||
virtual ~TRow_mask() { }
|
|
||||||
};
|
|
||||||
|
|
||||||
class TColor_mask : public TVariable_mask
|
|
||||||
{
|
{
|
||||||
HIDDEN TRow_mask* _sheet_mask;
|
const char* const _tipi;
|
||||||
HIDDEN TMask* get_mask(int, TMask&) { return _sheet_mask; }
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
static bool color_handler(TMask_field& f, KEY k);
|
TProp_field& props() { return (TProp_field&)field(DLG_USER); }
|
||||||
static bool reset_handler(TMask_field& f, KEY k);
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
void load_props();
|
||||||
public:
|
void reset_props();
|
||||||
void get_cur_colors(COLOR& back, COLOR& fore) const;
|
void save_props();
|
||||||
void set_cur_colors(COLOR back, COLOR fore);
|
|
||||||
|
|
||||||
|
public:
|
||||||
TColor_mask();
|
TColor_mask();
|
||||||
virtual ~TColor_mask();
|
|
||||||
};
|
};
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
bool TColor_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
// TRow_mask
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
TRow_mask* TColor_mask::_sheet_mask = NULL;
|
|
||||||
|
|
||||||
TRow_mask::TRow_mask()
|
|
||||||
: TMask("cg2100k", 1)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void TRow_mask::update()
|
|
||||||
{
|
|
||||||
TSheet_field* s = get_sheet();
|
|
||||||
TColor_mask& m = (TColor_mask&)s->mask();
|
|
||||||
COLOR back, fore;
|
|
||||||
m.get_cur_colors(back, fore);
|
|
||||||
|
|
||||||
_pixmap = TRUE;
|
|
||||||
set_pen(COLOR_BLACK);
|
|
||||||
|
|
||||||
RCT rct; field(100).get_rect(rct);
|
|
||||||
set_brush(back);
|
|
||||||
frame(rct.left, 2*rct.top - rct.bottom - CHARY/2, rct.right, rct.top - CHARY/2, 0);
|
|
||||||
|
|
||||||
field(99).get_rect(rct);
|
|
||||||
set_brush(fore);
|
|
||||||
frame(rct.left, 2*rct.top - rct.bottom - CHARY/2, rct.right, rct.top - CHARY/2, 0);
|
|
||||||
|
|
||||||
_pixmap = FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
// TColor_mask
|
|
||||||
///////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
void TColor_mask::get_cur_colors(COLOR& back, COLOR& fore) const
|
|
||||||
{
|
{
|
||||||
TSheet_field& s = (TSheet_field&)fld(0);
|
switch (o.dlg())
|
||||||
TToken_string& row = s.row(s.selected());
|
{
|
||||||
const char tipo = row[5];
|
case DLG_DELREC:
|
||||||
app().type2colors(tipo, back, fore);
|
if (e == fe_button)
|
||||||
}
|
{
|
||||||
|
reset_props();
|
||||||
void TColor_mask::set_cur_colors(COLOR back, COLOR fore)
|
return false; // Evita chiusura maschera
|
||||||
{
|
}
|
||||||
TSheet_field& s = (TSheet_field&)fld(0);
|
break;
|
||||||
int cur = s.selected();
|
case DLG_USER:
|
||||||
TToken_string& row = s.row(cur);
|
switch (e)
|
||||||
const char tipo = row[5];
|
{
|
||||||
app().set_type_colors(tipo, back, fore);
|
case fe_init:
|
||||||
s.set_back_and_fore_color(back, fore, cur);
|
xvt_vobj_maximize(props().win().win());
|
||||||
s.force_update(cur);
|
load_props();
|
||||||
}
|
break;
|
||||||
|
case fe_close:
|
||||||
bool TColor_mask::color_handler(TMask_field& f, KEY k)
|
save_props();
|
||||||
{
|
break;
|
||||||
if (k == K_SPACE)
|
default:
|
||||||
{
|
break;
|
||||||
TMask& m = f.mask();
|
}
|
||||||
TColor_mask& cm = (TColor_mask&)m.get_sheet()->mask();
|
break;
|
||||||
|
default: break;
|
||||||
COLOR back, fore;
|
|
||||||
cm.get_cur_colors(back, fore);
|
|
||||||
const bool use_back = f.dlg() == 100;
|
|
||||||
|
|
||||||
const COLOR col = choose_color(use_back ? back : fore, m.win());
|
|
||||||
if (col != COLOR_INVALID)
|
|
||||||
{
|
|
||||||
if (use_back)
|
|
||||||
back = col;
|
|
||||||
else
|
|
||||||
fore = col;
|
|
||||||
cm.set_cur_colors(back, fore);
|
|
||||||
cm._sheet_mask->update();
|
|
||||||
m.set_focus();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TColor_mask::reset_handler(TMask_field& f, KEY k)
|
void TColor_mask::load_props()
|
||||||
{
|
{
|
||||||
if (k == K_SPACE && f.yesno_box(TR("Si desidera azzerare tutti i colori?")))
|
|
||||||
{
|
|
||||||
app().reset_colors();
|
|
||||||
TSheet_field& s = (TSheet_field&)f.mask().fld(0);
|
|
||||||
s.set_back_and_fore_color(COLOR_INVALID, COLOR_INVALID, -1);
|
|
||||||
s.force_update();
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
TColor_mask::TColor_mask()
|
|
||||||
: TVariable_mask("cg2100k")
|
|
||||||
{
|
|
||||||
set_handler(102, reset_handler);
|
|
||||||
|
|
||||||
CHECK(_sheet_mask == NULL, "One color at time, please");
|
|
||||||
_sheet_mask = new TRow_mask;
|
|
||||||
_sheet_mask->set_handler(99, color_handler);
|
|
||||||
_sheet_mask->set_handler(100, color_handler);
|
|
||||||
|
|
||||||
TVariable_sheet_field& s = (TVariable_sheet_field&)fld(0);
|
|
||||||
s.set_getmask(get_mask);
|
|
||||||
|
|
||||||
const char* const tipi = "TFSIDNAPRCGLKX";
|
|
||||||
const char* const desc[] =
|
const char* const desc[] =
|
||||||
{
|
{
|
||||||
TR("Tot. doc./sdo partite"),
|
TR("Totale documento/saldo partite"),
|
||||||
TR("Ritenute fiscali"),
|
TR("Ritenute fiscali"),
|
||||||
TR("Ritenute sociali"),
|
TR("Ritenute sociali"),
|
||||||
TR("Generata (Imponibile)"),
|
TR("Generata (Imponibile)"),
|
||||||
@ -163,24 +80,63 @@ TColor_mask::TColor_mask()
|
|||||||
};
|
};
|
||||||
|
|
||||||
TPrimanota_application& a = app();
|
TPrimanota_application& a = app();
|
||||||
|
TProp_field& ps = props();
|
||||||
|
ps.freeze(true);
|
||||||
|
|
||||||
int row = 0, d = 0;
|
int d = 0;
|
||||||
COLOR back, fore;
|
char prop[4] = "T_B";
|
||||||
for (const char* c = tipi; *c; c++, d++)
|
for (const char* k = _tipi; *k; k++, d++)
|
||||||
{
|
{
|
||||||
a.type2colors(*c, back, fore);
|
COLOR back, fore;
|
||||||
TToken_string& riga = s.row(-1);
|
a.type2colors(*k, back, fore);
|
||||||
riga << TR("Riga ") << *c << " - " << desc[d];
|
|
||||||
s.set_back_and_fore_color(back, fore, row++);
|
prop[0] = *k; prop[1] = '\0';
|
||||||
|
ps.set_property(prop, (const char*)NULL, desc[d]);
|
||||||
|
|
||||||
|
prop[0] = *k; prop[1] = '_'; prop[2] = 'B';
|
||||||
|
ps.set_property(prop, back, TR("Sfondo"));
|
||||||
|
|
||||||
|
prop[2] = 'F';
|
||||||
|
ps.set_property(prop, fore, TR("Testo"));
|
||||||
|
}
|
||||||
|
ps.freeze(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TColor_mask::reset_props()
|
||||||
|
{
|
||||||
|
TProp_field& ps = props();
|
||||||
|
ps.freeze(true);
|
||||||
|
char prop[4] = "T_B";
|
||||||
|
for (const char* k = _tipi; *k; k++)
|
||||||
|
{
|
||||||
|
prop[0] = *k;
|
||||||
|
prop[2] = 'B';
|
||||||
|
ps.set_property(prop, NORMAL_BACK_COLOR);
|
||||||
|
prop[2] = 'F';
|
||||||
|
ps.set_property(prop, NORMAL_COLOR);
|
||||||
|
}
|
||||||
|
ps.freeze(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TColor_mask::save_props()
|
||||||
|
{
|
||||||
|
TPrimanota_application& a = app();
|
||||||
|
TProp_field& ps = props();
|
||||||
|
|
||||||
|
char prop[4] = "T_B";
|
||||||
|
for (const char* k = _tipi; *k; k++)
|
||||||
|
{
|
||||||
|
prop[0] = *k;
|
||||||
|
prop[2] = 'B';
|
||||||
|
const COLOR back = ps.get_color_property(prop);
|
||||||
|
prop[2] = 'F';
|
||||||
|
const COLOR fore = ps.get_color_property(prop);
|
||||||
|
a.set_type_colors(*k, back, fore);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
TColor_mask::~TColor_mask()
|
TColor_mask::TColor_mask() : TAutomask("cg2100k"), _tipi("TFSIDNAPRCGLKX")
|
||||||
{
|
{ }
|
||||||
delete _sheet_mask;
|
|
||||||
_sheet_mask = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Gestione righe colorate
|
// Gestione righe colorate
|
||||||
@ -214,9 +170,9 @@ void TPrimanota_application::save_colors()
|
|||||||
|
|
||||||
bool should_delete = FALSE;
|
bool should_delete = FALSE;
|
||||||
if (tmp[5] == 'B')
|
if (tmp[5] == 'B')
|
||||||
should_delete = (col == NORMAL_BACK_COLOR);
|
should_delete = same_color(col, NORMAL_BACK_COLOR);
|
||||||
else
|
else
|
||||||
should_delete = (col == NORMAL_COLOR);
|
should_delete = same_color(col, NORMAL_COLOR);
|
||||||
|
|
||||||
if (should_delete)
|
if (should_delete)
|
||||||
conf.remove(tmp);
|
conf.remove(tmp);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user