glib2.pas 53 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898
  1. { GLIB - Library of useful routines for C programming
  2. Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
  3. This library is free software; you can redistribute it and/or
  4. modify it under the terms of the GNU Lesser General Public
  5. License as published by the Free Software Foundation; either
  6. version 2 of the License, or (at your option) any later version.
  7. This library is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  10. Lesser General Public License for more details.
  11. You should have received a copy of the GNU Lesser General Public
  12. License along with this library; if not, write to the
  13. Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  14. Boston, MA 02111-1307, USA.
  15. }
  16. {
  17. Modified by the GLib Team and others 1997-2000. See the AUTHORS
  18. file for a list of people on the GLib Team. See the ChangeLog
  19. files for a list of changes. These files are distributed with
  20. GLib at ftp://ftp.gtk.org/pub/gtk/.
  21. }
  22. unit glib2; // keep unit name lowercase for kylix
  23. {$IFDEF FPC}
  24. {$mode objfpc}
  25. {$ENDIF}
  26. {$IFDEF VER140}
  27. {$DEFINE KYLIX}
  28. {$ENDIF}
  29. interface
  30. uses
  31. ctypes,SysUtils;
  32. const
  33. {$ifdef win32}
  34. {$define gtkwin}
  35. gliblib = 'libglib-2.0-0.dll';
  36. gthreadlib = 'libgthread-2.0-0.dll';
  37. gmodulelib = 'libgmodule-2.0-0.dll';
  38. gobjectlib = 'libgobject-2.0-0.dll';
  39. {$IFDEF FPC}
  40. {$ifndef NO_SMART_LINK}
  41. {$smartlink on}
  42. {$endif}
  43. {$ENDIF}
  44. {$else}
  45. {$ifdef UseCustomLibs}
  46. gliblib = '';
  47. gthreadlib = '';
  48. gmodulelib = '';
  49. gobjectlib = '';
  50. {$else}
  51. gliblib = 'libglib-2.0.so';
  52. gthreadlib = 'libgthread-2.0.so';
  53. gmodulelib = 'libgmodule-2.0.so';
  54. gobjectlib = 'libgobject-2.0.so';
  55. {$endif}
  56. {$endif}
  57. {$ifdef FREEBSD}
  58. {$linklib c}
  59. {$linklib pthread}
  60. {$endif}
  61. {$IFNDEF KYLIX}
  62. {$PACKRECORDS C}
  63. {$ELSE}
  64. {$ALIGN 4}
  65. {$WEAKPACKAGEUNIT}
  66. {$WARNINGS OFF}
  67. {$ENDIF}
  68. {$DEFINE read_forward_definitions}
  69. type
  70. // internal types
  71. PGTypePlugin = pointer;
  72. PGParamSpecPool = pointer;
  73. {$include gtypes.inc}
  74. {$include glibconfig.inc}
  75. {$include gquark.inc}
  76. {$include gvaluecollector.inc}
  77. {$include gtype.inc}
  78. {$include genums.inc}
  79. {$include gvalue.inc}
  80. {$include gtypeplugin.inc}
  81. {$include gdataset.inc}
  82. {$include gslist.inc}
  83. {$include glist.inc}
  84. {$include gparam.inc}
  85. {$include gboxed.inc}
  86. {$UNDEF read_forward_definitions}
  87. {$DEFINE read_interface_rest}
  88. {$include gtype.inc}
  89. {$include gvalue.inc}
  90. {$include gvaluearray.inc}
  91. {$include gvaluecollector.inc}
  92. {$include gvaluetypes.inc}
  93. {$include gparam.inc}
  94. {$include gclosure.inc}
  95. {$include gsignal.inc}
  96. {$include gtypeplugin.inc}
  97. {$include gobject.inc}
  98. {$include gmacros.inc}
  99. {$include gtypes.inc}
  100. {$include genums.inc}
  101. {$include glibconfig.inc}
  102. {$include gstrfuncs.inc}
  103. {$include gutils.inc}
  104. {$include galloca.inc}
  105. {$include ghash.inc}
  106. {$include gquark.inc}
  107. {$include gerror.inc}
  108. {$include gbacktrace.inc}
  109. {$include gmem.inc}
  110. {$include garray.inc}
  111. {$include gslist.inc}
  112. {$include glist.inc}
  113. {$include gcache.inc}
  114. {$include gcompletion.inc}
  115. {$include gconvert.inc}
  116. {$include gdataset.inc}
  117. {$include gdate.inc}
  118. {$include gdir.inc}
  119. {$include gfileutils.inc}
  120. {$include ghook.inc}
  121. {$include gthread.inc}
  122. {$include gthreadpool.inc}
  123. {$include gtimer.inc}
  124. {$include gmain.inc}
  125. {$include gasyncqueue.inc}
  126. {$include gunicode.inc}
  127. {$include gstring.inc}
  128. {$include giochannel.inc}
  129. {$include gmessages.inc}
  130. {$include gmarkup.inc}
  131. {$include gnode.inc}
  132. {$include gtree.inc}
  133. {$include gpattern.inc}
  134. {$include gprimes.inc}
  135. {$include gqsort.inc}
  136. {$include gqueue.inc}
  137. {$include grand.inc}
  138. {$include grel.inc}
  139. {$include gscanner.inc}
  140. {$include gshell.inc}
  141. {$include gspawn.inc}
  142. {$include gboxed.inc}
  143. {$include gmodule.inc}
  144. {$include gmarshal.inc}
  145. {$IFDEF win32}
  146. {$include gwin32.inc}
  147. {$ENDIF}
  148. {$UNDEF read_interface_rest}
  149. implementation
  150. {$IFNDEF KYLIX}
  151. { There is a bug in the compiler. If an external variable is not used, it will
  152. create code, that can't be relocated by the linker.
  153. So, use them in this hidden dummy procedure.
  154. }
  155. procedure CheckUnusedVariable; [Public];
  156. begin
  157. if glib_mem_profiler_table=nil then ;
  158. if (glib_interface_age=0) or (glib_binary_age=0)
  159. or (g_thread_use_default_impl) then ;
  160. end;
  161. {$ENDIF}
  162. {************************************
  163. * macro functions
  164. *
  165. ************************************}
  166. {*
  167. * gtypes.inc
  168. *}
  169. function GUINT16_SWAP_LE_BE_CONSTANT(val: guint16): guint16;
  170. begin
  171. Result:=((val and $ff) shl 8) or ((val and $ff00) shr 8);
  172. end;
  173. function GUINT32_SWAP_LE_BE_CONSTANT(val: guint32): guint32;
  174. begin
  175. Result:=
  176. ((val and $000000ff) shl 24) or
  177. ((val and $0000ff00) shl 8) or
  178. ((val and $00ff0000) shr 8) or
  179. ((val and $ff000000) shr 24);
  180. end;
  181. {*
  182. * glibconfig.inc
  183. *}
  184. function GUINT_TO_POINTER(i: guint): pointer;
  185. begin
  186. Result:=Pointer(PtrInt(i));
  187. end;
  188. {*
  189. * garray.inc
  190. *}
  191. function g_array_append_val(a: PGArray; v : gpointer) : PGArray;
  192. begin
  193. g_array_append_val := g_array_append_vals(a,@(v),1);
  194. end;
  195. function g_array_prepend_val(a: PGArray; v : gpointer) : PGArray;
  196. begin
  197. g_array_prepend_val := g_array_prepend_vals(a,@(v),1);
  198. end;
  199. function g_array_insert_val(a: PGArray; i: guint; v : gpointer) : PGArray;
  200. begin
  201. g_array_insert_val := g_array_insert_vals(a,i,@(v),1);
  202. end;
  203. function g_ptr_array_index (parray: PGPtrArray; index: guint): gpointer;
  204. begin
  205. {$IFDEF FPC}
  206. g_ptr_array_index := parray^.pdata[index];
  207. {$ELSE}
  208. g_ptr_array_index := PGPointer(integer(parray^.pdata) + index*SizeOf(GPointer))^;
  209. {$ENDIF}
  210. end;
  211. {*
  212. * gthread.inc
  213. *}
  214. function G_THREAD_ERROR: TGQuark;
  215. begin
  216. G_THREAD_ERROR:=g_thread_error_quark;
  217. end;
  218. procedure g_mutex_lock (mutex: PGMutex);
  219. begin
  220. {$IFNDEF KYLIX}
  221. if g_threads_got_initialized then
  222. g_thread_functions_for_glib_use.mutex_lock (mutex);
  223. {$ENDIF}
  224. end;
  225. function g_mutex_trylock (mutex: PGMutex):gboolean;
  226. begin
  227. {$IFNDEF KYLIX}
  228. if g_threads_got_initialized then
  229. g_mutex_trylock := g_thread_functions_for_glib_use.mutex_trylock (mutex)
  230. else
  231. g_mutex_trylock := true;
  232. {$ENDIF}
  233. end;
  234. procedure g_mutex_unlock (mutex: PGMutex);
  235. begin
  236. {$IFNDEF KYLIX}
  237. if g_threads_got_initialized then
  238. g_thread_functions_for_glib_use.mutex_unlock (mutex);
  239. {$ENDIF}
  240. end;
  241. procedure g_mutex_free (mutex: PGMutex);
  242. begin
  243. {$IFNDEF KYLIX}
  244. if g_threads_got_initialized then
  245. g_thread_functions_for_glib_use.mutex_free (mutex);
  246. {$ENDIF}
  247. end;
  248. procedure g_cond_wait (cond: PGCond; mutex: PGMutex);
  249. begin
  250. {$IFNDEF KYLIX}
  251. if g_threads_got_initialized then
  252. g_thread_functions_for_glib_use.cond_wait (cond, mutex);
  253. {$ENDIF}
  254. end;
  255. function g_cond_timed_wait (cond : PGCond;
  256. mutex : PGMutex;
  257. end_time : PGTimeVal):gboolean;
  258. begin
  259. {$IFNDEF KYLIX}
  260. if g_threads_got_initialized then
  261. g_cond_timed_wait := g_thread_functions_for_glib_use.cond_timed_wait (cond,
  262. mutex,
  263. end_time)
  264. else
  265. g_cond_timed_wait := true;
  266. {$ENDIF}
  267. end;
  268. function g_thread_supported: gboolean;
  269. begin
  270. {$IFNDEF KYLIX}
  271. g_thread_supported := g_threads_got_initialized;
  272. {$ENDIF}
  273. end;
  274. function g_mutex_new : PGMutex;
  275. begin
  276. {$IFNDEF KYLIX}
  277. g_mutex_new := g_thread_functions_for_glib_use.mutex_new;
  278. {$ENDIF}
  279. end;
  280. function g_cond_new : PGCond;
  281. begin
  282. {$IFNDEF KYLIX}
  283. g_cond_new := g_thread_functions_for_glib_use.cond_new;
  284. {$ENDIF}
  285. end;
  286. procedure g_cond_signal (cond: PGCond);
  287. begin
  288. {$IFNDEF KYLIX}
  289. if g_threads_got_initialized then
  290. g_thread_functions_for_glib_use.cond_signal (cond);
  291. {$ENDIF}
  292. end;
  293. procedure g_cond_broadcast (cond: PGCond);
  294. begin
  295. {$IFNDEF KYLIX}
  296. if g_threads_got_initialized then
  297. g_thread_functions_for_glib_use.cond_broadcast (cond);
  298. {$ENDIF}
  299. end;
  300. procedure g_cond_free (cond: PGCond);
  301. begin
  302. {$IFNDEF KYLIX}
  303. if g_threads_got_initialized then
  304. g_thread_functions_for_glib_use.cond_free (cond);
  305. {$ENDIF}
  306. end;
  307. function g_private_new (dest: TGDestroyNotify): PGPrivate;
  308. begin
  309. {$IFNDEF KYLIX}
  310. g_private_new := g_thread_functions_for_glib_use.private_new (dest);
  311. {$ENDIF}
  312. end;
  313. function g_private_get (private_key: PGPrivate): gpointer;
  314. begin
  315. {$IFNDEF KYLIX}
  316. // convert result to gpointer
  317. if g_threads_got_initialized then
  318. g_private_get := g_thread_functions_for_glib_use.private_get (private_key)
  319. else
  320. g_private_get := private_key;
  321. {$ENDIF}
  322. end;
  323. procedure g_private_set (var private_key: PGPrivate; data: gpointer);
  324. begin
  325. {$IFNDEF KYLIX}
  326. if g_threads_got_initialized then
  327. // g_private_set := g_thread_functions_for_glib_use.private_set (private_key, data)
  328. else
  329. private_key := data; // data casted to GPrivate
  330. {$ENDIF}
  331. end;
  332. procedure g_thread_yield;
  333. begin
  334. {$IFNDEF KYLIX}
  335. if g_threads_got_initialized then
  336. g_thread_functions_for_glib_use.thread_yield;
  337. {$ENDIF}
  338. end;
  339. function g_thread_create (func: TGThreadFunc;
  340. data: gpointer;
  341. joinable: gboolean;
  342. error: PPGError): PGThread;
  343. begin
  344. g_thread_create := g_thread_create_full (func, data, 0, joinable, false,
  345. G_THREAD_PRIORITY_NORMAL, error);
  346. end;
  347. function g_static_mutex_get_mutex(mutex: PPGMutex):PGMutex;
  348. begin
  349. g_static_mutex_get_mutex := g_static_mutex_get_mutex_impl (mutex);
  350. end;
  351. procedure g_static_mutex_lock (mutex: PGStaticMutex);
  352. begin
  353. g_mutex_lock (g_static_mutex_get_mutex_impl (PPGMutex(mutex)));
  354. end;
  355. function g_static_mutex_trylock (mutex: PGStaticMutex): gboolean;
  356. begin
  357. g_static_mutex_trylock := g_mutex_trylock (g_static_mutex_get_mutex (PPGMutex(mutex)));
  358. end;
  359. procedure g_static_mutex_unlock (mutex: PGStaticMutex);
  360. begin
  361. g_mutex_unlock (g_static_mutex_get_mutex_impl (PPGMutex(mutex)));
  362. end;
  363. {*
  364. * gmain.inc
  365. *}
  366. function g_main_new(is_running: gboolean): PGMainLoop;
  367. begin
  368. g_main_new := g_main_loop_new (nil, is_running);
  369. end;
  370. function g_main_iteration (may_block: gboolean): gboolean;
  371. begin
  372. g_main_iteration := g_main_context_iteration (nil, may_block);
  373. end;
  374. function g_main_pending: gboolean;
  375. begin
  376. g_main_pending := g_main_context_pending (nil);
  377. end;
  378. procedure g_main_set_poll_func(func: TGPollFunc);
  379. begin
  380. g_main_context_set_poll_func (nil, func);
  381. end;
  382. {*
  383. * gslist.inc
  384. *}
  385. function g_slist_next(slist : PGSList) : PGSList;
  386. begin
  387. if slist <> nil then
  388. g_slist_next := slist^.next
  389. else
  390. g_slist_next := nil;
  391. end;
  392. {*
  393. * gmem.inc
  394. *}
  395. function g_new(bytes_per_struct, n_structs: gsize): gpointer;
  396. begin
  397. g_new:=g_malloc(n_structs*bytes_per_struct);
  398. end;
  399. function g_new0(bytes_per_struct, n_structs: gsize): gpointer;
  400. begin
  401. g_new0:=g_malloc0(n_structs*bytes_per_struct);
  402. end;
  403. function g_renew(struct_size: gsize; OldMem: gpointer; n_structs : gsize) : gpointer;
  404. begin
  405. g_renew:=g_realloc(OldMem,struct_size*n_structs);
  406. end;
  407. function g_chunk_new(chunk : Pointer) : Pointer;
  408. begin
  409. g_chunk_new:=g_mem_chunk_alloc(chunk);
  410. end;
  411. function g_chunk_new0(chunk : Pointer) : Pointer;
  412. begin
  413. g_chunk_new0:=g_mem_chunk_alloc0(chunk);
  414. end;
  415. procedure g_chunk_free(mem_chunk:PGMemChunk; mem:gpointer);
  416. begin
  417. g_mem_chunk_free(mem_chunk,mem);
  418. end;
  419. {*
  420. * glist.inc
  421. *}
  422. function g_list_previous (list : PGList) : PGList;
  423. begin
  424. if list <> nil then
  425. g_list_previous:=(PGList(list))^.prev
  426. else
  427. g_list_previous:=nil;
  428. end;
  429. function g_list_next (list : PGList) : PGList;
  430. begin
  431. if list <> nil then
  432. g_list_next:=(PGList(list))^.next
  433. else
  434. g_list_next:=NULL;
  435. end;
  436. {*
  437. * gconvert,inc
  438. *}
  439. function G_CONVERT_ERROR : TGQuark;
  440. begin
  441. G_CONVERT_ERROR:=g_convert_error_quark;
  442. end;
  443. {*
  444. * gdataset.inc
  445. *}
  446. procedure g_datalist_id_set_data (datalist: PPGData; key_id:TGQuark; data: gpointer);
  447. begin
  448. g_datalist_id_set_data_full (datalist, key_id, data, nil);
  449. end;
  450. procedure g_datalist_id_remove_data (datalist: PPGData; key_id:TGQuark);
  451. begin
  452. g_datalist_id_set_data (datalist, key_id, NULL);
  453. end;
  454. function g_datalist_get_data(datalist: PPGData; key_str:PGChar):PPGData;
  455. begin
  456. g_datalist_get_data := g_datalist_id_get_data (datalist, g_quark_try_string (key_str));
  457. end;
  458. procedure g_datalist_set_data_full(datalist: PPGData; key_str:PGChar; data:gpointer; destroy_func:TGDestroyNotify);
  459. begin
  460. g_datalist_id_set_data_full (datalist, g_quark_from_string (key_str), data, destroy_func);
  461. end;
  462. procedure g_datalist_set_data (datalist: PPGData; key_str:PGChar; data:gpointer);
  463. begin
  464. g_datalist_set_data_full (datalist, key_str, data, nil);
  465. end;
  466. procedure g_datalist_remove_no_notify(datalist: PPGData; key_str:PGChar);
  467. begin
  468. g_datalist_id_remove_no_notify (datalist, g_quark_try_string (key_str) );
  469. end;
  470. procedure g_datalist_remove_data(datalist:PPGData; key_str:PGChar);
  471. begin
  472. g_datalist_id_set_data (datalist, g_quark_try_string (key_str), nil);
  473. end;
  474. procedure g_dataset_id_set_data(location: gconstpointer; key_id:TGQuark; data:gpointer);
  475. begin
  476. g_dataset_id_set_data_full (location, key_id, data, nil);
  477. end;
  478. procedure g_dataset_id_remove_data(location: gconstpointer; key_id:TGQuark);
  479. begin
  480. g_dataset_id_set_data (location, key_id, nil);
  481. end;
  482. function g_dataset_get_data(location: gconstpointer; key_str:PGChar): gpointer;
  483. begin
  484. g_dataset_get_data:= g_dataset_id_get_data (location, g_quark_try_string (key_str));
  485. end;
  486. procedure g_dataset_set_data_full(location: gconstpointer; key_str:PGChar; data:gpointer; destroy_func:TGDestroyNotify);
  487. begin
  488. g_dataset_id_set_data_full (location, g_quark_from_string (key_str), data, destroy_func);
  489. end;
  490. procedure g_dataset_remove_no_notify(location: gconstpointer; key_str:PGChar);
  491. begin
  492. g_dataset_id_remove_no_notify (location, g_quark_try_string (key_str));
  493. end;
  494. procedure g_dataset_set_data(location: gconstpointer; key_str:PGChar; data:gpointer);
  495. begin
  496. g_dataset_set_data_full (location, key_str, data, nil);
  497. end;
  498. procedure g_dataset_remove_data(location:gconstpointer; key_str: PGChar);
  499. begin
  500. g_dataset_id_set_data (location, g_quark_try_string (key_str), nil);
  501. end;
  502. {*
  503. * gfileutils.inc
  504. *}
  505. function G_FILE_ERROR: TGQuark;
  506. begin
  507. G_FILE_ERROR:=g_file_error_quark;
  508. end;
  509. {*
  510. * ghook.inc
  511. *}
  512. function TGHookList_hook_size (var a : TGHookList) : guint;
  513. begin
  514. TGHookList_hook_size:=(a.flag0 and bm_TGHookList_hook_size) shr bp_TGHookList_hook_size;
  515. end;
  516. procedure TGHookList_set_hook_size (var a : TGHookList; __hook_size : guint);
  517. begin
  518. a.flag0:=a.flag0 or ((__hook_size shl bp_TGHookList_hook_size) and bm_TGHookList_hook_size);
  519. end;
  520. function TGHookList_is_setup (var a : TGHookList) : guint;
  521. begin
  522. TGHookList_is_setup:=(a.flag0 and bm_TGHookList_is_setup) shr bp_TGHookList_is_setup;
  523. end;
  524. procedure TGHookList_set_is_setup (var a : TGHookList; __is_setup : guint);
  525. begin
  526. a.flag0:=a.flag0 or ((__is_setup shl bp_TGHookList_is_setup) and bm_TGHookList_is_setup);
  527. end;
  528. function G_HOOK(hook : pointer) : PGHook;
  529. begin
  530. G_HOOK := PGHook(hook);
  531. end;
  532. function G_HOOK_FLAGS(hook : PGHook) : guint;
  533. begin
  534. G_HOOK_FLAGS := hook^.flags;
  535. end;
  536. { from the old glib}
  537. function G_HOOK_ACTIVE(hook : PGHook) : boolean;
  538. begin
  539. G_HOOK_ACTIVE:=(((PGHook(hook))^.flags) and cardinal(G_HOOK_FLAG_ACTIVE)) <> 0;
  540. end;
  541. function G_HOOK_IN_CALL(hook : PGHook) : boolean;
  542. begin
  543. G_HOOK_IN_CALL:=(((PGHook(hook))^.flags) and cardinal(G_HOOK_FLAG_IN_CALL)) <> 0;
  544. end;
  545. function G_HOOK_IS_VALID(hook : PGHook) : boolean;
  546. begin
  547. G_HOOK_IS_VALID:=(hook^.hook_id<>0) and G_HOOK_ACTIVE(hook);
  548. end;
  549. function G_HOOK_IS_UNLINKED(hook : PGHook) : boolean;
  550. begin
  551. G_HOOK_IS_UNLINKED:=(hook^.next=NULL) and (hook^.prev=NULL) and (hook^.hook_id=0) and (hook^.ref_count = 0);
  552. end;
  553. { end of old glib}
  554. procedure g_hook_append (hook_list: PGHookList; hook:PGHook);
  555. begin
  556. g_hook_insert_before (hook_list, nil, hook);
  557. end;
  558. {*
  559. * giochannel.inc
  560. *}
  561. function G_IO_CHANNEL_ERROR : TGQuark;
  562. begin
  563. G_IO_CHANNEL_ERROR:=g_io_channel_error_quark;
  564. end;
  565. function TGIOChannel_use_buffer(var a : TGIOChannel) : guint;
  566. begin
  567. TGIOChannel_use_buffer:=(a.flag0 and bm_TGIOChannel_use_buffer) shr bp_TGIOChannel_use_buffer;
  568. end;
  569. procedure TGIOChannel_set_use_buffer(var a : TGIOChannel; __use_buffer : guint);
  570. begin
  571. a.flag0:=a.flag0 or ((__use_buffer shl bp_TGIOChannel_use_buffer) and bm_TGIOChannel_use_buffer);
  572. end;
  573. function TGIOChannel_do_encode(var a : TGIOChannel) : guint;
  574. begin
  575. TGIOChannel_do_encode:=(a.flag0 and bm_TGIOChannel_do_encode) shr bp_TGIOChannel_do_encode;
  576. end;
  577. procedure TGIOChannel_set_do_encode(var a : TGIOChannel; __do_encode : guint);
  578. begin
  579. a.flag0:=a.flag0 or ((__do_encode shl bp_TGIOChannel_do_encode) and bm_TGIOChannel_do_encode);
  580. end;
  581. function TGIOChannel_close_on_unref(var a : TGIOChannel) : guint;
  582. begin
  583. TGIOChannel_close_on_unref:=(a.flag0 and bm_TGIOChannel_close_on_unref) shr bp_TGIOChannel_close_on_unref;
  584. end;
  585. procedure TGIOChannel_set_close_on_unref(var a : TGIOChannel; __close_on_unref : guint);
  586. begin
  587. a.flag0:=a.flag0 or ((__close_on_unref shl bp_TGIOChannel_close_on_unref) and bm_TGIOChannel_close_on_unref);
  588. end;
  589. function TGIOChannel_is_readable(var a : TGIOChannel) : guint;
  590. begin
  591. TGIOChannel_is_readable:=(a.flag0 and bm_TGIOChannel_is_readable) shr bp_TGIOChannel_is_readable;
  592. end;
  593. procedure TGIOChannel_set_is_readable(var a : TGIOChannel; __is_readable : guint);
  594. begin
  595. a.flag0:=a.flag0 or ((__is_readable shl bp_TGIOChannel_is_readable) and bm_TGIOChannel_is_readable);
  596. end;
  597. function TGIOChannel_is_writeable(var a : TGIOChannel) : guint;
  598. begin
  599. TGIOChannel_is_writeable:=(a.flag0 and bm_TGIOChannel_is_writeable) shr bp_TGIOChannel_is_writeable;
  600. end;
  601. procedure TGIOChannel_set_is_writeable(var a : TGIOChannel; __is_writeable : guint);
  602. begin
  603. a.flag0:=a.flag0 or ((__is_writeable shl bp_TGIOChannel_is_writeable) and bm_TGIOChannel_is_writeable);
  604. end;
  605. function TGIOChannel_is_seekable(var a : TGIOChannel) : guint;
  606. begin
  607. TGIOChannel_is_seekable:=(a.flag0 and bm_TGIOChannel_is_seekable) shr bp_TGIOChannel_is_seekable;
  608. end;
  609. procedure TGIOChannel_set_is_seekable(var a : TGIOChannel; __is_seekable : guint);
  610. begin
  611. a.flag0:=a.flag0 or ((__is_seekable shl bp_TGIOChannel_is_seekable) and bm_TGIOChannel_is_seekable);
  612. end;
  613. {*
  614. * gunicode.inc
  615. *}
  616. function g_utf8_next_char (p: pguchar):pguchar;
  617. begin
  618. {$IFNDEF KYLIX}
  619. g_utf8_next_char := p + ord ((g_utf8_skip + p^ )^); // needs to be tested
  620. {$ENDIF}
  621. end;
  622. {*
  623. * gutils.inc
  624. *}
  625. function GLIB_CHECK_VERSION (major, minor, micro: guint):boolean;
  626. begin
  627. {$IFNDEF KYLIX}
  628. GLIB_CHECK_VERSION := ( (GLIB_MAJOR_VERSION > major) or
  629. ((GLIB_MAJOR_VERSION = major) and (GLIB_MINOR_VERSION > minor)) or
  630. ((GLIB_MAJOR_VERSION = major) and (GLIB_MINOR_VERSION = minor) and (GLIB_MICRO_VERSION >= micro)));
  631. {$ENDIF}
  632. end;
  633. {*
  634. * gmessages.inc
  635. *}
  636. procedure g_error (format:Pgchar; args: array of const);
  637. begin
  638. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, Pgchar(SysUtils.Format(string(format), args)));
  639. end;
  640. procedure g_error (format:Pgchar);
  641. begin
  642. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_ERROR, format);
  643. end;
  644. procedure g_message (format:Pgchar; args: array of const);
  645. begin
  646. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, Pgchar(SysUtils.Format(string(format), args)));
  647. end;
  648. procedure g_message (format:Pgchar);
  649. begin
  650. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_MESSAGE, format);
  651. end;
  652. procedure g_critical (format:Pgchar; args: array of const);
  653. begin
  654. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, Pgchar(SysUtils.Format(string(format), args)));
  655. end;
  656. procedure g_critical (format:Pgchar);
  657. begin
  658. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_CRITICAL, format);
  659. end;
  660. procedure g_warning (format:Pgchar; args: array of const);
  661. begin
  662. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, Pgchar(SysUtils.Format(string(format), args)));
  663. end;
  664. procedure g_warning (format:Pgchar);
  665. begin
  666. g_log (G_LOG_DOMAIN, G_LOG_LEVEL_WARNING, format);
  667. end;
  668. {*
  669. * gmarkup.inc
  670. *}
  671. function G_MARKUP_ERROR : TGQuark;
  672. begin
  673. G_MARKUP_ERROR:=g_markup_error_quark;
  674. end;
  675. {*
  676. * gnode.inc
  677. *}
  678. function G_NODE_IS_ROOT (node: PGNode): boolean;
  679. begin
  680. G_NODE_IS_ROOT := (node^.parent = nil) and (node^.next = nil) and (node^.prev = nil);
  681. end;
  682. function G_NODE_IS_LEAF (node: PGNode): boolean;
  683. begin
  684. G_NODE_IS_LEAF := node^.children = nil;
  685. end;
  686. function g_node_append (parent: PGNode; node: PGNode): PGNode;
  687. begin
  688. g_node_append := g_node_insert_before (parent, nil, node);
  689. end;
  690. function g_node_insert_data (parent: PGNode; position: gint; data: gpointer): PGNode;
  691. begin
  692. g_node_insert_data := g_node_insert (parent, position, g_node_new(data));
  693. end;
  694. function g_node_insert_data_before (parent: PGNode; sibling: PGNode; data: gpointer): PGNode;
  695. begin
  696. g_node_insert_data_before := g_node_insert_before (parent, sibling, g_node_new(data));
  697. end;
  698. function g_node_prepend_data (parent: PGNode; data: gpointer): PGNode;
  699. begin
  700. g_node_prepend_data := g_node_prepend (parent, g_node_new(data));
  701. end;
  702. function g_node_append_data (parent: PGNode; data: gpointer): PGNode;
  703. begin
  704. g_node_append_data := g_node_insert_before (parent, nil, g_node_new(data));
  705. end;
  706. function g_node_prev_sibling (node : PGNode): PGNode;
  707. begin
  708. if node <> nil then
  709. g_node_prev_sibling := node^.prev
  710. else
  711. g_node_prev_sibling := nil;
  712. end;
  713. function g_node_next_sibling (node : PGNode): PGNode;
  714. begin
  715. if node <> nil then
  716. g_node_next_sibling := node^.next
  717. else
  718. g_node_next_sibling := nil;
  719. end;
  720. function g_node_first_child (node : PGNode): PGNode;
  721. begin
  722. if node <> nil then
  723. g_node_first_child := node^.children
  724. else
  725. g_node_first_child := nil;
  726. end;
  727. {*
  728. * grand.inc
  729. *}
  730. function g_rand_boolean(rand : PGRand) : gboolean;
  731. begin
  732. g_rand_boolean:=((g_rand_int(rand)) and (1 shl 15)) <> 0;
  733. end;
  734. {
  735. function g_rand_boolean(rand : PGRand) :gboolean;
  736. begin
  737. if ((g_rand_int(rand)) and (1 shl 15)) <> 0 then
  738. g_rand_boolean := 1
  739. else
  740. g_rand_boolean := 0;
  741. end;
  742. }
  743. function g_random_boolean : gboolean;
  744. begin
  745. g_random_boolean:=((g_random_int) and (1 shl 15)) <> 0;
  746. end;
  747. {
  748. function g_random_boolean : gboolean;
  749. begin
  750. if (((g_random_int) and (1 shl 15))) <> 0 then
  751. g_random_boolean := 1
  752. else
  753. g_random_boolean := 0;
  754. end;
  755. }
  756. {*
  757. * gscanner.inc
  758. *}
  759. function TGScannerConfig_case_sensitive(var a : TGScannerConfig) : guint;
  760. begin
  761. TGScannerConfig_case_sensitive:=(a.flag0 and bm_TGScannerConfig_case_sensitive) shr bp_TGScannerConfig_case_sensitive;
  762. end;
  763. procedure TGScannerConfig_set_case_sensitive(var a : TGScannerConfig; __case_sensitive : guint);
  764. begin
  765. a.flag0:=a.flag0 or ((__case_sensitive shl bp_TGScannerConfig_case_sensitive) and bm_TGScannerConfig_case_sensitive);
  766. end;
  767. function TGScannerConfig_skip_comment_multi(var a : TGScannerConfig) : guint;
  768. begin
  769. TGScannerConfig_skip_comment_multi:=(a.flag0 and bm_TGScannerConfig_skip_comment_multi) shr bp_TGScannerConfig_skip_comment_multi;
  770. end;
  771. procedure TGScannerConfig_set_skip_comment_multi(var a : TGScannerConfig; __skip_comment_multi : guint);
  772. begin
  773. a.flag0:=a.flag0 or ((__skip_comment_multi shl bp_TGScannerConfig_skip_comment_multi) and bm_TGScannerConfig_skip_comment_multi);
  774. end;
  775. function TGScannerConfig_skip_comment_single(var a : TGScannerConfig) : guint;
  776. begin
  777. TGScannerConfig_skip_comment_single:=(a.flag0 and bm_TGScannerConfig_skip_comment_single) shr bp_TGScannerConfig_skip_comment_single;
  778. end;
  779. procedure TGScannerConfig_set_skip_comment_single(var a : TGScannerConfig; __skip_comment_single : guint);
  780. begin
  781. a.flag0:=a.flag0 or ((__skip_comment_single shl bp_TGScannerConfig_skip_comment_single) and bm_TGScannerConfig_skip_comment_single);
  782. end;
  783. function TGScannerConfig_scan_comment_multi(var a : TGScannerConfig) : guint;
  784. begin
  785. TGScannerConfig_scan_comment_multi:=(a.flag0 and bm_TGScannerConfig_scan_comment_multi) shr bp_TGScannerConfig_scan_comment_multi;
  786. end;
  787. procedure TGScannerConfig_set_scan_comment_multi(var a : TGScannerConfig; __scan_comment_multi : guint);
  788. begin
  789. a.flag0:=a.flag0 or ((__scan_comment_multi shl bp_TGScannerConfig_scan_comment_multi) and bm_TGScannerConfig_scan_comment_multi);
  790. end;
  791. function TGScannerConfig_scan_identifier(var a : TGScannerConfig) : guint;
  792. begin
  793. TGScannerConfig_scan_identifier:=(a.flag0 and bm_TGScannerConfig_scan_identifier) shr bp_TGScannerConfig_scan_identifier;
  794. end;
  795. procedure TGScannerConfig_set_scan_identifier(var a : TGScannerConfig; __scan_identifier : guint);
  796. begin
  797. a.flag0:=a.flag0 or ((__scan_identifier shl bp_TGScannerConfig_scan_identifier) and bm_TGScannerConfig_scan_identifier);
  798. end;
  799. function TGScannerConfig_scan_identifier_1char(var a : TGScannerConfig) : guint;
  800. begin
  801. TGScannerConfig_scan_identifier_1char:=(a.flag0 and bm_TGScannerConfig_scan_identifier_1char) shr bp_TGScannerConfig_scan_identifier_1char;
  802. end;
  803. procedure TGScannerConfig_set_scan_identifier_1char(var a : TGScannerConfig; __scan_identifier_1char : guint);
  804. begin
  805. a.flag0:=a.flag0 or ((__scan_identifier_1char shl bp_TGScannerConfig_scan_identifier_1char) and bm_TGScannerConfig_scan_identifier_1char);
  806. end;
  807. function TGScannerConfig_scan_identifier_NULL(var a : TGScannerConfig) : guint;
  808. begin
  809. TGScannerConfig_scan_identifier_NULL:=(a.flag0 and bm_TGScannerConfig_scan_identifier_NULL) shr bp_TGScannerConfig_scan_identifier_NULL;
  810. end;
  811. procedure TGScannerConfig_set_scan_identifier_NULL(var a : TGScannerConfig; __scan_identifier_NULL : guint);
  812. begin
  813. a.flag0:=a.flag0 or ((__scan_identifier_NULL shl bp_TGScannerConfig_scan_identifier_NULL) and bm_TGScannerConfig_scan_identifier_NULL);
  814. end;
  815. function TGScannerConfig_scan_symbols(var a : TGScannerConfig) : guint;
  816. begin
  817. TGScannerConfig_scan_symbols:=(a.flag0 and bm_TGScannerConfig_scan_symbols) shr bp_TGScannerConfig_scan_symbols;
  818. end;
  819. procedure TGScannerConfig_set_scan_symbols(var a : TGScannerConfig; __scan_symbols : guint);
  820. begin
  821. a.flag0:=a.flag0 or ((__scan_symbols shl bp_TGScannerConfig_scan_symbols) and bm_TGScannerConfig_scan_symbols);
  822. end;
  823. function TGScannerConfig_scan_binary(var a : TGScannerConfig) : guint;
  824. begin
  825. TGScannerConfig_scan_binary:=(a.flag0 and bm_TGScannerConfig_scan_binary) shr bp_TGScannerConfig_scan_binary;
  826. end;
  827. procedure TGScannerConfig_set_scan_binary(var a : TGScannerConfig; __scan_binary : guint);
  828. begin
  829. a.flag0:=a.flag0 or ((__scan_binary shl bp_TGScannerConfig_scan_binary) and bm_TGScannerConfig_scan_binary);
  830. end;
  831. function TGScannerConfig_scan_octal(var a : TGScannerConfig) : guint;
  832. begin
  833. TGScannerConfig_scan_octal:=(a.flag0 and bm_TGScannerConfig_scan_octal) shr bp_TGScannerConfig_scan_octal;
  834. end;
  835. procedure TGScannerConfig_set_scan_octal(var a : TGScannerConfig; __scan_octal : guint);
  836. begin
  837. a.flag0:=a.flag0 or ((__scan_octal shl bp_TGScannerConfig_scan_octal) and bm_TGScannerConfig_scan_octal);
  838. end;
  839. function TGScannerConfig_scan_float(var a : TGScannerConfig) : guint;
  840. begin
  841. TGScannerConfig_scan_float:=(a.flag0 and bm_TGScannerConfig_scan_float) shr bp_TGScannerConfig_scan_float;
  842. end;
  843. procedure TGScannerConfig_set_scan_float(var a : TGScannerConfig; __scan_float : guint);
  844. begin
  845. a.flag0:=a.flag0 or ((__scan_float shl bp_TGScannerConfig_scan_float) and bm_TGScannerConfig_scan_float);
  846. end;
  847. function TGScannerConfig_scan_hex(var a : TGScannerConfig) : guint;
  848. begin
  849. TGScannerConfig_scan_hex:=(a.flag0 and bm_TGScannerConfig_scan_hex) shr bp_TGScannerConfig_scan_hex;
  850. end;
  851. procedure TGScannerConfig_set_scan_hex(var a : TGScannerConfig; __scan_hex : guint);
  852. begin
  853. a.flag0:=a.flag0 or ((__scan_hex shl bp_TGScannerConfig_scan_hex) and bm_TGScannerConfig_scan_hex);
  854. end;
  855. function TGScannerConfig_scan_hex_dollar(var a : TGScannerConfig) : guint;
  856. begin
  857. TGScannerConfig_scan_hex_dollar:=(a.flag0 and bm_TGScannerConfig_scan_hex_dollar) shr bp_TGScannerConfig_scan_hex_dollar;
  858. end;
  859. procedure TGScannerConfig_set_scan_hex_dollar(var a : TGScannerConfig; __scan_hex_dollar : guint);
  860. begin
  861. a.flag0:=a.flag0 or ((__scan_hex_dollar shl bp_TGScannerConfig_scan_hex_dollar) and bm_TGScannerConfig_scan_hex_dollar);
  862. end;
  863. function TGScannerConfig_scan_string_sq(var a : TGScannerConfig) : guint;
  864. begin
  865. TGScannerConfig_scan_string_sq:=(a.flag0 and bm_TGScannerConfig_scan_string_sq) shr bp_TGScannerConfig_scan_string_sq;
  866. end;
  867. procedure TGScannerConfig_set_scan_string_sq(var a : TGScannerConfig; __scan_string_sq : guint);
  868. begin
  869. a.flag0:=a.flag0 or ((__scan_string_sq shl bp_TGScannerConfig_scan_string_sq) and bm_TGScannerConfig_scan_string_sq);
  870. end;
  871. function TGScannerConfig_scan_string_dq(var a : TGScannerConfig) : guint;
  872. begin
  873. TGScannerConfig_scan_string_dq:=(a.flag0 and bm_TGScannerConfig_scan_string_dq) shr bp_TGScannerConfig_scan_string_dq;
  874. end;
  875. procedure TGScannerConfig_set_scan_string_dq(var a : TGScannerConfig; __scan_string_dq : guint);
  876. begin
  877. a.flag0:=a.flag0 or ((__scan_string_dq shl bp_TGScannerConfig_scan_string_dq) and bm_TGScannerConfig_scan_string_dq);
  878. end;
  879. function TGScannerConfig_numbers_2_int(var a : TGScannerConfig) : guint;
  880. begin
  881. TGScannerConfig_numbers_2_int:=(a.flag0 and bm_TGScannerConfig_numbers_2_int) shr bp_TGScannerConfig_numbers_2_int;
  882. end;
  883. procedure TGScannerConfig_set_numbers_2_int(var a : TGScannerConfig; __numbers_2_int : guint);
  884. begin
  885. a.flag0:=a.flag0 or ((__numbers_2_int shl bp_TGScannerConfig_numbers_2_int) and bm_TGScannerConfig_numbers_2_int);
  886. end;
  887. function TGScannerConfig_int_2_float(var a : TGScannerConfig) : guint;
  888. begin
  889. TGScannerConfig_int_2_float:=(a.flag0 and bm_TGScannerConfig_int_2_float) shr bp_TGScannerConfig_int_2_float;
  890. end;
  891. procedure TGScannerConfig_set_int_2_float(var a : TGScannerConfig; __int_2_float : guint);
  892. begin
  893. a.flag0:=a.flag0 or ((__int_2_float shl bp_TGScannerConfig_int_2_float) and bm_TGScannerConfig_int_2_float);
  894. end;
  895. function TGScannerConfig_identifier_2_string(var a : TGScannerConfig) : guint;
  896. begin
  897. TGScannerConfig_identifier_2_string:=(a.flag0 and bm_TGScannerConfig_identifier_2_string) shr bp_TGScannerConfig_identifier_2_string;
  898. end;
  899. procedure TGScannerConfig_set_identifier_2_string(var a : TGScannerConfig; __identifier_2_string : guint);
  900. begin
  901. a.flag0:=a.flag0 or ((__identifier_2_string shl bp_TGScannerConfig_identifier_2_string) and bm_TGScannerConfig_identifier_2_string);
  902. end;
  903. function TGScannerConfig_char_2_token(var a : TGScannerConfig) : guint;
  904. begin
  905. TGScannerConfig_char_2_token:=(a.flag0 and bm_TGScannerConfig_char_2_token) shr bp_TGScannerConfig_char_2_token;
  906. end;
  907. procedure TGScannerConfig_set_char_2_token(var a : TGScannerConfig; __char_2_token : guint);
  908. begin
  909. a.flag0:=a.flag0 or ((__char_2_token shl bp_TGScannerConfig_char_2_token) and bm_TGScannerConfig_char_2_token);
  910. end;
  911. function TGScannerConfig_symbol_2_token(var a : TGScannerConfig) : guint;
  912. begin
  913. TGScannerConfig_symbol_2_token:=(a.flag0 and bm_TGScannerConfig_symbol_2_token) shr bp_TGScannerConfig_symbol_2_token;
  914. end;
  915. procedure TGScannerConfig_set_symbol_2_token(var a : TGScannerConfig; __symbol_2_token : guint);
  916. begin
  917. a.flag0:=a.flag0 or ((__symbol_2_token shl bp_TGScannerConfig_symbol_2_token) and bm_TGScannerConfig_symbol_2_token);
  918. end;
  919. function TGScannerConfig_scope_0_fallback(var a : TGScannerConfig) : guint;
  920. begin
  921. TGScannerConfig_scope_0_fallback:=(a.flag0 and bm_TGScannerConfig_scope_0_fallback) shr bp_TGScannerConfig_scope_0_fallback;
  922. end;
  923. procedure TGScannerConfig_set_scope_0_fallback(var a : TGScannerConfig; __scope_0_fallback : guint);
  924. begin
  925. a.flag0:=a.flag0 or ((__scope_0_fallback shl bp_TGScannerConfig_scope_0_fallback) and bm_TGScannerConfig_scope_0_fallback);
  926. end;
  927. procedure g_scanner_freeze_symbol_table(scanner : PGScanner);
  928. begin
  929. { do nothing }
  930. if Scanner=nil then ;
  931. end;
  932. procedure g_scanner_thaw_symbol_table(scanner : PGScanner);
  933. begin
  934. { do nothing }
  935. if Scanner=nil then ;
  936. end;
  937. {*
  938. * gshell.inc
  939. *}
  940. function G_SHELL_ERROR : TGQuark;
  941. begin
  942. G_SHELL_ERROR:=g_shell_error_quark;
  943. end;
  944. {*
  945. * gspawn.inc
  946. *}
  947. function G_SPAWN_ERROR : TGQuark;
  948. begin
  949. G_SPAWN_ERROR:=g_spawn_error_quark;
  950. end;
  951. // from gstrfuncs.inc ----------------------------------------------------------
  952. function g_ascii_isalnum(c : gchar) : boolean;
  953. begin
  954. {$IFNDEF KYLIX}
  955. g_ascii_isalnum:=((g_ascii_table[guchar(c)]) and G_ASCII_ALNUM) <> 0;
  956. {$ENDIF}
  957. end;
  958. function g_ascii_isalpha(c : gchar) : boolean;
  959. begin
  960. {$IFNDEF KYLIX}
  961. g_ascii_isalpha:=((g_ascii_table[guchar(c)]) and G_ASCII_ALPHA) <> 0;
  962. {$ENDIF}
  963. end;
  964. function g_ascii_iscntrl(c : gchar) : boolean;
  965. begin
  966. {$IFNDEF KYLIX}
  967. g_ascii_iscntrl:=((g_ascii_table[guchar(c)]) and G_ASCII_CNTRL) <> 0;
  968. {$ENDIF}
  969. end;
  970. function g_ascii_isdigit(c : gchar) : boolean;
  971. begin
  972. {$IFNDEF KYLIX}
  973. g_ascii_isdigit:=((g_ascii_table[guchar(c)]) and G_ASCII_DIGIT) <> 0;
  974. {$ENDIF}
  975. end;
  976. function g_ascii_isgraph(c : gchar) : boolean;
  977. begin
  978. {$IFNDEF KYLIX}
  979. g_ascii_isgraph:=((g_ascii_table[guchar(c)]) and G_ASCII_GRAPH) <> 0;
  980. {$ENDIF}
  981. end;
  982. function g_ascii_islower(c : gchar) : boolean;
  983. begin
  984. {$IFNDEF KYLIX}
  985. g_ascii_islower:=((g_ascii_table[guchar(c)]) and G_ASCII_LOWER) <> 0;
  986. {$ENDIF}
  987. end;
  988. function g_ascii_isprint(c : gchar) : boolean;
  989. begin
  990. {$IFNDEF KYLIX}
  991. g_ascii_isprint:=((g_ascii_table[guchar(c)]) and G_ASCII_PRINT) <> 0;
  992. {$ENDIF}
  993. end;
  994. function g_ascii_ispunct(c : gchar) : boolean;
  995. begin
  996. {$IFNDEF KYLIX}
  997. g_ascii_ispunct:=((g_ascii_table[guchar(c)]) and G_ASCII_PUNCT) <> 0;
  998. {$ENDIF}
  999. end;
  1000. function g_ascii_isspace(c : gchar) : boolean;
  1001. begin
  1002. {$IFNDEF KYLIX}
  1003. g_ascii_isspace:=((g_ascii_table[guchar(c)]) and G_ASCII_SPACE) <> 0;
  1004. {$ENDIF}
  1005. end;
  1006. function g_ascii_isupper(c : gchar) : boolean;
  1007. begin
  1008. {$IFNDEF KYLIX}
  1009. g_ascii_isupper:=((g_ascii_table[guchar(c)]) and G_ASCII_UPPER) <> 0;
  1010. {$ENDIF}
  1011. end;
  1012. function g_ascii_isxdigit(c : gchar) : boolean;
  1013. begin
  1014. {$IFNDEF KYLIX}
  1015. g_ascii_isxdigit:=((g_ascii_table[guchar(c)]) and G_ASCII_XDIGIT) <> 0;
  1016. {$ENDIF}
  1017. end;
  1018. function g_strstrip(_string : PGChar) : PGChar;
  1019. begin
  1020. g_strstrip:=g_strchomp(g_strchug(_string));
  1021. end;
  1022. // gtype.inc -------------------------------------------------------------------
  1023. function G_TYPE_MAKE_FUNDAMENTAL(x : longint) : GType;
  1024. begin
  1025. G_TYPE_MAKE_FUNDAMENTAL:=GType(x shl G_TYPE_FUNDAMENTAL_SHIFT);
  1026. end;
  1027. function G_TYPE_IS_FUNDAMENTAL(_type : GType) : boolean;
  1028. begin
  1029. G_TYPE_IS_FUNDAMENTAL:=_type <= G_TYPE_FUNDAMENTAL_MAX;
  1030. end;
  1031. function G_TYPE_IS_DERIVED(_type : GType) : boolean;
  1032. begin
  1033. G_TYPE_IS_DERIVED:=_type > G_TYPE_FUNDAMENTAL_MAX;
  1034. end;
  1035. function G_TYPE_IS_INTERFACE(_type : GType) : boolean;
  1036. begin
  1037. G_TYPE_IS_INTERFACE:=(G_TYPE_FUNDAMENTAL(_type)) = G_TYPE_INTERFACE;
  1038. end;
  1039. function G_TYPE_IS_CLASSED(_type : GType) : gboolean;
  1040. begin
  1041. G_TYPE_IS_CLASSED:=private_g_type_test_flags(_type,G_TYPE_FLAG_CLASSED);
  1042. end;
  1043. function G_TYPE_IS_INSTANTIATABLE(_type : GType) : boolean;
  1044. begin
  1045. G_TYPE_IS_INSTANTIATABLE:=private_g_type_test_flags(_type,
  1046. G_TYPE_FLAG_INSTANTIATABLE);
  1047. end;
  1048. function G_TYPE_IS_DERIVABLE(_type : GType) : boolean;
  1049. begin
  1050. G_TYPE_IS_DERIVABLE:=private_g_type_test_flags(_type,G_TYPE_FLAG_DERIVABLE);
  1051. end;
  1052. function G_TYPE_IS_DEEP_DERIVABLE(_type : GType) : boolean;
  1053. begin
  1054. G_TYPE_IS_DEEP_DERIVABLE:=private_g_type_test_flags(_type,G_TYPE_FLAG_DEEP_DERIVABLE);
  1055. end;
  1056. function G_TYPE_IS_ABSTRACT(_type : GType) : boolean;
  1057. begin
  1058. G_TYPE_IS_ABSTRACT:=private_g_type_test_flags(_type,G_TYPE_FLAG_ABSTRACT);
  1059. end;
  1060. function G_TYPE_IS_VALUE_ABSTRACT(_type : GType) : boolean;
  1061. begin
  1062. G_TYPE_IS_VALUE_ABSTRACT:=private_g_type_test_flags(_type,G_TYPE_FLAG_VALUE_ABSTRACT);
  1063. end;
  1064. function G_TYPE_IS_VALUE_TYPE(_type : GType) : boolean;
  1065. begin
  1066. G_TYPE_IS_VALUE_TYPE:=private_g_type_check_is_value_type(_type);
  1067. end;
  1068. function G_TYPE_HAS_VALUE_TABLE(_type : GType) : boolean;
  1069. begin
  1070. G_TYPE_HAS_VALUE_TABLE:=(g_type_value_table_peek(_type)) <> NULL;
  1071. end;
  1072. function G_TYPE_CHECK_INSTANCE(instance : Pointer) : gboolean;
  1073. begin
  1074. G_TYPE_CHECK_INSTANCE:=private_g_type_check_instance(PGTypeInstance(instance));
  1075. end;
  1076. function G_TYPE_CHECK_INSTANCE_CAST(instance: Pointer; g_type: GType) : PGTypeInstance;
  1077. begin
  1078. G_TYPE_CHECK_INSTANCE_CAST:=private_g_type_check_instance_cast(instance,g_type);
  1079. end;
  1080. function G_TYPE_CHECK_INSTANCE_TYPE(instance: Pointer; g_type: GType) : boolean;
  1081. begin
  1082. G_TYPE_CHECK_INSTANCE_TYPE:=private_g_type_check_instance_is_a(instance,g_type);
  1083. end;
  1084. function G_TYPE_INSTANCE_GET_CLASS(instance: Pointer; g_type: GType) : PGTypeClass;
  1085. // #define G_TYPE_INSTANCE_GET_CLASS(instance, g_type, c_type) (_G_TYPE_IGC ((instance), (g_type), c_type))
  1086. // #define _G_TYPE_IGC(ip, gt, ct) ((ct*) (((GTypeInstance*) ip)->g_class))
  1087. begin
  1088. Result:=PGTypeInstance(Instance)^.g_class;
  1089. Result:=private_g_type_check_class_cast(Result,g_type);
  1090. end;
  1091. function G_TYPE_INSTANCE_GET_INTERFACE(instance: Pointer; g_type: GType) : Pointer;
  1092. begin
  1093. G_TYPE_INSTANCE_GET_INTERFACE:=
  1094. g_type_interface_peek((PGTypeInstance(instance))^.g_class,g_type);
  1095. end;
  1096. function G_TYPE_CHECK_CLASS_CAST(g_class: pointer; g_type: GType) : Pointer;
  1097. begin
  1098. G_TYPE_CHECK_CLASS_CAST:=
  1099. private_g_type_check_class_cast(PGTypeClass(g_class),g_type);
  1100. end;
  1101. function G_TYPE_CHECK_CLASS_TYPE(g_class: pointer; g_type : GType) : boolean;
  1102. begin
  1103. G_TYPE_CHECK_CLASS_TYPE:=private_g_type_check_class_is_a(PGTypeClass(g_class),g_type);
  1104. end;
  1105. function G_TYPE_CHECK_VALUE(value : Pointer) : boolean;
  1106. begin
  1107. G_TYPE_CHECK_VALUE:=private_g_type_check_value(PGValue(Value));
  1108. end;
  1109. function G_TYPE_CHECK_VALUE_TYPE(value: pointer; g_type : GType) : boolean;
  1110. begin
  1111. G_TYPE_CHECK_VALUE_TYPE:=private_g_type_check_value_holds(PGValue(value),g_type);
  1112. end;
  1113. function G_TYPE_FROM_INSTANCE(instance : Pointer) : GType;
  1114. begin
  1115. G_TYPE_FROM_INSTANCE:=G_TYPE_FROM_CLASS((PGTypeInstance(instance))^.g_class);
  1116. end;
  1117. function G_TYPE_FROM_CLASS(g_class : Pointer) : GType;
  1118. begin
  1119. G_TYPE_FROM_CLASS:=(PGTypeClass(g_class))^.g_type;
  1120. end;
  1121. function G_TYPE_FROM_INTERFACE(g_iface : Pointer) : GType;
  1122. begin
  1123. G_TYPE_FROM_INTERFACE:=(PGTypeInterface(g_iface))^.g_type;
  1124. end;
  1125. // gvalue.inc ------------------------------------------------------------------
  1126. function G_TYPE_IS_VALUE(_type : GType) : boolean;
  1127. begin
  1128. G_TYPE_IS_VALUE:=private_g_type_check_is_value_type(_type);
  1129. end;
  1130. function G_IS_VALUE(value : Pointer) : boolean;
  1131. begin
  1132. G_IS_VALUE:=G_TYPE_CHECK_VALUE(value);
  1133. end;
  1134. function G_VALUE_TYPE(value : Pointer) : GType;
  1135. begin
  1136. G_VALUE_TYPE:=(PGValue(value))^.g_type;
  1137. end;
  1138. function G_VALUE_TYPE_NAME(value : Pointer) : PGChar;
  1139. begin
  1140. G_VALUE_TYPE_NAME:=g_type_name(G_VALUE_TYPE(value));
  1141. end;
  1142. function G_VALUE_HOLDS(value: pointer; g_type : GType) : boolean;
  1143. begin
  1144. G_VALUE_HOLDS:=G_TYPE_CHECK_VALUE_TYPE(value,g_type);
  1145. end;
  1146. // gparam.inc ------------------------------------------------------------------
  1147. function G_TYPE_IS_PARAM(_type : GType) : boolean;
  1148. begin
  1149. G_TYPE_IS_PARAM:=(G_TYPE_FUNDAMENTAL(_type)) = G_TYPE_PARAM;
  1150. end;
  1151. function G_PARAM_SPEC(pspec : Pointer) : PGParamSpec;
  1152. begin
  1153. G_PARAM_SPEC:=PGParamSpec(G_TYPE_CHECK_INSTANCE_CAST(pspec,G_TYPE_PARAM));
  1154. end;
  1155. function G_IS_PARAM_SPEC(pspec : Pointer) : boolean;
  1156. begin
  1157. G_IS_PARAM_SPEC:=G_TYPE_CHECK_INSTANCE_TYPE(pspec,G_TYPE_PARAM);
  1158. end;
  1159. function G_PARAM_SPEC_CLASS(pclass : Pointer) : PGParamSpecClass;
  1160. begin
  1161. G_PARAM_SPEC_CLASS:=PGParamSpecClass(G_TYPE_CHECK_CLASS_CAST(pclass,G_TYPE_PARAM));
  1162. end;
  1163. function G_IS_PARAM_SPEC_CLASS(pclass : Pointer) : boolean;
  1164. begin
  1165. G_IS_PARAM_SPEC_CLASS:=G_TYPE_CHECK_CLASS_TYPE(pclass,G_TYPE_PARAM);
  1166. end;
  1167. function G_PARAM_SPEC_GET_CLASS(pspec : Pointer) : PGParamSpecClass;
  1168. begin
  1169. G_PARAM_SPEC_GET_CLASS:=PGParamSpecClass(G_TYPE_INSTANCE_GET_CLASS(pspec,G_TYPE_PARAM));
  1170. end;
  1171. function G_PARAM_SPEC_TYPE(pspec : Pointer) : GType;
  1172. begin
  1173. G_PARAM_SPEC_TYPE:=G_TYPE_FROM_INSTANCE(pspec);
  1174. end;
  1175. function G_PARAM_SPEC_TYPE_NAME(pspec : Pointer) : PGChar;
  1176. begin
  1177. G_PARAM_SPEC_TYPE_NAME:=g_type_name(G_PARAM_SPEC_TYPE(pspec));
  1178. end;
  1179. function G_PARAM_SPEC_VALUE_TYPE(pspec : Pointer) : GType;
  1180. begin
  1181. G_PARAM_SPEC_VALUE_TYPE:=(G_PARAM_SPEC(pspec))^.value_type;
  1182. end;
  1183. function G_VALUE_HOLDS_PARAM(value : Pointer) : boolean;
  1184. begin
  1185. G_VALUE_HOLDS_PARAM:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_PARAM);
  1186. end;
  1187. // gclosure.inc ----------------------------------------------------------------
  1188. function G_CLOSURE_NEEDS_MARSHAL(closure : Pointer) : boolean;
  1189. begin
  1190. G_CLOSURE_NEEDS_MARSHAL := not Assigned((PGClosure(closure))^.marshal);
  1191. end;
  1192. function G_CLOSURE_N_NOTIFIERS(cl : PGClosure) : longint;
  1193. begin
  1194. G_CLOSURE_N_NOTIFIERS:=((meta_marshal(cl) + ((n_guards(cl)) shl 1))
  1195. + (n_fnotifiers(cl))) + (n_inotifiers(cl));
  1196. end;
  1197. function G_CCLOSURE_SWAP_DATA(cclosure : PGClosure) : longint;
  1198. begin
  1199. G_CCLOSURE_SWAP_DATA:=derivative_flag(cclosure);
  1200. end;
  1201. function G_CALLBACK(f : pointer) : TGCallback;
  1202. begin
  1203. G_CALLBACK:=TGCallback(f);
  1204. end;
  1205. function ref_count(var a : TGClosure) : guint;
  1206. begin
  1207. ref_count:=(a.flag0 and bm_TGClosure_ref_count) shr bp_TGClosure_ref_count;
  1208. end;
  1209. procedure set_ref_count(var a : TGClosure; __ref_count : guint);
  1210. begin
  1211. a.flag0:=a.flag0 or ((__ref_count shl bp_TGClosure_ref_count) and bm_TGClosure_ref_count);
  1212. end;
  1213. function meta_marshal(a : PGClosure) : guint;
  1214. begin
  1215. meta_marshal:=(a^.flag0 and bm_TGClosure_meta_marshal) shr bp_TGClosure_meta_marshal;
  1216. end;
  1217. procedure set_meta_marshal(var a : TGClosure; __meta_marshal : guint);
  1218. begin
  1219. a.flag0:=a.flag0 or ((__meta_marshal shl bp_TGClosure_meta_marshal) and bm_TGClosure_meta_marshal);
  1220. end;
  1221. function n_guards(a : PGClosure) : guint;
  1222. begin
  1223. n_guards:=(a^.flag0 and bm_TGClosure_n_guards) shr bp_TGClosure_n_guards;
  1224. end;
  1225. procedure set_n_guards(var a : TGClosure; __n_guards : guint);
  1226. begin
  1227. a.flag0:=a.flag0 or ((__n_guards shl bp_TGClosure_n_guards) and bm_TGClosure_n_guards);
  1228. end;
  1229. function n_fnotifiers(a : PGClosure) : guint;
  1230. begin
  1231. n_fnotifiers:=(a^.flag0 and bm_TGClosure_n_fnotifiers) shr bp_TGClosure_n_fnotifiers;
  1232. end;
  1233. procedure set_n_fnotifiers(var a : TGClosure; __n_fnotifiers : guint);
  1234. begin
  1235. a.flag0:=a.flag0 or ((__n_fnotifiers shl bp_TGClosure_n_fnotifiers) and bm_TGClosure_n_fnotifiers);
  1236. end;
  1237. function n_inotifiers(a : PGClosure) : guint;
  1238. begin
  1239. n_inotifiers:=(a^.flag0 and bm_TGClosure_n_inotifiers) shr bp_TGClosure_n_inotifiers;
  1240. end;
  1241. procedure set_n_inotifiers(var a : TGClosure; __n_inotifiers : guint);
  1242. begin
  1243. a.flag0:=a.flag0 or ((__n_inotifiers shl bp_TGClosure_n_inotifiers) and bm_TGClosure_n_inotifiers);
  1244. end;
  1245. function in_inotify(var a : TGClosure) : guint;
  1246. begin
  1247. in_inotify:=(a.flag0 and bm_TGClosure_in_inotify) shr bp_TGClosure_in_inotify;
  1248. end;
  1249. procedure set_in_inotify(var a : TGClosure; __in_inotify : guint);
  1250. begin
  1251. a.flag0:=a.flag0 or ((__in_inotify shl bp_TGClosure_in_inotify) and bm_TGClosure_in_inotify);
  1252. end;
  1253. function floating(var a : TGClosure) : guint;
  1254. begin
  1255. floating:=(a.flag0 and bm_TGClosure_floating) shr bp_TGClosure_floating;
  1256. end;
  1257. procedure set_floating(var a : TGClosure; __floating : guint);
  1258. begin
  1259. a.flag0:=a.flag0 or ((__floating shl bp_TGClosure_floating) and bm_TGClosure_floating);
  1260. end;
  1261. function derivative_flag(a : PGClosure) : guint;
  1262. begin
  1263. derivative_flag:=(a^.flag0 and bm_TGClosure_derivative_flag) shr bp_TGClosure_derivative_flag;
  1264. end;
  1265. procedure set_derivative_flag(var a : TGClosure; __derivative_flag : guint);
  1266. begin
  1267. a.flag0:=a.flag0 or ((__derivative_flag shl bp_TGClosure_derivative_flag) and bm_TGClosure_derivative_flag);
  1268. end;
  1269. function in_marshal(var a : TGClosure) : guint;
  1270. begin
  1271. in_marshal:=(a.flag0 and bm_TGClosure_in_marshal) shr bp_TGClosure_in_marshal;
  1272. end;
  1273. procedure set_in_marshal(var a : TGClosure; __in_marshal : guint);
  1274. begin
  1275. a.flag0:=a.flag0 or ((__in_marshal shl bp_TGClosure_in_marshal) and bm_TGClosure_in_marshal);
  1276. end;
  1277. function is_invalid(var a : TGClosure) : guint;
  1278. begin
  1279. is_invalid:=(a.flag0 and bm_TGClosure_is_invalid) shr bp_TGClosure_is_invalid;
  1280. end;
  1281. procedure set_is_invalid(var a : TGClosure; __is_invalid : guint);
  1282. begin
  1283. a.flag0:=a.flag0 or ((__is_invalid shl bp_TGClosure_is_invalid) and bm_TGClosure_is_invalid);
  1284. end;
  1285. // gsignal.inc -----------------------------------------------------------------
  1286. function g_signal_connect(instance:gpointer; detailed_signal:Pgchar;
  1287. c_handler:TGCallback; data:gpointer) : gulong;
  1288. begin
  1289. g_signal_connect:=g_signal_connect_data(instance,detailed_signal,c_handler,
  1290. data,NULL,TGConnectFlags(0));
  1291. end;
  1292. function g_signal_connect_after(instance:gpointer; detailed_signal:Pgchar;
  1293. c_handler:TGCallback; data:gpointer) : gulong;
  1294. begin
  1295. g_signal_connect_after:=g_signal_connect_data(instance,detailed_signal,
  1296. c_handler,data,NULL,G_CONNECT_AFTER);
  1297. end;
  1298. function g_signal_connect_swapped(instance:gpointer; detailed_signal:Pgchar;
  1299. c_handler:TGCallback; data:gpointer) : gulong;
  1300. begin
  1301. g_signal_connect_swapped:=g_signal_connect_data(instance,detailed_signal,
  1302. c_handler,data,NULL,G_CONNECT_SWAPPED);
  1303. end;
  1304. function g_signal_handlers_disconnect_by_func(instance:gpointer;
  1305. func, data: gpointer) : guint;
  1306. begin
  1307. g_signal_handlers_disconnect_by_func:=g_signal_handlers_disconnect_matched(
  1308. instance,TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA),0,0,
  1309. NULL,func,data);
  1310. end;
  1311. procedure g_signal_handlers_block_by_func(instance: gpointer; func, data: gpointer);
  1312. begin
  1313. g_signal_handlers_block_matched(instance,
  1314. TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA),
  1315. 0, 0, nil, func, data);
  1316. end;
  1317. procedure g_signal_handlers_unblock_by_func(instance: gpointer; func, data: gpointer);
  1318. begin
  1319. g_signal_handlers_unblock_matched(instance,
  1320. TGSignalMatchType(G_SIGNAL_MATCH_FUNC or G_SIGNAL_MATCH_DATA),
  1321. 0, 0, nil, func, data);
  1322. end;
  1323. // gobject.inc -----------------------------------------------------------------
  1324. function G_TYPE_IS_OBJECT(_type : GType) : boolean;
  1325. begin
  1326. G_TYPE_IS_OBJECT:=(G_TYPE_FUNDAMENTAL(_type)) = G_TYPE_OBJECT;
  1327. end;
  1328. function G_OBJECT(anObject: pointer) : PGObject;
  1329. begin
  1330. G_OBJECT:=PGObject(G_TYPE_CHECK_INSTANCE_CAST(anObject,G_TYPE_OBJECT));
  1331. end;
  1332. function G_OBJECT_CLASS(_class : Pointer) : PGObjectClass;
  1333. begin
  1334. G_OBJECT_CLASS:=PGObjectClass(G_TYPE_CHECK_CLASS_CAST(_class,G_TYPE_OBJECT));
  1335. end;
  1336. function G_IS_OBJECT(anObject: pointer) : boolean;
  1337. begin
  1338. G_IS_OBJECT:=G_TYPE_CHECK_INSTANCE_TYPE(anObject,G_TYPE_OBJECT);
  1339. end;
  1340. function G_IS_OBJECT_CLASS(_class : Pointer) : boolean;
  1341. begin
  1342. G_IS_OBJECT_CLASS:=G_TYPE_CHECK_CLASS_TYPE(_class,G_TYPE_OBJECT);
  1343. end;
  1344. function G_OBJECT_GET_CLASS(anObject: pointer) : PGObjectClass;
  1345. begin
  1346. G_OBJECT_GET_CLASS:=PGObjectClass(G_TYPE_INSTANCE_GET_CLASS(anObject,G_TYPE_OBJECT));
  1347. end;
  1348. function G_OBJECT_TYPE(anObject: pointer) : GType;
  1349. begin
  1350. G_OBJECT_TYPE:=G_TYPE_FROM_INSTANCE(anObject);
  1351. end;
  1352. function G_OBJECT_TYPE_NAME(anObject: pointer) : Pgchar;
  1353. begin
  1354. G_OBJECT_TYPE_NAME:=g_type_name(G_OBJECT_TYPE(anObject));
  1355. end;
  1356. function G_OBJECT_CLASS_TYPE(_class : Pointer) : GType;
  1357. begin
  1358. G_OBJECT_CLASS_TYPE:=G_TYPE_FROM_CLASS(_class);
  1359. end;
  1360. function G_OBJECT_CLASS_NAME(_class : Pointer) : Pgchar;
  1361. begin
  1362. G_OBJECT_CLASS_NAME:=g_type_name(G_OBJECT_CLASS_TYPE(_class));
  1363. end;
  1364. function G_VALUE_HOLDS_OBJECT(value : Pointer) : boolean;
  1365. begin
  1366. G_VALUE_HOLDS_OBJECT:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_OBJECT);
  1367. end;
  1368. procedure G_OBJECT_WARN_INVALID_PROPERTY_ID(anObject: gpointer;
  1369. property_id: gint; pspec : gpointer);
  1370. begin
  1371. G_OBJECT_WARN_INVALID_PSPEC(anObject,'property',property_id,pspec);
  1372. end;
  1373. procedure G_OBJECT_WARN_INVALID_PSPEC(anObject: gpointer; pname: PGChar;
  1374. property_id: gint; pspec: gpointer);
  1375. var
  1376. _object: PGObject;
  1377. _pspec: PGParamSpec;
  1378. _property_id: guint;
  1379. begin
  1380. _object := PGObject (anObject);
  1381. _pspec := PGParamSpec (pspec);
  1382. _property_id := (property_id);
  1383. g_warning ('%s: invalid %s id %u for "%s" of type `%s'' in `%s''',
  1384. ['',
  1385. pname,
  1386. _property_id,
  1387. _pspec^.name,
  1388. g_type_name (G_PARAM_SPEC_TYPE (_pspec)),
  1389. G_OBJECT_TYPE_NAME (_object)]);
  1390. end;
  1391. // gtypeplugin.inc -------------------------------------------------------------
  1392. function G_TYPE_TYPE_PLUGIN : GType;
  1393. begin
  1394. G_TYPE_TYPE_PLUGIN:=g_type_plugin_get_type;
  1395. end;
  1396. function G_TYPE_PLUGIN(inst : Pointer) : PGTypePlugin;
  1397. begin
  1398. G_TYPE_PLUGIN:=PGTypePlugin(G_TYPE_CHECK_INSTANCE_CAST(inst,G_TYPE_TYPE_PLUGIN));
  1399. end;
  1400. function G_TYPE_PLUGIN_CLASS(vtable : Pointer) : PGTypePluginClass;
  1401. begin
  1402. G_TYPE_PLUGIN_CLASS:=PGTypePluginClass(G_TYPE_CHECK_CLASS_CAST(vtable,G_TYPE_TYPE_PLUGIN));
  1403. end;
  1404. function G_IS_TYPE_PLUGIN(inst : Pointer) : boolean;
  1405. begin
  1406. G_IS_TYPE_PLUGIN:=G_TYPE_CHECK_INSTANCE_TYPE(inst,G_TYPE_TYPE_PLUGIN);
  1407. end;
  1408. function G_IS_TYPE_PLUGIN_CLASS(vtable : Pointer) : boolean;
  1409. begin
  1410. G_IS_TYPE_PLUGIN_CLASS:=G_TYPE_CHECK_CLASS_TYPE(vtable,G_TYPE_TYPE_PLUGIN);
  1411. end;
  1412. function G_TYPE_PLUGIN_GET_CLASS(inst : Pointer) : PGTypePluginClass;
  1413. begin
  1414. G_TYPE_PLUGIN_GET_CLASS:=PGTypePluginClass(G_TYPE_INSTANCE_GET_INTERFACE(inst,G_TYPE_TYPE_PLUGIN));
  1415. end;
  1416. // genums.inc ------------------------------------------------------------------
  1417. function G_TYPE_IS_ENUM(_type : GType) : gboolean;
  1418. begin
  1419. G_TYPE_IS_ENUM:=(G_TYPE_FUNDAMENTAL(_type) = G_TYPE_ENUM);
  1420. end;
  1421. function G_ENUM_CLASS(_class : pointer) : PGEnumClass;
  1422. begin
  1423. G_ENUM_CLASS:=PGEnumClass(G_TYPE_CHECK_CLASS_CAST(_class,G_TYPE_ENUM));
  1424. end;
  1425. function G_IS_ENUM_CLASS(_class : pointer) : gboolean;
  1426. begin
  1427. G_IS_ENUM_CLASS:=G_TYPE_CHECK_CLASS_TYPE(_class,G_TYPE_ENUM);
  1428. end;
  1429. function G_ENUM_CLASS_TYPE(_class : pointer) : GType;
  1430. begin
  1431. G_ENUM_CLASS_TYPE:=G_TYPE_FROM_CLASS(_class);
  1432. end;
  1433. function G_ENUM_CLASS_TYPE_NAME(_class : pointer) : PGChar;
  1434. begin
  1435. G_ENUM_CLASS_TYPE_NAME:=g_type_name(G_ENUM_CLASS_TYPE(_class));
  1436. end;
  1437. function G_TYPE_IS_FLAGS(_type : GType) : gboolean;
  1438. begin
  1439. G_TYPE_IS_FLAGS:=(G_TYPE_FUNDAMENTAL(_type)) = G_TYPE_FLAGS;
  1440. end;
  1441. function G_FLAGS_CLASS(_class : pointer) : PGFlagsClass;
  1442. begin
  1443. G_FLAGS_CLASS:=PGFlagsClass(G_TYPE_CHECK_CLASS_CAST(_class,G_TYPE_FLAGS));
  1444. end;
  1445. function G_IS_FLAGS_CLASS(_class : pointer) : gboolean;
  1446. begin
  1447. G_IS_FLAGS_CLASS:=G_TYPE_CHECK_CLASS_TYPE(_class,G_TYPE_FLAGS);
  1448. end;
  1449. function G_FLAGS_CLASS_TYPE(_class : pointer) : GType;
  1450. begin
  1451. G_FLAGS_CLASS_TYPE:=G_TYPE_FROM_CLASS(_class);
  1452. end;
  1453. function G_FLAGS_CLASS_TYPE_NAME(_class : pointer) : PGChar;
  1454. begin
  1455. G_FLAGS_CLASS_TYPE_NAME:=g_type_name(G_FLAGS_TYPE(PtrInt(_class)));
  1456. end;
  1457. function G_VALUE_HOLDS_ENUM(value : pointer) : gboolean;
  1458. begin
  1459. G_VALUE_HOLDS_ENUM:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_ENUM);
  1460. end;
  1461. function G_VALUE_HOLDS_FLAGS(value : pointer) : gboolean;
  1462. begin
  1463. G_VALUE_HOLDS_FLAGS:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_FLAGS);
  1464. end;
  1465. // gmacros.inc -----------------------------------------------------------------
  1466. function CLAMP(x, MinX, MaxX: integer): integer;
  1467. begin
  1468. if x<MinX then
  1469. Result:=MinX
  1470. else if x>MaxX then
  1471. Result:=MaxX
  1472. else
  1473. Result:=x;
  1474. end;
  1475. function GPOINTER_TO_SIZE(p: GPointer): GSize;
  1476. begin
  1477. Result:=GSize(PtrInt(p));
  1478. end;
  1479. function GSIZE_TO_POINTER(s: GSize): GPointer;
  1480. begin
  1481. Result:=GPointer(PtrInt(s));
  1482. end;
  1483. // gvaluetypes.inc -------------------------------------------------------------
  1484. function G_VALUE_HOLDS_CHAR(value : PGValue) : boolean;
  1485. begin
  1486. G_VALUE_HOLDS_CHAR:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_CHAR);
  1487. end;
  1488. function G_VALUE_HOLDS_UCHAR(value : PGValue) : boolean;
  1489. begin
  1490. G_VALUE_HOLDS_UCHAR:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_UCHAR);
  1491. end;
  1492. function G_VALUE_HOLDS_BOOLEAN(value : PGValue) : boolean;
  1493. begin
  1494. G_VALUE_HOLDS_BOOLEAN:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_BOOLEAN);
  1495. end;
  1496. function G_VALUE_HOLDS_INT(value : PGValue) : boolean;
  1497. begin
  1498. G_VALUE_HOLDS_INT:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_INT);
  1499. end;
  1500. function G_VALUE_HOLDS_UINT(value : PGValue) : boolean;
  1501. begin
  1502. G_VALUE_HOLDS_UINT:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_UINT);
  1503. end;
  1504. function G_VALUE_HOLDS_LONG(value : PGValue) : boolean;
  1505. begin
  1506. G_VALUE_HOLDS_LONG:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_LONG);
  1507. end;
  1508. function G_VALUE_HOLDS_ULONG(value : PGValue) : boolean;
  1509. begin
  1510. G_VALUE_HOLDS_ULONG:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_ULONG);
  1511. end;
  1512. function G_VALUE_HOLDS_INT64(value : PGValue) : boolean;
  1513. begin
  1514. G_VALUE_HOLDS_INT64:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_INT64);
  1515. end;
  1516. function G_VALUE_HOLDS_UINT64(value : PGValue) : boolean;
  1517. begin
  1518. G_VALUE_HOLDS_UINT64:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_UINT64);
  1519. end;
  1520. function G_VALUE_HOLDS_FLOAT(value : PGValue) : boolean;
  1521. begin
  1522. G_VALUE_HOLDS_FLOAT:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_FLOAT);
  1523. end;
  1524. function G_VALUE_HOLDS_DOUBLE(value : PGValue) : boolean;
  1525. begin
  1526. G_VALUE_HOLDS_DOUBLE:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_DOUBLE);
  1527. end;
  1528. function G_VALUE_HOLDS_STRING(value : PGValue) : boolean;
  1529. begin
  1530. G_VALUE_HOLDS_STRING:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_STRING);
  1531. end;
  1532. function G_VALUE_HOLDS_POINTER(value : PGValue) : boolean;
  1533. begin
  1534. G_VALUE_HOLDS_POINTER:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_POINTER);
  1535. end;
  1536. // gboxed.inc ------------------------------------------------------------------
  1537. function G_TYPE_IS_BOXED(_type : GType) : gboolean;
  1538. begin
  1539. G_TYPE_IS_BOXED:=(G_TYPE_FUNDAMENTAL(_type)) = G_TYPE_BOXED;
  1540. end;
  1541. function G_VALUE_HOLDS_BOXED(value : PGValue) : gboolean;
  1542. begin
  1543. G_VALUE_HOLDS_BOXED:=G_TYPE_CHECK_VALUE_TYPE(value,G_TYPE_BOXED);
  1544. end;
  1545. function G_TYPE_CLOSURE : GType;
  1546. begin
  1547. G_TYPE_CLOSURE:=g_closure_get_type;
  1548. end;
  1549. function G_TYPE_VALUE : GType;
  1550. begin
  1551. G_TYPE_VALUE:=g_value_get_type;
  1552. end;
  1553. function G_TYPE_VALUE_ARRAY : GType;
  1554. begin
  1555. G_TYPE_VALUE_ARRAY:=g_value_array_get_type;
  1556. end;
  1557. function G_TYPE_GSTRING : GType;
  1558. begin
  1559. G_TYPE_GSTRING:=g_gstring_get_type;
  1560. end;
  1561. end.