Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "bfield.h"
- class BEdit: public BField{
- bool _dyn;
- int _maxdatalen;
- int* _insertmode;
- int _curpos;
- int _offset;
- public:
- BEdit(char* str, int row, int col, int fieldlen,
- int maxdatalen, int* insertmode,
- bool framed = false);
- BEdit(int row, int col, int fieldlen,
- int maxdatalen, int* insertmode,
- bool framed = false);
- ~BEdit();
- void display()const;
- int edit();
- bool editable()const;
- int row()const;
- int col()const;
- int fieldlen()const;
- //Modified in R0.3
- BField& set(const void* str);
- };
- #include "bedit.h"
- #include <string>
- #include "btext.h"
- //no mem allocation
- BEdit::BEdit(char* str, int row, int col, int fieldlen,
- int maxdatalen, int* insertmode,
- bool framed)
- {
- _data = str; //store the address of str in _data
- _dyn = false;
- _maxdatalen = maxdatalen;
- _insertmode = insertmode;
- _curpos = 0;
- _offset = 0;
- if(framed==true)
- {
- BFrame::setSize(3, fieldlen+2);
- }
- else
- {
- BFrame::setSize(0, fieldlen);
- }
- }
- //with mem allocation
- BEdit::BEdit(int row, int col, int fieldlen,
- int maxdatalen, int* insertmode,
- bool framed)
- {
- char *temp;
- try
- {
- temp = new char[maxdatalen+1];
- temp[0]='\0';
- _data=temp;
- }
- catch(std::bad_alloc)
- {
- _data = 0;
- printf("Error allocating memory for BEdit");
- }
- _dyn=true;
- _maxdatalen=maxdatalen;
- _insertmode=insertmode;
- _curpos=0;
- _offset=0;
- if(framed==true)
- {
- BFrame::setSize(3, fieldlen+2);
- }
- else
- {
- BFrame::setSize(0, fieldlen);
- }
- }
- //desctructor for BEdit
- BEdit::~BEdit()
- {
- }
- void BEdit::display()const
- {
- BField::display();
- bio_display((char*)_data, BFrame::row(), BFrame::col(), _maxdatalen);
- }
- int BEdit::edit()
- {
- //return 0;
- return bio_edit((char*)_data, BFrame::row(), BFrame::col(), BFrame::width(), _maxdatalen, _insertmode, &_offset, &_curpos, 0, 0);
- }
- bool BEdit::editable()const
- {
- return true;
- }
- int BEdit::row()const
- {
- //return 0;
- return BField::row();
- }
- int BEdit::col()const
- {
- //return 0;
- return BField::col();
- }
- int BEdit::fieldlen()const
- {
- //return 0;
- return BFrame::width();
- }
- BField& BEdit::set(const void* str)
- {
- strncpy((char*) BField::_data, (char*)str, _maxdatalen); //Dont know about casting both _data and str as chars, but it worked
- return (BField&)*this;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement