Esempio n. 1
0
static void changed(GtkWidget *widget, struct search_param *search)
{
	struct search_list_result *res;
	GtkTreeIter iter;

	search->attr.u.str=(char *)gtk_entry_get_text(GTK_ENTRY(widget));
	printf("changed %s\n", search->attr.u.str);
	if (widget == search->entry_country) {
		dbg(0,"country\n");
		search->attr.type=attr_country_all;
		set_columns(search, 0);
	}
	if (widget == search->entry_city) {
		dbg(0,"town\n");
		search->attr.type=attr_town_name;
		if (strlen(search->attr.u.str) < 3) 
			return;
		set_columns(search, 1);
	}
	if (widget == search->entry_street) {
		dbg(0,"street\n");
		search->attr.type=attr_street_name;
		set_columns(search, 2);
	}


	search_list_search(search->sl, &search->attr, 1);	
	gtk_list_store_clear(search->liststore);
	while((res=search_list_get_result(search->sl))) {
		gtk_list_store_append(search->liststore,&iter);
		gtk_list_store_set(search->liststore,&iter,COL_COUNT,res->c,-1);
		if (widget == search->entry_country) {
			if (res->country) {
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->country->iso3,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->country->iso2,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->country->name,-1);
			}
		} else {
			if (res->country)
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
			else
				gtk_list_store_set(search->liststore,&iter,0,"",-1);
			if (res->town) {
				gtk_list_store_set(search->liststore,&iter,1,res->town->postal,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->town->name,-1);
				gtk_list_store_set(search->liststore,&iter,3,"",-1);
			} else {
				gtk_list_store_set(search->liststore,&iter,1,"",-1);
				gtk_list_store_set(search->liststore,&iter,2,"",-1);
				gtk_list_store_set(search->liststore,&iter,3,"",-1);
			}
			if (res->street)
				gtk_list_store_set(search->liststore,&iter,4,res->street->name,-1);
			else
				gtk_list_store_set(search->liststore,&iter,4,"",-1);
			
		}
	}
}
Esempio n. 2
0
void selection_properties_t::notify_on_create()
{
	pfc::list_t<t_column> columns;
	columns.add_item(t_column("Field", m_column_name_width, 0));
	columns.add_item(t_column("Value", m_column_field_width, 1));
	set_columns(columns);
	set_group_count(m_show_group_titles ? 1 : 0);

	register_callback();
	static_api_ptr_t<play_callback_manager>()->register_callback(this, play_callback::flag_on_playback_stop|play_callback::flag_on_playback_new_track, true);
	static_api_ptr_t<metadb_io_v3>()->register_callback(this);
	refresh_contents();

	if (0 == g_windows.add_item(this))
		g_message_window.create(NULL);
}
Esempio n. 3
0
static void changed(GtkWidget *widget, struct search_param *search)
{
	struct search_list_result *res;
	GtkTreeIter iter;
	GtkTreeSelection *sel;
	gchar buf[512];
	search->attr.u.str=(char *)gtk_entry_get_text(GTK_ENTRY(widget));
	
	printf("changed %s\n", search->attr.u.str);
	if (search->dontsearch)
		return;
	if (widget == search->entry_country) {
		dbg(0,"country\n");
		search->attr.type=attr_country_all;
		search->mode = 0;
		set_columns(search);
	}
	if (widget == search->entry_district) {
		dbg(0,"district\n");
		search->attr.type=attr_district_name;
		search->mode = 1;
		set_columns(search);
	}
	if (widget == search->entry_city) {
		dbg(0,"town\n");
		search->attr.type=attr_town_name;
		if (strlen(search->attr.u.str) < 2) 
			return;
		search->mode = 2;
		set_columns(search);
	}
	if (widget == search->entry_street) {
		dbg(0,"street\n");
		search->attr.type=attr_street_name;
		search->mode = 3;
		set_columns(search);
	}

	search_list_search(search->sl, &search->attr, 1);
	gtk_list_store_clear(search->liststore);
	while((res=search_list_get_result(search->sl))) {
		gtk_list_store_append(search->liststore,&iter);
		gtk_list_store_set(search->liststore,&iter,COORD_COL,res->c,-1);
		if (widget == search->entry_country) {
			if (res->country) {
				sprintf(buf, "%d", res->country->id);
				gtk_list_store_set(search->liststore,&iter,0,buf,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->country->car,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->country->iso3,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->country->iso2,-1);
				gtk_list_store_set(search->liststore,&iter,4,res->country->name,-1);
				gtk_list_store_set(search->liststore,&iter,RES_COL,res->country,-1);
			}
		} else if (widget == search->entry_district) {
			if (res->district) {
				sprintf(buf, "%d", res->district->id);
				gtk_list_store_set(search->liststore,&iter,0,buf,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->district->country,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->district->name,-1);
				gtk_list_store_set(search->liststore,&iter,RES_COL,res->district,-1);
			}
		} else if (widget == search->entry_city) {
//			if (res->country)
//				gtk_list_store_set(search->liststore,&iter,1,res->country->car,-1);
//			else
//				gtk_list_store_set(search->liststore,&iter,1,"",-1);
			if (res->town) {
				sprintf(buf, "%d", res->town->id);
				gtk_list_store_set(search->liststore,&iter,0,buf,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->town->country,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->town->district,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->town->postal,-1);
				gtk_list_store_set(search->liststore,&iter,4,res->town->name,-1);
				gtk_list_store_set(search->liststore,&iter,5,"",-1);
				gtk_list_store_set(search->liststore,&iter,RES_COL,res->town,-1);
			} else {
				gtk_list_store_set(search->liststore,&iter,0,"0",-1);
				gtk_list_store_set(search->liststore,&iter,1,"",-1);
				gtk_list_store_set(search->liststore,&iter,2,"",-1);
				gtk_list_store_set(search->liststore,&iter,3,"",-1);
				gtk_list_store_set(search->liststore,&iter,4,"",-1);
				gtk_list_store_set(search->liststore,&iter,5,"",-1);
			}
//			if (res->street)
//				gtk_list_store_set(search->liststore,&iter,4,res->street->name,-1);
//			else
//				gtk_list_store_set(search->liststore,&iter,4,"",-1);
			
		} else if (widget == search->entry_street) {
			if (res->street) {
				sprintf(buf, "%d", res->street->id);
				gtk_list_store_set(search->liststore,&iter,0,buf,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->street->country,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->street->district,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->street->postal,-1);
				gtk_list_store_set(search->liststore,&iter,4,res->street->city,-1);
				gtk_list_store_set(search->liststore,&iter,5,res->street->name,-1);
				gtk_list_store_set(search->liststore,&iter,6,"",-1);
				gtk_list_store_set(search->liststore,&iter,RES_COL,res->town,-1);
			}
		}
	}
}
Esempio n. 4
0
static void changed(GtkWidget *widget, struct search_param *search)
{
	struct search_list_result *res;
	GtkTreeIter iter;

	search->attr.u.str=(char *)gtk_entry_get_text(GTK_ENTRY(widget));
	printf("changed %s partial %d\n", search->attr.u.str, search->partial);
	if (widget == search->entry_country) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 3, GTK_SORT_ASCENDING);
		dbg(0,"country\n");
		search->attr.type=attr_country_all;
		set_columns(search, 0);
	}
	if (widget == search->entry_postal) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 1, GTK_SORT_ASCENDING);
		dbg(0,"postal\n");
		search->attr.type=attr_town_postal;
		if (strlen(search->attr.u.str) < 2)
			return;
		set_columns(search, 1);
	}
	if (widget == search->entry_city) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 2, GTK_SORT_ASCENDING);
		dbg(0,"town\n");
		search->attr.type=attr_town_name;
		if (strlen(search->attr.u.str) < 3)
			return;
		set_columns(search, 1);
	}
	if (widget == search->entry_street) {
		dbg(0,"street\n");
		search->attr.type=attr_street_name;
		set_columns(search, 2);
	}


	search_list_search(search->sl, &search->attr, search->partial);
	gtk_list_store_clear(search->liststore);
	while((res=search_list_get_result(search->sl))) {
		gtk_list_store_append(search->liststore,&iter);
		gtk_list_store_set(search->liststore,&iter,COL_COUNT,res->c,-1);
		if (widget == search->entry_country) {
			if (res->country) {
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->country->iso3,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->country->iso2,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->country->name,-1);
			}
		} else {
			if (res->country)
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
			else
				gtk_list_store_set(search->liststore,&iter,0,"",-1);
			if (res->town) {
				gtk_list_store_set(search->liststore,&iter,1,res->town->common.postal,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->town->name,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->town->district,-1);
			} else {
				gtk_list_store_set(search->liststore,&iter,1,"",-1);
				gtk_list_store_set(search->liststore,&iter,2,"",-1);
				gtk_list_store_set(search->liststore,&iter,3,"",-1);
			}
			if (res->street)
				gtk_list_store_set(search->liststore,&iter,4,res->street->name,-1);
			else
				gtk_list_store_set(search->liststore,&iter,4,"",-1);

		}
	}
	if (! search->partial)
		next_focus(search, widget);
	search->partial=1;
}
Esempio n. 5
0
int populate_list(HWND hlistview,int resize_window)
{
	HKEY hkey=0;
	int total_width=0;
	ListView_DeleteAllItems(hlistview);
	set_columns(hlistview);
	RegOpenKeyEx(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall",0,KEY_READ,&hkey);
	if(hkey!=0){
		int i,count=0,widths[4];
		count=get_subkey_count(hkey);
		memset(widths,0,sizeof(widths));
		get_column_widths(hlistview,widths,sizeof(widths)/sizeof(int));
		for(i=0;i<count;i++){
			char str[512]={0};
			int len=sizeof(str);
			RegEnumKeyEx(hkey,i,str,&len,NULL,NULL,NULL,NULL);
			//RegEnumValue(hkey,i,str,&len,NULL,NULL,NULL,NULL);
			str[sizeof(str)-1]=0;
			if(str[0]!=0){
				int w;
				HKEY hsubkey=0;
				RegOpenKeyEx(hkey,str,0,KEY_READ,&hsubkey);
				if(hsubkey!=0){
					int type=REG_SZ;
					char dispstr[512]={0};
					len=sizeof(dispstr);
					RegQueryValueEx(hsubkey,"DisplayName",NULL,&type,dispstr,&len);
					lv_insert_data(hlistview,i,0,dispstr);
					w=get_str_width(hlistview,dispstr);
					if(widths[0]<w)
						widths[0]=w;
					RegCloseKey(hsubkey);

					lv_insert_data(hlistview,i,1,str);
					w=get_str_width(hlistview,str);
					if(widths[1]<w)
						widths[1]=w;

				}
			}			
		}
		for(i=0;i<4;i++){
			widths[i]+=12;
			ListView_SetColumnWidth(hlistview,i,widths[i]);
			total_width+=widths[i];
		}

		RegCloseKey(hkey);
		if(total_width>0){
			HWND hwnd,hdesk;
			hwnd=GetParent(hlistview);
			hdesk=GetDesktopWindow();
			if(hwnd!=0 && hdesk!=0){
				RECT rect={0};
				int wwin,wdesk,height;
				GetWindowRect(hwnd,&rect);
				wwin=rect.right-rect.left;
				GetWindowRect(hdesk,&rect);
				wdesk=rect.right-rect.left;
				height=rect.bottom-rect.top;
				height=height*2/3;;
				if(total_width>wdesk)
					total_width=wdesk;
				if((total_width>wwin) && resize_window)
					SetWindowPos(hwnd,NULL,0,0,total_width,height,SWP_NOMOVE);
			}
		}
	}
	return total_width;
}
Esempio n. 6
0
static void changed(GtkWidget *widget, struct search_param *search)
{
	struct search_list_result *res;
	GtkTreeIter iter;

	search->attr.u.str=(char *)gtk_entry_get_text(GTK_ENTRY(widget));
	printf("changed %s partial %d\n", search->attr.u.str, search->partial);
	if (widget == search->entry_country) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 3, GTK_SORT_ASCENDING);
		dbg(0,"country\n");
		search->attr.type=attr_country_all;
		set_columns(search, 0);
	}
	if (widget == search->entry_postal) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 1, GTK_SORT_ASCENDING);
		dbg(0,"postal\n");
		search->attr.type=attr_town_postal;
		if (strlen(search->attr.u.str) < 2)
			return;
		set_columns(search, 1);
	}
	if (widget == search->entry_city) {
		gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (search->liststore2), 2, GTK_SORT_ASCENDING);
		dbg(0,"town\n");
		search->attr.type=attr_town_name;
		if (strlen(search->attr.u.str) < 3)
			return;
		set_columns(search, 1);
	}
	if (widget == search->entry_street) {
		dbg(0,"street\n");
		search->attr.type=attr_street_name;
		// Searching for a street by just its first letter generates too many hits to be useful, 
		// plus it causes the GUI to become unresponsive because the search is single-threaded.
		// So we only start searching once we have two letters.
		if (strlen(search->attr.u.str) < 2)
			return;
		set_columns(search, 2);
	}

	search_list_search(search->sl, &search->attr, search->partial);
	gtk_list_store_clear(search->liststore);
	while((res=search_list_get_result(search->sl))) {
		gtk_list_store_append(search->liststore,&iter);
		gtk_list_store_set(search->liststore,&iter,COL_COUNT,res->c,-1);
		if (widget == search->entry_country) {
			if (res->country) {
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
				gtk_list_store_set(search->liststore,&iter,1,res->country->iso3,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->country->iso2,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->country->name,-1);
			}
		} else {
			if (res->country)
				gtk_list_store_set(search->liststore,&iter,0,res->country->car,-1);
			else
				gtk_list_store_set(search->liststore,&iter,0,"",-1);
			if (res->town) {
				gtk_list_store_set(search->liststore,&iter,1,res->town->common.postal,-1);
				gtk_list_store_set(search->liststore,&iter,2,res->town->common.town_name,-1);
				gtk_list_store_set(search->liststore,&iter,3,res->town->common.district_name,-1);
			} else {
				gtk_list_store_set(search->liststore,&iter,1,"",-1);
				gtk_list_store_set(search->liststore,&iter,2,"",-1);
				gtk_list_store_set(search->liststore,&iter,3,"",-1);
			}
			if (res->street)
				gtk_list_store_set(search->liststore,&iter,4,res->street->name,-1);
			else
				gtk_list_store_set(search->liststore,&iter,4,"",-1);

		}
	}
	
	if(! search->partial)
	{
	    if( widget == search->entry_country )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_city), TRUE);
	    }
	    if( widget == search->entry_city )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_city), TRUE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_street), TRUE);
	    }
	    if( widget == search->entry_street )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_city), TRUE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_street), TRUE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_number), TRUE);
	    }
	} else {
	    if( widget == search->entry_country )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_city), FALSE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_street), FALSE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_number), FALSE);
	    }
	    if( widget == search->entry_city )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_street), FALSE);
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_number), FALSE);
	    }
	    if( widget == search->entry_street )
	    {
		gtk_widget_set_sensitive(GTK_WIDGET(search->entry_number), FALSE);
	    }
	}
	if (! search->partial)
		next_focus(search, widget);
	search->partial=1;
}
	void playlist_switcher_t::refresh_columns()
	{
		set_columns(pfc::list_single_ref_t<t_column>(t_column("Name", 100)));
	}
Esempio n. 8
0
int main(int argc, char *argv[])
{
	struct libscols_table *tb;
	int c, notree = 0, clonetb = 0;

	static const struct option longopts[] = {
		{ "help",       0, 0, 'h' },
		{ "noheadings",	0, 0, 'n' },
		{ "list",       0, 0, 'l' },
		{ "ascii",	0, 0, 'i' },
		{ "pairs",      0, 0, 'p' },
		{ "clone",      0, 0, 'C' },
		{ "csv",        0, 0, 'c' },
		{ NULL, 0, 0, 0 },
	};

	setlocale(LC_ALL, "");
	bindtextdomain(PACKAGE, LOCALEDIR);
	textdomain(PACKAGE);

	scols_init_debug(0);

	tb = scols_new_table();
	if (!tb)
		err(EXIT_FAILURE, "faild to create output table");

	while((c = getopt_long(argc, argv, "nlirpCc", longopts, NULL)) != -1) {
		switch(c) {
		case 'h':
			usage(stdout);
			break;
		case 'l':
			notree = 1;
			break;
		case 'n':
			scols_table_enable_noheadings(tb, 1);
			break;
		case 'p':
			scols_table_enable_export(tb, 1);
			notree = 1;
			break;
		case 'i':
			scols_table_enable_ascii(tb, 1);
			break;
		case 'r':
			scols_table_enable_raw(tb, 1);
			notree = 1;
			break;
		case 'c':
			scols_table_set_column_separator(tb, ",");
			scols_table_enable_raw(tb, 1);
			notree = 1;
			break;
		case 'C':
			clonetb = 1;
		default:
			usage(stderr);
		}
	}

	scols_table_enable_colors(tb, 1);
	set_columns(tb, notree);

	while (optind < argc)
		add_lines(tb, argv[optind++]);

	if (clonetb) {
		struct libscols_table *xtb = scols_copy_table(tb);

		scols_print_table(xtb);
		scols_unref_table(xtb);
	} else
		scols_print_table(tb);

	scols_unref_table(tb);

	return EXIT_SUCCESS;
}