static void storeData(_Panel * panel) { char buffer[64]; int i; char *tmp, *p; WMUserDefaults *udb = WMGetStandardUserDefaults(); if (!WMGetUDBoolForKey(udb, "NoXSetStuff")) { tmp = WMGetTextFieldText(panel->threT); if (strlen(tmp) == 0) { wfree(tmp); tmp = wstrdup("4"); } sprintf(buffer, XSET " m %i/%i %s\n", (int)(panel->acceleration * 10), 10, tmp); storeCommandInScript(XSET " m", buffer); wfree(tmp); } tmp = WMGetTextFieldText(panel->ddelaT); if (sscanf(tmp, "%i", &i) == 1 && i > 0) SetIntegerForKey(i, "DoubleClickTime"); wfree(tmp); SetBoolForKey(WMGetButtonSelected(panel->disaB), "DisableWSMouseActions"); for (i = 0; i < wlengthof(button_list); i++) { const char *db_value; int action; action = WMGetPopUpButtonSelectedItem(panel->mouse_action[i].popup); if (button_list[i].type == T_BUTTON) db_value = button_actions[action].db_value; else db_value = wheel_actions[action].db_value; SetStringForKey(db_value, button_list[i].db_key); } tmp = WMGetPopUpButtonItem(panel->grabP, WMGetPopUpButtonSelectedItem(panel->grabP)); tmp = wstrdup(tmp); p = strchr(tmp, ' '); if (p != NULL) *p = '\0'; SetStringForKey(tmp, "ModifierKey"); wfree(tmp); }
static void changedItemPad(WMWidget * w, void *data) { _Panel *panel = (_Panel *) data; int padn = WMGetPopUpButtonSelectedItem(w); WMUnmapWidget(panel->itemPad[panel->currentPad]); WMMapWidget(panel->itemPad[padn]); panel->currentPad = padn; }
static void changePage(WMWidget *bPtr, void *client_data) { InspectorPanel *panel = (InspectorPanel *) client_data; int page; page = WMGetPopUpButtonSelectedItem(bPtr); if (page == 0) { WMMapWidget(panel->specFrm); WMMapWidget(panel->specLbl); } else if (page == 1) { WMMapWidget(panel->attrFrm); } else if (page == 2) { WMMapWidget(panel->moreFrm); } else if (page == 3) { WMMapWidget(panel->iconFrm); WMMapWidget(panel->wsFrm); } else { WMMapWidget(panel->appFrm); } if (page != 0) { WMUnmapWidget(panel->specFrm); WMUnmapWidget(panel->specLbl); } if (page != 1) WMUnmapWidget(panel->attrFrm); if (page != 2) WMUnmapWidget(panel->moreFrm); if (page != 3) { WMUnmapWidget(panel->iconFrm); WMUnmapWidget(panel->wsFrm); } if (page != 4 && panel->appFrm) WMUnmapWidget(panel->appFrm); }
static void saveSettings(WMWidget *button, void *client_data) { InspectorPanel *panel = (InspectorPanel *) client_data; WWindow *wwin = panel->inspected; WDDomain *db = w_global.domain.window_attr; WMPropList *dict = NULL; WMPropList *winDic, *appDic, *value, *value1, *key = NULL, *key2; char *icon_file, *buf1, *buf2; int flags = 0, i = 0, different = 0, different2 = 0; /* Save will apply the changes and save them */ applySettings(panel->applyBtn, panel); if (WMGetButtonSelected(panel->instRb) != 0) { key = WMCreatePLString(wwin->wm_instance); } else if (WMGetButtonSelected(panel->clsRb) != 0) { key = WMCreatePLString(wwin->wm_class); } else if (WMGetButtonSelected(panel->bothRb) != 0) { buf1 = StrConcatDot(wwin->wm_instance, wwin->wm_class); key = WMCreatePLString(buf1); wfree(buf1); } else if (WMGetButtonSelected(panel->defaultRb) != 0) { key = WMRetainPropList(AnyWindow); flags = UPDATE_DEFAULTS; } if (!key) return; dict = db->dictionary; if (!dict) { dict = WMCreatePLDictionary(NULL, NULL); if (dict) { db->dictionary = dict; } else { WMReleasePropList(key); return; } } if (showIconFor(WMWidgetScreen(button), panel, NULL, NULL, USE_TEXT_FIELD) < 0) return; WMPLSetCaseSensitive(True); winDic = WMCreatePLDictionary(NULL, NULL); appDic = WMCreatePLDictionary(NULL, NULL); /* Save the icon info */ /* The flag "Ignore client suplied icon is not selected" */ buf1 = wmalloc(4); snprintf(buf1, 4, "%s", (WMGetButtonSelected(panel->alwChk) != 0) ? "Yes" : "No"); value1 = WMCreatePLString(buf1); different |= insertAttribute(dict, winDic, AAlwaysUserIcon, value1, flags); WMReleasePropList(value1); wfree(buf1); /* The icon filename (if exists) */ icon_file = WMGetTextFieldText(panel->fileText); if (icon_file != NULL) { if (icon_file[0] != '\0') { value = WMCreatePLString(icon_file); different |= insertAttribute(dict, winDic, AIcon, value, flags); different2 |= insertAttribute(dict, appDic, AIcon, value, flags); WMReleasePropList(value); } wfree(icon_file); } i = WMGetPopUpButtonSelectedItem(panel->wsP) - 1; if (i >= 0 && i < w_global.workspace.count) { value = WMCreatePLString(w_global.workspace.array[i]->name); different |= insertAttribute(dict, winDic, AStartWorkspace, value, flags); WMReleasePropList(value); } flags |= IS_BOOLEAN; value = (WMGetButtonSelected(panel->attrChk[0]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoTitlebar, value, flags); value = (WMGetButtonSelected(panel->attrChk[1]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoResizebar, value, flags); value = (WMGetButtonSelected(panel->attrChk[2]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoCloseButton, value, flags); value = (WMGetButtonSelected(panel->attrChk[3]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMiniaturizeButton, value, flags); value = (WMGetButtonSelected(panel->attrChk[4]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoBorder, value, flags); value = (WMGetButtonSelected(panel->attrChk[5]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepOnTop, value, flags); value = (WMGetButtonSelected(panel->attrChk[6]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepOnBottom, value, flags); value = (WMGetButtonSelected(panel->attrChk[7]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AOmnipresent, value, flags); value = (WMGetButtonSelected(panel->attrChk[8]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AStartMiniaturized, value, flags); value = (WMGetButtonSelected(panel->attrChk[9]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AStartMaximized, value, flags); value = (WMGetButtonSelected(panel->attrChk[10]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AFullMaximize, value, flags); value = (WMGetButtonSelected(panel->moreChk[0]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoKeyBindings, value, flags); value = (WMGetButtonSelected(panel->moreChk[1]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMouseBindings, value, flags); value = (WMGetButtonSelected(panel->moreChk[2]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ASkipWindowList, value, flags); value = (WMGetButtonSelected(panel->moreChk[3]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ASkipSwitchPanel, value, flags); value = (WMGetButtonSelected(panel->moreChk[4]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AUnfocusable, value, flags); value = (WMGetButtonSelected(panel->moreChk[5]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AKeepInsideScreen, value, flags); value = (WMGetButtonSelected(panel->moreChk[6]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoHideOthers, value, flags); value = (WMGetButtonSelected(panel->moreChk[7]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ADontSaveSession, value, flags); value = (WMGetButtonSelected(panel->moreChk[8]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AEmulateAppIcon, value, flags); value = (WMGetButtonSelected(panel->moreChk[9]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, AFocusAcrossWorkspace, value, flags); value = (WMGetButtonSelected(panel->moreChk[10]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoMiniaturizable, value, flags); #ifdef XKB_BUTTON_HINT value = (WMGetButtonSelected(panel->moreChk[11]) != 0) ? Yes : No; different |= insertAttribute(dict, winDic, ANoLanguageButton, value, flags); #endif if (wwin->main_window != None && wApplicationOf(wwin->main_window) != NULL) { value = (WMGetButtonSelected(panel->appChk[0]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, AStartHidden, value, flags); value = (WMGetButtonSelected(panel->appChk[1]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, ANoAppIcon, value, flags); value = (WMGetButtonSelected(panel->appChk[2]) != 0) ? Yes : No; different2 |= insertAttribute(dict, appDic, ASharedAppIcon, value, flags); } if (wwin->fake_group) { key2 = WMCreatePLString(wwin->fake_group->identifier); if (WMIsPropListEqualTo(key, key2)) { WMMergePLDictionaries(winDic, appDic, True); different |= different2; } else { WMRemoveFromPLDictionary(dict, key2); if (different2) WMPutInPLDictionary(dict, key2, appDic); } WMReleasePropList(key2); } else if (wwin->main_window != wwin->client_win) { WApplication *wapp = wApplicationOf(wwin->main_window); if (wapp) { buf2 = StrConcatDot(wapp->main_window_desc->wm_instance, wapp->main_window_desc->wm_class); key2 = WMCreatePLString(buf2); wfree(buf2); if (WMIsPropListEqualTo(key, key2)) { WMMergePLDictionaries(winDic, appDic, True); different |= different2; } else { WMRemoveFromPLDictionary(dict, key2); if (different2) WMPutInPLDictionary(dict, key2, appDic); } WMReleasePropList(key2); } } else { WMMergePLDictionaries(winDic, appDic, True); different |= different2; } WMReleasePropList(appDic); WMRemoveFromPLDictionary(dict, key); if (different) WMPutInPLDictionary(dict, key, winDic); WMReleasePropList(key); WMReleasePropList(winDic); UpdateDomainFile(db); /* clean up */ WMPLSetCaseSensitive(False); }