administrator.c 105 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839
  1. /*
  2. * administrator.c
  3. *
  4. * $Id$
  5. *
  6. * The iODBC driver manager.
  7. *
  8. * Copyright (C) 1996-2021 OpenLink Software <[email protected]>
  9. * All Rights Reserved.
  10. *
  11. * This software is released under the terms of either of the following
  12. * licenses:
  13. *
  14. * - GNU Library General Public License (see LICENSE.LGPL)
  15. * - The BSD License (see LICENSE.BSD).
  16. *
  17. * Note that the only valid version of the LGPL license as far as this
  18. * project is concerned is the original GNU Library General Public License
  19. * Version 2, dated June 1991.
  20. *
  21. * While not mandated by the BSD license, any patches you make to the
  22. * iODBC source code may be contributed back into the iODBC project
  23. * at your discretion. Contributions will benefit the Open Source and
  24. * Data Access community as a whole. Submissions may be made at:
  25. *
  26. * http://www.iodbc.org
  27. *
  28. *
  29. * GNU Library Generic Public License Version 2
  30. * ============================================
  31. * This library is free software; you can redistribute it and/or
  32. * modify it under the terms of the GNU Library General Public
  33. * License as published by the Free Software Foundation; only
  34. * Version 2 of the License dated June 1991.
  35. *
  36. * This library is distributed in the hope that it will be useful,
  37. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  38. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  39. * Library General Public License for more details.
  40. *
  41. * You should have received a copy of the GNU Library General Public
  42. * License along with this library; if not, write to the Free
  43. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  44. *
  45. *
  46. * The BSD License
  47. * ===============
  48. * Redistribution and use in source and binary forms, with or without
  49. * modification, are permitted provided that the following conditions
  50. * are met:
  51. *
  52. * 1. Redistributions of source code must retain the above copyright
  53. * notice, this list of conditions and the following disclaimer.
  54. * 2. Redistributions in binary form must reproduce the above copyright
  55. * notice, this list of conditions and the following disclaimer in
  56. * the documentation and/or other materials provided with the
  57. * distribution.
  58. * 3. Neither the name of OpenLink Software Inc. nor the names of its
  59. * contributors may be used to endorse or promote products derived
  60. * from this software without specific prior written permission.
  61. *
  62. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  63. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  64. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  65. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
  66. * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  67. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  68. * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  69. * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  70. * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  71. * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
  72. * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  73. */
  74. #ifdef __linux
  75. # ifndef _GNU_SOURCE
  76. # define _GNU_SOURCE /* make sure dladdr is declared */
  77. # endif
  78. # define HAVE_DL_INFO 1
  79. #endif
  80. #include <iodbc.h>
  81. #include <dlfcn.h>
  82. #include <sys/stat.h>
  83. #include <unistd.h>
  84. #include <time.h>
  85. #include "../gui.h"
  86. #include "odbc4.xpm"
  87. #if defined (HAVE_DLADDR) && !defined(HAVE_DL_INFO)
  88. typedef struct
  89. {
  90. const char *dli_fname; /* File name of defining object. */
  91. void *dli_fbase; /* Load address of that object. */
  92. const char *dli_sname; /* Name of nearest symbol. */
  93. void *dli_saddr; /* Exact value of nearest symbol. */
  94. } Dl_info;
  95. #endif /* HAVE_DL_INFO */
  96. static char *szDriverButtons[] = {
  97. "_Add a driver",
  98. "_Remove the driver",
  99. "Confi_gure the driver"
  100. };
  101. static char *szCpLabels[] = {
  102. "Name",
  103. "Pool timeout (seconds)",
  104. "Probe query"
  105. };
  106. static struct
  107. {
  108. char *lib_name;
  109. char *lib_desc;
  110. char *lib_ver_sym;
  111. } iODBC_Components[] =
  112. {
  113. {"libiodbc.so.2", "iODBC Driver Manager", "iodbc_version"},
  114. {"libiodbcadm.so.2", "iODBC Administrator", "iodbcadm_version"},
  115. {"libiodbcinst.so.2", "iODBC Installer", "iodbcinst_version"},
  116. {"libdrvproxy.so.2", "iODBC Driver Setup Proxy", "iodbcproxy_version"},
  117. {"libtranslator.so.2", "iODBC Translation Manager", "iodbctrans_version"}
  118. };
  119. static void
  120. addcomponents_to_list (GtkWidget *widget)
  121. {
  122. char _date[1024], _size[1024];
  123. char *data[5];
  124. struct stat _stat;
  125. #if defined(HAVE_DLADDR)
  126. Dl_info info;
  127. #endif
  128. void *handle, *proc;
  129. int i;
  130. if (!GTK_IS_CLIST (widget))
  131. return;
  132. gtk_clist_clear (GTK_CLIST (widget));
  133. for (i = 0; i < sizeof (iODBC_Components) / sizeof (iODBC_Components[0]);
  134. i++)
  135. {
  136. /*
  137. * Collect basic info on the components
  138. */
  139. data[0] = iODBC_Components[i].lib_desc;
  140. data[1] = VERSION;
  141. data[2] = iODBC_Components[i].lib_name;
  142. data[3] = ""; /* Modification Date */
  143. data[4] = ""; /* Size */
  144. if ((handle = dlopen (iODBC_Components[i].lib_name, RTLD_LAZY)))
  145. {
  146. /* Find out the version of the library */
  147. if ((proc = dlsym (handle, iODBC_Components[i].lib_ver_sym)))
  148. data[1] = *(char **) proc;
  149. /* Check the size and modification date of the library */
  150. #ifdef HAVE_DLADDR
  151. dladdr (proc, &info);
  152. if (!stat (info.dli_fname, &_stat))
  153. {
  154. sprintf (_size, "%lu Kb",
  155. (unsigned long) _stat.st_size / 1024L);
  156. sprintf (_date, "%s", ctime (&_stat.st_mtime));
  157. _date[strlen (_date) - 1] = '\0'; /* remove last \n */
  158. data[3] = _date;
  159. data[4] = _size;
  160. }
  161. #endif
  162. gtk_clist_append (GTK_CLIST (widget), data);
  163. dlclose (handle);
  164. }
  165. }
  166. if (GTK_CLIST (widget)->rows > 0)
  167. {
  168. gtk_clist_columns_autosize (GTK_CLIST (widget));
  169. gtk_clist_sort (GTK_CLIST (widget));
  170. }
  171. }
  172. static void
  173. addconnectionpool_to_list (GtkWidget *widget)
  174. {
  175. char *curr, *buffer = (char *) malloc (sizeof (char) * 65536), *szDriver;
  176. char cptime[128], cpprobe[1024];
  177. char *data[3];
  178. int len, i;
  179. BOOL careabout;
  180. UWORD confMode = ODBC_USER_DSN;
  181. if (!buffer || !GTK_IS_CLIST (widget))
  182. return;
  183. gtk_clist_clear (GTK_CLIST (widget));
  184. /* Get the current config mode */
  185. while (confMode != ODBC_SYSTEM_DSN + 1)
  186. {
  187. /* Get the list of drivers in the user context */
  188. SQLSetConfigMode (confMode);
  189. #ifdef WIN32
  190. len =
  191. SQLGetPrivateProfileString ("ODBC 32 bit Drivers", NULL, "", buffer,
  192. 65535, "odbcinst.ini");
  193. #else
  194. len =
  195. SQLGetPrivateProfileString ("ODBC Drivers", NULL, "", buffer, 65535,
  196. "odbcinst.ini");
  197. #endif
  198. if (len)
  199. goto process;
  200. goto end;
  201. process:
  202. for (curr = buffer; *curr; curr += (STRLEN (curr) + 1))
  203. {
  204. /* Shadowing system odbcinst.ini */
  205. for (i = 0, careabout = TRUE; i < GTK_CLIST (widget)->rows; i++)
  206. {
  207. gtk_clist_get_text (GTK_CLIST (widget), i, 0, &szDriver);
  208. if (!strcmp (szDriver, curr))
  209. {
  210. careabout = FALSE;
  211. break;
  212. }
  213. }
  214. if (!careabout)
  215. continue;
  216. SQLSetConfigMode (confMode);
  217. #ifdef WIN32
  218. SQLGetPrivateProfileString ("ODBC 32 bit Drivers", curr, "", cpprobe,
  219. sizeof (cpprobe), "odbcinst.ini");
  220. #else
  221. SQLGetPrivateProfileString ("ODBC Drivers", curr, "", cpprobe,
  222. sizeof (cpprobe), "odbcinst.ini");
  223. #endif
  224. /* Check if the driver is installed */
  225. if (strcasecmp (cpprobe, "Installed"))
  226. goto end;
  227. /* Get the driver library name */
  228. SQLSetConfigMode (confMode);
  229. if (!SQLGetPrivateProfileString (curr, "CPTimeout", "<Not pooled>",
  230. cptime, sizeof (cptime), "odbcinst.ini"))
  231. {
  232. SQLSetConfigMode (confMode);
  233. SQLGetPrivateProfileString ("Default", "CPTimeout",
  234. "<Not pooled>", cptime, sizeof (cptime), "odbcinst.ini");
  235. }
  236. if (!SQLGetPrivateProfileString (curr, "CPProbe", "",
  237. cpprobe, sizeof (cpprobe), "odbcinst.ini"))
  238. {
  239. SQLSetConfigMode (confMode);
  240. SQLGetPrivateProfileString ("Default", "CPProbe",
  241. "", cpprobe, sizeof (cpprobe), "odbcinst.ini");
  242. }
  243. if (STRLEN (curr) && STRLEN (cptime))
  244. {
  245. data[0] = curr;
  246. data[1] = cptime;
  247. data[2] = cpprobe;
  248. gtk_clist_append (GTK_CLIST (widget), data);
  249. }
  250. }
  251. end:
  252. if (confMode == ODBC_USER_DSN)
  253. confMode = ODBC_SYSTEM_DSN;
  254. else
  255. confMode = ODBC_SYSTEM_DSN + 1;
  256. }
  257. if (GTK_CLIST (widget)->rows > 0)
  258. {
  259. gtk_clist_columns_autosize (GTK_CLIST (widget));
  260. gtk_clist_sort (GTK_CLIST (widget));
  261. }
  262. /* Make the clean up */
  263. free (buffer);
  264. }
  265. static void
  266. admin_apply_tracing (TTRACING *tracing_t)
  267. {
  268. /* Write keywords for tracing in the ini file */
  269. SQLWritePrivateProfileString ("ODBC", "Trace",
  270. (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tracing_t->
  271. allthetime_rb)) == TRUE
  272. || gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tracing_t->
  273. onetime_rb)) == TRUE) ? "1" : "0", NULL);
  274. SQLWritePrivateProfileString ("ODBC", "TraceAutoStop",
  275. gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tracing_t->
  276. onetime_rb)) ? "1" : "0", NULL);
  277. SQLWritePrivateProfileString ("ODBC", "TraceFile",
  278. gtk_entry_get_text (GTK_ENTRY (tracing_t->logfile_entry)), NULL);
  279. }
  280. static void
  281. admin_switch_page (GtkNotebook *notebook, GtkNotebookPage *page,
  282. gint page_num, void **inparams)
  283. {
  284. TDSNCHOOSER *dsnchoose_t = (inparams) ? inparams[0] : NULL;
  285. TDRIVERCHOOSER *driverchoose_t = (inparams) ? inparams[1] : NULL;
  286. TTRACING *tracing_t = (inparams) ? inparams[2] : NULL;
  287. TCOMPONENT *component_t = (inparams) ? inparams[3] : NULL;
  288. TCONNECTIONPOOLING *connectionpool_t = (inparams) ? inparams[4] : NULL;
  289. BOOL trace = FALSE, traceauto = FALSE, perfmon = FALSE;
  290. char tokenstr[4096] = { 0 };
  291. switch (page_num)
  292. {
  293. /* The User DSN panel */
  294. case 0:
  295. if (dsnchoose_t)
  296. {
  297. dsnchoose_t->type_dsn = USER_DSN;
  298. adddsns_to_list (dsnchoose_t->udsnlist, FALSE);
  299. }
  300. break;
  301. /* The System DSN panel */
  302. case 1:
  303. if (dsnchoose_t)
  304. {
  305. dsnchoose_t->type_dsn = SYSTEM_DSN;
  306. adddsns_to_list (dsnchoose_t->sdsnlist, TRUE);
  307. }
  308. break;
  309. /* The File DSN panel */
  310. case 2:
  311. if (dsnchoose_t)
  312. {
  313. dsnchoose_t->type_dsn = FILE_DSN;
  314. addlistofdir_to_optionmenu(dsnchoose_t->dir_combo,
  315. dsnchoose_t->curr_dir, dsnchoose_t);
  316. adddirectories_to_list(dsnchoose_t->mainwnd,
  317. dsnchoose_t->dir_list, dsnchoose_t->curr_dir);
  318. addfiles_to_list(dsnchoose_t->mainwnd,
  319. dsnchoose_t->file_list, dsnchoose_t->curr_dir);
  320. }
  321. break;
  322. /* The ODBC Driver panel */
  323. case 3:
  324. if (driverchoose_t)
  325. {
  326. adddrivers_to_list (driverchoose_t->driverlist,
  327. driverchoose_t->mainwnd);
  328. gtk_widget_set_sensitive (driverchoose_t->b_remove, FALSE);
  329. gtk_widget_set_sensitive (driverchoose_t->b_configure, FALSE);
  330. }
  331. break;
  332. /* The Connection Pooling */
  333. case 4:
  334. if (!connectionpool_t->changed)
  335. {
  336. /* Get the connection pooling options */
  337. SQLGetPrivateProfileString ("ODBC Connection Pooling", "Perfmon",
  338. "", tokenstr, sizeof (tokenstr), "odbcinst.ini");
  339. if (!strcasecmp (tokenstr, "1") || !strcasecmp (tokenstr, "On"))
  340. perfmon = TRUE;
  341. SQLGetPrivateProfileString ("ODBC Connection Pooling", "Retry Wait",
  342. "", tokenstr, sizeof (tokenstr), "odbcinst.ini");
  343. if (perfmon)
  344. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
  345. (connectionpool_t->enperfmon_rb), 1);
  346. else
  347. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
  348. (connectionpool_t->disperfmon_rb), 1);
  349. gtk_entry_set_text (GTK_ENTRY (connectionpool_t->retwait_entry),
  350. tokenstr);
  351. connectionpool_t->changed = TRUE;
  352. }
  353. addconnectionpool_to_list (connectionpool_t->driverlist);
  354. break;
  355. /* The tracing panel */
  356. case 5:
  357. if (!tracing_t->changed)
  358. {
  359. /* Get the traces options */
  360. SQLGetPrivateProfileString ("ODBC", "Trace", "", tokenstr,
  361. sizeof (tokenstr), NULL);
  362. if (!strcasecmp (tokenstr, "1") || !strcasecmp (tokenstr, "On"))
  363. trace = TRUE;
  364. SQLGetPrivateProfileString ("ODBC", "TraceAutoStop", "", tokenstr,
  365. sizeof (tokenstr), NULL);
  366. if (!strcasecmp (tokenstr, "1") || !strcasecmp (tokenstr, "On"))
  367. traceauto = TRUE;
  368. SQLGetPrivateProfileString ("ODBC", "TraceFile", "", tokenstr,
  369. sizeof (tokenstr), NULL);
  370. /* Set the widgets */
  371. if (trace)
  372. {
  373. if (!traceauto)
  374. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tracing_t->
  375. allthetime_rb), 1);
  376. else
  377. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tracing_t->
  378. onetime_rb), 1);
  379. }
  380. else
  381. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tracing_t->
  382. donttrace_rb), 1);
  383. gtk_entry_set_text (GTK_ENTRY (tracing_t->logfile_entry),
  384. (STRLEN (tokenstr)) ? tokenstr : "sql.log");
  385. tracing_t->changed = TRUE;
  386. }
  387. break;
  388. /* The About panel */
  389. case 6:
  390. if (component_t)
  391. addcomponents_to_list (component_t->componentlist);
  392. break;
  393. };
  394. if (dsnchoose_t)
  395. {
  396. if (dsnchoose_t->uremove)
  397. gtk_widget_set_sensitive (dsnchoose_t->uremove, FALSE);
  398. if (dsnchoose_t->uconfigure)
  399. gtk_widget_set_sensitive (dsnchoose_t->uconfigure, FALSE);
  400. if (dsnchoose_t->utest)
  401. gtk_widget_set_sensitive (dsnchoose_t->utest, FALSE);
  402. if (dsnchoose_t->sremove)
  403. gtk_widget_set_sensitive (dsnchoose_t->sremove, FALSE);
  404. if (dsnchoose_t->sconfigure)
  405. gtk_widget_set_sensitive (dsnchoose_t->sconfigure, FALSE);
  406. if (dsnchoose_t->stest)
  407. gtk_widget_set_sensitive (dsnchoose_t->stest, FALSE);
  408. if (dsnchoose_t->fremove)
  409. gtk_widget_set_sensitive(dsnchoose_t->fremove, FALSE);
  410. if (dsnchoose_t->fconfigure)
  411. gtk_widget_set_sensitive(dsnchoose_t->fconfigure, FALSE);
  412. if (dsnchoose_t->ftest)
  413. gtk_widget_set_sensitive(dsnchoose_t->ftest, FALSE);
  414. }
  415. }
  416. static void
  417. tracing_start_clicked (GtkWidget *widget, TTRACING *tracing_t)
  418. {
  419. if (tracing_t)
  420. admin_apply_tracing (tracing_t);
  421. }
  422. static void
  423. tracing_logfile_choosen (GtkWidget *widget, TTRACING *tracing_t)
  424. {
  425. if (tracing_t)
  426. {
  427. gtk_entry_set_text (GTK_ENTRY (tracing_t->logfile_entry),
  428. gtk_file_selection_get_filename (GTK_FILE_SELECTION (tracing_t->
  429. filesel)));
  430. tracing_t->filesel = NULL;
  431. }
  432. }
  433. static void
  434. tracing_browse_clicked (GtkWidget *widget, TTRACING *tracing_t)
  435. {
  436. GtkWidget *filesel;
  437. if (tracing_t)
  438. {
  439. filesel = gtk_file_selection_new ("Choose your log file ...");
  440. gtk_window_set_modal (GTK_WINDOW (filesel), TRUE);
  441. gtk_file_selection_set_filename (GTK_FILE_SELECTION (filesel),
  442. gtk_entry_get_text (GTK_ENTRY (tracing_t->logfile_entry)));
  443. /* Ok button events */
  444. gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filesel)->
  445. ok_button), "clicked",
  446. GTK_SIGNAL_FUNC (tracing_logfile_choosen), tracing_t);
  447. gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filesel)->
  448. ok_button), "clicked", GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
  449. /* Cancel button events */
  450. gtk_signal_connect (GTK_OBJECT (GTK_FILE_SELECTION (filesel)->
  451. cancel_button), "clicked", GTK_SIGNAL_FUNC (gtk_main_quit),
  452. NULL);
  453. /* Close window button events */
  454. gtk_signal_connect (GTK_OBJECT (filesel), "delete_event",
  455. GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
  456. tracing_t->filesel = filesel;
  457. gtk_widget_show_all (filesel);
  458. gtk_main ();
  459. gtk_widget_destroy (filesel);
  460. tracing_t->filesel = NULL;
  461. }
  462. }
  463. static void
  464. cpdriver_list_select (GtkWidget *widget, gint row, gint column,
  465. GdkEvent *event, TCONNECTIONPOOLING *connectionpool_t)
  466. {
  467. char *szDriver = NULL, *cptimeout, *cpprobe;
  468. char sztime[1024] = { 0 };
  469. char szprobe[1024] = { 0 };
  470. TCONNECTIONPOOLING choose_t;
  471. if (connectionpool_t)
  472. {
  473. choose_t = *connectionpool_t;
  474. if (GTK_CLIST (connectionpool_t->driverlist)->selection != NULL)
  475. {
  476. memset(choose_t.timeout, 0, sizeof(choose_t.timeout));
  477. memset(choose_t.probe, 0, sizeof(choose_t.probe));
  478. gtk_clist_get_text (GTK_CLIST (choose_t.driverlist),
  479. GPOINTER_TO_INT (GTK_CLIST (choose_t.driverlist)->
  480. selection->data), 0, &szDriver);
  481. gtk_clist_get_text (GTK_CLIST (choose_t.driverlist),
  482. GPOINTER_TO_INT (GTK_CLIST (choose_t.driverlist)->
  483. selection->data), 1, &cptimeout);
  484. gtk_clist_get_text (GTK_CLIST (choose_t.driverlist),
  485. GPOINTER_TO_INT (GTK_CLIST (choose_t.driverlist)->
  486. selection->data), 2, &cpprobe);
  487. strncpy (choose_t.timeout, cptimeout, sizeof(choose_t.timeout)-1);
  488. strncpy (choose_t.probe, cpprobe, sizeof(choose_t.probe)-1);
  489. strncpy (choose_t.driver, szDriver, sizeof(choose_t.driver)-1);
  490. }
  491. if (szDriver && event && event->type == GDK_2BUTTON_PRESS
  492. && (create_connectionpool (connectionpool_t->mainwnd, &choose_t) == TRUE))
  493. {
  494. sprintf (sztime, "CPTimeout=%s", choose_t.timeout);
  495. if (!SQLConfigDriver (connectionpool_t->mainwnd, ODBC_CONFIG_DRIVER,
  496. szDriver, sztime, NULL, 0, NULL))
  497. _iodbcdm_errorbox (connectionpool_t->mainwnd, szDriver,
  498. "An error occured when trying to set the connection pooling time-out : ");
  499. sprintf (szprobe, "CPProbe=%s", choose_t.probe);
  500. if (!SQLConfigDriver (connectionpool_t->mainwnd, ODBC_CONFIG_DRIVER,
  501. szDriver, szprobe, NULL, 0, NULL))
  502. _iodbcdm_errorbox (connectionpool_t->mainwnd, szDriver,
  503. "An error occured when trying to set the connection probe query : ");
  504. addconnectionpool_to_list (connectionpool_t->driverlist);
  505. }
  506. }
  507. }
  508. static void
  509. driver_list_select (GtkWidget *widget, gint row, gint column,
  510. GdkEvent *event, TDRIVERCHOOSER *choose_t)
  511. {
  512. char *szDriver = NULL;
  513. if (choose_t)
  514. {
  515. if (GTK_CLIST (choose_t->driverlist)->selection != NULL)
  516. gtk_clist_get_text (GTK_CLIST (choose_t->driverlist),
  517. GPOINTER_TO_INT (GTK_CLIST (choose_t->driverlist)->selection->
  518. data), 0, &szDriver);
  519. if (szDriver && event && event->type == GDK_2BUTTON_PRESS)
  520. gtk_signal_emit_by_name (GTK_OBJECT (choose_t->b_configure),
  521. "clicked", choose_t);
  522. else
  523. {
  524. gtk_widget_set_sensitive (choose_t->b_remove, TRUE);
  525. gtk_widget_set_sensitive (choose_t->b_configure, TRUE);
  526. }
  527. }
  528. }
  529. static void
  530. driver_list_unselect (GtkWidget *widget, gint row, gint column,
  531. GdkEvent *event, TDRIVERCHOOSER *choose_t)
  532. {
  533. if (choose_t)
  534. {
  535. gtk_widget_set_sensitive (choose_t->b_remove, FALSE);
  536. gtk_widget_set_sensitive (choose_t->b_configure, FALSE);
  537. }
  538. }
  539. static void
  540. driver_add_clicked (GtkWidget *widget, TDRIVERCHOOSER *choose_t)
  541. {
  542. char connstr[4096] = { 0 };
  543. char tokenstr[4096] = { 0 };
  544. char *cstr;
  545. if (choose_t)
  546. {
  547. cstr = create_driversetup (choose_t->mainwnd, NULL, connstr, FALSE, TRUE);
  548. if (cstr && cstr != connstr && cstr != (LPSTR) - 1L)
  549. {
  550. SQLSetConfigMode (ODBC_USER_DSN);
  551. if (!SQLInstallDriverEx (cstr, NULL, tokenstr, sizeof (tokenstr),
  552. NULL, ODBC_INSTALL_COMPLETE, NULL))
  553. {
  554. _iodbcdm_errorbox (choose_t->mainwnd, NULL,
  555. "An error occured when trying to add the driver : ");
  556. goto done;
  557. }
  558. free (cstr);
  559. }
  560. adddrivers_to_list (choose_t->driverlist, choose_t->mainwnd);
  561. done:
  562. if (GTK_CLIST (choose_t->driverlist)->selection == NULL)
  563. {
  564. if (choose_t->b_remove)
  565. gtk_widget_set_sensitive (choose_t->b_remove, FALSE);
  566. if (choose_t->b_configure)
  567. gtk_widget_set_sensitive (choose_t->b_configure, FALSE);
  568. }
  569. }
  570. return;
  571. }
  572. static void
  573. driver_remove_clicked (GtkWidget *widget, TDRIVERCHOOSER *choose_t)
  574. {
  575. char *szDriver = NULL;
  576. if (choose_t)
  577. {
  578. /* Retrieve the driver name */
  579. if (GTK_CLIST (choose_t->driverlist)->selection != NULL)
  580. gtk_clist_get_text (GTK_CLIST (choose_t->driverlist),
  581. GPOINTER_TO_INT (GTK_CLIST (choose_t->driverlist)->selection->
  582. data), 0, &szDriver);
  583. /* Call the right function */
  584. if (szDriver
  585. && create_confirm (choose_t->mainwnd, szDriver,
  586. "Are you sure you want to remove this driver ?"))
  587. {
  588. if (!SQLRemoveDriver (szDriver, create_confirm (choose_t->mainwnd,
  589. szDriver,
  590. "Do you want to remove all the DSN associated to this driver ?"),
  591. NULL))
  592. {
  593. _iodbcdm_errorbox (choose_t->mainwnd, szDriver,
  594. "An error occured when trying to remove the driver : ");
  595. goto done;
  596. }
  597. adddrivers_to_list (choose_t->driverlist, choose_t->mainwnd);
  598. }
  599. done:
  600. if (GTK_CLIST (choose_t->driverlist)->selection == NULL)
  601. {
  602. if (choose_t->b_remove)
  603. gtk_widget_set_sensitive (choose_t->b_remove, FALSE);
  604. if (choose_t->b_configure)
  605. gtk_widget_set_sensitive (choose_t->b_configure, FALSE);
  606. }
  607. }
  608. return;
  609. }
  610. static void
  611. driver_configure_clicked (GtkWidget *widget, TDRIVERCHOOSER *choose_t)
  612. {
  613. char connstr[4096] = { 0 };
  614. char tokenstr[4096] = { 0 };
  615. char *szDriver = NULL, *curr, *cour, *cstr;
  616. int size = sizeof (connstr);
  617. if (choose_t)
  618. {
  619. /* Retrieve the driver name */
  620. if (GTK_CLIST (choose_t->driverlist)->selection != NULL)
  621. gtk_clist_get_text (GTK_CLIST (choose_t->driverlist),
  622. GPOINTER_TO_INT (GTK_CLIST (choose_t->driverlist)->selection->
  623. data), 0, &szDriver);
  624. /* Call the right function */
  625. if (szDriver)
  626. {
  627. SQLSetConfigMode (ODBC_USER_DSN);
  628. if (!SQLGetPrivateProfileString (szDriver, NULL, "", tokenstr,
  629. sizeof (tokenstr), "odbcinst.ini"))
  630. {
  631. _iodbcdm_errorbox (choose_t->mainwnd, szDriver,
  632. "An error occured when trying to configure the driver : ");
  633. goto done;
  634. }
  635. for (curr = tokenstr, cour = connstr; *curr;
  636. curr += (STRLEN (curr) + 1), cour += (STRLEN (cour) + 1))
  637. {
  638. STRCPY (cour, curr);
  639. cour[STRLEN (curr)] = '=';
  640. SQLSetConfigMode (ODBC_USER_DSN);
  641. SQLGetPrivateProfileString (szDriver, curr, "",
  642. cour + STRLEN (curr) + 1, size - STRLEN (curr) - 1,
  643. "odbcinst.ini");
  644. size -= (STRLEN (cour) + 1);
  645. }
  646. *cour = 0;
  647. cstr =
  648. create_driversetup (choose_t->mainwnd, szDriver, connstr,
  649. FALSE, TRUE);
  650. if (cstr && cstr != connstr && cstr != (LPSTR) - 1L)
  651. {
  652. SQLSetConfigMode (ODBC_USER_DSN);
  653. if (!SQLInstallDriverEx (cstr, NULL, tokenstr,
  654. sizeof (tokenstr), NULL, ODBC_INSTALL_COMPLETE, NULL))
  655. {
  656. _iodbcdm_errorbox (choose_t->mainwnd, NULL,
  657. "An error occured when trying to configure the driver : ");
  658. goto done;
  659. }
  660. free (cstr);
  661. }
  662. adddrivers_to_list (choose_t->driverlist, choose_t->mainwnd);
  663. }
  664. done:
  665. if (GTK_CLIST (choose_t->driverlist)->selection == NULL)
  666. {
  667. if (choose_t->b_remove)
  668. gtk_widget_set_sensitive (choose_t->b_remove, FALSE);
  669. if (choose_t->b_configure)
  670. gtk_widget_set_sensitive (choose_t->b_configure, FALSE);
  671. }
  672. }
  673. return;
  674. }
  675. static void
  676. admin_ok_clicked (GtkWidget *widget, void **inparams)
  677. {
  678. TDSNCHOOSER *dsnchoose_t = (inparams) ? inparams[0] : NULL;
  679. TDRIVERCHOOSER *driverchoose_t = (inparams) ? inparams[1] : NULL;
  680. TTRACING *tracing_t = (inparams) ? inparams[2] : NULL;
  681. TCOMPONENT *component_t = (inparams) ? inparams[3] : NULL;
  682. TCONNECTIONPOOLING *connectionpool_t = (inparams) ? inparams[4] : NULL;
  683. GtkWidget *mainwnd = (inparams) ? inparams[5] : NULL;
  684. if (dsnchoose_t)
  685. {
  686. dsnchoose_t->udsnlist = dsnchoose_t->sdsnlist = dsnchoose_t->dir_list =
  687. NULL;
  688. dsnchoose_t->fadd = dsnchoose_t->fremove = dsnchoose_t->ftest =
  689. dsnchoose_t->fconfigure = dsnchoose_t->fsetdir = NULL;
  690. dsnchoose_t->uadd = dsnchoose_t->uremove = dsnchoose_t->utest =
  691. dsnchoose_t->uconfigure = NULL;
  692. dsnchoose_t->sadd = dsnchoose_t->sremove = dsnchoose_t->stest =
  693. dsnchoose_t->sconfigure = NULL;
  694. dsnchoose_t->file_list = dsnchoose_t->file_entry =
  695. dsnchoose_t->dir_combo = NULL;
  696. dsnchoose_t->type_dsn = -1;
  697. dsnchoose_t->dsn = NULL;
  698. }
  699. if (driverchoose_t)
  700. driverchoose_t->driverlist = NULL;
  701. if (component_t)
  702. component_t->componentlist = NULL;
  703. if (tracing_t)
  704. {
  705. if (tracing_t->changed)
  706. admin_apply_tracing (tracing_t);
  707. tracing_t->logfile_entry = tracing_t->tracelib_entry =
  708. tracing_t->b_start_stop = NULL;
  709. tracing_t->donttrace_rb = tracing_t->allthetime_rb =
  710. tracing_t->onetime_rb = NULL;
  711. }
  712. if (connectionpool_t)
  713. {
  714. if (connectionpool_t->changed)
  715. {
  716. /* Write keywords for tracing in the ini file */
  717. SQLWritePrivateProfileString ("ODBC Connection Pooling", "PerfMon",
  718. (GTK_TOGGLE_BUTTON (connectionpool_t->enperfmon_rb)->
  719. active) ? "1" : "0", "odbcinst.ini");
  720. SQLWritePrivateProfileString ("ODBC Connection Pooling",
  721. "Retry Wait",
  722. gtk_entry_get_text (GTK_ENTRY (connectionpool_t->
  723. retwait_entry)), "odbcinst.ini");
  724. }
  725. connectionpool_t->driverlist = connectionpool_t->mainwnd = NULL;
  726. connectionpool_t->enperfmon_rb = connectionpool_t->disperfmon_rb = NULL;
  727. connectionpool_t->retwait_entry = NULL;
  728. }
  729. if (mainwnd)
  730. {
  731. gtk_signal_disconnect_by_func (GTK_OBJECT (mainwnd),
  732. GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
  733. gtk_main_quit ();
  734. gtk_widget_destroy (mainwnd);
  735. }
  736. }
  737. static void
  738. admin_cancel_clicked (GtkWidget *widget, void **inparams)
  739. {
  740. TDSNCHOOSER *dsnchoose_t = (inparams) ? inparams[0] : NULL;
  741. TDRIVERCHOOSER *driverchoose_t = (inparams) ? inparams[1] : NULL;
  742. TTRACING *tracing_t = (inparams) ? inparams[2] : NULL;
  743. TCOMPONENT *component_t = (inparams) ? inparams[3] : NULL;
  744. TCONNECTIONPOOLING *connectionpool_t = (inparams) ? inparams[4] : NULL;
  745. GtkWidget *mainwnd = (inparams) ? inparams[5] : NULL;
  746. if (dsnchoose_t)
  747. {
  748. dsnchoose_t->udsnlist = dsnchoose_t->sdsnlist = dsnchoose_t->dir_list =
  749. NULL;
  750. dsnchoose_t->fadd = dsnchoose_t->fremove = dsnchoose_t->ftest =
  751. dsnchoose_t->fconfigure = dsnchoose_t->fsetdir = NULL;
  752. dsnchoose_t->uadd = dsnchoose_t->uremove = dsnchoose_t->utest =
  753. dsnchoose_t->uconfigure = NULL;
  754. dsnchoose_t->sadd = dsnchoose_t->sremove = dsnchoose_t->stest =
  755. dsnchoose_t->sconfigure = NULL;
  756. dsnchoose_t->file_list = dsnchoose_t->file_entry =
  757. dsnchoose_t->dir_combo = NULL;
  758. dsnchoose_t->type_dsn = -1;
  759. dsnchoose_t->dsn = NULL;
  760. }
  761. if (driverchoose_t)
  762. driverchoose_t->driverlist = NULL;
  763. if (component_t)
  764. component_t->componentlist = NULL;
  765. if (tracing_t)
  766. {
  767. tracing_t->logfile_entry = tracing_t->tracelib_entry =
  768. tracing_t->b_start_stop = NULL;
  769. tracing_t->donttrace_rb = tracing_t->allthetime_rb =
  770. tracing_t->onetime_rb = NULL;
  771. }
  772. if (connectionpool_t)
  773. {
  774. connectionpool_t->driverlist = connectionpool_t->mainwnd = NULL;
  775. connectionpool_t->enperfmon_rb = connectionpool_t->disperfmon_rb = NULL;
  776. connectionpool_t->retwait_entry = NULL;
  777. }
  778. if (mainwnd)
  779. {
  780. gtk_signal_disconnect_by_func (GTK_OBJECT (mainwnd),
  781. GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
  782. gtk_main_quit ();
  783. gtk_widget_destroy (mainwnd);
  784. }
  785. }
  786. static gint
  787. delete_event (GtkWidget *widget, GdkEvent *event, void **inparams)
  788. {
  789. admin_cancel_clicked (widget, inparams);
  790. return FALSE;
  791. }
  792. void
  793. create_administrator (HWND hwnd)
  794. {
  795. GdkPixmap *pixmap;
  796. GdkBitmap *mask;
  797. GtkStyle *style;
  798. GtkWidget *admin;
  799. GtkWidget *dialog_vbox1;
  800. GtkWidget *notebook1;
  801. GtkWidget *vbox1;
  802. GtkWidget *frame1;
  803. GtkWidget *alignment1;
  804. GtkWidget *hbox2;
  805. GtkWidget *scrolledwindow1;
  806. GtkWidget *lst_usources;
  807. GtkWidget *lu_name;
  808. GtkWidget *lu_description;
  809. GtkWidget *lu_driver;
  810. GtkWidget *vbox3;
  811. GtkWidget *bu_add;
  812. GtkWidget *bu_remove;
  813. GtkWidget *bu_config;
  814. GtkWidget *bu_test;
  815. GtkWidget *frame18;
  816. GtkWidget *alignment18;
  817. GtkWidget *l_usdsn;
  818. GtkWidget *frame2;
  819. GtkWidget *alignment2;
  820. GtkWidget *hbox3;
  821. GtkWidget *pixmap1;
  822. GtkWidget *label14;
  823. GtkWidget *label1;
  824. GtkWidget *vbox4;
  825. GtkWidget *frame3;
  826. GtkWidget *alignment3;
  827. GtkWidget *hbox4;
  828. GtkWidget *scrolledwindow2;
  829. GtkWidget *lst_ssources;
  830. GtkWidget *ls_name;
  831. GtkWidget *ls_description;
  832. GtkWidget *ls_driver;
  833. GtkWidget *vbox5;
  834. GtkWidget *bs_add;
  835. GtkWidget *bs_remove;
  836. GtkWidget *bs_config;
  837. GtkWidget *bs_test;
  838. GtkWidget *frame19;
  839. GtkWidget *alignment19;
  840. GtkWidget *label18;
  841. GtkWidget *frame4;
  842. GtkWidget *alignment4;
  843. GtkWidget *hbox5;
  844. GtkWidget *pixmap2;
  845. GtkWidget *label19;
  846. GtkWidget *label2;
  847. GtkWidget *vbox6;
  848. GtkWidget *frame5;
  849. GtkWidget *alignment5;
  850. GtkWidget *hbox6;
  851. GtkWidget *vbox8;
  852. GtkWidget *hbox8;
  853. GtkWidget *frame7;
  854. GtkWidget *alignment7;
  855. GtkWidget *hbox9;
  856. GtkWidget *l_lookin;
  857. GtkWidget *optionmenu1;
  858. GtkWidget *menu1;
  859. GtkWidget *hbox11;
  860. GtkWidget *scrolledwindow3;
  861. GtkWidget *lst_fdir;
  862. GtkWidget *l_directory;
  863. GtkWidget *scrolledwindow4;
  864. GtkWidget *lst_ffiles;
  865. GtkWidget *l_files;
  866. GtkWidget *frame8;
  867. GtkWidget *alignment8;
  868. GtkWidget *hbox10;
  869. GtkWidget *l_selected;
  870. GtkWidget *t_fileselected;
  871. GtkWidget *vbox7;
  872. GtkWidget *bf_add;
  873. GtkWidget *bf_remove;
  874. GtkWidget *bf_config;
  875. GtkWidget *bf_test;
  876. GtkWidget *bf_setdir;
  877. GtkWidget *frame20;
  878. GtkWidget *alignment20;
  879. GtkWidget *frame6;
  880. GtkWidget *alignment6;
  881. GtkWidget *hbox7;
  882. GtkWidget *pixmap3;
  883. GtkWidget *label24;
  884. GtkWidget *label53;
  885. GtkWidget *vbox9;
  886. GtkWidget *frame9;
  887. GtkWidget *alignment9;
  888. GtkWidget *hbox12;
  889. GtkWidget *scrolledwindow5;
  890. GtkWidget *lst_drivers;
  891. GtkWidget *ld_name;
  892. GtkWidget *ld_file;
  893. GtkWidget *ld_date;
  894. GtkWidget *ld_size;
  895. GtkWidget *label32;
  896. GtkWidget *frame10;
  897. GtkWidget *alignment10;
  898. GtkWidget *hbox13;
  899. GtkWidget *b_add_driver;
  900. GtkWidget *b_remove_driver;
  901. GtkWidget *b_configure_driver;
  902. GtkWidget *frame17;
  903. GtkWidget *alignment17;
  904. GtkWidget *hbox20;
  905. GtkWidget *pixmap4;
  906. GtkWidget *label54;
  907. GtkWidget *label4;
  908. GtkWidget *vbox11;
  909. GtkWidget *hbox21;
  910. GtkWidget *frame21;
  911. GtkWidget *alignment21;
  912. GtkWidget *frame24;
  913. GtkWidget *alignment24;
  914. GtkWidget *scrolledwindow9;
  915. GtkWidget *lst_pool;
  916. GtkWidget *lp_name;
  917. GtkWidget *lp_timeout;
  918. GtkWidget *lp_probe;
  919. GtkWidget *label58;
  920. GtkWidget *label55;
  921. GtkWidget *vbox17;
  922. GtkWidget *frame22;
  923. GtkWidget *alignment22;
  924. GtkWidget *vbox18;
  925. GtkWidget *br_enable;
  926. GSList *br_enable_group = NULL;
  927. GtkWidget *br_disable;
  928. GtkWidget *label56;
  929. GtkWidget *frame23;
  930. GtkWidget *alignment23;
  931. GtkWidget *t_retrywait;
  932. GtkWidget *label57;
  933. GtkWidget *frame12;
  934. GtkWidget *alignment12;
  935. GtkWidget *hbox15;
  936. GtkWidget *pixmap5;
  937. GtkWidget *label38;
  938. GtkWidget *label5;
  939. GtkWidget *vbox13;
  940. GtkWidget *table1;
  941. GtkWidget *frame30;
  942. GtkWidget *frame25;
  943. GtkWidget *alignment25;
  944. GtkWidget *table2;
  945. GtkWidget *b_donottrace;
  946. GSList *b_donottrace_group = NULL;
  947. GtkWidget *b_allthetime;
  948. GtkWidget *b_onetime;
  949. GtkWidget *b_start;
  950. GtkWidget *frame28;
  951. GtkWidget *label59;
  952. GtkWidget *frame27;
  953. GtkWidget *alignment27;
  954. GtkWidget *vbox20;
  955. GtkWidget *t_tracelib;
  956. GtkWidget *hbox23;
  957. GtkWidget *frame34;
  958. GtkWidget *bt_select_library;
  959. GtkWidget *frame35;
  960. GtkWidget *frame31;
  961. GtkWidget *label61;
  962. GtkWidget *frame26;
  963. GtkWidget *alignment26;
  964. GtkWidget *vbox19;
  965. GtkWidget *t_logfile;
  966. GtkWidget *hbox22;
  967. GtkWidget *frame32;
  968. GtkWidget *bt_browse;
  969. GtkWidget *frame33;
  970. GtkWidget *frame29;
  971. GtkWidget *label60;
  972. GtkWidget *frame14;
  973. GtkWidget *alignment14;
  974. GtkWidget *hbox17;
  975. GtkWidget *pixmap6;
  976. GtkWidget *label43;
  977. GtkWidget *label6;
  978. GtkWidget *vbox15;
  979. GtkWidget *frame15;
  980. GtkWidget *alignment15;
  981. GtkWidget *hbox18;
  982. GtkWidget *scrolledwindow8;
  983. GtkWidget *lst_about;
  984. GtkWidget *la_name;
  985. GtkWidget *la_version;
  986. GtkWidget *la_file;
  987. GtkWidget *la_date;
  988. GtkWidget *la_size;
  989. GtkWidget *label47;
  990. GtkWidget *frame16;
  991. GtkWidget *alignment16;
  992. GtkWidget *hbox19;
  993. GtkWidget *pixmap7;
  994. GtkWidget *label48;
  995. GtkWidget *label7;
  996. GtkWidget *dialog_action_area1;
  997. GtkWidget *cancelbutton1;
  998. GtkWidget *okbutton1;
  999. GtkAccelGroup *accel_group;
  1000. TDSNCHOOSER dsnchoose_t;
  1001. TDRIVERCHOOSER driverchoose_t;
  1002. TCOMPONENT component_t;
  1003. TTRACING tracing_t;
  1004. TCONNECTIONPOOLING connectionpool_t;
  1005. void *inparams[6];
  1006. accel_group = gtk_accel_group_new ();
  1007. admin = gtk_dialog_new ();
  1008. gtk_widget_set_name (admin, "admin");
  1009. gtk_widget_set_size_request (admin, 600, 450);
  1010. gtk_window_set_title (GTK_WINDOW (admin), _("iODBC Data Source Administrator"));
  1011. gtk_window_set_position (GTK_WINDOW (admin), GTK_WIN_POS_CENTER);
  1012. gtk_window_set_modal (GTK_WINDOW (admin), TRUE);
  1013. gtk_window_set_default_size (GTK_WINDOW (admin), 600, 450);
  1014. gtk_window_set_type_hint (GTK_WINDOW (admin), GDK_WINDOW_TYPE_HINT_DIALOG);
  1015. #if GTK_CHECK_VERSION(2,0,0)
  1016. gtk_widget_show (admin);
  1017. #endif
  1018. dialog_vbox1 = GTK_DIALOG (admin)->vbox;
  1019. gtk_widget_set_name (dialog_vbox1, "dialog_vbox1");
  1020. gtk_widget_show (dialog_vbox1);
  1021. notebook1 = gtk_notebook_new ();
  1022. gtk_widget_set_name (notebook1, "notebook1");
  1023. gtk_widget_show (notebook1);
  1024. gtk_box_pack_start (GTK_BOX (dialog_vbox1), notebook1, TRUE, TRUE, 0);
  1025. vbox1 = gtk_vbox_new (FALSE, 0);
  1026. gtk_widget_set_name (vbox1, "vbox1");
  1027. gtk_widget_show (vbox1);
  1028. gtk_container_add (GTK_CONTAINER (notebook1), vbox1);
  1029. frame1 = gtk_frame_new (NULL);
  1030. gtk_widget_set_name (frame1, "frame1");
  1031. gtk_widget_show (frame1);
  1032. gtk_box_pack_start (GTK_BOX (vbox1), frame1, TRUE, TRUE, 0);
  1033. gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_NONE);
  1034. alignment1 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1035. gtk_widget_set_name (alignment1, "alignment1");
  1036. gtk_widget_show (alignment1);
  1037. gtk_container_add (GTK_CONTAINER (frame1), alignment1);
  1038. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment1), 0, 0, 4, 0);
  1039. hbox2 = gtk_hbox_new (FALSE, 0);
  1040. gtk_widget_set_name (hbox2, "hbox2");
  1041. gtk_widget_show (hbox2);
  1042. gtk_container_add (GTK_CONTAINER (alignment1), hbox2);
  1043. scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL);
  1044. gtk_widget_set_name (scrolledwindow1, "scrolledwindow1");
  1045. gtk_widget_show (scrolledwindow1);
  1046. gtk_box_pack_start (GTK_BOX (hbox2), scrolledwindow1, TRUE, TRUE, 0);
  1047. gtk_widget_set_size_request (scrolledwindow1, 440, 219);
  1048. gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_SHADOW_IN);
  1049. lst_usources = gtk_clist_new (3);
  1050. gtk_widget_set_name (lst_usources, "lst_usources");
  1051. gtk_widget_show (lst_usources);
  1052. gtk_container_add (GTK_CONTAINER (scrolledwindow1), lst_usources);
  1053. gtk_clist_set_column_width (GTK_CLIST (lst_usources), 0, 80);
  1054. gtk_clist_set_column_width (GTK_CLIST (lst_usources), 1, 80);
  1055. gtk_clist_set_column_width (GTK_CLIST (lst_usources), 2, 80);
  1056. gtk_clist_column_titles_show (GTK_CLIST (lst_usources));
  1057. lu_name = gtk_label_new (_("Name"));
  1058. gtk_widget_set_name (lu_name, "lu_name");
  1059. gtk_widget_show (lu_name);
  1060. gtk_clist_set_column_widget (GTK_CLIST (lst_usources), 0, lu_name);
  1061. gtk_widget_set_size_request (lu_name, 100, -1);
  1062. lu_description = gtk_label_new (_("Description"));
  1063. gtk_widget_set_name (lu_description, "lu_description");
  1064. gtk_widget_show (lu_description);
  1065. gtk_clist_set_column_widget (GTK_CLIST (lst_usources), 1, lu_description);
  1066. gtk_widget_set_size_request (lu_description, 162, -1);
  1067. lu_driver = gtk_label_new (_("Driver"));
  1068. gtk_widget_set_name (lu_driver, "lu_driver");
  1069. gtk_widget_show (lu_driver);
  1070. gtk_clist_set_column_widget (GTK_CLIST (lst_usources), 2, lu_driver);
  1071. gtk_widget_set_size_request (lu_driver, 80, -1);
  1072. vbox3 = gtk_vbox_new (FALSE, 0);
  1073. gtk_widget_set_name (vbox3, "vbox3");
  1074. gtk_widget_show (vbox3);
  1075. gtk_box_pack_start (GTK_BOX (hbox2), vbox3, FALSE, TRUE, 0);
  1076. bu_add = gtk_button_new_from_stock ("gtk-add");
  1077. gtk_widget_set_name (bu_add, "bu_add");
  1078. gtk_widget_show (bu_add);
  1079. gtk_box_pack_start (GTK_BOX (vbox3), bu_add, FALSE, TRUE, 0);
  1080. gtk_container_set_border_width (GTK_CONTAINER (bu_add), 4);
  1081. GTK_WIDGET_SET_FLAGS (bu_add, GTK_CAN_DEFAULT);
  1082. gtk_widget_add_accelerator (bu_add, "clicked", accel_group,
  1083. GDK_A, (GdkModifierType) GDK_MOD1_MASK,
  1084. GTK_ACCEL_VISIBLE);
  1085. bu_remove = gtk_button_new_from_stock ("gtk-remove");
  1086. gtk_widget_set_name (bu_remove, "bu_remove");
  1087. gtk_widget_show (bu_remove);
  1088. gtk_box_pack_start (GTK_BOX (vbox3), bu_remove, FALSE, TRUE, 0);
  1089. gtk_container_set_border_width (GTK_CONTAINER (bu_remove), 4);
  1090. gtk_widget_set_sensitive (bu_remove, FALSE);
  1091. GTK_WIDGET_SET_FLAGS (bu_remove, GTK_CAN_DEFAULT);
  1092. gtk_widget_add_accelerator (bu_remove, "clicked", accel_group,
  1093. GDK_R, (GdkModifierType) GDK_MOD1_MASK,
  1094. GTK_ACCEL_VISIBLE);
  1095. bu_config = gtk_button_new_with_mnemonic (_("Confi_gure"));
  1096. gtk_widget_set_name (bu_config, "bu_config");
  1097. gtk_widget_show (bu_config);
  1098. gtk_box_pack_start (GTK_BOX (vbox3), bu_config, FALSE, TRUE, 0);
  1099. gtk_container_set_border_width (GTK_CONTAINER (bu_config), 4);
  1100. gtk_widget_set_sensitive (bu_config, FALSE);
  1101. GTK_WIDGET_SET_FLAGS (bu_config, GTK_CAN_DEFAULT);
  1102. gtk_widget_add_accelerator (bu_config, "clicked", accel_group,
  1103. GDK_G, (GdkModifierType) GDK_MOD1_MASK,
  1104. GTK_ACCEL_VISIBLE);
  1105. gtk_widget_add_accelerator (bu_config, "clicked", accel_group,
  1106. GDK_g, (GdkModifierType) GDK_MOD1_MASK,
  1107. GTK_ACCEL_VISIBLE);
  1108. bu_test = gtk_button_new_with_mnemonic (_("_Test"));
  1109. gtk_widget_set_name (bu_test, "bu_test");
  1110. gtk_widget_show (bu_test);
  1111. gtk_box_pack_start (GTK_BOX (vbox3), bu_test, FALSE, TRUE, 0);
  1112. gtk_container_set_border_width (GTK_CONTAINER (bu_test), 4);
  1113. gtk_widget_set_sensitive (bu_test, FALSE);
  1114. GTK_WIDGET_SET_FLAGS (bu_test, GTK_CAN_DEFAULT);
  1115. gtk_widget_add_accelerator (bu_test, "clicked", accel_group,
  1116. GDK_T, (GdkModifierType) GDK_MOD1_MASK,
  1117. GTK_ACCEL_VISIBLE);
  1118. frame18 = gtk_frame_new (NULL);
  1119. gtk_widget_set_name (frame18, "frame18");
  1120. gtk_widget_show (frame18);
  1121. gtk_box_pack_start (GTK_BOX (vbox3), frame18, TRUE, TRUE, 0);
  1122. gtk_widget_set_size_request (frame18, -1, 80);
  1123. gtk_frame_set_shadow_type (GTK_FRAME (frame18), GTK_SHADOW_NONE);
  1124. alignment18 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1125. gtk_widget_set_name (alignment18, "alignment18");
  1126. gtk_widget_show (alignment18);
  1127. gtk_container_add (GTK_CONTAINER (frame18), alignment18);
  1128. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment18), 0, 0, 12, 0);
  1129. l_usdsn = gtk_label_new (_(" User Data Sources:"));
  1130. gtk_widget_set_name (l_usdsn, "l_usdsn");
  1131. gtk_widget_show (l_usdsn);
  1132. gtk_frame_set_label_widget (GTK_FRAME (frame1), l_usdsn);
  1133. gtk_label_set_use_markup (GTK_LABEL (l_usdsn), TRUE);
  1134. frame2 = gtk_frame_new (NULL);
  1135. gtk_widget_set_name (frame2, "frame2");
  1136. gtk_widget_show (frame2);
  1137. gtk_box_pack_start (GTK_BOX (vbox1), frame2, FALSE, TRUE, 0);
  1138. gtk_container_set_border_width (GTK_CONTAINER (frame2), 3);
  1139. alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1140. gtk_widget_set_name (alignment2, "alignment2");
  1141. gtk_widget_show (alignment2);
  1142. gtk_container_add (GTK_CONTAINER (frame2), alignment2);
  1143. hbox3 = gtk_hbox_new (FALSE, 0);
  1144. gtk_widget_set_name (hbox3, "hbox3");
  1145. gtk_widget_show (hbox3);
  1146. gtk_container_add (GTK_CONTAINER (alignment2), hbox3);
  1147. gtk_container_set_border_width (GTK_CONTAINER (hbox3), 10);
  1148. #if GTK_CHECK_VERSION(2,0,0)
  1149. style = gtk_widget_get_style (admin);
  1150. pixmap =
  1151. gdk_pixmap_create_from_xpm_d (admin->window, &mask,
  1152. &style->bg[GTK_STATE_NORMAL], (gchar **) odbc4_xpm);
  1153. #else
  1154. style = gtk_widget_get_style (GTK_WIDGET (hwnd));
  1155. pixmap =
  1156. gdk_pixmap_create_from_xpm_d (GTK_WIDGET (hwnd)->window, &mask,
  1157. &style->bg[GTK_STATE_NORMAL], (gchar **) odbc4_xpm);
  1158. #endif
  1159. pixmap1 = gtk_pixmap_new (pixmap, mask);
  1160. gtk_widget_set_name (pixmap1, "pixmap1");
  1161. gtk_widget_show (pixmap1);
  1162. gtk_box_pack_start (GTK_BOX (hbox3), pixmap1, FALSE, TRUE, 10);
  1163. label14 = gtk_label_new (_("An ODBC User data source stores information about 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."));
  1164. gtk_widget_set_name (label14, "label14");
  1165. gtk_widget_show (label14);
  1166. gtk_box_pack_start (GTK_BOX (hbox3), label14, FALSE, TRUE, 0);
  1167. gtk_label_set_justify (GTK_LABEL (label14), GTK_JUSTIFY_FILL);
  1168. label1 = gtk_label_new (_("User DSN"));
  1169. gtk_widget_set_name (label1, "label1");
  1170. gtk_widget_show (label1);
  1171. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1);
  1172. dsnchoose_t.uadd = bu_add;
  1173. dsnchoose_t.uremove = bu_remove;
  1174. dsnchoose_t.utest = bu_test;
  1175. dsnchoose_t.uconfigure = bu_config;
  1176. vbox4 = gtk_vbox_new (FALSE, 0);
  1177. gtk_widget_set_name (vbox4, "vbox4");
  1178. gtk_widget_show (vbox4);
  1179. gtk_container_add (GTK_CONTAINER (notebook1), vbox4);
  1180. frame3 = gtk_frame_new (NULL);
  1181. gtk_widget_set_name (frame3, "frame3");
  1182. gtk_widget_show (frame3);
  1183. gtk_box_pack_start (GTK_BOX (vbox4), frame3, TRUE, TRUE, 0);
  1184. gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_NONE);
  1185. alignment3 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1186. gtk_widget_set_name (alignment3, "alignment3");
  1187. gtk_widget_show (alignment3);
  1188. gtk_container_add (GTK_CONTAINER (frame3), alignment3);
  1189. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment3), 0, 0, 4, 0);
  1190. hbox4 = gtk_hbox_new (FALSE, 0);
  1191. gtk_widget_set_name (hbox4, "hbox4");
  1192. gtk_widget_show (hbox4);
  1193. gtk_container_add (GTK_CONTAINER (alignment3), hbox4);
  1194. scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
  1195. gtk_widget_set_name (scrolledwindow2, "scrolledwindow2");
  1196. gtk_widget_show (scrolledwindow2);
  1197. gtk_box_pack_start (GTK_BOX (hbox4), scrolledwindow2, TRUE, TRUE, 0);
  1198. gtk_widget_set_size_request (scrolledwindow2, 440, 219);
  1199. gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_SHADOW_IN);
  1200. lst_ssources = gtk_clist_new (3);
  1201. gtk_widget_set_name (lst_ssources, "lst_ssources");
  1202. gtk_widget_show (lst_ssources);
  1203. gtk_container_add (GTK_CONTAINER (scrolledwindow2), lst_ssources);
  1204. gtk_clist_set_column_width (GTK_CLIST (lst_ssources), 0, 80);
  1205. gtk_clist_set_column_width (GTK_CLIST (lst_ssources), 1, 80);
  1206. gtk_clist_set_column_width (GTK_CLIST (lst_ssources), 2, 80);
  1207. gtk_clist_column_titles_show (GTK_CLIST (lst_ssources));
  1208. ls_name = gtk_label_new (_("Name"));
  1209. gtk_widget_set_name (ls_name, "ls_name");
  1210. gtk_widget_show (ls_name);
  1211. gtk_clist_set_column_widget (GTK_CLIST (lst_ssources), 0, ls_name);
  1212. gtk_widget_set_size_request (ls_name, 100, -1);
  1213. ls_description = gtk_label_new (_("Description"));
  1214. gtk_widget_set_name (ls_description, "ls_description");
  1215. gtk_widget_show (ls_description);
  1216. gtk_clist_set_column_widget (GTK_CLIST (lst_ssources), 1, ls_description);
  1217. gtk_widget_set_size_request (ls_description, 162, -1);
  1218. ls_driver = gtk_label_new (_("Driver"));
  1219. gtk_widget_set_name (ls_driver, "ls_driver");
  1220. gtk_widget_show (ls_driver);
  1221. gtk_clist_set_column_widget (GTK_CLIST (lst_ssources), 2, ls_driver);
  1222. gtk_widget_set_size_request (ls_driver, 80, -1);
  1223. vbox5 = gtk_vbox_new (FALSE, 0);
  1224. gtk_widget_set_name (vbox5, "vbox5");
  1225. gtk_widget_show (vbox5);
  1226. gtk_box_pack_start (GTK_BOX (hbox4), vbox5, FALSE, TRUE, 0);
  1227. bs_add = gtk_button_new_from_stock ("gtk-add");
  1228. gtk_widget_set_name (bs_add, "bs_add");
  1229. gtk_widget_show (bs_add);
  1230. gtk_box_pack_start (GTK_BOX (vbox5), bs_add, FALSE, TRUE, 0);
  1231. gtk_container_set_border_width (GTK_CONTAINER (bs_add), 4);
  1232. GTK_WIDGET_SET_FLAGS (bs_add, GTK_CAN_DEFAULT);
  1233. gtk_widget_add_accelerator (bs_add, "clicked", accel_group,
  1234. GDK_A, (GdkModifierType) GDK_MOD1_MASK,
  1235. GTK_ACCEL_VISIBLE);
  1236. bs_remove = gtk_button_new_from_stock ("gtk-remove");
  1237. gtk_widget_set_name (bs_remove, "bs_remove");
  1238. gtk_widget_show (bs_remove);
  1239. gtk_box_pack_start (GTK_BOX (vbox5), bs_remove, FALSE, TRUE, 0);
  1240. gtk_container_set_border_width (GTK_CONTAINER (bs_remove), 4);
  1241. gtk_widget_set_sensitive (bs_remove, FALSE);
  1242. GTK_WIDGET_SET_FLAGS (bs_remove, GTK_CAN_DEFAULT);
  1243. gtk_widget_add_accelerator (bs_remove, "clicked", accel_group,
  1244. GDK_R, (GdkModifierType) GDK_MOD1_MASK,
  1245. GTK_ACCEL_VISIBLE);
  1246. bs_config = gtk_button_new_with_mnemonic (_("Confi_gure"));
  1247. gtk_widget_set_name (bs_config, "bs_config");
  1248. gtk_widget_show (bs_config);
  1249. gtk_box_pack_start (GTK_BOX (vbox5), bs_config, FALSE, TRUE, 0);
  1250. gtk_container_set_border_width (GTK_CONTAINER (bs_config), 4);
  1251. gtk_widget_set_sensitive (bs_config, FALSE);
  1252. GTK_WIDGET_SET_FLAGS (bs_config, GTK_CAN_DEFAULT);
  1253. gtk_widget_add_accelerator (bs_config, "clicked", accel_group,
  1254. GDK_G, (GdkModifierType) GDK_MOD1_MASK,
  1255. GTK_ACCEL_VISIBLE);
  1256. gtk_widget_add_accelerator (bs_config, "clicked", accel_group,
  1257. GDK_g, (GdkModifierType) GDK_MOD1_MASK,
  1258. GTK_ACCEL_VISIBLE);
  1259. bs_test = gtk_button_new_with_mnemonic (_("_Test"));
  1260. gtk_widget_set_name (bs_test, "bs_test");
  1261. gtk_widget_show (bs_test);
  1262. gtk_box_pack_start (GTK_BOX (vbox5), bs_test, FALSE, TRUE, 0);
  1263. gtk_container_set_border_width (GTK_CONTAINER (bs_test), 4);
  1264. gtk_widget_set_sensitive (bs_test, FALSE);
  1265. GTK_WIDGET_SET_FLAGS (bs_test, GTK_CAN_DEFAULT);
  1266. gtk_widget_add_accelerator (bs_test, "clicked", accel_group,
  1267. GDK_T, (GdkModifierType) GDK_MOD1_MASK,
  1268. GTK_ACCEL_VISIBLE);
  1269. frame19 = gtk_frame_new (NULL);
  1270. gtk_widget_set_name (frame19, "frame19");
  1271. gtk_widget_show (frame19);
  1272. gtk_box_pack_start (GTK_BOX (vbox5), frame19, TRUE, TRUE, 0);
  1273. gtk_widget_set_size_request (frame19, -1, 80);
  1274. gtk_frame_set_shadow_type (GTK_FRAME (frame19), GTK_SHADOW_NONE);
  1275. alignment19 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1276. gtk_widget_set_name (alignment19, "alignment19");
  1277. gtk_widget_show (alignment19);
  1278. gtk_container_add (GTK_CONTAINER (frame19), alignment19);
  1279. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment19), 0, 0, 12, 0);
  1280. label18 = gtk_label_new (_(" System Data Sources:"));
  1281. gtk_widget_set_name (label18, "label18");
  1282. gtk_widget_show (label18);
  1283. gtk_frame_set_label_widget (GTK_FRAME (frame3), label18);
  1284. gtk_label_set_use_markup (GTK_LABEL (label18), TRUE);
  1285. frame4 = gtk_frame_new (NULL);
  1286. gtk_widget_set_name (frame4, "frame4");
  1287. gtk_widget_show (frame4);
  1288. gtk_box_pack_start (GTK_BOX (vbox4), frame4, FALSE, TRUE, 0);
  1289. gtk_container_set_border_width (GTK_CONTAINER (frame4), 3);
  1290. alignment4 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1291. gtk_widget_set_name (alignment4, "alignment4");
  1292. gtk_widget_show (alignment4);
  1293. gtk_container_add (GTK_CONTAINER (frame4), alignment4);
  1294. hbox5 = gtk_hbox_new (FALSE, 0);
  1295. gtk_widget_set_name (hbox5, "hbox5");
  1296. gtk_widget_show (hbox5);
  1297. gtk_container_add (GTK_CONTAINER (alignment4), hbox5);
  1298. gtk_container_set_border_width (GTK_CONTAINER (hbox5), 10);
  1299. pixmap2 = gtk_pixmap_new (pixmap, mask);
  1300. gtk_widget_set_name (pixmap2, "pixmap2");
  1301. gtk_widget_show (pixmap2);
  1302. gtk_box_pack_start (GTK_BOX (hbox5), pixmap2, FALSE, TRUE, 10);
  1303. label19 = gtk_label_new (_("An ODBC System data source stores information about to connect to\nthe indicated data provider. A System data source is visible to all\nusers on this machine, including daemons."));
  1304. gtk_widget_set_name (label19, "label19");
  1305. gtk_widget_show (label19);
  1306. gtk_box_pack_start (GTK_BOX (hbox5), label19, FALSE, TRUE, 0);
  1307. gtk_label_set_justify (GTK_LABEL (label19), GTK_JUSTIFY_FILL);
  1308. label2 = gtk_label_new (_("System DSN"));
  1309. gtk_widget_set_name (label2, "label2");
  1310. gtk_widget_show (label2);
  1311. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label2);
  1312. dsnchoose_t.sadd = bs_add;
  1313. dsnchoose_t.sremove = bs_remove;
  1314. dsnchoose_t.stest = bs_test;
  1315. dsnchoose_t.sconfigure = bs_config;
  1316. vbox6 = gtk_vbox_new (FALSE, 0);
  1317. gtk_widget_set_name (vbox6, "vbox6");
  1318. gtk_widget_show (vbox6);
  1319. gtk_container_add (GTK_CONTAINER (notebook1), vbox6);
  1320. frame5 = gtk_frame_new (NULL);
  1321. gtk_widget_set_name (frame5, "frame5");
  1322. gtk_widget_show (frame5);
  1323. gtk_box_pack_start (GTK_BOX (vbox6), frame5, TRUE, TRUE, 0);
  1324. gtk_container_set_border_width (GTK_CONTAINER (frame5), 2);
  1325. gtk_frame_set_shadow_type (GTK_FRAME (frame5), GTK_SHADOW_NONE);
  1326. alignment5 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1327. gtk_widget_set_name (alignment5, "alignment5");
  1328. gtk_widget_show (alignment5);
  1329. gtk_container_add (GTK_CONTAINER (frame5), alignment5);
  1330. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment5), 0, 0, 4, 0);
  1331. hbox6 = gtk_hbox_new (FALSE, 0);
  1332. gtk_widget_set_name (hbox6, "hbox6");
  1333. gtk_widget_show (hbox6);
  1334. gtk_container_add (GTK_CONTAINER (alignment5), hbox6);
  1335. vbox8 = gtk_vbox_new (FALSE, 0);
  1336. gtk_widget_set_name (vbox8, "vbox8");
  1337. gtk_widget_show (vbox8);
  1338. gtk_box_pack_start (GTK_BOX (hbox6), vbox8, TRUE, TRUE, 0);
  1339. gtk_widget_set_size_request (vbox8, 436, 250);
  1340. hbox8 = gtk_hbox_new (FALSE, 0);
  1341. gtk_widget_set_name (hbox8, "hbox8");
  1342. gtk_widget_show (hbox8);
  1343. gtk_box_pack_start (GTK_BOX (vbox8), hbox8, FALSE, FALSE, 0);
  1344. frame7 = gtk_frame_new (NULL);
  1345. gtk_widget_set_name (frame7, "frame7");
  1346. gtk_widget_show (frame7);
  1347. gtk_box_pack_start (GTK_BOX (hbox8), frame7, TRUE, TRUE, 0);
  1348. gtk_container_set_border_width (GTK_CONTAINER (frame7), 4);
  1349. gtk_frame_set_shadow_type (GTK_FRAME (frame7), GTK_SHADOW_NONE);
  1350. alignment7 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1351. gtk_widget_set_name (alignment7, "alignment7");
  1352. gtk_widget_show (alignment7);
  1353. gtk_container_add (GTK_CONTAINER (frame7), alignment7);
  1354. gtk_container_set_border_width (GTK_CONTAINER (alignment7), 2);
  1355. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment7), 0, 0, 6, 0);
  1356. hbox9 = gtk_hbox_new (FALSE, 0);
  1357. gtk_widget_set_name (hbox9, "hbox9");
  1358. gtk_widget_show (hbox9);
  1359. gtk_container_add (GTK_CONTAINER (alignment7), hbox9);
  1360. l_lookin = gtk_label_new (_("Look in : "));
  1361. gtk_widget_set_name (l_lookin, "l_lookin");
  1362. gtk_widget_show (l_lookin);
  1363. gtk_box_pack_start (GTK_BOX (hbox9), l_lookin, FALSE, FALSE, 0);
  1364. optionmenu1 = gtk_option_menu_new ();
  1365. gtk_widget_set_name (optionmenu1, "optionmenu1");
  1366. gtk_widget_show (optionmenu1);
  1367. gtk_box_pack_start (GTK_BOX (hbox9), optionmenu1, TRUE, TRUE, 0);
  1368. menu1 = gtk_menu_new ();
  1369. gtk_widget_set_name (menu1, "menu1");
  1370. gtk_option_menu_set_menu (GTK_OPTION_MENU (optionmenu1), menu1);
  1371. hbox11 = gtk_hbox_new (FALSE, 0);
  1372. gtk_widget_set_name (hbox11, "hbox11");
  1373. gtk_widget_show (hbox11);
  1374. gtk_box_pack_start (GTK_BOX (vbox8), hbox11, TRUE, TRUE, 0);
  1375. scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
  1376. gtk_widget_set_name (scrolledwindow3, "scrolledwindow3");
  1377. gtk_widget_show (scrolledwindow3);
  1378. gtk_box_pack_start (GTK_BOX (hbox11), scrolledwindow3, TRUE, TRUE, 0);
  1379. gtk_widget_set_size_request (scrolledwindow3, 96, -1);
  1380. gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow3), 4);
  1381. lst_fdir = gtk_clist_new (1);
  1382. gtk_widget_set_name (lst_fdir, "lst_fdir");
  1383. gtk_widget_show (lst_fdir);
  1384. gtk_container_add (GTK_CONTAINER (scrolledwindow3), lst_fdir);
  1385. gtk_clist_set_column_width (GTK_CLIST (lst_fdir), 0, 80);
  1386. gtk_clist_column_titles_show (GTK_CLIST (lst_fdir));
  1387. l_directory = gtk_label_new (_("Directories"));
  1388. gtk_widget_set_name (l_directory, "l_directory");
  1389. gtk_widget_show (l_directory);
  1390. gtk_clist_set_column_widget (GTK_CLIST (lst_fdir), 0, l_directory);
  1391. scrolledwindow4 = gtk_scrolled_window_new (NULL, NULL);
  1392. gtk_widget_set_name (scrolledwindow4, "scrolledwindow4");
  1393. gtk_widget_show (scrolledwindow4);
  1394. gtk_box_pack_start (GTK_BOX (hbox11), scrolledwindow4, TRUE, TRUE, 0);
  1395. gtk_widget_set_size_request (scrolledwindow4, 102, -1);
  1396. gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow4), 4);
  1397. lst_ffiles = gtk_clist_new (1);
  1398. gtk_widget_set_name (lst_ffiles, "lst_ffiles");
  1399. gtk_widget_show (lst_ffiles);
  1400. gtk_container_add (GTK_CONTAINER (scrolledwindow4), lst_ffiles);
  1401. gtk_clist_set_column_width (GTK_CLIST (lst_ffiles), 0, 80);
  1402. gtk_clist_column_titles_show (GTK_CLIST (lst_ffiles));
  1403. l_files = gtk_label_new (_("Files"));
  1404. gtk_widget_set_name (l_files, "l_files");
  1405. gtk_widget_show (l_files);
  1406. gtk_clist_set_column_widget (GTK_CLIST (lst_ffiles), 0, l_files);
  1407. frame8 = gtk_frame_new (NULL);
  1408. gtk_widget_set_name (frame8, "frame8");
  1409. gtk_widget_show (frame8);
  1410. gtk_box_pack_start (GTK_BOX (vbox8), frame8, FALSE, TRUE, 0);
  1411. gtk_container_set_border_width (GTK_CONTAINER (frame8), 4);
  1412. gtk_frame_set_shadow_type (GTK_FRAME (frame8), GTK_SHADOW_NONE);
  1413. alignment8 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1414. gtk_widget_set_name (alignment8, "alignment8");
  1415. gtk_widget_show (alignment8);
  1416. gtk_container_add (GTK_CONTAINER (frame8), alignment8);
  1417. gtk_container_set_border_width (GTK_CONTAINER (alignment8), 2);
  1418. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment8), 0, 0, 6, 0);
  1419. hbox10 = gtk_hbox_new (FALSE, 0);
  1420. gtk_widget_set_name (hbox10, "hbox10");
  1421. gtk_widget_show (hbox10);
  1422. gtk_container_add (GTK_CONTAINER (alignment8), hbox10);
  1423. l_selected = gtk_label_new (_("File selected:"));
  1424. gtk_widget_set_name (l_selected, "l_selected");
  1425. gtk_widget_show (l_selected);
  1426. gtk_box_pack_start (GTK_BOX (hbox10), l_selected, FALSE, FALSE, 0);
  1427. t_fileselected = gtk_entry_new ();
  1428. gtk_widget_set_name (t_fileselected, "t_fileselected");
  1429. gtk_widget_show (t_fileselected);
  1430. gtk_box_pack_start (GTK_BOX (hbox10), t_fileselected, TRUE, TRUE, 0);
  1431. vbox7 = gtk_vbox_new (FALSE, 0);
  1432. gtk_widget_set_name (vbox7, "vbox7");
  1433. gtk_widget_show (vbox7);
  1434. gtk_box_pack_start (GTK_BOX (hbox6), vbox7, FALSE, TRUE, 0);
  1435. bf_add = gtk_button_new_from_stock ("gtk-add");
  1436. gtk_widget_set_name (bf_add, "bf_add");
  1437. gtk_widget_show (bf_add);
  1438. gtk_box_pack_start (GTK_BOX (vbox7), bf_add, FALSE, TRUE, 0);
  1439. gtk_container_set_border_width (GTK_CONTAINER (bf_add), 4);
  1440. GTK_WIDGET_SET_FLAGS (bf_add, GTK_CAN_DEFAULT);
  1441. gtk_widget_add_accelerator (bf_add, "clicked", accel_group,
  1442. GDK_A, (GdkModifierType) GDK_MOD1_MASK,
  1443. GTK_ACCEL_VISIBLE);
  1444. bf_remove = gtk_button_new_from_stock ("gtk-remove");
  1445. gtk_widget_set_name (bf_remove, "bf_remove");
  1446. gtk_widget_show (bf_remove);
  1447. gtk_box_pack_start (GTK_BOX (vbox7), bf_remove, FALSE, TRUE, 0);
  1448. gtk_container_set_border_width (GTK_CONTAINER (bf_remove), 4);
  1449. GTK_WIDGET_SET_FLAGS (bf_remove, GTK_CAN_DEFAULT);
  1450. gtk_widget_add_accelerator (bf_remove, "clicked", accel_group,
  1451. GDK_R, (GdkModifierType) GDK_MOD1_MASK,
  1452. GTK_ACCEL_VISIBLE);
  1453. bf_config = gtk_button_new_with_mnemonic (_("Confi_gure"));
  1454. gtk_widget_set_name (bf_config, "bf_config");
  1455. gtk_widget_show (bf_config);
  1456. gtk_box_pack_start (GTK_BOX (vbox7), bf_config, FALSE, TRUE, 0);
  1457. gtk_container_set_border_width (GTK_CONTAINER (bf_config), 4);
  1458. GTK_WIDGET_SET_FLAGS (bf_config, GTK_CAN_DEFAULT);
  1459. gtk_widget_add_accelerator (bf_config, "clicked", accel_group,
  1460. GDK_G, (GdkModifierType) GDK_MOD1_MASK,
  1461. GTK_ACCEL_VISIBLE);
  1462. gtk_widget_add_accelerator (bf_config, "clicked", accel_group,
  1463. GDK_g, (GdkModifierType) GDK_MOD1_MASK,
  1464. GTK_ACCEL_VISIBLE);
  1465. bf_test = gtk_button_new_with_mnemonic (_("_Test"));
  1466. gtk_widget_set_name (bf_test, "bf_test");
  1467. gtk_widget_show (bf_test);
  1468. gtk_box_pack_start (GTK_BOX (vbox7), bf_test, FALSE, TRUE, 0);
  1469. gtk_container_set_border_width (GTK_CONTAINER (bf_test), 4);
  1470. GTK_WIDGET_SET_FLAGS (bf_test, GTK_CAN_DEFAULT);
  1471. gtk_widget_add_accelerator (bf_test, "clicked", accel_group,
  1472. GDK_T, (GdkModifierType) GDK_MOD1_MASK,
  1473. GTK_ACCEL_VISIBLE);
  1474. bf_setdir = gtk_button_new_with_mnemonic (_("_Set Dir"));
  1475. gtk_widget_set_name (bf_setdir, "bf_setdir");
  1476. gtk_widget_show (bf_setdir);
  1477. gtk_box_pack_start (GTK_BOX (vbox7), bf_setdir, FALSE, TRUE, 0);
  1478. gtk_container_set_border_width (GTK_CONTAINER (bf_setdir), 4);
  1479. GTK_WIDGET_SET_FLAGS (bf_setdir, GTK_CAN_DEFAULT);
  1480. gtk_widget_add_accelerator (bf_setdir, "clicked", accel_group,
  1481. GDK_S, (GdkModifierType) GDK_MOD1_MASK,
  1482. GTK_ACCEL_VISIBLE);
  1483. frame20 = gtk_frame_new (NULL);
  1484. gtk_widget_set_name (frame20, "frame20");
  1485. gtk_widget_show (frame20);
  1486. gtk_box_pack_start (GTK_BOX (vbox7), frame20, TRUE, TRUE, 0);
  1487. gtk_widget_set_size_request (frame20, -1, 80);
  1488. gtk_frame_set_shadow_type (GTK_FRAME (frame20), GTK_SHADOW_NONE);
  1489. alignment20 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1490. gtk_widget_set_name (alignment20, "alignment20");
  1491. gtk_widget_show (alignment20);
  1492. gtk_container_add (GTK_CONTAINER (frame20), alignment20);
  1493. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment20), 0, 0, 12, 0);
  1494. frame6 = gtk_frame_new (NULL);
  1495. gtk_widget_set_name (frame6, "frame6");
  1496. gtk_widget_show (frame6);
  1497. gtk_box_pack_start (GTK_BOX (vbox6), frame6, FALSE, TRUE, 0);
  1498. gtk_container_set_border_width (GTK_CONTAINER (frame6), 3);
  1499. alignment6 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1500. gtk_widget_set_name (alignment6, "alignment6");
  1501. gtk_widget_show (alignment6);
  1502. gtk_container_add (GTK_CONTAINER (frame6), alignment6);
  1503. hbox7 = gtk_hbox_new (FALSE, 0);
  1504. gtk_widget_set_name (hbox7, "hbox7");
  1505. gtk_widget_show (hbox7);
  1506. gtk_container_add (GTK_CONTAINER (alignment6), hbox7);
  1507. gtk_container_set_border_width (GTK_CONTAINER (hbox7), 10);
  1508. pixmap3 = gtk_pixmap_new (pixmap, mask);
  1509. gtk_widget_set_name (pixmap3, "pixmap3");
  1510. gtk_widget_show (pixmap3);
  1511. gtk_box_pack_start (GTK_BOX (hbox7), pixmap3, FALSE, TRUE, 10);
  1512. label24 = gtk_label_new (_("Select the file data source that describes the driver that you wish to\nconnect to. You can use any file data source that refers to an ODBC\ndriver which is installed on your machine."));
  1513. gtk_widget_set_name (label24, "label24");
  1514. gtk_widget_show (label24);
  1515. gtk_box_pack_start (GTK_BOX (hbox7), label24, FALSE, TRUE, 0);
  1516. gtk_label_set_justify (GTK_LABEL (label24), GTK_JUSTIFY_FILL);
  1517. label53 = gtk_label_new (_("File DSN"));
  1518. gtk_widget_set_name (label53, "label53");
  1519. gtk_widget_show (label53);
  1520. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label53);
  1521. dsnchoose_t.fadd = bf_add;
  1522. dsnchoose_t.fremove = bf_remove;
  1523. dsnchoose_t.fconfigure = bf_config;
  1524. dsnchoose_t.ftest = bf_test;
  1525. dsnchoose_t.dir_list = lst_fdir;
  1526. dsnchoose_t.dir_combo = optionmenu1;
  1527. dsnchoose_t.file_list = lst_ffiles;
  1528. dsnchoose_t.file_entry = t_fileselected;
  1529. dsnchoose_t.fsetdir = bf_setdir;
  1530. dsnchoose_t.udsnlist = lst_usources;
  1531. dsnchoose_t.sdsnlist = lst_ssources;
  1532. dsnchoose_t.type_dsn = 0;
  1533. dsnchoose_t.mainwnd = admin;
  1534. vbox9 = gtk_vbox_new (FALSE, 0);
  1535. gtk_widget_set_name (vbox9, "vbox9");
  1536. gtk_widget_show (vbox9);
  1537. gtk_container_add (GTK_CONTAINER (notebook1), vbox9);
  1538. frame9 = gtk_frame_new (NULL);
  1539. gtk_widget_set_name (frame9, "frame9");
  1540. gtk_widget_show (frame9);
  1541. gtk_box_pack_start (GTK_BOX (vbox9), frame9, TRUE, TRUE, 0);
  1542. gtk_frame_set_shadow_type (GTK_FRAME (frame9), GTK_SHADOW_NONE);
  1543. alignment9 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1544. gtk_widget_set_name (alignment9, "alignment9");
  1545. gtk_widget_show (alignment9);
  1546. gtk_container_add (GTK_CONTAINER (frame9), alignment9);
  1547. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment9), 0, 0, 4, 0);
  1548. hbox12 = gtk_hbox_new (FALSE, 0);
  1549. gtk_widget_set_name (hbox12, "hbox12");
  1550. gtk_widget_show (hbox12);
  1551. gtk_container_add (GTK_CONTAINER (alignment9), hbox12);
  1552. scrolledwindow5 = gtk_scrolled_window_new (NULL, NULL);
  1553. gtk_widget_set_name (scrolledwindow5, "scrolledwindow5");
  1554. gtk_widget_show (scrolledwindow5);
  1555. gtk_box_pack_start (GTK_BOX (hbox12), scrolledwindow5, TRUE, TRUE, 0);
  1556. gtk_widget_set_size_request (scrolledwindow5, 440, 185);
  1557. gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow5), GTK_SHADOW_IN);
  1558. lst_drivers = gtk_clist_new (4);
  1559. gtk_widget_set_name (lst_drivers, "lst_drivers");
  1560. gtk_widget_show (lst_drivers);
  1561. gtk_container_add (GTK_CONTAINER (scrolledwindow5), lst_drivers);
  1562. gtk_clist_set_column_width (GTK_CLIST (lst_drivers), 0, 80);
  1563. gtk_clist_set_column_width (GTK_CLIST (lst_drivers), 1, 80);
  1564. gtk_clist_set_column_width (GTK_CLIST (lst_drivers), 2, 80);
  1565. gtk_clist_set_column_width (GTK_CLIST (lst_drivers), 3, 80);
  1566. gtk_clist_column_titles_show (GTK_CLIST (lst_drivers));
  1567. ld_name = gtk_label_new (_("Name"));
  1568. gtk_widget_set_name (ld_name, "ld_name");
  1569. gtk_widget_show (ld_name);
  1570. gtk_clist_set_column_widget (GTK_CLIST (lst_drivers), 0, ld_name);
  1571. gtk_widget_set_size_request (ld_name, 188, -1);
  1572. ld_file = gtk_label_new (_("File"));
  1573. gtk_widget_set_name (ld_file, "ld_file");
  1574. gtk_widget_show (ld_file);
  1575. gtk_clist_set_column_widget (GTK_CLIST (lst_drivers), 1, ld_file);
  1576. gtk_widget_set_size_request (ld_file, 170, -1);
  1577. ld_date = gtk_label_new (_("Date"));
  1578. gtk_widget_set_name (ld_date, "ld_date");
  1579. gtk_widget_show (ld_date);
  1580. gtk_clist_set_column_widget (GTK_CLIST (lst_drivers), 2, ld_date);
  1581. gtk_widget_set_size_request (ld_date, 134, -1);
  1582. ld_size = gtk_label_new (_("Size"));
  1583. gtk_widget_set_name (ld_size, "ld_size");
  1584. gtk_widget_show (ld_size);
  1585. gtk_clist_set_column_widget (GTK_CLIST (lst_drivers), 3, ld_size);
  1586. gtk_widget_set_size_request (ld_size, 80, -1);
  1587. label32 = gtk_label_new (_(" ODBC Drivers that are installed on your system :"));
  1588. gtk_widget_set_name (label32, "label32");
  1589. gtk_widget_show (label32);
  1590. gtk_frame_set_label_widget (GTK_FRAME (frame9), label32);
  1591. gtk_label_set_use_markup (GTK_LABEL (label32), TRUE);
  1592. frame10 = gtk_frame_new (NULL);
  1593. gtk_widget_set_name (frame10, "frame10");
  1594. gtk_widget_show (frame10);
  1595. gtk_box_pack_start (GTK_BOX (vbox9), frame10, FALSE, TRUE, 0);
  1596. gtk_container_set_border_width (GTK_CONTAINER (frame10), 3);
  1597. alignment10 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1598. gtk_widget_set_name (alignment10, "alignment10");
  1599. gtk_widget_show (alignment10);
  1600. gtk_container_add (GTK_CONTAINER (frame10), alignment10);
  1601. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment10), 0, 0, 10, 10);
  1602. hbox13 = gtk_hbox_new (FALSE, 50);
  1603. gtk_widget_set_name (hbox13, "hbox13");
  1604. gtk_widget_show (hbox13);
  1605. gtk_container_add (GTK_CONTAINER (alignment10), hbox13);
  1606. gtk_container_set_border_width (GTK_CONTAINER (hbox13), 4);
  1607. b_add_driver = gtk_button_new_with_mnemonic (_(" _Add a driver "));
  1608. gtk_widget_set_name (b_add_driver, "b_add_driver");
  1609. gtk_widget_show (b_add_driver);
  1610. gtk_box_pack_start (GTK_BOX (hbox13), b_add_driver, FALSE, TRUE, 0);
  1611. GTK_WIDGET_SET_FLAGS (b_add_driver, GTK_CAN_DEFAULT);
  1612. gtk_widget_add_accelerator (b_add_driver, "clicked", accel_group,
  1613. GDK_A, (GdkModifierType) GDK_MOD1_MASK,
  1614. GTK_ACCEL_VISIBLE);
  1615. b_remove_driver = gtk_button_new_with_mnemonic (_(" _Remove the driver "));
  1616. gtk_widget_set_name (b_remove_driver, "b_remove_driver");
  1617. gtk_widget_show (b_remove_driver);
  1618. gtk_box_pack_start (GTK_BOX (hbox13), b_remove_driver, FALSE, TRUE, 0);
  1619. GTK_WIDGET_SET_FLAGS (b_remove_driver, GTK_CAN_DEFAULT);
  1620. gtk_widget_add_accelerator (b_remove_driver, "clicked", accel_group,
  1621. GDK_R, (GdkModifierType) GDK_MOD1_MASK,
  1622. GTK_ACCEL_VISIBLE);
  1623. b_configure_driver = gtk_button_new_with_mnemonic (_(" Confi_gure the driver "));
  1624. gtk_widget_set_name (b_configure_driver, "b_configure_driver");
  1625. gtk_widget_show (b_configure_driver);
  1626. gtk_box_pack_start (GTK_BOX (hbox13), b_configure_driver, FALSE, TRUE, 0);
  1627. GTK_WIDGET_SET_FLAGS (b_configure_driver, GTK_CAN_DEFAULT);
  1628. gtk_widget_add_accelerator (b_configure_driver, "clicked", accel_group,
  1629. GDK_G, (GdkModifierType) GDK_MOD1_MASK,
  1630. GTK_ACCEL_VISIBLE);
  1631. gtk_widget_add_accelerator (b_configure_driver, "clicked", accel_group,
  1632. GDK_g, (GdkModifierType) GDK_MOD1_MASK,
  1633. GTK_ACCEL_VISIBLE);
  1634. frame17 = gtk_frame_new (NULL);
  1635. gtk_widget_set_name (frame17, "frame17");
  1636. gtk_widget_show (frame17);
  1637. gtk_box_pack_start (GTK_BOX (vbox9), frame17, FALSE, TRUE, 0);
  1638. gtk_container_set_border_width (GTK_CONTAINER (frame17), 3);
  1639. alignment17 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1640. gtk_widget_set_name (alignment17, "alignment17");
  1641. gtk_widget_show (alignment17);
  1642. gtk_container_add (GTK_CONTAINER (frame17), alignment17);
  1643. hbox20 = gtk_hbox_new (FALSE, 0);
  1644. gtk_widget_set_name (hbox20, "hbox20");
  1645. gtk_widget_show (hbox20);
  1646. gtk_container_add (GTK_CONTAINER (alignment17), hbox20);
  1647. gtk_container_set_border_width (GTK_CONTAINER (hbox20), 10);
  1648. pixmap4 = gtk_pixmap_new (pixmap, mask);
  1649. gtk_widget_set_name (pixmap4, "pixmap4");
  1650. gtk_widget_show (pixmap4);
  1651. gtk_box_pack_start (GTK_BOX (hbox20), pixmap4, FALSE, TRUE, 10);
  1652. label54 = gtk_label_new (_("An ODBC driver allows ODBC-enabled programs to get information from\nODBC data sources. To install new drivers, use the driver's setup\nprogram if available, or add it with the 'Add' button."));
  1653. gtk_widget_set_name (label54, "label54");
  1654. gtk_widget_show (label54);
  1655. gtk_box_pack_start (GTK_BOX (hbox20), label54, FALSE, TRUE, 0);
  1656. gtk_label_set_justify (GTK_LABEL (label54), GTK_JUSTIFY_FILL);
  1657. label4 = gtk_label_new (_("ODBC Drivers"));
  1658. gtk_widget_set_name (label4, "label4");
  1659. gtk_widget_show (label4);
  1660. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label4);
  1661. driverchoose_t.driverlist = lst_drivers;
  1662. driverchoose_t.mainwnd = admin;
  1663. driverchoose_t.b_add = b_add_driver;
  1664. driverchoose_t.b_remove = b_remove_driver;
  1665. driverchoose_t.b_configure = b_configure_driver;
  1666. vbox11 = gtk_vbox_new (FALSE, 0);
  1667. gtk_widget_set_name (vbox11, "vbox11");
  1668. gtk_widget_show (vbox11);
  1669. gtk_container_add (GTK_CONTAINER (notebook1), vbox11);
  1670. hbox21 = gtk_hbox_new (FALSE, 0);
  1671. gtk_widget_set_name (hbox21, "hbox21");
  1672. gtk_widget_show (hbox21);
  1673. gtk_box_pack_start (GTK_BOX (vbox11), hbox21, TRUE, TRUE, 0);
  1674. frame21 = gtk_frame_new (NULL);
  1675. gtk_widget_set_name (frame21, "frame21");
  1676. gtk_widget_show (frame21);
  1677. gtk_box_pack_start (GTK_BOX (hbox21), frame21, TRUE, TRUE, 0);
  1678. gtk_container_set_border_width (GTK_CONTAINER (frame21), 2);
  1679. alignment21 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1680. gtk_widget_set_name (alignment21, "alignment21");
  1681. gtk_widget_show (alignment21);
  1682. gtk_container_add (GTK_CONTAINER (frame21), alignment21);
  1683. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment21), 0, 0, 6, 0);
  1684. frame24 = gtk_frame_new (NULL);
  1685. gtk_widget_set_name (frame24, "frame24");
  1686. gtk_widget_show (frame24);
  1687. gtk_container_add (GTK_CONTAINER (alignment21), frame24);
  1688. gtk_frame_set_shadow_type (GTK_FRAME (frame24), GTK_SHADOW_NONE);
  1689. alignment24 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1690. gtk_widget_set_name (alignment24, "alignment24");
  1691. gtk_widget_show (alignment24);
  1692. gtk_container_add (GTK_CONTAINER (frame24), alignment24);
  1693. scrolledwindow9 = gtk_scrolled_window_new (NULL, NULL);
  1694. gtk_widget_set_name (scrolledwindow9, "scrolledwindow9");
  1695. gtk_widget_show (scrolledwindow9);
  1696. gtk_container_add (GTK_CONTAINER (alignment24), scrolledwindow9);
  1697. gtk_widget_set_size_request (scrolledwindow9, 427, 160);
  1698. lst_pool = gtk_clist_new (3);
  1699. gtk_widget_set_name (lst_pool, "lst_pool");
  1700. gtk_widget_show (lst_pool);
  1701. gtk_container_add (GTK_CONTAINER (scrolledwindow9), lst_pool);
  1702. gtk_clist_set_column_width (GTK_CLIST (lst_pool), 0, 80);
  1703. gtk_clist_set_column_width (GTK_CLIST (lst_pool), 1, 80);
  1704. gtk_clist_set_column_width (GTK_CLIST (lst_pool), 2, 80);
  1705. gtk_clist_column_titles_show (GTK_CLIST (lst_pool));
  1706. lp_name = gtk_label_new (_("Name"));
  1707. gtk_widget_set_name (lp_name, "lp_name");
  1708. gtk_widget_show (lp_name);
  1709. gtk_clist_set_column_widget (GTK_CLIST (lst_pool), 0, lp_name);
  1710. lp_timeout = gtk_label_new (_("Pool timeout"));
  1711. gtk_widget_set_name (lp_timeout, "lp_timeout");
  1712. gtk_widget_show (lp_timeout);
  1713. gtk_clist_set_column_widget (GTK_CLIST (lst_pool), 1, lp_timeout);
  1714. lp_probe = gtk_label_new (_("Probe query"));
  1715. gtk_widget_set_name (lp_probe, "lp_probe");
  1716. gtk_widget_show (lp_probe);
  1717. gtk_clist_set_column_widget (GTK_CLIST (lst_pool), 2, lp_probe);
  1718. label58 = gtk_label_new (_("ODBC Drivers"));
  1719. gtk_widget_set_name (label58, "label58");
  1720. gtk_widget_show (label58);
  1721. gtk_frame_set_label_widget (GTK_FRAME (frame24), label58);
  1722. gtk_label_set_use_markup (GTK_LABEL (label58), TRUE);
  1723. label55 = gtk_label_new (_(" Connection Pooling Timeout "));
  1724. gtk_widget_set_name (label55, "label55");
  1725. gtk_widget_show (label55);
  1726. gtk_frame_set_label_widget (GTK_FRAME (frame21), label55);
  1727. gtk_label_set_use_markup (GTK_LABEL (label55), TRUE);
  1728. vbox17 = gtk_vbox_new (FALSE, 0);
  1729. gtk_widget_set_name (vbox17, "vbox17");
  1730. gtk_widget_show (vbox17);
  1731. gtk_box_pack_start (GTK_BOX (hbox21), vbox17, TRUE, TRUE, 0);
  1732. frame22 = gtk_frame_new (NULL);
  1733. gtk_widget_set_name (frame22, "frame22");
  1734. gtk_widget_show (frame22);
  1735. gtk_box_pack_start (GTK_BOX (vbox17), frame22, TRUE, TRUE, 0);
  1736. gtk_container_set_border_width (GTK_CONTAINER (frame22), 3);
  1737. alignment22 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1738. gtk_widget_set_name (alignment22, "alignment22");
  1739. gtk_widget_show (alignment22);
  1740. gtk_container_add (GTK_CONTAINER (frame22), alignment22);
  1741. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment22), 0, 0, 12, 0);
  1742. vbox18 = gtk_vbox_new (FALSE, 0);
  1743. gtk_widget_set_name (vbox18, "vbox18");
  1744. gtk_widget_show (vbox18);
  1745. gtk_container_add (GTK_CONTAINER (alignment22), vbox18);
  1746. br_enable = gtk_radio_button_new_with_mnemonic (NULL, _("_Enable"));
  1747. gtk_widget_set_name (br_enable, "br_enable");
  1748. gtk_widget_show (br_enable);
  1749. gtk_box_pack_start (GTK_BOX (vbox18), br_enable, FALSE, FALSE, 0);
  1750. GTK_WIDGET_SET_FLAGS (br_enable, GTK_CAN_DEFAULT);
  1751. gtk_widget_add_accelerator (br_enable, "clicked", accel_group,
  1752. GDK_E, (GdkModifierType) GDK_MOD1_MASK,
  1753. GTK_ACCEL_VISIBLE);
  1754. gtk_radio_button_set_group (GTK_RADIO_BUTTON (br_enable), br_enable_group);
  1755. br_enable_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (br_enable));
  1756. br_disable = gtk_radio_button_new_with_mnemonic (NULL, _("_Disable"));
  1757. gtk_widget_set_name (br_disable, "br_disable");
  1758. gtk_widget_show (br_disable);
  1759. gtk_box_pack_start (GTK_BOX (vbox18), br_disable, FALSE, FALSE, 0);
  1760. GTK_WIDGET_SET_FLAGS (br_disable, GTK_CAN_DEFAULT);
  1761. gtk_widget_add_accelerator (br_disable, "clicked", accel_group,
  1762. GDK_D, (GdkModifierType) GDK_MOD1_MASK,
  1763. GTK_ACCEL_VISIBLE);
  1764. gtk_radio_button_set_group (GTK_RADIO_BUTTON (br_disable), br_enable_group);
  1765. br_enable_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (br_disable));
  1766. gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (br_disable), TRUE);
  1767. label56 = gtk_label_new (_(" PerfMon "));
  1768. gtk_widget_set_name (label56, "label56");
  1769. gtk_widget_show (label56);
  1770. gtk_frame_set_label_widget (GTK_FRAME (frame22), label56);
  1771. gtk_label_set_use_markup (GTK_LABEL (label56), TRUE);
  1772. frame23 = gtk_frame_new (NULL);
  1773. gtk_widget_set_name (frame23, "frame23");
  1774. gtk_widget_show (frame23);
  1775. gtk_box_pack_start (GTK_BOX (vbox17), frame23, TRUE, TRUE, 0);
  1776. gtk_container_set_border_width (GTK_CONTAINER (frame23), 3);
  1777. alignment23 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1778. gtk_widget_set_name (alignment23, "alignment23");
  1779. gtk_widget_show (alignment23);
  1780. gtk_container_add (GTK_CONTAINER (frame23), alignment23);
  1781. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment23), 0, 0, 12, 0);
  1782. t_retrywait = gtk_entry_new ();
  1783. gtk_widget_set_name (t_retrywait, "t_retrywait");
  1784. gtk_widget_show (t_retrywait);
  1785. gtk_container_add (GTK_CONTAINER (alignment23), t_retrywait);
  1786. label57 = gtk_label_new (_(" Retry Wait time "));
  1787. gtk_widget_set_name (label57, "label57");
  1788. gtk_widget_show (label57);
  1789. gtk_frame_set_label_widget (GTK_FRAME (frame23), label57);
  1790. gtk_label_set_use_markup (GTK_LABEL (label57), TRUE);
  1791. frame12 = gtk_frame_new (NULL);
  1792. gtk_widget_set_name (frame12, "frame12");
  1793. gtk_widget_show (frame12);
  1794. gtk_box_pack_start (GTK_BOX (vbox11), frame12, FALSE, TRUE, 0);
  1795. gtk_container_set_border_width (GTK_CONTAINER (frame12), 3);
  1796. alignment12 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1797. gtk_widget_set_name (alignment12, "alignment12");
  1798. gtk_widget_show (alignment12);
  1799. gtk_container_add (GTK_CONTAINER (frame12), alignment12);
  1800. hbox15 = gtk_hbox_new (FALSE, 0);
  1801. gtk_widget_set_name (hbox15, "hbox15");
  1802. gtk_widget_show (hbox15);
  1803. gtk_container_add (GTK_CONTAINER (alignment12), hbox15);
  1804. gtk_container_set_border_width (GTK_CONTAINER (hbox15), 15);
  1805. pixmap5 = gtk_pixmap_new (pixmap, mask);
  1806. gtk_widget_set_name (pixmap5, "pixmap5");
  1807. gtk_widget_show (pixmap5);
  1808. gtk_box_pack_start (GTK_BOX (hbox15), pixmap5, FALSE, TRUE, 10);
  1809. label38 = gtk_label_new (_("Connection pooling allows an application to reuse open connection\nhandles, which saves round-trips to the server."));
  1810. gtk_widget_set_name (label38, "label38");
  1811. gtk_widget_show (label38);
  1812. gtk_box_pack_start (GTK_BOX (hbox15), label38, FALSE, TRUE, 0);
  1813. gtk_label_set_justify (GTK_LABEL (label38), GTK_JUSTIFY_FILL);
  1814. label5 = gtk_label_new (_("Connection Pooling"));
  1815. gtk_widget_set_name (label5, "label5");
  1816. gtk_widget_show (label5);
  1817. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label5);
  1818. connectionpool_t.driverlist = lst_pool;
  1819. connectionpool_t.enperfmon_rb = br_enable;
  1820. connectionpool_t.disperfmon_rb = br_disable;
  1821. connectionpool_t.retwait_entry = t_retrywait;
  1822. connectionpool_t.changed = FALSE;
  1823. connectionpool_t.mainwnd = admin;
  1824. vbox13 = gtk_vbox_new (FALSE, 0);
  1825. gtk_widget_set_name (vbox13, "vbox13");
  1826. gtk_widget_show (vbox13);
  1827. gtk_container_add (GTK_CONTAINER (notebook1), vbox13);
  1828. table1 = gtk_table_new (3, 2, FALSE);
  1829. gtk_widget_set_name (table1, "table1");
  1830. gtk_widget_show (table1);
  1831. gtk_box_pack_start (GTK_BOX (vbox13), table1, TRUE, TRUE, 0);
  1832. gtk_widget_set_size_request (table1, -1, 250);
  1833. frame30 = gtk_frame_new (NULL);
  1834. gtk_widget_set_name (frame30, "frame30");
  1835. gtk_widget_show (frame30);
  1836. gtk_table_attach (GTK_TABLE (table1), frame30, 0, 1, 2, 3,
  1837. (GtkAttachOptions) (GTK_FILL),
  1838. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
  1839. gtk_frame_set_shadow_type (GTK_FRAME (frame30), GTK_SHADOW_NONE);
  1840. frame25 = gtk_frame_new (NULL);
  1841. gtk_widget_set_name (frame25, "frame25");
  1842. gtk_widget_show (frame25);
  1843. gtk_table_attach (GTK_TABLE (table1), frame25, 0, 1, 0, 1,
  1844. (GtkAttachOptions) (GTK_FILL),
  1845. (GtkAttachOptions) (GTK_FILL), 0, 0);
  1846. gtk_container_set_border_width (GTK_CONTAINER (frame25), 3);
  1847. alignment25 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1848. gtk_widget_set_name (alignment25, "alignment25");
  1849. gtk_widget_show (alignment25);
  1850. gtk_container_add (GTK_CONTAINER (frame25), alignment25);
  1851. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment25), 0, 0, 12, 0);
  1852. table2 = gtk_table_new (4, 2, FALSE);
  1853. gtk_widget_set_name (table2, "table2");
  1854. gtk_widget_show (table2);
  1855. gtk_container_add (GTK_CONTAINER (alignment25), table2);
  1856. gtk_container_set_border_width (GTK_CONTAINER (table2), 4);
  1857. gtk_table_set_col_spacings (GTK_TABLE (table2), 13);
  1858. b_donottrace = gtk_radio_button_new_with_mnemonic (NULL, _("_Don't trace"));
  1859. gtk_widget_set_name (b_donottrace, "b_donottrace");
  1860. gtk_widget_show (b_donottrace);
  1861. gtk_table_attach (GTK_TABLE (table2), b_donottrace, 0, 1, 0, 1,
  1862. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1863. (GtkAttachOptions) (GTK_EXPAND), 0, 0);
  1864. gtk_radio_button_set_group (GTK_RADIO_BUTTON (b_donottrace), b_donottrace_group);
  1865. b_donottrace_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (b_donottrace));
  1866. b_allthetime = gtk_radio_button_new_with_mnemonic (NULL, _("All the t_ime"));
  1867. gtk_widget_set_name (b_allthetime, "b_allthetime");
  1868. gtk_widget_show (b_allthetime);
  1869. gtk_table_attach (GTK_TABLE (table2), b_allthetime, 0, 1, 1, 2,
  1870. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1871. (GtkAttachOptions) (GTK_EXPAND), 0, 0);
  1872. gtk_radio_button_set_group (GTK_RADIO_BUTTON (b_allthetime), b_donottrace_group);
  1873. b_donottrace_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (b_allthetime));
  1874. b_onetime = gtk_radio_button_new_with_mnemonic (NULL, _("One-_time only"));
  1875. gtk_widget_set_name (b_onetime, "b_onetime");
  1876. gtk_widget_show (b_onetime);
  1877. gtk_table_attach (GTK_TABLE (table2), b_onetime, 0, 1, 2, 3,
  1878. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1879. (GtkAttachOptions) (GTK_EXPAND), 0, 0);
  1880. gtk_radio_button_set_group (GTK_RADIO_BUTTON (b_onetime), b_donottrace_group);
  1881. b_donottrace_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (b_onetime));
  1882. b_start = gtk_button_new_with_mnemonic (_("_Apply tracing settings"));
  1883. gtk_widget_set_name (b_start, "b_start");
  1884. gtk_widget_show (b_start);
  1885. gtk_table_attach (GTK_TABLE (table2), b_start, 1, 2, 0, 1,
  1886. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1887. (GtkAttachOptions) (GTK_EXPAND), 0, 0);
  1888. gtk_container_set_border_width (GTK_CONTAINER (b_start), 2);
  1889. frame28 = gtk_frame_new (NULL);
  1890. gtk_widget_set_name (frame28, "frame28");
  1891. gtk_widget_show (frame28);
  1892. gtk_table_attach (GTK_TABLE (table2), frame28, 0, 1, 3, 4,
  1893. (GtkAttachOptions) (GTK_FILL),
  1894. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
  1895. gtk_frame_set_shadow_type (GTK_FRAME (frame28), GTK_SHADOW_NONE);
  1896. label59 = gtk_label_new (_(" When to trace "));
  1897. gtk_widget_set_name (label59, "label59");
  1898. gtk_widget_show (label59);
  1899. gtk_frame_set_label_widget (GTK_FRAME (frame25), label59);
  1900. gtk_label_set_use_markup (GTK_LABEL (label59), TRUE);
  1901. frame27 = gtk_frame_new (NULL);
  1902. gtk_widget_set_name (frame27, "frame27");
  1903. gtk_widget_show (frame27);
  1904. gtk_table_attach (GTK_TABLE (table1), frame27, 0, 1, 1, 2,
  1905. (GtkAttachOptions) (GTK_FILL),
  1906. (GtkAttachOptions) (GTK_FILL), 0, 0);
  1907. gtk_widget_set_size_request (frame27, -1, 110);
  1908. gtk_container_set_border_width (GTK_CONTAINER (frame27), 3);
  1909. alignment27 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1910. gtk_widget_set_name (alignment27, "alignment27");
  1911. gtk_widget_show (alignment27);
  1912. gtk_container_add (GTK_CONTAINER (frame27), alignment27);
  1913. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment27), 0, 0, 10, 0);
  1914. vbox20 = gtk_vbox_new (FALSE, 5);
  1915. gtk_widget_set_name (vbox20, "vbox20");
  1916. gtk_widget_show (vbox20);
  1917. gtk_container_add (GTK_CONTAINER (alignment27), vbox20);
  1918. gtk_widget_set_size_request (vbox20, -1, 70);
  1919. gtk_container_set_border_width (GTK_CONTAINER(vbox20), 2);
  1920. t_tracelib = gtk_entry_new ();
  1921. gtk_widget_set_name (t_tracelib, "t_tracelib");
  1922. gtk_widget_show (t_tracelib);
  1923. gtk_box_pack_start (GTK_BOX (vbox20), t_tracelib, FALSE, TRUE, 0);
  1924. hbox23 = gtk_hbox_new (FALSE, 0);
  1925. gtk_widget_set_name (hbox23, "hbox23");
  1926. gtk_widget_show (hbox23);
  1927. gtk_box_pack_start (GTK_BOX (vbox20), hbox23, FALSE, TRUE, 0);
  1928. frame34 = gtk_frame_new (NULL);
  1929. gtk_widget_set_name (frame34, "frame34");
  1930. gtk_widget_show (frame34);
  1931. gtk_box_pack_start (GTK_BOX (hbox23), frame34, TRUE, TRUE, 0);
  1932. gtk_widget_set_size_request (frame34, -1, 30);
  1933. gtk_frame_set_shadow_type (GTK_FRAME (frame34), GTK_SHADOW_NONE);
  1934. bt_select_library = gtk_button_new_with_mnemonic (_("_Select library"));
  1935. gtk_widget_set_name (bt_select_library, "bt_select_library");
  1936. gtk_widget_show (bt_select_library);
  1937. gtk_box_pack_start (GTK_BOX (hbox23), bt_select_library, FALSE, TRUE, 0);
  1938. GTK_WIDGET_SET_FLAGS (bt_select_library, GTK_CAN_DEFAULT);
  1939. gtk_widget_add_accelerator (bt_select_library, "clicked", accel_group,
  1940. GDK_S, (GdkModifierType) GDK_MOD1_MASK,
  1941. GTK_ACCEL_VISIBLE);
  1942. frame35 = gtk_frame_new (NULL);
  1943. gtk_widget_set_name (frame35, "frame35");
  1944. gtk_widget_show (frame35);
  1945. gtk_box_pack_start (GTK_BOX (hbox23), frame35, TRUE, TRUE, 0);
  1946. gtk_widget_set_size_request (frame35, -1, 30);
  1947. gtk_frame_set_shadow_type (GTK_FRAME (frame35), GTK_SHADOW_NONE);
  1948. frame31 = gtk_frame_new (NULL);
  1949. gtk_widget_set_name (frame31, "frame31");
  1950. gtk_widget_show (frame31);
  1951. gtk_box_pack_start (GTK_BOX (vbox20), frame31, TRUE, TRUE, 0);
  1952. gtk_widget_set_size_request (frame31, -1, 30);
  1953. gtk_frame_set_shadow_type (GTK_FRAME (frame31), GTK_SHADOW_NONE);
  1954. label61 = gtk_label_new (_(" Custom trace library "));
  1955. gtk_widget_set_name (label61, "label61");
  1956. gtk_widget_show (label61);
  1957. gtk_frame_set_label_widget (GTK_FRAME (frame27), label61);
  1958. gtk_label_set_use_markup (GTK_LABEL (label61), TRUE);
  1959. frame26 = gtk_frame_new (NULL);
  1960. gtk_widget_set_name (frame26, "frame26");
  1961. gtk_widget_show (frame26);
  1962. gtk_table_attach (GTK_TABLE (table1), frame26, 1, 2, 0, 1,
  1963. (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
  1964. (GtkAttachOptions) (GTK_FILL), 0, 0);
  1965. gtk_container_set_border_width (GTK_CONTAINER (frame26), 3);
  1966. alignment26 = gtk_alignment_new (0.5, 0.5, 1, 1);
  1967. gtk_widget_set_name (alignment26, "alignment26");
  1968. gtk_widget_show (alignment26);
  1969. gtk_container_add (GTK_CONTAINER (frame26), alignment26);
  1970. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment26), 0, 0, 12, 0);
  1971. vbox19 = gtk_vbox_new (FALSE, 0);
  1972. gtk_widget_set_name (vbox19, "vbox19");
  1973. gtk_widget_show (vbox19);
  1974. gtk_container_add (GTK_CONTAINER (alignment26), vbox19);
  1975. t_logfile = gtk_entry_new ();
  1976. gtk_widget_set_name (t_logfile, "t_logfile");
  1977. gtk_widget_show (t_logfile);
  1978. gtk_box_pack_start (GTK_BOX (vbox19), t_logfile, TRUE, TRUE, 0);
  1979. gtk_entry_set_text (GTK_ENTRY (t_logfile), _("sql.log"));
  1980. hbox22 = gtk_hbox_new (FALSE, 0);
  1981. gtk_widget_set_name (hbox22, "hbox22");
  1982. gtk_widget_show (hbox22);
  1983. gtk_box_pack_start (GTK_BOX (vbox19), hbox22, FALSE, TRUE, 0);
  1984. frame32 = gtk_frame_new (NULL);
  1985. gtk_widget_set_name (frame32, "frame32");
  1986. gtk_widget_show (frame32);
  1987. gtk_box_pack_start (GTK_BOX (hbox22), frame32, TRUE, TRUE, 0);
  1988. gtk_widget_set_size_request (frame32, -1, 30);
  1989. gtk_frame_set_shadow_type (GTK_FRAME (frame32), GTK_SHADOW_NONE);
  1990. bt_browse = gtk_button_new_with_mnemonic (_("_Browse"));
  1991. gtk_widget_set_name (bt_browse, "bt_browse");
  1992. gtk_widget_show (bt_browse);
  1993. gtk_box_pack_start (GTK_BOX (hbox22), bt_browse, FALSE, TRUE, 0);
  1994. gtk_container_set_border_width (GTK_CONTAINER(bt_browse), 2);
  1995. GTK_WIDGET_SET_FLAGS (bt_browse, GTK_CAN_DEFAULT);
  1996. gtk_widget_add_accelerator (bt_browse, "clicked", accel_group,
  1997. GDK_B, (GdkModifierType) GDK_MOD1_MASK,
  1998. GTK_ACCEL_VISIBLE);
  1999. frame33 = gtk_frame_new (NULL);
  2000. gtk_widget_set_name (frame33, "frame33");
  2001. gtk_widget_show (frame33);
  2002. gtk_box_pack_start (GTK_BOX (hbox22), frame33, TRUE, TRUE, 0);
  2003. gtk_widget_set_size_request (frame33, -1, 30);
  2004. gtk_frame_set_shadow_type (GTK_FRAME (frame33), GTK_SHADOW_NONE);
  2005. frame29 = gtk_frame_new (NULL);
  2006. gtk_widget_set_name (frame29, "frame29");
  2007. gtk_widget_show (frame29);
  2008. gtk_box_pack_start (GTK_BOX (vbox19), frame29, TRUE, TRUE, 0);
  2009. gtk_widget_set_size_request (frame29, -1, 30);
  2010. gtk_frame_set_shadow_type (GTK_FRAME (frame29), GTK_SHADOW_NONE);
  2011. label60 = gtk_label_new (_(" Log file path "));
  2012. gtk_widget_set_name (label60, "label60");
  2013. gtk_widget_show (label60);
  2014. gtk_frame_set_label_widget (GTK_FRAME (frame26), label60);
  2015. gtk_label_set_use_markup (GTK_LABEL (label60), TRUE);
  2016. frame14 = gtk_frame_new (NULL);
  2017. gtk_widget_set_name (frame14, "frame14");
  2018. gtk_widget_show (frame14);
  2019. gtk_box_pack_start (GTK_BOX (vbox13), frame14, FALSE, TRUE, 0);
  2020. gtk_container_set_border_width (GTK_CONTAINER (frame14), 3);
  2021. alignment14 = gtk_alignment_new (0.5, 0.5, 1, 1);
  2022. gtk_widget_set_name (alignment14, "alignment14");
  2023. gtk_widget_show (alignment14);
  2024. gtk_container_add (GTK_CONTAINER (frame14), alignment14);
  2025. hbox17 = gtk_hbox_new (FALSE, 0);
  2026. gtk_widget_set_name (hbox17, "hbox17");
  2027. gtk_widget_show (hbox17);
  2028. gtk_container_add (GTK_CONTAINER (alignment14), hbox17);
  2029. gtk_container_set_border_width (GTK_CONTAINER (hbox17), 10);
  2030. pixmap6 = gtk_pixmap_new (pixmap, mask);
  2031. gtk_widget_set_name (pixmap6, "pixmap6");
  2032. gtk_widget_show (pixmap6);
  2033. gtk_box_pack_start (GTK_BOX (hbox17), pixmap6, FALSE, TRUE, 10);
  2034. label43 = gtk_label_new (_("ODBC tracing allows you to create logs of the calls to ODBC drivers for\nuse by support personnel or to aid you in debugging your applications.\nNote: log files can become very large."));
  2035. gtk_widget_set_name (label43, "label43");
  2036. gtk_widget_show (label43);
  2037. gtk_box_pack_start (GTK_BOX (hbox17), label43, FALSE, TRUE, 0);
  2038. gtk_label_set_justify (GTK_LABEL (label43), GTK_JUSTIFY_FILL);
  2039. label6 = gtk_label_new (_("Tracing"));
  2040. gtk_widget_set_name (label6, "label6");
  2041. gtk_widget_show (label6);
  2042. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 5), label6);
  2043. tracing_t.logfile_entry = t_logfile;
  2044. tracing_t.tracelib_entry = t_tracelib;
  2045. tracing_t.b_start_stop = b_start;
  2046. tracing_t.donttrace_rb = b_donottrace;
  2047. tracing_t.allthetime_rb = b_allthetime;
  2048. tracing_t.onetime_rb = b_onetime;
  2049. tracing_t.changed = FALSE;
  2050. vbox15 = gtk_vbox_new (FALSE, 0);
  2051. gtk_widget_set_name (vbox15, "vbox15");
  2052. gtk_widget_show (vbox15);
  2053. gtk_container_add (GTK_CONTAINER (notebook1), vbox15);
  2054. frame15 = gtk_frame_new (NULL);
  2055. gtk_widget_set_name (frame15, "frame15");
  2056. gtk_widget_show (frame15);
  2057. gtk_box_pack_start (GTK_BOX (vbox15), frame15, TRUE, TRUE, 0);
  2058. gtk_frame_set_shadow_type (GTK_FRAME (frame15), GTK_SHADOW_NONE);
  2059. alignment15 = gtk_alignment_new (0.5, 0.5, 1, 1);
  2060. gtk_widget_set_name (alignment15, "alignment15");
  2061. gtk_widget_show (alignment15);
  2062. gtk_container_add (GTK_CONTAINER (frame15), alignment15);
  2063. gtk_alignment_set_padding (GTK_ALIGNMENT (alignment15), 0, 0, 4, 0);
  2064. hbox18 = gtk_hbox_new (FALSE, 0);
  2065. gtk_widget_set_name (hbox18, "hbox18");
  2066. gtk_widget_show (hbox18);
  2067. gtk_container_add (GTK_CONTAINER (alignment15), hbox18);
  2068. scrolledwindow8 = gtk_scrolled_window_new (NULL, NULL);
  2069. gtk_widget_set_name (scrolledwindow8, "scrolledwindow8");
  2070. gtk_widget_show (scrolledwindow8);
  2071. gtk_box_pack_start (GTK_BOX (hbox18), scrolledwindow8, TRUE, TRUE, 0);
  2072. gtk_widget_set_size_request (scrolledwindow8, 440, 219);
  2073. gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow8), GTK_SHADOW_IN);
  2074. lst_about = gtk_clist_new (5);
  2075. gtk_widget_set_name (lst_about, "lst_about");
  2076. gtk_widget_show (lst_about);
  2077. gtk_container_add (GTK_CONTAINER (scrolledwindow8), lst_about);
  2078. gtk_clist_set_column_width (GTK_CLIST (lst_about), 0, 80);
  2079. gtk_clist_set_column_width (GTK_CLIST (lst_about), 1, 80);
  2080. gtk_clist_set_column_width (GTK_CLIST (lst_about), 2, 80);
  2081. gtk_clist_set_column_width (GTK_CLIST (lst_about), 3, 80);
  2082. gtk_clist_set_column_width (GTK_CLIST (lst_about), 4, 80);
  2083. gtk_clist_column_titles_show (GTK_CLIST (lst_about));
  2084. la_name = gtk_label_new (_("Name"));
  2085. gtk_widget_set_name (la_name, "la_name");
  2086. gtk_widget_show (la_name);
  2087. gtk_clist_set_column_widget (GTK_CLIST (lst_about), 0, la_name);
  2088. la_version = gtk_label_new (_("Version"));
  2089. gtk_widget_set_name (la_version, "la_version");
  2090. gtk_widget_show (la_version);
  2091. gtk_clist_set_column_widget (GTK_CLIST (lst_about), 1, la_version);
  2092. la_file = gtk_label_new (_("File"));
  2093. gtk_widget_set_name (la_file, "la_file");
  2094. gtk_widget_show (la_file);
  2095. gtk_clist_set_column_widget (GTK_CLIST (lst_about), 2, la_file);
  2096. la_date = gtk_label_new (_("Date"));
  2097. gtk_widget_set_name (la_date, "la_date");
  2098. gtk_widget_show (la_date);
  2099. gtk_clist_set_column_widget (GTK_CLIST (lst_about), 3, la_date);
  2100. la_size = gtk_label_new (_("Size"));
  2101. gtk_widget_set_name (la_size, "la_size");
  2102. gtk_widget_show (la_size);
  2103. gtk_clist_set_column_widget (GTK_CLIST (lst_about), 4, la_size);
  2104. label47 = gtk_label_new (_(" ODBC components installed on your system :"));
  2105. gtk_widget_set_name (label47, "label47");
  2106. gtk_widget_show (label47);
  2107. gtk_frame_set_label_widget (GTK_FRAME (frame15), label47);
  2108. gtk_label_set_use_markup (GTK_LABEL (label47), TRUE);
  2109. frame16 = gtk_frame_new (NULL);
  2110. gtk_widget_set_name (frame16, "frame16");
  2111. gtk_widget_show (frame16);
  2112. gtk_box_pack_start (GTK_BOX (vbox15), frame16, FALSE, TRUE, 0);
  2113. gtk_container_set_border_width (GTK_CONTAINER (frame16), 3);
  2114. alignment16 = gtk_alignment_new (0.5, 0.5, 1, 1);
  2115. gtk_widget_set_name (alignment16, "alignment16");
  2116. gtk_widget_show (alignment16);
  2117. gtk_container_add (GTK_CONTAINER (frame16), alignment16);
  2118. hbox19 = gtk_hbox_new (FALSE, 0);
  2119. gtk_widget_set_name (hbox19, "hbox19");
  2120. gtk_widget_show (hbox19);
  2121. gtk_container_add (GTK_CONTAINER (alignment16), hbox19);
  2122. gtk_container_set_border_width (GTK_CONTAINER (hbox19), 10);
  2123. pixmap7 = gtk_pixmap_new (pixmap, mask);
  2124. gtk_widget_set_name (pixmap7, "pixmap7");
  2125. gtk_widget_show (pixmap7);
  2126. gtk_box_pack_start (GTK_BOX (hbox19), pixmap7, FALSE, TRUE, 10);
  2127. label48 = gtk_label_new (_("ODBC is a programming interface that enables applications to access\ndata in database management systems that use Structured Query\nLanguage (SQL) as a data access standard."));
  2128. gtk_widget_set_name (label48, "label48");
  2129. gtk_widget_show (label48);
  2130. gtk_box_pack_start (GTK_BOX (hbox19), label48, FALSE, TRUE, 0);
  2131. gtk_label_set_justify (GTK_LABEL (label48), GTK_JUSTIFY_FILL);
  2132. label7 = gtk_label_new (_("About"));
  2133. gtk_widget_set_name (label7, "label7");
  2134. gtk_widget_show (label7);
  2135. gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 6), label7);
  2136. dialog_action_area1 = GTK_DIALOG (admin)->action_area;
  2137. gtk_widget_set_name (dialog_action_area1, "dialog_action_area1");
  2138. gtk_widget_show (dialog_action_area1);
  2139. gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
  2140. cancelbutton1 = gtk_button_new_from_stock ("gtk-cancel");
  2141. gtk_widget_set_name (cancelbutton1, "cancelbutton1");
  2142. gtk_widget_show (cancelbutton1);
  2143. gtk_dialog_add_action_widget (GTK_DIALOG (admin), cancelbutton1, GTK_RESPONSE_CANCEL);
  2144. GTK_WIDGET_SET_FLAGS (cancelbutton1, GTK_CAN_DEFAULT);
  2145. okbutton1 = gtk_button_new_from_stock ("gtk-ok");
  2146. gtk_widget_set_name (okbutton1, "okbutton1");
  2147. gtk_widget_show (okbutton1);
  2148. gtk_dialog_add_action_widget (GTK_DIALOG (admin), okbutton1, GTK_RESPONSE_OK);
  2149. GTK_WIDGET_SET_FLAGS (okbutton1, GTK_CAN_DEFAULT);
  2150. /* Store pointers to all widgets, for use by lookup_widget(). */
  2151. GLADE_HOOKUP_OBJECT_NO_REF (admin, admin, "admin");
  2152. GLADE_HOOKUP_OBJECT_NO_REF (admin, dialog_vbox1, "dialog_vbox1");
  2153. GLADE_HOOKUP_OBJECT (admin, notebook1, "notebook1");
  2154. GLADE_HOOKUP_OBJECT (admin, vbox1, "vbox1");
  2155. GLADE_HOOKUP_OBJECT (admin, frame1, "frame1");
  2156. GLADE_HOOKUP_OBJECT (admin, alignment1, "alignment1");
  2157. GLADE_HOOKUP_OBJECT (admin, hbox2, "hbox2");
  2158. GLADE_HOOKUP_OBJECT (admin, scrolledwindow1, "scrolledwindow1");
  2159. GLADE_HOOKUP_OBJECT (admin, lst_usources, "lst_usources");
  2160. GLADE_HOOKUP_OBJECT (admin, lu_name, "lu_name");
  2161. GLADE_HOOKUP_OBJECT (admin, lu_description, "lu_description");
  2162. GLADE_HOOKUP_OBJECT (admin, lu_driver, "lu_driver");
  2163. GLADE_HOOKUP_OBJECT (admin, vbox3, "vbox3");
  2164. GLADE_HOOKUP_OBJECT (admin, bu_add, "bu_add");
  2165. GLADE_HOOKUP_OBJECT (admin, bu_remove, "bu_remove");
  2166. GLADE_HOOKUP_OBJECT (admin, bu_config, "bu_config");
  2167. GLADE_HOOKUP_OBJECT (admin, bu_test, "bu_test");
  2168. GLADE_HOOKUP_OBJECT (admin, frame18, "frame18");
  2169. GLADE_HOOKUP_OBJECT (admin, alignment18, "alignment18");
  2170. GLADE_HOOKUP_OBJECT (admin, l_usdsn, "l_usdsn");
  2171. GLADE_HOOKUP_OBJECT (admin, frame2, "frame2");
  2172. GLADE_HOOKUP_OBJECT (admin, alignment2, "alignment2");
  2173. GLADE_HOOKUP_OBJECT (admin, hbox3, "hbox3");
  2174. GLADE_HOOKUP_OBJECT (admin, pixmap1, "pixmap1");
  2175. GLADE_HOOKUP_OBJECT (admin, label14, "label14");
  2176. GLADE_HOOKUP_OBJECT (admin, label1, "label1");
  2177. GLADE_HOOKUP_OBJECT (admin, vbox4, "vbox4");
  2178. GLADE_HOOKUP_OBJECT (admin, frame3, "frame3");
  2179. GLADE_HOOKUP_OBJECT (admin, alignment3, "alignment3");
  2180. GLADE_HOOKUP_OBJECT (admin, hbox4, "hbox4");
  2181. GLADE_HOOKUP_OBJECT (admin, scrolledwindow2, "scrolledwindow2");
  2182. GLADE_HOOKUP_OBJECT (admin, lst_ssources, "lst_ssources");
  2183. GLADE_HOOKUP_OBJECT (admin, ls_name, "ls_name");
  2184. GLADE_HOOKUP_OBJECT (admin, ls_description, "ls_description");
  2185. GLADE_HOOKUP_OBJECT (admin, ls_driver, "ls_driver");
  2186. GLADE_HOOKUP_OBJECT (admin, vbox5, "vbox5");
  2187. GLADE_HOOKUP_OBJECT (admin, bs_add, "bs_add");
  2188. GLADE_HOOKUP_OBJECT (admin, bs_remove, "bs_remove");
  2189. GLADE_HOOKUP_OBJECT (admin, bs_config, "bs_config");
  2190. GLADE_HOOKUP_OBJECT (admin, bs_test, "bs_test");
  2191. GLADE_HOOKUP_OBJECT (admin, frame19, "frame19");
  2192. GLADE_HOOKUP_OBJECT (admin, alignment19, "alignment19");
  2193. GLADE_HOOKUP_OBJECT (admin, label18, "label18");
  2194. GLADE_HOOKUP_OBJECT (admin, frame4, "frame4");
  2195. GLADE_HOOKUP_OBJECT (admin, alignment4, "alignment4");
  2196. GLADE_HOOKUP_OBJECT (admin, hbox5, "hbox5");
  2197. GLADE_HOOKUP_OBJECT (admin, pixmap2, "pixmap2");
  2198. GLADE_HOOKUP_OBJECT (admin, label19, "label19");
  2199. GLADE_HOOKUP_OBJECT (admin, label2, "label2");
  2200. GLADE_HOOKUP_OBJECT (admin, vbox6, "vbox6");
  2201. GLADE_HOOKUP_OBJECT (admin, frame5, "frame5");
  2202. GLADE_HOOKUP_OBJECT (admin, alignment5, "alignment5");
  2203. GLADE_HOOKUP_OBJECT (admin, hbox6, "hbox6");
  2204. GLADE_HOOKUP_OBJECT (admin, vbox8, "vbox8");
  2205. GLADE_HOOKUP_OBJECT (admin, hbox8, "hbox8");
  2206. GLADE_HOOKUP_OBJECT (admin, frame7, "frame7");
  2207. GLADE_HOOKUP_OBJECT (admin, alignment7, "alignment7");
  2208. GLADE_HOOKUP_OBJECT (admin, hbox9, "hbox9");
  2209. GLADE_HOOKUP_OBJECT (admin, l_lookin, "l_lookin");
  2210. GLADE_HOOKUP_OBJECT (admin, optionmenu1, "optionmenu1");
  2211. GLADE_HOOKUP_OBJECT (admin, menu1, "menu1");
  2212. GLADE_HOOKUP_OBJECT (admin, hbox11, "hbox11");
  2213. GLADE_HOOKUP_OBJECT (admin, scrolledwindow3, "scrolledwindow3");
  2214. GLADE_HOOKUP_OBJECT (admin, lst_fdir, "lst_fdir");
  2215. GLADE_HOOKUP_OBJECT (admin, l_directory, "l_directory");
  2216. GLADE_HOOKUP_OBJECT (admin, scrolledwindow4, "scrolledwindow4");
  2217. GLADE_HOOKUP_OBJECT (admin, lst_ffiles, "lst_ffiles");
  2218. GLADE_HOOKUP_OBJECT (admin, l_files, "l_files");
  2219. GLADE_HOOKUP_OBJECT (admin, frame8, "frame8");
  2220. GLADE_HOOKUP_OBJECT (admin, alignment8, "alignment8");
  2221. GLADE_HOOKUP_OBJECT (admin, hbox10, "hbox10");
  2222. GLADE_HOOKUP_OBJECT (admin, l_selected, "l_selected");
  2223. GLADE_HOOKUP_OBJECT (admin, t_fileselected, "t_fileselected");
  2224. GLADE_HOOKUP_OBJECT (admin, vbox7, "vbox7");
  2225. GLADE_HOOKUP_OBJECT (admin, bf_add, "bf_add");
  2226. GLADE_HOOKUP_OBJECT (admin, bf_remove, "bf_remove");
  2227. GLADE_HOOKUP_OBJECT (admin, bf_config, "bf_config");
  2228. GLADE_HOOKUP_OBJECT (admin, bf_test, "bf_test");
  2229. GLADE_HOOKUP_OBJECT (admin, bf_setdir, "bf_setdir");
  2230. GLADE_HOOKUP_OBJECT (admin, frame20, "frame20");
  2231. GLADE_HOOKUP_OBJECT (admin, alignment20, "alignment20");
  2232. GLADE_HOOKUP_OBJECT (admin, frame6, "frame6");
  2233. GLADE_HOOKUP_OBJECT (admin, alignment6, "alignment6");
  2234. GLADE_HOOKUP_OBJECT (admin, hbox7, "hbox7");
  2235. GLADE_HOOKUP_OBJECT (admin, pixmap3, "pixmap3");
  2236. GLADE_HOOKUP_OBJECT (admin, label24, "label24");
  2237. GLADE_HOOKUP_OBJECT (admin, label53, "label53");
  2238. GLADE_HOOKUP_OBJECT (admin, vbox9, "vbox9");
  2239. GLADE_HOOKUP_OBJECT (admin, frame9, "frame9");
  2240. GLADE_HOOKUP_OBJECT (admin, alignment9, "alignment9");
  2241. GLADE_HOOKUP_OBJECT (admin, hbox12, "hbox12");
  2242. GLADE_HOOKUP_OBJECT (admin, scrolledwindow5, "scrolledwindow5");
  2243. GLADE_HOOKUP_OBJECT (admin, lst_drivers, "lst_drivers");
  2244. GLADE_HOOKUP_OBJECT (admin, ld_name, "ld_name");
  2245. GLADE_HOOKUP_OBJECT (admin, ld_file, "ld_file");
  2246. GLADE_HOOKUP_OBJECT (admin, ld_date, "ld_date");
  2247. GLADE_HOOKUP_OBJECT (admin, ld_size, "ld_size");
  2248. GLADE_HOOKUP_OBJECT (admin, label32, "label32");
  2249. GLADE_HOOKUP_OBJECT (admin, frame10, "frame10");
  2250. GLADE_HOOKUP_OBJECT (admin, alignment10, "alignment10");
  2251. GLADE_HOOKUP_OBJECT (admin, hbox13, "hbox13");
  2252. GLADE_HOOKUP_OBJECT (admin, b_add_driver, "b_add_driver");
  2253. GLADE_HOOKUP_OBJECT (admin, b_remove_driver, "b_remove_driver");
  2254. GLADE_HOOKUP_OBJECT (admin, b_configure_driver, "b_configure_driver");
  2255. GLADE_HOOKUP_OBJECT (admin, frame17, "frame17");
  2256. GLADE_HOOKUP_OBJECT (admin, alignment17, "alignment17");
  2257. GLADE_HOOKUP_OBJECT (admin, hbox20, "hbox20");
  2258. GLADE_HOOKUP_OBJECT (admin, pixmap4, "pixmap4");
  2259. GLADE_HOOKUP_OBJECT (admin, label54, "label54");
  2260. GLADE_HOOKUP_OBJECT (admin, label4, "label4");
  2261. GLADE_HOOKUP_OBJECT (admin, vbox11, "vbox11");
  2262. GLADE_HOOKUP_OBJECT (admin, hbox21, "hbox21");
  2263. GLADE_HOOKUP_OBJECT (admin, frame21, "frame21");
  2264. GLADE_HOOKUP_OBJECT (admin, alignment21, "alignment21");
  2265. GLADE_HOOKUP_OBJECT (admin, frame24, "frame24");
  2266. GLADE_HOOKUP_OBJECT (admin, alignment24, "alignment24");
  2267. GLADE_HOOKUP_OBJECT (admin, scrolledwindow9, "scrolledwindow9");
  2268. GLADE_HOOKUP_OBJECT (admin, lst_pool, "lst_pool");
  2269. GLADE_HOOKUP_OBJECT (admin, lp_name, "lp_name");
  2270. GLADE_HOOKUP_OBJECT (admin, lp_timeout, "lp_timeout");
  2271. GLADE_HOOKUP_OBJECT (admin, lp_probe, "lp_probe");
  2272. GLADE_HOOKUP_OBJECT (admin, label58, "label58");
  2273. GLADE_HOOKUP_OBJECT (admin, label55, "label55");
  2274. GLADE_HOOKUP_OBJECT (admin, vbox17, "vbox17");
  2275. GLADE_HOOKUP_OBJECT (admin, frame22, "frame22");
  2276. GLADE_HOOKUP_OBJECT (admin, alignment22, "alignment22");
  2277. GLADE_HOOKUP_OBJECT (admin, vbox18, "vbox18");
  2278. GLADE_HOOKUP_OBJECT (admin, br_enable, "br_enable");
  2279. GLADE_HOOKUP_OBJECT (admin, br_disable, "br_disable");
  2280. GLADE_HOOKUP_OBJECT (admin, label56, "label56");
  2281. GLADE_HOOKUP_OBJECT (admin, frame23, "frame23");
  2282. GLADE_HOOKUP_OBJECT (admin, alignment23, "alignment23");
  2283. GLADE_HOOKUP_OBJECT (admin, t_retrywait, "t_retrywait");
  2284. GLADE_HOOKUP_OBJECT (admin, label57, "label57");
  2285. GLADE_HOOKUP_OBJECT (admin, frame12, "frame12");
  2286. GLADE_HOOKUP_OBJECT (admin, alignment12, "alignment12");
  2287. GLADE_HOOKUP_OBJECT (admin, hbox15, "hbox15");
  2288. GLADE_HOOKUP_OBJECT (admin, pixmap5, "pixmap5");
  2289. GLADE_HOOKUP_OBJECT (admin, label38, "label38");
  2290. GLADE_HOOKUP_OBJECT (admin, label5, "label5");
  2291. GLADE_HOOKUP_OBJECT (admin, vbox13, "vbox13");
  2292. GLADE_HOOKUP_OBJECT (admin, table1, "table1");
  2293. GLADE_HOOKUP_OBJECT (admin, frame25, "frame25");
  2294. GLADE_HOOKUP_OBJECT (admin, alignment25, "alignment25");
  2295. GLADE_HOOKUP_OBJECT (admin, table2, "table2");
  2296. GLADE_HOOKUP_OBJECT (admin, b_donottrace, "b_donottrace");
  2297. GLADE_HOOKUP_OBJECT (admin, b_allthetime, "b_allthetime");
  2298. GLADE_HOOKUP_OBJECT (admin, b_onetime, "b_onetime");
  2299. GLADE_HOOKUP_OBJECT (admin, b_start, "b_start");
  2300. GLADE_HOOKUP_OBJECT (admin, frame28, "frame28");
  2301. GLADE_HOOKUP_OBJECT (admin, label59, "label59");
  2302. GLADE_HOOKUP_OBJECT (admin, frame26, "frame26");
  2303. GLADE_HOOKUP_OBJECT (admin, alignment26, "alignment26");
  2304. GLADE_HOOKUP_OBJECT (admin, vbox19, "vbox19");
  2305. GLADE_HOOKUP_OBJECT (admin, t_logfile, "t_logfile");
  2306. GLADE_HOOKUP_OBJECT (admin, hbox22, "hbox22");
  2307. GLADE_HOOKUP_OBJECT (admin, frame32, "frame32");
  2308. GLADE_HOOKUP_OBJECT (admin, bt_browse, "bt_browse");
  2309. GLADE_HOOKUP_OBJECT (admin, frame33, "frame33");
  2310. GLADE_HOOKUP_OBJECT (admin, frame29, "frame29");
  2311. GLADE_HOOKUP_OBJECT (admin, label60, "label60");
  2312. GLADE_HOOKUP_OBJECT (admin, frame27, "frame27");
  2313. GLADE_HOOKUP_OBJECT (admin, alignment27, "alignment27");
  2314. GLADE_HOOKUP_OBJECT (admin, vbox20, "vbox20");
  2315. GLADE_HOOKUP_OBJECT (admin, t_tracelib, "t_tracelib");
  2316. GLADE_HOOKUP_OBJECT (admin, hbox23, "hbox23");
  2317. GLADE_HOOKUP_OBJECT (admin, frame34, "frame34");
  2318. GLADE_HOOKUP_OBJECT (admin, bt_select_library, "bt_select_library");
  2319. GLADE_HOOKUP_OBJECT (admin, frame35, "frame35");
  2320. GLADE_HOOKUP_OBJECT (admin, frame31, "frame31");
  2321. GLADE_HOOKUP_OBJECT (admin, label61, "label61");
  2322. GLADE_HOOKUP_OBJECT (admin, frame30, "frame30");
  2323. GLADE_HOOKUP_OBJECT (admin, frame14, "frame14");
  2324. GLADE_HOOKUP_OBJECT (admin, alignment14, "alignment14");
  2325. GLADE_HOOKUP_OBJECT (admin, hbox17, "hbox17");
  2326. GLADE_HOOKUP_OBJECT (admin, pixmap6, "pixmap6");
  2327. GLADE_HOOKUP_OBJECT (admin, label43, "label43");
  2328. GLADE_HOOKUP_OBJECT (admin, label6, "label6");
  2329. GLADE_HOOKUP_OBJECT (admin, vbox15, "vbox15");
  2330. GLADE_HOOKUP_OBJECT (admin, frame15, "frame15");
  2331. GLADE_HOOKUP_OBJECT (admin, alignment15, "alignment15");
  2332. GLADE_HOOKUP_OBJECT (admin, hbox18, "hbox18");
  2333. GLADE_HOOKUP_OBJECT (admin, scrolledwindow8, "scrolledwindow8");
  2334. GLADE_HOOKUP_OBJECT (admin, lst_about, "lst_about");
  2335. GLADE_HOOKUP_OBJECT (admin, la_name, "la_name");
  2336. GLADE_HOOKUP_OBJECT (admin, la_version, "la_version");
  2337. GLADE_HOOKUP_OBJECT (admin, la_file, "la_file");
  2338. GLADE_HOOKUP_OBJECT (admin, la_date, "la_date");
  2339. GLADE_HOOKUP_OBJECT (admin, la_size, "la_size");
  2340. GLADE_HOOKUP_OBJECT (admin, label47, "label47");
  2341. GLADE_HOOKUP_OBJECT (admin, frame16, "frame16");
  2342. GLADE_HOOKUP_OBJECT (admin, alignment16, "alignment16");
  2343. GLADE_HOOKUP_OBJECT (admin, hbox19, "hbox19");
  2344. GLADE_HOOKUP_OBJECT (admin, pixmap7, "pixmap7");
  2345. GLADE_HOOKUP_OBJECT (admin, label48, "label48");
  2346. GLADE_HOOKUP_OBJECT (admin, label7, "label7");
  2347. GLADE_HOOKUP_OBJECT_NO_REF (admin, dialog_action_area1, "dialog_action_area1");
  2348. GLADE_HOOKUP_OBJECT (admin, cancelbutton1, "cancelbutton1");
  2349. GLADE_HOOKUP_OBJECT (admin, okbutton1, "okbutton1");
  2350. /* Notebook events */
  2351. gtk_signal_connect_after (GTK_OBJECT (notebook1), "switch_page",
  2352. GTK_SIGNAL_FUNC (admin_switch_page), inparams);
  2353. /* Ok button events */
  2354. gtk_signal_connect (GTK_OBJECT (okbutton1), "clicked",
  2355. GTK_SIGNAL_FUNC (admin_ok_clicked), inparams);
  2356. /* Cancel button events */
  2357. gtk_signal_connect (GTK_OBJECT (cancelbutton1), "clicked",
  2358. GTK_SIGNAL_FUNC (admin_cancel_clicked), inparams);
  2359. /* Close window button events */
  2360. gtk_signal_connect (GTK_OBJECT (admin), "delete_event",
  2361. GTK_SIGNAL_FUNC (delete_event), inparams);
  2362. gtk_signal_connect (GTK_OBJECT (admin), "destroy",
  2363. GTK_SIGNAL_FUNC (gtk_main_quit), NULL);
  2364. /* Add user DSN button events */
  2365. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.uadd), "clicked",
  2366. GTK_SIGNAL_FUNC (userdsn_add_clicked), &dsnchoose_t);
  2367. /* Remove user DSN button events */
  2368. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.uremove), "clicked",
  2369. GTK_SIGNAL_FUNC (userdsn_remove_clicked), &dsnchoose_t);
  2370. /* Test user DSN button events */
  2371. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.utest), "clicked",
  2372. GTK_SIGNAL_FUNC (userdsn_test_clicked), &dsnchoose_t);
  2373. /* Configure user DSN button events */
  2374. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.uconfigure), "clicked",
  2375. GTK_SIGNAL_FUNC (userdsn_configure_clicked), &dsnchoose_t);
  2376. /* Add system DSN button events */
  2377. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.sadd), "clicked",
  2378. GTK_SIGNAL_FUNC (systemdsn_add_clicked), &dsnchoose_t);
  2379. /* Remove system DSN button events */
  2380. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.sremove), "clicked",
  2381. GTK_SIGNAL_FUNC (systemdsn_remove_clicked), &dsnchoose_t);
  2382. /* Test system DSN button events */
  2383. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.stest), "clicked",
  2384. GTK_SIGNAL_FUNC (systemdsn_test_clicked), &dsnchoose_t);
  2385. /* Configure system DSN button events */
  2386. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.sconfigure), "clicked",
  2387. GTK_SIGNAL_FUNC (systemdsn_configure_clicked), &dsnchoose_t);
  2388. /* Add file DSN button events */
  2389. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.fadd), "clicked",
  2390. GTK_SIGNAL_FUNC (filedsn_add_clicked),
  2391. &dsnchoose_t);
  2392. /* Remove file DSN button events */
  2393. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.fremove), "clicked",
  2394. GTK_SIGNAL_FUNC (filedsn_remove_clicked),
  2395. &dsnchoose_t);
  2396. /* Test file DSN button events */
  2397. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.ftest), "clicked",
  2398. GTK_SIGNAL_FUNC (filedsn_test_clicked),
  2399. &dsnchoose_t);
  2400. /* Configure file DSN button events */
  2401. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.fconfigure), "clicked",
  2402. GTK_SIGNAL_FUNC (filedsn_configure_clicked),
  2403. &dsnchoose_t);
  2404. /* Configure file DSN button events */
  2405. gtk_signal_connect (GTK_OBJECT (dsnchoose_t.fsetdir), "clicked",
  2406. GTK_SIGNAL_FUNC (filedsn_setdir_clicked),
  2407. &dsnchoose_t);
  2408. /* Add driver button events */
  2409. gtk_signal_connect (GTK_OBJECT (driverchoose_t.b_add), "clicked",
  2410. GTK_SIGNAL_FUNC (driver_add_clicked), &driverchoose_t);
  2411. /* Remove driver button events */
  2412. gtk_signal_connect (GTK_OBJECT (driverchoose_t.b_remove), "clicked",
  2413. GTK_SIGNAL_FUNC (driver_remove_clicked), &driverchoose_t);
  2414. /* Configure driver button events */
  2415. gtk_signal_connect (GTK_OBJECT (driverchoose_t.b_configure), "clicked",
  2416. GTK_SIGNAL_FUNC (driver_configure_clicked), &driverchoose_t);
  2417. /* User DSN list events */
  2418. gtk_signal_connect (GTK_OBJECT (lst_usources), "select_row",
  2419. GTK_SIGNAL_FUNC (userdsn_list_select), &dsnchoose_t);
  2420. gtk_signal_connect (GTK_OBJECT (lst_usources), "unselect_row",
  2421. GTK_SIGNAL_FUNC (userdsn_list_unselect), &dsnchoose_t);
  2422. /* System DSN list events */
  2423. gtk_signal_connect (GTK_OBJECT (lst_ssources), "select_row",
  2424. GTK_SIGNAL_FUNC (systemdsn_list_select), &dsnchoose_t);
  2425. gtk_signal_connect (GTK_OBJECT (lst_ssources), "unselect_row",
  2426. GTK_SIGNAL_FUNC (systemdsn_list_unselect), &dsnchoose_t);
  2427. /* Directories file DSN list events */
  2428. gtk_signal_connect (GTK_OBJECT (lst_fdir), "select_row",
  2429. GTK_SIGNAL_FUNC (filedsn_dirlist_select),
  2430. &dsnchoose_t);
  2431. /* Files file DSN list events */
  2432. gtk_signal_connect (GTK_OBJECT (lst_ffiles), "select_row",
  2433. GTK_SIGNAL_FUNC (filedsn_filelist_select),
  2434. &dsnchoose_t);
  2435. gtk_signal_connect (GTK_OBJECT (lst_ffiles), "unselect_row",
  2436. GTK_SIGNAL_FUNC (filedsn_filelist_unselect),
  2437. &dsnchoose_t);
  2438. /* Start tracing button events */
  2439. gtk_signal_connect (GTK_OBJECT (b_start), "clicked",
  2440. GTK_SIGNAL_FUNC (tracing_start_clicked), &tracing_t);
  2441. /* Browse file entry events */
  2442. gtk_signal_connect (GTK_OBJECT (bt_browse), "clicked",
  2443. GTK_SIGNAL_FUNC (tracing_browse_clicked), &tracing_t);
  2444. /* Driver list events */
  2445. gtk_signal_connect (GTK_OBJECT (lst_drivers), "select_row",
  2446. GTK_SIGNAL_FUNC (driver_list_select), &driverchoose_t);
  2447. gtk_signal_connect (GTK_OBJECT (lst_drivers), "unselect_row",
  2448. GTK_SIGNAL_FUNC (driver_list_unselect), &driverchoose_t);
  2449. /* Connection pooling list events */
  2450. gtk_signal_connect (GTK_OBJECT (lst_pool), "select_row",
  2451. GTK_SIGNAL_FUNC (cpdriver_list_select), &connectionpool_t);
  2452. SQLSetConfigMode (ODBC_BOTH_DSN);
  2453. if (!SQLGetPrivateProfileString("ODBC", "FileDSNPath", "",
  2454. dsnchoose_t.curr_dir, sizeof(dsnchoose_t.curr_dir), "odbcinst.ini"))
  2455. strcpy(dsnchoose_t.curr_dir, DEFAULT_FILEDSNPATH);
  2456. adddsns_to_list (lst_usources, FALSE);
  2457. component_t.componentlist = lst_about;
  2458. inparams[0] = &dsnchoose_t;
  2459. inparams[1] = &driverchoose_t;
  2460. inparams[2] = &tracing_t;
  2461. inparams[3] = &component_t;
  2462. inparams[4] = &connectionpool_t;
  2463. inparams[5] = admin;
  2464. gtk_widget_show_all (admin);
  2465. gtk_main ();
  2466. }