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

📄 setup.c

📁 又一开源的解压缩chm格式文件的代码
💻 C
字号:
/*************************************************************************** *   Copyright (C) 2003 by zhong                                           * *   zhongz@163.com                                                        * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * ***************************************************************************/#include <gdk/gdkkeysyms.h>#include <gtk/gtk.h>#include "interface.h"#include "setup.h"extern void command_delete_tmpdir (char *s_path);typedef struct _ChmSee_Setup ChmSee_Setup;	struct _ChmSee_Setup {	GtkWidget	*setup_window;	gchar		*s;};static gchar *get_tmpdir(void);static void on_chmsee_setup_clear(GtkWidget *widget, gpointer data);static voidon_chmsee_setup_clear(GtkWidget *widget, gpointer data){	ChmSee_Setup *setup = (ChmSee_Setup *) data;	command_delete_tmpdir( setup->s );}static gchar *get_tmpdir(void) {	gchar *set_tmpdir;		set_tmpdir = g_strdup_printf("%s/chmsee_tmp-%s", g_get_tmp_dir(), g_get_user_name());	return (set_tmpdir);}voidchmsee_setup_window_new (){  ChmSee_Setup *setup;  setup = g_new0(ChmSee_Setup, 1);  GtkWidget *vbox1;  GtkWidget *frame1;  GtkWidget *vbox2;  GtkWidget *hbox1;  GtkWidget *entry1;  GtkWidget *chm_setup_clear;  GtkWidget *alignment1;  GtkWidget *hbox2;  GtkWidget *image1;  GtkWidget *label3;  GtkWidget *label2;  GtkWidget *label1;  GtkWidget *hbuttonbox1;  GtkWidget *button1;  setup->setup_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  gtk_container_set_border_width (GTK_CONTAINER (setup->setup_window), 5);  gtk_window_set_title (GTK_WINDOW (setup->setup_window), "设置");  gtk_window_set_position (GTK_WINDOW (setup->setup_window), GTK_WIN_POS_CENTER);//  gtk_window_set_resizable (GTK_WINDOW (setup->setup_window), FALSE);  vbox1 = gtk_vbox_new (FALSE, 0);  gtk_widget_show (vbox1);  gtk_container_add (GTK_CONTAINER (setup->setup_window), vbox1);  frame1 = gtk_frame_new (NULL);  gtk_widget_show (frame1);  gtk_box_pack_start (GTK_BOX (vbox1), frame1, FALSE, TRUE, 0);  vbox2 = gtk_vbox_new (FALSE, 0);  gtk_widget_show (vbox2);  gtk_container_add (GTK_CONTAINER (frame1), vbox2);  hbox1 = gtk_hbox_new (FALSE, 0);  gtk_widget_show (hbox1);  gtk_box_pack_start (GTK_BOX (vbox2), hbox1, TRUE, TRUE, 0);  setup->s = g_strdup_printf("%s", get_tmpdir());   entry1 = gtk_entry_new ();  gtk_widget_show (entry1);  gtk_box_pack_start (GTK_BOX (hbox1), entry1, TRUE, TRUE, 7);  gtk_editable_set_editable (GTK_EDITABLE (entry1), FALSE);  GTK_WIDGET_UNSET_FLAGS (entry1, GTK_CAN_FOCUS);  gtk_entry_set_text(GTK_ENTRY(entry1), setup->s);  chm_setup_clear = gtk_button_new ();  gtk_widget_show (chm_setup_clear);  gtk_box_pack_start (GTK_BOX (hbox1), chm_setup_clear, FALSE, FALSE, 10);  alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0);  gtk_widget_show (alignment1);  gtk_container_add (GTK_CONTAINER (chm_setup_clear), alignment1);  hbox2 = gtk_hbox_new (FALSE, 2);  gtk_widget_show (hbox2);  gtk_container_add (GTK_CONTAINER (alignment1), hbox2);  image1 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_BUTTON);  gtk_widget_show (image1);  gtk_box_pack_start (GTK_BOX (hbox2), image1, FALSE, FALSE, 0);  label3 = gtk_label_new_with_mnemonic ("清空缓冲区");  gtk_widget_show (label3);  gtk_box_pack_start (GTK_BOX (hbox2), label3, FALSE, FALSE, 5);  label2 = gtk_label_new ("这里保存了程序意外关闭或出错时的一些文件,请定期清理\n\n警告: 如果你正在浏览CHM文件,请勿清空缓冲区。这会令\nchmsee运行出错。");  gtk_widget_show (label2);  gtk_box_pack_start (GTK_BOX (vbox2), label2, FALSE, FALSE, 10);  label1 = gtk_label_new ("清空缓冲区");  gtk_widget_show (label1);  gtk_frame_set_label_widget (GTK_FRAME (frame1), label1);  hbuttonbox1 = gtk_hbutton_box_new ();  gtk_widget_show (hbuttonbox1);  gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, FALSE, FALSE, 0);  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);  button1 = gtk_button_new_from_stock ("gtk-ok");  gtk_widget_show (button1);  gtk_container_add (GTK_CONTAINER (hbuttonbox1), button1);  gtk_container_set_border_width (GTK_CONTAINER (button1), 6);  GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);  g_signal_connect_swapped ((gpointer) setup->setup_window, "destroy",                            G_CALLBACK (gtk_widget_destroy),                            GTK_OBJECT (setup->setup_window));  g_signal_connect ((gpointer) chm_setup_clear, "clicked",                    G_CALLBACK (on_chmsee_setup_clear),                    setup);  g_signal_connect_swapped ((gpointer) button1, "clicked",                            G_CALLBACK (gtk_widget_destroy),                            GTK_OBJECT (setup->setup_window));  gtk_widget_grab_focus (button1);  gtk_widget_show(setup->setup_window);}

⌨️ 快捷键说明

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