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; }
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; }
// 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); } }
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); }
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; }
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; }
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; }