⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mywidget.cc

📁 一个功能比较强的下载软件
💻 CC
📖 第 1 页 / 共 3 页
字号:
		};		d4x_filter_edit_type=g_type_register_static(GTK_TYPE_WINDOW,"d4xFilterEdit",&info,(GTypeFlags)0);	};	return d4x_filter_edit_type;};GtkWidget *d4x_filter_edit_new(d4xFNode *node){	d4xFilterEdit *edit=(d4xFilterEdit *)g_object_new(d4x_filter_edit_get_type(),NULL);	edit->node=node;	node->filter->print(edit);	if (node->filter->name.get())		text_to_combo(edit->name,node->filter->name.get());	GTK_TOGGLE_BUTTON(edit->include)->active=node->filter->default_inc;	GTK_TOGGLE_BUTTON(edit->exclude)->active=!node->filter->default_inc;	return GTK_WIDGET(edit);};/**********************************************************/static void d4x_filter_sel_destroy(GtkObject *widget){	g_return_if_fail(widget!=NULL);	if (GTK_OBJECT_CLASS (filtersel_parent_class)->destroy)		(* GTK_OBJECT_CLASS (filtersel_parent_class)->destroy) (widget);};static void d4x_filter_sel_init(d4xFilterSel *sel){	gtk_window_set_wmclass(GTK_WINDOW(sel),			       "D4X_FilterSel","D4X");	gtk_widget_set_size_request(GTK_WIDGET(sel),-1,300);	gtk_window_set_title(GTK_WINDOW(sel),_("Select filter"));	GtkListStore *list_store = gtk_list_store_new(2,						      G_TYPE_STRING,						      G_TYPE_POINTER);	sel->view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)));	GtkCellRenderer *renderer;	GtkTreeViewColumn *col;	renderer = gtk_cell_renderer_text_new();	col=gtk_tree_view_column_new_with_attributes(_("filter name"),						     renderer,						     "text",0,						     NULL);	gtk_tree_view_set_headers_visible(sel->view,TRUE);	gtk_tree_view_column_set_visible(col,TRUE);	gtk_tree_view_append_column(sel->view,col);	GtkWidget *scroll_window=gtk_scrolled_window_new((GtkAdjustment*)NULL,(GtkAdjustment*)NULL);	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll_window),	                                GTK_POLICY_AUTOMATIC,					GTK_POLICY_AUTOMATIC);	gtk_container_add(GTK_CONTAINER(scroll_window),GTK_WIDGET(sel->view));	sel->ok=gtk_button_new_with_label(_("Ok"));	sel->cancel=gtk_button_new_with_label(_("Cancel"));	GTK_WIDGET_SET_FLAGS(sel->ok,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(sel->cancel,GTK_CAN_DEFAULT);	GtkWidget *vbox=gtk_vbox_new(FALSE,0);	GtkWidget *hbox=gtk_hbutton_box_new();	gtk_box_set_spacing(GTK_BOX(vbox),5);	gtk_box_set_spacing(GTK_BOX(hbox),5);	gtk_box_pack_start(GTK_BOX(vbox),scroll_window,TRUE,TRUE,0);	gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(hbox),sel->ok,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(hbox),sel->cancel,FALSE,FALSE,0);	gtk_container_add(GTK_CONTAINER(sel),vbox);	gtk_window_set_default(GTK_WINDOW(sel),sel->ok);	FILTERS_DB->print(sel);};static void d4x_filter_sel_class_init(d4xFilterSelClass *klass){	GtkObjectClass *object_class=(GtkObjectClass *)klass;		object_class->destroy=d4x_filter_sel_destroy;	filtersel_parent_class=(GtkWidgetClass *)gtk_type_class(gtk_window_get_type());};guint d4x_filter_sel_get_type(){	static guint d4x_filter_sel_type=0;	if (!d4x_filter_sel_type){		GTypeInfo info={			sizeof(d4xFilterSelClass),			NULL,NULL,			(GClassInitFunc) d4x_filter_sel_class_init,			NULL,NULL,			sizeof(d4xFilterSel),			0,			(GInstanceInitFunc)d4x_filter_sel_init		};		d4x_filter_sel_type=g_type_register_static (GTK_TYPE_WINDOW,"d4xFilterSel",&info,(GTypeFlags)0);	};	return d4x_filter_sel_type;};GtkWidget *d4x_filter_sel_new(){	d4xFilterSel *sel=(d4xFilterSel *)g_object_new(d4x_filter_sel_get_type(),NULL);	gtk_widget_show_all(GTK_WIDGET(sel));	return GTK_WIDGET(sel);};void d4x_filter_sel_add(d4xFilterSel *sel,d4xFNode *node){	GtkListStore *list_store=GTK_LIST_STORE(gtk_tree_view_get_model(sel->view));	GtkTreeIter iter;	gtk_list_store_append(list_store, &iter);	gtk_list_store_set(list_store, &iter,			   0,node->filter->name.get(),			   1,node,			   -1);};void d4x_filter_sel_to_combo(d4xFilterSel *sel,GtkWidget *combo){	GtkTreeSelection *s=gtk_tree_view_get_selection(sel->view);	GtkTreeIter iter;	GtkTreeModel *model;	if (gtk_tree_selection_get_selected(s,&model,&iter)){		GValue val={0,};		gtk_tree_model_get_value(model,&iter,0,&val);		const char *name=g_value_get_string(&val);		text_to_combo(combo,(char*)name);		g_value_unset(&val);	}else		text_to_combo(combo,"");};/********************************************************/static void d4x_links_sel_destroy(GtkObject *widget){	g_return_if_fail(widget!=NULL);	if (GTK_OBJECT_CLASS (linkssel_parent_class)->destroy)		(* GTK_OBJECT_CLASS (linkssel_parent_class)->destroy) (widget);};static void _foreach_remove_prepare_(GtkTreeModel *model,GtkTreePath *path,				     GtkTreeIter *iter,gpointer p){	tQueue *q=(tQueue*)p;	tmpIterNode *i=new tmpIterNode(iter);	q->insert(i);};void d4x_links_sel_del(d4xLinksSel *sel,GtkTreeIter *iter){	GtkListStore *store=GTK_LIST_STORE(gtk_tree_view_get_model(sel->view));	gtk_list_store_remove(store,iter);};static void d4x_links_sel_remove(GtkWidget *button,d4xLinksSel *sel){	GtkTreeSelection *s=gtk_tree_view_get_selection(sel->view);	tQueue q;	gtk_tree_selection_selected_foreach(s,					    _foreach_remove_prepare_,					    &q);	tNode *t=q.last();	while(t){		d4x_links_sel_del(sel,((tmpIterNode*)t)->iter);		t=t->next;	};};void d4x_links_sel_set(d4xLinksSel *sel,GtkTreeIter *iter,char *url,gpointer p){	GtkListStore *list_store=GTK_LIST_STORE(gtk_tree_view_get_model(sel->view));	gtk_list_store_set(list_store, iter,			   0,url,			   1,p,			   -1);};gpointer d4x_links_sel_get_data(d4xLinksSel *sel,GtkTreeIter *iter){	GtkTreeModel *model=gtk_tree_view_get_model(sel->view);	GValue val={0,};	gtk_tree_model_get_value(model,iter,1,&val);	gpointer p=g_value_get_pointer(&val);	g_value_unset(&val);	return(p);};void d4x_links_sel_selected_foreach(d4xLinksSel *sel,d4xLinksSelForeachFunc func,gpointer data){	GtkTreeSelection *s=gtk_tree_view_get_selection(sel->view);	GtkTreeModel *model=gtk_tree_view_get_model(sel->view);	tQueue q;	gtk_tree_selection_selected_foreach(s,					    _foreach_remove_prepare_,					    &q);	tNode *t=q.last();	while(t){		GValue val={0,};		gtk_tree_model_get_value(model,((tmpIterNode*)t)->iter,1,&val);		gpointer p=g_value_get_pointer(&val);		g_value_unset(&val);		gtk_tree_model_get_value(model,((tmpIterNode*)t)->iter,0,&val);		const gchar *s=g_value_get_string(&val);		func(sel,((tmpIterNode*)t)->iter,s,p,data);		g_value_unset(&val);		t=t->next;	};};static void d4x_links_sel_cancel(GtkWidget *button,d4xLinksSel *sel){	gtk_widget_destroy(GTK_WIDGET(sel));}static void d4x_links_sel_delete(GtkWindow *window,				 GdkEvent *event,				 d4xLinksSel *sel){	gtk_widget_destroy(GTK_WIDGET(sel));};static void d4x_links_sel_init(d4xLinksSel *sel){	gtk_window_set_wmclass(GTK_WINDOW(sel),			       "D4X_LinksSel","D4X");	d4x_eschandler_init(GTK_WIDGET(sel),sel);	gtk_widget_set_size_request(GTK_WIDGET(sel),-1,300);	gtk_window_set_title(GTK_WINDOW(sel),_("List of links"));	GtkListStore *list_store = gtk_list_store_new(2,						      G_TYPE_STRING,						      G_TYPE_POINTER);	sel->view = GTK_TREE_VIEW(gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store)));	GtkCellRenderer *renderer;	GtkTreeViewColumn *col;	renderer = gtk_cell_renderer_text_new();	col=gtk_tree_view_column_new_with_attributes(_("URL"),						     renderer,						     "text",0,						     NULL);	gtk_tree_view_set_headers_visible(sel->view,TRUE);	gtk_tree_view_column_set_visible(col,TRUE);	gtk_tree_view_append_column(sel->view,col);	col=gtk_tree_view_get_column(sel->view,0);		GtkWidget *scroll_window=gtk_scrolled_window_new((GtkAdjustment*)NULL,(GtkAdjustment*)NULL);	gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW (scroll_window),					    GTK_SHADOW_IN);	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll_window),	                                GTK_POLICY_AUTOMATIC,					GTK_POLICY_AUTOMATIC);	gtk_container_add(GTK_CONTAINER(scroll_window),GTK_WIDGET(sel->view));	sel->ok=gtk_button_new_with_label(_("Ok"));	sel->remove=gtk_button_new_with_label(_("Remove"));	sel->cancel=gtk_button_new_with_label(_("Cancel"));	GTK_WIDGET_SET_FLAGS(sel->ok,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(sel->remove,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(sel->cancel,GTK_CAN_DEFAULT);	GtkWidget *vbox=gtk_vbox_new(FALSE,0);	sel->hbbox=gtk_hbutton_box_new();	gtk_box_set_spacing(GTK_BOX(vbox),5);	gtk_box_set_spacing(GTK_BOX(sel->hbbox),5);	gtk_box_pack_start(GTK_BOX(vbox),scroll_window,TRUE,TRUE,0);	gtk_box_pack_start(GTK_BOX(vbox),sel->hbbox,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->ok,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->remove,FALSE,FALSE,0);	gtk_container_add(GTK_CONTAINER(sel),vbox);	gtk_window_set_default(GTK_WINDOW(sel),sel->ok);};static void d4x_links_sel_class_init(d4xLinksSelClass *klass){	GtkObjectClass *object_class=(GtkObjectClass *)klass;		object_class->destroy=d4x_links_sel_destroy;	linkssel_parent_class=(GtkWidgetClass *)gtk_type_class(gtk_window_get_type());};guint d4x_links_sel_get_type(){	static guint d4x_links_sel_type=0;	if (!d4x_links_sel_type){		GTypeInfo info={			sizeof(d4xLinksSelClass),			NULL,NULL,			(GClassInitFunc) d4x_links_sel_class_init,			NULL,NULL,			sizeof(d4xLinksSel),			0,			(GInstanceInitFunc)d4x_links_sel_init		};		d4x_links_sel_type = g_type_register_static (GTK_TYPE_WINDOW,"d4xLinksSel",&info,(GTypeFlags)0);	};	return d4x_links_sel_type;};GtkWidget *d4x_links_sel_new_with_add(){	d4xLinksSel *sel=(d4xLinksSel *)g_object_new(d4x_links_sel_get_type(),NULL);	sel->find=gtk_button_new_with_label(_("Find"));	GTK_WIDGET_SET_FLAGS(sel->find,GTK_CAN_DEFAULT);	gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->find,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->cancel,FALSE,FALSE,0);	GList *c=gtk_container_get_children(GTK_CONTAINER(sel->cancel));	GtkLabel *label=(GtkLabel *)(c->data);	gtk_label_set_text(label,_("Add"));	g_list_free(c);	gtk_widget_show_all(GTK_WIDGET(sel));	return GTK_WIDGET(sel);};GtkWidget *d4x_links_sel_new(){	d4xLinksSel *sel=(d4xLinksSel *)g_object_new(d4x_links_sel_get_type(),NULL);	gtk_box_pack_end(GTK_BOX(sel->hbbox),sel->cancel,FALSE,FALSE,0);	g_signal_connect(G_OBJECT(sel),"delete_event",			   G_CALLBACK(d4x_links_sel_delete), sel);	g_signal_connect(G_OBJECT(sel->remove),"clicked",			   G_CALLBACK(d4x_links_sel_remove),			   sel);	g_signal_connect(G_OBJECT(sel->cancel),"clicked",			   G_CALLBACK(d4x_links_sel_cancel),			   sel);	gtk_widget_show_all(GTK_WIDGET(sel));	return GTK_WIDGET(sel);};void d4x_links_sel_add(d4xLinksSel *sel,char *url,gpointer p){	GtkListStore *list_store=GTK_LIST_STORE(gtk_tree_view_get_model(sel->view));	GtkTreeIter iter;	gtk_list_store_append(list_store, &iter);	gtk_list_store_set(list_store, &iter,			   0,url,			   1,p,			   -1);};struct d4xSelTmp{	gpointer data;	d4xLinksSelForeachFunc func;	d4xLinksSel *sel;};static gboolean _tmp_sel_foreach_(GtkTreeModel *model,				  GtkTreePath *path,				  GtkTreeIter *iter,				  gpointer data){	d4xSelTmp *tmp=(d4xSelTmp *)data;	GValue val={0,};	gtk_tree_model_get_value(model,iter,1,&val);	gpointer p=g_value_get_pointer(&val);	g_value_unset(&val);	gtk_tree_model_get_value(model,iter,0,&val);	const gchar *s=g_value_get_string(&val);	tmp->func(tmp->sel,iter,s,p,tmp->data);	g_value_unset(&val);	return FALSE;};void d4x_links_sel_foreach(d4xLinksSel *sel,d4xLinksSelForeachFunc func,gpointer data){	GtkTreeModel *store=gtk_tree_view_get_model(sel->view);	d4xSelTmp a={data,func,sel};	gtk_tree_model_foreach(store,_tmp_sel_foreach_,&a);};void d4x_links_sel_clear(d4xLinksSel *sel){	GtkListStore *store=GTK_LIST_STORE(gtk_tree_view_get_model(sel->view));	gtk_list_store_clear(store);};/********************************************************/static void d4x_string_edit_destroy(GtkObject *widget){	g_return_if_fail(widget!=NULL);	if (GTK_OBJECT_CLASS (stringedit_parent_class)->destroy)		(* GTK_OBJECT_CLASS (stringedit_parent_class)->destroy) (widget);};static void d4x_string_edit_class_init(d4xStringEditClass *klass){	GtkObjectClass *object_class=(GtkObjectClass *)klass;		object_class->destroy=d4x_string_edit_destroy;	stringedit_parent_class=(GtkWidgetClass *)gtk_type_class(gtk_window_get_type());};static void d4x_string_edit_init(d4xStringEdit *sel){	gtk_window_set_wmclass(GTK_WINDOW(sel),			       "D4X_EditString","D4X");	d4x_eschandler_init(GTK_WIDGET(sel),sel);	gtk_widget_set_size_request(GTK_WIDGET(sel),400,-1);	GtkWidget *vbox=gtk_vbox_new(FALSE,0);	GtkWidget *hbbox=gtk_hbutton_box_new();	sel->ok=gtk_button_new_with_label(_("Ok"));	sel->cancel=gtk_button_new_with_label(_("Cancel"));	GTK_WIDGET_SET_FLAGS(sel->ok,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(sel->cancel,GTK_CAN_DEFAULT);	gtk_box_set_spacing(GTK_BOX(vbox),5);	gtk_box_set_spacing(GTK_BOX(hbbox),5);	sel->entry=(GtkEntry*)gtk_entry_new();	gtk_box_pack_start(GTK_BOX(vbox),GTK_WIDGET(sel->entry),TRUE,FALSE,0);	gtk_box_pack_start(GTK_BOX(vbox),hbbox,TRUE,FALSE,0);	gtk_box_pack_end(GTK_BOX(hbbox),sel->ok,FALSE,FALSE,0);	gtk_box_pack_end(GTK_BOX(hbbox),sel->cancel,FALSE,FALSE,0);	gtk_container_add(GTK_CONTAINER(sel),vbox);	gtk_window_set_default(GTK_WINDOW(sel),sel->cancel);};guint d4x_string_edit_get_type(){	static guint d4x_string_edit_type=0;	if (!d4x_string_edit_type){		GTypeInfo info={			sizeof(d4xStringEditClass),			NULL,NULL,			(GClassInitFunc) d4x_string_edit_class_init,			NULL,NULL,			sizeof(d4xStringEdit),			0,			(GInstanceInitFunc)d4x_string_edit_init		};		d4x_string_edit_type = g_type_register_static (GTK_TYPE_WINDOW,"d4xStringEdit",&info,(GTypeFlags)0);	};	return d4x_string_edit_type;};GtkWidget *d4x_string_edit_new(){	d4xStringEdit *edit=(d4xStringEdit *)g_object_new(d4x_string_edit_get_type(),NULL);	gtk_widget_show_all(GTK_WIDGET(edit));	return GTK_WIDGET(edit);};/********************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -