// CommandObject: "#include <v/v_defs.h>" typedef struct CommandObject { CmdType cmdType; // what kind of item is this ItemVal cmdId; // unique id for the item ItemVal retVal; // value returned when picked char* title; // string void* itemList; // used when cmd needs a list CmdAttribute attrs; // list of attributes unsigned Sensitive : 1; // if item is sensitive or not ItemVal cFrame; // Frame used for an item ItemVal cRightOf; // Item placed left of this id ItemVal cBelow; // Item placed below this one int size; // Optional - for size information char* tip; // Optional tip string } CommandObject;
(with suggested prefix for id names) C_EndOfList: Used to denote end of command list C_Blank: filler to help RightOfs, Belows work (blk) C_BoxedLabel: a label with a box (bxl) C_Button: Button (btn) C_CheckBox: Checked Item (chk) C_ColorButton: Colored button (cbt) C_ColorLabel: Colored label (clb) C_ComboBox: Popup combo list (cbx) C_Frame: General purpose frame (frm) C_Icon: a display only Icon (ico) C_IconButton: a command button Icon (icb) C_Label: Regular text label (lbl) C_List: List of items (lst) C_ProgressBar: Bar to show progress (pbr) C_RadioButton: Radio button (rdb) C_Slider: Slider to enter value (sld) C_Spinner: Spinner value entry (spn) C_TextIn: Text input field (txi) C_Text: wrapping text out (txt) C_ToggleButton: a toggle button (tbt) C_ToggleFrame: a toggle frame (tfr) C_ToggleIconButton: a toggle Icon button (tib)
CA_DefaultButton: Special Default Button [Used by: C_Button] CA_Hidden: Starts out hidden [All controls] CA_Horizontal: Horizontal orientation [C_ProgressBar, C_Slider] CA_Large: Command larger than normal [C_List C_ProgressBar, C_Slider, C_Spinner, C_TextIn] CA_MainMsg: Gets replacement message [C_Label] CA_NoBorder: No border (frames, status bar) [C_Frame,C_ToggleFrame,C_Text,status bar] CA_NoLabel: No label on progress bar [C_ProgressBar] CA_NoNotify: Don't notify on all events [C_ComboBox,C_List,C_Spinner] CA_NoSpace: No space between widgets [C_Frame,C_ToggleFrame] CA_None: No special attributes [All controls] CA_Percent: Use % on progress bar [C_ProgressBar] CA_Small: Command smaller than normal [C_ProgressBar,C_TextIn] CA_Size: Specify size [C_Button,C_List,C_Spinner] CA_Text: A Text value box [C_Spinner] CA_Vertical: Vertical orientation [C_ProgressBar, C_Slider]
NoList: No list used NoFrame: Not a member of a frame isSens: Is sensitive notSens: Not sensitive isChk: Is checked notChk: Not checked notUsed: Not used noIcon: No icon
// vApp: "#include <v/vapp.h>" class vApp : public vBaseItem { public: //---------------------------------------- public vApp(VCONST char* appName, int simSDI = 0, int frameHeight = 0, int frameWidth = 0); // constructor virtual ~vApp(); // Methods to override virtual void AppCommand(vWindow* win, ItemVal id, ItemVal retval, CmdType ctype); virtual void CloseAppWin(vWindow* win); virtual void CloseLastCmdWindow(vWindow* win, int exitcode); virtual void Exit(void); virtual void KeyIn(vWindow* win, vKey key, unsigned int shift); virtual vWindow* NewAppWin(vWindow* win, char* name, int w, int h, vAppWinInfo* winInfo = 0); // Utility methods vFont GetDefaultFont(void); void GetVVersion(int& major, int& minor); int DefaultHeight(); int DefaultWidth(); int IsRunning(); void SendWindowCommandAll(ItemVal id, int val, CmdType ctype); void SetAppTitle(char* title); void SetValueAll(ItemVal id, int val, ItemSetType setType); void SetStringAll(ItemVal id, char* str); void UpdateAllViews(vWindow* sender = NULL, int hint = 0, void* pHint = NULL); const char* name(); vAppWinInfo *getAppWinInfo(vWindow* Win); // Clipboard int ClipboardSetText(char* text); char* ClipboardGetText(); int ClipboardCheckText(); void ClipboardClear(); // Tasking void CheckEvents(); int EnableWorkSlice(long slice); virtual void WorkSlice(); // X platform dependent Display* display(); // To get the X display XtAppContext appContext(); // To get the context // MS-Windows platform dependent int simSDI(); }; extern vApp *theApp; // Pointer to single global instance extern int AppMain(int argc, char** argv); // Pseudo main program
// vAppWinInfo: "#include <v/vawinfo.h>" class V_EXPORT vAppWinInfo { public: //---------------------------------------- public vAppWinInfo(VCONST char* name = "", VCONST void* ptr = 0); virtual ~vAppWinInfo(); virtual VCONST char* infoName() {return _infoName;} virtual VCONST void* getPtr() {return _ptr;} };
// vBrush: "#include <v/vbrush.h>" class vBrush { public: //-------------------------------- public vBrush(unsigned int r = 0, unsigned int g = 0, unsigned int b = 0, int style = vSolid, int fillMode = vAlternate); ~vBrush(); int operator ==(vBrush b2); int operator !=(vBrush b2); vColor GetColor(); int GetFillMode(); int GetStyle(); void SetColor(vColor c); void SetColor(unsigned int r, unsigned int g, unsigned int b); void SetFillMode(int fillMode); void SetStyle(int style); };
// vCanvasPane: "#include <v/vcanvas.h>" class vCanvasPane { public: //---------------------------------------- public vCanvasPane(PaneType pt = P_Canvas); virtual ~vCanvasPane(); virtual void ShowPane(int OnOrOff); // Cursor void SetCursor(VCursor id); VCursor GetCursor(); void UnSetCursor(void); // Scrolling virtual void HPage(int Shown, int Top); virtual void VPage(int Shown, int Top); virtual void HScroll(int step); virtual void VScroll(int step); virtual void SetHScroll(int Shown, int Top); virtual void SetVScroll(int Shown, int Top); virtual int GetHScroll(int& Shown, int& Top); virtual int GetVScroll(int& Shown, int& Top); virtual void ShowHScroll(int OnOff); virtual void ShowVScroll(int OnOff); // Change messages virtual void FontChanged(vFont vf); // Events virtual void MouseDown(int x, int y, int button); virtual void MouseUp(int x, int y, int button); virtual void MouseMove(int x, int y, int button); virtual void EnterFocus(); virtual void LeaveFocus(); // Expose/redraw events virtual void Redraw(int x, int y, int width , int height); virtual void Resize(int newW, int newH); // Information virtual int GetWidth(); virtual int GetHeight(); // Drawing void Clear(void); virtual void ClearRect(int left, int top, int width, int height); virtual void DrawAttrText(int x, int y, char* text, const ChrAttr attr); virtual void DrawColorPoints(int x, int y, int nPoints, vColor* pts); virtual void DrawText(int x, int y, char* text); virtual void DrawEllipse(int x, int y, int width, int height); virtual void DrawIcon(int x, int y, vIcon& icon); virtual void DrawLine(int x, int y, int xend , int yend); virtual void DrawLines(vLine* lineList, int count); virtual void DrawPoint(int x, int y); virtual void DrawPoints(vPoint* pointList, int count); virtual void DrawPolygon(int n, vPoint points[], int fillStyle = vAlternate); virtual void DrawRectangle(int x, int y, int width, int height); virtual void DrawRectangles(vRect* rectList, int count); virtual void DrawRoundedRectangle(int x, int y, int width, int height, int radius); virtual void DrawRubberLine(int x, int y, int xend, int yend); virtual void DrawRubberEllipse(int x, int y, int width, int height); virtual void DrawRubberRectangle(int x, int y, int width, int height); virtual vBrush GetBrush(void); virtual void SetBrush(vBrush brush); virtual vFont GetFont(void); virtual void SetFont(vFont fnt); virtual int TextWidth(char* str); virtual int TextHeight(int& ascent, int& descent); vDC* GetDC(); // Appearance virtual void SetScale(int mult, int div); virtual void GetScale(int& mult, int& div); virtual void SetBackground(vColor color); virtual void SetPen(vPen pen); vPen GetPen(); void SetTranslate(int x, int y); void SetTransX(int x); void SetTransY(int y); void GetTranslate(int& x, int& y); int GetTransX(); int GetTransY(); // X Platform dependent Widget DrawingWindow(); // Windows Platform dependent HWND DrawingWindow(); };
// vCmdWindow: "#include <v/vcmdwin.h>" class vCmdWindow : public vWindow { public: //----------------------------------- public vCmdWindow(char* name = "+", int width = 0, int height = 0); virtual ~vCmdWindow(); // Destructor virtual void CloseWin(void); // callback for close button };
// vColor: "#include <v/vcolor.h>" // Message constants for use in Color buttons (for color buttons, etc.) M_Black, M_Red, M_DimRed, M_Green, M_DimGreen, M_Blue, M_DimBlue, M_Yellow, M_DimYellow, M_Magenta, M_DimMagenta, M_Cyan, M_DimCyan, M_DarkGray, M_MedGray, M_White, M_ColorFrame // Index constants into V "standard" color arrays: vStdColors, vColorNames. vC_Black, vC_Red, vC_DimRed, vC_Green, vC_DimGreen, vC_Blue, vC_DimBlue, vC_Yellow, vC_DimYellow, vC_Magenta, vC_DimMagenta, vC_Cyan, vC_DimCyan, vC_DarkGray, vC_MedGray, vC_White class vColor { public: //---------------------------------------- public vColor(unsigned int rd = 0, unsigned int gr = 0, unsigned int bl = 0); ~vColor(); int operator ==(vColor c2); int operator !=(vColor c2); int BitsOfColor(); ResetColor(unsigned int rd = 0, unsigned int gr = 0, unsigned int bl = 0); Set(unsigned int rd = 0, unsigned int gr = 0, unsigned int bl = 0); Set(vColor& c); void SetR(unsigned int rd = 0); void SetG(unsigned int gr = 0); void SetB(unsigned int bl = 0); unsigned int r(); unsigned int g(); unsigned int b(); }; extern vColor vStdColors[16]; // 16 "standard" colors extern char* vColorNames[16]; // and their names
// vDebugDialog: "#include <v/vdebug.h>" class vDebugDialog : public vModalDialog { public: //---------------------------------------- public vDebugDialog(vBaseWindow* bw,char* title = "Debugging Options"); vDebugDialog(vApp* aw,char* title = "Debugging Options"); ~vDebugDialog(); void SetDebug(); };
// vDialog: "#include <v/vdialog.h>" class vDialog { public: //------------------------------------ public vDialog(vBaseWindow* creator, int modal = 0, char* title = ""); vDialog(vApp* creator, int modal = 0, char* title = ""); ~vDialog(); WindowType wType(); virtual void AddDialogCmds(CommandObject* cList); virtual void CancelDialog(void); virtual void CloseDialog(void); virtual void SetDialogTitle(char * title); virtual void DialogCommand(ItemVal id, ItemVal retval, CmdType ctype); virtual int GetTextIn(ItemVal id, char* strout, int maxlen); virtual int GetValue(ItemVal id); virtual void SetValue(ItemVal id, ItemVal val, ItemSetType setType); virtual void SetString(ItemVal id, char* str); int IsDisplayed(void); virtual void ShowDialog(const char* msg); };
// vFileSelect: "#include <v/vfilesel.h>" class vFileSelect : protected vModalDialog { public: //---------------------------------------- public vFileSelect(vBaseWindow* bw, char* title = "File Select"); vFileSelect(vApp* aw, char* title = "File Select"); ~vFileSelect(); int FileSelect(const char* msg, char* filename, const int maxlen, char** filter); int FileSelectSave(const char* msg, char* filename, const int maxlen, char** filter); };
// vFont: "#include <v/vfont.h>" enum vFontID // various font related ids { vfDefaultSystem, // the default system font vfDefaultFixed, // the system default fixed font vfDefaultVariable, // the system default variable font vfSerif, // serifed font - TimesRoman vfSansSerif, // SansSerif - Swiss or Helvetica vfFixed, // fixed font - Courier vfDecorative, // decorative - dingbat vfOtherFont, // for all other fonts vfNormal, // normal style, weight vfBold, // boldface vfItalic, // italic style vfEndOfList }; class vFont // make the font stuff a class to make it portable { public: //---------------------------------------- public vFont(vFontID fam = vfDefaultFixed, int size = 10, vFontID sty = vfNormal, vFontID wt = vfNormal, int und = 0, int angle = 0); ~vFont(); vFontID GetFamily() { return _family; } int GetPointSize() { return _pointSize; } vFontID GetStyle() { return _style; } vFontID GetWeight() { return _weight; } int GetUnderlined() { return _underlined; } void SetFontValues(vFontID fam = vfDefaultFixed, int size = 10, vFontID sty = vfNormal, vFontID wt = vfNormal, int und = 0); }; #endif
// vFontSelect: "#include <v/vfontsel.h>" class vFontSelect : protected vModalDialog { public: //---------------------------------------- public vFontSelect(vBaseWindow* bw, char* title = "Select Font"); vFontSelect(vApp* aw, char* title = "Select Font"); ~vFontSelect(); int FontSelect(vFont& font, const char* msg = "Select Font" ); }; #endif
// <v/vicon.h> class vIcon // an icon { public: //---------------------------------------- public vIcon(unsigned char* ic, int h, int w, int d = 1); ~vIcon(); int height; // height in pixels int width; // width in pixels int depth; // bits per pixel unsigned char* icon; // ptr to icon array protected: //--------------------------------------- protected private: //--------------------------------------- private };
// vMenu: "#include <v/v_menu.h>" typedef struct vMenu { char* label; // The label on the menu ItemVal menuId; // A User assigned unique id unsigned sensitive : 1, // If item is sensitive or not checked : 1; // If item is checked or not char* keyLabel; // Label for an accelerator key vKey accel; // Value of accelerator key vMenu* SubMenu; // Ptr to a submenu } MenuItem;
isSens: Is sensitive notSens: Not sensitive noSub: No submenu isChk: Is checked notChk: Not checked noKey: No accelerator specified noKeyLbl: No accelerator label
// vModalDialog: "#include <v/vmodald.h>" class vModalDialog : public vDialog { public: //---------------------------------------- public vModalDialog(vBaseWindow* creator, char* title = ""); vModalDialog(vApp* creator, char* title = ""); virtual ~vModalDialog(); virtual ItemVal ShowModalDialog(const char* msg, ItemVal& retval); // rest are inherited from vDialog };
// vNoticeDialog: "#include <v/vnotice.h>" class vNoticeDialog : protected vModalDialog { public: //---------------------------------------- public vNoticeDialog(vBaseWindow* bw, char* title = "Notice"); vNoticeDialog(vApp* aw, char* title = "Notice"); ~vNoticeDialog(); void Notice(char* msg); };
// vPen: "#include <v/vpen.h>" class vPen { public: //---------------------------------------- public vPen(unsigned int r = 0, unsigned int g = 0, unsigned int b = 0, int width = 1, int style = vSolid); ~vPen(); int operator ==(vPen p2); int operator !=(vPen p2); void SetStyle(int style); int GetStyle(void); void SetWidth(int width); int GetWidth(); void SetColor(vColor c); vColor GetColor(); };
// vReplyDialog: "#include <v/vreply.h>" class vReplyDialog : protected vModalDialog { public: //---------------------------------------- public vReplyDialog(vBaseWindow* bw, char* title = "Reply"); vReplyDialog(vApp *aw, char* title = "Reply"); int Reply(const char* msg, char* reply, const int maxlen); };
// vStatus: "#include <v/v_defs.h>" typedef struct vStatus // for status bars { char* label; // text label ItemVal statId; // id CmdAttribute attrs; // attributes - CA_NoBorder, CA_None unsigned sensitive : 1; // if button is sensitive or not int width; // to specify width (0 for default) } vButton;
CA_NoBorder: No border (frames, status bar) CA_None: No special attributes isSens: Is sensitive notSens: Not sensitive noIcon: No icon
// vTextCanvasPane: "#include <v/vtextcnv.h>" class vTextCanvasPane : public vCanvasPane { public: //---------------------------------------- public vTextCanvasPane(); virtual ~vTextCanvasPane(); // Window management/drawing virtual void Clear(void); virtual void ClearRow(const int r, const int c); virtual void ClearToEnd(const int r, const int c); int GetCols(); int GetRows(); void GetRC(int& r, int& c); void GotoRC(const int r, const int c); virtual void DrawAttrText(const char* text, const ChrAttr attr); virtual void DrawChar(const char chr, const ChrAttr attr); virtual void DrawText(const char* text); void HideTextCursor(void); void ShowTextCursor(void); // Scrolling void ScrollText(const int lineCount); // Events virtual void ResizeText(const int rows, const int cols); virtual void TextMouseDown(int row, int col, int button); virtual void TextMouseUp(int row, int col, int button); virtual void TextMouseMove(int row, int col, int button); };
// vTimer: "#include <v/vtimer.h>" class vTimer { public: //---------------------------------------- public vTimer(); virtual ~vTimer(); virtual int TimerSet(long interval); virtual void TimerStop(void); virtual void TimerTick(void); };
// V Utilities: "#include <v/vutil.h>" extern void LongToStr(long intg, char* str); extern void IntToStr(int intg, char* str); extern void vGetLocalTime(char* tm); extern void vGetLocalDate(char* tm);
// vWindow: "#include <v/vwindow.h>" enum WindowType { WINDOW, CMDWINDOW, DIALOG }; // Types of windows class vWindow { public: //-------------------------------- public vWindow(char *name = "+", int width = 0, int height = 0, WindowType wintype = WINDOW); // Constructor virtual ~vWindow(); // Destructor // Methods to Override virtual void KeyIn(vKey keysym, unsigned int shift); virtual void MenuCommand(ItemVal id); virtual void WindowCommand(ItemVal id, ItemVal retval, CmdType ctype); // Utility Methods const Widget vHandle(); // X only - native handle const char* name(); // the name set virtual void ShowWindow(void); WindowType wType(); // what kind of window we are virtual void AddPane(vPane* add_pane); virtual void CloseWin(void); virtual int GetValue(ItemVal id); virtual void RaiseWindow(void); virtual void SetString(ItemVal id, char* str); virtual void SetStringAll(ItemVal id, char* str); virtual void SetTitle(char* title); virtual void SetValue(ItemVal id, int val, ItemSetType setType); virtual void SetValueAll(ItemVal id, int val, ItemSetType setType); void ShowPane(vPane* wpane, int OnOrOff); };
// vYNReplyDialog: "#include <v/vynreply.h>" class vYNReplyDialog : protected vModalDialog { public: //---------------------------------------- public vYNReplyDialog(vBaseWindow* bw, char* title = "Yes or No"); vYNReplyDialog(vApp* aw, char* title = "Yes or No"); ~vYNReplyDialog(); int AskYN(const char* msg); };