driversetup.c

来自「一个可以替代windows ODBC驱动程序管理器的通用ODBC数据库引擎」· C语言 代码 · 共 752 行 · 第 1/2 页

C
752
字号
		{		  memcpy (driversetup_t->connstr, cour, size);		  sprintf (driversetup_t->connstr + size - 1, "%s=%s", szKey,		      szValue);		  free (cour);		  size += STRLEN (szKey) + STRLEN (szValue) + 2;		}	      else		driversetup_t->connstr = cour;	    }	  driversetup_t->connstr[size - 1] = 0;	}      driversetup_t->name_entry = driversetup_t->driver_entry =	  driversetup_t->setup_entry = NULL;      driversetup_t->key_list = driversetup_t->filesel = NULL;      gtk_signal_disconnect_by_func (GTK_OBJECT (driversetup_t->mainwnd),	  GTK_SIGNAL_FUNC (gtk_main_quit), NULL);      gtk_main_quit ();      gtk_widget_destroy (driversetup_t->mainwnd);    }}static voiddriversetup_cancel_clicked (GtkWidget *widget, TDRIVERSETUP *driversetup_t){  if (driversetup_t)    {      driversetup_t->connstr = (LPSTR) - 1L;      driversetup_t->name_entry = driversetup_t->driver_entry =	  driversetup_t->setup_entry = NULL;      driversetup_t->key_list = driversetup_t->filesel = NULL;      gtk_signal_disconnect_by_func (GTK_OBJECT (driversetup_t->mainwnd),	  GTK_SIGNAL_FUNC (gtk_main_quit), NULL);      gtk_main_quit ();      gtk_widget_destroy (driversetup_t->mainwnd);    }}static gintdelete_event (GtkWidget *widget, GdkEvent *event,    TDRIVERSETUP *driversetup_t){  driversetup_cancel_clicked (widget, driversetup_t);  return FALSE;}LPSTRcreate_driversetup (HWND hwnd, LPCSTR driver, LPCSTR attrs, BOOL add){  GtkWidget *driversetup, *dialog_vbox1, *fixed1, *t_name, *t_driver,      *t_keyword;  GtkWidget *t_value, *l_name, *b_browse, *t_setup, *l_driver, *b_browse1;  GtkWidget *l_setup, *scrolledwindow1, *clist1, *l_key, *l_value, *l_keyword;  GtkWidget *l_valeur, *vbuttonbox1, *b_add, *b_update, *l_copyright;  GtkWidget *dialog_action_area1, *hbuttonbox1, *b_ok, *b_cancel;  guint b_add_key, b_update_key, b_ok_key, b_cancel_key;  GtkAccelGroup *accel_group;  TDRIVERSETUP driversetup_t;  if (hwnd == NULL || !GTK_IS_WIDGET (hwnd))    return (LPSTR) attrs;  accel_group = gtk_accel_group_new ();  driversetup = gtk_dialog_new ();  gtk_object_set_data (GTK_OBJECT (driversetup), "driversetup", driversetup);  gtk_window_set_title (GTK_WINDOW (driversetup), "ODBC Driver Add/Setup");  gtk_window_set_position (GTK_WINDOW (driversetup), GTK_WIN_POS_CENTER);  gtk_window_set_modal (GTK_WINDOW (driversetup), TRUE);  gtk_window_set_policy (GTK_WINDOW (driversetup), FALSE, FALSE, FALSE);  dialog_vbox1 = GTK_DIALOG (driversetup)->vbox;  gtk_object_set_data (GTK_OBJECT (driversetup), "dialog_vbox1",      dialog_vbox1);  gtk_widget_show (dialog_vbox1);  fixed1 = gtk_fixed_new ();  gtk_widget_ref (fixed1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "fixed1", fixed1,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (fixed1);  gtk_box_pack_start (GTK_BOX (dialog_vbox1), fixed1, TRUE, TRUE, 0);  gtk_container_set_border_width (GTK_CONTAINER (fixed1), 6);  t_name = gtk_entry_new ();  gtk_widget_ref (t_name);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "t_name", t_name,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (t_name);  gtk_fixed_put (GTK_FIXED (fixed1), t_name, 160, 56);  gtk_widget_set_uposition (t_name, 160, 56);  gtk_widget_set_usize (t_name, 250, 0);  t_driver = gtk_entry_new ();  gtk_widget_ref (t_driver);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "t_driver", t_driver,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (t_driver);  gtk_fixed_put (GTK_FIXED (fixed1), t_driver, 160, 88);  gtk_widget_set_uposition (t_driver, 160, 88);  gtk_widget_set_usize (t_driver, 250, 0);  t_keyword = gtk_entry_new ();  gtk_widget_ref (t_keyword);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "t_keyword", t_keyword,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (t_keyword);  gtk_fixed_put (GTK_FIXED (fixed1), t_keyword, 88, 352);  gtk_widget_set_uposition (t_keyword, 88, 352);  gtk_widget_set_usize (t_keyword, 301, 22);  t_value = gtk_entry_new ();  gtk_widget_ref (t_value);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "t_value", t_value,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (t_value);  gtk_fixed_put (GTK_FIXED (fixed1), t_value, 88, 384);  gtk_widget_set_uposition (t_value, 88, 384);  gtk_widget_set_usize (t_value, 301, 22);  l_name = gtk_label_new ("Description of the driver : ");  gtk_widget_ref (l_name);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_name", l_name,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_name);  gtk_fixed_put (GTK_FIXED (fixed1), l_name, 8, 59);  gtk_widget_set_uposition (l_name, 8, 59);  gtk_widget_set_usize (l_name, 0, 0);  gtk_label_set_justify (GTK_LABEL (l_name), GTK_JUSTIFY_LEFT);  b_browse = gtk_button_new_with_label ("Browse ...");  gtk_widget_ref (b_browse);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "b_browse", b_browse,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (b_browse);  gtk_fixed_put (GTK_FIXED (fixed1), b_browse, 424, 88);  gtk_widget_set_uposition (b_browse, 424, 88);  gtk_widget_set_usize (b_browse, 65, 22);  t_setup = gtk_entry_new ();  gtk_widget_ref (t_setup);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "t_setup", t_setup,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (t_setup);  gtk_fixed_put (GTK_FIXED (fixed1), t_setup, 160, 120);  gtk_widget_set_uposition (t_setup, 160, 120);  gtk_widget_set_usize (t_setup, 250, 0);  l_driver = gtk_label_new ("Driver file name : ");  gtk_widget_ref (l_driver);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_driver", l_driver,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_driver);  gtk_fixed_put (GTK_FIXED (fixed1), l_driver, 55, 92);  gtk_widget_set_uposition (l_driver, 55, 92);  gtk_widget_set_usize (l_driver, 0, 0);  gtk_label_set_justify (GTK_LABEL (l_driver), GTK_JUSTIFY_LEFT);  b_browse1 = gtk_button_new_with_label ("Browse ...");  gtk_widget_ref (b_browse1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "b_browse1", b_browse1,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (b_browse1);  gtk_fixed_put (GTK_FIXED (fixed1), b_browse1, 424, 120);  gtk_widget_set_uposition (b_browse1, 424, 120);  gtk_widget_set_usize (b_browse1, 65, 22);  l_setup = gtk_label_new ("Setup file name : ");  gtk_widget_ref (l_setup);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_setup", l_setup,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_setup);  gtk_fixed_put (GTK_FIXED (fixed1), l_setup, 56, 123);  gtk_widget_set_uposition (l_setup, 56, 123);  gtk_widget_set_usize (l_setup, 0, 0);  gtk_label_set_justify (GTK_LABEL (l_setup), GTK_JUSTIFY_LEFT);  scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);  gtk_widget_ref (scrolledwindow1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "scrolledwindow1",      scrolledwindow1, (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (scrolledwindow1);  gtk_fixed_put (GTK_FIXED (fixed1), scrolledwindow1, 8, 152);  gtk_widget_set_uposition (scrolledwindow1, 8, 152);  gtk_widget_set_usize (scrolledwindow1, 480, 192);  clist1 = gtk_clist_new (2);  gtk_widget_ref (clist1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "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, 134);  gtk_clist_set_column_width (GTK_CLIST (clist1), 1, 80);  gtk_clist_column_titles_show (GTK_CLIST (clist1));  l_key = gtk_label_new (szKeysColumnNames[0]);  gtk_widget_ref (l_key);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_key", l_key,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_key);  gtk_clist_set_column_widget (GTK_CLIST (clist1), 0, l_key);  l_value = gtk_label_new (szKeysColumnNames[1]);  gtk_widget_ref (l_value);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_value", l_value,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_value);  gtk_clist_set_column_widget (GTK_CLIST (clist1), 1, l_value);  l_keyword = gtk_label_new ("Keyword : ");  gtk_widget_ref (l_keyword);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_keyword", l_keyword,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_keyword);  gtk_fixed_put (GTK_FIXED (fixed1), l_keyword, 16, 355);  gtk_widget_set_uposition (l_keyword, 16, 355);  gtk_widget_set_usize (l_keyword, 69, 16);  gtk_label_set_justify (GTK_LABEL (l_keyword), GTK_JUSTIFY_LEFT);  l_valeur = gtk_label_new ("Value : ");  gtk_widget_ref (l_valeur);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_valeur", l_valeur,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_valeur);  gtk_fixed_put (GTK_FIXED (fixed1), l_valeur, 32, 388);  gtk_widget_set_uposition (l_valeur, 32, 388);  gtk_widget_set_usize (l_valeur, 51, 16);  gtk_label_set_justify (GTK_LABEL (l_valeur), GTK_JUSTIFY_LEFT);  vbuttonbox1 = gtk_vbutton_box_new ();  gtk_widget_ref (vbuttonbox1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "vbuttonbox1",      vbuttonbox1, (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (vbuttonbox1);  gtk_fixed_put (GTK_FIXED (fixed1), vbuttonbox1, 400, 344);  gtk_widget_set_uposition (vbuttonbox1, 400, 344);  gtk_widget_set_usize (vbuttonbox1, 85, 67);  b_add = gtk_button_new_with_label ("");  b_add_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_add)->child),      szKeysButtons[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 (driversetup), "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_update = gtk_button_new_with_label ("");  b_update_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_update)->child),      szKeysButtons[1]);  gtk_widget_add_accelerator (b_update, "clicked", accel_group,      b_update_key, GDK_MOD1_MASK, 0);  gtk_widget_ref (b_update);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "b_update", b_update,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (b_update);  gtk_container_add (GTK_CONTAINER (vbuttonbox1), b_update);  GTK_WIDGET_SET_FLAGS (b_update, GTK_CAN_DEFAULT);  gtk_widget_add_accelerator (b_update, "clicked", accel_group,      'U', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE);  l_copyright = gtk_label_new ("ODBC Driver Add/Setup");  gtk_widget_ref (l_copyright);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "l_copyright",      l_copyright, (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (l_copyright);  gtk_fixed_put (GTK_FIXED (fixed1), l_copyright, 6, 6);  gtk_widget_set_uposition (l_copyright, 0, 0);  gtk_widget_set_usize (l_copyright, 482, 42);  dialog_action_area1 = GTK_DIALOG (driversetup)->action_area;  gtk_object_set_data (GTK_OBJECT (driversetup), "dialog_action_area1",      dialog_action_area1);  gtk_widget_show (dialog_action_area1);  gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area1), 5);  hbuttonbox1 = gtk_hbutton_box_new ();  gtk_widget_ref (hbuttonbox1);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "hbuttonbox1",      hbuttonbox1, (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (hbuttonbox1);  gtk_box_pack_start (GTK_BOX (dialog_action_area1), hbuttonbox1, TRUE, TRUE,      0);  gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);  gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 10);  b_ok = gtk_button_new_with_label ("");  b_ok_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_ok)->child), "_Ok");  gtk_widget_add_accelerator (b_ok, "clicked", accel_group,      b_ok_key, GDK_MOD1_MASK, 0);  gtk_widget_ref (b_ok);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "b_ok", b_ok,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (b_ok);  gtk_container_add (GTK_CONTAINER (hbuttonbox1), b_ok);  GTK_WIDGET_SET_FLAGS (b_ok, GTK_CAN_DEFAULT);  gtk_widget_add_accelerator (b_ok, "clicked", accel_group,      'O', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE);  b_cancel = gtk_button_new_with_label ("");  b_cancel_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (b_cancel)->child),      "_Cancel");  gtk_widget_add_accelerator (b_cancel, "clicked", accel_group,      b_cancel_key, GDK_MOD1_MASK, 0);  gtk_widget_ref (b_cancel);  gtk_object_set_data_full (GTK_OBJECT (driversetup), "b_cancel", b_cancel,      (GtkDestroyNotify) gtk_widget_unref);  gtk_widget_show (b_cancel);  gtk_container_add (GTK_CONTAINER (hbuttonbox1), b_cancel);  GTK_WIDGET_SET_FLAGS (b_cancel, GTK_CAN_DEFAULT);  gtk_widget_add_accelerator (b_cancel, "clicked", accel_group,      'C', GDK_MOD1_MASK, GTK_ACCEL_VISIBLE);  /* Ok button events */  gtk_signal_connect (GTK_OBJECT (b_ok), "clicked",      GTK_SIGNAL_FUNC (driversetup_ok_clicked), &driversetup_t);  /* Cancel button events */  gtk_signal_connect (GTK_OBJECT (b_cancel), "clicked",      GTK_SIGNAL_FUNC (driversetup_cancel_clicked), &driversetup_t);  /* Add button events */  gtk_signal_connect (GTK_OBJECT (b_add), "clicked",      GTK_SIGNAL_FUNC (driversetup_add_clicked), &driversetup_t);  /* Update button events */  gtk_signal_connect (GTK_OBJECT (b_update), "clicked",      GTK_SIGNAL_FUNC (driversetup_update_clicked), &driversetup_t);  /* Close window button events */  gtk_signal_connect (GTK_OBJECT (driversetup), "delete_event",      GTK_SIGNAL_FUNC (delete_event), &driversetup_t);  gtk_signal_connect (GTK_OBJECT (driversetup), "destroy",      GTK_SIGNAL_FUNC (gtk_main_quit), NULL);  /* List events */  gtk_signal_connect (GTK_OBJECT (clist1), "select_row",      GTK_SIGNAL_FUNC (driversetup_list_select), &driversetup_t);  gtk_signal_connect (GTK_OBJECT (clist1), "unselect_row",      GTK_SIGNAL_FUNC (driversetup_list_unselect), &driversetup_t);  /* Browse button events */  gtk_signal_connect (GTK_OBJECT (b_browse), "clicked",      GTK_SIGNAL_FUNC (driversetup_browsedriver_clicked), &driversetup_t);  gtk_signal_connect (GTK_OBJECT (b_browse1), "clicked",      GTK_SIGNAL_FUNC (driversetup_browsesetup_clicked), &driversetup_t);  gtk_window_add_accel_group (GTK_WINDOW (driversetup), accel_group);  driversetup_t.name_entry = t_name;  driversetup_t.driver_entry = t_driver;  driversetup_t.key_list = clist1;  driversetup_t.bupdate = b_update;  driversetup_t.key_entry = t_keyword;  driversetup_t.value_entry = t_value;  driversetup_t.mainwnd = driversetup;  driversetup_t.setup_entry = t_setup;  /* Parse the attributes line */  parse_attribute_line (&driversetup_t, driver, attrs, add);  gtk_widget_show_all (driversetup);  gtk_main ();  return driversetup_t.connstr;}

⌨️ 快捷键说明

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