Patch level : 2.1 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Corretta duplicazione campi git-svn-id: svn://10.65.10.50/trunk@12182 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
dcd927717e
commit
3c0c826b57
@ -511,8 +511,10 @@ void TReport_window::snap(TRectangle& rct, bool shift) const
|
||||
#define POPUP_CLEAR 20887
|
||||
#define POPUP_ZOOMIN 20888
|
||||
#define POPUP_ZOOMOUT 20889
|
||||
#define POPUP_PROPERTIES 20890
|
||||
#define POPUP_NEWFIELD 20891
|
||||
#define POPUP_SELALL 20890
|
||||
#define POPUP_UNSELALL 20891
|
||||
#define POPUP_PROPERTIES 20892
|
||||
#define POPUP_NEWFIELD 20893
|
||||
|
||||
bool TReport_window::on_key(KEY k)
|
||||
{
|
||||
@ -585,21 +587,25 @@ void TReport_window::popup_menu()
|
||||
MENU_ITEM menu[16]; // Stiamo larghi
|
||||
memset(menu, 0, sizeof(menu));
|
||||
|
||||
TRectangle rct;
|
||||
const bool sel = get_selection_rect(rct) != 0;
|
||||
TRectangle rct;
|
||||
const bool ful = curr_section().items() > 0;
|
||||
const bool sel = ful && get_selection_rect(rct) != 0;
|
||||
const bool clp = _clipboard.items() > 0;
|
||||
|
||||
menu[0].tag = POPUP_CUT; menu[0].text = (char*)TR("Taglia"); menu[0].enabled = sel;
|
||||
menu[1].tag = POPUP_COPY; menu[1].text = (char*)TR("Copia"); menu[1].enabled = sel;
|
||||
menu[2].tag = POPUP_PASTE; menu[2].text = (char*)TR("Incolla"); menu[2].enabled = clp;
|
||||
menu[3].tag = POPUP_DUP; menu[3].text = (char*)TR("Duplica"); menu[3].enabled = sel;
|
||||
menu[4].tag = POPUP_CLEAR; menu[4].text = (char*)TR("Cancella"); menu[4].enabled = sel;
|
||||
menu[5].tag = -1; menu[5].separator = true;
|
||||
menu[6].tag = POPUP_ZOOMIN; menu[6].text = (char*)TR("Zoom +"); menu[6].enabled = _dpi.v < 300;
|
||||
menu[7].tag = POPUP_ZOOMOUT; menu[7].text = (char*)TR("Zoom -"); menu[7].enabled = _dpi.v > 48;
|
||||
menu[8].tag = -1; menu[8].separator = true;
|
||||
menu[9].tag = POPUP_PROPERTIES; menu[9].text = "Proprieta'"; menu[9].enabled = true;
|
||||
menu[10].tag = POPUP_NEWFIELD; menu[10].text = "Nuovo"; menu[10].enabled = true;
|
||||
menu[ 0].tag = POPUP_CUT; menu[ 0].text = (char*)TR("Taglia"); menu[0].enabled = sel;
|
||||
menu[ 1].tag = POPUP_COPY; menu[ 1].text = (char*)TR("Copia"); menu[1].enabled = sel;
|
||||
menu[ 2].tag = POPUP_PASTE; menu[ 2].text = (char*)TR("Incolla"); menu[2].enabled = clp;
|
||||
menu[ 3].tag = POPUP_DUP; menu[ 3].text = (char*)TR("Duplica"); menu[3].enabled = sel;
|
||||
menu[ 4].tag = POPUP_CLEAR; menu[ 4].text = (char*)TR("Cancella"); menu[4].enabled = sel;
|
||||
menu[ 5].tag = -1; menu[ 5].separator = true;
|
||||
menu[ 6].tag = POPUP_ZOOMIN; menu[ 6].text = (char*)TR("Zoom +"); menu[6].enabled = _dpi.v < 300;
|
||||
menu[ 7].tag = POPUP_ZOOMOUT; menu[ 7].text = (char*)TR("Zoom -"); menu[7].enabled = _dpi.v > 48;
|
||||
menu[ 8].tag = -1; menu[ 8].separator = true;
|
||||
menu[ 9].tag = POPUP_SELALL; menu[ 9].text = (char*)TR("Seleziona tutto"); menu[ 9].enabled = ful;
|
||||
menu[10].tag = POPUP_UNSELALL; menu[10].text = (char*)TR("Deseleziona tutto"); menu[10].enabled = ful;
|
||||
menu[11].tag = -1; menu[11].separator = true;
|
||||
menu[12].tag = POPUP_PROPERTIES; menu[12].text = "Proprieta'"; menu[12].enabled = true;
|
||||
menu[13].tag = POPUP_NEWFIELD; menu[13].text = "Nuovo"; menu[13].enabled = true;
|
||||
|
||||
_pt_drag_start = dev2log(_pt_click);
|
||||
xvt_menu_popup(menu, win(), _pt_click, XVT_POPUP_CENTER, 0);
|
||||
@ -614,7 +620,8 @@ void TReport_window::popup_cut()
|
||||
TReport_field& f = *(TReport_field*)o;
|
||||
if (f.selected())
|
||||
{
|
||||
TObject* obj = rs.remove(i, true);
|
||||
TReport_field* obj = (TReport_field*)rs.remove(i, true);
|
||||
obj->set_section(NULL);
|
||||
_clipboard.add(obj);
|
||||
}
|
||||
}
|
||||
@ -629,7 +636,11 @@ void TReport_window::popup_copy()
|
||||
{
|
||||
TReport_field& f = *(TReport_field*)o;
|
||||
if (f.selected())
|
||||
_clipboard.add(f);
|
||||
{
|
||||
TReport_field* cp = new TReport_field(f);
|
||||
cp->set_section(NULL);
|
||||
_clipboard.add(cp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -645,8 +656,6 @@ void TReport_window::popup_paste()
|
||||
{
|
||||
const TReport_field& oldf = *(TReport_field*)o;
|
||||
TReport_field* newf = new TReport_field(oldf);
|
||||
newf->set_section(&rs);
|
||||
newf->set_font(oldf.font()); // Font is section dependent!
|
||||
newf->select();
|
||||
newf->offset(off);
|
||||
rs.add(newf);
|
||||
@ -872,6 +881,28 @@ void TReport_window::handler(WINDOW win, EVENT* ep)
|
||||
case POPUP_ZOOMOUT:
|
||||
do_zoom(-24, true);
|
||||
break;
|
||||
case POPUP_SELALL:
|
||||
{
|
||||
TReport_section& rs = curr_section();
|
||||
FOR_EACH_ARRAY_ITEM(rs, i, o)
|
||||
{
|
||||
TReport_field& f = *(TReport_field*)o;
|
||||
f.select();
|
||||
}
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case POPUP_UNSELALL:
|
||||
{
|
||||
TReport_section& rs = curr_section();
|
||||
FOR_EACH_ARRAY_ITEM(rs, i, o)
|
||||
{
|
||||
TReport_field& f = *(TReport_field*)o;
|
||||
f.select(false);
|
||||
}
|
||||
force_update();
|
||||
}
|
||||
break;
|
||||
case POPUP_PROPERTIES:
|
||||
{
|
||||
clear_selection();
|
||||
|
@ -959,7 +959,7 @@ void TReport_field::set_font(const TReport_font& f)
|
||||
delete _font;
|
||||
_font = NULL;
|
||||
}
|
||||
if (f != font())
|
||||
if (_section == NULL || f != font())
|
||||
_font = new TReport_font(f);
|
||||
}
|
||||
|
||||
@ -991,7 +991,6 @@ void TReport_field::set_postscript(const char* src)
|
||||
|
||||
void TReport_field::copy(const TReport_field& rf)
|
||||
{
|
||||
_section = rf._section;
|
||||
_id = rf.id();
|
||||
_type = rf.type();
|
||||
_rct = rf._rct;
|
||||
@ -1007,8 +1006,9 @@ void TReport_field::copy(const TReport_field& rf)
|
||||
_prescript = rf._prescript;
|
||||
_postscript = rf._postscript;
|
||||
_list = rf._list;
|
||||
|
||||
set_font(rf.font());
|
||||
if (rf._font != NULL)
|
||||
set_font(*rf._font);
|
||||
_draw_hidden = _draw_deactivated = false;
|
||||
_selected = false;
|
||||
}
|
||||
|
||||
@ -1317,6 +1317,13 @@ void TReport_field::print(TBook& book) const
|
||||
book.draw_text(get_draw_rect(), _picture);
|
||||
}
|
||||
break;
|
||||
case 'N':
|
||||
if (field() == "#BOOKPAGES")
|
||||
{
|
||||
print_rect(book);
|
||||
book.draw_book_pages(get_draw_rect());
|
||||
break;
|
||||
}
|
||||
default :
|
||||
{
|
||||
print_rect(book);
|
||||
@ -1530,10 +1537,13 @@ TReport_field::TReport_field(TReport_section* sec)
|
||||
: _section(sec), _id(0), _type('T'), _rct(0,0,1000,100),
|
||||
_fgcolor(COLOR_BLACK), _bgcolor(COLOR_WHITE), _radius(0), _pattern(PAT_SOLID),
|
||||
_border(0), _halign('L'), _valign('T'),_dynamic_height(false), _font(NULL),
|
||||
_hidden(false), _deactivated(false), _hide_zeroes(false), _selected(false)
|
||||
_hidden(false), _deactivated(false), _hide_zeroes(false), _selected(false),
|
||||
_draw_hidden(false), _draw_deactivated(false)
|
||||
{ }
|
||||
|
||||
TReport_field::TReport_field(const TReport_field& rf) : _font(NULL)
|
||||
TReport_field::TReport_field(const TReport_field& rf)
|
||||
: _section(NULL), _font(NULL), _draw_hidden(false), _draw_deactivated(false)
|
||||
|
||||
{
|
||||
copy(rf);
|
||||
}
|
||||
|
@ -773,6 +773,12 @@ void TBook::draw_text(const TRectangle& r, const char* txt)
|
||||
}
|
||||
}
|
||||
|
||||
void TBook::draw_book_pages(const TRectangle& r)
|
||||
{
|
||||
define_frame(r);
|
||||
*_out << "<pages/>" << endl;
|
||||
}
|
||||
|
||||
void TBook::set_pen(COLOR color, int width, PEN_STYLE style)
|
||||
{
|
||||
if (_tools.pen.color != color || _tools.pen.width != width || _tools.pen.style != style)
|
||||
@ -1019,6 +1025,7 @@ bool TBook::print_page(TWindow& win, size_t page)
|
||||
TImage* img = _images.image(name);
|
||||
if (img != NULL)
|
||||
img->draw(win.win(), rct);
|
||||
continue;
|
||||
}
|
||||
if (str == "<line/>")
|
||||
{
|
||||
@ -1026,6 +1033,13 @@ bool TBook::print_page(TWindow& win, size_t page)
|
||||
PNT to = { rct.bottom, rct.right };
|
||||
xvt_dwin_draw_set_pos(win.win(), fr);
|
||||
xvt_dwin_draw_line(win.win(), to);
|
||||
continue;
|
||||
}
|
||||
if (str == "<pages/>")
|
||||
{
|
||||
TString8 str; str.format("%u", pages());
|
||||
advanced_draw_text(win, str, rct, _horizontal_alignment, _vertical_alignment);
|
||||
continue;
|
||||
}
|
||||
if (str.starts_with("<pen "))
|
||||
{
|
||||
@ -1193,6 +1207,17 @@ bool TBook::export_text(const TFilename& fname) const
|
||||
ofs << endl;
|
||||
}
|
||||
} else
|
||||
if (str == "<pages/>")
|
||||
{
|
||||
TString8 str; str.format("%u", pages());
|
||||
TString& line = page.row(row);
|
||||
switch (_horizontal_alignment)
|
||||
{
|
||||
case 'C': line.overwrite(str, col+(wid-str.len())/2); break;
|
||||
case 'R': line.overwrite(str, col+wid-str.len()); break;
|
||||
default : line.overwrite(str, col); break;
|
||||
}
|
||||
} else
|
||||
if (str == "<text>")
|
||||
{
|
||||
TString stringona;
|
||||
|
@ -47,6 +47,7 @@ public:
|
||||
void draw_image(const TRectangle& rect, const char* filename);
|
||||
void draw_text(const TRectangle& rect, const char* text);
|
||||
void draw_link(const TRectangle& rect, const char* text, const char* link);
|
||||
void draw_book_pages(const TRectangle& r);
|
||||
|
||||
TPoint page_size() const;
|
||||
TPoint page_res() const;
|
||||
|
Loading…
x
Reference in New Issue
Block a user