Aggiunto metodo per sapere quale sara' il campo che' prendera'
git-svn-id: svn://10.65.10.50/trunk@1187 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									5ceac3fb47
								
							
						
					
					
						commit
						f51135451c
					
				| @ -24,7 +24,9 @@ bool TMask::test_focus_change(WINDOW next) | |||||||
| {                   | {                   | ||||||
|   bool ok = TRUE; |   bool ok = TRUE; | ||||||
|    |    | ||||||
|   TMask_field& prev = fld(_focus); |   TMask_field& prev = fld(_focus);       | ||||||
|  |   _next_fld = next == NULL_WIN ? DLG_NULL : fld(find_field_win(next)).dlg(); | ||||||
|  |    | ||||||
|   if (prev.win() != next) |   if (prev.win() != next) | ||||||
|   {       |   {       | ||||||
|     ok = prev.test_focus_change(); |     ok = prev.test_focus_change(); | ||||||
| @ -440,7 +442,9 @@ void TMask::start_run() | |||||||
|    |    | ||||||
|   load_checks(); |   load_checks(); | ||||||
| 
 | 
 | ||||||
|   const int max = fields(); |   const int max = fields();   | ||||||
|  |    | ||||||
|  |   _next_fld = DLG_NULL; | ||||||
|   for (int i = 0; i < max; i++) |   for (int i = 0; i < max; i++) | ||||||
|   { |   { | ||||||
|     TMask_field& f = fld(i); |     TMask_field& f = fld(i); | ||||||
| @ -673,8 +677,6 @@ void TMask::set_focus() | |||||||
| // Move the focus to the next (+1) or previous(-1) valid control
 | // Move the focus to the next (+1) or previous(-1) valid control
 | ||||||
| void TMask::move_focus_field(int d) | void TMask::move_focus_field(int d) | ||||||
| { | { | ||||||
|   if (!test_focus_change()) |  | ||||||
|     return; |  | ||||||
|    |    | ||||||
|   TMask_field& f = fld(_focus);                            |   TMask_field& f = fld(_focus);                            | ||||||
|   if (f.class_id() == CLASS_RADIO_FIELD) |   if (f.class_id() == CLASS_RADIO_FIELD) | ||||||
| @ -687,6 +689,10 @@ void TMask::move_focus_field(int d) | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   const int focus = find_active_field(_focus+d, d); |   const int focus = find_active_field(_focus+d, d); | ||||||
|  | 
 | ||||||
|  |   if (!test_focus_change(fld(focus).win())) | ||||||
|  |     return; | ||||||
|  | 
 | ||||||
|   if (fld(focus).parent() == f.parent() || check_current_page()) |   if (fld(focus).parent() == f.parent() || check_current_page()) | ||||||
|     _focus = focus; |     _focus = focus; | ||||||
|    |    | ||||||
| @ -694,7 +700,7 @@ void TMask::move_focus_field(int d) | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool TMask::stop_run(KEY key) | bool TMask::stop_run(KEY key) | ||||||
| { | {  | ||||||
|   if (key != K_AUTO_ENTER && key != K_FORCE_CLOSE) |   if (key != K_AUTO_ENTER && key != K_FORCE_CLOSE) | ||||||
|   { |   { | ||||||
|     const int last = fields(); |     const int last = fields(); | ||||||
| @ -732,7 +738,10 @@ bool TMask::stop_run(KEY key) | |||||||
|     if (!ok) return FALSE; |     if (!ok) return FALSE; | ||||||
|   } |   } | ||||||
|   if (is_running())           // Gestisce correttamenete le maschere chiuse
 |   if (is_running())           // Gestisce correttamenete le maschere chiuse
 | ||||||
|  |   { | ||||||
|     get_mask_fields(); |     get_mask_fields(); | ||||||
|  |     _next_fld = DLG_NULL; | ||||||
|  |   } | ||||||
| 
 | 
 | ||||||
|   return TWindow::stop_run(key); |   return TWindow::stop_run(key); | ||||||
| } | } | ||||||
| @ -919,7 +928,7 @@ int TMask::find_first_field(WINDOW w, int dir) const | |||||||
| 
 | 
 | ||||||
| bool TMask::check_current_page() | bool TMask::check_current_page() | ||||||
| { | { | ||||||
|   if (!test_focus_change()) |   if (!test_focus_change())  | ||||||
|     return FALSE; |     return FALSE; | ||||||
|   /*  
 |   /*  
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -40,7 +40,8 @@ class TMask : public TWindow | |||||||
|   TArray _field;                // Fields in the mask
 |   TArray _field;                // Fields in the mask
 | ||||||
|    |    | ||||||
|   int _first_focus;             // First control to have focus
 |   int _first_focus;             // First control to have focus
 | ||||||
|   int _focus;                   // Control with focus
 |   int _focus;                   // Control with focus      
 | ||||||
|  |   int _next_fld;                // Control who is gaining the focus
 | ||||||
|   int _sheets;                  // Number of sheets
 |   int _sheets;                  // Number of sheets
 | ||||||
| 
 | 
 | ||||||
|   MASK_HANDLER _handler;        // User defined key handler
 |   MASK_HANDLER _handler;        // User defined key handler
 | ||||||
| @ -129,7 +130,8 @@ public: | |||||||
|   virtual void close(); |   virtual void close(); | ||||||
|   virtual void activate(bool on = TRUE); |   virtual void activate(bool on = TRUE); | ||||||
| 
 | 
 | ||||||
|   int id2pos(short id) const; |   int id2pos(short id) const;   | ||||||
|  |   short next_fld() const { return _next_fld;} // id of the field who is gaining the focus DLG_NULL is not exists
 | ||||||
|   TMask_field& fld(int i) const { return (TMask_field&)_field[i]; } // Ritorna il campo i-esimo della maschera
 |   TMask_field& fld(int i) const { return (TMask_field&)_field[i]; } // Ritorna il campo i-esimo della maschera
 | ||||||
|   TMask_field& field(short id) const;   // field with given id
 |   TMask_field& field(short id) const;   // field with given id
 | ||||||
|   TEdit_field& efield(short id) const;  // edit-field with given id
 |   TEdit_field& efield(short id) const;  // edit-field with given id
 | ||||||
|  | |||||||
| @ -5,7 +5,7 @@ | |||||||
| #include <execp.h> | #include <execp.h> | ||||||
| #include <mailbox.h> | #include <mailbox.h> | ||||||
| #include <mask.h> | #include <mask.h> | ||||||
| #include <prefix.h> | #include <prefix.h>  | ||||||
| #include <relation.h> | #include <relation.h> | ||||||
| #include <sheet.h> | #include <sheet.h> | ||||||
| #include <tabutil.h> | #include <tabutil.h> | ||||||
| @ -1637,7 +1637,7 @@ bool TBrowse::empty_check() | |||||||
| 
 | 
 | ||||||
| TEdit_field::TEdit_field(TMask* mask) | TEdit_field::TEdit_field(TMask* mask) | ||||||
| : TMask_field(mask), _browse(NULL), _sheet(NULL), | : TMask_field(mask), _browse(NULL), _sheet(NULL), | ||||||
|   _buttonwin(NULL_WIN), _check(CHECK_NONE), _check_enabled(TRUE), |   _buttonwin(NULL_WIN), _check(CHECK_NONE), _check_enabled(FALSE), | ||||||
|   _forced(FALSE) |   _forced(FALSE) | ||||||
| {} | {} | ||||||
| 
 | 
 | ||||||
| @ -1770,6 +1770,7 @@ bool TEdit_field::parse_item(TScanner& scanner) | |||||||
|       _browse->set_insert(tabmaskname); |       _browse->set_insert(tabmaskname); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |     _check_enabled = TRUE; | ||||||
|     return TRUE; |     return TRUE; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -1783,8 +1784,11 @@ bool TEdit_field::parse_item(TScanner& scanner) | |||||||
|     if (what == "US" || what == "AL") |     if (what == "US" || what == "AL") | ||||||
|       _browse = new TBrowse(this, b->cursor()); |       _browse = new TBrowse(this, b->cursor()); | ||||||
| 
 | 
 | ||||||
|     if (_browse) |     if (_browse)  | ||||||
|  |     { | ||||||
|  |       _check_enabled = TRUE; | ||||||
|       return _browse->parse_copy(what, *b); |       return _browse->parse_copy(what, *b); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
| #ifdef DBG | #ifdef DBG | ||||||
|     return yesnofatal_box("Impossibile COPY senza USE nel campo %d", dlg()); |     return yesnofatal_box("Impossibile COPY senza USE nel campo %d", dlg()); | ||||||
| @ -1805,7 +1809,8 @@ bool TEdit_field::parse_item(TScanner& scanner) | |||||||
| #ifdef DBG     | #ifdef DBG     | ||||||
|     if (_sheet) return yesnofatal_box("SHEET duplicato nel campo %d", dlg()); |     if (_sheet) return yesnofatal_box("SHEET duplicato nel campo %d", dlg()); | ||||||
| #endif | #endif | ||||||
|     _sheet = new TList_sheet(this, _prompt, scanner.string()); |     _sheet = new TList_sheet(this, _prompt, scanner.string());  | ||||||
|  |     _check_enabled = TRUE; | ||||||
|     return TRUE; |     return TRUE; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user