Commit 5ce3478069f6d387b4676fab616bfd0f7c8e558d

Authored by perry.werneck@gmail.com
1 parent 5b9b55e0

Trabalhando na extensão LibreOffice

src/oxt/Makefile.in
... ... @@ -51,10 +51,12 @@ CPPUMAKER=${OO_SDK_HOME}/bin/cppumaker
51 51  
52 52 #---[ Rules ]------------------------------------------------------------------------------------------
53 53  
  54 +LIB3270_CFLAGS ?= `pkg-config --cflags lib3270`
  55 +
54 56 DLL_CFLAGS=@DLL_CFLAGS@
55 57 DLL_FLAGS=-shared
56 58  
57   -CXXFLAGS=-Wno-strict-aliasing -I$(OBJDIR)/uno/include -I$(OO_SDK_HOME)/include -I$(OBJDIR)/uno/include/br/com/bb
  59 +CXXFLAGS=-Wno-strict-aliasing -I$(OBJDIR)/uno/include -I$(OO_SDK_HOME)/include -I$(OBJDIR)/uno/include/br/com/bb $(LIB3270_CFLAGS)
58 60 LDFLAGS=-L${OO_SDK_HOME}/lib -L${OO_SDK_URE_HOME}/lib -Wl,-rpath-link=${OO_SDK_URE_HOME}/lib,-rpath=${OO_SDK_URE_HOME}/lib \
59 61 $(CPPULIB) $(CPPUHELPERLIB) $(SALLIB)
60 62  
... ... @@ -64,7 +66,7 @@ LDFLAGS=-L${OO_SDK_HOME}/lib -L${OO_SDK_URE_HOME}/lib -Wl,-rpath-link=${OO_SDK_U
64 66 $(OBJDBG)/%.o: %.cxx $(OBJDIR)/uno/include/br/com/bb/$(PACKAGE).hpp Makefile
65 67 @echo $< ...
66 68 @$(MKDIR) `dirname $@`
67   - @$(CXX) $(DBG_CFLAGS) $(CXXFLAGS) $(DLL_CFLAGS) -o $@ -c $<
  69 + @$(CXX) $(DBG_CFLAGS) $(CXXFLAGS) $(LIB3270_CFLAGS) $(DLL_CFLAGS) -o $@ -c $<
68 70  
69 71 %.urd: %.idl
70 72 @echo $< ...
... ...
src/oxt/actions.cxx
... ... @@ -48,3 +48,25 @@
48 48 {
49 49 return hSession->pakey((int) keycode);
50 50 }
  51 +
  52 +::sal_Int16 SAL_CALL pw3270::uno_impl::cmpTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException)
  53 +{
  54 + return hSession->cmp_text_at((int) row, (int) col, rtl::OUStringToOString(text,hSession->get_encoding()).getStr());
  55 +}
  56 +
  57 +::sal_Bool SAL_CALL isReady( ) throw (::com::sun::star::uno::RuntimeException)
  58 +{
  59 + if(!isConnected())
  60 + return FALSE;
  61 +
  62 + if(hSession->get_state() == )
  63 + return TRUE;
  64 +
  65 + return FALSE;
  66 +}
  67 +
  68 +::sal_Bool SAL_CALL isConnected( ) throw (::com::sun::star::uno::RuntimeException)
  69 +{
  70 +
  71 +}
  72 +
... ...
src/oxt/globals.hpp
... ... @@ -11,6 +11,7 @@
11 11 #define LANGUAGE_BINDING_NAME "gcc3"
12 12  
13 13 #include <stdio.h>
  14 + #include <lib3270.h>
14 15  
15 16 #include <rtl/uuid.h>
16 17 #include <osl/thread.hxx>
... ... @@ -51,22 +52,23 @@
51 52 public:
52 53 session();
53 54 virtual ~session();
54   - virtual int get_revision(void) = 0;
55   - virtual int get_state(void) = 0;
56   - virtual char * get_text_at(int row, int col, int len) = 0;
57   - virtual int set_text_at(int row, int col, const char *text) = 0;
  55 + virtual int get_revision(void) = 0;
  56 + virtual LIB3270_MESSAGE get_state(void) = 0;
  57 + virtual char * get_text_at(int row, int col, int len) = 0;
  58 + virtual int set_text_at(int row, int col, const char *text) = 0;
  59 + virtual int cmp_text_at(int row, int col, const char *text) = 0;
58 60  
59   - virtual int connect(const char *uri) = 0;
60   - virtual int disconnect(void) = 0;
61   - virtual bool connected(void) = 0;
  61 + virtual int connect(const char *uri) = 0;
  62 + virtual int disconnect(void) = 0;
  63 + virtual bool connected(void) = 0;
62 64  
63   - virtual int enter(void) = 0;
64   - virtual int pfkey(int key) = 0;
65   - virtual int pakey(int key) = 0;
  65 + virtual int enter(void) = 0;
  66 + virtual int pfkey(int key) = 0;
  67 + virtual int pakey(int key) = 0;
66 68  
67   - virtual void mem_free(void *) = 0;
  69 + virtual void mem_free(void *) = 0;
68 70  
69   - void sleep(int seconds = 1);
  71 + void sleep(int seconds = 1);
70 72  
71 73 rtl_TextEncoding get_encoding();
72 74  
... ... @@ -78,43 +80,43 @@
78 80 lib3270_session();
79 81 virtual ~lib3270_session();
80 82  
81   - virtual int get_revision(void);
82   - virtual int get_state(void);
  83 + virtual int get_revision(void);
  84 + virtual LIB3270_MESSAGE get_state(void);
83 85  
84   - virtual int connect(const char *uri);
85   - virtual int disconnect(void);
86   - virtual bool connected(void);
  86 + virtual int connect(const char *uri);
  87 + virtual int disconnect(void);
  88 + virtual bool connected(void);
87 89  
88   - virtual int enter(void);
89   - virtual int pfkey(int key);
90   - virtual int pakey(int key);
  90 + virtual int enter(void);
  91 + virtual int pfkey(int key);
  92 + virtual int pakey(int key);
91 93  
92   - virtual char * get_text_at(int row, int col, int len);
93   - virtual int set_text_at(int row, int col, const char *text);
  94 + virtual char * get_text_at(int row, int col, int len);
  95 + virtual int set_text_at(int row, int col, const char *text);
  96 + virtual int cmp_text_at(int row, int col, const char *text);
94 97  
95   - virtual void mem_free(void *ptr);
  98 + virtual void mem_free(void *ptr);
96 99  
97 100 private:
98 101 bool enabled;
99 102 oslModule hModule;
100 103 oslThread hThread;
101   - void * hSession;
  104 + H3270 * hSession;
102 105  
103 106 /* Internal calls */
104 107 static void start_connect(lib3270_session *session);
105 108 void network_loop(void);
106 109  
107 110 /* lib3270 entry points */
108   - const char * (* _get_revision)(void);
109   - int (* _get_program_message)(void *);
110   - char * (* _get_text_at)(void *,int,int,int);
111   - int (* _set_text_at)(void *,int,int,const unsigned char *);
112   - int (* _cmp_text_at)(void *,int,int,const char *);
113   - int (* _enter)(void *);
114   - int (* _pfkey)(void *, int);
115   - int (* _pakey)(void *, int);
116   - void * (* _mem_free)(void *);
117   -
  111 + const char * (* _get_revision)(void);
  112 + LIB3270_MESSAGE (* _get_program_message)(H3270 *);
  113 + char * (* _get_text_at)(H3270 *,int,int,int);
  114 + int (* _set_text_at)(H3270 *,int,int,const unsigned char *);
  115 + int (* _cmp_text_at)(H3270 *,int,int,const char *);
  116 + int (* _enter)(H3270 *);
  117 + int (* _pfkey)(H3270 *, int);
  118 + int (* _pakey)(H3270 *, int);
  119 + void * (* _mem_free)(void *);
118 120  
119 121 };
120 122  
... ... @@ -144,6 +146,7 @@
144 146 virtual ::sal_Int16 SAL_CALL enter( ) throw (::com::sun::star::uno::RuntimeException);
145 147 virtual ::sal_Int16 SAL_CALL pfkey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException);
146 148 virtual ::sal_Int16 SAL_CALL pakey( ::sal_Int16 keycode ) throw (::com::sun::star::uno::RuntimeException);
  149 + virtual ::sal_Int16 SAL_CALL cmpTextAt( ::sal_Int16 row, ::sal_Int16 col, const ::rtl::OUString& text ) throw (::com::sun::star::uno::RuntimeException);
147 150  
148 151 private:
149 152  
... ...
src/oxt/local.cxx
... ... @@ -236,3 +236,9 @@
236 236 return _set_text_at(hSession,row,col,(const unsigned char *) text);
237 237 }
238 238  
  239 + int pw3270::lib3270_session::cmp_text_at(int row, int col,const char *text)
  240 + {
  241 + if(!hSession)
  242 + return EINVAL;
  243 + return _cmp_text_at(hSession,row,col,text);
  244 + }
... ...
src/oxt/pw3270.idl
... ... @@ -68,6 +68,7 @@ module br
68 68 short setTextAt([in] short row, [in] short col, [in] string text);
69 69  
70 70 /* Actions */
  71 + short cmpTextAt([in] short row, [in] short col, [in] string text);
71 72 short enter();
72 73 short pfkey([in] short keycode);
73 74 short pakey([in] short keycode);
... ... @@ -75,6 +76,10 @@ module br
75 76 /* Misc */
76 77 short getRevision();
77 78 short sleep([in] short seconds);
  79 + boolean isReady();
  80 +// short waitForReady([in] short seconds);
  81 +// short waitForTextAt(in] short row, [in] short col, [in] string text, [in] short seconds);
  82 + boolean isConnected();
78 83  
79 84 };
80 85  
... ...