#include <tabapp.h>

#include "tc9.h"
#include "tcts.h"

class TSispac_multirel_app : public TMultirel_application
{

protected:
	virtual void set_descr(TMask & m, const TString & desc);
	virtual void get_mask_name(TString& tabname) const;
	//magico metodo per impedire la navigazione su tabelle diverse da quella corrente del cursore
	virtual bool has_filtered_cursor() const { return true; }
  virtual bool user_create();
  virtual void init_query_mode(TMask& m);
  virtual void init_query_insert_mode(TMask& m);
  virtual void init_modify_mode(TMask& m);
	virtual void init_insert_mode(TMask& m);
 
public:
  
  TSispac_multirel_app() {}
  virtual ~TSispac_multirel_app() {}
};

void TSispac_multirel_app::set_descr(TMask & m, const TString & desc)
{
	m.set(F_DESC, desc);
}

void TSispac_multirel_app::get_mask_name(TString& tabname) const
{
	TMultirel_application::get_mask_name(tabname);
	tabname.overwrite("sc", 2);
}

void  TSispac_multirel_app::init_query_mode(TMask& m)
{
	TMultirel_application::init_query_mode(m);
	m.show(-1);
	m.hide(-2);
	m.enable(-4);
}

void  TSispac_multirel_app::init_query_insert_mode(TMask& m)
{
	TMultirel_application::init_query_insert_mode(m);
	m.hide(-1);
	m.show(-2);
	m.enable(-4);
}
void  TSispac_multirel_app::init_modify_mode(TMask& m)
{
	TMultirel_application::init_modify_mode(m);
	m.show(-1);
	m.hide(-2);
	m.enable(-3);
	m.disable(-4);
}

void  TSispac_multirel_app::init_insert_mode(TMask& m)
{
	TMultirel_application::init_insert_mode(m);
	m.show(-1);
	m.hide(-2);
	m.enable(-3);
	m.disable(-4);
}

bool TSispac_multirel_app::user_create()
{
	bool ok = TMultirel_application::user_create();

	if (ok)
	{
		TMask & m = *get_mask();

		set_search_field(F_CODTAB);
	}
	return ok;
}
int tc9400(int argc, char* argv[])
{
  TSispac_multirel_app a;
  a.run(argc, argv, TR("Tabella"));
  return 0;
}