my_chooser.cpp

来自「iptux是linux下面能实现类似windows里面飞鸽传书的功能」· C++ 代码 · 共 94 行

CPP
94
字号
//// C++ Implementation: my_chooser//// Description:////// Author: Jally <jallyx@163.com>, (C) 2008//// Copyright: See COPYING file that comes with this distribution////#include "my_chooser.h"#include "support.h"#include "udt.h"my_chooser::my_chooser(){}my_chooser::~my_chooser(){}GtkWidget *my_chooser::create_chooser(const gchar * title, GtkWidget * parent){	GtkWidget *chooser;	GtkWidget *preview;	chooser = gtk_file_chooser_dialog_new(title,					      GTK_WINDOW(parent),					      GTK_FILE_CHOOSER_ACTION_OPEN,					      GTK_STOCK_OPEN, GTK_RESPONSE_OK,					      GTK_STOCK_CANCEL,					      GTK_RESPONSE_CANCEL, NULL);	gtk_dialog_set_default_response(GTK_DIALOG(chooser), GTK_RESPONSE_OK);	gtk_file_chooser_set_local_only(GTK_FILE_CHOOSER(chooser), TRUE);	gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(chooser), FALSE);	gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER						       (chooser), TRUE);	gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser),					    getenv("HOME"));	preview = gtk_image_new();	gtk_widget_set_size_request(preview, MAX_PREVIEWSIZE, MAX_PREVIEWSIZE);	gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(chooser), preview);	gtk_file_chooser_set_preview_widget_active(GTK_FILE_CHOOSER(chooser),						   FALSE);	g_signal_connect(chooser, "update-preview", G_CALLBACK(UpdatePreview),			 preview);	return chooser;}gchar *my_chooser::run_chooser(GtkWidget * chooser){	int result;	gchar *filename;	result = gtk_dialog_run(GTK_DIALOG(chooser));	if (result == GTK_RESPONSE_OK)		filename =		    gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser));	else		filename = NULL;	gtk_widget_destroy(chooser);	return filename;}void my_chooser::UpdatePreview(GtkFileChooser * chooser, GtkWidget * preview){	gchar *filename;	GdkPixbuf *pixbuf;	filename = gtk_file_chooser_get_preview_filename(chooser);	if (!filename) {		gtk_file_chooser_set_preview_widget_active(chooser, FALSE);		return;	}	pixbuf = gdk_pixbuf_new_from_file(filename, NULL);	g_free(filename);	if (!pixbuf) {		gtk_file_chooser_set_preview_widget_active(chooser, FALSE);		return;	}	pixbuf_shrink_scale_1(&pixbuf, MAX_PREVIEWSIZE, MAX_PREVIEWSIZE);	gtk_image_set_from_pixbuf(GTK_IMAGE(preview), pixbuf);	g_object_unref(pixbuf);	gtk_file_chooser_set_preview_widget_active(chooser, TRUE);}

⌨️ 快捷键说明

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