123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- unit xresource;
- interface
- uses xlib;
- {***************************************************************
- *
- * Quark Management
- *
- ***************************************************************}
- type
- TXrmQuark = Integer;
- PXrmQuark = ^TXrmQuark;
- TXrmQuarkList = PXrmQuark;
-
-
- Const NULLQUARK = 0 ;
- type TXrmString = Pchar;
- const NULLSTRING = 0;
- { find quark for string, create new quark if none already exists }
- Function XrmStringToQuark( p1 : pchar ) : TXrmQuark;cdecl;
- Function XrmPermStringToQuark( p1 : pchar ) : TXrmQuark;cdecl;
- { find string for quark }
- Function XrmQuarkToString( p1 : TXrmQuark) : TXrmString;cdecl;
- Function XrmUniqueQuark : TXrmQuark;cdecl;
- {
- #define XrmStringsEqual(a1, a2) (strcmp(a1, a2) == 0)
- }
- {***************************************************************
- *
- * Conversion of Strings to Lists
- *
- ***************************************************************}
- type
- TXrmBinding = integer;
- TXrmBindingList = ^Integer;
- Const XrmBindTightly = 0;
- XrmBindLoosely = 1;
- procedure XrmStringToQuarkList(
- p1 : pchar { string };
- p2 : TXrmQuarkList { quarks_return }
- );cdecl;
- procedure XrmStringToBindingQuarkList(
- p1 : pchar { string };
- p2 : TXrmBindingList { bindings_return };
- p3 : TXrmQuarkList { quarks_return }
- );cdecl;
- {***************************************************************
- *
- * Name and Class lists.
- *
- ***************************************************************}
- type TXrmName = TXrmQuark;
- TXrmNameList = TXrmQuarkList ;
- {
- #define XrmNameToString(name) XrmQuarkToString(name)
- #define XrmStringToName(string) XrmStringToQuark(string)
- #define XrmStringToNameList(str, name) XrmStringToQuarkList(str, name)
- }
- TXrmClass = TXrmQuark;
- TXrmClassList = TXrmQuarkList;
- {
- #define XrmClassToString(c_class) XrmQuarkToString(c_class)
- #define XrmStringToClass(c_class) XrmStringToQuark(c_class)
- #define XrmStringToClassList(str,c_class) XrmStringToQuarkList(str, c_class)
- }
- {***************************************************************
- *
- * Resource Representation Types and Values
- *
- ***************************************************************}
- type TXrmRepresentation = TXrmQuark ;
- PXrmRepresentation = ^TXrmRepresentation;
- {
- #define XrmStringToRepresentation(string) XrmStringToQuark(string)
- #define XrmRepresentationToString(type) XrmQuarkToString(type)
- }
- type TXrmValue = record
- size : word;
- theaddr : TXPointer;
- end;
- PXrmValue = ^TXrmValue;
- TXrmValuePtr = PXrmValue;
- {***************************************************************
- *
- * Resource Manager Functions
- *
- ***************************************************************}
- {
- typedef struct _XrmHashBucketRec *XrmHashBucket;
- typedef XrmHashBucket *XrmHashTable;
- typedef XrmHashTable XrmSearchList[];
- typedef struct _XrmHashBucketRec *XrmDatabase;
- }
- Type TXrmHashBucket = pointer;
- TXrmHashTable = ^TXrmHashBucket;
- TXrmSearchList = ^TXrmHashTable;
- TXrmDatabase = pointer;
- PXrmDatabase = ^TXrmDatabase;
-
- procedure XrmDestroyDatabase(
- p1 : TXrmDatabase { database }
- );cdecl;
- Procedure XrmQPutResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmBindingList { bindings };
- p3 : TXrmQuarkList { quarks };
- p4 : TXrmRepresentation { type };
- p5 : PXrmValue { value }
- );cdecl;
- Procedure XrmPutResource(
- p1 : PXrmDatabase { database };
- p2 : pchar { specifier };
- p3 : pchar { type };
- p4 : PXrmValue { value }
- );cdecl;
- Procedure XrmQPutStringResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmBindingList { bindings };
- p3 : TXrmQuarkList { quarks };
- p4 : Pchar { value }
- );cdecl;
- Procedure XrmPutStringResource(
- P1 : PXrmDatabase { database };
- p2,p3 : pchar
- );cdecl;
- Procedure XrmPutLineResource(
- p1 : PXrmDatabase { database };
- p2 : pchar { line }
- );cdecl;
- Function XrmQGetResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmNameList { quark_name };
- p3 : TXrmClassList { quark_class };
- p4 : PXrmRepresentation { quark_type_return };
- p5 : PXrmValue { value_return }
- ) : Integer;cdecl;
- Function XrmGetResource(
- p1 : TXrmDatabase { database };
- p2 : pchar { str_name };
- p3 : pchar { str_class };
- p4 : ppchar { str_type_return };
- p5 : PXrmValue { value_return }
- ) : Tbool;cdecl;
- Function XrmQGetSearchList(
- p1 : TXrmDatabase { database };
- p2 : TXrmNameList { names };
- p3 : TXrmClassList { classes };
- p4 : TXrmSearchList { list_return };
- p5 : integer { list_length }
- ) : Tbool;cdecl;
- Function XrmQGetSearchResource(
- P1 : TXrmSearchList { list };
- p2 : TXrmName { name };
- p3 : TXrmClass { class };
- p4 : PXrmRepresentation { type_return };
- p5 : PXrmValue { value_return }
- ) : TBool;cdecl;
- {***************************************************************
- *
- * Resource Database Management
- *
- ***************************************************************}
- procedure XrmSetDatabase(
- p1 : PDisplay { display };
- p2 : TXrmDatabase { database }
- );cdecl;
- Function XrmGetDatabase(
- p1 : PDisplay { display }
- ) : TXrmDatabase;cdecl;
- Function XrmGetFileDatabase(
- p1 : pchar { filename }
- ) : TXrmDatabase ;cdecl;
- Function XrmCombineFileDatabase(
- p1 : pchar { filename };
- p2 : PXrmDatabase { target };
- p3 : TBool { override }
- ) : TStatus ;cdecl;
- function XrmGetStringDatabase(
- p1 : pchar { data } { null terminated string }
- ) : TXrmDatabase ;cdecl;
- Procedure XrmPutFileDatabase(
- p1 : TXrmDatabase { database };
- p2: pchar { filename }
- );cdecl;
- Procedure XrmMergeDatabases(
- p1 : TXrmDatabase { source_db };
- p2 : PXrmDatabase { target_db }
- );cdecl;
- procedure XrmCombineDatabase(
- p1 : TXrmDatabase { source_db };
- p2 : PXrmDatabase { target_db };
- p3 : TBool { override }
- );cdecl;
- const
- XrmEnumAllLevels = 0;
- XrmEnumOneLevel = 1;
- {
- Function XrmEnumerateDatabase(
- XrmDatabase { db };
- XrmNameList { name_prefix };
- XrmClassList { class_prefix };
- int { mode };
- Bool (*)(#if NeedNestedPrototypes
- XrmDatabase* { db };
- XrmBindingList { bindings };
- XrmQuarkList { quarks };
- XrmRepresentation* { type };
- XrmValue* { value };
- XPointer { closure }
- ) { proc };
- XPointer { closure }
- ) : TBool;
- }
- Function XrmLocaleOfDatabase(
- P1 : TXrmDatabase { database }
- ) : Pchar;cdecl;
- {***************************************************************
- *
- * Command line option mapping to resource entries
- *
- ***************************************************************}
- Const
- XrmoptionNoArg = 0; { Value is specified in OptionDescRec.value }
- XrmoptionIsArg = 1; { Value is the option string itself }
- XrmoptionStickyArg = 2; { Value is characters immediately following option }
- XrmoptionSepArg = 3; { Value is next argument in argv }
- XrmoptionResArg = 4; { Resource and value in next argument in argv }
- XrmoptionSkipArg = 5; { Ignore this option and the next argument in argv }
- XrmoptionSkipLine = 6; { Ignore this option and the rest of argv }
- XrmoptionSkipNArgs = 7; { Ignore this option and the next
- OptionDescRes.value arguments in argv }
- Type TXrmOptionKind = Integer;
- TXrmOptionDescRec = record
- option : pchar; { Option abbreviation in argv }
- specifier : pchar; { Resource specifier }
- argKind : TXrmOptionKind; { Which style of option it is }
- value : TXpointer; { Value to provide if XrmoptionNoArg }
- end;
- PXrmOptionDescRec= ^TXrmOptionDescRec;
- TXrmOptionDescList = PXrmOptionDescRec;
- Procedure XrmParseCommand(
- p1 : TXrmDatabase { database };
- p2 : TXrmOptionDescList { table };
- p3 : integer { table_count };
- p4 : pchar { name };
- p5 : Pointer { argc_in_out };
- p6 : ppchar { argv_in_out }
- );cdecl;
- Implementation
- Function XrmStringToQuark( p1 : pchar ) : TXrmQuark; cdecl; external;
- Function XrmPermStringToQuark( p1 : pchar ) : TXrmQuark; cdecl; external;
- Function XrmQuarkToString( p1 : TXrmQuark) : TXrmString; cdecl; external;
- Function XrmUniqueQuark : TXrmQuark; cdecl; external;
- procedure XrmStringToQuarkList(
- p1 : pchar { string };
- p2 : TXrmQuarkList { quarks_return }
- ); cdecl; external;
- procedure XrmStringToBindingQuarkList(
- p1 : pchar { string };
- p2 : TXrmBindingList { bindings_return };
- p3 : TXrmQuarkList { quarks_return }
- ); cdecl; external;
- procedure XrmDestroyDatabase(
- p1 : TXrmDatabase { database }
- ); cdecl; external;
- Procedure XrmQPutResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmBindingList { bindings };
- p3 : TXrmQuarkList { quarks };
- p4 : TXrmRepresentation { type };
- p5 : PXrmValue { value }
- ); cdecl; external;
- Procedure XrmPutResource(
- p1 : PXrmDatabase { database };
- p2 : pchar { specifier };
- p3 : pchar { type };
- p4 : PXrmValue { value }
- ); cdecl; external;
- Procedure XrmQPutStringResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmBindingList { bindings };
- p3 : TXrmQuarkList { quarks };
- p4 : Pchar { value }
- ); cdecl; external;
- procedure XrmPutStringResource(
- P1 : PXrmDatabase { database };
- p2,p3 : pchar
- ); cdecl; external;
- Procedure XrmPutLineResource(
- p1 : PXrmDatabase { database };
- p2 : pchar { line }
- ); cdecl; external;
- Function XrmQGetResource(
- p1 : PXrmDatabase { database };
- p2 : TXrmNameList { quark_name };
- p3 : TXrmClassList { quark_class };
- p4 : PXrmRepresentation { quark_type_return };
- p5 : PXrmValue { value_return }
- ) : Integer; cdecl; external;
- Function XrmGetResource(
- p1 : TXrmDatabase { database };
- p2 : pchar { str_name };
- p3 : pchar { str_class };
- p4 : ppchar { str_type_return };
- p5 : PXrmValue { value_return }
- ) : Tbool; cdecl; external;
- Function XrmQGetSearchList(
- p1 : TXrmDatabase { database };
- p2 : TXrmNameList { names };
- p3 : TXrmClassList { classes };
- p4 : TXrmSearchList { list_return };
- p5 : integer { list_length }
- ) : Tbool; cdecl; external;
- Function XrmQGetSearchResource(
- P1 : TXrmSearchList { list };
- p2 : TXrmName { name };
- p3 : TXrmClass { class };
- p4 : PXrmRepresentation { type_return };
- p5 : PXrmValue { value_return }
- ) : TBool; cdecl; external;
- procedure XrmSetDatabase(
- p1 : PDisplay { display };
- p2 : TXrmDatabase { database }
- ); cdecl; external;
- Function XrmGetDatabase(
- p1 : PDisplay { display }
- ) : TXrmDatabase; cdecl; external;
- Function XrmGetFileDatabase(
- p1 : pchar { filename }
- ) : TXrmDatabase ; cdecl; external;
- Function XrmCombineFileDatabase(
- p1 : pchar { filename };
- p2 : PXrmDatabase { target };
- p3 : TBool { override }
- ) : TStatus ; cdecl; external;
- function XrmGetStringDatabase(
- p1 : pchar { data } { null terminated string }
- ) : TXrmDatabase ; cdecl; external;
- Procedure XrmPutFileDatabase(
- p1 : TXrmDatabase { database };
- p2: pchar { filename }
- ); cdecl; external;
- Procedure XrmMergeDatabases(
- p1 : TXrmDatabase { source_db };
- p2 : PXrmDatabase { target_db }
- ); cdecl; external;
- procedure XrmCombineDatabase(
- p1 : TXrmDatabase { source_db };
- p2 : PXrmDatabase { target_db };
- p3 : TBool { override }
- ); cdecl; external;
- {
- Function XrmEnumerateDatabase(
- XrmDatabase { db };
- XrmNameList { name_prefix };
- XrmClassList { class_prefix };
- int { mode };
- Bool (*)(#if NeedNestedPrototypes
- XrmDatabase* { db };
- XrmBindingList { bindings };
- XrmQuarkList { quarks };
- XrmRepresentation* { type };
- XrmValue* { value };
- XPointer { closure }
- ) { proc };
- XPointer { closure }
- ) : TBool; cdecl; external;
- }
- Function XrmLocaleOfDatabase(
- P1 : TXrmDatabase { database }
- ) : Pchar; cdecl; external;
- Procedure XrmParseCommand(
- p1 : TXrmDatabase { database };
- p2 : TXrmOptionDescList { table };
- p3 : integer { table_count };
- p4 : pchar { name };
- p5 : Pointer { argc_in_out };
- p6 : ppchar { argv_in_out }
- ); cdecl; external;
- end.
|