Commit 5cb2c993c6db760a815cb58826a206bee6f2611a

Authored by Perry Werneck
1 parent 6514f2c3

Mudando funcionamento do plugin ooRexx para usar o elemento interno.

src/include/pw3270/class.h
@@ -255,6 +255,8 @@ @@ -255,6 +255,8 @@
255 string get_3270_text(const char *str); 255 string get_3270_text(const char *str);
256 string get_local_text(const char *str); 256 string get_local_text(const char *str);
257 257
  258 + static session * create_local(H3270 *hSession) throw (std::exception);
  259 +
258 protected: 260 protected:
259 session(); 261 session();
260 262
@@ -278,7 +280,6 @@ @@ -278,7 +280,6 @@
278 280
279 static session * create_remote(const char *name) throw (std::exception); 281 static session * create_remote(const char *name) throw (std::exception);
280 static session * create_local(void) throw (std::exception); 282 static session * create_local(void) throw (std::exception);
281 - static session * create_local(H3270 *hSession) throw (std::exception);  
282 283
283 #ifdef HAVE_ICONV 284 #ifdef HAVE_ICONV
284 iconv_t conv2Local; 285 iconv_t conv2Local;
src/plugins/rx3270/pluginmain.cc
@@ -78,96 +78,6 @@ @@ -78,96 +78,6 @@
78 using namespace std; 78 using namespace std;
79 using namespace PW3270_NAMESPACE; 79 using namespace PW3270_NAMESPACE;
80 80
81 - class plugin : public session  
82 - {  
83 - public:  
84 - plugin(H3270 *hSession);  
85 - virtual ~plugin();  
86 -  
87 - void free(void *ptr);  
88 -  
89 - const string get_version(void);  
90 -  
91 - LIB3270_CSTATE get_cstate(void);  
92 - LIB3270_MESSAGE get_program_message(void);  
93 - LIB3270_SSL_STATE get_secure(void);  
94 -  
95 - int disconnect(void);  
96 - int set_url(const char *uri);  
97 - int connect(void);  
98 - bool is_connected(void);  
99 - bool is_ready(void);  
100 -  
101 - void logva(const char *fmt, va_list args);  
102 -  
103 - int iterate(bool wait);  
104 - int wait(int seconds);  
105 - int wait_for_ready(int seconds);  
106 -  
107 - string get_text(int baddr, size_t len);  
108 - string get_text_at(int row, int col, size_t sz);  
109 - int cmp_text_at(int row, int col, const char *text);  
110 - int set_text_at(int row, int col, const char *str);  
111 -  
112 - int set_cursor_position(int row, int col);  
113 - int set_cursor_addr(int addr);  
114 - int get_cursor_addr(void);  
115 -  
116 - int emulate_input(const char *str);  
117 -  
118 - int set_toggle(LIB3270_TOGGLE ix, bool value);  
119 -  
120 - int enter(void);  
121 - int pfkey(int key);  
122 - int pakey(int key);  
123 -  
124 - int erase(void);  
125 - int erase_eof(void);  
126 - int erase_eol(void);  
127 - int erase_input(void);  
128 -  
129 - int print(void);  
130 -  
131 - int get_field_start(int baddr = -1);  
132 - int get_field_len(int baddr = -1);  
133 - int get_next_unprotected(int baddr = -1);  
134 - int get_is_protected(int baddr = -1);  
135 - int get_is_protected_at(int row, int col);  
136 -  
137 - int set_copy(const char *text);  
138 - string get_copy(void);  
139 -  
140 - string get_clipboard(void);  
141 - int set_clipboard(const char *text);  
142 -  
143 - int popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...);  
144 - string file_chooser_dialog(int action, const char *title, const char *extension, const char *filename);  
145 -  
146 - int set_host_charset(const char *charset);  
147 - string get_host_charset(void);  
148 - string get_display_charset(void);  
149 -  
150 - int get_width(void);  
151 - int get_height(void);  
152 - int get_length(void);  
153 -  
154 - const char * asc2ebc(unsigned char *str, int sz = -1);  
155 - const char * ebc2asc(unsigned char *str, int sz = -1);  
156 -  
157 - 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);  
158 -  
159 - int quit(void);  
160 - int action(const char *name);  
161 -  
162 - void set_unlock_delay(unsigned short ms);  
163 -  
164 - protected:  
165 -  
166 - private:  
167 - H3270 * hSession;  
168 -  
169 - };  
170 -  
171 81
172 /*--[ Running rexx scripts ]---------------------------------------------------------------------------------*/ 82 /*--[ Running rexx scripts ]---------------------------------------------------------------------------------*/
173 83
@@ -487,7 +397,7 @@ extern "C" @@ -487,7 +397,7 @@ extern "C"
487 397
488 static session * factory(const char *name) 398 static session * factory(const char *name)
489 { 399 {
490 - return new plugin(lib3270_get_default_session_handle()); 400 + return session::create_local(lib3270_get_default_session_handle());
491 } 401 }
492 402
493 LIB3270_EXPORT int pw3270_plugin_start(GtkWidget *window, GtkWidget *terminal) 403 LIB3270_EXPORT int pw3270_plugin_start(GtkWidget *window, GtkWidget *terminal)
@@ -509,347 +419,3 @@ extern "C" @@ -509,347 +419,3 @@ extern "C"
509 return 0; 419 return 0;
510 } 420 }
511 421
512 - plugin::plugin(H3270 *hSession) : session()  
513 - {  
514 - this->hSession = hSession;  
515 - set_display_charset();  
516 - }  
517 -  
518 - plugin::~plugin()  
519 - {  
520 - trace("%s",__FUNCTION__);  
521 - }  
522 -  
523 -  
524 - const string plugin::get_version(void)  
525 - {  
526 - return string(lib3270_get_version());  
527 - }  
528 -  
529 - LIB3270_CSTATE plugin::get_cstate(void)  
530 - {  
531 - return lib3270_get_connection_state(hSession);  
532 - }  
533 -  
534 - LIB3270_MESSAGE plugin::get_program_message(void)  
535 - {  
536 - return lib3270_get_program_message(hSession);  
537 - }  
538 -  
539 - LIB3270_SSL_STATE plugin::get_secure(void)  
540 - {  
541 - return lib3270_get_secure(hSession);  
542 - }  
543 -  
544 - int plugin::disconnect(void)  
545 - {  
546 - lib3270_disconnect(hSession);  
547 - return 0;  
548 - }  
549 -  
550 - int plugin::connect(void)  
551 - {  
552 - return lib3270_connect(hSession,0);  
553 - }  
554 -  
555 - bool plugin::is_connected(void)  
556 - {  
557 - return lib3270_is_connected(hSession) != 0;  
558 - }  
559 -  
560 - int plugin::iterate(bool wait)  
561 - {  
562 - if(!lib3270_is_connected(hSession))  
563 - return ENOTCONN;  
564 -  
565 - lib3270_main_iterate(hSession,wait);  
566 -  
567 - return 0;  
568 - }  
569 -  
570 - int plugin::wait(int seconds)  
571 - {  
572 - return lib3270_wait(hSession,seconds);  
573 - }  
574 -  
575 - int plugin::enter(void)  
576 - {  
577 - return lib3270_enter(hSession);  
578 - }  
579 -  
580 - int plugin::pfkey(int key)  
581 - {  
582 - return lib3270_pfkey(hSession,key);  
583 - }  
584 -  
585 - int plugin::pakey(int key)  
586 - {  
587 - return lib3270_pakey(hSession,key);  
588 - }  
589 -  
590 - int plugin::wait_for_ready(int seconds)  
591 - {  
592 - return lib3270_wait_for_ready(hSession,seconds);  
593 - }  
594 -  
595 - string plugin::get_text_at(int row, int col, size_t sz)  
596 - {  
597 - string rc;  
598 - char * ptr = lib3270_get_text_at(hSession,row,col,(int) sz);  
599 -  
600 - if(ptr)  
601 - {  
602 - rc.assign(ptr);  
603 - lib3270_free(ptr);  
604 - }  
605 -  
606 - return rc;  
607 - }  
608 -  
609 - int plugin::cmp_text_at(int row, int col, const char *text)  
610 - {  
611 - return lib3270_cmp_text_at(hSession,row,col,text);  
612 - }  
613 -  
614 - int plugin::set_text_at(int row, int col, const char *str)  
615 - {  
616 - return lib3270_set_text_at(hSession,row,col,(const unsigned char *) str);  
617 - }  
618 -  
619 - bool plugin::is_ready(void)  
620 - {  
621 - return lib3270_is_ready(hSession) != 0;  
622 - }  
623 -  
624 - int plugin::set_cursor_position(int row, int col)  
625 - {  
626 - return lib3270_set_cursor_position(hSession,row,col);  
627 - }  
628 -  
629 - int plugin::set_toggle(LIB3270_TOGGLE ix, bool value)  
630 - {  
631 - return lib3270_set_toggle(hSession,ix,(int) value);  
632 - }  
633 -  
634 - void plugin::logva(const char *fmt, va_list args)  
635 - {  
636 - lib3270_write_va_log(hSession,"REXX",fmt,args);  
637 - }  
638 -  
639 - string plugin::get_text(int baddr, size_t len)  
640 - {  
641 - string rc;  
642 - char * ptr = lib3270_get_text(hSession,baddr,len);  
643 -  
644 - if(ptr)  
645 - {  
646 - rc.assign(ptr);  
647 - lib3270_free(ptr);  
648 - }  
649 -  
650 - return rc;  
651 - }  
652 -  
653 - int plugin::get_field_start(int baddr)  
654 - {  
655 - return lib3270_get_field_start(hSession,baddr);  
656 - }  
657 -  
658 - int plugin::get_field_len(int baddr)  
659 - {  
660 - return lib3270_get_field_len(hSession,baddr);  
661 - }  
662 -  
663 - int plugin::set_copy(const char *text)  
664 - {  
665 - v3270_set_copy(GTK_WIDGET(lib3270_get_user_data(hSession)),text);  
666 - return 0;  
667 - }  
668 -  
669 - string plugin::get_copy(void)  
670 - {  
671 - string rc;  
672 - gchar * ptr = v3270_get_copy(GTK_WIDGET(lib3270_get_user_data(hSession)));  
673 -  
674 - if(ptr)  
675 - {  
676 - rc.assign(ptr);  
677 - g_free(ptr);  
678 - }  
679 -  
680 - return rc;  
681 - }  
682 -  
683 - string plugin::get_clipboard(void)  
684 - {  
685 - string rc;  
686 - gchar * ptr = gtk_clipboard_wait_for_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD));  
687 -  
688 - if(ptr)  
689 - {  
690 - rc.assign(ptr);  
691 - g_free(ptr);  
692 - }  
693 -  
694 - return rc;  
695 - }  
696 -  
697 - int plugin::set_clipboard(const char *text)  
698 - {  
699 - gtk_clipboard_set_text(gtk_widget_get_clipboard(pw3270_get_toplevel(),GDK_SELECTION_CLIPBOARD),(gchar *) text, -1);  
700 - return 0;  
701 - }  
702 -  
703 - void plugin::free(void *ptr)  
704 - {  
705 - g_free(ptr);  
706 - }  
707 -  
708 - int plugin::set_cursor_addr(int addr)  
709 - {  
710 - return lib3270_set_cursor_address(hSession,addr);  
711 - }  
712 -  
713 - int plugin::get_cursor_addr(void)  
714 - {  
715 - return lib3270_get_cursor_address(hSession);  
716 - }  
717 -  
718 - int plugin::get_width(void)  
719 - {  
720 - return lib3270_get_width(hSession);  
721 - }  
722 -  
723 - int plugin::get_height(void)  
724 - {  
725 - return lib3270_get_height(hSession);  
726 - }  
727 -  
728 - int plugin::get_length(void)  
729 - {  
730 - return lib3270_get_length(hSession);  
731 - }  
732 -  
733 - int plugin::emulate_input(const char *str)  
734 - {  
735 - return lib3270_emulate_input(hSession, str, -1, 1);  
736 - }  
737 -  
738 - int plugin::get_next_unprotected(int baddr)  
739 - {  
740 - return lib3270_get_next_unprotected(hSession,baddr);  
741 - }  
742 -  
743 - int plugin::get_is_protected(int baddr)  
744 - {  
745 - return lib3270_get_is_protected(hSession,baddr);  
746 - }  
747 -  
748 - int plugin::get_is_protected_at(int row, int col)  
749 - {  
750 - return lib3270_get_is_protected_at(hSession,row,col);  
751 - }  
752 -  
753 -int plugin::popup_dialog(LIB3270_NOTIFY id , const char *title, const char *message, const char *fmt, ...)  
754 -{  
755 - va_list args;  
756 - va_start(args, fmt);  
757 - lib3270_popup_va(hSession, id, title, message, fmt, args);  
758 - va_end(args);  
759 - return 0;  
760 -}  
761 -  
762 -string plugin::file_chooser_dialog(int action, const char *title, const char *extension, const char *filename)  
763 -{  
764 - string rc;  
765 -  
766 - gchar * ptr = pw3270_file_chooser((GtkFileChooserAction) action, script_name ? script_name : "rexx", title, filename, extension);  
767 -  
768 - if(ptr)  
769 - {  
770 - rc.assign((char *) ptr);  
771 - g_free(ptr);  
772 - }  
773 -  
774 - return rc;  
775 -}  
776 -  
777 -int plugin::quit(void)  
778 -{  
779 - gtk_main_quit();  
780 - return 0;  
781 -}  
782 -  
783 -int plugin::action(const char *name)  
784 -{  
785 - return lib3270_action(hSession,name);  
786 -}  
787 -  
788 -int plugin::set_host_charset(const char *charset)  
789 -{  
790 - return lib3270_set_host_charset(hSession,charset);  
791 -}  
792 -  
793 -string plugin::get_host_charset(void)  
794 -{  
795 - return string(lib3270_get_host_charset(hSession));  
796 -}  
797 -  
798 -string plugin::get_display_charset(void)  
799 -{  
800 - return string(lib3270_get_display_charset(hSession));  
801 -}  
802 -  
803 -int plugin::erase(void)  
804 -{  
805 - return lib3270_erase(hSession);  
806 -}  
807 -  
808 -int plugin::erase_eof(void)  
809 -{  
810 - return lib3270_eraseeof(hSession);  
811 -}  
812 -  
813 -int plugin::erase_eol(void)  
814 -{  
815 - return lib3270_eraseeol(hSession);  
816 -}  
817 -  
818 -int plugin::erase_input(void)  
819 -{  
820 - return lib3270_eraseinput(hSession);  
821 -}  
822 -  
823 -int plugin::print(void)  
824 -{  
825 - return lib3270_print(hSession);  
826 -}  
827 -  
828 -const char * plugin::asc2ebc(unsigned char *str, int sz)  
829 -{  
830 - return lib3270_asc2ebc(hSession,str,sz);  
831 -}  
832 -  
833 -int plugin::set_url(const char *uri)  
834 -{  
835 - return lib3270_set_url(hSession,uri) != NULL ? 1 : 0;  
836 -}  
837 -  
838 -const char * plugin::ebc2asc(unsigned char *str, int sz)  
839 -{  
840 - return lib3270_ebc2asc(hSession,str,sz);  
841 -}  
842 -  
843 -int plugin::file_transfer(LIB3270_FT_OPTION options, const gchar *local, const gchar *remote, int lrecl, int blksize, int primspace, int secspace, int dft)  
844 -{  
845 - /*  
846 - return v3270_transfer_file(v3270_get_default_widget(),options,local,remote,lrecl,blksize,primspace,secspace,dft);  
847 - */  
848 - return EINVAL;  
849 -}  
850 -  
851 -void plugin::set_unlock_delay(unsigned short ms)  
852 -{  
853 - lib3270_set_unlock_delay(hSession, (unsigned short) ms);  
854 -}  
855 -