Advertisement
Guest User

Untitled

a guest
May 22nd, 2017
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #include "bfield.h"
  2.  
  3. class BEdit: public BField{
  4. bool _dyn;
  5. int _maxdatalen;
  6. int* _insertmode;
  7. int _curpos;
  8. int _offset;
  9. public:
  10. BEdit(char* str, int row, int col, int fieldlen,
  11. int maxdatalen, int* insertmode,
  12. bool framed = false);
  13. BEdit(int row, int col, int fieldlen,
  14. int maxdatalen, int* insertmode,
  15. bool framed = false);
  16. ~BEdit();
  17. void display()const;
  18.  
  19. int edit();
  20. bool editable()const;
  21. int row()const;
  22. int col()const;
  23. int fieldlen()const;
  24.  
  25. //Modified in R0.3
  26. BField& set(const void* str);
  27. };
  28.  
  29.  
  30. #include "bedit.h"
  31. #include <string>
  32. #include "btext.h"
  33.  
  34. //no mem allocation
  35. BEdit::BEdit(char* str, int row, int col, int fieldlen,
  36. int maxdatalen, int* insertmode,
  37. bool framed)
  38. {
  39. _data = str; //store the address of str in _data
  40. _dyn = false;
  41. _maxdatalen = maxdatalen;
  42. _insertmode = insertmode;
  43. _curpos = 0;
  44. _offset = 0;
  45. if(framed==true)
  46. {
  47. BFrame::setSize(3, fieldlen+2);
  48. }
  49. else
  50. {
  51. BFrame::setSize(0, fieldlen);
  52. }
  53.  
  54. }
  55.  
  56. //with mem allocation
  57. BEdit::BEdit(int row, int col, int fieldlen,
  58. int maxdatalen, int* insertmode,
  59. bool framed)
  60. {
  61. char *temp;
  62. try
  63. {
  64. temp = new char[maxdatalen+1];
  65. temp[0]='\0';
  66. _data=temp;
  67. }
  68. catch(std::bad_alloc)
  69. {
  70. _data = 0;
  71. printf("Error allocating memory for BEdit");
  72. }
  73. _dyn=true;
  74. _maxdatalen=maxdatalen;
  75. _insertmode=insertmode;
  76. _curpos=0;
  77. _offset=0;
  78.  
  79. if(framed==true)
  80. {
  81. BFrame::setSize(3, fieldlen+2);
  82. }
  83. else
  84. {
  85. BFrame::setSize(0, fieldlen);
  86. }
  87. }
  88.  
  89. //desctructor for BEdit
  90. BEdit::~BEdit()
  91. {
  92. }
  93.  
  94. void BEdit::display()const
  95. {
  96. BField::display();
  97. bio_display((char*)_data, BFrame::row(), BFrame::col(), _maxdatalen);
  98. }
  99.  
  100. int BEdit::edit()
  101. {
  102. //return 0;
  103. return bio_edit((char*)_data, BFrame::row(), BFrame::col(), BFrame::width(), _maxdatalen, _insertmode, &_offset, &_curpos, 0, 0);
  104. }
  105.  
  106. bool BEdit::editable()const
  107. {
  108. return true;
  109. }
  110.  
  111. int BEdit::row()const
  112. {
  113. //return 0;
  114. return BField::row();
  115. }
  116.  
  117. int BEdit::col()const
  118. {
  119. //return 0;
  120. return BField::col();
  121. }
  122.  
  123. int BEdit::fieldlen()const
  124. {
  125. //return 0;
  126. return BFrame::width();
  127. }
  128.  
  129. BField& BEdit::set(const void* str)
  130. {
  131.  
  132. strncpy((char*) BField::_data, (char*)str, _maxdatalen); //Dont know about casting both _data and str as chars, but it worked
  133. return (BField&)*this;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement