administrator.c
来自「一个可以替代windows ODBC驱动程序管理器的通用ODBC数据库引擎」· C语言 代码 · 共 1,788 行 · 第 1/5 页
C
1,788 行
SQLWritePrivateProfileString ("ODBC", "Trace", (GTK_TOGGLE_BUTTON (tracing_t->donttrace_rb)-> active) ? "0" : "1", NULL); SQLWritePrivateProfileString ("ODBC", "TraceAutoStop", (GTK_TOGGLE_BUTTON (tracing_t->allthetime_rb)-> active) ? "0" : "1", NULL); if (STRLEN (gtk_entry_get_text (GTK_ENTRY (tracing_t-> logfile_entry)))) SQLWritePrivateProfileString ("ODBC", "TraceFile", gtk_entry_get_text (GTK_ENTRY (tracing_t->logfile_entry)), NULL); } tracing_t->logfile_entry = tracing_t->tracelib_entry = tracing_t->b_start_stop = NULL; tracing_t->donttrace_rb = tracing_t->allthetime_rb = tracing_t->onetime_rb = NULL; } if (connectionpool_t) { if (connectionpool_t->changed) { /* Write keywords for tracing in the ini file */ SQLWritePrivateProfileString ("ODBC Connection Pooling", "PerfMon", (GTK_TOGGLE_BUTTON (connectionpool_t->enperfmon_rb)-> active) ? "1" : "0", "odbcinst.ini"); SQLWritePrivateProfileString ("ODBC Connection Pooling", "Retry Wait", gtk_entry_get_text (GTK_ENTRY (connectionpool_t-> retwait_entry)), "odbcinst.ini"); } connectionpool_t->driverlist = connectionpool_t->mainwnd = NULL; connectionpool_t->enperfmon_rb = connectionpool_t->disperfmon_rb = NULL; connectionpool_t->retwait_entry = NULL; } if (mainwnd) { gtk_signal_disconnect_by_func (GTK_OBJECT (mainwnd), GTK_SIGNAL_FUNC (gtk_main_quit), NULL); gtk_main_quit (); gtk_widget_destroy (mainwnd); }}static voidadmin_cancel_clicked (GtkWidget *widget, void **inparams){ TDSNCHOOSER *dsnchoose_t = (inparams) ? inparams[0] : NULL; TDRIVERCHOOSER *driverchoose_t = (inparams) ? inparams[1] : NULL; TTRACING *tracing_t = (inparams) ? inparams[2] : NULL; TCOMPONENT *component_t = (inparams) ? inparams[3] : NULL; TCONNECTIONPOOLING *connectionpool_t = (inparams) ? inparams[4] : NULL; GtkWidget *mainwnd = (inparams) ? inparams[5] : NULL; if (dsnchoose_t) { dsnchoose_t->udsnlist = dsnchoose_t->sdsnlist = dsnchoose_t->dir_list = NULL; dsnchoose_t->fadd = dsnchoose_t->fremove = dsnchoose_t->ftest = dsnchoose_t->fconfigure = NULL; dsnchoose_t->uadd = dsnchoose_t->uremove = dsnchoose_t->utest = dsnchoose_t->uconfigure = NULL; dsnchoose_t->sadd = dsnchoose_t->sremove = dsnchoose_t->stest = dsnchoose_t->sconfigure = NULL; dsnchoose_t->file_list = dsnchoose_t->file_entry = dsnchoose_t->dir_combo = NULL; dsnchoose_t->type_dsn = -1; dsnchoose_t->curr_dir = dsnchoose_t->dsn = NULL; } if (driverchoose_t) driverchoose_t->driverlist = NULL; if (component_t) component_t->componentlist = NULL; if (tracing_t) { tracing_t->logfile_entry = tracing_t->tracelib_entry = tracing_t->b_start_stop = NULL; tracing_t->donttrace_rb = tracing_t->allthetime_rb = tracing_t->onetime_rb = NULL; } if (connectionpool_t) { connectionpool_t->driverlist = connectionpool_t->mainwnd = NULL; connectionpool_t->enperfmon_rb = connectionpool_t->disperfmon_rb = NULL; connectionpool_t->retwait_entry = NULL; } if (mainwnd) { gtk_signal_disconnect_by_func (GTK_OBJECT (mainwnd), GTK_SIGNAL_FUNC (gtk_main_quit), NULL); gtk_main_quit (); gtk_widget_destroy (mainwnd); }}static gintdelete_event (GtkWidget *widget, GdkEvent *event, void **inparams){ admin_cancel_clicked (widget, inparams); return FALSE;}voidcreate_administrator (HWND hwnd){ guint b_ok_key, b_cancel_key, b_add_key, b_remove_key, b_test_key, b_configure_key; guint b_donottrace_key, b_allthetime_key, b_onetime_key, b_start_key, b_browse_key, b_select_key; guint br_enable_key, br_disable_key; GtkWidget *admin, *dialog_vbox1, *notebook1, *vbox1, *fixed1, *scrolledwindow1; GtkWidget *clist1, *l_name, *l_description, *l_driver, *l_usdsn, *frame1, *table1; GtkWidget *l_explanation, *pixmap1, *vbuttonbox1, *b_add, *b_remove, *b_configure; GtkWidget *b_test, *udsn, *fixed2, *scrolledwindow2, *clist2, *hbuttonbox2; GtkWidget *l_sdsn, *frame2, *table2, *pixmap2, *vbuttonbox2, *sdsn, *dialog_action_area1; GtkWidget *hbuttonbox1, *b_ok, *b_cancel, *fixed4, *scrolledwindow5, *clist5, *l_file; GtkWidget *l_date, *l_size, *frame4, *table4, *pixmap4, *l_drivers, *fdrivers; GtkWidget *fixed6, *frame6, *hbox1, *vbox2, *b_donottrace, *b_allthetime; GtkWidget *b_onetime, *vbox3, *b_start, *frame7, *table6, *t_logfile, *b_browse, *frame8; GtkWidget *table7, *t_tracelib, *b_select, *frame5, *table5, *pixmap5, *ftracing; GtkWidget *fixed7, *frame9, *table8, *pixmap6, *l_about, *scrolledwindow6, *clist6; GtkWidget *l_version, *fabout, *pixmap3, *clist3, *clist4, *l_files, *l_selected, *scrolledwindow4; GtkWidget *t_fileselected, *l_lookin, *optionmenu1, *frame3, *table3, *fdsn, *l_directory, *fixed3; GtkWidget *optionmenu1_menu, *scrolledwindow3, *fpooling, *l_poolto, *clist7, *l_odbcdrivers; GtkWidget *fixed8, *frame11, *alignment1, *vbox4, *frame13, *fixed5, *frame10, *table9, *vbuttonbox3; GtkWidget *pixmap7, *frame12, *vbox5, *br_enable, *br_disable, *t_retrywait, *scrolledwindow7; GSList *vbox2_group = NULL, *vbox5_group = NULL; GdkPixmap *pixmap; GdkBitmap *mask; GtkStyle *style; GtkAccelGroup *accel_group; TDSNCHOOSER dsnchoose_t; TDRIVERCHOOSER driverchoose_t; TCOMPONENT component_t; TTRACING tracing_t; TCONNECTIONPOOLING connectionpool_t; void *inparams[6]; if (hwnd == NULL || !GTK_IS_WIDGET (hwnd)) return; accel_group = gtk_accel_group_new (); admin = gtk_dialog_new (); gtk_object_set_data (GTK_OBJECT (admin), "admin", admin); gtk_widget_set_usize (admin, 565, 415); gtk_window_set_title (GTK_WINDOW (admin), "iODBC Data Source Administrator"); gtk_window_set_position (GTK_WINDOW (admin), GTK_WIN_POS_CENTER); gtk_window_set_modal (GTK_WINDOW (admin), TRUE); gtk_window_set_policy (GTK_WINDOW (admin), FALSE, FALSE, FALSE); dialog_vbox1 = GTK_DIALOG (admin)->vbox; gtk_object_set_data (GTK_OBJECT (admin), "dialog_vbox1", dialog_vbox1); gtk_widget_show (dialog_vbox1); notebook1 = gtk_notebook_new (); gtk_widget_ref (notebook1); gtk_object_set_data_full (GTK_OBJECT (admin), "notebook1", notebook1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (notebook1); gtk_box_pack_start (GTK_BOX (dialog_vbox1), notebook1, TRUE, TRUE, 0); vbox1 = gtk_vbox_new (FALSE, 0); gtk_widget_ref (vbox1); gtk_object_set_data_full (GTK_OBJECT (admin), "vbox1", vbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbox1); gtk_container_add (GTK_CONTAINER (notebook1), vbox1); /* User DSN panel */ fixed1 = gtk_fixed_new (); gtk_widget_ref (fixed1); gtk_object_set_data_full (GTK_OBJECT (admin), "fixed1", fixed1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (fixed1); gtk_box_pack_start (GTK_BOX (vbox1), fixed1, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (fixed1), 6); scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); gtk_widget_ref (scrolledwindow1); gtk_object_set_data_full (GTK_OBJECT (admin), "scrolledwindow1", scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (scrolledwindow1); gtk_widget_set_usize (scrolledwindow1, 456, 232); gtk_fixed_put (GTK_FIXED (fixed1), scrolledwindow1, 3, 19); clist1 = gtk_clist_new (3); gtk_widget_ref (clist1); gtk_object_set_data_full (GTK_OBJECT (admin), "clist1", clist1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (clist1); gtk_container_add (GTK_CONTAINER (scrolledwindow1), clist1); gtk_clist_set_column_width (GTK_CLIST (clist1), 0, 100); gtk_clist_set_column_width (GTK_CLIST (clist1), 1, 162); gtk_clist_set_column_width (GTK_CLIST (clist1), 2, 80); gtk_clist_column_titles_show (GTK_CLIST (clist1)); l_name = gtk_label_new (szDSNColumnNames[0]); gtk_widget_ref (l_name); gtk_object_set_data_full (GTK_OBJECT (admin), "l_name", l_name, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (l_name); gtk_clist_set_column_widget (GTK_CLIST (clist1), 0, l_name); l_description = gtk_label_new (szDSNColumnNames[1]); gtk_widget_ref (l_description); gtk_object_set_data_full (GTK_OBJECT (admin), "l_description", l_description, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (l_description); gtk_clist_set_column_widget (GTK_CLIST (clist1), 1, l_description); l_driver = gtk_label_new (szDSNColumnNames[2]); gtk_widget_ref (l_driver); gtk_object_set_data_full (GTK_OBJECT (admin), "l_driver", l_driver, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (l_driver); gtk_clist_set_column_widget (GTK_CLIST (clist1), 2, l_driver); l_usdsn = gtk_label_new ("User Data Sources :"); gtk_widget_ref (l_usdsn); gtk_object_set_data_full (GTK_OBJECT (admin), "l_usdsn", l_usdsn, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (l_usdsn); gtk_fixed_put (GTK_FIXED (fixed1), l_usdsn, 8, 8); gtk_widget_set_uposition (l_usdsn, 8, 8); gtk_widget_set_usize (l_usdsn, 112, 16); gtk_label_set_justify (GTK_LABEL (l_usdsn), GTK_JUSTIFY_LEFT); frame1 = gtk_frame_new (NULL); gtk_widget_ref (frame1); gtk_object_set_data_full (GTK_OBJECT (admin), "frame1", frame1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (frame1); gtk_fixed_put (GTK_FIXED (fixed1), frame1, 8, 264); gtk_widget_set_uposition (frame1, 8, 264); gtk_widget_set_usize (frame1, 546, 64); table1 = gtk_table_new (1, 2, FALSE); gtk_widget_ref (table1); gtk_object_set_data_full (GTK_OBJECT (admin), "table1", table1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (table1); gtk_container_add (GTK_CONTAINER (frame1), table1); gtk_container_set_border_width (GTK_CONTAINER (table1), 6); gtk_table_set_row_spacings (GTK_TABLE (table1), 6); gtk_table_set_col_spacings (GTK_TABLE (table1), 6); l_explanation = gtk_label_new ("An ODBC User data source stores information about how to connect to\nthe indicated data provider. A User data source is only available to you,\nand can only be used on the current machine."); gtk_widget_ref (l_explanation); gtk_object_set_data_full (GTK_OBJECT (admin), "l_explanation", l_explanation, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (l_explanation); gtk_table_attach (GTK_TABLE (table1), l_explanation, 1, 2, 0, 1, (GtkAttachOptions) (0), (GtkAttachOptions) (0), 0, 0); gtk_label_set_justify (GTK_LABEL (l_explanation), GTK_JUSTIFY_LEFT); style = gtk_widget_get_style (GTK_WIDGET (hwnd)); pixmap = gdk_pixmap_create_from_xpm_d (GTK_WIDGET (hwnd)->window, &mask, &style->bg[GTK_STATE_NORMAL], (gchar **) odbc4_xpm); pixmap1 = gtk_pixmap_new (pixmap, mask); gtk_widget_ref (pixmap1); gtk_object_set_data_full (GTK_OBJECT (admin), "pixmap1", pixmap1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (pixmap1); gtk_table_attach (GTK_TABLE (table1), pixmap1, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); vbuttonbox1 = gtk_vbutton_box_new (); gtk_widget_ref (vbuttonbox1); gtk_object_set_data_full (GTK_OBJECT (admin), "vbuttonbox1", vbuttonbox1, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (vbuttonbox1); gtk_fixed_put (GTK_FIXED (fixed1), vbuttonbox1, 472, 16); gtk_widget_set_uposition (vbuttonbox1, 472, 16); gtk_widget_set_usize (vbuttonbox1, 85, 135); b_add = gtk_button_new_with_label (""); b_add_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_add)->child), szDSNButtons[0]); gtk_widget_add_accelerator (b_add, "clicked", accel_group, b_add_key, GDK_MOD1_MASK, 0); gtk_widget_ref (b_add); gtk_object_set_data_full (GTK_OBJECT (admin), "b_add", b_add, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (b_add); gtk_container_add (GTK_CONTAINER (vbuttonbox1), b_add); GTK_WIDGET_SET_FLAGS (b_add, GTK_CAN_DEFAULT); gtk_widget_add_accelerator (b_add, "clicked", accel_group, 'A', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); b_remove = gtk_button_new_with_label (""); b_remove_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_remove)->child), szDSNButtons[1]); gtk_widget_add_accelerator (b_remove, "clicked", accel_group, b_remove_key, GDK_MOD1_MASK, 0); gtk_widget_ref (b_remove); gtk_object_set_data_full (GTK_OBJECT (admin), "b_remove", b_remove, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (b_remove); gtk_container_add (GTK_CONTAINER (vbuttonbox1), b_remove); GTK_WIDGET_SET_FLAGS (b_remove, GTK_CAN_DEFAULT); gtk_widget_add_accelerator (b_remove, "clicked", accel_group, 'R', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); gtk_widget_set_sensitive (b_remove, FALSE); b_configure = gtk_button_new_with_label (""); b_configure_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_configure)->child), szDSNButtons[2]); gtk_widget_add_accelerator (b_configure, "clicked", accel_group, b_configure_key, GDK_MOD1_MASK, 0); gtk_widget_ref (b_configure); gtk_object_set_data_full (GTK_OBJECT (admin), "b_configure", b_configure, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (b_configure); gtk_container_add (GTK_CONTAINER (vbuttonbox1), b_configure); GTK_WIDGET_SET_FLAGS (b_configure, GTK_CAN_DEFAULT); gtk_widget_add_accelerator (b_configure, "clicked", accel_group, 'G', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE); gtk_widget_set_sensitive (b_configure, FALSE); b_test = gtk_button_new_with_label (""); b_test_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_test)->child), szDSNButtons[3]); gtk_widget_add_accelerator (b_test, "clicked", accel_group, b_test_key, GDK_MOD1_MASK, 0); gtk_widget_ref (b_test); gtk_object_set_data_full (GTK_OBJECT (admin), "b_test", b_test, (GtkDestroyNotify) gtk_widget_unref);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?