ba0.cpp Corretta gestione colori
ba0300a.uml maschera editor ba4* gestione fax git-svn-id: svn://10.65.10.50/trunk@3296 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									b3f835da0d
								
							
						
					
					
						commit
						be6438d301
					
				
							
								
								
									
										223
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							
							
						
						
									
										223
									
								
								ba/ba0.cpp
									
									
									
									
									
								
							| @ -1,3 +1,5 @@ | |||||||
|  | #include <xi.h> | ||||||
|  | 
 | ||||||
| #include <applicat.h> | #include <applicat.h> | ||||||
| #include <colors.h>   | #include <colors.h>   | ||||||
| #include <config.h> | #include <config.h> | ||||||
| @ -34,6 +36,8 @@ protected: // TMask | |||||||
|   virtual void update(); |   virtual void update(); | ||||||
| 
 | 
 | ||||||
| public: | public: | ||||||
|  |   virtual bool stop_run(KEY key) { return TWindow::stop_run(key); } | ||||||
|  | 
 | ||||||
|   TPicture_mask(const char* name, int dx, int dy, TImage& image); |   TPicture_mask(const char* name, int dx, int dy, TImage& image); | ||||||
|   virtual ~TPicture_mask() {} |   virtual ~TPicture_mask() {} | ||||||
| }; | }; | ||||||
| @ -50,12 +54,18 @@ void TPicture_mask::update() | |||||||
|   if (_image.ok()) |   if (_image.ok()) | ||||||
|   { |   { | ||||||
|     RCT cli; fld(1).get_rect(cli); |     RCT cli; fld(1).get_rect(cli); | ||||||
|  |      | ||||||
|     const short maxx = cli.left; |     const short maxx = cli.left; | ||||||
|     const short maxy = short((long)maxx*_image.height()/_image.width()); |     const short maxy = short((long)maxx*_image.height()/_image.width()); | ||||||
|     RCT dst; xvt_rect_set(&dst, 1, 1, maxx, maxy); |     RCT dst; xvt_rect_set(&dst, 1, 1, maxx, maxy); | ||||||
|      |      | ||||||
|     if (xvt_dwin_is_update_needed(win(), &dst)) |     if (xvt_dwin_is_update_needed(win(), &dst)) | ||||||
|       _image.draw(win(), dst); |       _image.draw(win(), dst); | ||||||
|  |      | ||||||
|  |     xvt_vobj_get_client_rect(win(), &cli); | ||||||
|  |     cli.bottom--; | ||||||
|  |     cli.right--; | ||||||
|  |     xvt_draw_rect(win(), cli, MASK_LIGHT_COLOR, MASK_DARK_COLOR, 1); | ||||||
|   }   |   }   | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -68,11 +78,17 @@ class TColor_mask : public TMask | |||||||
|   TAssoc_array _color; |   TAssoc_array _color; | ||||||
| 
 | 
 | ||||||
| protected: // TMask
 | protected: // TMask
 | ||||||
|   virtual void update(); |   virtual void update();               | ||||||
|  |   virtual bool stop_run(KEY key) { return TWindow::stop_run(key); } | ||||||
|  | 
 | ||||||
|  |   // @cmember Converte le coordinate logiche (caratteri) in coordinate fisiche (pixel)
 | ||||||
|  |   virtual PNT log2dev(long x, long y) const; | ||||||
|  |    | ||||||
|  | protected:   | ||||||
|   static bool color_handler(TMask_field& f, KEY k); |   static bool color_handler(TMask_field& f, KEY k); | ||||||
|   static bool azzera_handler(TMask_field& f, KEY k); |   static bool azzera_handler(TMask_field& f, KEY k); | ||||||
|    |    | ||||||
|   COLOR get_color(const char* c) const; |   COLOR get_color_entry(const char* c) const; | ||||||
|   void set_color_entry(const char* name, COLOR col); |   void set_color_entry(const char* name, COLOR col); | ||||||
|   const char* cid2name(short cid) const; |   const char* cid2name(short cid) const; | ||||||
|   COLOR cid2color(short cid) const; |   COLOR cid2color(short cid) const; | ||||||
| @ -80,6 +96,8 @@ protected: // TMask | |||||||
| public: | public: | ||||||
|   void save_colors(); |   void save_colors(); | ||||||
|   |   | ||||||
|  |   virtual KEY run(); | ||||||
|  | 
 | ||||||
|   TColor_mask(); |   TColor_mask(); | ||||||
|   virtual ~TColor_mask() { } |   virtual ~TColor_mask() { } | ||||||
| }; | }; | ||||||
| @ -104,6 +122,73 @@ TColor_mask::TColor_mask() | |||||||
|   }   |   }   | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | PNT TColor_mask::log2dev(long x, long y) const | ||||||
|  | { | ||||||
|  |   PNT p = { int(y * XI_FU_MULTIPLE), int(x * XI_FU_MULTIPLE) }; | ||||||
|  |    | ||||||
|  |   XI_OBJ* itf = xi_get_itf(win()); | ||||||
|  |   xi_fu_to_pu(itf, &p, 1);    | ||||||
|  |    | ||||||
|  |   p.v = int(y * ROWY); | ||||||
|  |   p.h += XI_FU_MULTIPLE / 2; | ||||||
|  |   return p; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | KEY TColor_mask::run() | ||||||
|  | { | ||||||
|  |   KEY k = K_CTRL + 'R'; | ||||||
|  |   while (k == K_CTRL + 'R')  | ||||||
|  |     k = TMask::run();              | ||||||
|  |   return k; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | void TColor_mask::update() | ||||||
|  | {  | ||||||
|  |   COLOR p, b;                | ||||||
|  |    | ||||||
|  |   const int x = 1; | ||||||
|  |   const int y = 7; | ||||||
|  |   const int w = 32;   | ||||||
|  |   const int h = 9; | ||||||
|  |    | ||||||
|  |   set_pen(COLOR_BLACK); | ||||||
|  |   set_brush(b = get_color_entry("MaskBack")); | ||||||
|  |   frame(x+0, y+0, x+w, y+h, 0); | ||||||
|  |    | ||||||
|  |   set_pen(p = get_color_entry("MaskLight")); | ||||||
|  |   line(x+1, y, x+w-2, y);  | ||||||
|  |   line(x+1, y, x+1, y+h-1); | ||||||
|  |    | ||||||
|  |   set_pen(p = get_color_entry("MaskDark")); | ||||||
|  |   line(x+1, y+h-1, x+w-2, y+h-1);  | ||||||
|  |   line(x+w-2, y+h-1, x+w-2, y); | ||||||
|  | 
 | ||||||
|  |   set_opaque_text(FALSE); | ||||||
|  |   set_pen(p = get_color_entry("Normal")); | ||||||
|  |   set_brush(b = get_color_entry("NormalBack")); | ||||||
|  |   frame(x+3, y+1, x+w-3, y+2, 0);        | ||||||
|  |   set_color(p, b); | ||||||
|  |   stringat(x+4, y+1, "Campo normale"); | ||||||
|  | 
 | ||||||
|  |   set_pen(p = get_color_entry("Focus")); | ||||||
|  |   set_brush(b = get_color_entry("FocusBack")); | ||||||
|  |   frame(x+3, y+3, x+w-3, y+4, 0); | ||||||
|  |   set_color(p, b); | ||||||
|  |   stringat(x+4, y+3, "Campo attivo"); | ||||||
|  |    | ||||||
|  |   set_pen(p = get_color_entry("Disabled")); | ||||||
|  |   set_brush(b = get_color_entry("DisabledBack")); | ||||||
|  |   frame(x+3, y+5, x+w-3, y+6, 0); | ||||||
|  |   set_color(p, b); | ||||||
|  |   stringat(x+4, y+5, "Campo disabilitato"); | ||||||
|  |    | ||||||
|  |   set_pen(p = get_color_entry("ButtonLight")); | ||||||
|  |   set_brush(b = get_color_entry("ButtonBack")); | ||||||
|  |   frame(x+3, y+7, x+w-3, y+8, 0); | ||||||
|  |   stringat(x+4, y+7, "Bottone normale"); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void TColor_mask::save_colors() | void TColor_mask::save_colors() | ||||||
| { | { | ||||||
|   TConfig colors(CONFIG_USER, "Colors"); |   TConfig colors(CONFIG_USER, "Colors"); | ||||||
| @ -116,7 +201,7 @@ void TColor_mask::save_colors() | |||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| COLOR TColor_mask::get_color(const char* name) const | COLOR TColor_mask::get_color_entry(const char* name) const | ||||||
| {                                | {                                | ||||||
|   COLOR c = COLOR_INVALID; |   COLOR c = COLOR_INVALID; | ||||||
|   const TObject* s = ((TColor_mask*)this)->_color.objptr(name); |   const TObject* s = ((TColor_mask*)this)->_color.objptr(name); | ||||||
| @ -147,9 +232,11 @@ const char* TColor_mask::cid2name(short cid) const | |||||||
|   const char* name[] = { "MaskBack", "MaskLight", "MaskDark", |   const char* name[] = { "MaskBack", "MaskLight", "MaskDark", | ||||||
|                          "Normal", "NormalBack", |                          "Normal", "NormalBack", | ||||||
|                          "Focus", "FocusBack", |                          "Focus", "FocusBack", | ||||||
|                          "Disabled", "DisabledBack" }; |                          "Disabled", "DisabledBack",          | ||||||
|  |                          "ButtonBack", "ButtonLight", "ButtonDark" | ||||||
|  |                           }; | ||||||
|   const int i = cid - 101;                        |   const int i = cid - 101;                        | ||||||
|   CHECK(i >= 0 && i < 9, "Invalid color id"); |   CHECK(i >= 0 && i < 12, "Invalid color id"); | ||||||
|   return name[i]; |   return name[i]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -158,10 +245,11 @@ COLOR TColor_mask::cid2color(short cid) const | |||||||
|   COLOR color[] = { COLOR_DKCYAN, COLOR_CYAN, COLOR_GRAY, |   COLOR color[] = { COLOR_DKCYAN, COLOR_CYAN, COLOR_GRAY, | ||||||
|                     COLOR_BLACK, COLOR_WHITE, |                     COLOR_BLACK, COLOR_WHITE, | ||||||
|                     COLOR_BLACK, COLOR_CYAN, |                     COLOR_BLACK, COLOR_CYAN, | ||||||
|                     COLOR_GRAY, COLOR_DKCYAN }; |                     COLOR_GRAY, COLOR_DKCYAN,  | ||||||
|  |                     COLOR_LTGRAY, COLOR_WHITE, COLOR_GRAY}; | ||||||
| 
 | 
 | ||||||
|   const int i = cid - 101;                        |   const int i = cid - 101;                        | ||||||
|   CHECK(i >= 0 && i < 9, "Invalid color id"); |   CHECK(i >= 0 && i < 12, "Invalid color id"); | ||||||
|   return color[i]; |   return color[i]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -182,7 +270,7 @@ bool TColor_mask::color_handler(TMask_field& f, KEY k) | |||||||
|   {               |   {               | ||||||
|     TColor_mask& m = (TColor_mask&)f.mask(); |     TColor_mask& m = (TColor_mask&)f.mask(); | ||||||
|     const char* name = m.cid2name(f.dlg()); |     const char* name = m.cid2name(f.dlg()); | ||||||
|     COLOR col = m.get_color(name); |     COLOR col = m.get_color_entry(name); | ||||||
|      |      | ||||||
| #if XVT_OS == XVT_OS_WIN                | #if XVT_OS == XVT_OS_WIN                | ||||||
|     CHOOSECOLOR cc; |     CHOOSECOLOR cc; | ||||||
| @ -237,9 +325,25 @@ bool TColor_mask::color_handler(TMask_field& f, KEY k) | |||||||
|     if (ok) |     if (ok) | ||||||
|     { |     { | ||||||
|       m.set_color_entry(name, col); |       m.set_color_entry(name, col); | ||||||
|       m.force_update(); |       XVT_PALETTE wp = xvt_vobj_get_palet(m.win()); | ||||||
|  |       if (wp != NULL) | ||||||
|  |       { | ||||||
|  |         XVT_PALETTE up = xvt_palet_create(XVT_PALETTE_USER, 0); | ||||||
|  |         if (up != NULL) | ||||||
|  |         {                   | ||||||
|  |           const int MAXPAL = 256; | ||||||
|  |           COLOR color[MAXPAL]; | ||||||
|  |           const int n = xvt_palet_get_colors(wp, color, MAXPAL); | ||||||
|  |           if (n < MAXPAL) color[n] = col; | ||||||
|  |           xvt_palet_set_tolerance(up, xvt_palet_get_tolerance(wp)); | ||||||
|  |           xvt_palet_add_colors(up, color, n+1); | ||||||
|  |           xvt_vobj_set_palet(m.win(), up); | ||||||
|  |           xvt_palet_destroy(wp); | ||||||
|  |         }   | ||||||
|  |       }   | ||||||
|  |       m.stop_run(K_CTRL + 'R'); | ||||||
|     } |     } | ||||||
|   } |   }               | ||||||
|    |    | ||||||
|   return ok; |   return ok; | ||||||
| } | } | ||||||
| @ -264,42 +368,6 @@ bool TColor_mask::azzera_handler(TMask_field& f, KEY k) | |||||||
|   return TRUE; |   return TRUE; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TColor_mask::update() |  | ||||||
| {  |  | ||||||
|   COLOR p, b;                |  | ||||||
|    |  | ||||||
|   set_pen(COLOR_BLACK); |  | ||||||
|   set_brush(b = get_color("MaskBack")); |  | ||||||
|   frame(1, 10, 33, 19, 0); |  | ||||||
|    |  | ||||||
|   set_pen(p = get_color("MaskLight")); |  | ||||||
|   line(2, 10, 31, 10);  |  | ||||||
|   line(2, 10,  2, 18); |  | ||||||
|    |  | ||||||
|   set_pen(p = get_color("MaskDark")); |  | ||||||
|   line( 2, 18, 31, 18);  |  | ||||||
|   line(31, 18, 31, 10); |  | ||||||
| 
 |  | ||||||
|   set_opaque_text(FALSE); |  | ||||||
|   set_pen(p = COLOR_BLACK); |  | ||||||
|   set_brush(b = get_color("NormalBack")); |  | ||||||
|   frame(4, 12, 30, 13, 0);        |  | ||||||
|   set_color(get_color("Normal"), b); |  | ||||||
|   stringat(5, 12, "Campo normale"); |  | ||||||
| 
 |  | ||||||
|   set_pen(p = get_color("Focus")); |  | ||||||
|   set_brush(b = get_color("FocusBack")); |  | ||||||
|   frame(4, 14, 30, 15, 0); |  | ||||||
|   set_color(p, b); |  | ||||||
|   stringat(5, 14, "Campo attivo"); |  | ||||||
|    |  | ||||||
|   set_pen(p = COLOR_BLACK); |  | ||||||
|   set_brush(b = get_color("DisabledBack")); |  | ||||||
|   frame(4, 16, 30, 17, 0); |  | ||||||
|   set_color(get_color("Disabled"), b); |  | ||||||
|   stringat(5, 16, "Campo disabilitato"); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| ///////////////////////////////////////////////////////////
 | ///////////////////////////////////////////////////////////
 | ||||||
| // Menu application
 | // Menu application
 | ||||||
| ///////////////////////////////////////////////////////////
 | ///////////////////////////////////////////////////////////
 | ||||||
| @ -325,6 +393,7 @@ protected:  // TApplication | |||||||
|   virtual bool destroy(); |   virtual bool destroy(); | ||||||
|   virtual bool menu(MENU_TAG m); |   virtual bool menu(MENU_TAG m); | ||||||
|   virtual bool build_firm_data(long cod, bool flagcom = FALSE); |   virtual bool build_firm_data(long cod, bool flagcom = FALSE); | ||||||
|  |   virtual long handler(WINDOW win, EVENT* ep); | ||||||
| 
 | 
 | ||||||
| protected: | protected: | ||||||
|   bool main_loop(); |   bool main_loop(); | ||||||
| @ -339,6 +408,7 @@ protected: | |||||||
|   bool module_enabled(int module) const { return has_module(module);} |   bool module_enabled(int module) const { return has_module(module);} | ||||||
| 
 | 
 | ||||||
|   bool choose_colors(); |   bool choose_colors(); | ||||||
|  |   bool choose_editors(); | ||||||
|    |    | ||||||
| public:     | public:     | ||||||
|   void reload_images(); |   void reload_images(); | ||||||
| @ -687,6 +757,9 @@ int TMenu_application::do_level() | |||||||
|     menu.reset(); |     menu.reset(); | ||||||
|     m = -2;  |     m = -2;  | ||||||
|     break;     |     break;     | ||||||
|  |   case K_CTRL+'R': | ||||||
|  |     m = 0; | ||||||
|  |     break;   | ||||||
|   default: |   default: | ||||||
|     if (_find_button) |     if (_find_button) | ||||||
|       m = -1; |       m = -1; | ||||||
| @ -977,12 +1050,59 @@ bool TMenu_application::choose_colors() | |||||||
|      |      | ||||||
|     // Provoca chiusura forzata del menu
 |     // Provoca chiusura forzata del menu
 | ||||||
|     if (_mask != NULL)  |     if (_mask != NULL)  | ||||||
|     { |       _mask->stop_run(K_CTRL + 'R'); | ||||||
|       _last_button = 100; |  | ||||||
|       _mask->stop_run(K_AUTO_ENTER); |  | ||||||
|     }   |  | ||||||
|   } |   } | ||||||
|   return TRUE; |   return TRUE; | ||||||
|  | }  | ||||||
|  | 
 | ||||||
|  | HIDDEN bool browse_file_handler(TMask_field& f, KEY k) | ||||||
|  | { | ||||||
|  |   if (k == K_F9) | ||||||
|  |   {   | ||||||
|  |     FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC)); | ||||||
|  |     strcpy(fs.type, "EXE"); | ||||||
|  |     strcpy(fs.name, f.get()); | ||||||
|  |     strcpy(fs.creator, "ba0"); | ||||||
|  |     xvt_fsys_get_default_dir(&fs.dir); | ||||||
|  |     xvt_fsys_save_dir(); | ||||||
|  |     if (xvt_dm_post_file_open(&fs, "Selezione programma") == FL_OK) | ||||||
|  |     {        | ||||||
|  |       TFilename n; | ||||||
|  |       xvt_fsys_convert_dir_to_str(&fs.dir, (char*)(const char*)n, n.size()); | ||||||
|  |       n.add(fs.name); | ||||||
|  |       f.set(n); | ||||||
|  |       xvt_fsys_restore_dir(); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |   return TRUE; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool TMenu_application::choose_editors() | ||||||
|  | {  | ||||||
|  |   TConfig link(CONFIG_USER, "Link"); | ||||||
|  |   TMask editor("ba0300a"); | ||||||
|  |    | ||||||
|  |   editor.set_handler(101, browse_file_handler); | ||||||
|  |   editor.set(101, link.get("Editor")); | ||||||
|  |    | ||||||
|  |   if (editor.run() == K_ENTER) | ||||||
|  |   { | ||||||
|  |     link.set("Editor", editor.get(101)); | ||||||
|  |   } | ||||||
|  |    | ||||||
|  |   return TRUE; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | long TMenu_application::handler(WINDOW win, EVENT* ep) | ||||||
|  | { | ||||||
|  |   long ret = TApplication::handler(win, ep); | ||||||
|  |   if (ep->type == E_FONT) | ||||||
|  |   { | ||||||
|  |     if (_mask != NULL)  | ||||||
|  |       _mask->stop_run(K_CTRL + 'R'); | ||||||
|  |   }   | ||||||
|  |   return ret;   | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool TMenu_application::menu(MENU_TAG mt) | bool TMenu_application::menu(MENU_TAG mt) | ||||||
| @ -991,7 +1111,8 @@ bool TMenu_application::menu(MENU_TAG mt) | |||||||
|   switch (mt) |   switch (mt) | ||||||
|   { |   { | ||||||
|   case MENU_ITEM(1): ok = main_loop(); break; |   case MENU_ITEM(1): ok = main_loop(); break; | ||||||
|   case MENU_ITEM(2): choose_colors(); break; |   case MENU_ITEM(2): choose_colors(); break;  | ||||||
|  |   case MENU_ITEM(3): choose_editors(); break; | ||||||
|   default: break; |   default: break; | ||||||
|   } |   } | ||||||
|   return  ok; |   return  ok; | ||||||
|  | |||||||
| @ -1,9 +1,10 @@ | |||||||
| #include <default.url> | #include <default.url> | ||||||
| 
 | 
 | ||||||
| MENU TASK_MENUBAR | MENU TASK_MENUBAR | ||||||
|   SUBMENU MENU_FILE     "~File" |   SUBMENU MENU_FILE "~File" | ||||||
|   SUBMENU M_FONT        "~Opzioni" |   SUBMENU M_FONT    "~Opzioni" DISABLED | ||||||
| 
 | 
 | ||||||
| MENU M_FONT | MENU M_FONT | ||||||
|   ITEM M_FONT_SELECT "~Font" |   ITEM M_FONT_SELECT "~Font"   | ||||||
|   ITEM MENU_ITEM(2)  "~Colori"  |   ITEM MENU_ITEM(2)  "~Colori" | ||||||
|  |   ITEM MENU_ITEM(3)  "~Editor" | ||||||
|  | |||||||
							
								
								
									
										190
									
								
								ba/ba0200a.uml
									
									
									
									
									
								
							
							
						
						
									
										190
									
								
								ba/ba0200a.uml
									
									
									
									
									
								
							| @ -1,85 +1,105 @@ | |||||||
| PAGE "Colori" -1 -1 50 16 | PAGE "Colori" -1 -1 50 20 | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 48 3 | GROUPBOX DLG_NULL 48 3 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 1 0 "Maschera" |   PROMPT 1 0 "Maschera" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 101 12 | BUTTON 101 12 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 1 "Normale" |   PROMPT 2 1 "Normale" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 102 12 | BUTTON 102 12 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 18 1 "Chiaro" |   PROMPT 18 1 "Chiaro" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 103 12 | BUTTON 103 12 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 34 1 "Scuro" |   PROMPT 34 1 "Scuro" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 14 4 | GROUPBOX DLG_NULL 14 4 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 1 3 "Normale" |   PROMPT 1 3 "Normale" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 104 10 | BUTTON 104 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 4 "Testo" |   PROMPT 2 4 "Testo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 105 10 | BUTTON 105 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 2 5 "Sfondo" |   PROMPT 2 5 "Sfondo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 14 4 | GROUPBOX DLG_NULL 14 4 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 18 3 "Attivo" |   PROMPT 18 3 "Attivo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 106 10 | BUTTON 106 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 19 4 "Testo" |   PROMPT 19 4 "Testo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 107 10 | BUTTON 107 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 19 5 "Sfondo" |   PROMPT 19 5 "Sfondo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| GROUPBOX DLG_NULL 14 4 | GROUPBOX DLG_NULL 14 4 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 35 3 "Disabilitato" |   PROMPT 35 3 "Disabilitato" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 108 10 | BUTTON 108 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 36 4 "Testo" |   PROMPT 36 4 "Testo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON 109 10 | BUTTON 109 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT 36 5 "Sfondo" |   PROMPT 36 5 "Sfondo" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_OK 10 2 | GROUPBOX DLG_NULL 14 5 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT -13 -1 "Conferma" |   PROMPT 35 7 "Bottone" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_USER 10 2 | BUTTON 110 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT -23 -1 "~Azzera" |   PROMPT 36 8 "Normale" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_CANCEL 10 2 | BUTTON 111 10 | ||||||
| BEGIN | BEGIN | ||||||
|   PROMPT -33 -1 "Annulla" |   PROMPT 36 9 "Chiaro" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| ENDPAGE | BUTTON 112 10 | ||||||
| 
 | BEGIN | ||||||
| ENDMASK |   PROMPT 36 10 "Scuro" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_OK 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -13 -1 "Conferma" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_USER 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -23 -1 "~Azzera" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_CANCEL 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -33 -1 "Annulla" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | ENDPAGE | ||||||
|  | 
 | ||||||
|  | ENDMASK | ||||||
|  | |||||||
							
								
								
									
										22
									
								
								ba/ba0300a.uml
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										22
									
								
								ba/ba0300a.uml
									
									
									
									
									
										Executable file
									
								
							| @ -0,0 +1,22 @@ | |||||||
|  | PAGE "Editor" -1 -1 62 5 | ||||||
|  | 
 | ||||||
|  | STRING 101 50 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT 1 1 "Comando " | ||||||
|  |   FLAGS "B" | ||||||
|  |   FIELD Editor | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_OK 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -12 -1 "Conferma" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_CANCEL 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -22 -1 "Annulla" | ||||||
|  | END | ||||||
|  | 
 | ||||||
|  | ENDPAGE | ||||||
|  | 
 | ||||||
|  | ENDMASK | ||||||
| @ -2,23 +2,23 @@ PAGE "POSIZIONAMENTO MODULI" -1 -1 55 6 | |||||||
| 
 | 
 | ||||||
| TEXT DLG_NULL | TEXT DLG_NULL | ||||||
| BEGIN | BEGIN | ||||||
| PROMPT 1 1 "Premere <Conferma> per confermare il posizionamento." |   PROMPT 1 1 "Premere <Conferma> per confermare il posizionamento." | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| TEXT DLG_NULL | TEXT DLG_NULL | ||||||
| BEGIN | BEGIN | ||||||
| PROMPT 1 2 "Premere <Riprova>  per ritentare  il posizionamento." |   PROMPT 1 2 "Premere <Riprova>  per ritentare  il posizionamento." | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_OK 10 2 | BUTTON DLG_OK 10 2 | ||||||
| BEGIN | BEGIN | ||||||
| PROMPT -12 -1 "" |   PROMPT -12 -1 "" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| BUTTON DLG_USER 10 2 | BUTTON DLG_USER 10 2 | ||||||
| BEGIN | BEGIN | ||||||
| PROMPT -22 -1 "~Riprova" |   PROMPT -22 -1 "~Riprova" | ||||||
| MESSAGE EXIT,K_ESC |   MESSAGE EXIT,K_ESC | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| ENDPAGE | ENDPAGE | ||||||
|  | |||||||
| @ -1,7 +1,6 @@ | |||||||
| #include <relapp.h>   | #include <relapp.h>   | ||||||
| #include <msksheet.h> | #include <msksheet.h> | ||||||
| #include <stdtypes.h> | #include <stdtypes.h> | ||||||
| #include <lffiles.h> |  | ||||||
| #include "ba4.h" | #include "ba4.h" | ||||||
| #include "ba4100.h" | #include "ba4100.h" | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,4 +1,6 @@ | |||||||
|  | #include <defmask.h> | ||||||
| #include <execp.h> | #include <execp.h> | ||||||
|  | #include <golem.h> | ||||||
| #include <mask.h> | #include <mask.h> | ||||||
| #include <mailbox.h> | #include <mailbox.h> | ||||||
| #include <relapp.h> | #include <relapp.h> | ||||||
| @ -39,6 +41,7 @@ protected: | |||||||
|   virtual TMask* get_mask(int mode) ; |   virtual TMask* get_mask(int mode) ; | ||||||
|   virtual void write_enable(bool on = TRUE); |   virtual void write_enable(bool on = TRUE); | ||||||
|    |    | ||||||
|  |   static bool fax_handler(TMask_field& f, KEY k); | ||||||
|   static bool ba4200_handler(TMask& m, KEY k); |   static bool ba4200_handler(TMask& m, KEY k); | ||||||
|    |    | ||||||
| public: | public: | ||||||
| @ -51,8 +54,8 @@ public: | |||||||
|   void set_tip_ana(char tip) { _tip_ana = _next_ana = toupper(tip);} |   void set_tip_ana(char tip) { _tip_ana = _next_ana = toupper(tip);} | ||||||
|   void set_next_ana(char tip) { _next_ana = toupper(tip);} |   void set_next_ana(char tip) { _next_ana = toupper(tip);} | ||||||
|   void set_cod_ana(const char* cod) { _cod_ana = cod;} |   void set_cod_ana(const char* cod) { _cod_ana = cod;} | ||||||
|   const char* cod_ana() { return _cod_ana;} |   const char* cod_ana() const { return _cod_ana;} | ||||||
|   char tip_ana() { return _tip_ana;} |   char tip_ana() const { return _tip_ana;} | ||||||
|   virtual bool force_cursor_usage() const { return TRUE;} |   virtual bool force_cursor_usage() const { return TRUE;} | ||||||
|   void set_reset_uff_conc(bool reset) { _reset_uff_conc = reset; } |   void set_reset_uff_conc(bool reset) { _reset_uff_conc = reset; } | ||||||
|   void set_reset_codreg(bool reset) { _reset_codreg = reset; } |   void set_reset_codreg(bool reset) { _reset_codreg = reset; } | ||||||
| @ -96,7 +99,31 @@ bool TPersone_app::ba4200_handler(TMask& m, KEY k) | |||||||
|   return FALSE; |   return FALSE; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void  TPersone_app::init_query_mode(TMask& m) | bool TPersone_app::fax_handler(TMask_field& f, KEY k) | ||||||
|  | {            | ||||||
|  |   bool ok = TRUE; | ||||||
|  |   if (k == K_SPACE) | ||||||
|  |   {  | ||||||
|  |     TConfig ini(CONFIG_USER, "Link"); | ||||||
|  |     TFilename editor = ini.get("Editor", NULL, -1, "notepad"); | ||||||
|  |     TExternal_app app(editor); | ||||||
|  |     ok = app.run(TRUE, FALSE) == 0; | ||||||
|  |     if (ok) | ||||||
|  |     { | ||||||
|  |       const TPersone_app& app = (const TPersone_app&)main_app(); | ||||||
|  |       const char* tipo = app.tip_ana() == 'F' ? "Fisiche" : "Giuridiche"; | ||||||
|  |       const char* codice = app.cod_ana(); | ||||||
|  | 
 | ||||||
|  |       TDDE dde; | ||||||
|  |       TString cmd(80);                                                              | ||||||
|  |       cmd << "[SetRecipient(" << tipo << ',' << codice << ")]"; | ||||||
|  |       ok = dde.execute("EASYFAX", "FAX", cmd, "bafax"); | ||||||
|  |     }   | ||||||
|  |   } | ||||||
|  |   return ok; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | void TPersone_app::init_query_mode(TMask& m) | ||||||
| 
 | 
 | ||||||
| { | { | ||||||
|   m.disable(DLG_DITTE); |   m.disable(DLG_DITTE); | ||||||
| @ -496,6 +523,8 @@ TMask* TPersone_app::get_mask(int mode) | |||||||
|     _msk[MSKF]->set_handler(F_UFFCONC, uff_conc); |     _msk[MSKF]->set_handler(F_UFFCONC, uff_conc); | ||||||
|     _msk[MSKF]->set_handler(F_CODREG96, cod_reg); |     _msk[MSKF]->set_handler(F_CODREG96, cod_reg); | ||||||
|     _msk[MSKF]->set_handler(F_TITCF, tit_cf); |     _msk[MSKF]->set_handler(F_TITCF, tit_cf); | ||||||
|  |     _msk[MSKF]->set_handler(DLG_FAX, fax_handler); | ||||||
|  | 
 | ||||||
|     _msk[MSKF]->set_handler(ba4200_handler); |     _msk[MSKF]->set_handler(ba4200_handler); | ||||||
|   } |   } | ||||||
|   else |   else | ||||||
| @ -509,8 +538,11 @@ TMask* TPersone_app::get_mask(int mode) | |||||||
|       _msk[MSKG]->set_handler(FLD_AG1_PAIV, no_dup_iva_g); |       _msk[MSKG]->set_handler(FLD_AG1_PAIV, no_dup_iva_g); | ||||||
|       _msk[MSKG]->set_handler(F_UFFCONC, uff_conc); |       _msk[MSKG]->set_handler(F_UFFCONC, uff_conc); | ||||||
|       _msk[MSKG]->set_handler(F_TITCF, tit_cf); |       _msk[MSKG]->set_handler(F_TITCF, tit_cf); | ||||||
|  |       _msk[MSKG]->set_handler(DLG_FAX, fax_handler); | ||||||
|  | 
 | ||||||
|       _msk[MSKG]->set_handler(ba4200_handler); |       _msk[MSKG]->set_handler(ba4200_handler); | ||||||
|     } |     } | ||||||
|  |      | ||||||
|   return _msk[tip_msk()]; |   return _msk[tip_msk()]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -253,6 +253,12 @@ PROMPT 56 16 "Utente " | |||||||
| FLAGS "D" | FLAGS "D" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
|  | BUTTON DLG_FAX 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -11 -1 "Fax" | ||||||
|  |   PICTURE BMP_FAX | ||||||
|  | END | ||||||
|  | 
 | ||||||
| ENDPAGE | ENDPAGE | ||||||
| 
 | 
 | ||||||
| PAGE "Pag.2" -1 -1 77 20 | PAGE "Pag.2" -1 -1 77 20 | ||||||
|  | |||||||
| @ -182,6 +182,12 @@ BEGIN | |||||||
|   FLAGS "DA" |   FLAGS "DA" | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
|  | BUTTON DLG_FAX 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -11 -1 "Fax" | ||||||
|  |   PICTURE BMP_FAX | ||||||
|  | END | ||||||
|  | 
 | ||||||
| ENDPAGE | ENDPAGE | ||||||
| 
 | 
 | ||||||
| PAGE "Pag.2" -1 -1 77 20 | PAGE "Pag.2" -1 -1 77 20 | ||||||
|  | |||||||
| @ -1,5 +1,6 @@ | |||||||
|  | #include <defmask.h> | ||||||
| #include <execp.h> | #include <execp.h> | ||||||
| #include <files.h> | #include <golem.h> | ||||||
| #include <mailbox.h> | #include <mailbox.h> | ||||||
| #include <prefix.h> | #include <prefix.h> | ||||||
| #include <relapp.h> | #include <relapp.h> | ||||||
| @ -70,6 +71,8 @@ protected: | |||||||
|   virtual bool protected_record(TRectype& rec) { return prefix().exist(rec.get_long("CODDITTA")); } |   virtual bool protected_record(TRectype& rec) { return prefix().exist(rec.get_long("CODDITTA")); } | ||||||
|   void set_att_prev(const TMask& m); |   void set_att_prev(const TMask& m); | ||||||
| 
 | 
 | ||||||
|  |   static bool fax_handler(TMask_field& f, KEY k); | ||||||
|  | 
 | ||||||
| public: | public: | ||||||
|   TDitte_application(); |   TDitte_application(); | ||||||
|   virtual TRelation* get_relation() const { return _rel;} |   virtual TRelation* get_relation() const { return _rel;} | ||||||
| @ -159,11 +162,36 @@ bool ba4300_handler(TMask& m, KEY k) | |||||||
| TDitte_application::TDitte_application() | TDitte_application::TDitte_application() | ||||||
| {} | {} | ||||||
| 
 | 
 | ||||||
|  | bool TDitte_application::fax_handler(TMask_field& f, KEY k) | ||||||
|  | {            | ||||||
|  |   bool ok = TRUE; | ||||||
|  |   if (k == K_SPACE) | ||||||
|  |   {  | ||||||
|  |     TConfig ini(CONFIG_USER, "Link"); | ||||||
|  |     TFilename editor = ini.get("Editor", NULL, -1, "notepad"); | ||||||
|  |     TExternal_app app(editor); | ||||||
|  |     ok = app.run(TRUE, FALSE) == 0; | ||||||
|  |     if (ok) | ||||||
|  |     { | ||||||
|  |       const TDitte_application& app = (const TDitte_application&)main_app(); | ||||||
|  |       const char* tipo = "Ditte"; | ||||||
|  |       const char* codice = f.mask().get(FLD_GD1_CODDITTA); | ||||||
|  | 
 | ||||||
|  |       TDDE dde; | ||||||
|  |       TString cmd(80); | ||||||
|  |       cmd << "[SetRecipient(" << tipo << ',' << codice << ")]"; | ||||||
|  |       ok = dde.execute("EASYFAX", "FAX", cmd, "bafax"); | ||||||
|  |     }   | ||||||
|  |   } | ||||||
|  |   return ok; | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| bool TDitte_application::user_create() // initvar e arrmask
 | bool TDitte_application::user_create() // initvar e arrmask
 | ||||||
| { | { | ||||||
|   _msk = new TMask("ba4300a") ; |   _msk = new TMask("ba4300a") ; | ||||||
|  |   _msk->set_handler(DLG_FAX, fax_handler); | ||||||
|   _msk->set_handler(ba4300_handler); |   _msk->set_handler(ba4300_handler); | ||||||
|  | 
 | ||||||
|   _rel = new TRelation(LF_NDITTE); |   _rel = new TRelation(LF_NDITTE); | ||||||
|   _anag = new TLocalisamfile(LF_ANAG); |   _anag = new TLocalisamfile(LF_ANAG); | ||||||
|   _unloc = new TLocalisamfile(LF_UNLOC); |   _unloc = new TLocalisamfile(LF_UNLOC); | ||||||
| @ -237,12 +265,12 @@ void TDitte_application::set_att_prev(const TMask& m) | |||||||
|   if (itwas) |   if (itwas) | ||||||
|   { |   { | ||||||
|     if (_attiv->rewrite() != NOERR) |     if (_attiv->rewrite() != NOERR) | ||||||
|       error_box("Non posso aggiornare l'attivita' prevalente : errore n. %d", _attiv->status()); |       error_box("Impossibile aggiornare l'attivita' prevalente : errore n. %d", _attiv->status()); | ||||||
|   } |   } | ||||||
|   else |   else | ||||||
|   { |   { | ||||||
|     if (_attiv->write() != NOERR) |     if (_attiv->write() != NOERR) | ||||||
|       error_box("Non posso creare l'attivita' prevalente : errore n. %d", _attiv->status()); |       error_box("Impossibile creare l'attivita' prevalente : errore n. %d", _attiv->status()); | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -221,6 +221,12 @@ BEGIN | |||||||
|   PROMPT 34 14 "Numero " |   PROMPT 34 14 "Numero " | ||||||
|   FIELD LF_NDITTE->FAX |   FIELD LF_NDITTE->FAX | ||||||
|   HELP "Numero telefonico del fax della ditta" |   HELP "Numero telefonico del fax della ditta" | ||||||
|  | END     | ||||||
|  | 
 | ||||||
|  | BUTTON DLG_FAX 10 2 | ||||||
|  | BEGIN | ||||||
|  |   PROMPT -11 -1 "Fax" | ||||||
|  |   PICTURE BMP_FAX | ||||||
| END | END | ||||||
| 
 | 
 | ||||||
| ENDPAGE | ENDPAGE | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user