Commit e035bbac37a61991708d89122811309186d33dd7
1 parent
4ee2d89f
Exists in
master
and in
3 other branches
Adding print methods in the main library.
Showing
4 changed files
with
40 additions
and
10 deletions
Show diff stats
src/include/lib3270.h
... | ... | @@ -82,6 +82,17 @@ |
82 | 82 | #define LIB3270_LUNAME_LENGTH 16 |
83 | 83 | |
84 | 84 | /** |
85 | + * @brief Print modes. | |
86 | + * | |
87 | + */ | |
88 | + typedef enum _lib3270_print_mode | |
89 | + { | |
90 | + LIB3270_PRINT_ALL, | |
91 | + LIB3270_PRINT_SELECTED, | |
92 | + LIB3270_PRINT_COPY | |
93 | + } LIB3270_PRINT_MODE; | |
94 | + | |
95 | + /** | |
85 | 96 | * @brief Character attributes. |
86 | 97 | */ |
87 | 98 | typedef enum _lib3270_attr |
... | ... | @@ -720,15 +731,21 @@ |
720 | 731 | */ |
721 | 732 | LIB3270_EXPORT int lib3270_move_cursor(H3270 *h, LIB3270_DIRECTION dir, unsigned char sel); |
722 | 733 | |
734 | + | |
723 | 735 | /** |
724 | 736 | * @brief Print page |
725 | 737 | * |
726 | - * @param h Session Handle. | |
738 | + * @param hSession Session Handle. | |
739 | + * @param mode Print mode. | |
727 | 740 | * |
728 | 741 | * @return 0 if ok, error code if not. |
729 | 742 | * |
730 | 743 | */ |
731 | - LIB3270_EXPORT int lib3270_print(H3270 *h); | |
744 | + LIB3270_EXPORT int lib3270_print(H3270 *hSession, LIB3270_PRINT_MODE mode); | |
745 | + | |
746 | + LIB3270_EXPORT int lib3270_print_all(H3270 *hSession); | |
747 | + LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession); | |
748 | + LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession); | |
732 | 749 | |
733 | 750 | /** |
734 | 751 | * @brief Get buffer contents. | ... | ... |
src/include/lib3270/session.h
... | ... | @@ -74,8 +74,7 @@ |
74 | 74 | void (*set_selection)(H3270 *session, unsigned char on); |
75 | 75 | void (*ctlr_done)(H3270 *session); |
76 | 76 | void (*autostart)(H3270 *session); |
77 | - int (*print)(H3270 *session); | |
78 | - | |
77 | + int (*print)(H3270 *session, LIB3270_PRINT_MODE mode); | |
79 | 78 | |
80 | 79 | void (*message)(H3270 *session, LIB3270_NOTIFY id , const char *title, const char *message, const char *text); |
81 | 80 | void (*popup)(H3270 *session, LIB3270_NOTIFY id, const char *title, const char *msg, const char *fmt, va_list); | ... | ... |
src/lib3270/session.c
... | ... | @@ -185,10 +185,10 @@ static void set_cursor(H3270 *session unused, LIB3270_POINTER id unused) |
185 | 185 | { |
186 | 186 | } |
187 | 187 | |
188 | -static int print(H3270 *session) | |
188 | +static int print(H3270 *session, LIB3270_PRINT_MODE mode unused) | |
189 | 189 | { |
190 | 190 | lib3270_write_log(session, "print", "%s", "Printing is unavailable"); |
191 | - return -1; | |
191 | + return errno = ENOTSUP; | |
192 | 192 | } |
193 | 193 | |
194 | 194 | static void message(H3270 *session, LIB3270_NOTIFY id unused, const char *title, const char *msg, const char *text) | ... | ... |
src/lib3270/util.c
... | ... | @@ -592,13 +592,27 @@ void lib3270_popup_an_errno(H3270 *hSession, int errn, const char *fmt, ...) |
592 | 592 | |
593 | 593 | } |
594 | 594 | |
595 | -LIB3270_EXPORT int lib3270_print(H3270 *h) | |
595 | +LIB3270_EXPORT int lib3270_print(H3270 *hSession, LIB3270_PRINT_MODE mode) | |
596 | 596 | { |
597 | - CHECK_SESSION_HANDLE(h); | |
598 | - trace("%s(%p)",__FUNCTION__,h); | |
599 | - return h->cbk.print(h); | |
597 | + return hSession->cbk.print(hSession, mode); | |
600 | 598 | } |
601 | 599 | |
600 | +LIB3270_EXPORT int lib3270_print_all(H3270 *hSession) | |
601 | +{ | |
602 | + return lib3270_print(hSession,LIB3270_PRINT_ALL); | |
603 | +} | |
604 | + | |
605 | +LIB3270_EXPORT int lib3270_print_selected(H3270 *hSession) | |
606 | +{ | |
607 | + if(lib3270_has_selection(hSession)) | |
608 | + return lib3270_print(hSession,LIB3270_PRINT_SELECTED); | |
609 | + return errno = ENODATA; | |
610 | +} | |
611 | + | |
612 | +LIB3270_EXPORT int lib3270_print_copy(H3270 *hSession) | |
613 | +{ | |
614 | + return lib3270_print(hSession,LIB3270_PRINT_COPY); | |
615 | +} | |
602 | 616 | |
603 | 617 | LIB3270_EXPORT LIB3270_POINTER lib3270_get_pointer(H3270 *hSession, int baddr) |
604 | 618 | { | ... | ... |