Beispiel #1
0
ATMO_BOOL CDmxConfigDialog::InitDialog(WPARAM wParam) {

        m_hCbxComports = getDlgItem(IDC_COMPORT);
        InitDialog_ComPorts( m_hCbxComports );

        int com = m_pConfig->getComport() - 1;
        if(com < 0) com = 0;
        ComboBox_SetCurSel(m_hCbxComports, com);

        m_hCbxBaudrate = getDlgItem(IDC_BAUDRATE);
        ComboBox_AddString(m_hCbxBaudrate, "115200");
        ComboBox_AddString(m_hCbxBaudrate, "250000");
        ComboBox_SetCurSel(m_hCbxBaudrate, m_pConfig->getDMX_BaudrateIndex());


        char buf[10];

        HWND control;

        control = getDlgItem(IDC_EDT_DMX_BASE);
        Edit_LimitText( control , 256);
        Edit_SetText(control, m_pConfig->getDMX_BaseChannels() );

        control = getDlgItem(IDC_EDT_DMX_RGB);
        Edit_LimitText(control, 2);
        sprintf(buf,"%d",m_pConfig->getDMX_RGB_Channels());
        Edit_SetText(control, buf);

        return ATMO_FALSE;
}
ATMO_BOOL CAtmoColorPicker::InitDialog(WPARAM wParam) 
{
	CLanguage *Lng = new CLanguage;

	HWND hwndCtrl;
	hwndCtrl = this->getDlgItem(IDC_EDT_RED);
	Edit_LimitText(hwndCtrl,3);
	hwndCtrl = this->getDlgItem(IDC_EDT_GREEN);
	Edit_LimitText(hwndCtrl,3);
	hwndCtrl = this->getDlgItem(IDC_EDT_BLUE);
	Edit_LimitText(hwndCtrl,3);

	hwndCtrl = this->getDlgItem(IDC_SL_RED);
	SendMessage(hwndCtrl, TBM_SETRANGEMIN, 0, 0);
	SendMessage(hwndCtrl, TBM_SETRANGEMAX, 0, 255);
	SendMessage(hwndCtrl, TBM_SETPOS, 1, this->m_iRed);
	SendMessage(hwndCtrl, TBM_SETTICFREQ, 8, 0);

	hwndCtrl = this->getDlgItem(IDC_SL_GREEN);
	SendMessage(hwndCtrl, TBM_SETRANGEMIN, 0, 0);
	SendMessage(hwndCtrl, TBM_SETRANGEMAX, 0, 255);
	SendMessage(hwndCtrl, TBM_SETPOS, 1, this->m_iGreen);
	SendMessage(hwndCtrl, TBM_SETTICFREQ, 8, 0);

	hwndCtrl = this->getDlgItem(IDC_SL_BLUE);
	SendMessage(hwndCtrl, TBM_SETRANGEMIN, 0, 0);
	SendMessage(hwndCtrl, TBM_SETRANGEMAX, 0, 255);
	SendMessage(hwndCtrl, TBM_SETPOS, 1, this->m_iBlue);
	SendMessage(hwndCtrl, TBM_SETTICFREQ, 8, 0);

	UpdateColorControls(ATMO_TRUE, ATMO_TRUE);

	Lng->szCurrentDir[Lng->SetLngPath()];

	sprintf(Lng->szFileINI, "%s\\Language.ini\0", Lng->szCurrentDir);

	GetPrivateProfileString("Common", "Language", "English", Lng->szLang, 256, Lng->szFileINI);

	// Read Buffer from IniFile
	sprintf(Lng->szTemp, "%s\\%s.xml\0", Lng->szCurrentDir, Lng->szLang);

	Lng->XMLParse(Lng->szTemp, Lng->sTextCPicker, "ColorPicker");

	SendMessage(getDlgItem(IDC_STATIC22), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sTextCPicker[0]));
	SendMessage(getDlgItem(IDC_STATIC23), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sTextCPicker[1]));
	SendMessage(getDlgItem(IDC_STATIC24), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sTextCPicker[2]));
	SendMessage(this->m_hDialog, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sTextCPicker[3]));
	SendMessage(getDlgItem(IDCANCEL), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sTextCPicker[4]));

	return ATMO_TRUE;

}
ATMO_BOOL CFnordlichtConfigDialog::InitDialog(WPARAM wParam) {

        m_hCbxComports = getDlgItem(IDC_COMPORT);
        InitDialog_ComPorts( m_hCbxComports );
        int com = m_pConfig->getComport() - 1;
        if(com < 0) com = 0;
        ComboBox_SetCurSel(m_hCbxComports, com);

        m_hEditNumChannels = getDlgItem(IDC_EDT_FNORDL_CH); 
        this->SetEditInt(m_hEditNumChannels, m_pConfig->getFnordlicht_Amount());

        return ATMO_FALSE;
}
ATMO_BOOL CFnordlichtConfigDialog::ExecuteCommand(HWND hControl,int wmId, int wmEvent) 
{
    switch(wmId) {
        case IDOK: {
           int numChannels;
           if(!this->GetEditInt(m_hEditNumChannels,numChannels)) {
               return ATMO_TRUE; 
           }
           if((numChannels < 1) || (numChannels>255)) {
               MessageBox(this->m_hDialog,"Number of channels out of range 1..255","Error",MB_ICONERROR | MB_OK);
               return ATMO_TRUE;
           }
           m_pConfig->setFnordlicht_Amount( numChannels );

           int comportSel = ComboBox_GetCurSel(getDlgItem(IDC_COMPORT));
           m_pConfig->setComport(comportSel + 1);

           EndDialog(this->m_hDialog, wmId);
           break;
        }

        case IDCANCEL: {
           EndDialog(this->m_hDialog, wmId);
           break;
        }

       default:
           return ATMO_FALSE;

    }

    return ATMO_TRUE;
}
ATMO_BOOL CAtmoLiveSettings::UpdateLiveViewValues(ATMO_BOOL showPreview) {
     HWND hwndCtrl;
     CAtmoDisplays *pAtmoDisplays = this->m_pDynData->getAtmoDisplays();
     CAtmoConfig *pAtmoConfig = this->m_pDynData->getAtmoConfig();

     pAtmoDisplays->ReloadList(); // auf nummer sicher!

     hwndCtrl = getDlgItem(IDC_DISPLAYS);
     int i = ComboBox_GetCurSel(hwndCtrl);
     if(i>=pAtmoDisplays->getCount()) {
         pAtmoConfig->setLiveView_DisplayNr(0);
         LoadDisplayList();
         MessageBox(this->m_hDialog,"Ausgewähltes Display nicht mehr in der Liste ;-)","Fehler",MB_ICONERROR | MB_OK);
         return ATMO_FALSE;
     }
     pAtmoConfig->setLiveView_DisplayNr(i);

     if(showPreview == ATMO_TRUE) {
        CAtmoConnection *pAtmoConnection = m_pDynData->getAtmoConnection();
        if((pAtmoConnection!=NULL) && pAtmoConnection->isOpen()) {
            CAtmoTools::SwitchEffect(m_pDynData, emLivePicture);
         }
     }
     return ATMO_TRUE;
}
Beispiel #6
0
static struct fontDialog *beginFontDialog(HWND hwnd, LPARAM lParam)
{
	struct fontDialog *f;
	UINT32 i, nFamilies;
	IDWriteFontFamily *family;
	WCHAR *wname;
	LRESULT pos;
	HWND samplePlacement;
	HRESULT hr;

	f = uiNew(struct fontDialog);
	f->hwnd = hwnd;
	f->params = (struct fontDialogParams *) lParam;

	f->familyCombobox = getDlgItem(f->hwnd, rcFontFamilyCombobox);
	f->styleCombobox = getDlgItem(f->hwnd, rcFontStyleCombobox);
	f->sizeCombobox = getDlgItem(f->hwnd, rcFontSizeCombobox);

	f->fc = loadFontCollection();
	nFamilies = f->fc->fonts->GetFontFamilyCount();
	for (i = 0; i < nFamilies; i++) {
		hr = f->fc->fonts->GetFontFamily(i, &family);
		if (hr != S_OK)
			logHRESULT(L"error getting font family", hr);
		wname = fontCollectionFamilyName(f->fc, family);
		pos = cbAddString(f->familyCombobox, wname);
		uiFree(wname);
		cbSetItemData(f->familyCombobox, (WPARAM) pos, (LPARAM) family);
	}

	for (i = 0; defaultSizes[i].text != NULL; i++)
		cbInsertString(f->sizeCombobox, defaultSizes[i].text, (WPARAM) i);

	samplePlacement = getDlgItem(f->hwnd, rcFontSamplePlacement);
	uiWindowsEnsureGetWindowRect(samplePlacement, &(f->sampleRect));
	mapWindowRect(NULL, f->hwnd, &(f->sampleRect));
	uiWindowsEnsureDestroyWindow(samplePlacement);
	f->sampleBox = newD2DScratch(f->hwnd, &(f->sampleRect), (HMENU) rcFontSamplePlacement, fontDialogSampleSubProc, (DWORD_PTR) f);

	setupInitialFontDialogState(f);
	return f;
}
Beispiel #7
0
// TODO extract into d2dscratch.cpp, use in font dialog
HWND replaceWithD2DScratch(HWND parent, int id, SUBCLASSPROC subproc, void *data)
{
	HWND replace;
	RECT r;

	replace = getDlgItem(parent, id);
	uiWindowsEnsureGetWindowRect(replace, &r);
	mapWindowRect(NULL, parent, &r);
	uiWindowsEnsureDestroyWindow(replace);
	return newD2DScratch(parent, &r, (HMENU) id, subproc, (DWORD_PTR) data);
	// TODO preserve Z-order
}
void CAtmoGradients::HandleHorzScroll(int code,int position,HWND scrollBarHandle) 
{
	// slider handling...
	char buffer[100];
	int dlgItemId = GetDlgCtrlID(scrollBarHandle);
	CLanguage *Lng = new CLanguage;

	switch(dlgItemId) 
	{
	case IDC_EDGE_WEIGHT: 
		{
			m_edge_weight = (int)SendMessage(scrollBarHandle, TBM_GETPOS, 0, 0);
			SetActiveZone( m_active_zone );
			HWND groupBox = getDlgItem( IDC_ZONE_GROUP );
			InvalidateRect( groupBox, NULL, false);
			sprintf(buffer,Lng->sGradientsText[2] + "[%d]",m_edge_weight);
			SetWindowText( getDlgItem(IDC_STATIC_EDGEW), buffer);
			break;
		}

	}
}
void CAtmoLiveSettings::LoadDisplayList() {
     CAtmoDisplays *pAtmoDisplays = this->m_pDynData->getAtmoDisplays();
     HWND hwndCtrl;
     hwndCtrl = getDlgItem(IDC_DISPLAYS);

     ComboBox_ResetContent(hwndCtrl);

     for(int i=0;i<pAtmoDisplays->getCount();i++) {
         TAtmoDisplayInfo nfo = pAtmoDisplays->getDisplayInfo(i);
         ComboBox_AddString(hwndCtrl, nfo.infoText);
     }
     ComboBox_SetCurSel(hwndCtrl, m_pDynData->getAtmoConfig()->getLiveView_DisplayNr());
}
VOID CALLBACK TflatButton::trackMouseTimerProc(HWND hwnd,UINT uMsg,UINT idEvent,DWORD dwTime)
{
    RECT rect;
    POINT pt;
    GetClientRect(hwnd,&rect);
    MapWindowPoints(hwnd,NULL,(LPPOINT)&rect,2);
    GetCursorPos(&pt);
    if (!PtInRect(&rect,pt) || (WindowFromPoint(pt)!=hwnd)) {
        KillTimer(hwnd,idEvent);
        TflatButton *self=(TflatButton*)getDlgItem(hwnd);
        self->isMouse=false;
        InvalidateRect(hwnd,NULL,FALSE);
    }
}
Beispiel #11
0
static void fixupControlPositions(struct colorDialog *c)
{
	HWND labelH;
	HWND labelS;
	HWND labelV;
	HWND labelR;
	HWND labelG;
	HWND labelB;
	HWND labelA;
	HWND labelHex;
	LONG offset;
	uiWindowsSizing sizing;

	labelH = getDlgItem(c->hwnd, rcHLabel);
	labelS = getDlgItem(c->hwnd, rcSLabel);
	labelV = getDlgItem(c->hwnd, rcVLabel);
	labelR = getDlgItem(c->hwnd, rcRLabel);
	labelG = getDlgItem(c->hwnd, rcGLabel);
	labelB = getDlgItem(c->hwnd, rcBLabel);
	labelA = getDlgItem(c->hwnd, rcALabel);
	labelHex = getDlgItem(c->hwnd, rcHexLabel);

	offset = offsetTo(c->editH, c->editS);
	moveWindowsUp(c, offset,
		labelS, c->editS,
		labelG, c->editGDouble, c->editGInt,
		NULL);
	offset = offsetTo(c->editS, c->editV);
	moveWindowsUp(c, offset,
		labelV, c->editV,
		labelB, c->editBDouble, c->editBInt,
		NULL);
	offset = offsetTo(c->editBDouble, c->editADouble);
	moveWindowsUp(c, offset,
		labelA, c->editADouble, c->editAInt,
		NULL);

	getSizing(c->hwnd, &sizing, (HFONT) SendMessageW(labelH, WM_GETFONT, 0, 0));
	offset = sizing.InternalLeading;
	moveWindowsUp(c, offset,
		labelH, labelS, labelV,
		labelR, labelG, labelB, labelA,
		labelHex,
		NULL);
}
ATMO_BOOL CAtmoGradients::ExecuteCommand(HWND hControl,int wmId, int wmEvent) 
{
	for(int i=0; m_ZoneRadios && m_ZoneRadios[i]; i++) 
	{
		if( m_ZoneRadios[i] == hControl) 
		{
			if(wmEvent == BN_CLICKED) 
			{
				SetActiveZone( i );
				HWND groupBox = getDlgItem( IDC_ZONE_GROUP );
				InvalidateRect( groupBox, NULL, false);

			}
		}
	}

	switch(wmId) 
	{
	case IDOK: 
		{
			EndDialog(this->m_hDialog, wmId);
			break;
		}

	case IDCANCEL: 
		{
			EndDialog(this->m_hDialog, wmId);
			break;
		}

	default:
		return ATMO_FALSE;

	}
	return ATMO_TRUE;
}
ATMO_BOOL CAtmoGradients::HandleMessage(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{ 
	ATMO_BOOL r = CBasicDialog::HandleMessage(hwnd, uMsg, wParam, lParam);
	HWND groupBox = getDlgItem( IDC_ZONE_GROUP );
	CLanguage *Lng = new CLanguage;

	if((hwnd == groupBox) && (uMsg == WM_PAINT)) 
	{
		HDC hdc = GetDC(hwnd);
		HDC memDC = CreateCompatibleDC(hdc);
		RECT r;
		GetClientRect( groupBox, &r );
		int cx = (r.right - r.left) / 2;
		int cy = (r.bottom - r.top) / 2;

		HGDIOBJ oldObject = SelectObject( memDC, m_current_gradient );
		DWORD error = GetLastError();

		cx = cx - (CAP_WIDTH * 3) / 2;
		cy = cy - (CAP_HEIGHT * 3) / 2;

		StretchBlt( hdc, cx, cy, CAP_WIDTH*3, CAP_HEIGHT*3, memDC, 0, 0, CAP_WIDTH, CAP_HEIGHT, SRCCOPY );
		error = GetLastError();

		SelectObject( memDC, oldObject );
		DeleteDC( memDC );
		ReleaseDC(hwnd, hdc);
	}

	if((hwnd == groupBox) && (uMsg == WM_DROPFILES) && (m_active_zone>=0))
	{
		char psz_filename[MAX_PATH];
		char psz_filename_dest[MAX_PATH];
		char msg[MAX_PATH+128];
		DragQueryFile((HDROP)wParam, 0, psz_filename, sizeof(psz_filename));
		int i;
		i = (int)strlen(psz_filename) - 1;
		while(i && psz_filename[i]!='.') i--;
		if(i>0) 
		{
			if(!stricmp(&psz_filename[i],".bmp"))
			{
				CAtmoZoneDefinition *azone = m_pConfig->getZoneDefinition( m_active_zone );
				if(azone)
				{

					sprintf(psz_filename_dest,"%s%s\\zone_%d.bmp",
						m_pDynData->getWorkDir(),
						m_pDynData->getAtmoConnection()->getDevicePath(),
						m_active_zone
						);

					FILE *fp=fopen(psz_filename_dest,"r");
					if(fp) 
					{
						fclose(fp);
						sprintf( msg, Lng->sGradientsText[3] + "%s" + Lng->sGradientsText[4], psz_filename_dest);
						if(MessageBox(m_hDialog, msg ,Lng->sGradientsText[5],MB_ICONQUESTION | MB_YESNO) == IDNO)
							return(r);
					}

					switch(azone->LoadGradientFromBitmap( psz_filename ))
					{
					case ATMO_LOAD_GRADIENT_OK:   
						SetActiveZone( m_active_zone );
						InvalidateRect( groupBox, NULL, false);
						if(!CopyFile( psz_filename, psz_filename_dest, false)) 
						{
							sprintf( msg, Lng->sGradientsText[3] + "%s" + Lng->sGradientsText[6], psz_filename_dest);
							MessageBox(m_hDialog, msg ,Lng->sGradientsText[7], MB_ICONERROR );
						} else
							MessageBox(m_hDialog, Lng->sGradientsText[8],Lng->sGradientsText[9],MB_OK);
						break;
					case ATMO_LOAD_GRADIENT_FILENOTFOND:   
						MessageBox(m_hDialog, Lng->sGradientsText[10],Lng->sGradientsText[7],MB_ICONERROR | MB_OK);
						break;
					case ATMO_LOAD_GRADIENT_FAILED_SIZE:   
						MessageBox(m_hDialog, Lng->sGradientsText[11],Lng->sGradientsText[7],MB_ICONERROR | MB_OK);
						break;
					case ATMO_LOAD_GRADIENT_FAILED_HEADER:   
						MessageBox(m_hDialog, Lng->sGradientsText[12],Lng->sGradientsText[7],MB_ICONERROR | MB_OK);
						break;
					case ATMO_LOAD_GRADIENT_FAILED_FORMAT:   
						MessageBox(m_hDialog, Lng->sGradientsText[13],Lng->sGradientsText[7],MB_ICONERROR | MB_OK);
						break;
					}
				}
				return(r); 
			}
		}
		MessageBox( m_hDialog, Lng->sGradientsText[14],Lng->sGradientsText[7],MB_ICONERROR | MB_OK);
	}
	return(r);
}
Beispiel #14
0
static struct colorDialog *beginColorDialog(HWND hwnd, LPARAM lParam)
{
	struct colorDialog *c;

	c = uiNew(struct colorDialog);
	c->hwnd = hwnd;
	c->out = (struct colorDialogRGBA *) lParam;
	// load initial values now
	rgb2HSV(c->out->r, c->out->g, c->out->b, &(c->h), &(c->s), &(c->v));
	c->a = c->out->a;

	// TODO set up d2dscratches

	// TODO prefix all these with rcColor instead of just rc
	c->editH = getDlgItem(c->hwnd, rcH);
	c->editS = getDlgItem(c->hwnd, rcS);
	c->editV = getDlgItem(c->hwnd, rcV);
	c->editRDouble = getDlgItem(c->hwnd, rcRDouble);
	c->editRInt = getDlgItem(c->hwnd, rcRInt);
	c->editGDouble = getDlgItem(c->hwnd, rcGDouble);
	c->editGInt = getDlgItem(c->hwnd, rcGInt);
	c->editBDouble = getDlgItem(c->hwnd, rcBDouble);
	c->editBInt = getDlgItem(c->hwnd, rcBInt);
	c->editADouble = getDlgItem(c->hwnd, rcADouble);
	c->editAInt = getDlgItem(c->hwnd, rcAInt);
	c->editHex = getDlgItem(c->hwnd, rcHex);

	c->svChooser = replaceWithD2DScratch(c->hwnd, rcColorSVChooser, svChooserSubProc, c);
	c->hSlider = replaceWithD2DScratch(c->hwnd, rcColorHSlider, hSliderSubProc, c);
	c->preview = replaceWithD2DScratch(c->hwnd, rcPreview, previewSubProc, c);
	c->opacitySlider = replaceWithD2DScratch(c->hwnd, rcOpacitySlider, opacitySliderSubProc, c);

	fixupControlPositions(c);

	// and get the ball rolling
	updateDialog(c, NULL);
	return c;
}
Beispiel #15
0
ATMO_BOOL CDmxConfigDialog::ExecuteCommand(HWND hControl,int wmId, int wmEvent) {

    HWND control;
    char buf[500];
    char channels[500];
    int  rgb;
    int chc;

    switch(wmId) {
        case IDOK: {
           control = getDlgItem(IDC_EDT_DMX_BASE);
           Edit_GetText(control, channels, sizeof(channels));

           control = getDlgItem(IDC_EDT_DMX_RGB);
           Edit_GetText(control, buf, sizeof(buf));
           rgb = atoi(buf);
           
           if((rgb<1) || (rgb>84))  {
              MessageBox(m_hDialog,"Anzahl RGB liegt ausserhalb des gültigen Bereich 1..84","Fehler",MB_ICONERROR);
              break;
           }

           chc = IsValidDmxStartString(channels, m_MaxChannels-3);
           if((chc == -2) || (chc == -3)) {
              sprintf(buf,"Ungültiger DMX Kanal gefunden, nicht im Bereich 0..%d",m_MaxChannels-3);
              MessageBox(m_hDialog, buf, "Fehler",MB_ICONERROR);
              break;
           }
           if((chc == -1) || (chc == 0)) {
              MessageBox(m_hDialog , "Mindestens ein Startkanal muss angegeben werden!" , "Fehler" , MB_ICONERROR );
              break;
           }
           if(chc == -4) {
              MessageBox(m_hDialog , "Ungültiges Zeichen in der Startkanalliste gefunden.\nEs sind nur Ziffern [0..9], Trenner [,;] und Leerzeichen erlaubt." , "Fehler" , MB_ICONERROR );
              break;
           }

           if(chc < rgb) {
              MessageBox(m_hDialog, "Es wurden weniger Startkanäle angegeben als RGB Kanäle, die fehlende Startkanäle werden auf Basis des letzten Kanals ermittelt.", "Hinweis", MB_ICONINFORMATION);
           }

           int comportSel = ComboBox_GetCurSel(getDlgItem(IDC_COMPORT));
           m_pConfig->setComport(comportSel + 1);

           m_pConfig->setDMX_BaudrateIndex( ComboBox_GetCurSel(getDlgItem(IDC_BAUDRATE)) );

           m_pConfig->setDMX_BaseChannels( channels );
           m_pConfig->setDMX_RGB_Channels( rgb );

           EndDialog(this->m_hDialog, wmId);
           break;
        }

        case IDCANCEL: {
            // m_pBackupConfig --> wieder herstellen...
           EndDialog(this->m_hDialog, wmId);
           break;
        }

        case IDC_EDT_DMX_RGB: {
            if(wmEvent == EN_CHANGE) {
                char buffer[20];
                if(Edit_GetText(hControl,buffer,sizeof(buffer))>0) {
                    int value = atoi(buffer);
                    if((value<1) || (value>64)) 
                        MessageBeep(MB_ICONEXCLAMATION);
                }
            }
            break;
        }

        case IDC_EDT_DMX_BASE: {
            if(wmEvent == EN_CHANGE) {
                if(Edit_GetText(hControl,channels,sizeof(channels))>0) {
                   chc = IsValidDmxStartString(channels, m_MaxChannels-3);
                   if(chc < 0)
                      MessageBeep(MB_ICONEXCLAMATION);
                }
            }
            break;
        }


       default:
           return ATMO_FALSE;

    }

    return ATMO_TRUE;
}
ATMO_BOOL CAtmoGradients::InitDialog(WPARAM wParam) 
{
	HWND groupBox = getDlgItem( IDC_ZONE_GROUP );
	CLanguage *Lng = new CLanguage;

	Lng->szCurrentDir[Lng->SetLngPath()];

	sprintf(Lng->szFileINI, "%s\\Language.ini\0", Lng->szCurrentDir);

	GetPrivateProfileString("Common", "Language", "English", Lng->szLang, 256, Lng->szFileINI);

	// Read Buffer from IniFile
	sprintf(Lng->szTemp, "%s\\%s.xml\0", Lng->szCurrentDir, Lng->szLang);

	Lng->XMLParse(Lng->szTemp, Lng->sGradientsText, "Gradients");  	

	SetWindowLongPtr(groupBox, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(this));
	OrgGroupBoxProc = (WNDPROC)SetWindowLongPtr(groupBox, GWL_WNDPROC, reinterpret_cast<LONG_PTR>(GroupBoxProc));

	int zonenIdx = 0;
	char zonename[100];
	int xpos, ypos;

	int zoneCount = m_pConfig->getZoneCount() + 1;
	m_ZoneRadios = new HWND[ zoneCount ];

	for(int i=0; i<zoneCount; i++)
		m_ZoneRadios[i] = 0;

#define radio_width 60
#define radio_height 20


	xpos = 10;
	ypos = 12;
	RECT rect, rrect;
	GetClientRect( groupBox, &rect );
	GetWindowRect( groupBox, &rrect );

	if(m_pConfig->getZonesTopCount() > 0) 
	{
		int radioWidth = (rect.right - rect.left - 20) /  (m_pConfig->getZonesTopCount() + 1);

		xpos = 10 + radioWidth -  radio_width/2;

		for( int zone=0; zone < m_pConfig->getZonesTopCount(); zone++)
		{
			sprintf( zonename, Lng->sGradientsText[0] + "%d", zonenIdx );
			HWND handle = CreateWindow("BUTTON", zonename,
				BS_AUTORADIOBUTTON  | BS_LEFTTEXT  | WS_VISIBLE | WS_TABSTOP | WS_CHILD, 
				xpos, ypos, radio_width, radio_height, groupBox, NULL, m_hInst, NULL);
			SetWindowFont(handle, GetWindowFont(m_hDialog), false);

			m_ZoneRadios[ zonenIdx ] = handle;
			zonenIdx++;
			xpos += radioWidth;
		}
	}

	if( m_pConfig->getZonesLRCount() > 0 )
	{
		int radioHeight = (rect.bottom - rect.top - 40) / (m_pConfig->getZonesLRCount() + 1);

		xpos = rect.right - 10 - radio_width;
		ypos = rect.top + 20 + radioHeight - radio_height / 2;

		for( int zone=0; zone < m_pConfig->getZonesLRCount(); zone++)
		{
			sprintf( zonename, Lng->sGradientsText[0] + "%d", zonenIdx );
			HWND handle = CreateWindow("BUTTON", zonename,
				BS_AUTORADIOBUTTON  | BS_LEFTTEXT  | WS_VISIBLE | WS_TABSTOP | WS_CHILD, 
				xpos, ypos, radio_width, radio_height, groupBox, NULL, m_hInst, NULL);
			SetWindowFont(handle, GetWindowFont(m_hDialog), false);


			m_ZoneRadios[ zonenIdx ] = handle;
			zonenIdx++;
			ypos += radioHeight;
		}
	}

	if(m_pConfig->getZonesBottomCount() > 0) 
	{
		int radioWidth = (rect.right - rect.left - 20) /  (m_pConfig->getZonesBottomCount() + 1);
		xpos = rect.right -  10 - radioWidth - radio_width/2 ;
		ypos = rect.bottom - 30;

		for( int zone=0; zone < m_pConfig->getZonesBottomCount(); zone++)
		{
			sprintf( zonename, Lng->sGradientsText[0] + "%d", zonenIdx );

			HWND handle = CreateWindow("BUTTON", zonename,
				BS_AUTORADIOBUTTON  | BS_LEFTTEXT  | WS_VISIBLE | WS_TABSTOP | WS_CHILD, 
				xpos, ypos, radio_width, radio_height, groupBox, NULL, m_hInst, NULL);
			SetWindowFont(handle, GetWindowFont(m_hDialog), false);


			m_ZoneRadios[ zonenIdx ] = handle;

			zonenIdx++;
			xpos -= radioWidth;
		}
	}

	if( m_pConfig->getZonesLRCount() > 0 )
	{
		int radioHeight = (rect.bottom - rect.top - 40) / (m_pConfig->getZonesLRCount() + 1);

		xpos = rect.left + 10;
		ypos = rect.bottom - 20 - radioHeight - radio_height / 2;

		for( int zone=0; zone < m_pConfig->getZonesLRCount(); zone++)
		{
			sprintf( zonename, Lng->sGradientsText[0] + "%d", zonenIdx );
			HWND handle = CreateWindow("BUTTON", zonename,
				BS_AUTORADIOBUTTON  | BS_RIGHT | WS_VISIBLE | WS_TABSTOP | WS_CHILD, 
				xpos, ypos, radio_width, radio_height, groupBox, NULL, m_hInst, NULL);
			SetWindowFont(handle, GetWindowFont(m_hDialog), false);


			m_ZoneRadios[ zonenIdx ] = handle;
			zonenIdx++;
			ypos -= radioHeight;
		}
	}

	if( m_pConfig->getZoneSummary() )
	{
		xpos = rect.left + 20 + radio_width;
		ypos = (rect.bottom - 50);

		sprintf( zonename, Lng->sGradientsText[1] + "%d", zonenIdx );
		HWND handle = CreateWindow("BUTTON", zonename,
			BS_AUTORADIOBUTTON  | BS_RIGHT | WS_VISIBLE | WS_TABSTOP | WS_CHILD, 
			xpos, ypos, 100, radio_height, groupBox, NULL, m_hInst, NULL);

		SetWindowFont(handle, GetWindowFont(m_hDialog), false);

		m_ZoneRadios[ zonenIdx ] = handle;
		zonenIdx++;
	}

	m_ZoneRadios[ zonenIdx ] = 0;

	this->SetupSliderControl(IDC_EDGE_WEIGHT,1,30,this->m_edge_weight,5);
	SendMessage(getDlgItem(IDC_EDGE_WEIGHT),TBM_SETPAGESIZE,0,2);

	char buffer[32];
	sprintf(buffer,Lng->sGradientsText[2] + "[%d]",m_edge_weight);
	SetWindowText( getDlgItem(IDC_STATIC_EDGEW), buffer);

	if(zonenIdx > 0) {
		SetActiveZone( 0 );
		SendMessage( m_ZoneRadios[ 0 ], (UINT)BM_SETCHECK, BST_CHECKED, 0);
	}

	SendMessage(this->m_hDialog, WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sGradientsText[15]));
	SendMessage(getDlgItem(IDCANCEL), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sGradientsText[16]));
	SendMessage(getDlgItem(IDC_ZONE_GROUP), WM_SETTEXT, 0, (LPARAM)(LPCTSTR)(Lng->sGradientsText[17]));

	return ATMO_FALSE;
}
Beispiel #17
0
ATMO_BOOL CAtmoLiveSettings::InitDialog(WPARAM wParam) 
{
        CAtmoConfig *config = m_pDynData->getAtmoConfig();
        char buffer[256];
        HWND hwndCtrl;

        hwndCtrl = this->getDlgItem(IDC_GDI_CAPURE_RATE);
        sprintf(buffer,"%d",config->getLiveView_GDI_FrameRate());
        Edit_SetText(hwndCtrl, buffer);
        Edit_LimitText(hwndCtrl,2);

        LoadDisplayList();

        hwndCtrl = getDlgItem(IDC_FILTERMODE);
        ComboBox_AddString(hwndCtrl, "No Filter");
        ComboBox_AddString(hwndCtrl, "Combined");
        ComboBox_AddString(hwndCtrl, "Percent");
        ComboBox_SetCurSel(hwndCtrl, (int)config->getLiveViewFilterMode());

        hwndCtrl = getDlgItem(IDC_WIDESCREEN);
        Button_SetCheck(hwndCtrl, config->getLiveView_WidescreenMode());

        SetupSliderControl(IDC_EdgeWeighting,1,30,config->getLiveView_EdgeWeighting(),5);
        SendMessage(getDlgItem(IDC_EdgeWeighting),TBM_SETPAGESIZE,0,2);
        sprintf(buffer,"Edge weighting [%d]",config->getLiveView_EdgeWeighting());
        SetStaticText(IDC_TXT_EDGEWEIGHTNING, buffer);

        SetupSliderControl(IDC_BrightCorrect,50,300,config->getLiveView_BrightCorrect(),15);
        SendMessage(getDlgItem(IDC_BrightCorrect),TBM_SETPAGESIZE,0,10);
        sprintf(buffer,"Brightness [%d%%]",config->getLiveView_BrightCorrect());
        SetStaticText(IDC_TXT_BRIGHTCORRECT, buffer);

        SetupSliderControl(IDC_DarknessLimit,0,10,config->getLiveView_DarknessLimit(),1);
        SendMessage(getDlgItem(IDC_DarknessLimit),TBM_SETPAGESIZE,0,1);
        sprintf(buffer,"Darkness Limit [%d]",config->getLiveView_DarknessLimit());
        SetStaticText(IDC_TXT_DARKNESSLIMIT, buffer);

        SetupSliderControl(IDC_HueWinSize,0,5,config->getLiveView_HueWinSize(),1);
        SendMessage(getDlgItem(IDC_HueWinSize),TBM_SETPAGESIZE,0,1);
        sprintf(buffer,"Hue windowing [%d]",config->getLiveView_HueWinSize());
        SetStaticText(IDC_TXT_HUEWINSIZE, buffer);

        SetupSliderControl(IDC_SatWinSize,0,5,config->getLiveView_SatWinSize(),1);
        SendMessage(getDlgItem(IDC_SatWinSize),TBM_SETPAGESIZE,0,1);
        sprintf(buffer,"Sat windowing [%d]",config->getLiveView_SatWinSize());
        SetStaticText(IDC_TXT_SATWINSIZE, buffer);

        SetupSliderControl(IDC_Filter_MeanLength,300,5000,config->getLiveViewFilter_MeanLength(),0);
        SendMessage(getDlgItem(IDC_Filter_MeanLength),TBM_SETPAGESIZE,0,100);
        sprintf(buffer,"Filter length [%d ms]",config->getLiveViewFilter_MeanLength());
        SetStaticText(IDC_TXT_Filter_MeanLength, buffer);

        SetupSliderControl(IDC_Filter_MeanThreshold,1,100,config->getLiveViewFilter_MeanThreshold(),0);
        SendMessage(getDlgItem(IDC_Filter_MeanThreshold),TBM_SETPAGESIZE,0,5);
        sprintf(buffer,"Filter threshold [%d%%]",config->getLiveViewFilter_MeanThreshold());
        SetStaticText(IDC_TXT_Filter_MeanThreshold, buffer);

        SetupSliderControl(IDC_Filter_PercentNew,1,100,config->getLiveViewFilter_PercentNew(),0);
        SendMessage(getDlgItem(IDC_Filter_PercentNew),TBM_SETPAGESIZE,0,5);
        sprintf(buffer,"Filter smoothness [%d%%]",config->getLiveViewFilter_PercentNew());
        SetStaticText(IDC_TXT_Filter_PercentNew, buffer);

        return ATMO_FALSE;
}