tree.cpp Aggiunta possibilita' di non disegnare le foglie
utility.cpp Migliorata leggibilita' delle funzioni encode/decode viswin.* Derivata la TViswin da TField_window, non piu' da TScroll_window window.* Reso pubblico il metodo parent() usato ora da TWindowed_field git-svn-id: svn://10.65.10.50/trunk@6187 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									d38dca6338
								
							
						
					
					
						commit
						f464012520
					
				| @ -1,5 +1,3 @@ | |||||||
| #include <stdio.h> |  | ||||||
|              |  | ||||||
| #include <colors.h>             | #include <colors.h>             | ||||||
| #include <tree.h> | #include <tree.h> | ||||||
| #include <urldefid.h> | #include <urldefid.h> | ||||||
| @ -672,11 +670,9 @@ bool TString_tree::get_description(TString& str) const | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ///////////////////////////////////////////////////////////
 | ///////////////////////////////////////////////////////////
 | ||||||
| // TTree_window
 | // TNode_info
 | ||||||
| ///////////////////////////////////////////////////////////
 | ///////////////////////////////////////////////////////////
 | ||||||
| 
 | 
 | ||||||
| #include <maskfld.h> |  | ||||||
| 
 |  | ||||||
| class TNode_info : public TSortable | class TNode_info : public TSortable | ||||||
| { | { | ||||||
| public: | public: | ||||||
| @ -757,11 +753,17 @@ int TNode_info_array::find(const TNode_info& ni) const | |||||||
|   return i; |   return i; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| class TTree_window : public TScroll_window |  | ||||||
| {    |  | ||||||
|   TTree_field* _owner; |  | ||||||
|   TTree* _tree; |  | ||||||
| 
 | 
 | ||||||
|  | ///////////////////////////////////////////////////////////
 | ||||||
|  | // TTree_window
 | ||||||
|  | ///////////////////////////////////////////////////////////
 | ||||||
|  | 
 | ||||||
|  | #include <maskfld.h> | ||||||
|  | 
 | ||||||
|  | class TTree_window : public TField_window | ||||||
|  | {    | ||||||
|  |   TTree* _tree; | ||||||
|  |   bool _hide_leaves; | ||||||
|   long _first_line;        // Prima riga disegnata
 |   long _first_line;        // Prima riga disegnata
 | ||||||
|   TNode_info_array _node_info; |   TNode_info_array _node_info; | ||||||
|   TNode_info _curr_info;   // Nodo attualmente selezionato
 |   TNode_info _curr_info;   // Nodo attualmente selezionato
 | ||||||
| @ -781,6 +783,7 @@ protected: // Internal use | |||||||
| public:         | public:         | ||||||
|   TTree* tree() const { return _tree; } |   TTree* tree() const { return _tree; } | ||||||
|   void set_tree(TTree* tree) { _tree = tree; _first_line = -1; } |   void set_tree(TTree* tree) { _tree = tree; _first_line = -1; } | ||||||
|  |   void hide_leaves(bool yes) { _hide_leaves = yes; } | ||||||
| 
 | 
 | ||||||
|   TTree_window(int x, int y, int dx, int dy,  |   TTree_window(int x, int y, int dx, int dy,  | ||||||
|                WINDOW parent, TTree_field* owner); |                WINDOW parent, TTree_field* owner); | ||||||
| @ -913,7 +916,8 @@ void TTree_window::draw_plus_minus() | |||||||
| 
 | 
 | ||||||
| void TTree_window::update() | void TTree_window::update() | ||||||
| {  | {  | ||||||
|   xvt_dwin_clear(win(), NORMAL_BACK_COLOR); |   TField_window::update(); | ||||||
|  | 
 | ||||||
|   if (_tree == NULL) |   if (_tree == NULL) | ||||||
|     return; |     return; | ||||||
| 
 | 
 | ||||||
| @ -947,7 +951,9 @@ void TTree_window::update() | |||||||
|    |    | ||||||
|   _node_info.reset(); |   _node_info.reset(); | ||||||
|    |    | ||||||
|   const word flags = SCAN_IGNORING_UNEXPANDED | SCAN_PRE_ORDER | SCAN_IN_ORDER; |   word flags = SCAN_PRE_ORDER | SCAN_IN_ORDER | SCAN_IGNORING_UNEXPANDED; | ||||||
|  |   if (_hide_leaves) flags |= SCAN_IGNORING_LEAVES; | ||||||
|  |    | ||||||
|   _tree->scan_depth_first(callback_draw_node, &ui, flags); |   _tree->scan_depth_first(callback_draw_node, &ui, flags); | ||||||
|   while (ui._y < ui._lasty) |   while (ui._y < ui._lasty) | ||||||
|   { |   { | ||||||
| @ -1042,14 +1048,14 @@ bool TTree_window::on_key(KEY key) | |||||||
|     if (ok && _curr_info != ni)  |     if (ok && _curr_info != ni)  | ||||||
|     { |     { | ||||||
|       _tree->curr_id(_curr_info._id); |       _tree->curr_id(_curr_info._id); | ||||||
|       _owner->on_key(K_SPACE); |       owner().on_key(K_SPACE); | ||||||
|       if (!scroll) |       if (!scroll) | ||||||
|         force_update(); |         force_update(); | ||||||
|     }   |     }   | ||||||
|     if (!scroll) |     if (!scroll) | ||||||
|       return TRUE; |       return TRUE; | ||||||
|   } |   } | ||||||
|   return TScroll_window::on_key(key); |   return TField_window::on_key(key); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TTree_window::handler(WINDOW win, EVENT* ep) | void TTree_window::handler(WINDOW win, EVENT* ep) | ||||||
| @ -1074,11 +1080,11 @@ void TTree_window::handler(WINDOW win, EVENT* ep) | |||||||
|           else   |           else   | ||||||
|             ok = _tree->expand(); |             ok = _tree->expand(); | ||||||
|           if (ok) |           if (ok) | ||||||
|             _owner->on_key(K_CTRL + K_SPACE); |             owner().on_key(K_CTRL + K_SPACE); | ||||||
|         } |         } | ||||||
|         else |         else | ||||||
|         { |         { | ||||||
|           _owner->on_key(K_SPACE); |           owner().on_key(K_SPACE); | ||||||
|         }   |         }   | ||||||
|         if (ok) |         if (ok) | ||||||
|         { |         { | ||||||
| @ -1089,22 +1095,15 @@ void TTree_window::handler(WINDOW win, EVENT* ep) | |||||||
|     }   |     }   | ||||||
|     break; |     break; | ||||||
|   default: |   default: | ||||||
|     TScroll_window::handler(win, ep); |     TField_window::handler(win, ep); | ||||||
|     break; |     break; | ||||||
|   } |   } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| TTree_window::TTree_window(int x, int y, int dx, int dy,  | TTree_window::TTree_window(int x, int y, int dx, int dy,  | ||||||
|                            WINDOW parent, TTree_field* owner)           |                            WINDOW parent, TTree_field* owner)           | ||||||
|             : _owner(owner), _tree(NULL) |             : TField_window(x, y, dx, dy, parent, owner), _tree(NULL), _hide_leaves(FALSE) | ||||||
| {                                | {                                | ||||||
|   create(x, y, dx, dy, "", WSF_HSCROLL | WSF_VSCROLL, W_PLAIN, parent); |  | ||||||
|   set_font(); |  | ||||||
|   activate(owner->enabled()); |  | ||||||
|   if (owner->shown())  |  | ||||||
|     open(); |  | ||||||
|   else |  | ||||||
|     close();   |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| ///////////////////////////////////////////////////////////
 | ///////////////////////////////////////////////////////////
 | ||||||
| @ -1135,10 +1134,12 @@ void TTree_field::set_tree(TTree* tree) | |||||||
|   tree_win().set_tree(tree); |   tree_win().set_tree(tree); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TTree_field::create(WINDOW parent) | void TTree_field::hide_leaves(bool yes) | ||||||
| { | { | ||||||
|   TWindowed_field::create(parent); |   tree_win().hide_leaves(yes); | ||||||
|   set_win(new TTree_window(_ctl_data._x, _ctl_data._y,  | } | ||||||
|                            _ctl_data._width, _ctl_data._size,  | 
 | ||||||
|                            parent, this)); | TField_window* TTree_field::create_window(int x, int y, int dx, int dy, WINDOW parent) | ||||||
|  | { | ||||||
|  |   return new TTree_window(x, y, dx, dy, parent, this); | ||||||
| }            | }            | ||||||
|  | |||||||
| @ -429,7 +429,7 @@ const char *esc( | |||||||
|   return(__tmp_string); |   return(__tmp_string); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| HIDDEN const char * const key = "QSECOFR-"; | HIDDEN const char * const encryption_key = "QSECOFR-"; | ||||||
| 
 | 
 | ||||||
| // @doc EXTERNAL
 | // @doc EXTERNAL
 | ||||||
| 
 | 
 | ||||||
| @ -442,7 +442,7 @@ const char * encode( | |||||||
|   // @xref <f decode>
 |   // @xref <f decode>
 | ||||||
| { | { | ||||||
|   for (int i = 0; data[i]; i++) |   for (int i = 0; data[i]; i++) | ||||||
|     __tmp_string[i] = data[i] + (i < 8 ? key[i] : data[i - 8]); |     __tmp_string[i] = data[i] + (i < 8 ? encryption_key[i] : data[i - 8]); | ||||||
|   __tmp_string[i] = '\0'; |   __tmp_string[i] = '\0'; | ||||||
|   return __tmp_string;  |   return __tmp_string;  | ||||||
| } | } | ||||||
| @ -458,7 +458,7 @@ const char * decode( | |||||||
|   // @xref <f encode>
 |   // @xref <f encode>
 | ||||||
| { | { | ||||||
|   for (int i = 0; data[i]; i++) |   for (int i = 0; data[i]; i++) | ||||||
|     __tmp_string[i] = data[i] - (i < 8 ? key[i] : __tmp_string[i - 8]); |     __tmp_string[i] = data[i] - (i < 8 ? encryption_key[i] : __tmp_string[i - 8]); | ||||||
|   __tmp_string[i] = '\0'; |   __tmp_string[i] = '\0'; | ||||||
|   return __tmp_string;  |   return __tmp_string;  | ||||||
| } | } | ||||||
|  | |||||||
| @ -1187,6 +1187,9 @@ void TViswin::update () | |||||||
| //  }
 | //  }
 | ||||||
|   if (_need_update) |   if (_need_update) | ||||||
|   {                       |   {                       | ||||||
|  |     if (!_toplevel) | ||||||
|  |       TField_window::update(); | ||||||
|  |    | ||||||
|     check_link(); |     check_link(); | ||||||
|     if (_isselection) |     if (_isselection) | ||||||
|       erase_selection (); |       erase_selection (); | ||||||
| @ -2463,6 +2466,7 @@ TViswin::TViswin(const char *fname, | |||||||
|                  bool rulers,    // overridden by config parms
 |                  bool rulers,    // overridden by config parms
 | ||||||
|                  WINDOW parent, |                  WINDOW parent, | ||||||
|                  TBrowsefile_field* brwfld): |                  TBrowsefile_field* brwfld): | ||||||
|  |                  TField_window(x, y, width, height, parent, brwfld), | ||||||
|                  _filename (fname), _txt (fname, BUFFERSIZE), _islink (linkbutton), _isedit (editbutton), |                  _filename (fname), _txt (fname, BUFFERSIZE), _islink (linkbutton), _isedit (editbutton), | ||||||
|                  _isprint (printbutton), _isbar (FALSE), _istimer (FALSE), _iscross (FALSE), |                  _isprint (printbutton), _isbar (FALSE), _istimer (FALSE), _iscross (FALSE), | ||||||
|                  _isselection (FALSE), _sel_displayed (FALSE), _cross_displayed (FALSE), |                  _isselection (FALSE), _sel_displayed (FALSE), _cross_displayed (FALSE), | ||||||
| @ -2500,34 +2504,30 @@ TViswin::TViswin(const char *fname, | |||||||
|       _rulers = cnf.get_bool("Righelli", NULL, -1,TRUE);   |       _rulers = cnf.get_bool("Righelli", NULL, -1,TRUE);   | ||||||
|   } |   } | ||||||
|    |    | ||||||
|   const int larg = 76; |  | ||||||
|   const int alt = 20; |  | ||||||
| 
 |  | ||||||
|   RCT r; |   RCT r; | ||||||
| 
 |  | ||||||
|   xvt_vobj_get_client_rect (parent, &r); |   xvt_vobj_get_client_rect (parent, &r); | ||||||
|   int maxlarg = width == 0 ? (r.right / CHARX - 6)  : width;    |   int maxlarg = width == 0 ? (r.right / CHARX - 6)  : width;    | ||||||
|   int maxalt = height == 0 ? (r.bottom / CHARY - 6) : height;   |   int maxalt = height == 0 ? (r.bottom / CHARY - 6) : height;   | ||||||
| 
 | 
 | ||||||
|  |   if (_toplevel) | ||||||
|  |   { | ||||||
|  |     const int larg = 76; | ||||||
|  |     const int alt = 20; | ||||||
|  |      | ||||||
|     if (_toplevel && larg > maxlarg) |     if (_toplevel && larg > maxlarg) | ||||||
|       maxlarg = larg; |       maxlarg = larg; | ||||||
|     if (_toplevel && alt > maxalt) |     if (_toplevel && alt > maxalt) | ||||||
|       maxalt = alt; |       maxalt = alt; | ||||||
|    |    | ||||||
|  |     long flags = WSF_HSCROLL | WSF_VSCROLL | WSF_SIZE; | ||||||
|  |     create(x, y, maxlarg, maxalt, title, flags, W_DOC, parent, | ||||||
|  |             _toplevel ? VISWIN_BAR : 0); | ||||||
|  |   } | ||||||
|  |    | ||||||
|   for (int i = 0; i < 4; i++) |   for (int i = 0; i < 4; i++) | ||||||
|     _modules.add(new TImage(BMP_MODULE1 + i), i); |     _modules.add(new TImage(BMP_MODULE1 + i), i); | ||||||
|   _modules.add(new TImage(BMP_MODULE), i); |   _modules.add(new TImage(BMP_MODULE), i); | ||||||
| 
 | 
 | ||||||
|   long flags = WSF_HSCROLL | WSF_VSCROLL; |  | ||||||
|   if (_toplevel)  |  | ||||||
|   { |  | ||||||
|     flags |= WSF_SIZE /* | WSF_CLOSE */;                     |  | ||||||
|   }   |  | ||||||
|    |  | ||||||
|   WIN_TYPE rt = _toplevel ? W_DOC : W_PLAIN; |  | ||||||
|   create(x, y, maxlarg, maxalt, title, flags, rt, parent, |  | ||||||
|           _toplevel ? VISWIN_BAR : 0); |  | ||||||
| 
 |  | ||||||
|   attach_interface(win(), BACKGROUND); |   attach_interface(win(), BACKGROUND); | ||||||
| 
 | 
 | ||||||
|   set_opaque_text (TRUE); |   set_opaque_text (TRUE); | ||||||
| @ -2610,7 +2610,7 @@ TViswin ::~TViswin () | |||||||
| 
 | 
 | ||||||
| // Certified 100%
 | // Certified 100%
 | ||||||
| TBrowsefile_field::TBrowsefile_field(TMask* m) | TBrowsefile_field::TBrowsefile_field(TMask* m) | ||||||
| : TOperable_field(m), _viswin(NULL), _m_link(FALSE), _background(36), _lh(NULL) |                  : TWindowed_field(m), _m_link(FALSE), _background(36), _lh(NULL) | ||||||
| {} | {} | ||||||
| 
 | 
 | ||||||
| // Certified 100%
 | // Certified 100%
 | ||||||
| @ -2622,34 +2622,13 @@ word TBrowsefile_field::class_id() const | |||||||
| // Certified 100%
 | // Certified 100%
 | ||||||
| TBrowsefile_field::~TBrowsefile_field() | TBrowsefile_field::~TBrowsefile_field() | ||||||
| { | { | ||||||
|   delete _viswin; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void TBrowsefile_field::parse_head(TScanner& scanner) |  | ||||||
| { |  | ||||||
|   _ctl_data._width = scanner.integer(); |  | ||||||
|   _ctl_data._size  = scanner.integer(); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| void TBrowsefile_field::set_vis_win(TViswin* viswin) |  | ||||||
| { |  | ||||||
|   if (_viswin != NULL) |  | ||||||
|     delete _viswin; |  | ||||||
|   _viswin = viswin;   |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| // Certified 100%
 | // Certified 100%
 | ||||||
| void TBrowsefile_field::create(WINDOW parent) | TField_window* TBrowsefile_field::create_window(int x, int y, int dx, int dy, WINDOW parent) | ||||||
| {                             | {                             | ||||||
|   if (_viswin == NULL) |   return new TViswin(_ctl_data._prompt, _ctl_data._prompt, FALSE, FALSE, FALSE,  | ||||||
|     _viswin = new TViswin(_ctl_data._prompt, _ctl_data._prompt, FALSE, FALSE, FALSE,  |                      x, y, dy, dx, _flags.rightjust ? TRUE : FALSE, parent, this); | ||||||
|                           _ctl_data._x, _ctl_data._y, _ctl_data._size, _ctl_data._width,  |  | ||||||
|                           _flags.rightjust ? TRUE : FALSE, parent, this); |  | ||||||
|   _dlg    = _ctl_data._dlg; |  | ||||||
|   _parent = parent; |  | ||||||
|   WINDOW win = _viswin->win(); |  | ||||||
|   xvt_vobj_set_enabled(win, enabled()); |  | ||||||
|   xvt_vobj_set_visible(win, shown()); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -2685,7 +2664,7 @@ long TBrowsefile_field::set_text(const char* file, const char* line) | |||||||
|   }                          |   }                          | ||||||
|   fclose(instr);          |   fclose(instr);          | ||||||
|    |    | ||||||
|   _viswin->close_print();                                     |   vis_win().close_print();                                     | ||||||
|    |    | ||||||
|   return ret; |   return ret; | ||||||
| }                                   | }                                   | ||||||
| @ -2715,7 +2694,7 @@ int TBrowsefile_field::enable_link(const char *descr, char fg, char bg) | |||||||
|     b[0] = bg; |     b[0] = bg; | ||||||
|     tt->add(b); |     tt->add(b); | ||||||
|     lnk = _links.add(tt); |     lnk = _links.add(tt); | ||||||
|     _viswin->_txt.set_hotspots(fg, bg); |     vis_win()._txt.set_hotspots(fg, bg); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   return lnk; |   return lnk; | ||||||
| @ -2744,42 +2723,42 @@ void TBrowsefile_field::set_background(const char* bg) | |||||||
|    |    | ||||||
| void TBrowsefile_field::add_line(const char* l)             | void TBrowsefile_field::add_line(const char* l)             | ||||||
| {  | {  | ||||||
|   _viswin->add_line(l); |   vis_win().add_line(l); | ||||||
| }  | }  | ||||||
| 
 | 
 | ||||||
| void TBrowsefile_field::close()  | void TBrowsefile_field::close()  | ||||||
| {  | {  | ||||||
|   _viswin->close_print();  |   vis_win().close_print();  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void TBrowsefile_field::goto_pos(long r, long c) | void TBrowsefile_field::goto_pos(long r, long c) | ||||||
| { | { | ||||||
|   _viswin->goto_pos(r,c,TRUE); |   vis_win().goto_pos(r,c,TRUE); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void  TBrowsefile_field::goto_top()            | void  TBrowsefile_field::goto_top()            | ||||||
| {  | {  | ||||||
|   _viswin->goto_top();   |   vis_win().goto_top();   | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void  TBrowsefile_field::goto_end()            | void  TBrowsefile_field::goto_end()            | ||||||
| {  | {  | ||||||
|   _viswin->goto_end();  |   vis_win().goto_end();  | ||||||
| }                        | }                        | ||||||
| 
 | 
 | ||||||
| void  TBrowsefile_field::refresh() | void  TBrowsefile_field::refresh() | ||||||
| { | { | ||||||
|   _viswin->refresh(); |   vis_win().refresh(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| const char* TBrowsefile_field::get_text(long line, int column, int len) | const char* TBrowsefile_field::get_text(long line, int column, int len) | ||||||
| {  | {  | ||||||
|   return _viswin->_txt.line(line,(long)column, len);  |   return vis_win()._txt.line(line,(long)column, len);  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| long TBrowsefile_field::lines() | long TBrowsefile_field::lines() | ||||||
| { | { | ||||||
|   return _viswin->_txt.lines(); |   return vis_win()._txt.lines(); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -5,8 +5,8 @@ | |||||||
| class TPushbutton_control; | class TPushbutton_control; | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef __WINDOW_H | #ifndef __MASK_H | ||||||
| #include <window.h> | #include <mask.h> | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| #ifndef __TEXTFILE_H | #ifndef __TEXTFILE_H | ||||||
| @ -20,7 +20,7 @@ class TBrowsefile_field; | |||||||
| // @class TViswin | Classe per la gestione della finestra video di anteprima di stampa
 | // @class TViswin | Classe per la gestione della finestra video di anteprima di stampa
 | ||||||
| //
 | //
 | ||||||
| // @base public | TScroll_window
 | // @base public | TScroll_window
 | ||||||
| class TViswin : public TScroll_window | class TViswin : public TField_window | ||||||
| 
 | 
 | ||||||
| // @author:(INTERNAL) Villa
 | // @author:(INTERNAL) Villa
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1056,7 +1056,6 @@ void TWindow::line(short x0, short y0, short x1, short y1) | |||||||
|   PNT f = log2dev(x0,y0); |   PNT f = log2dev(x0,y0); | ||||||
|   PNT t = log2dev(x1,y1); |   PNT t = log2dev(x1,y1); | ||||||
| 
 | 
 | ||||||
| #if XVT_OS == XVT_OS_WIN || XVT_OS == XVT_OS_WIN32 |  | ||||||
|   if (!_pixmap)  |   if (!_pixmap)  | ||||||
|   { |   { | ||||||
|     if (f.h == 0) f.h = -CHARX; else f.h += CHARX>>1; |     if (f.h == 0) f.h = -CHARX; else f.h += CHARX>>1; | ||||||
| @ -1064,7 +1063,6 @@ void TWindow::line(short x0, short y0, short x1, short y1) | |||||||
|     if (t.h == 0) t.h = -CHARX; else t.h += CHARX>>1; |     if (t.h == 0) t.h = -CHARX; else t.h += CHARX>>1; | ||||||
|     if (t.v == 0) t.v = -CHARY; else t.v += CHARY>>1; |     if (t.v == 0) t.v = -CHARY; else t.v += CHARY>>1; | ||||||
|   } |   } | ||||||
| #endif |  | ||||||
| 
 | 
 | ||||||
|   xvt_dwin_draw_set_pos(win(), f); |   xvt_dwin_draw_set_pos(win(), f); | ||||||
|   xvt_dwin_draw_line(win(), t); |   xvt_dwin_draw_line(win(), t); | ||||||
|  | |||||||
| @ -193,9 +193,6 @@ protected: | |||||||
|   void set_modal(bool m) |   void set_modal(bool m) | ||||||
|   { _modal = m; } |   { _modal = m; } | ||||||
| 
 | 
 | ||||||
|   // @cmember Ritorna l'handler della finestra padre
 |  | ||||||
|   WINDOW parent() const; |  | ||||||
| 
 |  | ||||||
|   // @cmember Fa' l'update della finstra
 |   // @cmember Fa' l'update della finstra
 | ||||||
|   virtual void update() |   virtual void update() | ||||||
|   {} |   {} | ||||||
| @ -221,6 +218,8 @@ public: | |||||||
|   // @cmember Ritorna il descrittore della finestra
 |   // @cmember Ritorna il descrittore della finestra
 | ||||||
|   virtual WINDOW win() const |   virtual WINDOW win() const | ||||||
|   { return _win; }    |   { return _win; }    | ||||||
|  |   // @cmember Ritorna il descrittore della finestra padre
 | ||||||
|  |   WINDOW parent() const; | ||||||
| 
 | 
 | ||||||
|   // @cmember Gestisce la pressione del tasto
 |   // @cmember Gestisce la pressione del tasto
 | ||||||
|   virtual bool on_key(KEY) |   virtual bool on_key(KEY) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user