From f15009b25f86b69c9c1c862e0e165a2088d75c66 Mon Sep 17 00:00:00 2001 From: brugno Date: Fri, 22 Apr 2005 11:18:23 +0000 Subject: [PATCH] Patch level : Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@12995 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ci/ci0400.cpp | 111 +++++++++++++++++++++++++------------------------ ci/ci0400.h | 4 +- ci/ci0400.ini | 5 +++ ci/ci0400a.uml | 6 +-- ci/cilib.cpp | 79 ++++++++++++++++++++++------------- ci/cilib.h | 4 +- 6 files changed, 118 insertions(+), 91 deletions(-) create mode 100755 ci/ci0400.ini diff --git a/ci/ci0400.cpp b/ci/ci0400.cpp index 79d1d81a2..c9a229b8e 100755 --- a/ci/ci0400.cpp +++ b/ci/ci0400.cpp @@ -17,6 +17,57 @@ // TImmissioneDocumenti_app /////////////////////////////////////////////////////////// +// Inizializzazioni + +void TImmissioneDocumenti_app::init_tabs() +{ + TToken_string pagenames; + int items; + + _tabs.destroy(); + _filters.destroy(); + + pagenames = ""; + + TConfig configfile("ci0400.ini"); + configfile.list_paragraphs(_tabs); + + items = _tabs.items(); + const short id = F_AL01; + + for (int i = 0; i < items; i++) + { + pagenames.add(_tabs.row(i)); + _filters.add(configfile.get("Filtro",_tabs.row(i))); + _mask->activate_almanac(id + i, i, TDate(TODAY)); + } + + _mask->set_caption(pagenames); + _mask->disable_page(items); +} + +void TImmissioneDocumenti_app::init_flags() +{ + int items; + TDate currdate; + TDate currstart; + TString filter; + + filter << "ANNO==\"" << _year << "\""; + + TRelation relation(LF_DOC); + + TSorted_cursor cursor(&relation, "ANNO", filter); + + items =cursor.items(); + + for (cursor=0;cursor.pos()run() == K_ENTER) { - _mask->open_inner_sheet(_mask->selected_day(),_filters.row(_mask->curr_page())); + TDate selday = _mask->selected_day(); + int currpage = _mask->curr_page(); + + // _mask->open_inner_sheet(selday,_filters.row(currpage)); } } // Chiamate dalla maschera -void TImmissioneDocumenti_app::change_year(int newyear) +void TImmissioneDocumenti_app::change_year(int newyear, bool init_flg) { _year = newyear; _newyearsday.set_day(1); _newyearsday.set_month(1); _newyearsday.set_year(_year); - init_flags(); + if (init_flg) init_flags(); } bool TImmissioneDocumenti_app::has_documents(TDate& day) @@ -61,57 +115,6 @@ bool TImmissioneDocumenti_app::has_documents(TDate& day) return ((_flags)[day-_newyearsday]); } -// Inizializzazioni - -void TImmissioneDocumenti_app::init_tabs() -{ - TString pagename; - TString currfilter; - int items; - - _tabs.destroy(); - _filters.destroy(); - - TConfig configfile("ci0300.ini"); - configfile.list_paragraphs(_tabs); - - items = _tabs.items(); - const short id = F_AL01; - - for (int i = 0; i < items; i++) - { - pagename.format("Pagina %d",i + 1); - currfilter = configfile.get("Filtro",_tabs.row(i)); -// TMask_field* currpage = _mask->find_by_fieldname(pagename); ??? cazzo e' -// currpage->set_prompt(_tabs.row(i)); - _filters.add(currfilter); - _mask->activate_almanac(id + i, i, TDate(TODAY)); - } - _mask->disable_pages(); -} - -void TImmissioneDocumenti_app::init_flags() -{ - int items; - TDate currdate; - TDate currstart; - TString filter; - - filter << "ANNO==\"" << _year << "\""; - - TRelation relation(LF_DOC); - - TSorted_cursor cursor(&relation, "ANNO", filter); - - items =cursor.items(); - - for (cursor=0;cursor.pos() #include #include // file functions +#include #include "cilib.h" #include "cimsk.h" @@ -121,6 +122,8 @@ void TAlmanac_field::set_selected_day(int nday) { if(nday>=1 && nday<=TDate::last_day(_selecteddate.month(),_selecteddate.year())) { + TAlmanac_mask& m = (TAlmanac_mask&)mask(); + _selecteddate.set_day(nday); win().force_update(); } @@ -163,11 +166,13 @@ void TAlmanac_window::update() TDate cdate; COLOR col_f, col_b; RCT rct; xvt_vobj_get_client_rect(win(), &rct); + RCT rcttd; TString str; int rct_w, rct_h; int rct_t, rct_l; int pad; int row; + int fh; TAlmanac_field & o = (TAlmanac_field&)owner(); TField_window::update(); @@ -176,49 +181,57 @@ void TAlmanac_window::update() rct_w = ((rct.right - rct.left) / 9); rct_h = ((rct.bottom - rct.top) / 9); - pad = - o.padding(); + pad = o.padding(); row = 3; + set_font("Verdana", XVT_FS_BOLD); + set_color(COLOR_BLACK, COLOR_WHITE); + fh = 2 + xvt_dwin_get_font_size_mapped(win()); + if (o.show_month_name()) { - str.format("%s", itom(cdate.month())); + str.format("%s %d", itom(cdate.month()),cdate.year()); rct_l = rct.left + rct_w; rct_t = rct.top + rct_h; - stringat(rct_l + pad + 2, rct_t + pad + 2, str); + xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1); } - for (int i=1;i<7;i++) + for (int i=1;i<=7;i++) { str.format("%c", itow(i)[0]); rct_l = rct.left + rct_w*i; rct_t = rct.top + rct_h*2; - stringat(rct_l + pad + 2, rct_t + pad + 2, str); + xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1); } - set_color(COLOR_GRAY, COLOR_LTGRAY); while (!cdate.is_end_month()) { if (o.is_date_void(cdate)) - col_b=COLOR_LTGRAY; + col_b=COLOR_WHITE; else - col_b=COLOR_YELLOW; + col_b=COLOR_LTGRAY; if (o.is_selected(cdate.day())) col_f=COLOR_RED; else col_f=COLOR_GRAY; - set_color(col_f,col_b); - set_font(XVT_FFN_HELVETICA, XVT_FS_BOLD); + set_pen(col_f); + set_brush(col_b); rct_l = rct.left + rct_w*cdate.wday(); rct_t = rct.top + rct_h*row; str.format("%2d", cdate.day()); - rect(rct_l + pad, rct_t + pad, rct_l + rct_w - pad, rct_t + rct_h - pad); - stringat(rct_l + pad + 2, rct_t + pad + 2, str); + rcttd.top = rct_t + pad; + rcttd.left = rct_l + pad; + rcttd.bottom = rct_t + rct_h - pad; + rcttd.right = rct_l + rct_w - pad; + + xvt_dwin_draw_rect(win(), &rcttd); + xvt_dwin_draw_text(win(), rct_l + pad + 2, fh + rct_t + pad + 2, str, -1); if ((++cdate).wday()==1) row++; } @@ -228,31 +241,40 @@ void TAlmanac_window::update() bool TAlmanac_window::on_key(KEY key) { TAlmanac_field & o = (TAlmanac_field&)owner(); + int smonth, syear; + + smonth = o.selected_month(); + syear = o.selected_year(); switch (key) { case K_RIGHT: o.move_selected_day(1); - return true; + break; case K_LEFT: o.move_selected_day(-1); - return true; + break; case K_UP: o.move_selected_day(-7); - return true; + break; case K_DOWN: o.move_selected_day(+7); - return true; + break; default: - break; + return TField_window::on_key(key); } + + if(smonth!=o.selected_month()) + o.mask().set(F_CHANGEMONTH, o.selected_month(), true); + if(syear!=o.selected_year()) + o.mask().set(F_CHANGEYEAR, o.selected_year(), true); - return TField_window::on_key(key); + return true; } void TAlmanac_window::handler(WINDOW win, EVENT* ep) { - TDate cdate; + TDate cdate, fdate; RCT rct; xvt_vobj_get_client_rect(win, &rct); int rct_w, rct_h; int pnt_r, pnt_c; @@ -261,26 +283,23 @@ void TAlmanac_window::handler(WINDOW win, EVENT* ep) switch(ep->type) { - case E_MOUSE_DBL: case E_MOUSE_DOWN: + case E_MOUSE_DBL: { cdate = o.selected_date(); - cdate.set_day(1); + fdate = o.selected_date(); + fdate.set_day(1); rct_w = ((rct.right - rct.left) / 9); rct_h = ((rct.bottom - rct.top) / 9); - pnt_c = (ep->v.mouse.where.v) % rct_w; - pnt_r = (ep->v.mouse.where.h) % rct_h; + pnt_c = (ep->v.mouse.where.h) / rct_w; + pnt_r = (ep->v.mouse.where.v) / rct_h; - delta = pnt_c*pnt_r - (27+cdate.wday()); - if (delta>=1&&delta<=TDate::last_day(o.selected_date().month(), o.selected_date().year())) - { - o.set_selected_day(delta); - o.on_key(K_SPACE); - } + delta = 7*pnt_r + pnt_c - (7*(3+cdate.week()-fdate.week()) + cdate.wday()); + o.move_selected_day(delta); + if (ep->type==E_MOUSE_DBL) o.mask().stop_run(K_ENTER); } break; - default: TField_window::handler(win, ep); break; diff --git a/ci/cilib.h b/ci/cilib.h index 448ce4a85..e3e31e571 100755 --- a/ci/cilib.h +++ b/ci/cilib.h @@ -83,7 +83,7 @@ public: // @access Public Member public: // @cmember Costruttore - TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _padding(0) { } + TAlmanac_field(TMask* m) : TWindowed_field(m),_showmonthname(true), _selecteddate(TODAY), _padding(2) { } // @cmember Distruttore virtual ~TAlmanac_field() { } }; @@ -118,7 +118,7 @@ public: // @cmember Costruttore TAlmanac_window(int x, int y, int dx, int dy, WINDOW parent, TWindowed_field *owner); // @cmember Distruttore - virtual ~TAlmanac_window() { } + virtual ~TAlmanac_window() { set_scroll_max(0,0); _pixmap=0; } }; ///////////////////////////////////////////////////////////