home *** CD-ROM | disk | FTP | other *** search
- //===============================================================
- // vdebug.cxx - vDebugDialog class methods
- //
- // Copyright (C) 1995,1996,1997,1998 Bruce E. Wampler
- //
- // This file is part of the V C++ GUI Framework, and is covered
- // under the terms of the GNU Library General Public License,
- // Version 2. This library has NO WARRANTY. See the source file
- // vapp.cxx for more complete information about license terms.
- //===============================================================
- #include <v/vos2.h> // for OS/2 stuff
- #include <v/vdebug.h> // our header
-
- // Define static data of the class
- #define dSystem 10
- #define dUser 11
- #define dCmdEvents 12
- #define dMouseEvents 13
- #define dWindowEvents 14
- #define dBuild 15
- #define dMisc 16
- #define dBadVals 17
- #define dConstructor 18
- #define dDestructor 19
- #define dText 30
- #define dUserApp1 20
- #define dUserApp2 21
- #define dUserApp3 22
-
- int SetCommandObject(const int id, const int val, CommandObject* CmdList);
- int GetCommandObject(const int id, CommandObject* CmdList);
-
- static CommandObject DebugDialog[] =
- {
- {C_Label, 91, 0, "Set Debug Options",
- NoList, CA_MainMsg, isSens, 0,0},
-
- {C_Blank, 98, 0, " ", NoList,CA_None,isSens,NoFrame,91,0},
- {C_Label, 99, 0, V_Version, NoList,CA_None,isSens,NoFrame,98,0},
-
- // A frame around the check boxes
- {C_Frame, 92, 0, "", NoList, CA_None, isSens,NoFrame, 0, 91},
-
- // note: the id corresponds to the #defines above
- {C_CheckBox,10,0,"System Msgs ",NoList,CA_None,isSens,92,0,0},
- {C_CheckBox,11,0,"User Messages ",NoList,CA_None,isSens,92,10,0},
- {C_CheckBox,12,0,"Command Events",NoList,CA_None,isSens,92,0,10},
- {C_CheckBox,13,0,"Mouse Events ",NoList,CA_None,isSens,92,12,10},
- {C_CheckBox,14,0,"Window Events ",NoList,CA_None,isSens,92,13,10},
-
- {C_CheckBox,15,0,"Build Windows ",NoList,CA_None,isSens,92,0,12},
- {C_CheckBox,16,0,"Misc Messages ",NoList,CA_None,isSens,92,15,12},
- {C_CheckBox,17,0,"Illegal Values",NoList,CA_None,isSens,92,16,12},
-
- {C_CheckBox,18,0,"Constructors ",NoList,CA_None,isSens,92,0,15},
- {C_CheckBox,19,0,"Destructors ",NoList,CA_None,isSens,92,18,15},
- {C_CheckBox,30,0,"Text ",NoList,CA_None,isSens,92,19,15},
-
- {C_CheckBox,20,0,"User Debug 1 ",NoList,CA_None,isSens,92,0,18},
- {C_CheckBox,21,0,"User Debug 2 ",NoList,CA_None,isSens,92,20,18},
- {C_CheckBox,22,0,"User Debug 3 ",NoList,CA_None,isSens,92,21,18},
-
- {C_Button, M_All,M_All," All On ",NoList,CA_None,isSens,NoFrame,0,92},
- {C_Button, M_None,M_None," All Off ",NoList,CA_None,isSens,NoFrame,M_All,92},
- {C_Blank, 95, 0, " ", NoList,CA_None,isSens,NoFrame,M_None,92},
- {C_Button, M_Cancel, M_Cancel, " Cancel ", NoList,
- CA_None,isSens,NoFrame, 95,92},
- {C_Button, M_OK, M_OK, " OK ", NoList,
- CA_DefaultButton, isSens, NoFrame, M_Cancel, 92},
- {C_EndOfList,0,0,0,0,CA_None,0,0,0}
- };
-
-
-
-
-
-
- //=======================>>> vDebugDialog::SetDebug <<<=======================
- void vDebugDialog::SetDebug()
- {
- // Show a message, ask user Yes/No/Cancel
- // returns < 0 for cancel, 0 for No, 1 for Yes
- int id;
- ItemVal val;
- // first, set with current values
- (void) SetCommandObject(dSystem, DebugState.System, DebugDialog);
- (void) SetCommandObject(dUser, DebugState.User, DebugDialog);
- (void) SetCommandObject(dCmdEvents, DebugState.CmdEvents, DebugDialog);
- (void) SetCommandObject(dMouseEvents, DebugState.MouseEvents, DebugDialog);
- (void) SetCommandObject(dWindowEvents, DebugState.WindowEvents, DebugDialog);
- (void) SetCommandObject(dUserApp1, DebugState.UserApp1, DebugDialog);
- (void) SetCommandObject(dUserApp2, DebugState.UserApp2 , DebugDialog);
- (void) SetCommandObject(dUserApp3, DebugState.UserApp3 , DebugDialog);
- (void) SetCommandObject(dBuild, DebugState.Build, DebugDialog);
- (void) SetCommandObject(dMisc, DebugState.Misc, DebugDialog);
- (void) SetCommandObject(dText, DebugState.Text, DebugDialog);
- (void) SetCommandObject(dBadVals, DebugState.BadVals, DebugDialog);
- (void) SetCommandObject(dConstructor, DebugState.Constructor, DebugDialog);
- (void) SetCommandObject(dDestructor, DebugState.Destructor, DebugDialog);
-
-
- AddDialogCmds(DebugDialog); // Set up standard dialog
- ShowModalDialog("Set Debug Options",val); // show and wait
- switch (val) // convert to our system
- {
- case M_OK:
- DebugState.System = GetValue(dSystem);
- DebugState.User = GetValue(dUser);
- DebugState.CmdEvents = GetValue(dCmdEvents);
- DebugState.MouseEvents = GetValue(dMouseEvents);
- DebugState.WindowEvents = GetValue(dWindowEvents);
- DebugState.UserApp1 = GetValue(dUserApp1);
- DebugState.UserApp2 = GetValue(dUserApp2);
- DebugState.UserApp3 = GetValue(dUserApp3);
- DebugState.Build = GetValue(dBuild);
- DebugState.Misc = GetValue(dMisc);
- DebugState.Text = GetValue(dText);
- DebugState.BadVals = GetValue(dBadVals);
- DebugState.Constructor = GetValue(dConstructor);
- DebugState.Destructor = GetValue(dDestructor);
- break;
- case M_Cancel:
- break;
- default:
- SysDebug1(BadVals,"vDebugDialog::SetDebug() - can't handle %d\n",val)
- break;
- };
-
- }
- //====================>>> vDebugDialog::DialogCommand <<<=======================
- void vDebugDialog::DialogCommand(ItemVal id, ItemVal val, CmdType ctype)
- {
- vModalDialog::DialogCommand(id,val,ctype);
- switch (id)
- {
- case M_OK:
- CloseDialog();
- break;
- case M_All: // set all to 1
- SetValue(dSystem, 1, Value);
- SetValue(dUser, 1, Value);
- SetValue(dCmdEvents, 1, Value);
- SetValue(dMouseEvents, 1, Value);
- SetValue(dWindowEvents, 1, Value);
- SetValue(dUserApp1, 1, Value);
- SetValue(dUserApp2, 1, Value);
- SetValue(dUserApp3, 1, Value);
- SetValue(dBuild, 1, Value);
- SetValue(dMisc, 1, Value);
- SetValue(dText, 1, Value);
- SetValue(dBadVals, 1, Value);
- SetValue(dConstructor, 1, Value);
- SetValue(dDestructor, 1, Value);
- break;
-
- case M_None: // set all to 0
- SetValue(dSystem, 0, Value);
- SetValue(dUser, 0, Value);
- SetValue(dCmdEvents, 0, Value);
- SetValue(dMouseEvents, 0, Value);
- SetValue(dWindowEvents, 0, Value);
- SetValue(dUserApp1, 0, Value);
- SetValue(dUserApp2, 0, Value);
- SetValue(dUserApp3, 0, Value);
- SetValue(dBuild, 0, Value);
- SetValue(dMisc, 0, Value);
- SetValue(dText, 0, Value);
- SetValue(dBadVals, 0, Value);
- SetValue(dConstructor, 0, Value);
- SetValue(dDestructor, 0, Value);
- break;
- }
- }
- //###########################################################################
- // Utilities - these may be useful for others, too.
- //========================>>> SetCommandObject <<<==============================
- int SetCommandObject(const int id, const int val, CommandObject* CmdList)
- {
- for (CommandObject* cur = CmdList ; cur->cmdType != C_EndOfList ; ++cur)
- {
- if (cur->cmdId == id)
- {
- cur->retVal = val;
- return 1;
- }
- }
- SysDebug1(BadVals,"SetCommandObject(id:%d...) - No match in list\n",id)
- return 0;
- }
-
- //========================>>> GetCommandObject <<<==============================
- // This just gets the static value of the original CommandObject. It does
- // not get the updated state of the checkbox which is how it was orginially
- // being used. All versions of DebugDialog except OS/2 seem to be broken in
- // this way before v1.20
- int GetCommandObject(const int id, CommandObject* CmdList)
- {
- for (CommandObject* cur = CmdList ; cur->cmdType != C_EndOfList ; ++cur)
- {
- if (cur->cmdId == id)
- {
- return cur->retVal;
- }
- }
- SysDebug1(BadVals,"GetCommandObject(id:%d...) - No match in list\n",id)
- return 0;
- }
-
-