⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 generation.txt

📁 gtk是linux一款强大的夸平台的图形化开发工具
💻 TXT
字号:
Overview:========This file describes the way that autogenerationworks within the GTK+ source code.The following files in the gdk/ subdirectoryare autogenerated:  gdkkeysyms.h  gdkcursors.h The following files in the gtk/ subdirectory are autogenerated: gtk.defs   Description of GTK+ types (and some functions) in a lisp-style   format. gtktypebuiltins.h   Header file including declarations for internal types   gtktypebuiltins_vars.c   Variables for type values for internal types. gtktypebuiltins_ids.c   Arrays holding information about each internal type. gtktypebuiltins_evals.c   Arrays holding mapping between enumeration values   and strings. gtkmarshal.c gtkmarshal.h   Autogenerated signal marshallersGDK===gdkkeysyms.h and gdkcursors.h are generated fromthe corresponding header files  X11/cursorfont.h  X11/keysymdef.hby some simple sed scripts. These are not actuallyrun automatically because we want all the keysymseven on systems with a limited set.So the Gdk rule to generate both files (X-derived-headers)only needs to be rerun for every new release of the X WindowSystem.GTK+ - type definitions=======================The type definitions are generated from several sources: gtk-boxed.defs - definitions for boxed types GTK+ header files GDK header filesThe makeenums.pl script does a heuristic parse of the header files and extracts all enumerations declarations.It also recognizes a number of pseudo-comments in theheader files:Two of these apply to individual enumeration values:  /*< skip >*/ This enumeration value should be skipped.    /*< nick=NICK >*/ The nickname for this value should NICK instead of the normally guessed value. For instance:  typedef enum {    GTK_TARGET_SAME_APP = 1 << 0,    /*< nick=same-app >*/    GTK_TARGET_SAME_WIDGET = 1 << 1  /*< nick=same-widget >*/  } GtkTargetFlags; makes the nicks "same-app" and "same-widget", instead of "app" and "widget" that would normally be used.The other two apply to entire enumeration declarations.   /*< prefix=PREFIX >*/  Specifies the prefix to be removed from the enumeration  values to generate nicknames.  /*< flags >*/ Specifies that this enumeration is used as a bitfield. (makenums.pl normally guesses this from the presence of values  with << operators). For instance:  typedef enum                    /*< flags >*/  {    GDK_IM_PREEDIT_AREA      = 0x0001,     GDK_IM_PREEDIT_CALLBACKS = 0x0002,     [ ... ] } GdkIMStyle;makeenums.pl can be run into two modes: 1) Generate the gtktypebuiltins_eval.c file (this    contains arrays holding the mapping of     string <=> enumeration value) 2) Generate the enumeration portion of gtk.defs.The enumearation portion is added to the boxed type declarations in gtk-boxed.defs to create gtk.defs.The makeetypes.awk program takes the gtk.defs file, andfrom that generates various files depending on thethird parameter passed to it: macros: gtktypebuiltins.h variables: gtktypebuiltins_vars.c entries: gtktypebuiltins_ids.cGTK+ - marshallers==================The files gtkmarshal.c and gtkmarshal.h include declarationsand definitions for the marshallers needed inside ofGTK+. The marshallers to be generated are listed inthe file gtkmashal.list, which is processedby genmarshal.pl.The format of this file is a list of lines:  <retval-type>:<arg1-type>,<arg2-type>,<arg3-type> e.g.:  BOOL:POINTER,STRING,STRING,POINTERA marshaller is generated for each line in the file.The possible types are: NONE BOOL CHAR INT UINT LONG ULONG FLOAT DOUBLE STRING ENUM FLAGS BOXED POINTER OBJECT FOREIGN    (gpointer data, GtkDestroyNotify notify) C_CALLBACK (GtkFunction func, gpointer func_data) SIGNAL     (GtkSignalFunc f, gpointer data) ARGS       (gint n_args, GtkArg *args) CALLBACK   (GtkCallBackMarshal marshall,             gpointer data,	     GtkDestroyNotify Notify)Some of these types map to multiple return values - theseare marked above with the return types in parantheses.NOTES=====When autogenerating GTK+ files, the autogeneratedfiles are often rebuild resulting in the same result.To prevent unecessary rebuilds of the entire directory, some filesthat multiple other source files depend on are not actually writtento directly.  Instead, an intermediate file is written, whichis then compared to the old file, and only if it is differentis it copied into the final location.

⌨️ 快捷键说明

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