Patch level : 10.0
Files correlati : ba0.exe ba0200a.msk Ricompilazione Demo : [ ] Commento : 0000914: cambio stile il cambio stile chiude tutte le applicazione eventualmente aperte e riporta al menu principale. Se si effettua da un sottomenu riporta al menu principale. 0000915: stili qualsiasi sia lo stile adottato sulla mappa dell'aspetto viene sempre visualizzato campo. 0000828: info Nella versione outlook non esiste la possibilità di cercare un punto di menu digitando il nome? git-svn-id: svn://10.65.10.50/trunk@17320 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									30776a4132
								
							
						
					
					
						commit
						2ff6ecb98e
					
				
							
								
								
									
										404
									
								
								ba/ba0100.cpp
									
									
									
									
									
								
							
							
						
						
									
										404
									
								
								ba/ba0100.cpp
									
									
									
									
									
								
							@ -25,7 +25,6 @@
 | 
				
			|||||||
#include "ba0400a.h"
 | 
					#include "ba0400a.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MEN_FILE "bamenu.men"
 | 
					#define MEN_FILE "bamenu.men"
 | 
				
			||||||
#define OPTIONS_MENU   M_FONT
 | 
					 | 
				
			||||||
#define PREFERRED_MENU M_STYLE
 | 
					#define PREFERRED_MENU M_STYLE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define DLG_TREE 301
 | 
					#define DLG_TREE 301
 | 
				
			||||||
@ -50,6 +49,7 @@ protected:  // TApplication
 | 
				
			|||||||
  virtual bool destroy();
 | 
					  virtual bool destroy();
 | 
				
			||||||
  virtual bool menu(MENU_TAG m);
 | 
					  virtual bool menu(MENU_TAG m);
 | 
				
			||||||
  virtual long handler(WINDOW win, EVENT* ep);
 | 
					  virtual long handler(WINDOW win, EVENT* ep);
 | 
				
			||||||
 | 
					  virtual bool firm_change_enabled() const;
 | 
				
			||||||
  virtual void on_firm_change();
 | 
					  virtual void on_firm_change();
 | 
				
			||||||
  virtual bool test_assistance_year() const;
 | 
					  virtual bool test_assistance_year() const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -295,6 +295,7 @@ class TColor_mask : public TAutomask
 | 
				
			|||||||
  public:
 | 
					  public:
 | 
				
			||||||
    TPreview_panel(short x, short y, short dx, short dy, TColor_mask* owner);
 | 
					    TPreview_panel(short x, short y, short dx, short dy, TColor_mask* owner);
 | 
				
			||||||
  } *_preview;
 | 
					  } *_preview;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
  class TPreview_icons : public TWindow
 | 
					  class TPreview_icons : public TWindow
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TColor_mask* _owner;
 | 
					    TColor_mask* _owner;
 | 
				
			||||||
@ -304,7 +305,9 @@ class TColor_mask : public TAutomask
 | 
				
			|||||||
    TPreview_icons(short x, short y, short dx, short dy, TColor_mask* owner);
 | 
					    TPreview_icons(short x, short y, short dx, short dy, TColor_mask* owner);
 | 
				
			||||||
  } *_icons;
 | 
					  } *_icons;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _cur_theme;
 | 
				
			||||||
  TAssoc_array _color;
 | 
					  TAssoc_array _color;
 | 
				
			||||||
 | 
					  TString256 _font_desc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected: // TMask
 | 
					protected: // TMask
 | 
				
			||||||
  virtual bool stop_run(KEY key) { return TWindow::stop_run(key); }
 | 
					  virtual bool stop_run(KEY key) { return TWindow::stop_run(key); }
 | 
				
			||||||
@ -313,19 +316,19 @@ protected: // TMask
 | 
				
			|||||||
protected:  
 | 
					protected:  
 | 
				
			||||||
  COLOR get_color_entry(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 TString& get_font_desc() const { return _font_desc; }
 | 
				
			||||||
  const char* cid2name(short cid) const;
 | 
					  const char* cid2name(short cid) const;
 | 
				
			||||||
  COLOR cid2color(short cid) const;
 | 
					  COLOR cid2color(short cid) const;
 | 
				
			||||||
  COLOR cid2syscolor(short cid, const XVT_COLOR_COMPONENT* cc) const;
 | 
					  COLOR cid2syscolor(short cid, const XVT_COLOR_COMPONENT* cc) const;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  void load_themes();
 | 
					  void load_themes();
 | 
				
			||||||
  bool apply_theme();
 | 
					  bool apply_theme();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void save_colors(TConfig& colors);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					public:
 | 
				
			||||||
  void save_colors();
 | 
					  void save_colors();
 | 
				
			||||||
 
 | 
					 | 
				
			||||||
  virtual KEY run();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  TColor_mask();
 | 
					  TColor_mask();
 | 
				
			||||||
  virtual ~TColor_mask() { }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COLOR TColor_mask::TPreview_panel::get_color_entry(const char* name) const
 | 
					COLOR TColor_mask::TPreview_panel::get_color_entry(const char* name) const
 | 
				
			||||||
@ -355,6 +358,17 @@ void TColor_mask::TPreview_panel::update()
 | 
				
			|||||||
  line(x+1, y+h-1, x+w-2, y+h-1); 
 | 
					  line(x+1, y+h-1, x+w-2, y+h-1); 
 | 
				
			||||||
  line(x+w-2, y+h-1, x+w-2, y);
 | 
					  line(x+w-2, y+h-1, x+w-2, y);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const TString& font_desc = _owner->get_font_desc();
 | 
				
			||||||
 | 
					  if (font_desc.full())
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    XVT_FNTID fontid = xvt_font_create();
 | 
				
			||||||
 | 
					    xvt_font_deserialize(fontid, font_desc);
 | 
				
			||||||
 | 
					    xvt_dwin_set_font(win(), fontid);
 | 
				
			||||||
 | 
					    xvt_font_destroy(fontid);
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    xvt_dwin_set_font(win(), xvt_default_font());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  set_opaque_text(false);
 | 
					  set_opaque_text(false);
 | 
				
			||||||
  set_pen(p = get_color_entry("Normal"));
 | 
					  set_pen(p = get_color_entry("Normal"));
 | 
				
			||||||
  set_brush(b = get_color_entry("NormalBack"));
 | 
					  set_brush(b = get_color_entry("NormalBack"));
 | 
				
			||||||
@ -409,23 +423,47 @@ TColor_mask::TPreview_icons::TPreview_icons(short x, short y, short dx, short dy
 | 
				
			|||||||
void TColor_mask::load_themes()
 | 
					void TColor_mask::load_themes()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TList_field& fl = lfield(211);
 | 
					  TList_field& fl = lfield(211);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TToken_string codes = fl.get_codes();
 | 
					  TToken_string codes = fl.get_codes();
 | 
				
			||||||
  int k = codes.items();
 | 
					  TToken_string values = fl.get_values();
 | 
				
			||||||
  if (k <= 2)
 | 
					
 | 
				
			||||||
 | 
					  const int default_items = 3; // Corrente, Campo, Sistema
 | 
				
			||||||
 | 
					  // Elimina tutti gli elementi non standard (oltre il terzo)
 | 
				
			||||||
 | 
					  if (codes.items() > default_items)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TConfig themes("res/themes.ini");
 | 
					    for (int i = 0; i < 2; i++)
 | 
				
			||||||
    TString_array pl; themes.list_paragraphs(pl);
 | 
					 | 
				
			||||||
    if (!pl.empty())
 | 
					 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      TToken_string values = fl.get_values();
 | 
					      TToken_string& str = i == 0 ? codes : values;
 | 
				
			||||||
      FOR_EACH_ARRAY_ROW(pl, i, row)
 | 
					      int pos = 0;
 | 
				
			||||||
      {
 | 
					      for (int j = 0; j < default_items; j++)
 | 
				
			||||||
        codes.add(k++);
 | 
					        pos = str.find(str.separator(), pos);
 | 
				
			||||||
        values.add(*row);
 | 
					      str.cut(pos);
 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      fl.replace_items(codes, values);
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int k = codes.items();
 | 
				
			||||||
 | 
					  TConfig default_themes("res/themes.ini");
 | 
				
			||||||
 | 
					  TString_array pl; 
 | 
				
			||||||
 | 
					  default_themes.list_paragraphs(pl);
 | 
				
			||||||
 | 
					  FOR_EACH_ARRAY_ROW(pl, i, row)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    codes.add(k++);
 | 
				
			||||||
 | 
					    values.add(row->left(15));
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  TConfig user_themes(CONFIG_GUI);
 | 
				
			||||||
 | 
					  user_themes.list_paragraphs(pl);
 | 
				
			||||||
 | 
					  FOR_EACH_ARRAY_ROW(pl, j, raw)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if (raw->starts_with("Theme_"))
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      codes.add(k++);
 | 
				
			||||||
 | 
					      values.add(raw->mid(6, 15));
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (k > default_items)
 | 
				
			||||||
 | 
					    fl.replace_items(codes, values);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TColor_mask::apply_theme()
 | 
					bool TColor_mask::apply_theme()
 | 
				
			||||||
@ -433,24 +471,37 @@ bool TColor_mask::apply_theme()
 | 
				
			|||||||
  bool applied = false;
 | 
					  bool applied = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const int theme = get_int(211);
 | 
					  const int theme = get_int(211);
 | 
				
			||||||
  if (theme > 1)
 | 
					  if (theme > 2) // Normal theme
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    TList_field& fl = lfield(211);
 | 
					    const TList_field& fl = lfield(211);
 | 
				
			||||||
    TToken_string codes = fl.get_codes();
 | 
					 | 
				
			||||||
    TToken_string values = fl.get_values();
 | 
					    TToken_string values = fl.get_values();
 | 
				
			||||||
    const int pos = codes.get_pos(theme);
 | 
					    
 | 
				
			||||||
    TConfig themes("res/themes.ini", values.get(pos));
 | 
					    TString name = values.get(theme);
 | 
				
			||||||
    TAssoc_array& colors = themes.list_variables();
 | 
					    TConfig def_themes("res/themes.ini", name);
 | 
				
			||||||
 | 
					    TAssoc_array& def_colors = def_themes.list_variables();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    name.insert("Theme_");
 | 
				
			||||||
 | 
					    TConfig usr_themes(CONFIG_GUI, name);
 | 
				
			||||||
 | 
					    TAssoc_array& usr_colors = usr_themes.list_variables();
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    TAssoc_array& colors = usr_colors.empty() ? def_colors : usr_colors;
 | 
				
			||||||
    if (!colors.empty())
 | 
					    if (!colors.empty())
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      TToken_string rgb(15, ',');
 | 
					      TToken_string rgb(15, ',');
 | 
				
			||||||
      FOR_EACH_ASSOC_STRING(colors, obj, key, value)
 | 
					      FOR_EACH_ASSOC_STRING(colors, obj, key, value)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        rgb = value;
 | 
					        rgb = value;
 | 
				
			||||||
        const byte r = (byte)rgb.get_int(0); 
 | 
					        if (rgb.items() == 3) // Trattasi di colore
 | 
				
			||||||
        const byte g = (byte)rgb.get_int();
 | 
					        {
 | 
				
			||||||
        const byte b = (byte)rgb.get_int();
 | 
					          const byte r = (byte)rgb.get_int(0); 
 | 
				
			||||||
        set_color_entry(key, XVT_MAKE_COLOR(r,g,b));
 | 
					          const byte g = (byte)rgb.get_int();
 | 
				
			||||||
 | 
					          const byte b = (byte)rgb.get_int();
 | 
				
			||||||
 | 
					          set_color_entry(key, XVT_MAKE_COLOR(r,g,b));
 | 
				
			||||||
 | 
					        } else
 | 
				
			||||||
 | 
					        if (xvt_str_compare_ignoring_case(key, "FontDesc") == 0)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          _font_desc = value;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      applied = true;
 | 
					      applied = true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -460,7 +511,19 @@ bool TColor_mask::apply_theme()
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    switch (theme)
 | 
					    switch (theme)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
    case 1: // System colors
 | 
					    case 1: // Campo default colors
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        for (short bid = 101; bid <= 113; bid++)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          const char* name = cid2name(bid); 
 | 
				
			||||||
 | 
					          const COLOR color = cid2color(bid);
 | 
				
			||||||
 | 
					          set_color_entry(name, color);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        _font_desc.cut(0);
 | 
				
			||||||
 | 
					        applied = true;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case 2: // System colors
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        XVT_COLOR_COMPONENT* cc = (XVT_COLOR_COMPONENT*)xvt_vobj_get_attr(NULL_WIN, ATTR_APP_CTL_COLORS); 
 | 
					        XVT_COLOR_COMPONENT* cc = (XVT_COLOR_COMPONENT*)xvt_vobj_get_attr(NULL_WIN, ATTR_APP_CTL_COLORS); 
 | 
				
			||||||
        for (short bid = 101; bid <= 113; bid++)
 | 
					        for (short bid = 101; bid <= 113; bid++)
 | 
				
			||||||
@ -470,28 +533,29 @@ bool TColor_mask::apply_theme()
 | 
				
			|||||||
          set_color_entry(name, color);
 | 
					          set_color_entry(name, color);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        xvt_mem_free((DATA_PTR)cc);
 | 
					        xvt_mem_free((DATA_PTR)cc);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        XVT_FNTID fontid = xvt_res_get_font(0);
 | 
				
			||||||
 | 
					        xvt_font_serialize(fontid, _font_desc.get_buffer(), _font_desc.size());
 | 
				
			||||||
 | 
					        xvt_font_destroy(fontid);
 | 
				
			||||||
 | 
					        set(214, "X");  // System buttons
 | 
				
			||||||
        applied = true;
 | 
					        applied = true;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    default: // Default colors
 | 
					    default: // User defined settings
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        for (short bid = 101; bid <= 113; bid++)
 | 
					        TConfig color(CONFIG_GUI, "Colors");
 | 
				
			||||||
        {
 | 
					        _color = color.list_variables();
 | 
				
			||||||
          const char* name = cid2name(bid); 
 | 
					        xvt_font_serialize(xvt_default_font(), _font_desc.get_buffer(), _font_desc.size());
 | 
				
			||||||
          const COLOR color = cid2color(bid);
 | 
					 | 
				
			||||||
          set_color_entry(name, color);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        TConfig font(CONFIG_GUI, "Font");
 | 
					 | 
				
			||||||
        font.set("FontDesc", ""); // Azzera font e lo ricarica alla prossima
 | 
					 | 
				
			||||||
        xvt_load_default_font();
 | 
					 | 
				
			||||||
        applied = true;
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  if (applied)
 | 
					  if (applied)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
    _preview->force_update();
 | 
					    _preview->force_update();
 | 
				
			||||||
 | 
					    _cur_theme = theme;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return applied;
 | 
					  return applied;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -506,45 +570,107 @@ bool TColor_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
				
			|||||||
  case 211:
 | 
					  case 211:
 | 
				
			||||||
    if (e == fe_init)
 | 
					    if (e == fe_init)
 | 
				
			||||||
      load_themes();
 | 
					      load_themes();
 | 
				
			||||||
    break;
 | 
					    if (e == fe_modify && is_running())
 | 
				
			||||||
  case 212:
 | 
					    {
 | 
				
			||||||
    if (e == fe_button) 
 | 
					      const int new_theme = atoi(f.get());
 | 
				
			||||||
      apply_theme();
 | 
					      if (new_theme != _cur_theme)
 | 
				
			||||||
 | 
					        apply_theme();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  case 217:
 | 
					  case 217:
 | 
				
			||||||
    if (e == fe_init || e == fe_modify)
 | 
					    if (e == fe_init || e == fe_modify)
 | 
				
			||||||
      _icons->force_update();
 | 
					      _icons->force_update();
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
 | 
					  case DLG_OK:
 | 
				
			||||||
 | 
					    if (e == fe_button)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      stop_run(K_CTRL+'R');
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case DLG_SAVEREC:
 | 
				
			||||||
 | 
					    if (e == fe_button)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      stop_run(K_ENTER);
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case DLG_NEWREC:
 | 
				
			||||||
 | 
					    if (e == fe_button)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      TString name = user();
 | 
				
			||||||
 | 
					      xvt_dm_post_string_prompt(TR("Nome del tema"), name.get_buffer(), 16);
 | 
				
			||||||
 | 
					      if (name.full())
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        name.trim();
 | 
				
			||||||
 | 
					        name.upper();
 | 
				
			||||||
 | 
					        name.insert("Theme_");
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          TConfig ini(CONFIG_GUI, name);
 | 
				
			||||||
 | 
					          save_colors(ini);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        load_themes();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
 | 
					  case DLG_DELREC:
 | 
				
			||||||
 | 
					    if (e == fe_button)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      TList_field& themes = lfield(211);
 | 
				
			||||||
 | 
					      const int pos = atoi(themes.get());
 | 
				
			||||||
 | 
					      bool can_delete = pos > 2;
 | 
				
			||||||
 | 
					      if (can_delete) // Tema non standard
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        TToken_string values = themes.get_values();
 | 
				
			||||||
 | 
					        TString name = values.get(pos);
 | 
				
			||||||
 | 
					        bool done = yesno_box(FR("Confermare la cancellazione del tema %s"), name.get_buffer());
 | 
				
			||||||
 | 
					        if (done)
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          name.insert("Theme_");
 | 
				
			||||||
 | 
					          TConfig ini(CONFIG_GUI, name);
 | 
				
			||||||
 | 
					          if (ini.new_paragraph())
 | 
				
			||||||
 | 
					            done = can_delete = false;
 | 
				
			||||||
 | 
					          else
 | 
				
			||||||
 | 
					            ini.remove_all();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (done)
 | 
				
			||||||
 | 
					          load_themes();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (!can_delete)
 | 
				
			||||||
 | 
					        error_box(TR("Tema non cancellabile"));
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    break;
 | 
				
			||||||
  case DLG_USER:
 | 
					  case DLG_USER:
 | 
				
			||||||
    if (e == fe_button)
 | 
					    if (e == fe_button)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      XVT_FNTID fontid = xvt_default_font();
 | 
					      XVT_FNTID fontid = xvt_font_create();
 | 
				
			||||||
      if (xvt_dm_post_font_sel(TASK_WIN, fontid, NULL, 0))
 | 
					      if (_font_desc.full())
 | 
				
			||||||
 | 
					        xvt_font_deserialize(fontid, _font_desc);
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        xvt_font_copy(fontid, xvt_default_font(), XVT_FA_ALL);
 | 
				
			||||||
 | 
					      if (xvt_dm_post_font_sel(win(), fontid, NULL, 0))
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        char font_ser_desc[256];
 | 
					        xvt_font_serialize(fontid, _font_desc.get_buffer(), _font_desc.size());
 | 
				
			||||||
        TConfig font(CONFIG_GUI, "Font");
 | 
					        _preview->force_update();
 | 
				
			||||||
        xvt_font_serialize(fontid, font_ser_desc, sizeof(font_ser_desc));
 | 
					 | 
				
			||||||
        font.set("FontDesc", font_ser_desc);
 | 
					 | 
				
			||||||
        font.set_paragraph("Colors");    // Forza la scrittura del paragrafo
 | 
					 | 
				
			||||||
        xvt_load_default_font();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        force_update();
 | 
					 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      xvt_font_destroy(fontid);
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    break;  
 | 
					    break;  
 | 
				
			||||||
  default:
 | 
					  default:
 | 
				
			||||||
    if (id >= 101 && id <= 113 && e == fe_button)
 | 
					    if (e == fe_button && id >= 101 && id <= 113)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      TColor_mask& m = (TColor_mask&)f.mask();
 | 
					      const char* name = cid2name(f.dlg());
 | 
				
			||||||
      const char* name = m.cid2name(f.dlg());
 | 
					      COLOR col = get_color_entry(name);
 | 
				
			||||||
      COLOR col = m.get_color_entry(name);
 | 
					      col = choose_color(col, win());
 | 
				
			||||||
      col = choose_color(col, m.win());
 | 
					      if (col != COLOR_INVALID)
 | 
				
			||||||
      ok = col != COLOR_INVALID;
 | 
					 | 
				
			||||||
      if (ok)
 | 
					 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        m.set_color_entry(name, col);
 | 
					        set_color_entry(name, col);
 | 
				
			||||||
        m.stop_run(K_CTRL + 'R');
 | 
					        _preview->force_update();
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					      return false;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    break;
 | 
					    break;
 | 
				
			||||||
  }  
 | 
					  }  
 | 
				
			||||||
@ -552,7 +678,7 @@ bool TColor_mask::on_field_event(TOperable_field& f, TField_event e, long jolly)
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TColor_mask::TColor_mask() 
 | 
					TColor_mask::TColor_mask() 
 | 
				
			||||||
           : TAutomask("ba0200a") 
 | 
					           : TAutomask("ba0200a"), _cur_theme(0)
 | 
				
			||||||
{               
 | 
					{               
 | 
				
			||||||
  TConfig color(CONFIG_GUI, "Colors");
 | 
					  TConfig color(CONFIG_GUI, "Colors");
 | 
				
			||||||
  _color = color.list_variables();
 | 
					  _color = color.list_variables();
 | 
				
			||||||
@ -561,7 +687,7 @@ TColor_mask::TColor_mask()
 | 
				
			|||||||
  set(215, ADVANCED_GRAPHICS ? "X" : "");
 | 
					  set(215, ADVANCED_GRAPHICS ? "X" : "");
 | 
				
			||||||
  set(216, color.get_int("TreeView"));
 | 
					  set(216, color.get_int("TreeView"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  _preview = new TPreview_panel(1, 8, 33, 8, this);
 | 
					  _preview = new TPreview_panel(1, 7, 33, 8, this);
 | 
				
			||||||
  _icons = new TPreview_icons(1, 10, -2, -2, this);
 | 
					  _icons = new TPreview_icons(1, 10, -2, -2, this);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  const int sz = color.get_int("ToolSize");
 | 
					  const int sz = color.get_int("ToolSize");
 | 
				
			||||||
@ -569,19 +695,12 @@ TColor_mask::TColor_mask()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  set(218, EASY_RIDER ? "X" : "");
 | 
					  set(218, EASY_RIDER ? "X" : "");
 | 
				
			||||||
  set(219, TOOL_TEXT ? "X" : "");
 | 
					  set(219, TOOL_TEXT ? "X" : "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  xvt_font_serialize(xvt_default_font(), _font_desc.get_buffer(), _font_desc.size());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
KEY TColor_mask::run()
 | 
					void TColor_mask::save_colors(TConfig& colors)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  KEY k = K_CTRL + 'R';
 | 
					 | 
				
			||||||
  while (k == K_CTRL + 'R') 
 | 
					 | 
				
			||||||
    k = TMask::run();             
 | 
					 | 
				
			||||||
  return k;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
void TColor_mask::save_colors()
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  TConfig colors(CONFIG_GUI, "Colors");
 | 
					 | 
				
			||||||
  FOR_EACH_ASSOC_STRING(_color, obj, key, str)
 | 
					  FOR_EACH_ASSOC_STRING(_color, obj, key, str)
 | 
				
			||||||
    colors.set(key, str);
 | 
					    colors.set(key, str);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -593,6 +712,17 @@ void TColor_mask::save_colors()
 | 
				
			|||||||
  colors.set("ToolSize", 16+sz*8);
 | 
					  colors.set("ToolSize", 16+sz*8);
 | 
				
			||||||
  colors.set("EasyRider", get_bool(218) ? "X" : "");
 | 
					  colors.set("EasyRider", get_bool(218) ? "X" : "");
 | 
				
			||||||
  colors.set("ToolText", get_bool(219) ? "X" : "");
 | 
					  colors.set("ToolText", get_bool(219) ? "X" : "");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (colors.get_paragraph() == "Colors")        // nel caso di default CONFIG_GUI
 | 
				
			||||||
 | 
					    colors.set("FontDesc", _font_desc, "Font");  // per tradizione e' nel paragrafo Font
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    colors.set("FontDesc", _font_desc);          // il font e' insieme al resto
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void TColor_mask::save_colors()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  TConfig colors(CONFIG_GUI, "Colors");
 | 
				
			||||||
 | 
					  save_colors(colors);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
COLOR TColor_mask::get_color_entry(const char* name) const
 | 
					COLOR TColor_mask::get_color_entry(const char* name) const
 | 
				
			||||||
@ -690,23 +820,19 @@ bool TMenu_application::menu_item_handler(TMask_field&f, KEY k)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
 | 
					bool TMenu_application::menu_find_handler(TMask_field&f, KEY k)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  if (k == K_TAB && f.focusdirty())
 | 
					  if (k == K_TAB && f.focusdirty() && !f.empty())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    const TString& v = f.get();
 | 
					    const TString& v = f.get();
 | 
				
			||||||
    if (v.not_empty())
 | 
					    if (app()._menu.find_string(v))
 | 
				
			||||||
    {     
 | 
					    {
 | 
				
			||||||
      TPicture_mask& m = (TPicture_mask&)f.mask();
 | 
					      f.set_focusdirty(false);
 | 
				
			||||||
      if (app()._menu.find_string(v))
 | 
					      return f.mask().stop_run(K_F9);
 | 
				
			||||||
      {
 | 
					    }  
 | 
				
			||||||
        f.set_focusdirty(false);
 | 
					    else
 | 
				
			||||||
        return m.stop_run(K_F9);
 | 
					    {
 | 
				
			||||||
      }  
 | 
					      beep();
 | 
				
			||||||
      else
 | 
					      return false;
 | 
				
			||||||
      {
 | 
					    }  
 | 
				
			||||||
        beep();
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
      }  
 | 
					 | 
				
			||||||
    }    
 | 
					 | 
				
			||||||
  }     
 | 
					  }     
 | 
				
			||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -835,9 +961,7 @@ bool TMenu_application::ask_user_password(TString& utente)
 | 
				
			|||||||
  bool ok = false;
 | 
					  bool ok = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Disabilita le voci di personalizzazione
 | 
					  // Disabilita le voci di personalizzazione
 | 
				
			||||||
  int mi;
 | 
					  enable_options_menu(false);
 | 
				
			||||||
  for (mi = 2; mi <= 7; mi++)
 | 
					 | 
				
			||||||
    disable_menu_item(MENU_ITEM(mi));
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TMask m("ba0100a");
 | 
					  TMask m("ba0100a");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -942,8 +1066,7 @@ bool TMenu_application::ask_user_password(TString& utente)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Abilita le voci di personalizzazione
 | 
					  // Abilita le voci di personalizzazione
 | 
				
			||||||
  for (mi = 2; mi <= 7; mi++)
 | 
					  enable_options_menu(true);
 | 
				
			||||||
    enable_menu_item(MENU_ITEM(mi));
 | 
					 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1318,30 +1441,46 @@ void TMenu_application::main_loop()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
}                                                
 | 
					}                                                
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void enable_options_menu(bool on)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  const WINDOW tw = TASK_WIN;
 | 
				
			||||||
 | 
					  xvt_menu_set_item_enabled(tw, M_FILE_NEW, on);      // Cambio ditta
 | 
				
			||||||
 | 
					  xvt_menu_set_item_enabled(tw, M_FILE_PG_SETUP, on); // Imposta Stampante
 | 
				
			||||||
 | 
					  for (int i = 2; i <= 7; i++)                        // Menu opzioni
 | 
				
			||||||
 | 
					    xvt_menu_set_item_enabled(tw, MENU_ITEM(i), on);
 | 
				
			||||||
 | 
					  xvt_menu_update(tw);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool TMenu_application::choose_colors()
 | 
					bool TMenu_application::choose_colors()
 | 
				
			||||||
{                                
 | 
					{                                
 | 
				
			||||||
  disable_menu_item(OPTIONS_MENU);
 | 
					  enable_options_menu(false);
 | 
				
			||||||
  TColor_mask* cm = new TColor_mask();
 | 
					
 | 
				
			||||||
  const bool ok = cm->run() == K_ENTER;
 | 
					  bool update_needed = false;
 | 
				
			||||||
  if (ok)
 | 
					  KEY key = K_CTRL+'R';
 | 
				
			||||||
 | 
					  while (key == K_CTRL+'R')
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    _tree_view = cm->get_int(216); // Aggiorna stile menu
 | 
					    TColor_mask cm;
 | 
				
			||||||
    cm->save_colors();             // Aggiorna config
 | 
					    key = cm.run();
 | 
				
			||||||
    customize_colors();            // Aggiorna set di colori
 | 
					    if (key == K_ENTER || key == K_CTRL+'R') // Salva o Applica
 | 
				
			||||||
    
 | 
					    {
 | 
				
			||||||
    reload_images();               // Aggiorna bitmaps del menu
 | 
					      _tree_view = cm.get_int(216); // Aggiorna stile menu
 | 
				
			||||||
    
 | 
					      cm.save_colors();             // Aggiorna config
 | 
				
			||||||
    // Ridisegna sfondo
 | 
					      customize_colors();           // Aggiorna set di colori
 | 
				
			||||||
    TTemp_window tw(TASK_WIN);                
 | 
					      reload_images();              // Aggiorna bitmaps del menu
 | 
				
			||||||
    tw.force_update();
 | 
					
 | 
				
			||||||
    
 | 
					      // Ridisegna sfondo
 | 
				
			||||||
    // Provoca chiusura forzata del menu
 | 
					      TTemp_window tw(TASK_WIN);                
 | 
				
			||||||
    if (_mask != NULL) 
 | 
					      tw.force_update();
 | 
				
			||||||
      _mask->stop_run(K_CTRL + 'R');
 | 
					      update_needed = true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  delete cm;
 | 
					
 | 
				
			||||||
  enable_menu_item(OPTIONS_MENU);
 | 
					  // Provoca chiusura forzata del menu
 | 
				
			||||||
  return ok;
 | 
					  if (update_needed && _mask != NULL) 
 | 
				
			||||||
 | 
					    _mask->stop_run(K_CTRL + 'R');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  enable_options_menu(true);
 | 
				
			||||||
 | 
					  return key == K_ENTER;
 | 
				
			||||||
} 
 | 
					} 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
 | 
					HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
 | 
				
			||||||
@ -1350,23 +1489,15 @@ HIDDEN bool browse_file_handler(TMask_field& f, KEY k)
 | 
				
			|||||||
  
 | 
					  
 | 
				
			||||||
  if (k == K_F9)
 | 
					  if (k == K_F9)
 | 
				
			||||||
  {  
 | 
					  {  
 | 
				
			||||||
    FILE_SPEC fs; memset(&fs, 0, sizeof(FILE_SPEC));
 | 
					    TFilename n = f.get(); n.ext("exe");
 | 
				
			||||||
    xvt_fsys_convert_str_to_dir(".", &fs.dir);
 | 
					    FILE_SPEC fs; xvt_fsys_convert_str_to_fspec(n, &fs);
 | 
				
			||||||
#ifdef WIN32    
 | 
					  
 | 
				
			||||||
    strcpy(fs.type, "EXE");
 | 
					    //DIRECTORY dir; xvt_fsys_get_dir(&dir);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
    strcpy(fs.name, f.get());
 | 
					 | 
				
			||||||
    strcpy(fs.creator, "MENU");
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
    DIRECTORY dir;
 | 
					 | 
				
			||||||
    xvt_fsys_get_dir(&dir);
 | 
					 | 
				
			||||||
    const int err = xvt_dm_post_file_open(&fs, TR("Selezione programma"));
 | 
					    const int err = xvt_dm_post_file_open(&fs, TR("Selezione programma"));
 | 
				
			||||||
    xvt_fsys_set_dir(&dir);
 | 
					    //xvt_fsys_set_dir(&dir);
 | 
				
			||||||
    if (err == FL_OK)
 | 
					    if (err == FL_OK)
 | 
				
			||||||
    {       
 | 
					    {       
 | 
				
			||||||
      TFilename n;
 | 
					      xvt_fsys_convert_fspec_to_str(&fs, n.get_buffer(), n.size());
 | 
				
			||||||
      xvt_fsys_convert_dir_to_str(&fs.dir, n.get_buffer(), n.size());
 | 
					 | 
				
			||||||
      n.add(fs.name);
 | 
					 | 
				
			||||||
      f.set(n);
 | 
					      f.set(n);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -1402,7 +1533,7 @@ HIDDEN bool link_notify(TSheet_field& s, int r, KEY k)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
bool TMenu_application::choose_editors()
 | 
					bool TMenu_application::choose_editors()
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
  disable_menu_item(OPTIONS_MENU);
 | 
					  enable_options_menu(false);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  TConfig link(CONFIG_GUI, "Link");
 | 
					  TConfig link(CONFIG_GUI, "Link");
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
@ -1443,7 +1574,7 @@ bool TMenu_application::choose_editors()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  delete msk;
 | 
					  delete msk;
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  enable_menu_item(OPTIONS_MENU);
 | 
					  enable_options_menu(true);
 | 
				
			||||||
  
 | 
					  
 | 
				
			||||||
  return true;
 | 
					  return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1505,9 +1636,7 @@ HIDDEN bool study_handler(TMask_field& f, KEY k)
 | 
				
			|||||||
bool TMenu_application::choose_study()
 | 
					bool TMenu_application::choose_study()
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
  // Disbilita le voci di personalizzazione
 | 
					  // Disbilita le voci di personalizzazione
 | 
				
			||||||
  int mi;
 | 
					  enable_options_menu(false);
 | 
				
			||||||
  for (mi = 2; mi <= 7; mi++)
 | 
					 | 
				
			||||||
    disable_menu_item(MENU_ITEM(mi));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TMask m(TR("Scelta studio"), 1, 62, 4);
 | 
					  TMask m(TR("Scelta studio"), 1, 62, 4);
 | 
				
			||||||
  m.add_button(DLG_OK, 0, "", -12, -1, 10, 2);
 | 
					  m.add_button(DLG_OK, 0, "", -12, -1, 10, 2);
 | 
				
			||||||
@ -1533,8 +1662,7 @@ bool TMenu_application::choose_study()
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Abilita le voci di personalizzazione
 | 
					  // Abilita le voci di personalizzazione
 | 
				
			||||||
  for (mi = 2; mi <= 7; mi++)
 | 
					  enable_options_menu(true);
 | 
				
			||||||
    enable_menu_item(MENU_ITEM(mi));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return ok;
 | 
					  return ok;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -1918,13 +2046,17 @@ int TMenu_application::do_outlook()
 | 
				
			|||||||
  return key == K_QUIT ? -2 : 0;
 | 
					  return key == K_QUIT ? -2 : 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					bool TMenu_application::firm_change_enabled() const
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  return _mask != NULL; // Impedisci il cambio ditta durante il login
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void TMenu_application::on_firm_change()
 | 
					void TMenu_application::on_firm_change()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  TConfig cfgs(CONFIG_STUDIO, "Main"); // Forza creazione STUDIO.INI copiandolo eventulamente da PRASSIS.INI
 | 
					  TConfig cfgs(CONFIG_STUDIO, "Main"); // Forza creazione STUDIO.INI copiandolo eventulamente da PRASSIS.INI
 | 
				
			||||||
  TConfig cfgd(CONFIG_DITTA, "ba");    // Forza creazione DITTA.INI copiandolo eventulamente da PRASSID.INI
 | 
					  TConfig cfgd(CONFIG_DITTA, "ba");    // Forza creazione DITTA.INI copiandolo eventulamente da PRASSID.INI
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
bool TMenu_application::menu(MENU_TAG mt)
 | 
					bool TMenu_application::menu(MENU_TAG mt)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  bool ok = true;
 | 
					  bool ok = true;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||
#include <applicat.h>
 | 
					#include <applicat.h>
 | 
				
			||||||
#include <dongle.h>
 | 
					#include <dongle.h>
 | 
				
			||||||
 | 
					#include <execp.h>
 | 
				
			||||||
#include <mask.h>
 | 
					#include <mask.h>
 | 
				
			||||||
#include <modaut.h>
 | 
					#include <modaut.h>
 | 
				
			||||||
#include <nditte.h>
 | 
					#include <nditte.h>
 | 
				
			||||||
@ -632,7 +633,7 @@ TSubmenu* TMenu::find_string(const TString& str)
 | 
				
			|||||||
TSubmenu* TMenu::find_parent(const TSubmenu& sub)
 | 
					TSubmenu* TMenu::find_parent(const TSubmenu& sub)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  restart();
 | 
					  restart();
 | 
				
			||||||
  TSubmenu* sm;
 | 
					  TSubmenu* sm = NULL;
 | 
				
			||||||
  for (sm = (TSubmenu*)get(); sm; sm = (TSubmenu*)get())
 | 
					  for (sm = (TSubmenu*)get(); sm; sm = (TSubmenu*)get())
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
		for (int i = sm->items()-1; i >= 0; i--)
 | 
							for (int i = sm->items()-1; i >= 0; i--)
 | 
				
			||||||
 | 
				
			|||||||
@ -49,18 +49,18 @@ HIDDEN bool find_string_callback(TTree& tree, void* jolly, word flags)
 | 
				
			|||||||
    const TSubmenu& sm = mt.curr_submenu();
 | 
					    const TSubmenu& sm = mt.curr_submenu();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (sm.disabled())
 | 
					    if (sm.disabled())
 | 
				
			||||||
      return FALSE;
 | 
					      return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    TFind_string_data& data = *(TFind_string_data*)jolly;
 | 
					    TFind_string_data& data = *(TFind_string_data*)jolly;
 | 
				
			||||||
    if (data._ignore_list->is_key(sm.name()))
 | 
					    if (data._ignore_list->is_key(sm.name()))
 | 
				
			||||||
      return FALSE;
 | 
					      return false;
 | 
				
			||||||
    
 | 
					    
 | 
				
			||||||
    TString desc; mt.get_description(desc);
 | 
					    TString desc; mt.get_description(desc);
 | 
				
			||||||
    desc.upper();
 | 
					    desc.upper();
 | 
				
			||||||
    if (desc.find(data._str) >= 0 || desc.match(data._str))
 | 
					    if (desc.find(data._str) >= 0 || desc.match(data._str))
 | 
				
			||||||
      return TRUE;
 | 
					      return true;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  return FALSE;
 | 
					  return false;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
HIDDEN bool find_node_callback(TTree& tree, void* jolly, word flags)
 | 
					HIDDEN bool find_node_callback(TTree& tree, void* jolly, word flags)
 | 
				
			||||||
 | 
				
			|||||||
@ -124,5 +124,6 @@ public:
 | 
				
			|||||||
void synchronize_tree_field(TTree_field& tf);
 | 
					void synchronize_tree_field(TTree_field& tf);
 | 
				
			||||||
bool can_be_transparent(const TImage& i);
 | 
					bool can_be_transparent(const TImage& i);
 | 
				
			||||||
void draw_spider(WINDOW win, int mode, const PNT& mouse);
 | 
					void draw_spider(WINDOW win, int mode, const PNT& mouse);
 | 
				
			||||||
 | 
					void enable_options_menu(bool on);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -2,6 +2,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include <config.h>
 | 
					#include <config.h>
 | 
				
			||||||
#include <defmask.h>
 | 
					#include <defmask.h>
 | 
				
			||||||
 | 
					#include <diction.h>
 | 
				
			||||||
 | 
					#include <execp.h>
 | 
				
			||||||
#include <prefix.h>
 | 
					#include <prefix.h>
 | 
				
			||||||
#include <xvtility.h>
 | 
					#include <xvtility.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -189,7 +191,8 @@ short TBook_window::add_page(const TString& caption)
 | 
				
			|||||||
    xvt_vobj_get_client_rect(win(), &wd.rct);
 | 
					    xvt_vobj_get_client_rect(win(), &wd.rct);
 | 
				
			||||||
    _ctrl = xvt_ctl_create_def(&wd, win(), 0L);
 | 
					    _ctrl = xvt_ctl_create_def(&wd, win(), 0L);
 | 
				
			||||||
    // Blocca le dimensioni del pannello (Non va micca!)
 | 
					    // Blocca le dimensioni del pannello (Non va micca!)
 | 
				
			||||||
    xvt_pane_set_size_range(win(), wd.rct.right, wd.rct.right, wd.rct.right);       
 | 
					    xvt_pane_set_size_range(win(), wd.rct.right, wd.rct.right, wd.rct.right);
 | 
				
			||||||
 | 
					    enable_options_menu(false); // Disabilita le opzioni
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  TString256 cap;
 | 
					  TString256 cap;
 | 
				
			||||||
@ -259,6 +262,7 @@ void TBook_window::erode_antipa()
 | 
				
			|||||||
      xvt_notebk_rem_page(_ctrl, p);
 | 
					      xvt_notebk_rem_page(_ctrl, p);
 | 
				
			||||||
    xvt_vobj_destroy(_ctrl); 
 | 
					    xvt_vobj_destroy(_ctrl); 
 | 
				
			||||||
    _ctrl = NULL_WIN;
 | 
					    _ctrl = NULL_WIN;
 | 
				
			||||||
 | 
					    enable_options_menu(true); // Riabilita le opzioni
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -410,6 +414,18 @@ void TOutlook_mask::handler(WINDOW w, EVENT* ep)
 | 
				
			|||||||
      load_perspective(0);              // Ricarica default 
 | 
					      load_perspective(0);              // Ricarica default 
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 8003: 
 | 
					    case 8003: 
 | 
				
			||||||
 | 
					      xvt_dm_post_string_prompt(TR("Testo da cercare"), 
 | 
				
			||||||
 | 
					                                _last_search.get_buffer(), _last_search.size());
 | 
				
			||||||
 | 
					      // continue to 8004
 | 
				
			||||||
 | 
					    case 8004: 
 | 
				
			||||||
 | 
					      if (_last_search.full() && _tree.find_string(_last_search))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					        TTree_field& tf = tfield(DLG_TREE);
 | 
				
			||||||
 | 
					        synchronize_tree_field(tf);
 | 
				
			||||||
 | 
					        tf.select_current();
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case 8005: 
 | 
				
			||||||
      dispatch_e_menu(TASK_WIN, M_FILE_ABOUT);
 | 
					      dispatch_e_menu(TASK_WIN, M_FILE_ABOUT);
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 8883: 
 | 
					    case 8883: 
 | 
				
			||||||
 | 
				
			|||||||
@ -5,10 +5,6 @@
 | 
				
			|||||||
#include "ba0102.h"
 | 
					#include "ba0102.h"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef __EXECP_H
 | 
					 | 
				
			||||||
#include <execp.h>
 | 
					 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
// TOutlook_mask
 | 
					// TOutlook_mask
 | 
				
			||||||
///////////////////////////////////////////////////////////
 | 
					///////////////////////////////////////////////////////////
 | 
				
			||||||
@ -20,6 +16,7 @@ class TOutlook_mask : public TSpidey_mask
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  TString _per_def, _per_tmp;
 | 
					  TString _per_def, _per_tmp;
 | 
				
			||||||
  bool _locked;
 | 
					  bool _locked;
 | 
				
			||||||
 | 
					  TString _last_search;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
  virtual void handler(WINDOW w, EVENT* ep);
 | 
					  virtual void handler(WINDOW w, EVENT* ep);
 | 
				
			||||||
 | 
				
			|||||||
@ -90,36 +90,12 @@ BEGIN
 | 
				
			|||||||
  PROMPT 38 11 "Sfondo"
 | 
					  PROMPT 38 11 "Sfondo"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
GROUPBOX DLG_NULL 32 3
 | 
					LISTBOX 211 1 15
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 5 "@bTemi predefiniti"
 | 
					  PROMPT 1 5 "Temi predefiniti "
 | 
				
			||||||
END
 | 
					  ITEM "0|"
 | 
				
			||||||
 | 
					  ITEM "1|Campo"
 | 
				
			||||||
LISTBOX 211 1 12
 | 
					  ITEM "2|Sistema"
 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 2 6 "Tema "
 | 
					 | 
				
			||||||
  ITEM "0|Campo"
 | 
					 | 
				
			||||||
  ITEM "1|Sistema"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON 212 8 1
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT 22 6 "Applica"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_USER 12 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT -33 13 "Font"
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_OK 12 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT -13 -1 ""
 | 
					 | 
				
			||||||
END
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
BUTTON DLG_CANCEL 12 2
 | 
					 | 
				
			||||||
BEGIN
 | 
					 | 
				
			||||||
  PROMPT -33 -1 ""
 | 
					 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
@ -148,12 +124,12 @@ END
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
BOOLEAN 219
 | 
					BOOLEAN 219
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 1 5 "Visualizza il testo negli strumenti della barra"
 | 
					  PROMPT 1 5 "Mostra il testo degli strumenti"
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
RADIOBUTTON 216 1 16
 | 
					RADIOBUTTON 216 1 16
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT 32 0 "Tipo di Menu"
 | 
					  PROMPT 36 0 "Tipo di Menu"
 | 
				
			||||||
  ITEM "0|Normale"
 | 
					  ITEM "0|Normale"
 | 
				
			||||||
  ITEM "1|Albero"
 | 
					  ITEM "1|Albero"
 | 
				
			||||||
  ITEM "2|Explorer"
 | 
					  ITEM "2|Explorer"
 | 
				
			||||||
@ -171,14 +147,42 @@ BEGIN
 | 
				
			|||||||
  RANGE 0 14
 | 
					  RANGE 0 14
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_OK 12 2
 | 
					ENDPAGE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TOOLBAR "topbar" 0 0 0 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_SAVEREC 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -13 -1 ""
 | 
					  PROMPT -16 -1 "Salva"
 | 
				
			||||||
 | 
					  PICTURE BMP_SAVEREC
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BUTTON DLG_CANCEL 12 2
 | 
					BUTTON DLG_OK 10 2
 | 
				
			||||||
BEGIN
 | 
					BEGIN
 | 
				
			||||||
  PROMPT -33 -1 ""
 | 
					  PROMPT -26 -1 "Applica"
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_NEWREC 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -36 -1 "Nuovo tema"
 | 
				
			||||||
 | 
					  PICTURE BMP_NEWREC
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_DELREC 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -46 -1 "Elimina tema"
 | 
				
			||||||
 | 
					  PICTURE BMP_DELREC
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_USER 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -56 -1 "Font"
 | 
				
			||||||
 | 
					  PICTURE BMP_FONT
 | 
				
			||||||
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					BUTTON DLG_CANCEL 10 2
 | 
				
			||||||
 | 
					BEGIN
 | 
				
			||||||
 | 
					  PROMPT -66 -1 ""
 | 
				
			||||||
END
 | 
					END
 | 
				
			||||||
 | 
					
 | 
				
			||||||
ENDPAGE
 | 
					ENDPAGE
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user