END_HANDLER BUTTON_CLICKED(setDefaultExportOptions) { nsoption_set_int(margin_top, DEFAULT_MARGIN_TOP_MM); nsoption_set_int(margin_bottom, DEFAULT_MARGIN_BOTTOM_MM); nsoption_set_int(margin_left, DEFAULT_MARGIN_LEFT_MM); nsoption_set_int(margin_right, DEFAULT_MARGIN_RIGHT_MM); nsoption_set_int(export_scale, DEFAULT_EXPORT_SCALE * 100); nsoption_set_bool(suppress_images, false); nsoption_set_bool(remove_backgrounds, false); nsoption_set_bool(enable_loosening, true); nsoption_set_bool(enable_PDF_compression, true); nsoption_set_bool(enable_PDF_password, false); SET_SPIN(spinMarginTop, nsoption_int(margin_top)); SET_SPIN(spinMarginBottom, nsoption_int(margin_bottom)); SET_SPIN(spinMarginLeft, nsoption_int(margin_left)); SET_SPIN(spinMarginRight, nsoption_int(margin_right)); SET_SPIN(spinExportScale, nsoption_int(export_scale)); SET_CHECK(checkSuppressImages, nsoption_bool(suppress_images)); SET_CHECK(checkRemoveBackgrounds, nsoption_bool(remove_backgrounds)); SET_CHECK(checkCompressPDF, nsoption_bool(enable_PDF_compression)); SET_CHECK(checkPasswordPDF, nsoption_bool(enable_PDF_password)); SET_CHECK(checkFitPage, nsoption_bool(enable_loosening)); }
// // Option window // void OptionTabWindow::init(HWND w) { struct HpcMenuInterface::HpcMenuPreferences &pref = HPC_PREFERENCE; _window = w; TabWindow::init(_window); _spin_edit = GetDlgItem(_window, IDC_OPT_AUTO_INPUT); _spin = CreateUpDownControl(WS_CHILD | WS_BORDER | WS_VISIBLE | UDS_SETBUDDYINT | UDS_ALIGNRIGHT, 80, 0, 50, 50, _window, IDC_OPT_AUTO_UPDOWN, _app._instance, _spin_edit, 60, 1, 30); BOOL onoff = pref.auto_boot ? TRUE : FALSE; EnableWindow(_spin_edit, onoff); EnableWindow(_spin, onoff); SET_CHECK(AUTO, pref.auto_boot); if (pref.auto_boot) { TCHAR tmp[32]; wsprintf(tmp, TEXT("%d"), pref.auto_boot); Edit_SetText(_spin_edit, tmp); } SET_CHECK(VIDEO, pref.reverse_video); SET_CHECK(PAUSE, pref.pause_before_boot); SET_CHECK(DEBUG, pref.load_debug_info); SET_CHECK(SAFETY, pref.safety_message); Edit_SetText(GetDlgItem(w, IDC_OPT_EXTKOPT), pref.boot_extra); }
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { BOOL fError; switch(message) { case WM_INITDIALOG: SET_CHECK( (g_alpha == DIALOG_ALPHA_TRANSPARENCY ? IN_Alpha_Radio_Transparent : g_alpha == DIALOG_ALPHA_CHANNEL ? IN_Alpha_Radio_Channel : IN_Alpha_Radio_Transparent), TRUE); SET_CHECK(IN_Multiply_Checkbox, g_mult); SET_CHECK(IN_Auto_Checkbox, g_autoD); ENABLE_ITEM(IN_Multiply_Checkbox, (g_alpha == DIALOG_ALPHA_CHANNEL)); return TRUE; case WM_NOTIFY: return FALSE; case WM_COMMAND: g_alpha = GET_CHECK(IN_Alpha_Radio_Transparent) ? DIALOG_ALPHA_TRANSPARENCY : GET_CHECK(IN_Alpha_Radio_Channel) ? DIALOG_ALPHA_CHANNEL : DIALOG_ALPHA_TRANSPARENCY; g_mult = GET_CHECK(IN_Multiply_Checkbox); g_autoD = GET_CHECK(IN_Auto_Checkbox); g_item_clicked = LOWORD(wParam); switch(g_item_clicked) { case IN_OK: case IN_Cancel: EndDialog(hwndDlg, 0); return TRUE; case IN_Set_Defaults_Button: WriteAlphaPrefs(); WriteAutoPrefs(); return TRUE; case IN_Alpha_Radio_Transparent: case IN_Alpha_Radio_Channel: ENABLE_ITEM(IN_Multiply_Checkbox, (g_alpha == DIALOG_ALPHA_CHANNEL)); return TRUE; } } return FALSE; }
void download(GtkWidget *dialog,TDEINT_PARAM *param) { SET_SPIN(spinbuttonmthreshL,mthreshL); SET_SPIN(spinbuttonmthreshC,mthreshC); SET_SPIN(spinbuttoncthresh,cthresh); SET_SPIN(spinbuttonMI,MI); SET_SPIN(spinbuttonAP,AP); SET_MENU(comboboxOrder,order); SET_MENU(comboboxInterpolate,field); SET_MENU(comboboxType,type); SET_MENU(comboboxMnt,mtnmode); SET_MENU(combobox5,link); SET_MENU(combobox6,APType); SET_CHECK(checkbuttonChroma,chroma); SET_CHECK(checkbuttonTryweave,tryWeave); SET_CHECK(checkbuttonDenoise,denoise); SET_CHECK(checkbuttonSharp,sharp); SET_CHECK(checkbuttonFull,full); }
BOOL CALLBACK ConfigProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent; wchar_t temp[384]={0}; switch(uMsg) { case WM_PAINT: return FALSE; case WM_INITDIALOG: { SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_RESETCONTENT,0,0 ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_ADDSTRING,0,(LPARAM) L"0 - Nearest (fastest/bad quality)" ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_ADDSTRING,0,(LPARAM) L"1 - Linear (simple/okay sound)" ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_ADDSTRING,0,(LPARAM) L"2 - Cubic (artificial highs)" ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_ADDSTRING,0,(LPARAM) L"3 - Hermite (better highs)" ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_ADDSTRING,0,(LPARAM) L"4 - Catmull-Rom (PS2-like/slow)" ); SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_SETCURSEL,Interpolation,0 ); SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_RESETCONTENT,0,0 ); SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_ADDSTRING,0,(LPARAM) L"TimeStretch (Recommended)" ); SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_ADDSTRING,0,(LPARAM) L"Async Mix (Breaks some games!)" ); SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_ADDSTRING,0,(LPARAM) L"None (Audio can skip.)" ); SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_SETCURSEL,SynchMode,0 ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_RESETCONTENT,0,0 ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_ADDSTRING,0,(LPARAM) L"Stereo (none, default)" ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_ADDSTRING,0,(LPARAM) L"Quadrafonic" ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_ADDSTRING,0,(LPARAM) L"Surround 5.1" ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_ADDSTRING,0,(LPARAM) L"Surround 7.1" ); SendDialogMsg( hWnd, IDC_SPEAKERS, CB_SETCURSEL,numSpeakers,0 ); SendDialogMsg( hWnd, IDC_OUTPUT, CB_RESETCONTENT,0,0 ); int modidx = 0; while( mods[modidx] != NULL ) { swprintf_s( temp, 72, L"%d - %s", modidx, mods[modidx]->GetLongName() ); SendDialogMsg( hWnd, IDC_OUTPUT, CB_ADDSTRING,0,(LPARAM)temp ); ++modidx; } SendDialogMsg( hWnd, IDC_OUTPUT, CB_SETCURSEL, OutputModule, 0 ); double minlat = (SynchMode == 0)?LATENCY_MIN_TS:LATENCY_MIN; int minexp = (int)(pow( minlat+1, 1.0/3.0 ) * 128.0); int maxexp = (int)(pow( (double)LATENCY_MAX+2, 1.0/3.0 ) * 128.0); INIT_SLIDER( IDC_LATENCY_SLIDER, minexp, maxexp, 200, 42, 1 ); SendDialogMsg( hWnd, IDC_LATENCY_SLIDER, TBM_SETPOS, TRUE, (int)((pow( (double)SndOutLatencyMS, 1.0/3.0 ) * 128.0) + 1) ); swprintf_s(temp,L"%d ms (avg)",SndOutLatencyMS); SetWindowText(GetDlgItem(hWnd,IDC_LATENCY_LABEL),temp); int configvol = (int)(FinalVolume * 100 + 0.5f); INIT_SLIDER( IDC_VOLUME_SLIDER, 0, 100, 10, 42, 1 ); SendDialogMsg( hWnd, IDC_VOLUME_SLIDER, TBM_SETPOS, TRUE, configvol ); swprintf_s(temp,L"%d%%",configvol); SetWindowText(GetDlgItem(hWnd,IDC_VOLUME_LABEL),temp); EnableWindow( GetDlgItem( hWnd, IDC_OPEN_CONFIG_SOUNDTOUCH ), (SynchMode == 0) ); EnableWindow( GetDlgItem( hWnd, IDC_OPEN_CONFIG_DEBUG ), DebugEnabled ); SET_CHECK(IDC_EFFECTS_DISABLE, EffectsDisabled); SET_CHECK(IDC_DEALIASFILTER, postprocess_filter_dealias); SET_CHECK(IDC_DEBUG_ENABLE, DebugEnabled); SET_CHECK(IDC_DSP_ENABLE, dspPluginEnabled); } break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDOK: { double res = ((int)SendDialogMsg( hWnd, IDC_LATENCY_SLIDER, TBM_GETPOS, 0, 0 )) / 128.0; SndOutLatencyMS = (int)pow( res, 3.0 ); Clampify( SndOutLatencyMS, LATENCY_MIN, LATENCY_MAX ); FinalVolume = (float)(SendDialogMsg( hWnd, IDC_VOLUME_SLIDER, TBM_GETPOS, 0, 0 )) / 100; Interpolation = (int)SendDialogMsg( hWnd, IDC_INTERPOLATE, CB_GETCURSEL,0,0 ); OutputModule = (int)SendDialogMsg( hWnd, IDC_OUTPUT, CB_GETCURSEL,0,0 ); SynchMode = (int)SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_GETCURSEL,0,0 ); numSpeakers = (int)SendDialogMsg( hWnd, IDC_SPEAKERS, CB_GETCURSEL,0,0 ); WriteSettings(); EndDialog(hWnd,0); } break; case IDCANCEL: EndDialog(hWnd,0); break; case IDC_OUTCONF: { const int module = (int)SendMessage(GetDlgItem(hWnd,IDC_OUTPUT),CB_GETCURSEL,0,0); if( mods[module] == NULL ) break; mods[module]->Configure((uptr)hWnd); } break; case IDC_OPEN_CONFIG_DEBUG: { // Quick Hack -- DebugEnabled is re-loaded with the DebugConfig's API, // so we need to override it here: bool dbgtmp = DebugEnabled; DebugConfig::OpenDialog(); DebugEnabled = dbgtmp; } break; case IDC_SYNCHMODE: { if(wmEvent == CBN_SELCHANGE) { int sMode = (int)SendDialogMsg( hWnd, IDC_SYNCHMODE, CB_GETCURSEL,0,0 ); double minlat = (sMode == 0)?LATENCY_MIN_TS:LATENCY_MIN; int minexp = (int)(pow( minlat+1, 1.0/3.0 ) * 128.0); int maxexp = (int)(pow( (double)LATENCY_MAX+2, 1.0/3.0 ) * 128.0); INIT_SLIDER( IDC_LATENCY_SLIDER, minexp, maxexp, 200, 42, 1 ); int curpos = (int)SendMessage(GetDlgItem( hWnd, IDC_LATENCY_SLIDER ),TBM_GETPOS,0,0); double res = pow( curpos / 128.0, 3.0 ); curpos = (int)res; swprintf_s(temp,L"%d ms (avg)",curpos); SetDlgItemText(hWnd,IDC_LATENCY_LABEL,temp); } } break; case IDC_OPEN_CONFIG_SOUNDTOUCH: SoundtouchCfg::OpenDialog( hWnd ); break; HANDLE_CHECK(IDC_EFFECTS_DISABLE,EffectsDisabled); HANDLE_CHECK(IDC_DEALIASFILTER,postprocess_filter_dealias); HANDLE_CHECK(IDC_DSP_ENABLE,dspPluginEnabled); // Fixme : Eh, how to update this based on drop list selections? :p // IDC_TS_ENABLE already deleted! //HANDLE_CHECKNB(IDC_TS_ENABLE,timeStretchEnabled); // EnableWindow( GetDlgItem( hWnd, IDC_OPEN_CONFIG_SOUNDTOUCH ), timeStretchEnabled ); break; HANDLE_CHECKNB(IDC_DEBUG_ENABLE,DebugEnabled); DebugConfig::EnableControls( hWnd ); EnableWindow( GetDlgItem( hWnd, IDC_OPEN_CONFIG_DEBUG ), DebugEnabled ); break; default: return FALSE; } break; case WM_HSCROLL: { wmEvent = LOWORD(wParam); HWND hwndDlg = (HWND)lParam; // TB_THUMBTRACK passes the curpos in wParam. Other messages // have to use TBM_GETPOS, so they will override this assignment (see below) int curpos = HIWORD( wParam ); switch( wmEvent ) { //case TB_ENDTRACK: //case TB_THUMBPOSITION: case TB_LINEUP: case TB_LINEDOWN: case TB_PAGEUP: case TB_PAGEDOWN: curpos = (int)SendMessage(hwndDlg,TBM_GETPOS,0,0); case TB_THUMBTRACK: Clampify( curpos, (int)SendMessage(hwndDlg,TBM_GETRANGEMIN,0,0), (int)SendMessage(hwndDlg,TBM_GETRANGEMAX,0,0) ); SendMessage((HWND)lParam,TBM_SETPOS,TRUE,curpos); if( hwndDlg == GetDlgItem( hWnd, IDC_LATENCY_SLIDER ) ) { double res = pow( curpos / 128.0, 3.0 ); curpos = (int)res; swprintf_s(temp,L"%d ms (avg)",curpos); SetDlgItemText(hWnd,IDC_LATENCY_LABEL,temp); } if( hwndDlg == GetDlgItem( hWnd, IDC_VOLUME_SLIDER ) ) { swprintf_s(temp,L"%d%%",curpos); SetDlgItemText(hWnd,IDC_VOLUME_LABEL,temp); } break; default: return FALSE; } } break; default: return FALSE; } return TRUE; }
void nsgtk_options_load(void) { GtkBox *box; const char *default_accept_language = "en"; const char *default_homepage_url = ""; const char *default_http_proxy_host = ""; const char *default_http_proxy_auth_user = ""; const char *default_http_proxy_auth_pass = ""; int combo_row_count = 0; int active_language = 0; int proxytype = 0; FILE *fp; char buf[50]; /* get widget text */ if (nsoption_charp(accept_language) != NULL) { default_accept_language = nsoption_charp(accept_language); } if (nsoption_charp(homepage_url) != NULL) { default_homepage_url = nsoption_charp(homepage_url); } if (nsoption_charp(http_proxy_host) != NULL) { default_http_proxy_host = nsoption_charp(http_proxy_host); } if (nsoption_charp(http_proxy_auth_user) != NULL) { default_http_proxy_auth_user = nsoption_charp(http_proxy_auth_user); } if (nsoption_charp(http_proxy_auth_pass) != NULL) { default_http_proxy_auth_pass = nsoption_charp(http_proxy_auth_pass); } if (nsoption_bool(http_proxy) == true) { proxytype = nsoption_int(http_proxy_auth) + 1; } /* Create combobox */ box = GTK_BOX(gtk_builder_get_object(gladeFile, "combolanguagevbox")); comboLanguage = nsgtk_combo_box_text_new(); /* Populate combobox from languages file */ if ((languages_file_location != NULL) && ((fp = fopen(languages_file_location, "r")) != NULL)) { LOG(("Used %s for languages", languages_file_location)); while (fgets(buf, sizeof(buf), fp)) { /* Ignore blank lines */ if (buf[0] == '\0') continue; /* Remove trailing \n */ buf[strlen(buf) - 1] = '\0'; nsgtk_combo_box_text_append_text(comboLanguage, buf); if (strcmp(buf, default_accept_language) == 0) active_language = combo_row_count; combo_row_count++; } fclose(fp); } else { LOG(("Failed opening languages file")); warn_user("FileError", languages_file_location); nsgtk_combo_box_text_append_text(comboLanguage, "en"); } gtk_combo_box_set_active(GTK_COMBO_BOX(comboLanguage), active_language); /** \todo localisation */ gtk_widget_set_tooltip_text(GTK_WIDGET(comboLanguage), "set preferred language for web pages"); gtk_box_pack_start(box, comboLanguage, FALSE, FALSE, 0); gtk_widget_show(comboLanguage); nsgtk_options_theme_combo(); SET_ENTRY(entryHomePageURL, default_homepage_url); SET_BUTTON(setCurrentPage); SET_BUTTON(setDefaultPage); SET_CHECK(checkHideAdverts, nsoption_bool(block_ads)); SET_CHECK(checkDisablePopups, nsoption_bool(disable_popups)); SET_CHECK(checkDisablePlugins, nsoption_bool(disable_plugins)); SET_SPIN(spinHistoryAge, nsoption_int(history_age)); SET_CHECK(checkHoverURLs, nsoption_bool(hover_urls)); SET_CHECK(checkDisplayRecentURLs, nsoption_bool(url_suggestion)); SET_CHECK(checkSendReferer, nsoption_bool(send_referer)); SET_CHECK(checkShowSingleTab, nsoption_bool(show_single_tab)); SET_COMBO(comboProxyType, proxytype); SET_ENTRY(entryProxyHost, default_http_proxy_host); gtk_widget_set_sensitive(entryProxyHost, proxytype != 0); snprintf(buf, sizeof(buf), "%d", nsoption_int(http_proxy_port)); SET_ENTRY(entryProxyPort, buf); gtk_widget_set_sensitive(entryProxyPort, proxytype != 0); SET_ENTRY(entryProxyUser, default_http_proxy_auth_user); gtk_widget_set_sensitive(entryProxyUser, proxytype != 0); SET_ENTRY(entryProxyPassword, default_http_proxy_auth_pass); gtk_widget_set_sensitive(entryProxyPassword, proxytype != 0); SET_SPIN(spinMaxFetchers, nsoption_int(max_fetchers)); SET_SPIN(spinFetchesPerHost, nsoption_int(max_fetchers_per_host)); SET_SPIN(spinCachedConnections, nsoption_int(max_cached_fetch_handles)); SET_CHECK(checkResampleImages, nsoption_bool(render_resample)); SET_SPIN(spinAnimationSpeed, nsoption_int(minimum_gif_delay) / 100.0); SET_CHECK(checkDisableAnimations, !nsoption_bool(animate_images)); SET_FONT(fontSansSerif, nsoption_charp(font_sans)); SET_FONT(fontSerif, nsoption_charp(font_serif)); SET_FONT(fontMonospace, nsoption_charp(font_mono)); SET_FONT(fontCursive, nsoption_charp(font_cursive)); SET_FONT(fontFantasy, nsoption_charp(font_fantasy)); SET_COMBO(comboDefault, nsoption_int(font_default)); SET_SPIN(spinDefaultSize, nsoption_int(font_size) / 10); SET_SPIN(spinMinimumSize, nsoption_bool(font_min_size) / 10); SET_BUTTON(fontPreview); SET_COMBO(comboButtonType, nsoption_int(button_type) -1); SET_COMBO(comboTabPosition, nsoption_int(position_tab)); SET_SPIN(spinMemoryCacheSize, nsoption_int(memory_cache_size) >> 20); SET_SPIN(spinDiscCacheAge, nsoption_int(disc_cache_age)); SET_CHECK(checkClearDownloads, nsoption_bool(downloads_clear)); SET_CHECK(checkRequestOverwrite, nsoption_bool(request_overwrite)); SET_FILE_CHOOSER(fileChooserDownloads, nsoption_charp(downloads_directory)); SET_CHECK(checkFocusNew, nsoption_bool(focus_new)); SET_CHECK(checkNewBlank, nsoption_bool(new_blank)); SET_CHECK(checkUrlSearch, nsoption_bool(search_url_bar)); SET_COMBO(comboSearch, nsoption_int(search_provider)); SET_BUTTON(buttonaddtheme); SET_CHECK(sourceButtonTab, nsoption_bool(source_tab)); SET_SPIN(spinMarginTop, nsoption_int(margin_top)); SET_SPIN(spinMarginBottom, nsoption_int(margin_bottom)); SET_SPIN(spinMarginLeft, nsoption_int(margin_left)); SET_SPIN(spinMarginRight, nsoption_int(margin_right)); SET_SPIN(spinExportScale, nsoption_int(export_scale)); SET_CHECK(checkSuppressImages, nsoption_bool(suppress_images)); SET_CHECK(checkRemoveBackgrounds, nsoption_bool(remove_backgrounds)); SET_CHECK(checkFitPage, nsoption_bool(enable_loosening)); SET_CHECK(checkCompressPDF, nsoption_bool(enable_PDF_compression)); SET_CHECK(checkPasswordPDF, nsoption_bool(enable_PDF_password)); SET_BUTTON(setDefaultExportOptions); }
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { BOOL fError; switch(message) { case WM_INITDIALOG: SET_CHECK(OUT_Lossless_Check, g_lossless); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETRANGEMIN, (WPARAM)(BOOL)FALSE, (LPARAM)1); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETRANGEMAX, (WPARAM)(BOOL)FALSE, (LPARAM)100); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETPOS, (WPARAM)(BOOL)TRUE, (LPARAM)g_quality); ADD_MENU_ITEM(OUT_BitDepth_Menu, 0, "Auto", DIALOG_BITDEPTH_AUTO, (g_bit_depth == DIALOG_BITDEPTH_AUTO)); ADD_MENU_ITEM(OUT_BitDepth_Menu, 1, "8-bit", DIALOG_BITDEPTH_8, (g_bit_depth == DIALOG_BITDEPTH_8)); ADD_MENU_ITEM(OUT_BitDepth_Menu, 2, "16-bit", DIALOG_BITDEPTH_16, (g_bit_depth == DIALOG_BITDEPTH_16)); ADD_MENU_ITEM(OUT_BitDepth_Menu, 3, "16-bit float", DIALOG_BITDEPTH_16_FLOAT, (g_bit_depth == DIALOG_BITDEPTH_16_FLOAT)); ADD_MENU_ITEM(OUT_BitDepth_Menu, 4, "32-bit float", DIALOG_BITDEPTH_32_FLOAT, (g_bit_depth == DIALOG_BITDEPTH_32_FLOAT)); ADD_MENU_ITEM(OUT_Codec_Menu, 0, "Auto", DIALOG_CODEC_AUTO, (g_codec == DIALOG_CODEC_AUTO)); ADD_MENU_ITEM(OUT_Codec_Menu, 1, "Dirac", DIALOG_CODEC_DIRAC, (g_codec == DIALOG_CODEC_DIRAC)); ADD_MENU_ITEM(OUT_Codec_Menu, 2, "OpenEXR", DIALOG_CODEC_OPENEXR, (g_codec == DIALOG_CODEC_OPENEXR)); ADD_MENU_ITEM(OUT_Codec_Menu, 3, "PNG", DIALOG_CODEC_PNG, (g_codec == DIALOG_CODEC_PNG)); ADD_MENU_ITEM(OUT_Codec_Menu, 4, "Uncompressed", DIALOG_CODEC_UNCOMPRESSED, (g_codec == DIALOG_CODEC_UNCOMPRESSED)); TrackSlider(hwndDlg); TrackLossless(hwndDlg); return TRUE; case WM_NOTIFY: switch(LOWORD(wParam)) { case OUT_Quality_Slider: TrackSlider(hwndDlg); return TRUE; } return FALSE; case WM_COMMAND: g_item_clicked = LOWORD(wParam); switch(g_item_clicked) { case OUT_OK: case OUT_Cancel: // do the same thing, but g_item_clicked will be different g_lossless = GET_CHECK(OUT_Lossless_Check); g_quality = SendMessage(GET_ITEM(OUT_Quality_Slider), TBM_GETPOS, (WPARAM)0, (LPARAM)0 ); g_bit_depth = (DialogBitDepth)GET_MENU_VALUE(OUT_BitDepth_Menu); g_codec = (DialogCodec)GET_MENU_VALUE(OUT_Codec_Menu); EndDialog(hwndDlg, 0); return TRUE; case OUT_Lossless_Check: TrackLossless(hwndDlg); return TRUE; } } return FALSE; }
void nsgtk_options_load(void) { GtkBox *box; char languagefile[strlen(res_dir_location) + SLEN("languages") + 1]; const char *default_accept_language = option_accept_language ? option_accept_language : "en"; int combo_row_count = 0; int active_language = 0; int proxytype = 0; FILE *fp; char buf[50]; /* Create combobox */ box = GTK_BOX(glade_xml_get_widget(gladeFile, "combolanguagevbox")); comboLanguage = gtk_combo_box_new_text(); sprintf(languagefile, "%slanguages", res_dir_location); /* Populate combobox from languages file */ fp = fopen((const char *) languagefile, "r"); if (fp == NULL) { LOG(("Failed opening languages file")); warn_user("FileError", (const char *) languagefile); return; } while (fgets(buf, sizeof(buf), fp)) { /* Ignore blank lines */ if (buf[0] == '\0') continue; /* Remove trailing \n */ buf[strlen(buf) - 1] = '\0'; gtk_combo_box_append_text(GTK_COMBO_BOX(comboLanguage), buf); if (strcmp(buf, default_accept_language) == 0) active_language = combo_row_count; combo_row_count++; } fclose(fp); gtk_combo_box_set_active(GTK_COMBO_BOX(comboLanguage), active_language); /** \todo localisation */ gtk_widget_set_tooltip_text(GTK_WIDGET(comboLanguage), "set preferred language for web pages"); gtk_box_pack_start(box, comboLanguage, FALSE, FALSE, 0); gtk_widget_show(comboLanguage); nsgtk_options_theme_combo(); SET_ENTRY(entryHomePageURL, option_homepage_url ? option_homepage_url : ""); SET_BUTTON(setCurrentPage); SET_BUTTON(setDefaultPage); SET_CHECK(checkHideAdverts, option_block_ads); SET_CHECK(checkDisablePopups, option_disable_popups); SET_CHECK(checkDisablePlugins, option_disable_plugins); SET_SPIN(spinHistoryAge, option_history_age); SET_CHECK(checkHoverURLs, option_hover_urls); SET_CHECK(checkDisplayRecentURLs, option_url_suggestion); SET_CHECK(checkSendReferer, option_send_referer); SET_CHECK(checkShowSingleTab, option_show_single_tab); if (option_http_proxy == false) proxytype = 0; else proxytype = option_http_proxy_auth + 1; SET_COMBO(comboProxyType, proxytype); SET_ENTRY(entryProxyHost, option_http_proxy_host ? option_http_proxy_host : ""); gtk_widget_set_sensitive(entryProxyHost, proxytype != 0); snprintf(buf, sizeof(buf), "%d", option_http_proxy_port); SET_ENTRY(entryProxyPort, buf); gtk_widget_set_sensitive(entryProxyPort, proxytype != 0); SET_ENTRY(entryProxyUser, option_http_proxy_auth_user ? option_http_proxy_auth_user : ""); gtk_widget_set_sensitive(entryProxyUser, proxytype != 0); SET_ENTRY(entryProxyPassword, option_http_proxy_auth_pass ? option_http_proxy_auth_pass : ""); gtk_widget_set_sensitive(entryProxyPassword, proxytype != 0); SET_SPIN(spinMaxFetchers, option_max_fetchers); SET_SPIN(spinFetchesPerHost, option_max_fetchers_per_host); SET_SPIN(spinCachedConnections, option_max_cached_fetch_handles); SET_CHECK(checkResampleImages, option_render_resample); SET_SPIN(spinAnimationSpeed, option_minimum_gif_delay / 100.0); SET_CHECK(checkDisableAnimations, !option_animate_images); SET_FONT(fontSansSerif, option_font_sans); SET_FONT(fontSerif, option_font_serif); SET_FONT(fontMonospace, option_font_mono); SET_FONT(fontCursive, option_font_cursive); SET_FONT(fontFantasy, option_font_fantasy); SET_COMBO(comboDefault, option_font_default); SET_SPIN(spinDefaultSize, option_font_size / 10); SET_SPIN(spinMinimumSize, option_font_min_size / 10); SET_BUTTON(fontPreview); SET_COMBO(comboButtonType, option_button_type -1); SET_SPIN(spinMemoryCacheSize, option_memory_cache_size >> 20); SET_SPIN(spinDiscCacheAge, option_disc_cache_age); SET_CHECK(checkClearDownloads, option_downloads_clear); SET_CHECK(checkRequestOverwrite, option_request_overwrite); SET_FILE_CHOOSER(fileChooserDownloads, option_downloads_directory); SET_CHECK(checkFocusNew, option_focus_new); SET_CHECK(checkNewBlank, option_new_blank); SET_CHECK(checkUrlSearch, option_search_url_bar); SET_COMBO(comboSearch, option_search_provider); SET_BUTTON(buttonaddtheme); SET_CHECK(sourceButtonTab, option_source_tab); SET_SPIN(spinMarginTop, option_margin_top); SET_SPIN(spinMarginBottom, option_margin_bottom); SET_SPIN(spinMarginLeft, option_margin_left); SET_SPIN(spinMarginRight, option_margin_right); SET_SPIN(spinExportScale, option_export_scale); SET_CHECK(checkSuppressImages, option_suppress_images); SET_CHECK(checkRemoveBackgrounds, option_remove_backgrounds); SET_CHECK(checkFitPage, option_enable_loosening); SET_CHECK(checkCompressPDF, option_enable_PDF_compression); SET_CHECK(checkPasswordPDF, option_enable_PDF_password); SET_BUTTON(setDefaultExportOptions); }
bool _ConfigProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent; int tSel = 0; switch(uMsg) { case WM_INITDIALOG: { wchar_t temp[128]; char temp2[192]; sprintf_s( temp2, "%S", m_Device.c_str() ); haveGuid = ! FAILED(GUIDFromString(temp2,&DevGuid)); SendMessage(GetDlgItem(hWnd,IDC_DS_DEVICE),CB_RESETCONTENT,0,0); ndevs=0; DirectSoundEnumerate( DSEnumCallback, NULL ); tSel=-1; for(int i=0;i<ndevs;i++) { SendMessage(GetDlgItem(hWnd,IDC_DS_DEVICE),CB_ADDSTRING,0,(LPARAM)m_devices[i].name.c_str()); if(haveGuid && IsEqualGUID(m_devices[i].guid,DevGuid)) tSel = i; } if(tSel>=0) SendMessage(GetDlgItem(hWnd,IDC_DS_DEVICE),CB_SETCURSEL,tSel,0); INIT_SLIDER( IDC_BUFFERS_SLIDER, 2, MAX_BUFFER_COUNT, 2, 1, 1 ); SendMessage(GetDlgItem(hWnd,IDC_BUFFERS_SLIDER),TBM_SETPOS,TRUE,m_NumBuffers); swprintf_s(temp, L"%d (%d ms latency)",m_NumBuffers, 1000 / (96000 / (m_NumBuffers * BufferSize))); SetWindowText(GetDlgItem(hWnd,IDC_LATENCY_LABEL),temp); SET_CHECK( IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus ); SET_CHECK( IDC_USE_HARDWARE, m_UseHardware ); } break; case WM_COMMAND: { wchar_t temp[128]; wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDOK: { int i = (int)SendMessage(GetDlgItem(hWnd,IDC_DS_DEVICE),CB_GETCURSEL,0,0); if(!m_devices[i].hasGuid) { m_Device[0] = 0; // clear device name to "" } else { swprintf_s(temp, L"{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}", m_devices[i].guid.Data1, m_devices[i].guid.Data2, m_devices[i].guid.Data3, m_devices[i].guid.Data4[0], m_devices[i].guid.Data4[1], m_devices[i].guid.Data4[2], m_devices[i].guid.Data4[3], m_devices[i].guid.Data4[4], m_devices[i].guid.Data4[5], m_devices[i].guid.Data4[6], m_devices[i].guid.Data4[7] ); m_Device = temp; } m_NumBuffers = (int)SendMessage( GetDlgItem( hWnd, IDC_BUFFERS_SLIDER ), TBM_GETPOS, 0, 0 ); if( m_NumBuffers < 2 ) m_NumBuffers = 2; if( m_NumBuffers > MAX_BUFFER_COUNT ) m_NumBuffers = MAX_BUFFER_COUNT; EndDialog(hWnd,0); } break; case IDCANCEL: EndDialog(hWnd,0); break; HANDLE_CHECK( IDC_GLOBALFOCUS_DISABLE, m_DisableGlobalFocus ); HANDLE_CHECK( IDC_USE_HARDWARE, m_UseHardware ); default: return FALSE; } } break; case WM_HSCROLL: { wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); switch(wmId) { //case TB_ENDTRACK: //case TB_THUMBPOSITION: case TB_LINEUP: case TB_LINEDOWN: case TB_PAGEUP: case TB_PAGEDOWN: wmEvent = (int)SendMessage((HWND)lParam,TBM_GETPOS,0,0); case TB_THUMBTRACK: { wchar_t temp[128]; if( wmEvent < 2 ) wmEvent = 2; if( wmEvent > MAX_BUFFER_COUNT ) wmEvent = MAX_BUFFER_COUNT; SendMessage((HWND)lParam,TBM_SETPOS,TRUE,wmEvent); swprintf_s(temp,L"%d (%d ms latency)",wmEvent, 1000 / (96000 / (wmEvent * BufferSize))); SetWindowText(GetDlgItem(hWnd,IDC_LATENCY_LABEL),temp); break; } default: return FALSE; } } break; default: return FALSE; } return TRUE; }
static BOOL CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { int wmId,wmEvent; wchar_t temp[384]={0}; switch(uMsg) { case WM_PAINT: return FALSE; case WM_INITDIALOG: { EnableControls( hWnd ); // Debugging / Logging Flags: SET_CHECK(IDC_DEBUG, DebugEnabled); SET_CHECK(IDC_MSGSHOW, _MsgToConsole); SET_CHECK(IDC_MSGKEY, _MsgKeyOnOff); SET_CHECK(IDC_MSGVOICE,_MsgVoiceOff); SET_CHECK(IDC_MSGDMA, _MsgDMA); SET_CHECK(IDC_MSGADMA, _MsgAutoDMA); SET_CHECK(IDC_DBG_OVERRUNS, _MsgOverruns ); SET_CHECK(IDC_DBG_CACHE, _MsgCache ); SET_CHECK(IDC_LOGREGS, _AccessLog); SET_CHECK(IDC_LOGDMA, _DMALog); SET_CHECK(IDC_LOGWAVE, _WaveLog); SET_CHECK(IDC_DUMPCORE,_CoresDump); SET_CHECK(IDC_DUMPMEM, _MemDump); SET_CHECK(IDC_DUMPREGS,_RegDump); ShowWindow( GetDlgItem( hWnd, IDC_MSG_PUBLIC_BUILD ), !IsDevBuild ); } break; case WM_COMMAND: wmId = LOWORD(wParam); wmEvent = HIWORD(wParam); // Parse the menu selections: switch (wmId) { case IDOK: WriteSettings(); EndDialog(hWnd,0); break; case IDCANCEL: EndDialog(hWnd,0); break; HANDLE_CHECKNB(IDC_MSGSHOW,_MsgToConsole); EnableMessages( hWnd ); break; HANDLE_CHECK(IDC_MSGKEY,_MsgKeyOnOff); HANDLE_CHECK(IDC_MSGVOICE,_MsgVoiceOff); HANDLE_CHECKNB(IDC_MSGDMA,_MsgDMA); ENABLE_CONTROL(IDC_MSGADMA, MsgDMA()); break; HANDLE_CHECK(IDC_MSGADMA,_MsgAutoDMA); HANDLE_CHECK(IDC_DBG_OVERRUNS,_MsgOverruns); HANDLE_CHECK(IDC_DBG_CACHE,_MsgCache); HANDLE_CHECK(IDC_LOGREGS,_AccessLog); HANDLE_CHECK(IDC_LOGDMA, _DMALog); HANDLE_CHECK(IDC_LOGWAVE,_WaveLog); HANDLE_CHECK(IDC_DUMPCORE,_CoresDump); HANDLE_CHECK(IDC_DUMPMEM, _MemDump); HANDLE_CHECK(IDC_DUMPREGS,_RegDump); default: return FALSE; } break; default: return FALSE; } return TRUE; }
/* ** set - set resource values or print as notification, usage: "set [resource [value(s)]]", ** get help with "set help" */ int set (const char *argz) { char args[FNAMESIZE]; char *token=NULL, *subtoken=NULL, *subsubtoken=NULL; int slen=0, restidx=-1, sublen=-1, subsublen=-1; int x=0, y=0, ri=0, ret=0; memset(args, 0, sizeof(args)); strncpy(args, argz, sizeof(args)-2); /* reserve two zero bytes, we may overwrite one */ slen = parse_token(args, "\x09 ", &restidx); /* special case separately: empty line */ if (slen == 0) { if (cnf.bootup) set_usage(SHOW_CURRENT_VALUES); return (0); } args[slen] = '\0'; token = &args[0]; if (restidx > 0) { subtoken = &args[restidx]; sublen = parse_token(subtoken, "\x09 ", &restidx); subtoken[sublen] = '\0'; /* restore delimiter if required */ if (restidx > 0) { subsubtoken = &subtoken[restidx]; subsublen = strlen(subsubtoken); } } if (token[0] == '?') { if (cnf.bootup) set_usage(SHOW_USAGE); return (0); } else if (slen < 3 || token[0] == '#') { /* 1 or 2 char resource names and comments will be ignored */ return (0); } /* * test each setting one by one, (slen >= 3) now */ if (strncmp(token, "prefix", 6)==0) { SET_CHECK_B( GSTAT_PREFIX ); if (ret==0) { cnf.pref = (y==1) ? PREFIXSIZE : 0; } /* update! */ for (ri=0; ri<RINGSIZE; ri++) { if (cnf.fdata[ri].fflag & FSTAT_OPEN) update_curpos(ri); } //if (cnf.bootup) tracemsg ("prefix %d", (cnf.gstat & GSTAT_PREFIX) ? 1 : 0); } else if (strncmp(token, "tabhead", 7)==0) { SET_CHECK_B( GSTAT_TABHEAD ); if (ret==0) { cnf.head = (y==1) ? 2 : 1; } /* update! */ for (ri=0; ri<RINGSIZE; ri++) { if (cnf.fdata[ri].focus > TEXTROWS-1) cnf.fdata[ri].focus = TEXTROWS; } //if (cnf.bootup) tracemsg ("tabhead %d", (cnf.gstat & GSTAT_TABHEAD) ? 1 : 0); } else if (strncmp(token, "shadow", 6)==0) { SET_CHECK_B( GSTAT_SHADOW ); if (cnf.bootup) tracemsg ("shadow %d", (cnf.gstat & GSTAT_SHADOW) ? 1 : 0); } else if (strncmp(token, "smartindent", 5)==0) { SET_CHECK_B( GSTAT_SMARTIND ); if (cnf.bootup) tracemsg ("smartind %d", (cnf.gstat & GSTAT_SMARTIND) ? 1 : 0); } else if (strncmp(token, "move_reset", 10)==0) { SET_CHECK_B( GSTAT_MOVES ); if (cnf.bootup) tracemsg ("move_reset %d", (cnf.gstat & GSTAT_MOVES) ? 1 : 0); } else if (strncmp(token, "case_sensitive", 4)==0) { SET_CHECK_B( GSTAT_CASES ); if (cnf.bootup) tracemsg ("case_sensitive %d", (cnf.gstat & GSTAT_CASES) ? 1 : 0); } else if (strncmp(token, "autotitle", 9)==0) { SET_CHECK_B( GSTAT_AUTOTITLE ); if (cnf.bootup) tracemsg ("autotitle %d", (cnf.gstat & GSTAT_AUTOTITLE) ? 1 : 0); } else if (strncmp(token, "backup_nokeep", 13)==0) { SET_CHECK_B( GSTAT_NOKEEP ); if (cnf.bootup) tracemsg ("backup_nokeep %d", (cnf.gstat & GSTAT_NOKEEP) ? 1 : 0); } else if (strncmp(token, "close_over", 10)==0) { SET_CHECK_B( GSTAT_CLOS_OVER ); if (cnf.bootup) tracemsg ("close_over %d", (cnf.gstat & GSTAT_CLOS_OVER) ? 1 : 0); } else if (strncmp(token, "save_inode", 10)==0) { SET_CHECK_B( GSTAT_SAV_INODE ); if (cnf.bootup) tracemsg ("save_inode %d", (cnf.gstat & GSTAT_SAV_INODE) ? 1 : 0); } else if (strncmp(token, "tabsize", 4)==0) { /* decimal */ if (sublen > 0) { x = strtol(subtoken, NULL, 10); if (x < 2 || x > 16) { ret = 1; } else if (cnf.tabsize != x) { cnf.tabsize = x; if (cnf.bootup) { /* update! */ for (ri=0; ri<RINGSIZE; ri++) { if (cnf.fdata[ri].fflag & FSTAT_OPEN) update_curpos(ri); } } } } if (cnf.bootup) tracemsg ("tabsize %d", cnf.tabsize); } else if (strncmp(token, "indent", 6)==0) { if (sublen > 0) { ret = 1; x = 0; if (strncmp(subtoken, "tab", 3)==0) { cnf.gstat |= GSTAT_INDENT; x = 1; } else if (strncmp(subtoken, "space", 5)==0) { cnf.gstat &= ~GSTAT_INDENT; x = 2; } if (x) { if (subsublen > 0) { x = strtol(subsubtoken, NULL, 10); if (x > 7) { cnf.indentsize = 8; } else if (x < 2) { cnf.indentsize = 1; } else { cnf.indentsize = x; } ret = 0; } } } if (cnf.bootup) tracemsg ("indent %s %d", ((cnf.gstat & GSTAT_INDENT) ? "tab" : "space"), cnf.indentsize); } else if (strncmp(token, "tags_file", 4)==0) { SET_CHECK( cnf.tags_file ); } else if (strncmp(token, "find_opts", 9)==0) { if (sublen > 0) { subtoken[sublen] = ' '; /* overwrite zero, one multiword argument required */ sublen = strlen(subtoken); SET_CHECK( cnf.find_opts ); } else { if (cnf.bootup) tracemsg ("find_opts %s", cnf.find_opts); } } else if (!cnf.bootup && strncmp(token, "find_path", 9)==0) { SET_CHECK_X( cnf.find_path, sublen, subtoken ); } else if (strncmp(token, "make_opts", 9)==0) { if (sublen > 0) { subtoken[sublen] = ' '; /* overwrite zero, one multiword argument required */ sublen = strlen(subtoken); SET_CHECK( cnf.make_opts ); } else { if (cnf.bootup) tracemsg ("make_opts %s", cnf.make_opts); } } else if (!cnf.bootup && strncmp(token, "make_path", 9)==0) { SET_CHECK_X( cnf.make_path, sublen, subtoken ); } else if (!cnf.bootup && strncmp(token, "sh_path", 9)==0) { SET_CHECK_X( cnf.sh_path, sublen, subtoken ); } else if (!cnf.bootup && strncmp(token, "diff_path", 9)==0) { SET_CHECK_X( cnf.diff_path, sublen, subtoken ); /* vcs tool settings */ } else if (!cnf.bootup && strncmp(token, "vcstool", 7)==0) { if (sublen > 0) { ret = 1; for(x=0; x < 10; x++) { y = strlen(cnf.vcs_tool[x]); if (y==0 || !strncmp(subtoken, cnf.vcs_tool[x], (size_t)y)) { break; } } if (x < 10 && subsublen > 0) { y = sizeof(cnf.vcs_tool[x]); strncpy(cnf.vcs_tool[x], subtoken, (size_t)y); cnf.vcs_tool[x][y-1] = '\0'; ret = 0; SET_CHECK_X( cnf.vcs_path[x], subsublen, subsubtoken ); if (ret != 0) { cnf.vcs_tool[x][0] = '\0'; cnf.vcs_path[x][0] = '\0'; } } } } /* terminal color settings, color palette string parser -- shared prefix "palette" */ else if (!cnf.bootup && strncmp(token, "palette", 7)==0) { if (sublen > 0) { if ((subtoken[x] >= '0') && (subtoken[x] <= '9')) { x = strtol(subtoken, NULL, 0); if (x >= 0 && x < cnf.palette_count) cnf.palette = x; } else { /* pass input string to parser */ subtoken[sublen] = ' '; /* overwrite zero, one multiword argument required */ ret = color_palette_parser(subtoken); } } } /* lsdir sort settings */ else if (!strncmp(token, "sort", 4) || !strncmp(token, "lsdirsort", 9)) { if (sublen > 0) { x = strtol(subtoken, NULL, 0); if (x >= 0 && x <= 2) { if (x != cnf.lsdirsort) { cnf.lsdirsort = x; } } } if (cnf.bootup) tracemsg ("lsdirsort %d", cnf.lsdirsort); } /* syslog log levels by module */ else if (strncmp(token, "log", 3)==0) { int size2=0; char mystring[100]; size2 = sizeof(cnf.log) / sizeof(cnf.log[0]); if (sublen > 0) { subtoken[sublen] = ' '; /* overwrite zero, one multiword argument required */ sublen = strlen(subtoken); for(x=0; x < size2; x++) { cnf.log[x] = 0; } for(x=0,y=0; subtoken[x] != '\0' && y < size2; x++) { /* skip not-a-number */ if ((subtoken[x] >= '0') && (subtoken[x] <= '7')) { cnf.log[y] = (subtoken[x] - '0'); y++; } } } if (cnf.bootup && size2 > 11) { snprintf(mystring, sizeof(mystring), "MAIN%d FH%d CMD%d HIST%d REPL%d TAGS%d SELE%d FILT%d PIPE%d PD%d REC%d UPD%d", cnf.log[0],cnf.log[1],cnf.log[2],cnf.log[3],cnf.log[4],cnf.log[5], cnf.log[6],cnf.log[7],cnf.log[8],cnf.log[9],cnf.log[10],cnf.log[11]); tracemsg ("log %s", mystring); } } else { if (cnf.bootup) { set_usage(SHOW_USAGE); } else { fprintf(stderr, "eda: rc [%s] [%s] ... bad token\n", token, subtoken); ret = 2; } } return (ret); }/* set */
static BOOL CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam) { BOOL fError; switch(message) { case WM_INITDIALOG: SET_CHECK(OUT_Lossless_Radio, g_lossless); SET_CHECK(OUT_Lossy_Radio, !g_lossless); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETRANGEMIN, (WPARAM)(BOOL)FALSE, (LPARAM)0); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETRANGEMAX, (WPARAM)(BOOL)FALSE, (LPARAM)100); SendMessage(GET_ITEM(OUT_Quality_Slider),(UINT)TBM_SETPOS, (WPARAM)(BOOL)TRUE, (LPARAM)g_quality); if(!g_have_transparency) { ENABLE_ITEM(OUT_Alpha_Radio_Transparency, FALSE); if(g_alpha == DIALOG_ALPHA_TRANSPARENCY) { g_alpha = (g_alpha_name != NULL ? DIALOG_ALPHA_CHANNEL : DIALOG_ALPHA_NONE); } } if(g_alpha_name == NULL) { ENABLE_ITEM(OUT_Alpha_Radio_Channel, FALSE); if(g_alpha == DIALOG_ALPHA_CHANNEL) { g_alpha = (g_have_transparency ? DIALOG_ALPHA_TRANSPARENCY : DIALOG_ALPHA_NONE); } } else { SetDlgItemText(hwndDlg, OUT_Alpha_Radio_Channel, g_alpha_name); } SET_CHECK( (g_alpha == DIALOG_ALPHA_NONE ? OUT_Alpha_Radio_None : g_alpha == DIALOG_ALPHA_TRANSPARENCY ? OUT_Alpha_Radio_Transparency : g_alpha == DIALOG_ALPHA_CHANNEL ? OUT_Alpha_Radio_Channel : OUT_Alpha_Radio_None), TRUE); SET_CHECK(OUT_Alpha_Cleanup_Check, g_alpha_cleanup); SET_CHECK(OUT_Lossy_Alpha_Check, g_lossy_alpha); SET_CHECK(OUT_Save_Metadata_Check, g_save_metadata); TrackLossless(hwndDlg); TrackSlider(hwndDlg); TrackAlpha(hwndDlg); return TRUE; case WM_NOTIFY: switch(LOWORD(wParam)) { case OUT_Quality_Slider: TrackSlider(hwndDlg); return TRUE; } return FALSE; case WM_COMMAND: g_item_clicked = LOWORD(wParam); switch(g_item_clicked) { case OUT_OK: case OUT_Cancel: // do the same thing, but g_item_clicked will be different g_lossless = GET_CHECK(OUT_Lossless_Radio); g_quality = SendMessage(GET_ITEM(OUT_Quality_Slider), TBM_GETPOS, (WPARAM)0, (LPARAM)0 ); g_alpha = GET_CHECK(OUT_Alpha_Radio_None) ? DIALOG_ALPHA_NONE : GET_CHECK(OUT_Alpha_Radio_Transparency) ? DIALOG_ALPHA_TRANSPARENCY : GET_CHECK(OUT_Alpha_Radio_Channel) ? DIALOG_ALPHA_CHANNEL : DIALOG_ALPHA_TRANSPARENCY; g_alpha_cleanup = GET_CHECK(OUT_Alpha_Cleanup_Check); g_lossy_alpha = GET_CHECK(OUT_Lossy_Alpha_Check); g_save_metadata = GET_CHECK(OUT_Save_Metadata_Check); EndDialog(hwndDlg, 0); return TRUE; case OUT_Lossless_Radio: case OUT_Lossy_Radio: TrackLossless(hwndDlg); return TRUE; case OUT_Alpha_Radio_None: case OUT_Alpha_Radio_Transparency: case OUT_Alpha_Radio_Channel: TrackAlpha(hwndDlg); case OUT_Quality_Field: TrackField(hwndDlg); return TRUE; } } return FALSE; }