📄 setup.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 + -