Ejemplo n.º 1
0
int main()
{
    {
        std::string package, clss;

        Atlas::Message::MapType script;

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = 1;

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "foo";

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "foo";
        script["language"] = 1;

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "foo";
        script["language"] = "csharp";

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "foo";
        script["language"] = "python";

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == -1);
    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "foo.bar";
        script["language"] = "python";

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == 0);

        assert(package == "foo");
        assert(clss == "bar");

    }

    {
        std::string package, clss;

        Atlas::Message::MapType script;
        script["name"] = "mim.foo.bar";
        script["language"] = "python";

        int ret = GetScriptDetails(script, "name", "context", package, clss);

        assert(ret == 0);

        assert(package == "mim.foo");
        assert(clss == "bar");

    }

    return 0;
}
Ejemplo n.º 2
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;
}