예제 #1
0
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();
}
예제 #2
0
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();
}
예제 #3
0
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;
}
예제 #4
0
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++;
    }
}
예제 #5
0
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;}
	}
}