void CMainFrame::SetupToolBar() { // Set the Resource IDs for the first toolbar buttons AddToolBarButton( IDM_FILE_NEW ); AddToolBarButton( IDM_FILE_OPEN ); AddToolBarButton( 0 ); // Separator AddToolBarButton( IDM_FILE_SAVE ); AddToolBarButton( 0 ); // Separator AddToolBarButton( IDM_EDIT_CUT ); AddToolBarButton( IDM_EDIT_COPY ); AddToolBarButton( IDM_EDIT_PASTE ); AddToolBarButton( 0 ); // Separator AddToolBarButton( IDM_FILE_PRINT ); AddToolBarButton( 0 ); // Separator AddToolBarButton( IDM_HELP_ABOUT ); // Set the three image lists for the first toolbar SetToolBarImages(RGB(255, 0, 255), IDB_TOOLBAR_NORM, IDB_TOOLBAR_HOT, IDB_TOOLBAR_DIS); // Add the two other toolbars if we can use rebars (Need Win95 and IE 4 or better) if (IsReBarSupported()) { // Add the Arrows toolbar AddToolBarBand(&m_Arrows, 0, IDC_ARROWS); m_Arrows.AddButton(IDM_ARROW_LEFT); m_Arrows.AddButton(IDM_ARROW_RIGHT); // Add the Cards toolbar AddToolBarBand(&m_Cards, 0, IDB_CARDS); m_Cards.AddButton(IDM_CARD_CLUB); m_Cards.AddButton(IDM_CARD_DIAMOND); m_Cards.AddButton(IDM_CARD_HEART); m_Cards.AddButton(IDM_CARD_SPADE); // Set the button images SetTBImageList(&m_Arrows, &m_ArrowImages, IDB_ARROWS, RGB(255,0,255)); SetTBImageList(&m_Cards, &m_CardImages, IDB_CARDS, RGB(255,0,255)); } AddCombo(); }
void wxZEditNode::BuildInterface(wxGraphNode *pNode) { mEditingNode = pNode; BeginPanel(); if (mEditingNode) { mNodeName = mEditingNode->GetFunctionName(); AddFolder(_("Node")); AddTextEdit(_("Name"), &mNodeName, 200); #if 0 AddStatic("Comments"); AddScriptEdit(pNode->GetComment(), 2); if (pNode->GetType() == GNT_STATE) { AddFolder("Properties"); } #endif if (pNode->GetType() == GNT_MESSAGE) { AddFolder(_("Source code")); AddScriptEdit(pNode->GetCode(pNode->GetSubItem()), 2); } if (mEditingNode->GetType() == GNT_STATE) { wxString info; info = mNodeName+_(" > "); info += ((wxGraphNodeState*)mEditingNode)->mCurSelectedButton; SetScriptToEdit(info, pNode->GetCode(pNode->GetSubItem())); } } else { // editing tab extern wxNotebook * myNotebook; mNodeName = myNotebook->GetPageText(myNotebook->GetSelection()); AddFolder(_("FSM")); AddTextEdit(_("Name"), &mNodeName, 199); AddCheckBox(_("Add Raknet packet support"), &mScrollV->mbRaknetMessage); AddCheckBox(_("Tick has time parameter"), &mScrollV->mbTickHasTime); AddTextEdit(_("State base"), &mScrollV->mStateEnumBase); AddTextEdit(_("Message base"), &mScrollV->mMessageEnumBase); AddTextEdit(_("Output"), &mScrollV->mOutputFileName); std::vector<wxString> mStateList; mScrollV->FillNodeList(mStateList, GNT_STATE); if (!mStateList.empty()) { wxString mInitialStatesList; for (unsigned int i=0;i<mStateList.size()-1;i++) { mInitialStatesList += mStateList[i]+_("|"); } mInitialStatesList += mStateList[mStateList.size()-1]; if (mScrollV->mInitialState > (mStateList.size()-1) ) mScrollV->mInitialState = 0; AddCombo(_("Initial State"), mInitialStatesList.c_str(), &mScrollV->mInitialState); } AddFolder(_("Code")); AddStatic(_("Includes")); AddScriptEdit(mScrollV->GetIncludes(), 14); AddStatic(_("Member Variables")); AddScriptEdit(mScrollV->GetMemberVariables(), 14); AddStatic(_("Members Init")); AddScriptEdit(mScrollV->GetMembersInit(), 14); extern wxScriptEditPanel *mEditScriptPanel; mEditScriptPanel->SetScriptToEdit(wxT(""), NULL); } EndPanel(); }
BOOL CALLBACK DlgProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { switch (uMsg) { // case WM_INITDIALOG: // break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_COMBO_COMMAND: { if (HIWORD(wParam) == CBN_SELCHANGE) { int i = SendDlgItemMessage(hWnd, IDC_COMBO_COMMAND, CB_GETCURSEL, 0, 0); if (i != CB_ERR && i >= 0 && i < giCmdData && gpCmdData[i]->bHasArgs) { ShowWindow(GetDlgItem(hWnd, IDC_STATIC_ARGS_DESCRIPTION), SW_SHOW); ShowWindow(GetDlgItem(hWnd, IDC_STATIC_ARGS), SW_SHOW); ShowWindow(GetDlgItem(hWnd, IDC_EDIT_ARGS), SW_SHOW); SetDlgItemText(hWnd, IDC_STATIC_ARGS_DESCRIPTION, gpCmdData[i]->szArgsDesc); } else { ShowWindow(GetDlgItem(hWnd, IDC_STATIC_ARGS_DESCRIPTION), SW_HIDE); ShowWindow(GetDlgItem(hWnd, IDC_STATIC_ARGS), SW_HIDE); ShowWindow(GetDlgItem(hWnd, IDC_EDIT_ARGS), SW_HIDE); } } break; } case IDC_CMD_EDIT: { char szFileName[MAX_PATH+1]; GetDlgItemText(hWnd, IDC_EDIT_FILE, szFileName, MAX_PATH); char *szFile = findfile(szFileName); if (!szFile) { szFile = new char[MAX_PATH+1]; wsprintf(szFile, "%s%s", gszUserScripts, szFileName); } char szViewer[MAX_PATH+1]; char temp[MAX_PATH]; GetTempPath(MAX_PATH, temp); lstrcat(temp, "sitemp.txt"); HANDLE hFile = CreateFile(temp, 0, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); DWORD err = GetLastError(); if (hFile != INVALID_HANDLE_VALUE) { FindExecutable(temp, NULL, szViewer); CloseHandle(hFile); if (err != ERROR_ALREADY_EXISTS) DeleteFile(temp); } if (!*szViewer) { lstrcpy(szViewer, "notepad.exe"); } SHELLEXECUTEINFO se = { 0 }; se.cbSize = sizeof(SHELLEXECUTEINFO); se.fMask = SEE_MASK_DOENVSUBST | SEE_MASK_NOCLOSEPROCESS; se.lpVerb = "Open"; se.lpFile = szViewer; se.lpParameters = szFile; se.lpDirectory = NULL; se.nShow = SW_SHOWNORMAL; ShellExecuteEx(&se); break; } case IDC_CMD_BROWSE: char *buf = new char[MAX_PATH+1]; *buf = 0; OPENFILENAME ofn = {0}; ofn.lStructSize = sizeof(OPENFILENAME); ofn.hInstance = ghInstance; ofn.hwndOwner = hWnd; // "Lua Files\0*.lua\0All Files\0*.*\0"; char *filter = new char[256]; char *end = filter; lstrcpy(end, STR(LUA_FILES)); end += lstrlen(end) + 1; lstrcpy(end, "*.lua"); end += lstrlen(end) + 1; lstrcpy(end, STR(ALL_FILES)); end += lstrlen(end) + 1; lstrcpy(end, "*.*"); end += lstrlen(end) + 1; *end = 0; char szFile[MAX_PATH+1]; GetDlgItemText(hWnd, IDC_EDIT_FILE, szFile, MAX_PATH); ofn.lpstrFile = szFile; ofn.lpstrInitialDir = (char *)gszUserScripts; ofn.lpstrFilter = filter; ofn.lpstrFile = buf; ofn.nMaxFile = MAX_PATH; ofn.Flags = OFN_PATHMUSTEXIST | OFN_LONGNAMES | OFN_EXPLORER; if (GetOpenFileName(&ofn)) { if ( StrStartsWith(buf, (char *)gszUserScripts) ) { SetDlgItemText(hWnd, IDC_EDIT_FILE, buf + lstrlen((char *)gszUserScripts)); } else if ( StrStartsWith(buf, (char *)gszGlobalScripts) ) { SetDlgItemText(hWnd, IDC_EDIT_FILE, buf + lstrlen((char *)gszGlobalScripts)); } else { SetDlgItemText(hWnd, IDC_EDIT_FILE, buf); } // clear the dropdown SendDlgItemMessage(hWnd, IDC_COMBO_COMMAND, CB_RESETCONTENT, 0, 0); DeleteScriptDetails((s_commandData **) &gpCmdData, giCmdData); giCmdData = GetScriptDetails(buf, (s_commandData **) &gpCmdData); if (giCmdData > 0) { // populate the dropdown for (int i = 0; i<giCmdData; i++) AddCombo(hWnd, IDC_COMBO_COMMAND, gpCmdData[i]->szCmdName, gpCmdData[i]->szCmdName); SendDlgItemMessage(hWnd, IDC_COMBO_COMMAND, CB_SETCURSEL, 0, 0); ShowWindow(GetDlgItem(hWnd, IDC_STATIC_COMMAND), SW_SHOW); ShowWindow(GetDlgItem(hWnd, IDC_COMBO_COMMAND), SW_SHOW); } else { ShowWindow(GetDlgItem(hWnd, IDC_STATIC_COMMAND), SW_HIDE); ShowWindow(GetDlgItem(hWnd, IDC_COMBO_COMMAND), SW_HIDE); } // show/hide the args depending on the selection SendMessage(hWnd, WM_COMMAND, MAKELONG(IDC_COMBO_COMMAND, CBN_SELCHANGE), (LPARAM) GetDlgItem(hWnd, IDC_COMBO_COMMAND)); } delete filter; delete buf; } break; case WM_CLOSE: DestroyWindow(hWnd); break; default: return FALSE; } return TRUE; }
void wxZEdit::EditClass(SerializableField *pFields, const char *className, void *ptr, bool bCreateFolder, bool aHandleParentClass) { if (bCreateFolder) { if ( (className[0] == 'P') && (className[1] == 'S') && (className[2] == 'M') && (className[3] == '_')) AddFolder(className+4); else AddFolder(className); } while (pFields->type != SerializableEnd) { if (pFields->type == SerializableBaseClass) { //printf("%s+ %s \n",getTabDepth(depth),pFields->name); if (aHandleParentClass) EditClass((SerializableField *)pFields->size_fieldsOffset, pFields->name, (void*)((((char*)ptr)+pFields->offset)), /*depth, */false, false); } else { // agregated class? if (pFields->type == SerializableAgregat) { if (pFields->count>1) { /* for (unsigned int i= 0;i<pFields->count;i++) { printf("%s%s[%d]\n",getTabDepth(depth),pFields->name,i); DumpObjectValuesFn((SerializableField *)pFields->size_fieldsOffset, pFields->name, (void*)((((char*)ptr)+pFields->offset+(i*gSerializableClasses[pFields->classID].mClassSize))), depth); } */ } else { /* if (pFields->classID == tcolor::mClassID) { AddColorPicker(pFields->name, (tcolor*)((((char*)ptr)+pFields->offset))); } else { } */ //printf("%s%s\n",getTabDepth(depth),pFields->name); //DumpObjectValuesFn((SerializableField *)pFields->size_fieldsOffset, pFields->name, (void*)((((char*)ptr)+pFields->offset)), depth); } } else { /* if (pFields->count>1) { printf("%s%s[%d] = {",getTabDepth(depth),pFields->name,pFields->count); } else printf("%s%s = ",getTabDepth(depth),pFields->name); */ const char *aFieldName = pFields->name; if (aFieldName[0] == 'm') aFieldName++; for (unsigned int i= 0;i<pFields->count;i++) { char *ptrOfset = (((char*)ptr)+pFields->offset+(i*pFields->size_fieldsOffset)); // base switch (pFields->classID) { case SB_UNDEFINED: /*printf("(undefined type)");*/ break; case SB_I8: { if (pFields->mEnumStr) { AddCombo(aFieldName, wxString(pFields->mEnumStr), (unsigned char*)ptrOfset); } else { AddNumEdit<char>(aFieldName, -128, 127, (char*)ptrOfset, 1); } } break; case SB_BOOL: AddCheckBox(aFieldName, (bool*)ptrOfset); break; case SB_UI8: AddNumEdit<unsigned char>(aFieldName, 0, 255, (unsigned char*)ptrOfset, 1); break; case SB_I16: AddNumEdit<short>(aFieldName, -32768, 32767, (short*)ptrOfset, 1); break; case SB_UI16: AddNumEdit<unsigned short>(aFieldName, 0, 65535, (unsigned short*)ptrOfset, 1); break; case SB_I32: AddNumEdit<long>(aFieldName, -2147483647, 2147483647, (long*)ptrOfset, 1); break; case SB_UI32: { if (pFields->mEnumStr) { // bit field unsigned long aBitNb = 0; wxStringTokenizer tkz(pFields->mEnumStr, wxT("|")); while ( tkz.HasMoreTokens() ) { wxString bitFieldName = tkz.GetNextToken(); if (!bitFieldName.IsEmpty()) { AddCheckBoxBitField(bitFieldName, (unsigned long*)ptrOfset, aBitNb); } aBitNb++; } } else { // normal ui32 AddNumEdit<unsigned long>(aFieldName, 0, 4294967295, (unsigned long*)ptrOfset, 1); } } break; case SB_FLOAT: AddNumEdit<float>(aFieldName, -10000000, 10000000, (float*)ptrOfset, 0.1f); break; case SB_DOUBLE: /*printf("%f",*(double*) ptrOfset);*/ break; case SB_STRING: /*printf("%s",(char*) ptrOfset);*/ if (!_stricmp(aFieldName,"name")) AddTextEdit(aFieldName, (tstring*)ptrOfset, 10); else AddTextEdit(aFieldName, (tstring*)ptrOfset); break; case SB_WSTRING: //printf("%s%s = %d \n",getTabDepth(depth),pFields->name,*(int*) (((char*)ptr)+pFields->offset)); break; } //if ((i!=(pFields->count-1))&&(pFields->count>1)) printf(", "); } /* if (pFields->count>1) printf("}\n"); else printf("\n"); */ } } pFields++; } }
void RenderState::OnShowProperty( CMFCPropertyGridProperty* pGroup ) { __super::OnShowProperty(pGroup); switch(info.type){ case Air::Client::enRST_RS:{ AddCombo( pGroup, _T("FillMode"), strFillMode,strFillModeCount,info.rs.FillMode, _T("Note"),TRUE ); AddCombo( pGroup, _T("CullMode"),strCullMode,strCullModeCount, info.rs.CullMode, _T("Note"),TRUE ); AddMember( pGroup, _T("FrontCounterClockwise"), info.rs.FrontCounterClockwise, _T("Note"), TRUE ); AddMember( pGroup, _T("DepthBias"), info.rs.DepthBias, _T("Note"), TRUE ); AddMember( pGroup, _T("DepthBiasClamp"), info.rs.DepthBiasClamp, _T("Note"), TRUE ); AddMember( pGroup, _T("SlopeScaledDepthBias"), info.rs.SlopeScaledDepthBias, _T("Note"), TRUE ); AddMember( pGroup, _T("DepthClipEnable"), info.rs.DepthClipEnable, _T("Note"), TRUE ); AddCombo( pGroup, _T("ScissorEnable"), strEnable,2,info.rs.ScissorEnable, _T("Note"), TRUE ); AddMember( pGroup, _T("MultisampleEnable"), info.rs.MultisampleEnable, _T("Note"), TRUE ); AddMember( pGroup, _T("AntialiasedLineEnable"), info.rs.AntialiasedLineEnable, _T("Note"), TRUE ); break;} case Air::Client::enRST_DS:{ AddCombo( pGroup, _T("DepthEnable"), strEnable,2,info.ds.DepthEnable, _T("Note"), TRUE ); AddCombo( pGroup, _T("DepthWriteMask"), strEnable,2,info.ds.DepthWriteMask, _T("Note"), TRUE ); AddCombo( pGroup, _T("DepthFunc"), strCompare,strCompareCount,info.ds.DepthFunc, _T("Note"), TRUE ); AddCombo( pGroup, _T("StencilEnable"), strEnable,2,(BOOL)info.ds.StencilEnable, _T("Note"), TRUE ); AddMember( pGroup, _T("StencilReadMask"), (UINT)info.ds.StencilReadMask, _T("Note"), TRUE ); AddMember( pGroup, _T("StencilWriteMask"), (UINT)info.ds.StencilWriteMask, _T("Note"), TRUE ); CMFCPropertyGridProperty* pFront = AddGroup(pGroup,_T("FrontFace")); AddCombo( pFront, _T("StencilFailOp"), strStencilOP,9,info.ds.FrontFace.StencilFailOp, _T("Note"), TRUE ); AddCombo( pFront, _T("StencilDepthFailOp"), strStencilOP,9,info.ds.FrontFace.StencilDepthFailOp, _T("Note"), TRUE ); AddCombo( pFront, _T("StencilPassOp"), strStencilOP,9,info.ds.FrontFace.StencilPassOp, _T("Note"), TRUE ); AddCombo( pFront, _T("StencilFunc"), strCompare,strCompareCount,info.ds.FrontFace.StencilFunc, _T("Note"), TRUE ); CMFCPropertyGridProperty* pBack = AddGroup(pGroup,_T("BackFace")); AddCombo( pBack, _T("StencilFailOp"), strStencilOP,9,info.ds.BackFace.StencilFailOp, _T("Note"), TRUE ); AddCombo( pBack, _T("StencilDepthFailOp"), strStencilOP,9,info.ds.BackFace.StencilDepthFailOp, _T("Note"), TRUE ); AddCombo( pBack, _T("StencilPassOp"), strStencilOP,9,info.ds.BackFace.StencilPassOp, _T("Note"), TRUE ); AddCombo( pBack, _T("StencilFunc"), strCompare,strCompareCount,info.ds.BackFace.StencilFunc, _T("Note"), TRUE ); break;} case Air::Client::enRST_BS:{ AddCombo( pGroup, _T("AlphaToCoverageEnable"), strEnable,2,info.bs.AlphaToCoverageEnable, _T("Note"), TRUE ); AddCombo( pGroup, _T("IndependentBlendEnable"), strEnable,2,info.bs.AlphaToCoverageEnable, _T("Note"), TRUE ); for(unsigned long i=0;i<8;i++){ CMFCPropertyGridProperty* pRTB = AddGroup(pGroup,strRTB[i]); AddCombo( pRTB, _T("BlendEnable"), strEnable,2,info.bs.Blend[i].BlendEnable, _T("Note"), TRUE ); AddCombo( pRTB, _T("SrcBlend"), strBlend,20,info.bs.Blend[i].SrcBlend, _T("Note"), TRUE ); AddCombo( pRTB, _T("DestBlend"), strBlend,20,info.bs.Blend[i].DestBlend, _T("Note"), TRUE ); AddCombo( pRTB, _T("BlendOp"), strBlendOP,6,info.bs.Blend[i].BlendOp, _T("Note"), TRUE ); AddCombo( pRTB, _T("SrcBlendAlpha"), strBlend,20,info.bs.Blend[i].SrcBlendAlpha, _T("Note"), TRUE ); AddCombo( pRTB, _T("DestBlendAlpha"), strBlend,20,info.bs.Blend[i].DestBlendAlpha, _T("Note"), TRUE ); AddCombo( pRTB, _T("BlendOpAlpha"), strBlendOP,6,info.bs.Blend[i].BlendOpAlpha, _T("Note"), TRUE ); AddMember( pRTB, _T("RenderTargetWriteMask"), (UINT)info.bs.Blend[i].RenderTargetWriteMask, _T("Note"), TRUE ); } break;} case Air::Client::enRST_SS:{ break;} } }