bool ColorPicker::OnList(ListPop *list, int index, gedString &text, int listId) { fixedColor = index; UpdateColorControls(); return true; }
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; }
void ColorPicker::OnEditChar(EditBox *edit, SDLKey key, int line) { int value = atol(edit->GetText().c_str()); bool bUpdateHSV = true; if( (edit == rEdit || edit == gEdit || edit == bEdit) && (value < 0 || value > 255)) { return; } if( edit == hEdit && (value < 0 || value > 359)) { return; } if( (edit == sEdit || edit == vEdit) && (value < 0 || value > 100)) { return; } if(edit == rEdit) r = value; else if(edit == gEdit) g = value; else if(edit == bEdit) b = value; else { double H, S, V; KrRGBA c; RGB_to_HSV(r, g, b, H, S, V); if(edit == hEdit) c = HSV_to_RGB(round(255*value/360.0), S, V); else if(edit == sEdit) c = HSV_to_RGB(H, round(255*value/100.0), V); else if(edit == vEdit) c = HSV_to_RGB(H, S, round(255*value/100.0)); r = c.c.red; g = c.c.green; b = c.c.blue; bUpdateHSV = false; } UpdateColorControls(); UpdateSample(r, g, b, bUpdateHSV); }
void CAtmoColorPicker::HandleHorzScroll(int code,int position,HWND scrollBarHandle) { // WM_HSCROLL handler! // WM_HSCROLL HWND hwndCtrl; int dlgItemId = GetDlgCtrlID(scrollBarHandle); switch(dlgItemId) { case IDC_SL_RED: this->m_iRed = (int)SendMessage(scrollBarHandle, TBM_GETPOS, 0, 0); break; case IDC_SL_GREEN: this->m_iGreen = (int)SendMessage(scrollBarHandle, TBM_GETPOS, 0, 0); break; case IDC_SL_BLUE: this->m_iBlue = (int)SendMessage(scrollBarHandle, TBM_GETPOS, 0, 0); break; default: return; } UpdateColorControls(ATMO_FALSE, ATMO_TRUE); // if(IDC_RADIO2){ // this->m_iRed = 10; //this->m_iGreen = 10; //this->m_iBlue = 10; // } hwndCtrl = this->getDlgItem(IDC_CHK_VIEWCOLOR); if(SendMessage(hwndCtrl, BM_GETSTATE, 0, 0) == BST_CHECKED) outputColor(this->m_iRed, this->m_iGreen, this->m_iBlue); }
ATMO_BOOL CAtmoColorPicker::ExecuteCommand(HWND hControl,int wmId, int wmEvent) { switch(wmId) { case IDOK: { EndDialog(this->m_hDialog, wmId); break; } case IDCANCEL: { EndDialog(this->m_hDialog, wmId); break; } case IDC_EDT_RED: { if(wmEvent == EN_CHANGE) { char buffer[20]; if(Edit_GetText(hControl,buffer,sizeof(buffer))>0) { int value = atoi(buffer); if((value>=0) && (value<=255)) { this->m_iRed = value; UpdateColorControls(ATMO_TRUE, ATMO_FALSE); outputColor(this->m_iRed, this->m_iGreen, this->m_iBlue); } else { MessageBeep(MB_ICONEXCLAMATION); } } } break; } case IDC_EDT_GREEN: { if(wmEvent == EN_CHANGE) { char buffer[20]; if(Edit_GetText(hControl,buffer,sizeof(buffer))>0) { int value = atoi(buffer); if((value>=0) && (value<=255)) { this->m_iGreen = value; UpdateColorControls(ATMO_TRUE, ATMO_FALSE); outputColor(this->m_iRed, this->m_iGreen, this->m_iBlue); } else { MessageBeep(MB_ICONEXCLAMATION); } } } break; } case IDC_EDT_BLUE: { if(wmEvent == EN_CHANGE) { char buffer[20]; if(Edit_GetText(hControl,buffer,sizeof(buffer))>0) { int value = atoi(buffer); if((value>=0) && (value<=255)) { this->m_iBlue = value; UpdateColorControls(ATMO_TRUE, ATMO_FALSE); outputColor(this->m_iRed, this->m_iGreen, this->m_iBlue); } else { MessageBeep(MB_ICONEXCLAMATION); } } } break; } default: return ATMO_FALSE; } return ATMO_TRUE; }