diff --git a/NifFurniture/NifFurniture.cpp b/NifFurniture/NifFurniture.cpp index 55ff1a0710299fd14e1db98b63f3b22142df114b..44602eb3dd830f4ba0b9592adedcd510218480eb 100755 --- a/NifFurniture/NifFurniture.cpp +++ b/NifFurniture/NifFurniture.cpp @@ -1,112 +1,474 @@ -/********************************************************************** - *< - FILE: NifFurniture.cpp +#include "NifFurniture.h" +#include "FurnitureMarkers.h" +#include "../NifGUI.h" +#include "../NifPlugins.h" - DESCRIPTION: Appwizard generated plugin +#define FurnitureMarker_CLASS_ID Class_ID(0x5a38017d, 0x4006a661) - CREATED BY: +#define PBLOCK_REF 0 - HISTORY: +class NifFurnitureMarker : public HelperObject +{ - *> Copyright (c) 2003, All Rights Reserved. - **********************************************************************/ +public: -#include "NifFurniture.h" + NifFurnitureMarker(); + NifFurnitureMarker(const NifFurnitureMarker &fm); + ~NifFurnitureMarker(); -#define NifFurniture_CLASS_ID Class_ID(0x5a38017d, 0x4006a661) + // Loading/Saving + IOResult Load(ILoad *iload); + IOResult Save(ISave *isave) { return IO_OK; } -#define PBLOCK_REF 0 + RefTargetHandle Clone( RemapDir &remap ); + RefResult NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message); -class NifFurnCreateCallBack : public CreateMouseCallBack -{ + /* BaseObject */ + void GetMat(TimeValue t, INode* inode, ViewExp* vpt, Matrix3& tm); + int HitTest(TimeValue t, INode* inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt); + int Display(TimeValue t, INode* inode, ViewExp *vpt, int flags); + CreateMouseCallBack *GetCreateMouseCallBack(); + void BeginEditParams( IObjParam *ip, ULONG flags,Animatable *prev); + void EndEditParams( IObjParam *ip, ULONG flags,Animatable *next); + TCHAR *GetObjectName() { return _T(GetString(IDS_FURNITURE_MARKER)); } -public: + /* Animatable */ + int IsKeyable(){ return 0;} + int NumSubs() { return 1; } + void DeleteThis() { delete this; } + Class_ID ClassID() {return FurnitureMarker_CLASS_ID;} + SClass_ID SuperClassID() { return HELPER_CLASS_ID; } + void GetClassName(TSTR& s) {s = GetString(IDS_CLASS_NAME);} + + /* Object */ + Interval ObjectValidity(TimeValue t); + int DoOwnSelectHilite() {return 1; } + int IsMappable() { return 0; } + int IsRenderable() { return 0; } + void GetWorldBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box); + void GetLocalBoundBox(TimeValue t, INode *mat, ViewExp *vpt, Box3& box); + int UsesWireColor() { return TRUE; } + + /* HelperObject */ + void InitNodeName(TSTR& s) { s = _T(GetString(IDS_FURNITURE_MARKER)); } + + // Object + ObjectState Eval(TimeValue t); + + int CanConvertToType(Class_ID obtype); + Object *ConvertToType(TimeValue t, Class_ID obtype); + + + void setFrnPos(NpFrnPos type); + NpFrnPos getFrnPos(); + +private: + + class CreateCallback : public CreateMouseCallBack + { + public: + virtual int proc(ViewExp *vpt, int msg, int point, int flags, IPoint2 m, Matrix3& mat); + }; + + static BOOL CALLBACK dlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); + + INode *getNode(); - virtual int proc(ViewExp *vpt, int msg, int point, int flags, IPoint2 m, Matrix3& mat); + Interface *mIP; + HWND mPanel; + + Mesh mMesh; + Point3 mFlip; + + NpComboBox mCbType; + + static NifFurnitureMarker *mInstance; + static CreateCallback mCreateCallback; + + // maps combo box indices to marker types + static NpFrnPos mPosMap[]; }; -int NifFurnCreateCallBack::proc(ViewExp *vpt, int msg, int point, int flags, IPoint2 m, Matrix3& mat) +int NifFurnitureMarker::CreateCallback::proc(ViewExp *vpt, int msg, int point, int flags, IPoint2 m, Matrix3& mat) { + if (msg==MOUSE_POINT || msg==MOUSE_MOVE) + { + Point3 cen; + cen = vpt->SnapPoint(m, m, NULL, SNAP_IN_3D); + + if (msg == MOUSE_POINT) + return CREATE_STOP; + } + return CREATE_ABORT; } -class NifFurniture : public HelperObject { - public: +NifFurnitureMarker::CreateCallback NifFurnitureMarker::mCreateCallback; +NifFurnitureMarker *NifFurnitureMarker::mInstance = NULL; - // Parameter block -// IParamBlock2 *pblock; //ref 0 +NpFrnPos NifFurnitureMarker::mPosMap[] = +{ + NP_FRN_SLEEP_LEFT, + NP_FRN_SLEEP_RIGHT, + NP_FRN_BEDROLL_LEFT, + NP_FRN_BEDROLL_RIGHT, + NP_FRN_SIT_LEFT, + NP_FRN_SIT_RIGHT, + NP_FRN_SIT_BACK, + NP_FRN_SIT_FRONT +}; - // Loading/Saving - IOResult Load(ILoad *iload) {return IO_OK;} - IOResult Save(ISave *isave) {return IO_OK;} +NifFurnitureMarker::NifFurnitureMarker() +{ + mIP = NULL; + mInstance = NULL; - //From Animatable - Class_ID ClassID() {return NifFurniture_CLASS_ID;} - SClass_ID SuperClassID() { return HELPER_CLASS_ID; } - void GetClassName(TSTR& s) {s = GetString(IDS_CLASS_NAME);} + setFrnPos(NP_FRN_SLEEP_LEFT); +} - RefTargetHandle Clone( RemapDir &remap ); - RefResult NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, - PartID& partID, RefMessage message); +NifFurnitureMarker::NifFurnitureMarker(const NifFurnitureMarker &fm) +{ + mIP = NULL; + mInstance = NULL; +} - int NumSubs() { return 1; } +NifFurnitureMarker::~NifFurnitureMarker() +{ + mInstance = NULL; +} -// int NumParamBlocks() { return 1; } // return number of ParamBlocks in this instance -// IParamBlock2* GetParamBlock(int i) { return pblock; } // return i'th ParamBlock -// IParamBlock2* GetParamBlockByID(BlockID id) { return (pblock->ID() == id) ? pblock : NULL; } // return id'd ParamBlock +void NifFurnitureMarker::setFrnPos(NpFrnPos type) +{ + mFlip.Set(1, 1, 1); + const FurnitureMarker *mark; + switch (type) + { + case 1: + mark = &FurnitureMarker01; + break; - void DeleteThis() { delete this; } - // BaseObject - CreateMouseCallBack* GetCreateMouseCallBack(); - // Object - ObjectState Eval(TimeValue t); - - //Constructor/Destructor - NifFurniture() {} - ~NifFurniture() {} + case 2: + mFlip[0] = -1; + mark = &FurnitureMarker01; + break; + + case 3: + mark = &FurnitureMarker03; + break; -}; + case 4: + mark = &FurnitureMarker04; + break; + case 11: + mark = &FurnitureMarker11; + break; + case 12: + mFlip[0] = -1; + mark = &FurnitureMarker11; + break; + + case 13: + mark = &FurnitureMarker13; + break; -class NifFurnitureClassDesc : public ClassDesc2 { - public: - int IsPublic() { return TRUE; } - void * Create(BOOL loading = FALSE) { return new NifFurniture(); } - const TCHAR * ClassName() { return GetString(IDS_CLASS_NAME); } - SClass_ID SuperClassID() { return HELPER_CLASS_ID; } - Class_ID ClassID() { return NifFurniture_CLASS_ID; } - const TCHAR* Category() { return GetString(IDS_CATEGORY); } + case 14: + mark = &FurnitureMarker14; + break; + } - const TCHAR* InternalName() { return _T("NifFurniture"); } // returns fixed parsable name (scripter-visible name) - HINSTANCE HInstance() { return hInstance; } // returns owning module handle - + mMesh.setNumVerts(mark->nv); + mMesh.setNumFaces(mark->nf); -}; + int i; + for (i=0; i<mark->nv; i++) + mMesh.verts[i].Set(mark->verts[i*3+0], mark->verts[i*3+2], mark->verts[i*3+1]); -static NifFurnitureClassDesc NifFurnitureDesc; -ClassDesc2* GetNifFurnitureDesc() { return &NifFurnitureDesc; } + for (i=0; i<mark->nf; i++) + { + mMesh.faces[i].setVerts(mark->faces[i*3+0], mark->faces[i*3+1], mark->faces[i*3+2]); + mMesh.faces[i].setEdgeVisFlags(1, 1, 1); + } + + npSetProp(getNode(), NP_FRN_POS, type); +} + +NpFrnPos NifFurnitureMarker::getFrnPos() +{ + NpFrnPos type; + npGetProp(getNode(), NP_FRN_POS, (int&)type, NP_DEFAULT_FRN_MARKER_TYPE); + return type; +} +INode *NifFurnitureMarker::getNode() +{ + ULONG handle; + NotifyDependents(FOREVER, (PartID)&handle, REFMSG_GET_NODE_HANDLE); + return GetCOREInterface()->GetINodeByHandle(handle); +} -RefResult NifFurniture::NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, +RefResult NifFurnitureMarker::NotifyRefChanged(Interval changeInt, RefTargetHandle hTarget, PartID& partID, RefMessage message) { return REF_SUCCEED; } -RefTargetHandle NifFurniture::Clone( RemapDir &remap ) +RefTargetHandle NifFurnitureMarker::Clone(RemapDir &remap) { - return NULL; + NifFurnitureMarker *fm = new NifFurnitureMarker(*this); + BaseClone(this, fm, remap); + fm->setFrnPos(getFrnPos()); + return fm; } -ObjectState NifFurniture::Eval(TimeValue t) +ObjectState NifFurnitureMarker::Eval(TimeValue t) { - ObjectState os; + ObjectState os(this); return os; } -CreateMouseCallBack *NifFurniture::GetCreateMouseCallBack() +CreateMouseCallBack *NifFurnitureMarker::GetCreateMouseCallBack() +{ + return &mCreateCallback; +} + +int NifFurnitureMarker::CanConvertToType(Class_ID obtype) +{ + return FALSE; +} + +Object *NifFurnitureMarker::ConvertToType(TimeValue t, Class_ID obtype) +{ + return NULL; +} + +int NifFurnitureMarker::Display(TimeValue t, INode* inode, ViewExp *vpt, int flags) +{ + setFrnPos(getFrnPos()); + + Matrix3 m; + GraphicsWindow *gw = vpt->getGW(); + Material *mtl = gw->getMaterial(); + + DWORD rlim = gw->getRndLimits(); + gw->setRndLimits(GW_WIREFRAME|GW_EDGES_ONLY|GW_BACKCULL); + + GetMat(t, inode, vpt, m); + m.Scale(mFlip); + + gw->setTransform(m); + if (inode->Selected()) + gw->setColor( LINE_COLOR, 1.0f, 1.0f, 1.0f); + else + if (!inode->IsFrozen()) + gw->setColor( LINE_COLOR, 0.4f, 0.0f, 0.6f); + + mMesh.render( gw, mtl, NULL, COMP_ALL); + + gw->setRndLimits(rlim); + + return 0; +} + +Interval NifFurnitureMarker::ObjectValidity(TimeValue t) +{ + Interval ivalid; + ivalid.SetInfinite(); + return ivalid; +} + +int NifFurnitureMarker::HitTest(TimeValue t, INode *inode, int type, int crossing, int flags, IPoint2 *p, ViewExp *vpt) +{ + Matrix3 m; + int result = FALSE; + HitRegion hitRegion; + DWORD savedLimits; + + MakeHitRegion(hitRegion, type, crossing, 4, p); + + GraphicsWindow *gw = vpt->getGW(); + savedLimits = gw->getRndLimits(); + gw->setRndLimits((savedLimits | GW_PICK) & ~GW_ILLUM); + + GetMat(t, inode, vpt, m); + + gw->setTransform(m); + gw->clearHitCode(); + + Material *mtl = gw->getMaterial(); + if (mMesh.select(gw, mtl, &hitRegion, flags & HIT_ABORTONHIT)) + result = TRUE; + + gw->setRndLimits(savedLimits); + + return result; +} + +void NifFurnitureMarker::BeginEditParams(IObjParam *ip, ULONG flags, Animatable *prev) { - static NifFurnCreateCallBack cb; - return &cb; + mIP = ip; + mInstance = this; + + mPanel = ip->AddRollupPage( + hInstance, + MAKEINTRESOURCE(IDD_PANEL), + (DLGPROC)dlgProc, + GetString(IDS_PARAMS), + 0); + + NpFrnPos pos = getFrnPos(); + setFrnPos(pos); + + for (int i=0; i<mCbType.count(); i++) + { + if (mPosMap[i] == pos) + { + mCbType.select(i); + break; + } + } + +// mIP->SetStdCommandMode(CID_OBJMOVE); + + +// mIP->SetStdCommandMode(CID_OBJMOVE); +// int cls = mIP->GetCommandMode()->Class(); + +// mIP->RegisterCommandModeChangedCallback((CommandModeChangedCallback*)this); + + + + +/* iObjParams = ip; + if (pmapParam) { + // Left over from last TouchSensor created + pmapParam->SetParamBlock(pblock); + } else { + + // Gotta make a new one. + pmapParam = CreateCPParamMap(descParam,PARAMDESC_LENGTH, + pblock, + ip, + hInstance, + MAKEINTRESOURCE(IDD_ANCHOR), + _T("Anchor"), + 0); + } + + if (pmapParam) { + // A callback for dialog + pmapParam->SetUserDlgProc(new AnchorParamDlgProc(this)); + } +*/ +} + +void NifFurnitureMarker::EndEditParams( IObjParam *ip, ULONG flags,Animatable *prev) +{ +// mIP->UnRegisterCommandModeChangedCallback((CommandModeChangedCallback*)this); + +/* if ( flags&END_EDIT_REMOVEUI ) { + if (pmapParam) DestroyCPParamMap(pmapParam); + pmapParam = NULL; + } +*/ +// mIU = NULL; +// mIP = NULL; + ip->DeleteRollupPage(mPanel); +// mPanel = NULL; +// mNode = NULL; + mInstance = NULL; } + +void NifFurnitureMarker::GetMat(TimeValue t, INode* inode, ViewExp* vpt, Matrix3& tm) +{ + tm = inode->GetObjectTM(t); +} + +void NifFurnitureMarker::GetLocalBoundBox(TimeValue t, INode* inode, ViewExp* vpt, Box3& box ) +{ +/* Matrix3 m = inode->GetObjectTM(t); + BuildMesh(t); +*/ + box = mMesh.getBoundingBox(); +// box.pmin.Set(-10, -10, -10); +// box.pmax.Set(10, 10, 10); +} + +void NifFurnitureMarker::GetWorldBoundBox(TimeValue t, INode* inode, ViewExp* vpt, Box3& box ) +{ + GetLocalBoundBox(t, inode, vpt, box); +/* Matrix3 tm; + BuildMesh(t); // 000829 --prs. + GetMat(t,inode,vpt,tm); +*/ + Matrix3 tm; + GetMat(t, inode, vpt, tm); + + int nv = mMesh.getNumVerts(); + box.Init(); + for (int i=0; i<nv; i++) + box += tm * mMesh.getVert(i); + +} + +BOOL NifFurnitureMarker::dlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) +{ + switch (msg) + { + case WM_INITDIALOG: + mInstance->mCbType.init(GetDlgItem(hWnd, IDC_CB_TYPE)); + mInstance->mCbType.add("Sleep Left"); // 1 + mInstance->mCbType.add("Sleep Right"); // 2 + mInstance->mCbType.add("Bedroll Left"); // 3 + mInstance->mCbType.add("Bedroll Behind"); // 4 + mInstance->mCbType.add("Sit Left"); // 11 + mInstance->mCbType.add("Sit Right"); // 12 + mInstance->mCbType.add("Sit Back"); // 13 + mInstance->mCbType.add("Sit Front"); // 14 + break; + + case WM_COMMAND: + switch (LOWORD(wParam)) + { + + case IDC_CB_TYPE: +// case IDC_CB_ORIENT: + if (HIWORD(wParam) == CBN_SELCHANGE) + { + mInstance->setFrnPos((NpFrnPos)mPosMap[mInstance->mCbType.selection()]); + mInstance->mIP->ForceCompleteRedraw(); + } + break; + } + break; + } + + return FALSE; +} + +IOResult NifFurnitureMarker::Load(ILoad *iload) +{ + setFrnPos(getFrnPos()); + return IO_OK; +} + + +class NifFurnitureClassDesc : public ClassDesc2 +{ + +public: + + int IsPublic() { return TRUE; } + void * Create(BOOL loading = FALSE) { return new NifFurnitureMarker(); } + const TCHAR * ClassName() { return GetString(IDS_CLASS_NAME); } + SClass_ID SuperClassID() { return HELPER_CLASS_ID; } + Class_ID ClassID() { return FurnitureMarker_CLASS_ID; } + const TCHAR* Category() { return GetString(IDS_CATEGORY); } + + const TCHAR* InternalName() { return _T("NifFurnitureMarker"); } // returns fixed parsable name (scripter-visible name) + HINSTANCE HInstance() { return hInstance; } // returns owning module handle +}; + +static NifFurnitureClassDesc NifFurnitureDesc; +ClassDesc2* GetNifFurnitureDesc() { return &NifFurnitureDesc; } diff --git a/NifFurniture/NifFurniture.rc b/NifFurniture/NifFurniture.rc index d444cc661cdb0b5f6e11ebe7a53bd5f3df3cb9d4..b8a3219db6f2e95a826c4f395ec99ce88c32e06a 100755 --- a/NifFurniture/NifFurniture.rc +++ b/NifFurniture/NifFurniture.rc @@ -1,4 +1,4 @@ -//Microsoft Developer Studio generated resource script. +// Microsoft Visual C++ generated resource script. // #include "resource.h" @@ -13,39 +13,54 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +// Deutsch (Deutschland) resources -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN #pragma code_page(1252) #endif //_WIN32 +#ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // -// Dialog +// TEXTINCLUDE // -IDD_PANEL DIALOG DISCARDABLE 0, 0, 108, 156 -STYLE WS_CHILD | WS_VISIBLE -//FLOATING_DIALOG -FONT 8, "MS Sans Serif" +3 TEXTINCLUDE BEGIN - CTEXT "Generated by Plugin AppWizard\nCode && design by\nRavi Karra - Discreet", - IDC_STATIC,7,7,94,36 - CONTROL "",IDC_EDIT,"CustEdit",WS_TABSTOP,29,114,35,10 - CONTROL "",IDC_SPIN,"SpinnerControl",0x0,65,114,7,10 - LTEXT "Spinner Cust Control:",IDC_STATIC,20,102,67,8 - CTEXT "TODO: Place panel controls here.",IDC_STATIC,15,63,78, - 19 + "\r\n" + "\0" END +#endif // APSTUDIO_INVOKED + +#endif // Deutsch (Deutschland) resources +///////////////////////////////////////////////////////////////////////////// + - //IMAGE_FILTER_COMPOSITOR_TYPE +///////////////////////////////////////////////////////////////////////////// +// Englisch (USA) resources + +#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) +#ifdef _WIN32 +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +#pragma code_page(1252) +#endif //_WIN32 -//(!UI_BY_MAX) +///////////////////////////////////////////////////////////////////////////// +// +// Dialog +// - //SHADER_TYPE +IDD_PANEL DIALOGEX 0, 0, 108, 38 +STYLE DS_SETFONT | WS_CHILD | WS_VISIBLE +FONT 8, "MS Sans Serif", 0, 0, 0x0 +BEGIN + COMBOBOX IDC_CB_TYPE,6,18,96,60,CBS_DROPDOWNLIST | WS_VSCROLL | + WS_TABSTOP + LTEXT "Type",IDC_STATIC,6,6,17,8 +END ///////////////////////////////////////////////////////////////////////////// @@ -54,17 +69,16 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO DISCARDABLE +GUIDELINES DESIGNINFO BEGIN IDD_PANEL, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 101 TOPMARGIN, 7 - BOTTOMMARGIN, 149 + BOTTOMMARGIN, 31 END END - #endif // APSTUDIO_INVOKED @@ -74,38 +88,36 @@ END // TEXTINCLUDE // -1 TEXTINCLUDE DISCARDABLE +1 TEXTINCLUDE BEGIN "resource.h\0" END -2 TEXTINCLUDE DISCARDABLE +2 TEXTINCLUDE BEGIN "#include ""afxres.h""\r\n" "\0" END - #endif // APSTUDIO_INVOKED - ///////////////////////////////////////////////////////////////////////////// // // String Table // -STRINGTABLE DISCARDABLE +STRINGTABLE BEGIN - IDS_LIBDESCRIPTION "Allow placting of furniture markers used in Oblivion" + IDS_LIBDESCRIPTION "Allow placting of furniture markers used in Oblivion." IDS_CATEGORY "NifTools" IDS_CLASS_NAME "NifFurniture" IDS_PARAMS "Parameters" IDS_SPIN "Spin" - //TEX_TYPE + IDS_FURNITURE_MARKER "Furniture Marker" END -#endif // English (U.S.) resources +#endif // Englisch (USA) resources ///////////////////////////////////////////////////////////////////////////// @@ -117,8 +129,6 @@ END // - ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED - diff --git a/NifFurniture/NifFurniture.vcproj b/NifFurniture/NifFurniture.vcproj index 55ef3386dc93f1454d6123f84112ae3c5bcf48ea..2305fc4ba4eae8c47241f8dedd5144a5e49c1fd4 100755 --- a/NifFurniture/NifFurniture.vcproj +++ b/NifFurniture/NifFurniture.vcproj @@ -427,13 +427,28 @@ <File RelativePath=".\NifFurniture.def"> </File> + <File + RelativePath="..\NifGui.cpp"> + </File> + <File + RelativePath="..\NifPlugins.cpp"> + </File> </Filter> <Filter Name="Header Files" Filter="h;hpp;hxx;hm;inl"> + <File + RelativePath="FurnitureMarkers.h"> + </File> <File RelativePath=".\NifFurniture.h"> </File> + <File + RelativePath="..\NifGui.h"> + </File> + <File + RelativePath="..\NifPlugins.h"> + </File> <File RelativePath=".\resource.h"> </File> diff --git a/NifFurniture/resource.h b/NifFurniture/resource.h index 78fc8cca31f2cc53826beb031c2e81128640645d..82df2862249320c6442fd1d71d06547d40b0bca7 100755 --- a/NifFurniture/resource.h +++ b/NifFurniture/resource.h @@ -1,23 +1,20 @@ //{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. +// Microsoft Visual C++ generated include file. // Used by NifFurniture.rc // - - #define IDS_LIBDESCRIPTION 1 #define IDS_CATEGORY 2 #define IDS_CLASS_NAME 3 #define IDS_PARAMS 4 #define IDS_SPIN 5 - - - +#define IDS_FURNITURE_MARKER 6 #define IDD_PANEL 101 - #define IDC_CLOSEBUTTON 1000 #define IDC_DOSTUFF 1000 +#define IDC_CB_TYPE 1001 #define IDC_COLOR 1456 #define IDC_EDIT 1490 +#define IDC_EDIT2 1491 #define IDC_SPIN 1496 // Next default values for new objects @@ -26,7 +23,7 @@ #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 +#define _APS_NEXT_CONTROL_VALUE 1002 #define _APS_NEXT_SYMED_VALUE 101 #endif #endif