From 5cb2c993c6db760a815cb58826a206bee6f2611a Mon Sep 17 00:00:00 2001 From: PerryWerneck Date: Sat, 10 Dec 2016 18:32:44 -0200 Subject: [PATCH] Mudando funcionamento do plugin ooRexx para usar o elemento interno. --- src/include/pw3270/class.h | 3 ++- src/plugins/rx3270/pluginmain.cc | 436 +--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2 files changed, 3 insertions(+), 436 deletions(-) diff --git a/src/include/pw3270/class.h b/src/include/pw3270/class.h index 198058e..243093d 100644 --- a/src/include/pw3270/class.h +++ b/src/include/pw3270/class.h @@ -255,6 +255,8 @@ string get_3270_text(const char *str); string get_local_text(const char *str); + static session * create_local(H3270 *hSession) throw (std::exception); + protected: session(); @@ -278,7 +280,6 @@ static session * create_remote(const char *name) throw (std::exception); static session * create_local(void) throw (std::exception); - static session * create_local(H3270 *hSession) throw (std::exception); #ifdef HAVE_ICONV iconv_t conv2Local; diff --git a/src/plugins/rx3270/pluginmain.cc b/src/plugins/rx3270/pluginmain.cc index cd3fca0..2ac7d37 100644 --- a/src/plugins/rx3270/pluginmain.cc +++ b/src/plugins/rx3270/pluginmain.cc @@ -78,96 +78,6 @@ using namespace std; using namespace PW3270_NAMESPACE; - class plugin : public session - { - public: - plugin(H3270 *hSession); - virtual ~plugin(); - - void free(void *ptr); - - const string get_version(void); - - LIB3270_CSTATE get_cstate(void); - LIB3270_MESSAGE get_program_message(void); - LIB3270_SSL_STATE get_secure(void); - - int disconnect(void); - int set_url(const char *uri); - int connect(void); - bool is_connected(void); - bool is_ready(void); - - void logva(const char *fmt, va_list args); - - int iterate(bool wait); - int wait(int seconds); - int wait_for_ready(int seconds); - - string get_text(int baddr, size_t len); - string get_text_at(int row, int col, size_t sz); - int cmp_text_at(int row, int col, const char *text); - int set_text_at(int row, int col, const char *str); - - int set_cursor_position(int row, int col); - int set_cursor_addr(int addr); - int get_cursor_addr(void); - - int emulate_input(const char *str); - - int set_toggle(LIB3270_TOGGLE ix, bool value); - - int enter(void); - int pfkey(int key); - int pakey(int key); - - int erase(void); - int erase_eof(void); - int erase_eol(void); - int erase_input(void); - - int print(void); - - int get_field_start(int baddr = -1); - int get_field_len(int baddr = -1); - int get_next_unprotected(int baddr = -1); - int get_is_protected(int baddr = -1); - int get_is_protected_at(int row, int col); - - int set_copy(const char *text); - string get_copy(void); - - string get_clipboard(void); - int set_clipboard(const char *text); - - int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...); - string file_chooser_dialog(int action, const char *title, const char *extension, const char *filename); - - int set_host_charset(const char *charset); - string get_host_charset(void); - string get_display_charset(void); - - int get_width(void); - int get_height(void); - int get_length(void); - - const char * asc2ebc(unsigned char *str, int sz = -1); - const char * ebc2asc(unsigned char *str, int sz = -1); - - int file_transfer(LIB3270_FT_OPTION options, const gchar *local, const gchar *remote, int lrecl = 0, int blksize = 0, int primspace = 0, int secspace = 0, int dft = 4096); - - int quit(void); - int action(const char *name); - - void set_unlock_delay(unsigned short ms); - - protected: - - private: - H3270 * hSession; - - }; - /*--[ Running rexx scripts ]---------------------------------------------------------------------------------*/ @@ -487,7 +397,7 @@ extern "C" static session * factory(const char *name) { - return new plugin(lib3270_get_default_session_handle()); + return session::create_local(lib3270_get_default_session_handle()); } LIB3270_EXPORT int pw3270_plugin_start(GtkWidget *window, GtkWidget *terminal) @@ -509,347 +419,3 @@ extern "C" return 0; } - plugin::plugin(H3270 *hSession) : session() - { - this->hSession = hSession; - set_display_charset(); - } - - plugin::~plugin() - { - trace("%s",__FUNCTION__); - } - - - const string plugin::get_version(void) - { - return string(lib3270_get_version()); - } - - LIB3270_CSTATE plugin::get_cstate(void) - { - return lib3270_get_connection_state(hSession); - } - - LIB3270_MESSAGE plugin::get_program_message(void) - { - return lib3270_get_program_message(hSession); - } - - LIB3270_SSL_STATE plugin::get_secure(void) - { - return lib3270_get_secure(hSession); - } - - int plugin::disconnect(void) - { - lib3270_disconnect(hSession); - return 0; - } - - int plugin::connect(void) - { - return lib3270_connect(hSession,0); - } - - bool plugin::is_connected(void) - { - return lib3270_is_connected(hSession) != 0; - } - - int plugin::iterate(bool wait) - { - if(!lib3270_is_connected(hSession)) - return ENOTCONN; - - lib3270_main_iterate(hSession,wait); - - return 0; - } - - int plugin::wait(int seconds) - { - return lib3270_wait(hSession,seconds); - } - - int plugin::enter(void) - { - return lib3270_enter(hSession); - } - - int plugin::pfkey(int key) - { - return lib3270_pfkey(hSession,key); - } - - int plugin::pakey(int key) - { - return lib3270_pakey(hSession,key); - } - - int plugin::wait_for_ready(int seconds) - { - return lib3270_wait_for_ready(hSession,seconds); - } - - string plugin::get_text_at(int row, int col, size_t sz) - { - string rc; - char * ptr = lib3270_get_text_at(hSession,row,col,(int) sz); - - if(ptr) - { - rc.assign(ptr); - lib3270_free(ptr); - } - - return rc; - } - - int plugin::cmp_text_at(int row, int col, const char *text) - { - return lib3270_cmp_text_at(hSession,row,col,text); - } - - int plugin::set_text_at(int row, int col, const char *str) - { - return lib3270_set_text_at(hSession,row,col,(const unsigned char *) str); - } - - bool plugin::is_ready(void) - { - return lib3270_is_ready(hSession) != 0; - } - - int plugin::set_cursor_position(int row, int col) - { - return lib3270_set_cursor_position(hSession,row,col); - } - - int plugin::set_toggle(LIB3270_TOGGLE ix, bool value) - { - return lib3270_set_toggle(hSession,ix,(int) value); - } - - void plugin::logva(const char *fmt, va_list args) - { - lib3270_write_va_log(hSession,"REXX",fmt,args); - } - - string plugin::get_text(int baddr, size_t len) - { - string rc; - char * ptr = lib3270_get_text(hSession,baddr,len); - - if(ptr) - { - rc.assign(ptr); - lib3270_free(ptr); - } - - return rc; - } - - int plugin::get_field_start(int baddr) - { - return lib3270_get_field_start(hSession,baddr); - } - - int plugin::get_field_len(int baddr) - { - return lib3270_get_field_len(hSession,baddr); - } - - int plugin::set_copy(const char *text) - { - v3270_set_copy(GTK_WIDGET(lib3270_get_user_data(hSession)),text); - return 0; - } - - string plugin::get_copy(void) - { - string rc; - gchar * ptr = v3270_get_copy(GTK_WIDGET(lib3270_get_user_data(hSession))); - - if(ptr) - { - rc.assign(ptr); - g_free(ptr); - } - - return rc; - } - - string plugin::get_clipboard(void) - { - string rc; - gchar * ptr = gtk_clipboard_wait_for_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD)); - - if(ptr) - { - rc.assign(ptr); - g_free(ptr); - } - - return rc; - } - - int plugin::set_clipboard(const char *text) - { - gtk_clipboard_set_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD),(gchar *) text, -1); - return 0; - } - - void plugin::free(void *ptr) - { - g_free(ptr); - } - - int plugin::set_cursor_addr(int addr) - { - return lib3270_set_cursor_address(hSession,addr); - } - - int plugin::get_cursor_addr(void) - { - return lib3270_get_cursor_address(hSession); - } - - int plugin::get_width(void) - { - return lib3270_get_width(hSession); - } - - int plugin::get_height(void) - { - return lib3270_get_height(hSession); - } - - int plugin::get_length(void) - { - return lib3270_get_length(hSession); - } - - int plugin::emulate_input(const char *str) - { - return lib3270_emulate_input(hSession, str, -1, 1); - } - - int plugin::get_next_unprotected(int baddr) - { - return lib3270_get_next_unprotected(hSession,baddr); - } - - int plugin::get_is_protected(int baddr) - { - return lib3270_get_is_protected(hSession,baddr); - } - - int plugin::get_is_protected_at(int row, int col) - { - return lib3270_get_is_protected_at(hSession,row,col); - } - -int plugin::popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...) -{ - va_list args; - va_start(args, fmt); - lib3270_popup_va(hSession, id, title, message, fmt, args); - va_end(args); - return 0; -} - -string plugin::file_chooser_dialog(int action, const char *title, const char *extension, const char *filename) -{ - string rc; - - gchar * ptr = pw3270_file_chooser((GtkFileChooserAction) action, script_name ? script_name : "rexx", title, filename, extension); - - if(ptr) - { - rc.assign((char *) ptr); - g_free(ptr); - } - - return rc; -} - -int plugin::quit(void) -{ - gtk_main_quit(); - return 0; -} - -int plugin::action(const char *name) -{ - return lib3270_action(hSession,name); -} - -int plugin::set_host_charset(const char *charset) -{ - return lib3270_set_host_charset(hSession,charset); -} - -string plugin::get_host_charset(void) -{ - return string(lib3270_get_host_charset(hSession)); -} - -string plugin::get_display_charset(void) -{ - return string(lib3270_get_display_charset(hSession)); -} - -int plugin::erase(void) -{ - return lib3270_erase(hSession); -} - -int plugin::erase_eof(void) -{ - return lib3270_eraseeof(hSession); -} - -int plugin::erase_eol(void) -{ - return lib3270_eraseeol(hSession); -} - -int plugin::erase_input(void) -{ - return lib3270_eraseinput(hSession); -} - -int plugin::print(void) -{ - return lib3270_print(hSession); -} - -const char * plugin::asc2ebc(unsigned char *str, int sz) -{ - return lib3270_asc2ebc(hSession,str,sz); -} - -int plugin::set_url(const char *uri) -{ - return lib3270_set_url(hSession,uri) != NULL ? 1 : 0; -} - -const char * plugin::ebc2asc(unsigned char *str, int sz) -{ - return lib3270_ebc2asc(hSession,str,sz); -} - -int plugin::file_transfer(LIB3270_FT_OPTION options, const gchar *local, const gchar *remote, int lrecl, int blksize, int primspace, int secspace, int dft) -{ - /* - return v3270_transfer_file(v3270_get_default_widget(),options,local,remote,lrecl,blksize,primspace,secspace,dft); - */ - return EINVAL; -} - -void plugin::set_unlock_delay(unsigned short ms) -{ - lib3270_set_unlock_delay(hSession, (unsigned short) ms); -} - -- libgit2 0.21.2