/*------------------------------------------------------------------------------------------------------------------
-- FUNCTION: InitWindow
--
-- DATE: February 9th, 2016
--
-- REVISIONS: February 9th, 2016: Created InitWindow
--			  February 15th, 2016: Commented
--
-- DESIGNER: Carson Roscoe
--
-- PROGRAMMER: Carson Roscoe
--
-- int InitWindow(HINSTANCE hInstance)
--
-- RETURN: int regarding success or fail
--
-- NOTES:
-- Creates the window, assigns UI  and gives them default values.
----------------------------------------------------------------------------------------------------------------------*/
int InitWindow(HINSTANCE hInstance) {
    WNDCLASSEX wcex;

    ////Setup Window////
    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_HREDRAW | CS_VREDRAW;
    wcex.lpfnWndProc = WndProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra = 0;
    wcex.hInstance = hInstance;
    wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_APPLICATION));
    wcex.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
    wcex.lpszMenuName = MAKEINTRESOURCE(IDR_MENU1);
    wcex.lpszClassName = PROGRAM_TITLE;
    wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_APPLICATION));

    if (!RegisterClassEx(&wcex)) {
        DWORD errorCode = GetLastError();
        perror("RegisterClassEx Failed with error " + errorCode);
        return -1;
    }

    hwnd = CreateWindow(PROGRAM_TITLE, PROGRAM_TITLE, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 700, 500, NULL, NULL, hInstance, NULL);

    if (!hwnd) {
        DWORD errorCode = GetLastError();
        perror("CreateWindow Failed with error " + errorCode);
        return -1;
    }

    ////Assign UI////
    labelIP = CreateLabel("IP ", MARGIN, MARGIN, LABELWIDTH, LABELHEIGHT);
    editTextIP = CreateEditText("127.0.0.1", EDITSTART + MARGIN, MARGIN, EDITWIDTH, EDITHEIGHT);
    labelPort = CreateLabel("Port ", MARGIN + LABELWIDTH + SPACING + EDITWIDTH, MARGIN, LABELWIDTH, LABELHEIGHT);
    editTextPort = CreateEditText("7000", LABELWIDTH * 2 + SPACING * 2 + EDITWIDTH, MARGIN, EDITWIDTH, EDITHEIGHT);

    labelPacketSize = CreateLabel("Size ", MARGIN, MARGIN + LABELHEIGHT + SPACING, LABELWIDTH, LABELHEIGHT);
    comboBox1 = CreateComboBox(EDITSTART + MARGIN, MARGIN + LABELHEIGHT + SPACING, EDITWIDTH, COMBOHEIGHT);

    labelQuantity = CreateLabel("Quantity ", MARGIN + LABELWIDTH + SPACING + EDITWIDTH, MARGIN + LABELHEIGHT + SPACING, LABELWIDTH, LABELHEIGHT);
    comboBox2 = CreateComboBox(LABELWIDTH * 2 + SPACING * 2 + EDITWIDTH, MARGIN + LABELHEIGHT + SPACING, EDITWIDTH, COMBOHEIGHT);

    labelProtocol = CreateLabel("Protocol ", MARGIN, MARGIN + LABELHEIGHT * 2 + SPACING * 2, LABELWIDTH, LABELHEIGHT);
    comboBox3 = CreateComboBox(EDITSTART + MARGIN, MARGIN + LABELHEIGHT*2 + SPACING*2, EDITWIDTH, COMBOHEIGHT);

    buttonSend = CreateButton("Send ", MARGIN + LABELWIDTH + SPACING + EDITWIDTH, MARGIN + LABELHEIGHT * 2 + SPACING * 2, LABELWIDTH + EDITWIDTH + SPACING, LABELHEIGHT);

    textBoxResult = CreateTextBox(MARGIN, MARGIN + LABELHEIGHT * 3 + SPACING * 3, MARGIN + LABELWIDTH + SPACING + EDITWIDTH + LABELWIDTH + EDITWIDTH, LABELHEIGHT * 5);

    ////Give UI default values////
    ComboBox_AddString(comboBox1, "1024");
    ComboBox_AddString(comboBox1, "2048");
    ComboBox_AddString(comboBox1, "4096");
    ComboBox_AddString(comboBox1, "8192");
    ComboBox_AddString(comboBox1, "16384");
    ComboBox_AddString(comboBox1, "20000");
    ComboBox_AddString(comboBox1, "32768");
    ComboBox_AddString(comboBox1, "60000");
    ComboBox_AddString(comboBox1, "65536");
    ComboBox_AddString(comboBox2, "1");
    ComboBox_AddString(comboBox2, "10");
    ComboBox_AddString(comboBox2, "25");
    ComboBox_AddString(comboBox2, "50");
    ComboBox_AddString(comboBox2, "100");
    ComboBox_AddString(comboBox2, "200");
    ComboBox_AddString(comboBox2, "500");
    ComboBox_AddString(comboBox2, "1000");
    ComboBox_AddString(comboBox3, "TCP");
    ComboBox_AddString(comboBox3, "UDP");

    ComboBox_SetCurSel(comboBox1, 0);
    ComboBox_SetCurSel(comboBox2, 0);
    ComboBox_SetCurSel(comboBox3, 0);

    return 0;
}
Beispiel #2
0
static void AddListFItem(t_x11 *x11, t_dlgitemlist *list, 
			 t_fitem *fitem, t_id GroupID, t_id *ID,
			 int x, int *y, int *w,bool bUseMon)
{
  int i,iSel,slen;
  char buf[STRLEN];
  
  switch(fitem->edlg) {
  case edlgBN:
    AddListItem
      (list,CreateButton(x11,fitem->name[0],fitem->bDef,(*ID)++,GroupID,
			 x,(*y),0,0,0));
    break;
  case edlgRB:
    strcpy(buf,fitem->def);
    iSel=-1;
    for (i=0; (i<fitem->nname); i++) {
      char buf2[100];

      strcpy(buf2,fitem->name[i]);
      buf2[strlen(buf)]='\0'; /* truncate itemname */
      if (strcasecmp(buf2,buf)==0)
	iSel=i;
    }

    for(i=0; (i<fitem->nname); i++) {
      AddListItem(list,
		  CreateRadioButton(x11,fitem->name[i],(iSel==i),
				    (*ID)++,GroupID,x,(*y),0,0,0));
      (*y)+=list->list[list->nitem-1]->win.height+OFFS_Y;
      (*w)=max((*w),list->list[list->nitem-1]->win.width);
      SetDlgitemOpts(list->list[list->nitem-1],bUseMon,
		     fitem->set,fitem->get,fitem->help);
    }
    break;
  case edlgCB: {
    bool bCheck;

    bCheck=strcasecmp(fitem->def,"TRUE")==0;
    AddListItem(list,CreateCheckBox(x11,fitem->name[0],bCheck,
				    (*ID)++,GroupID,x,(*y),0,0,0));
    break;
  }
  case edlgST:
    AddListItem(list,
		CreateStaticText(x11,fitem->nname,fitem->name,(*ID)++,
				 GroupID,x,(*y),0,0,0));
    break;
  case edlgET:
    slen=strlen(fitem->name[0])+strlen(fitem->def);
    AddListItem(list,CreateEditText(x11,fitem->name[0],slen,fitem->def,
				    (*ID)++,GroupID,x,(*y),0,0,0));
    break;
  case edlgPM:
  case edlgGB:
  default:
    gmx_fatal(FARGS,"Invalid list->list type: %d\n",fitem->edlg);
  }
  SetDlgitemOpts(list->list[list->nitem-1],bUseMon,
		 fitem->set,fitem->get,fitem->help);
  
  if (fitem->edlg != edlgRB) {
    (*y)+=list->list[list->nitem-1]->win.height+OFFS_Y;
    (*w)=max((*w),list->list[list->nitem-1]->win.width);
  }
}