Difference between revisions of "Console Framework Classes 20103 - OOP344"
(→FWLabel) |
(→FWButton) |
||
Line 226: | Line 226: | ||
</syntaxhighlight></big> | </syntaxhighlight></big> | ||
+ | |||
+ | ===FWCHECK=== | ||
+ | |||
<big><syntaxhighlight lang="cpp"> | <big><syntaxhighlight lang="cpp"> | ||
+ | class FWCheck : public FWLabel { | ||
+ | int _flag; | ||
+ | int _radio; | ||
+ | char _format[4]; | ||
+ | public: | ||
+ | FWCheck(bool Checked,const char* Format, const char* Text, int Row, int Col, bool IsRadio = false); | ||
+ | void draw(int Refresh = FW_NO_REFRESH) const; | ||
+ | int edit(); | ||
+ | bool editable()const; | ||
+ | void set(const void* flag); | ||
+ | void *data(); | ||
+ | }; | ||
</syntaxhighlight></big> | </syntaxhighlight></big> | ||
+ | |||
+ | ===FWValEdit=== | ||
+ | |||
<big><syntaxhighlight lang="cpp"> | <big><syntaxhighlight lang="cpp"> | ||
− | + | class FWValEdit: public FWLineEdit{ | |
− | + | void (*_help)(MessageStatus, FWDialog&); | |
+ | bool (*_validate)(const char*, FWDialog&); | ||
+ | public: | ||
+ | FWValEdit(char* Str, int Row, int Col, int Width, | ||
+ | int Maxdatalen, int* Insertmode, | ||
+ | bool (*Validate)(const char* , FWDialog&) = NO_VALDFUNC, | ||
+ | void (*Help)(MessageStatus, FWDialog&) = NO_HELPFUNC, | ||
+ | bool Bordered = false, | ||
+ | const char* Border=FW_BORDER_CHARS); | ||
+ | FWValEdit(int Row, int Col, int Width, | ||
+ | int Maxdatalen, int* Insertmode, | ||
+ | bool (*Validate)(const char* , FWDialog&) = NO_VALDFUNC, | ||
+ | void (*Help)(MessageStatus, FWDialog&) = NO_HELPFUNC, | ||
+ | bool Bordered = false, | ||
+ | const char* Border=FW_BORDER_CHARS); | ||
+ | int edit(); | ||
+ | }; | ||
</syntaxhighlight></big> | </syntaxhighlight></big> |
Revision as of 12:45, 8 November 2010
Contents
The Frame work
General Internal Header file
#ifndef ___CONFW_H__
#define ___CONFW_H__
#ifndef _CRT_SECURE_NO_DEPRECATE
#define _CRT_SECURE_NO_DEPRECATE
#endif
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS
#endif
#include <string.h>
extern "C"{
#include "iol.h"
};
#define FW_BORDER_CHARS "/-\\|/-\\|"
#define FW_MAX_NO_FIELDS 100
#define FW_BUTTON_HIT 1
#define FW_MAX_LINE_CHARS (1024u)
#define FW_REFRESH -2
#define FW_FULL_FRAME -1
#define FW_NO_REFRESH 0
enum MessageStatus{ClearMessage,SetMessage};
#ifdef NO_HELPFUNC
# undef NO_HELPFUNC
#endif
#define NO_HELPFUNC ((void(*)(MessageStatus, FWDialog&))(0))
#ifdef NO_VALDFUNC
# undef NO_VALDFUNC
#endif
#define NO_VALDFUNC ((bool(*)(const char*, FWDialog&))(0))
#endif
Classes
FWBorder
Class Definition
class FWBorder {
int _row;
int _col;
int _height;
int _width;
char _border[9];
bool _visible;
FWBorder* _container;
protected:
int absRow()const;
int absCol()const;
public:
FWBorder(int Row=-1, int Col=-1, int Width=-1,int Height=-1,
bool Visible = false,
const char* Border=FW_BORDER_CHARS,
FWBorder* Container = (FWBorder*)0);
virtual void draw(int refresh = FW_NO_REFRESH)const;
virtual ~FWBorder();
void visible(bool val);
bool visible()const;
void container(FWBorder* theContainer);
FWBorder* container();
bool fullscreen()const;
void row(int val);
int row()const;
void col(int val);
int col()const;
void size(int height, int width);
int height()const;
int width()const;
};
Border Tester
FWField
class FWField: public FWBorder{
protected:
void* _data;
public:
FWField(int Row = 0, int Col = 0,
int Width = 0, int Height =0,
void* Data = (void*) 0,
bool Bordered = false,
const char* Border=FW_BORDER_CHARS);
~FWField();
virtual int edit() = 0;
virtual bool editable() const = 0;
virtual void set(const void* data) = 0;
virtual void* data();
void container(FWDialog* theOwner);
FWDialog* container();
};
FWLabel
class FWLabel: public FWField{
int _length;
void aloCpy(const char* str, int len = -1);
public:
FWLabel(const char *Str, int Row, int Col,
int Len = -1);
FWLabel(int Row, int Col, int Len);
~FWLabel();
void draw(int Refresh = FW_NO_REFRESH) const;
int edit();
bool editable()const;
void set(const void* str);
};
FWDialog
class FWDialog: public FWBorder{
private:
int _fnum;
int _curidx;
FWField* _fld[FW_MAX_NO_FIELDS];
bool _dyn[FW_MAX_NO_FIELDS];
bool _editable;
public:
FWDialog(FWBorder *Container = (FWBorder*)0,
int Row = -1, int Col = -1,
int Width = -1, int Height = -1,
bool Borderd = false,
const char* Border=FW_BORDER_CHARS);
virtual ~FWDialog();
void draw(int fn = FW_NO_REFRESH)const;
int edit(int fn = FW_NO_REFRESH);
int add(FWField* field, bool dynamic = true);
int add(FWField& field, bool dynamic = false);
FWDialog& operator<<(FWField* field);
FWDialog& operator<<(FWField& field);
bool editable();
int fieldNum()const;
int curIndex()const;
FWField& operator[](unsigned int index);
FWField& curField();
};
FWLineEdit
class FWLineEdit: public FWField{
bool _dyn;
int _maxdatalen;
int* _insertmode;
int _curpos;
int _offset;
public:
FWLineEdit(char* Str, int Row, int Col, int Width,
int Maxdatalen, int* Insertmode,
bool Bordered = false,
const char* Border=FW_BORDER_CHARS);
FWLineEdit(int Row, int Col, int Width,
int Maxdatalen, int* Insertmode,
bool Bordered = false,
const char* Border=FW_BORDER_CHARS);
~FWLineEdit();
void draw(int Refresh = FW_NO_REFRESH)const;
int edit();
bool editable()const;
void set(const void* Str);
};
FWButton
class FWButton: public FWField{
int _length;
public:
FWButton(const char *Str, int Row, int Col,
bool Bordered = true,
const char* Border=FW_BORDER_CHARS);
virtual ~FWButton();
void draw(int Refresh = FW_NO_REFRESH) const;
int edit();
bool editable()const;
void set(const void* str);
};
FWCHECK
class FWCheck : public FWLabel {
int _flag;
int _radio;
char _format[4];
public:
FWCheck(bool Checked,const char* Format, const char* Text, int Row, int Col, bool IsRadio = false);
void draw(int Refresh = FW_NO_REFRESH) const;
int edit();
bool editable()const;
void set(const void* flag);
void *data();
};
FWValEdit
class FWValEdit: public FWLineEdit{
void (*_help)(MessageStatus, FWDialog&);
bool (*_validate)(const char*, FWDialog&);
public:
FWValEdit(char* Str, int Row, int Col, int Width,
int Maxdatalen, int* Insertmode,
bool (*Validate)(const char* , FWDialog&) = NO_VALDFUNC,
void (*Help)(MessageStatus, FWDialog&) = NO_HELPFUNC,
bool Bordered = false,
const char* Border=FW_BORDER_CHARS);
FWValEdit(int Row, int Col, int Width,
int Maxdatalen, int* Insertmode,
bool (*Validate)(const char* , FWDialog&) = NO_VALDFUNC,
void (*Help)(MessageStatus, FWDialog&) = NO_HELPFUNC,
bool Bordered = false,
const char* Border=FW_BORDER_CHARS);
int edit();
};