Commit 469987e585ff23f3ae7ab221b826264d734cd06b

Authored by Perry Werneck
1 parent ccc0ad39
Exists in master and in 1 other branch develop

Adding getDescription and getSummary on action object.

client/src/core/actions.cc
... ... @@ -38,9 +38,26 @@
38 38  
39 39 #include <lib3270/ipc.h>
40 40 #include <lib3270/toggle.h>
  41 + #include <lib3270/properties.h>
  42 + #include <lib3270/ipc/action.h>
41 43  
42 44 /*---[ Implement ]----------------------------------------------------------------------------------*/
43 45  
  46 + TN3270::Action::Action(const LIB3270_ACTION *descriptor) {
  47 + this->descriptor = descriptor;
  48 + }
  49 +
  50 + TN3270::Action::~Action() {
  51 + }
  52 +
  53 + const char * TN3270::Action::getDescription() const noexcept {
  54 + return lib3270_property_get_description((const LIB3270_PROPERTY *) this->descriptor);
  55 + }
  56 +
  57 + const char * TN3270::Action::getSummary() const noexcept {
  58 + return lib3270_property_get_summary((const LIB3270_PROPERTY *) this->descriptor);
  59 + }
  60 +
44 61 std::vector<const LIB3270_ACTION *> TN3270::getActions() {
45 62  
46 63 std::vector<const LIB3270_ACTION *> actions;
... ...
client/src/include/lib3270/ipc/action.h
... ... @@ -41,19 +41,29 @@
41 41 #define IPC3270_ACTION_H_INCLUDED
42 42  
43 43 #include <lib3270/ipc.h>
  44 + #include <string.h>
44 45  
45 46 namespace TN3270 {
46 47  
47 48 /// @brief TN3270 Action
48 49 class TN3270_PUBLIC Action {
  50 + protected:
  51 + const LIB3270_ACTION *descriptor;
  52 +
  53 + Action(const LIB3270_ACTION *descriptor);
  54 +
49 55 public:
50 56 virtual bool activatable() const noexcept = 0;
51 57 virtual void activate() = 0;
  58 + virtual ~Action();
52 59  
53 60 inline operator bool() const noexcept {
54 61 return activatable();
55 62 }
56 63  
  64 + const char * getDescription() const noexcept;
  65 + const char * getSummary() const noexcept;
  66 +
57 67 };
58 68  
59 69 }
... ...
client/src/session/local/actions.cc
... ... @@ -44,9 +44,8 @@
44 44  
45 45 namespace TN3270 {
46 46  
47   - Local::Action::Action(Session *session, const LIB3270_ACTION *descriptor) {
  47 + Local::Action::Action(Session *session, const LIB3270_ACTION *descriptor) : TN3270::Action(descriptor) {
48 48 this->session = session;
49   - this->descriptor = descriptor;
50 49 }
51 50  
52 51 bool Local::Action::activatable() const noexcept {
... ...