GIRL信号
1。预定义信号
在GIRL源程序和C/C++应用程序中可以直接引用预定义信号。GIRL提供预定义信号的目的是在特定
时刻有GIRL系统自动向构件发送的信号,以完成预定的工作。
GIRL预定义的信号有:
- sig_create:无类型信号。该信号在构件实例被创建,但构件内容尚未被设置的时候发送给构件实例。
- sig_setup:无类型信号。该信号在构件实例创建之后,系统对构件实例的初始化完成之后,构件显示
之前发送给构件实例。
- sig_destroy:无类型信号。该信号在构件实例隐藏之后,被删除之前发送给构件实例。
- sig_accel:整数类型信号,整数表示加速键值。该信号在收到于本构件相关的加速键的时候发送给
构件实例。
- sig_KeyEvent:事件数据类型信号。是X Window事件信号,在X Window给出XKeyEvent事件时发送。
- sig_ButtonEvent:事件数据类型信号。是X Window事件信号,在X Window给出XButtonEvent事件时
发送。
- sig_MotionEvent:事件数据类型信号。是X Window事件信号,在X Window给出XMotionEvent事件时
发送。
- sig_CrossingEvent:事件数据类型信号。是X Window事件信号,在X Window给出XCrossingEvent
事件时发送。
- sig_FocusEvent:事件数据类型信号。是X Window事件信号,在X Window给出XFocusEvent事件时
发送。
- sig_ExposeEvent:事件数据类型信号。是X Window事件信号,在X Window给出XExposeEvent事件
时发送。
- sig_GraphicsEvent:事件数据类型信号。是X Window事件信号,在X Window给出XGraphicsEvent
事件时发送。
- sig_NoExposeEvent:事件数据类型信号。是X Window事件信号,在X Window给出XNoExposeEvent
事件时发送。
- sig_VisibilityEvent:事件数据类型信号。是X Window事件信号,在X Window给出XVisibilityEvent
事件时发送。
- sig_CreateWindowEvent:事件数据类型信号。是X Window事件信号,在X Window给出XCreateWindowEvent
事件时发送。
- sig_DestroyWindowEvent:事件数据类型信号。是X Window事件信号,在X Window给出XDestroyWindowEvent
事件时发送。
- sig_UnmapEvent:事件数据类型信号。是X Window事件信号,在X Window给出XUnmapEvent事件时
发送。
- sig_MapEvent:事件数据类型信号。是X Window事件信号,在X Window给出XMapEvent事件时发送。
- sig_ReparentEvent:事件数据类型信号。是X Window事件信号,在X Window给出XReparentEvent
事件时发送。
- sig_ConfigureEvent:事件数据类型信号。是X Window事件信号,在X Window给出XConfigurateEvent
事件时发送。
- sig_GravityEvent:事件数据类型信号。是X Window事件信号,在X Window给出XGravityEvent
事件时发送。
- sig_ResizeRequestEvent:事件数据类型信号。是X Window事件信号,在X Window给出XResizeRequestEvent
事件时发送。
- sig_ConfigureRequestEvent:事件数据类型信号。是X Window事件信号,在X Window给出XConfigureRequestEvent
事件时发送。
- sig_CirculateEvent:事件数据类型信号。是X Window事件信号,在X Window给出XCirculateEvent
事件时发送。
- sig_CirculateRequestEvent:事件数据类型信号。是X Window事件信号,在X Window给出XCirculateRequestEvent
事件时发送。
- sig_PropertyEvent:事件数据类型信号。是X Window事件信号,在X Window给出XPropertyEven
t事件时发送。
- sig_SelectionClearEvent:事件数据类型信号。是X Window事件信号,在X Window给出XSelectionClearEvent
事件时发送。
- sig_SelectionRequestEvent:事件数据类型信号。是X Window事件信号,在X Window给出XSelectionRequestEvent
事件时发送。
- sig_SelectionEvent:事件数据类型信号。是X Window事件信号,在X Window给出XSelectionEvent
事件时发送。
- sig_ColormapEvent:事件数据类型信号。是X Window事件信号,在X Window给出XColormapEvent
事件时发送。
- sig_ClientEvent:事件数据类型信号。是X Window事件信号,在X Window给出XClientEvent
事件时发送。
- sig_MappingEvent:事件数据类型信号。是X Window事件信号,在X Window给出XMappingEvent
事件时发送。
- sig_ErrorEvent:事件数据类型信号。是X Window事件信号,在X Window给出XErrorEvent事件
时发送。
- sig_KeymapEvent:事件数据类型信号。是X Window事件信号,在X Window给出XKeymapEvent
事件时发送。
2。自定义信号
自定义信号只能在GIRL源文件中定义。只能定义而不能说明信号。同一个信号可以在多个GIRL模块中
被定义,但信号对应的数据类型必须完全相同,否则就会在连接时导致错误。
在GIRL源文件中定义信号的形式如下:
- 信号标识符=signal(信号数据类型标识符)
- 信号标识符=signal
上述两种形式分别定义了有类型信号和无类型信号。它们通常出现在头文件中以便于各个模块引用。
GIRL系统不会自动发送自定义信号,构件可以通过调用以下函数发送自定义信号:
上述函数还可以被用于发送预定义信号。
3。信号的传播机制
预定义信号和自定义信号在传播机制上没有任何区别。
如果收到信号构件的任何一个信号接口都没有连接到给出信号,则给出信号将传递给接收构件的父构件(窗口
关系)。直到找到一个父构件与给出信号进行了连接。如果直到主窗口构件给出信号仍然没有被处理,则判断该
信号是否是加速键。如果是加速键,则给出被发送给与加速键连接的构件。否则该信号就被抛弃(或发送给窗口
管理器)。