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
|
||||
PROMPT 1 1 "Colori"
|
||||
ITEM "Colore@32"
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
@ -13,46 +11,20 @@ TOOLBAR "topbar" 0 0 0 2
|
||||
|
||||
BUTTON DLG_OK 10 2
|
||||
BEGIN
|
||||
PROMPT -33 -1 ""
|
||||
PROMPT 1 -1 ""
|
||||
END
|
||||
|
||||
BUTTON 102 10 2
|
||||
BUTTON DLG_DELREC 10 2
|
||||
BEGIN
|
||||
PROMPT -13 -1 "A~zzera"
|
||||
PICTURE TOOL_DELREC
|
||||
PROMPT 2 -1 "A~zzera"
|
||||
END
|
||||
|
||||
BUTTON DLG_CANCEL 10 2
|
||||
BEGIN
|
||||
PROMPT -23 -1 ""
|
||||
PROMPT 3 -1 ""
|
||||
END
|
||||
|
||||
ENDPAGE
|
||||
|
||||
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
|
||||
|
222
cg/cg2106.cpp
222
cg/cg2106.cpp
@ -1,7 +1,10 @@
|
||||
#include <automask.h>
|
||||
#include <colors.h>
|
||||
#include <execp.h>
|
||||
#include <modaut.h>
|
||||
#include <treectrl.h>
|
||||
#include <utility.h>
|
||||
#include <defmask.h>
|
||||
#include <varmask.h>
|
||||
|
||||
#include "cg2100.h"
|
||||
@ -11,142 +14,56 @@
|
||||
// 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;
|
||||
HIDDEN TMask* get_mask(int, TMask&) { return _sheet_mask; }
|
||||
const char* const _tipi;
|
||||
|
||||
protected:
|
||||
static bool color_handler(TMask_field& f, KEY k);
|
||||
static bool reset_handler(TMask_field& f, KEY k);
|
||||
TProp_field& props() { return (TProp_field&)field(DLG_USER); }
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
void load_props();
|
||||
void reset_props();
|
||||
void save_props();
|
||||
|
||||
public:
|
||||
void get_cur_colors(COLOR& back, COLOR& fore) const;
|
||||
void set_cur_colors(COLOR back, COLOR fore);
|
||||
|
||||
TColor_mask();
|
||||
virtual ~TColor_mask();
|
||||
};
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// TRow_mask
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
TRow_mask* TColor_mask::_sheet_mask = NULL;
|
||||
|
||||
TRow_mask::TRow_mask()
|
||||
: TMask("cg2100k", 1)
|
||||
{ }
|
||||
|
||||
void TRow_mask::update()
|
||||
bool TColor_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||
{
|
||||
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);
|
||||
TToken_string& row = s.row(s.selected());
|
||||
const char tipo = row[5];
|
||||
app().type2colors(tipo, back, fore);
|
||||
}
|
||||
|
||||
void TColor_mask::set_cur_colors(COLOR back, COLOR fore)
|
||||
{
|
||||
TSheet_field& s = (TSheet_field&)fld(0);
|
||||
int cur = s.selected();
|
||||
TToken_string& row = s.row(cur);
|
||||
const char tipo = row[5];
|
||||
app().set_type_colors(tipo, back, fore);
|
||||
s.set_back_and_fore_color(back, fore, cur);
|
||||
s.force_update(cur);
|
||||
}
|
||||
|
||||
bool TColor_mask::color_handler(TMask_field& f, KEY k)
|
||||
{
|
||||
if (k == K_SPACE)
|
||||
switch (o.dlg())
|
||||
{
|
||||
TMask& m = f.mask();
|
||||
TColor_mask& cm = (TColor_mask&)m.get_sheet()->mask();
|
||||
|
||||
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)
|
||||
case DLG_DELREC:
|
||||
if (e == fe_button)
|
||||
{
|
||||
if (use_back)
|
||||
back = col;
|
||||
else
|
||||
fore = col;
|
||||
cm.set_cur_colors(back, fore);
|
||||
cm._sheet_mask->update();
|
||||
m.set_focus();
|
||||
reset_props();
|
||||
return false; // Evita chiusura maschera
|
||||
}
|
||||
break;
|
||||
case DLG_USER:
|
||||
switch (e)
|
||||
{
|
||||
case fe_init:
|
||||
xvt_vobj_maximize(props().win().win());
|
||||
load_props();
|
||||
break;
|
||||
case fe_close:
|
||||
save_props();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
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[] =
|
||||
{
|
||||
TR("Tot. doc./sdo partite"),
|
||||
TR("Totale documento/saldo partite"),
|
||||
TR("Ritenute fiscali"),
|
||||
TR("Ritenute sociali"),
|
||||
TR("Generata (Imponibile)"),
|
||||
@ -163,24 +80,63 @@ TColor_mask::TColor_mask()
|
||||
};
|
||||
|
||||
TPrimanota_application& a = app();
|
||||
TProp_field& ps = props();
|
||||
ps.freeze(true);
|
||||
|
||||
int row = 0, d = 0;
|
||||
COLOR back, fore;
|
||||
for (const char* c = tipi; *c; c++, d++)
|
||||
int d = 0;
|
||||
char prop[4] = "T_B";
|
||||
for (const char* k = _tipi; *k; k++, d++)
|
||||
{
|
||||
a.type2colors(*c, back, fore);
|
||||
TToken_string& riga = s.row(-1);
|
||||
riga << TR("Riga ") << *c << " - " << desc[d];
|
||||
s.set_back_and_fore_color(back, fore, row++);
|
||||
COLOR back, fore;
|
||||
a.type2colors(*k, back, fore);
|
||||
|
||||
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()
|
||||
{
|
||||
delete _sheet_mask;
|
||||
_sheet_mask = NULL;
|
||||
}
|
||||
|
||||
TColor_mask::TColor_mask() : TAutomask("cg2100k"), _tipi("TFSIDNAPRCGLKX")
|
||||
{ }
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Gestione righe colorate
|
||||
@ -214,9 +170,9 @@ void TPrimanota_application::save_colors()
|
||||
|
||||
bool should_delete = FALSE;
|
||||
if (tmp[5] == 'B')
|
||||
should_delete = (col == NORMAL_BACK_COLOR);
|
||||
should_delete = same_color(col, NORMAL_BACK_COLOR);
|
||||
else
|
||||
should_delete = (col == NORMAL_COLOR);
|
||||
should_delete = same_color(col, NORMAL_COLOR);
|
||||
|
||||
if (should_delete)
|
||||
conf.remove(tmp);
|
||||
|
Loading…
x
Reference in New Issue
Block a user