Beispiel #1
0
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",&param)) 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);
}
Beispiel #4
0
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();
}
Beispiel #5
0
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;
	}
}