static LONG CALLBACK option_proc(HWND dlg,UINT message, WPARAM wParam,LPARAM lParam) { switch(message) { case WM_CREATE: case WM_SIZE: case WM_GETMINMAXINFO: break; case WM_DESTROY: option_dialog=NULL; break; case WM_COMMAND: if (LOWORD(wParam)==IDOK) { void *gui_data; char dp[512]; int val; client_options_iterate(poption) { gui_data = option_get_gui_data(poption); switch (option_type(poption)) { case COT_BOOLEAN: (void) option_bool_set(poption, Button_GetCheck((HWND)(gui_data)) == BST_CHECKED); break; case COT_INTEGER: GetWindowText((HWND)(gui_data),dp,sizeof(dp)); if (str_to_int(dp, &val)) { (void) option_int_set(poption, val); } break; case COT_STRING: if (!gui_data) { break; } GetWindowText((HWND) (gui_data), dp, sizeof(dp)); (void) option_str_set(poption, dp); break; case COT_FONT: /* FIXME: */ break; } } client_options_iterate_end; DestroyWindow(dlg); } break; case WM_CLOSE: DestroyWindow(dlg); break; default: return DefWindowProc(dlg,message,wParam,lParam); }
/**************************************************************************** Return selected colors (for highlighting chat). ****************************************************************************/ struct ft_color option_dialog::get_color(struct option *poption) { QPalette pal; QColor col1, col2; QWidget *w; QPushButton* but; w = reinterpret_cast<QPushButton *>(option_get_gui_data(poption)); but = w->findChild<QPushButton *>("text_color"); pal = but->palette(); col1 = pal.color(QPalette::Button); but = w->findChild<QPushButton *>("text_background"); pal = but->palette(); col2 = pal.color(QPalette::Button); return ft_color(col1.name().toUtf8().data(), col2.name().toUtf8().data()); }