int CharismaWindow::getprefs() { FILE *f; char s[200],param[200]; int d; char fname[B_PATH_NAME_LENGTH]; int r; float x,y; r=find_directory(B_COMMON_SETTINGS_DIRECTORY,0,true,fname,sizeof fname); if(r) return r; strcat(fname,"/"); strcat(fname,"Charisma_settings"); f=fopen(fname,"r"); if(!f)return -1; if(!fgets(s,sizeof s,f)) goto error; if(strcmp(s,"Charisma_settings\n")) goto error; if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"version=%d",&d)) goto error; if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"directory=%[^\n]",g_webdir)) goto error; if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"mode=%d",&d)) goto error; modemenu->Menu()->ItemAt(d)->SetMarked(true); if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"smart_refresh=%d",&d)) goto error; smartrefresh->Menu()->ItemAt(d)->SetMarked(true); if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"external_control=%s",param)) goto error; extcontrol_item->SetMarked(!strcmp(param,"yes")); if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"netpositive_autoset=%s",param)) goto error; netposautoset_item->SetMarked(!strcmp(param,"yes")); if(!fgets(s,sizeof s,f)) goto error; if(2!=sscanf(s,"position=%f,%f\n",&x,&y)) goto error; MoveTo(x,y); if(!fgets(s,sizeof s,f)) goto error; if(!sscanf(s,"minimized=%s",¶m)) goto error; if(!strcmp(param,"yes")) Minimize(true); fclose(f); update_proxy_settings(); return 0; error: fclose(f); update_proxy_settings(); return -1; }
static gboolean init_gconf (gpointer user_data) { SoupProxyResolverGNOMEInitData *id = user_data; if (id) g_mutex_lock (id->lock); /* resolver_gnome is locked */ gconf_client = gconf_client_get_default (); gconf_client_add_dir (gconf_client, "/system/proxy", GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); gconf_client_add_dir (gconf_client, "/system/http_proxy", GCONF_CLIENT_PRELOAD_RECURSIVE, NULL); g_signal_connect (gconf_client, "value_changed", G_CALLBACK (gconf_value_changed), NULL); update_proxy_settings (); if (id) { g_mutex_unlock (id->lock); g_cond_signal (id->cond); } return FALSE; }
static void gconf_value_changed (GConfClient *client, const char *key, GConfValue *value, gpointer user_data) { G_LOCK (resolver_gnome); update_proxy_settings (); G_UNLOCK (resolver_gnome); }
void CharismaWindow::setdefaults() { extcontrol_item->SetMarked(1); netposautoset_item->SetMarked(0); modemenu->Menu()->ItemAt(k_offline)->SetMarked(true); smartrefresh->Menu()->ItemAt(3)->SetMarked(true); update_proxy_settings(); }
void CharismaWindow::MessageReceived(BMessage *message) { char buf[B_PATH_NAME_LENGTH+1024]; BWindow *w; entry_ref ref; BEntry entry; BPath path; switch (message->what){ case kMsg_About: about(); break; case kMsg_SelectDirectory: w=selectdirpanel->Window(); w->Lock(); sprintf(buf,"Current: %s",g_webdir); currentdir->SetText(buf); w->Unlock(); selectdirpanel->Show(); break; case kMsg_DirSelected: if(message->FindRef("refs", 0, &ref)) break; entry.SetTo(&ref); entry.GetPath(&path); sprintf(g_webdir,"%s/",path.Path()); sprintf(buf, "The new Web directory is: %s\n" "If you wish to use previously acquired data, you should move or copy them here.\n" "This modification will take effect for Stamina when Stamina is re-launched.", g_webdir); message->FindRef("refs",&ref); (new BAlert("Charisma message",buf,"OK"))->Go(); saveprefs(); break; case kMsg_ExternalControl: extcontrol_item->SetMarked(!extcontrol_item->IsMarked()); update_proxy_settings(); break; case kMsg_NetposAutosettings: netposautoset_item->SetMarked(!netposautoset_item->IsMarked()); setnetpos(); break; case kMsg_ClearHits: hitcount=0; break; case kMsg_ProxySettings: update_proxy_settings(); setnetpos(); break; default: BWindow::MessageReceived(message); break; } }