From 998f9e637d3e65a62937a83537b276ac0998573d Mon Sep 17 00:00:00 2001 From: alex Date: Wed, 7 Sep 1994 15:25:47 +0000 Subject: [PATCH] Aggiunta la classe TBrowse_application (brwapp) git-svn-id: svn://10.65.10.50/trunk@179 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- include/browbar.h | 18 +++++ include/brwapp.cpp | 105 +++++++++++++++++++++++++ include/brwapp.h | 21 +++++ include/include.mak | 3 +- include/makedue.mak | 10 ++- include/relapp.h | 184 ++++++++++++++++++++++---------------------- 6 files changed, 249 insertions(+), 92 deletions(-) create mode 100755 include/browbar.h create mode 100755 include/brwapp.cpp create mode 100755 include/brwapp.h diff --git a/include/browbar.h b/include/browbar.h new file mode 100755 index 000000000..6f92726cc --- /dev/null +++ b/include/browbar.h @@ -0,0 +1,18 @@ +BUTTON DLG_FINDREC 8 2 +BEGIN +PROMPT -13 -1 "Ri~cerca" +MESSAGE EXIT,K_F9 +END + +BUTTON DLG_CANCEL 8 2 +BEGIN +PROMPT -23 -1 "" +MESSAGE EXIT,K_ESC +END + +BUTTON DLG_QUIT 8 2 +BEGIN +PROMPT -33 -1 "" +MESSAGE EXIT,K_QUIT +END + diff --git a/include/brwapp.cpp b/include/brwapp.cpp new file mode 100755 index 000000000..3e34fdc0c --- /dev/null +++ b/include/brwapp.cpp @@ -0,0 +1,105 @@ +// $Id: brwapp.cpp,v 1.1 1994-09-07 15:25:40 alex Exp $ + +#include +#include +#include + +/////////////////////////////////////////////////////////// +// TBrowse_application +/////////////////////////////////////////////////////////// + +bool TBrowse_application::main_loop() +{ + long recins = -1; + + query_mode(); + curr_mask().open_modal(); + + KEY k; + + // Provoca l'autopremimento per il messaggio di LINK + if (lnflag()) curr_mask().send_key(K_AUTO_ENTER, 0); + + do + { + // Seleziona il cursore a freccia + set_cursor(TASK_WIN, CURSOR_ARROW); + + // Dis/abilita cambio ditta + enable_menu_item(M_FILE_NEW, (curr_mask().mode() == MODE_QUERY)); + + + k = curr_mask().run(); + + // Seleziona il cursore a clessidra se necessario + if (k != K_QUIT && k != K_F9) set_cursor(TASK_WIN, CURSOR_WAIT); + + switch (k) + { + case K_ESC: + if (curr_mask().query_mode()) + { + curr_mask().reset(); + set_fixed(); + } + else query_mode(); + if (lnflag()) k = K_QUIT; + break; + case K_QUIT: + if (curr_mask().mode() == MODE_MOD && + (autoins_caller().not_empty() || lnflag())) + recins = file().recno(); + break; + case K_ENTER: + if (find(0)) modify_mode(); + else message_box("Registrazione assente"); // ocio + break; + case K_F9: + search_mode(); + break; + default: + setkey(); + int err = ~NOERR; + switch (k) + { + case K_HOME: + err = file().readat(first(), _testandlock); + break; + case K_NEXT: + err = file().reread(); + err = file().next(_testandlock); + break; + case K_PREV: + err = file().reread(); + err = file().prev(_testandlock); + break; + case K_END: + err = file().readat(last(), _testandlock); + break; + default: + break; + } + if (err == NOERR || err == _islocked) modify_mode(); + else query_mode(); + break; + } + } while (k != K_QUIT); + + if (curr_mask().is_open()) + curr_mask().close_modal(); + + curr_mask().set_mode(NO_MODE); + + if (recins > 0 && autoins_caller().not_empty()) + { + TMessage msg(autoins_caller(), MSG_AI, format("%ld", recins)); + msg.send(); + } + if (recins > 0 && lnflag()) + { + TMessage msg(autoins_caller(), MSG_LN, format("%ld", recins)); + msg.send(); + } + + return k != K_QUIT; +} diff --git a/include/brwapp.h b/include/brwapp.h new file mode 100755 index 000000000..6f619f662 --- /dev/null +++ b/include/brwapp.h @@ -0,0 +1,21 @@ +#ifndef __BRWAPP_H +#define __BRWAPP_H + +#ifndef __RELAPP_H +#include +#endif + + +class TBrowse_application : public TRelation_application + +{ +protected: + virtual bool main_loop(); // Ciclo principale + +public: + TBrowse_application() {} + virtual ~TBrowse_application() {} +}; + +#endif + diff --git a/include/include.mak b/include/include.mak index 6ffde41d8..043842e95 100755 --- a/include/include.mak +++ b/include/include.mak @@ -35,7 +35,6 @@ I32=$(IP)window.h $(I23) I43=$(IP)urldefid.h $(IP)defmask.h I45=$(IP)defmask.h I33=$(IP)mask.h $(I32) $(I19) $(I43) -I34= I35= I36=$(IP)printer.h $(I10) $(I3) $(I33) $(I13) I24=$(IP)applicat.h $(S1) $(I10) $(I8) $(I36) @@ -52,6 +51,7 @@ I50=$(IP)printapp.h $(I24) $(I36) $(I39) $(I10) I51=$(IP)form.h $(I17) $(I36) I52=$(IP)colors.h I53=$(I24) $(I33) $(I39) $(IP)relapp.h +I34=$(IP)brwapp.h $(I53) I54=$(I33) $(IP)msksheet.h I55=$(IP)assoc.h I56=$(IP)config.h @@ -65,4 +65,5 @@ U1=$(IP)default.url $(I43) E1=$(IP)toolbar.h E2=$(IP)comdcod.h E3=$(IP)comdden.h +E4=$(IP)browbar.h diff --git a/include/makedue.mak b/include/makedue.mak index bbf1f0f0e..3cc3c76ca 100755 --- a/include/makedue.mak +++ b/include/makedue.mak @@ -13,6 +13,7 @@ lib: $(LIB) masks $(UPDLIB) $(LIB) $(TMPF) $(LIB): $(LIB)(applicat.o) $(LIB)(array.o)\ + $(LIB)(brwapp.o)\ $(LIB)(checks.o)\ $(LIB)(date.o)\ $(LIB)(expr.o) $(LIB)(execp.o)\ @@ -40,6 +41,8 @@ $(LIB)(applicat.o): applicat.cpp $(I6) $(I24) $(I32) $(I43) $(I44) $(I5) $(I $(LIB)(array.o): array.cpp $(I13) +$(LIB)(brwapp.o): brwapp.cpp $(I31) $(I34) $(I47) + $(LIB)(checks.o): checks.cpp $(I23) $(I1) $(I6) $(I24) $(LIB)(date.o): date.cpp $(I7) $(I10) $(I6) $(I5) @@ -121,4 +124,9 @@ $(EP)bagn002.msk: bagn002.uml bagn002.h $(EP)bagn003.msk: bagn003.uml bagn003.h -$(EP)bagn004.msk: bagn004.uml bagn004.h \ No newline at end of file +$(EP)bagn004.msk: bagn004.uml bagn004.h + + + + + diff --git a/include/relapp.h b/include/relapp.h index 250c1c0d1..d35441262 100755 --- a/include/relapp.h +++ b/include/relapp.h @@ -1,90 +1,94 @@ -#ifndef __RELAPP_H -#define __RELAPP_H - -#ifndef __APPLICAT_H -#include -#endif - -#ifndef __RELATION_H -#include -#endif - - -#ifndef __MASK_H -#include -#endif - -class TKey_array; - -class TRelation_application : public TApplication -{ - WINDOW _statbar; - TMask* _mask; - TKey_array* _maskeys; - long _first, _last; - int _search_id; - - TString _autoins_caller; - bool _lnflag; - TToken_string _fixed; - - virtual bool create(); - virtual bool destroy(); - - bool filter(); - TLocalisamfile& file() const { return *get_relation()->lfile(); } - bool test_key(byte k, bool err); - bool save(bool check_dirty); - void enable_query(); - void set_toolbar(bool all); - - void set_fixed(); // Fissa i campi non modificabili - int set_mode(int mode); // Seleziona il nuovo modo e ritorna il vecchio - void set_limits(byte what = 0x3); - bool search_mode(); // Attiva la maschera di ricerca - void query_mode(bool pre_ins = FALSE); // Entra in modo ricerca - void query_insert_mode() { query_mode(TRUE); } - void insert_mode(); // Entra in modo inserimento - bool modify_mode(); // Entra in modo modifica - bool main_loop(); // Ciclo principale - TMask_field* get_search_field() const; - void setkey(); - -protected: - virtual bool menu(MENU_TAG m); - - virtual bool user_create() pure; - virtual bool user_destroy() pure; - virtual TMask* get_mask(int mode) pure; - virtual bool changing_mask(int mode) pure; - virtual TRelation* get_relation() const pure; - virtual int read(TMask& m); - virtual int write(const TMask& m); - virtual int rewrite(const TMask& m); - virtual bool remove(); - virtual const char* get_next_key() { return ""; } - virtual bool protected_record(TRectype&) { return FALSE; } - virtual void init_query_mode(TMask&) { } - virtual void init_query_insert_mode(TMask& m) { init_query_mode(m); } - virtual void init_insert_mode(TMask&) { } - virtual void init_modify_mode(TMask&) { } - virtual void write_enable(const bool on = TRUE) { get_relation()->write_enable(-1, on); } - void write_disable() { write_enable(FALSE); } - - bool autonum(TMask* m, bool rec); - void set_search_field(short id) { _search_id = id;} - bool has_filtered_cursor() const { return filtered() || force_cursor_usage();} - -public: - TRelation_application(); - virtual ~TRelation_application(); - bool filtered() const { return _fixed.not_empty(); } - void set_first(long first) { _first = first;} - void set_last(long last) { _last = last;} - bool find(byte key = 0); - virtual bool force_cursor_usage() const { return FALSE;} -}; - -#endif - - +#ifndef __RELAPP_H +#define __RELAPP_H + +#ifndef __APPLICAT_H +#include +#endif + +#ifndef __RELATION_H +#include +#endif + + +#ifndef __MASK_H +#include +#endif + +class TKey_array; + +class TRelation_application : public TApplication +{ + TMask * _mask; + TKey_array* _maskeys; + long _first, _last; + int _search_id; + + TString _autoins_caller; + bool _lnflag; + TToken_string _fixed; + + virtual bool create(); + virtual bool destroy(); + + bool filter(); + bool test_key(byte k, bool err); + bool save(bool check_dirty); + void enable_query(); + void set_toolbar(bool all); + + int set_mode(int mode); // Seleziona il nuovo modo e ritorna il vecchio + void set_limits(byte what = 0x3); + void query_insert_mode() { query_mode(TRUE); } + void insert_mode(); // Entra in modo inserimento + virtual bool main_loop(); // Ciclo principale + TMask_field* get_search_field() const; + +protected: + TLocalisamfile& file() const { return *get_relation()->lfile(); } + void set_fixed(); // Fissa i campi non modificabili + bool search_mode(); // Attiva la maschera di ricerca + void query_mode(bool pre_ins = FALSE); // Entra in modo ricerca + bool modify_mode(); // Entra in modo modifica + void setkey(); + bool lnflag() const { return _lnflag;} + long first() const { return _first;} + long last() const { return _first;} + TMask& curr_mask() const { return *_mask; } + const TString& autoins_caller() const { return _autoins_caller;} + virtual bool menu(MENU_TAG m); + + virtual bool user_create() pure; + virtual bool user_destroy() pure; + virtual TMask* get_mask(int mode) pure; + virtual bool changing_mask(int mode) pure; + virtual TRelation* get_relation() const pure; + virtual int read(TMask& m); + virtual int write(const TMask& m); + virtual int rewrite(const TMask& m); + virtual bool remove(); + virtual const char* get_next_key() { return ""; } + virtual bool protected_record(TRectype&) { return FALSE; } + virtual void init_query_mode(TMask&) { } + virtual void init_query_insert_mode(TMask& m) { init_query_mode(m); } + virtual void init_insert_mode(TMask&) { } + virtual void init_modify_mode(TMask&) { } + virtual void write_enable(const bool on = TRUE) { get_relation()->write_enable(-1, on); } + void write_disable() { write_enable(FALSE); } + + bool autonum(TMask* m, bool rec); + void set_search_field(short id) { _search_id = id;} + bool has_filtered_cursor() const { return filtered() || force_cursor_usage();} + +public: + TRelation_application(); + virtual ~TRelation_application(); + bool filtered() const { return _fixed.not_empty(); } + void set_first(long first) { _first = first;} + void set_last(long last) { _last = last;} + bool find(byte key = 0); + virtual bool force_cursor_usage() const { return FALSE;} +}; + +#endif + +