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 + -
显示快捷键?