Article View: cn.bbs.comp.xwindow
Article #49�� �ףɣΣģϣף� ϵͳʹ��ָ��--(15)
From: �����ǡ�����������
Date: Fri, 02 Jan 1998 00:00
Date: Fri, 02 Jan 1998 00:00
731 lines
49463 bytes
49463 bytes
�ڣ����� ����Ӧ�ó�ʽ��Ԥ��ѡ�� -- Resources
�����ģس�ʽ����������ѡ��Ա�����ָ��ǰ���ͱ�������ɫ������
����ʼλ�õȵȡ������������б�Ҫ�ģ���Ϊ������ڳ�ʽ��Ӳ�Թ涨ʹ��ij
�����ͣ�����ִ�д˳�ʽ�Ļ����ϲ�û���������ͣ���ʹ�ó�ʽ��ִ�У�
�����㲻ӦӲ�Թ涨ijЩ����
����ÿ��ִ�г�ʽʱ��̫��������������ָ��������Ҫ��ѡ���Ϊ��̫����
���ܵ�����ˣ����ԣ��ṩ��һ������resources ��һ���Խṹ����������Ԥ
����趨��Ӧ�ó�ʽ�������Ķ�ָ��ҳʱ��������Ѿ�ע�Ҫ�����resources
����ȴ��֪��ʲ����resources �����ǽ��ڴ˽��͡�
����ϵͳ�м������еĶ��ƶ����������õ�resources ����ʵ����Ϊһ
��Ӧ�ó�ʽ��ѡ���ÿһ��ѡ����趨��Ҫ�õ�resources ���Ӽ���Ŀ��
��ɫ�ʻ����ͣ���������ļ��̻���������ʾ����ι�������dz��ķ��㣬
������ϵͳ�е������õõ���
������������ʲ����resources ���������������η�չ����Ѷ��������
���������� Toolkit�����ߣ�������ȫ��ʹ�õ���resources �Ľṹ��Ȼ��
������һЩresources ������ϸ�ڣ��������趨���ǣ��������������趨��Щ
��̬��
�����൱����һ�£��м����µĹ���ӽ�����һ��ʼ����Щ���ѣ�����
��̫���ģ�ԭ����resources �ṹ�dz��ؼ�ֻ�ǵ�һ�ۿ��������������
"ħ�����" ���ѣ�Ҳ����Ӧ���Ⱥܿ�����һ�飬Ȼ������ϸ���ض�һ�顣
15.1 ʲ����resources ��
�ڣص������У���resources �����������塣��һ�����൱�ͽģ���ָ
��server���������Ӧ�ó�ʽʹ�õĶ������Ӵ����αꡢ���͵Ⱦ������
�����塣
��һ������Ҳ����ͨ������ָ��ҳ�г�������resources �������壺����
һ�ִ���Ԥ���趨�����������ֵ��Ӧ�ó�ʽ�ķ������ڱ��������Ǿ����
���۴�������֮resources ���ڽ�������ϵͳ��ι���ǰ���Ȼع�һ�£ص���
�ڰ汾�����������Щ���ܵģ���Ϊ���еĽṹ�ɴ˲���
15.1.1 ��Ԥ�衱�ı���
�ڣؽ���İ汾��������Ӵ�������ɫ���Ӵ��߽����ɫ��Ӧ�ó�ʽ��ʹ
�õ�����������Ŀ����������趨��Ԥ��ֵ��
Ԥ��ֵ���趨��ʽ��ֱ�ӣ���ֻ��ָ��һ���Ӵ������Ժ����Ԥ��ֵ�����磺
��������.Border : red
�⼴���е��Ӵ���Ϊ��ɫ�ıߣ���������������������趨�ߵ���ɫ������Ҳ
���ѳ�ʽ����Ʒ�������֮ǰ����ֻ�б�ָ��ij�ʽ�Ż�ı䣬��������
������
xclock.Border��blue
����ǰ�Ĺ������һ�������Ϊ��Ԥ�������Ӵ���Ϊ��ɫ�ıߣ�ֻ��xclock
���Ӵ�Ϊ��ɫ�ıߡ�
ÿ�����趨Ԥ��ֵ����ʽ���Զ�ȡ�ø�ֵ�����������ÿ�ξ�ָ�����ѡ
�������������ʺ���Ĺ���ϰ����ʹ�����ͣ���������Ҫ�ý�С�������Ի�
�ø�����Ѷ��ʾ�������ýϴ�������Ա��Ķ���������Ϊ�ض���Ӧ�ó�ʽѡ
����ɫ������Զ���Ӧ�ó�ʽ����ʼλ�ã�����������������һЩ��ʼө
Ļ�IJ��ã���Ϊ����Ԥ��ֵ�����͡�ɫ�ʵȣ�ʵ���Ͼ�ȷ������Ϊ��resources��
�����ԡ�resources ��������������Ϊ��Ԥ��ֵ�趨(default setting) ��
���趨Ԥ��ѡ��(setting default options) ����
15.1.2 Resources ������Ѷ��Ӧ�ó�ʽ
����صķ�չ��Ӧ�ó�ʽҲ��֮��������Ҫ��һ����ʩ���ݴ�������Ѷ��Ӧ
�ó�ʽ�Զ��ƻ�ָ�����ǵ���Ϊ������ֻ���й�ɫ�ʺ����͵���Ѷ���ѣ�
��������Ը��� xbiff����ż���Ƶ�ʣ����� xterm�Ĺ��ܼ�(function-key)
12Ϊ����ijһ�ض����ִ������� xedit�������������λ����а�ť���ѡ��Ŀ
ǰ��α��ĵȵȡ�
�����أ�resource��Ԥ����ʩ����һ����չ������ֱ��Ŀǰ��춴���
�κ���Ѷ��һ��Ӧ�ó�ʽ����һ��һ���ԵĽṹ������������ִ�һ���ָ��
��Ѷ��Ӧ�ó�ʽ�����ڲ���������������ִ�����һ������ť����ƣ���һ����
ɫ������Ӧ�ó�ʽ�����һ�����ܺ� "resources"�����ָ���ġ�
����ṹҲ�ظ��������Ա���������ȷ��ָ���ںδ�Ӧ��Ԥ��ֵ����
��ǰ����ֻ��ָ�����еij�ʽ��ijһ���ض��ij�ʽ�����ڵ�ϵͳ������趨��
Ԥ��ֵ�磺���ն˻��Ӵ���ѡ��ѡ����������Ӵ��ı�ǩ��������������
xterm��������б༭���Ӵ���ť���еĹ��ܰ�ť����
�� Toolkit, ʹ��resources��ʹ�����кܴ�İ����Բ���������Ӧ�õ�
��ȷ�ȡ�����Ҫ���˽� Toolkit��ʲ�ᣬ�����ʵ���ʹ��resource �ṹ����
�ǽ�����һ�����ۡ�
15.2 �� Toolkit
������ǰ�����ز�������ʹ���߽��棬��ֻ���ṩһЩ�ṹ����Ӧ��
��ʽ���������ϳ��κ���ʽ�Ľ��档���������Ƿdz��Ϻ������ -- ��ʹ��
ϵͳӵ��һ��һ����Ŀ�ĵĹ�����û��ʹ���ϵ����ƣ���������ĽǶ�������
���кܴ��ȱ�㣺
����һ��ʹ���߶��ԣ���ͬ��Ӧ�ó�ʽ�в�ͬ�Ľ��棬��ֻ����ѧ�Ѽǣ�
��Ӧ�ó�ʽ��ƽ˳�� (smoothly) �Э�����������������Ӵ�֮��
��������õ�����һȺ����ġ������ij�ʽ������һ��һ�µġ�
�������ϵͳ��
���ӳ�ʽ���ʦ����������ζ����Ӵ�ϵͳ�ϵ�ÿһ���¾����ͷ����
ѡ�����?����ʱ�ӡ�����ť�ȵȶ�����һһ��������ڵ�һ�IJ�Ʒ��
��ͬ�ij�ʽʦ����һ�����в�ͬ���£���ᵼ�������ݵ������
Ϊ�˿˷����������⣬Toolkit(����)�ķ�ʽӦ�˶���
��ijЩ��Χ��Toolkit �����ʹ���߽������ʽ������������Σ���ᾡ
����������Ӱ�죬����ʹ���߽��淢չ���и��ѡ��Ŀ����ԣ�Toolkit ����
Ϊ�������ݣ�
1�� һ���Ľṹ�ͺ������Խ���ʹ���߽����Ԫ�أ�����ΪToolkit
Intrinsics���ڲ��Ĺ��ߣ���������ʲ����Ľ��棬�κι��߾���ʹ
�õ����������ǿ���Toolkit Intrinsics��Ϊ���̶��ġ���Ҳ��
�������ġ�
2�� һ���ṩ�ض���ʹ���߽��棨��������ʽ����Ԫ�أ���ЩԪ�ر���
Ϊ widgets (С����)����Toolkit �ĵڶ����ݳ�Ϊ widget set (С
������)��������Ϊ���ǿ����滻�ģ���ͬ�Ľ����ṩ��ͬ��Widget
Sets ���������Ƕ�ʹ��Intrinsics��
��������С�ڸ���ϸ��˵�����������ݡ�
15.2.1 Toolkit �ĵ�һ������ -- Intrinsics
Intrinsics�����ʵ���Ϊwidgets�����ṩ�����н���������ͻٻ�widget
�������ʩ�������ϣ�һ��widget��һ�������ض�������ʹ���߽����Ԫ�أ�ʵ��
��һ��widget�ǣ��Ӵ����Ϲ�������Ծ���������������Ķ�����Ҳ����
˵������ζ�ʹ��������Ӧ��
Ϊ�˰������widget�Ĺ�����ǽ���һ���������ע�⣡���Dz���
��Intrinsics��һ���ݣ��������ǽ����һС�����۵�һ���ض���widget���
һ���ݣ��ڴ����Ŀ��ֻ��Ϊ�˷��㡣
Command Widget������widget��������һ����өĻ�Ϻ���һЩ���ֵij���
�Ρ���ť����Ҳ����һ��С�Ӵ�������ָ���������ť֮��ʱ����ı����
�����ȣ���һ������ť�����widget������ʱ��һ������ʽʦָ�������峣
ʽ(routine) ��ᱻִ�С�
���Ѿ�ʹ�ù�command widget�ü����ˣ���xedit ������ѡ������xman��
��ѡ���Ӵ���
Scrollbar Widget���?��widget����ͬ��ģ���Ҳ�Ѿ�ʹ�ù��˺ü��Σ�
��xterm ��xedit �о?���ģ���xman�о?���ĺ�Ŀ¼�С�
Intrinsic �ṩ�˻�Ľṹ���κ�һ���ṩ����Ľϸ߽��������Ҫʹ
�õ������ṩ�����µĹ��ܣ�
�������ͻٻ�widget��
����һȺwidget����һ����Ԫ(unit)�����?
������geometry��Ҳ����˵λ�ã���������߽ף�Ҳ����Ӧ�ó�ʽ�� -geometry
ѡ�����ͽף�����Ӧ�ó�ʽ�õ���sub-widget��λ�ã�����ѡ����ť
��λ�ã�����
�����ա��¼�����������һ��widget��, ������ť������ʱ�����ʵ��ij�
�����Ӵ����ع� (exposure)�����ռ��̵����롣
�������resources ��Ԥ���ÿһ��widget��
15.2.2 Toolkit �ĵڶ����� -- Widget Sets
������˵��Intrinsicsֻ�ṩ�㽨��һ��ʹ���߽���ĹǼܣ�Widget Set��
ʵ�ʵ��ṩ��һ���ȶ��Ľ��棬�Ҳ�ͬ��widget���ṩ��ͬ��ʽ�Ľ��棬��Ȼ
���κΡ�Χ��������Ԥ������widget����һ����ϣ��һ��ϵͳ�̶���
һ���Ե�widget set�ϡ�
�ڣ� core ����ֻ��һ��widget set�ṩ������������£�
Athena Widget Set ���ŵ���widget set��
�ݵ�MIT core���Ӧ�ó�ʽʹ��Toolkit ��Athena Widget Set.����
�Ƶ���Դ�ǣ���MIT ��Athena�ƻ��������������Щwidget�Ķ������������
��Ӧ�ó�ʽ�ù�
������ǰ�������Command Widget��Scrollbar Widget�����Athena Widget
Set ������ݰ�
Label Widget�������������� -- ���Ӵ�����ʾ��һ���ִ���ͼ������
����xman��ѡ��ѡ���еġ�Manual Browser���ı��⣩
Text Widget �������ڵڣ���������xedit ʱ���ġ�building block����
���ṩ������ʹ�õı༭���ܡ�
Viewport Widget ��һ�����о?�����Ӵ���������Ծ?�Ӳ�(viewport)
�����ݣ�xmanʹ������֮һ������ʾָ��ҳ֮Ŀ¼��
Box Widget������һ��ָ����С�ĺй���sub-widget�IJ��ã������� sub-
widget����������һ������xmh ��Reply ��Forward ����
��ť������Box Widget���á�
VPaned Widget �������sub-widget�������DZ����ڴ�ֱ�ѵ��У�����ʾ��
������sub-widget֮��ķָ����ϵġ����֡�(grip)������
����ѡ���Ե�����ı�һ��widget�Ĵ�С��������һ����
�ص�widget��С�����仯������������ͼ10-12 ������
xman���Ӵ�����Ҫ��Ԫ���DZ�VPaned Widget ����ġ�
Form Widget ����һ�ֹ���һ��sub-widget�ķ���������λ�õ�ѡ���и��
�ĵ��ԡ�
List Widget �������һȺ�ִ��������ǰ����������У��κε��ִ���
������������Ķ�����ѡ���ִ���תΪ�����ȣ��Һ���
һ��ָ���ĺ���������ض��Ķ�����xmanʹ��һ��List
Widget��������һ��ָ���½���ָ��ҳ�ı��С�
������������һ��������widget�Ի������Ҫ���ܣ�������Ȼ��xmanΪ
��xman��ָ��ҳ֮Ŀ¼����ĵͽ���list widget ������Ŀ¼ҳ��Ƶı���
�Լ��������������viewport widget ����ʹ���߾?�������������λ��
������ָ��ҳ��widget�ۼ���һ�������ǰ���һ��VPaned Widget �У���
����ʵ������һ���ײ�״(hierarchy) ��widget��ÿһ������������ר��
���ܣ������е�Ӧ�ó�ʽ��ʹ�õ�Toolkit ���������widget�ṹ��
15.2.3 widget����ƺ���� (Names and Classes)
resource��Ԥ��ṹ����widget��ƵĻ��¹������������ǽ��Զ����
�Ĵ�����һ���Ź۷�ʽ�������Toolkit �Ĺ۲죬���ص���ǰ���۵�resource��
Toolkit �ṩһ����������ʽϵͳ(object-oriented programming system)
���ʽ���ʦ��������������(class) ��Ҳ����ָ����ʱ�������������
�β����ȵȵ�������ʡ���Щ�������widget��ϵͳ��ȷ�����Ǻ������widget
�Լ�����ݵ�Ӧ�������Զ�����ȷ�ķ�ʽ��̸��
��һ����ʽ���ʦ����һ���ض�����widget�����Ϊ�����ij�Ա
(instance)��������˵��һ�������һ������Ķ��壬��һ����Ա��ijЩ�ط�
ʵ�ʵط����Щ���塣������widget�б���һ����ƣ��ɳ�ʽ���ʦָ������
���磺��ʽ���ʵ����ʽΪ��Creat a widget, of the class Box Widget,
and call it topBox ������ijЩ������widget��������Ҳ�ᱻ�ο�������
����˵��һ��widget��һ����Ա��ƺ������ƣ����˵��һ����ƺ�һ
�����
15.3 Resources ������ -- Resource������
�����������Լ�һ��������ͼ��resource����ʲ�����Ҫ�ܴ�����Ѷ��
һ��Ӧ�ó�ʽ����������ijЩ��ʽ�ı����һ���Զ��������磬���Ӵ��ı�
�Էۺ�ɫȡ��ԭ���ĺ�ɫ����ʹ��һЩ�ر�����͡�
���������ķ�ʽ������Щ�������趨һ���������resource������
�Ͽ⣬ÿһ��resource�����һ��Ӧ�ó�ʽ��ijЩ�����������趨һ��ֵ��
������統Ԥ��ֵ��Ҳ����˵��һ����� (spec) ����ʽΪ��
characteristic : value �����磺ֵ��
��Ӧ�ó�ʽ��ʼִ��ʱ�������ѯ�����Ͽ��Ƿ����κ��������Լ���Ҫ
���趨����ʹ����ص�ֵ�����磺
xclock*foreground:blue
��Ϊ��ֵblue�趨������xclock*foreground �����Ծ���һ����ʽ������
�Ƿ��������Ͽ���֮����ϵͳ���ݣ�������Resource��������
ResourceԤ��ֵ�ܱ�Ӧ�õ�һ��Ӧ�ó�ʽ�е������ͨ����widget������
��ͬ��������ʽһ�㣬����������Զ�һ���ض������Ӵ���ijһ�����ť
�ı���ɫ�趨Ԥ��ֵ������ֻ���������Ӧ�ó�ʽ���Ӵ���������Ϊ���ܴ�
����һ�㣬������ҪһЩ�Ͻ������������趨���Ӧ��Ԥ��ֵ��
15.3.1 ָ��һ��ResourceԤ��Ӧ�õ��δ�
Resource�������������ֵ(characteristic)����һ��Ԥ�����Ƿ���Ӧ
�����ر����������ǿɽ�����ֵ��Ϊ������ݡ�
1. �������趨Ԥ��ֵ�ij�ʽ���ԣ����磺����ɫ�����͵ȡ�
�����ָ������ (attribute) -- �⼴���趨ʲ��ֵ�����һ��
resource�Ĺ�� ��˵�����ֵ��������ġ�
ע�⣺�ڣص������ֲ��У�����ͨ������Ϊ��resource����
��resource name��,��Resource��Ҳͨ���������������dz�Ϊ����ֵ��
����ֵ��������������ָ��Ԥ��ֵ�ںδ�ʹ�á�����ֻ���ض��ij�ʽ
ʹ�û����ض���̬������������߾��ǡ�
2. Ӧ�õ��������Ӧ�ó�ʽ����ƣ������ʡ������Ӧ�õ�
���е�Ӧ�ó�ʽ��
3. һ��������(restrictions)��������������������ʱ���Ż��
��ָ����Ӧ�á���ͨ��Ϊwidget����ƣ������ָ�����㿪ʼ�κ�
��Ŀ���������磺
xclock*foreground:blue
xedit*row1*Command*Cursor:Cntr_ptr
��һ������û���κ������ڶ���������������(row1 ��Command)
���������������
[<program name>] [<restrictions>] <attribute>
��������ķָ���ŷֿ������ǽ������˵���ָ���ŵ�ϸ�ڣ�����
���ȿ�һЩ����ֵ�ġ���Ϊ�˼���������ڡ�����ֻ�õ���ɫ
���ԣ���
һЩ˵��Resource���ġ���
��ָ�����κεط��е�ǰ��ɫԤ��ֵΪ��ɫ��
*foreground:yellow
����δָ���κ�Ӧ�ó�ʽ����ƣ����Դ˹���Ӧ�õ����е�Ӧ�ó�ʽ��
����Ҳδָ���κ����ƣ����Զ�һ��Ӧ�ó�ʽ���κεط������á���"*" ���
��ž������Ƿ����ἰ������ָ��ŵ�һ�֣�
��ָ��ֻ����xclockӦ�ó�ʽ�е�ǰ��ɫԤ��ֵΪ�ۺ�ɫ��
xclock*foreground:pink
�����������xclock���ã�����ֻҪ��Ŀ�е����Խ���
��foreground���ľ����á�
�����ڣ����һ���ض�Ӧ�ó�ʽ���ض��ط���
xman*topBox*foreground:blue
�����������xman���ã�����ֻ����xman��ѡ��ѡ������ΪtopBox��
������á���Ӧ�������xman�����н�topBox���������ʵ����ֻ��һ��
topBox�����
���ڵڶ�������ۺ�ɫ�������ǰ���Ӧ�ó�ʽ��ƣ����������κ���
�ƣ��������Ƿ�������
*command*foreground:green
Ҳ����˵������ָ�����κ�Ӧ�ó�ʽ��������Ϊcommand ��ǰ��ɫԤ
��ֵΪ��ɫ��
15.3.2 ��������һ�㻯���˵��
ǰ��������˵�������Ƕ�Ԥ��ֵ�ṹ����Ĵݹ��ܣ���������һ����
�ƣ������֪��Ӧ�ó�ʽ���ʦ�����ÿһ��Ӧ�ó�ʽ�е�widget��ƣ���
Щ��Ѷ��ʱ���ڳ�ʽ��ָ��ҳ�е�һ���ݣ���ͨ����ʡ�ԡ�
������Σ�Resource��������һ�����������������ķ�ʽ������������
�в��ۺδ��õ�һ��Ӧ�ó�ʽ��ơ����ƻ�������ƣ�����������(class
name)��������
Ӧ�ó�ʽ������(Application class name)��������ʽ����̬������
xterm ������Term Emul ���ն˻�ģ�����������xedit ��emacs
��Editor���༭��������𡣣������xterm ��xterm �����xedit
��xedit �������ʧȥ���塣��
�������� (Restriction class name)����������һ�������widget
��ƣ������ڴ˵��������widget�����ơ�
���������� (Attribute class name) ����������ͬwidgetһ���һ��
��̬�����ij�Ա(instance)��
��ͳ�ϣ����е���������һ����д����ĸ��ͷ��������ΪСд��ĸ����
�����ԡ�foreground������춡�Foreground��������ǽ��Ľ��������
ȥ��������Ҫ����ָ����Ŀ�������ơ����ȣ����ǽ���һЩ���ġ�����
���õ�������һ����������ͳ�Ա�ġ���
���������Ƶ�Resource���˵������
��Щ����չʾ���������Resource�����ʹ����𣬶��ǰ���Ը�һ����
�ķ�ʽ�趨Ԥ��ֵ������Ҳ�������������ʹ��һ��������趨һ��Ԥ��ֵ��
�ϴ��Χ��������ͽ�������Ա��������Ծܾ�Ԥ��ֵ��ijЩ�����������
����
��ָ�����κεط�ǰ��ɫ��Ԥ��ֵΪ��ɫ
*Foreground:yellow
����������ǰ����������������Ƕ�Foreground���ָ��Ԥ��ֵ����
�����֮������Ҫ������Ϊ�������������Foreground�����ԣ���ij�Ա���
���ǽ�foreground�����磬xclock��ָ�����ɫ�������Foreground��������
����������ij�Ա��Ʋ���foreground���hand��
�����ǿ��������ֽṹ�������������ļ������������£�������ǿ�Ҷ�
�ȵ�����趨Ԥ��ֵ���ֱ���������
xmh*Command*Foreground:khaki ������ɫ��
xmh*Command*Background:maroon ����ɫ��
��˽�ʹ���е�����widget(command widget)������Ŀ����������ɫ��
�������еı���widget(text widget) �Ӵ��趨һ��Ԥ��ֵ������xedit
�Ӵ����⣺
*Text*Background:pink
xedit*Text*Background:navy
��������ԭ����ͬ��
*Command*Backgrond:green
xman*Command*Backgrond:white
xman*manualBrowser*Command*Background:orange
��η��ֳ�Ա��������
������ѣ���Ϊû�м�һ�µ�widget��ơ�������Եȵȵ��ļ���
����ֻ���г�ÿһ����õ���Դ��������ʾ����λ�ø�����Ѷ��
Ӧ�ó�ʽ��Ա���(Application instance name) ���������--�������
ִ�е�Ӧ�ó�ʽ��ơ����˳�ʽʹ��Toolkit ����������������ѡ��-name
string��ȷ��ָ��һ����ͬ��Ӧ�ó�ʽ��ƣ�Ϊ���������������Ϊ��������
��һӦ�ó�ʽ�ж��峬��һ���Ԥ��ֵ���������ʹ��-name ������л�����
�磬����Զ���һ��xterm ����Ԥ��ֵ��������Ϊdemo��Ӧ�ó�ʽ����һ��
�ܴ���Ӵ��ߴ�ʹ�ߴ�����ͣ�������ã�
xterm -name demo
����һ������չʾ���ѧ��xterm��
Ӧ�ó�ʽ�����ƣ�Application class name������û���ļ�˵�������
����Ѱ��ķ���������Ӧ�ó�ʽ�����Ӵ���ʹ��xprop ������ (property)����
��WM_CLASS�����Ӧ�ó�ʽ��Ա��������ƣ����磬��xterm ���õ���
WM_CLASS(STRING) = "xterm","XTerm"
Restriction/Object/Widget ��Ա��ƣ���ʽ��ָ��ҳ���г�������Ҫ��
ȡ�������ƣ����磺xman�г�topBox��help��manualBrowser �ȵȣ����ָ
��ҳ��δ�����Ա��ƣ���Ψһ�ķ����������ܣ�ֱ�ӿ����ǵ�ԭʼ��ʽ��
�������ַ���ͨ�����������⣩
Restriction/Object/Widget �����ƣ�������Щ���ݵ�ָ��ҳ���
��������Ȥ�������𣬼�ʹû�еĻ����ݵ����Ҳ�DZ������е�
widget�������ϵͳ��ʹ������ʱ����ͨ���ܲ³����������һ����𡣣���
�磺���δ����֪scrollbar �ij�Ա��ƣ�����99.9% �Ļ�������Scrollbar
��widget (��Ա)����
������ƺ���𣺴�����ָ��ҳ���г���ƣ�ͨ��Ҳ�������xclock
��ָ��ҳ���Ƿdz�����ġ���
������Σ�����Toolkit д�ij�ʽͨ��ʹ�ñ���widget��������Բ���
����ָ��ҳ���г�����ͨ����һ��ȫ���ݵ�������ɣ�Ҫ�ҵ���Щ���ԣ�
�������Toolkit �ļ���Ѱ�ң�
�� "X Toolkit Intrinsics" �ֲ��еĸ�¼E �г����б���"resource"
��Ҳ�������ԣ���ƺ���𡣳�Ա�����Ŀ���������ƣ�
#define XtNborderWidth "borderWidth"
���е���ƾ���XtN ��ͷ������������������Сд��ĸ��ͷ������
����������XtC ��ͷ��������Ŀ��������
#define XtCBorderWidth "BorderWidth"
��˫����еı�����ƣ�Ҳ����˵��borderWidth �dz�Ա��ƣ�
BorderWidth �������ơ�
�� �鿴"X Toolkit Athena Widgets"�ֲ��2.3 ��("Common Arguments
in the Widget Argument list")���ɿ���������widgetʹ�õ���
resource��������ơ���̬��Ԥ��ֵ��һ��������������Ƶ�
��������������Ҳ������XtN ��ͷ��XtN ֮����Ϊ������ơ�
�� �鿴"X Toolkit Athena Widgets"�ֲ��ж�widget��������ÿһ����
�г�����ʹ�õ�"resource"����������ͬ��
�� ������Ͼ��в�ͨʱ������Բ鿴 widget ��ԭʼ��ʽ (source code),
resources ���õ��IJ������� XtResource ���Ͻṹ�С����磬Athena
Scrollbar Widget�ij�ʽ�ڰ�
static XtResource resource[]=
{XtNwidth, XtCWidth,...},
{XtNheight, XtCHeight,...}.
��¼���С��ļ�ָ���л����������ҵ������������Ŀ��ԭʼ��ʽ��
ע�⣺Resource Manager���趨�Ĺ��(spec)�������ƣ����ܽ��ܣ������
�ԡ�Ԫ����ƻ���������ȶ�����嵥�������Ĺ����ܺ�
�����壬��������⣬��������Ͽ��У�������ʵ��һ��resource
����ܲ�����ζ���Ѿ��õ���ȷ�Ĺ�����ȷ�����Ի������Ӧ
�ó�ʽ��������Σ����һ����Ҫ����;Ϊ������δ���趨ǰ�����
�趨��Ԥ��ֵ��
15.3.3 Resource���֮�ָ��ŸŹ�
��������Ǻ� (*)���� (.)���ָ�resource����Ԫ�أ��ǺűȽ�ͨ��
һЩ��������ָ����Щ��ϡ�Χ�İ�������硣���ǿ���
xclock*foreground:pink
����ָ��xclock���κζ�����ʹ��foreground���ԣ������ڴˡ����п��Կ���
���Ǻž���ͨ����Ԫ��Ч������������һ�㻯һ�㣺
*Foreground:yellow
���ʺ��κ�Ӧ�ó�ʽ������ֻ�Ƿָ���������ʾÿ�����������һһ��
Ӧ�����Թ��
xman.Manual Browser.Help.background:black
��������������ť������xman���Ӵ��IJ�ͬwidget�������Ƕ������ַ�
��������ȷ����ǰ��������Ҫ����ϸ�Ŀ�һ��Resource Maneger�IJ�����
Resource Manager�������
���磬������˵��һ��Ӧ�ó�ʽ���ѯresourceԤ��������Ͽ⿴�Ƿ�
��ϣ���������������ѯ���������Щ���
Resource��Ӧ�ó�ʽ�еĸ��������ͨ����widget����ʹ�ã��������
��Ӧ�ó�ʽ�϶�hierarchicallyixwidget + hierarchy���ţ�Ȼ�������һ��
widget���������widget���ã����籾���Ӵ�������ѡ���ȵȡ�����Ӧ�ó�ʽ
xeditixwidget ��+ xprognxxedit�еĽײ�ṹ��ͼ15-1��ÿһ��������֮
��������Ϊ�����ƣ���
��������������������������������������������
�� p181 fig 15.1 ��
�� ��
�� ͼ15-1 xedit�����(widget)�Ľײ� ��
��������������������������������������������
��ÿһ�������Ӧ�ó�ʽ���ѯResource���Ͽ�ʱ������봫������ij�
Աȫ������ȫ���Resource Manager����������õ�һȺ���ԣ���������
��һȺ���ԣ������SAVE��ť��Ӧ�ó�ʽָ����
full instance name xedit.vpaned.row1.Save
full class name Xedit.VPaned.Box.Command
attribute instance-names borderWidth,cursor,font,label,...
attribute class-names BorderWidth,Cursor,Font,Label,...
����Resource Manager���ÿһ�������Ͽ��еĹ�����Ƿ��Ӧ�ó�
ʽ���������Ժ�����������������������Ͽ��й��ֵ�IJ��ݻ�
����Ӧ�ó�ʽ��
���������IJ����У��Ǻź;�ŵ����dz���Ҫ������˵�����ǿ���
�뵽Resource Managerֻ���Ե���Ϊ������Ӧ���ִ����������ÿһ������
������ţ��Ǻ�Ҳ�Ƿָ��ţ�����ͬ���������ͨ����Ԫ�ķ�ʽ�����㵽��
����Ŀ�ĵ��֣���춶�ӦΨһ�������������Ͽ��й������Ա����Ӧ��ѯӦ
�ó�ʽ���������ԣ��㲻�ɶ�������ͨ����Ԫ��
��������Կ�����ͬ�Ĺ����ι�����
*foreground:yellow
����Ӧ����κ�Ӧ�ó�ʽ�е��κ��������Ϊ�ǺŶ�Ӧ�����е�Ӧ�ó�ʽ����
�е����������ơ�
*Command.Foreground:violet
Ӧ����κ�Ӧ�ó�ʽ���κ�Command ��̬��Foreground�����κ����ԡ�
xedit.vpaned.row1.Help.background:navy
��һ������Ĺ���ǽ�ֻӰ�쵽�����е������Ƶ����ԡ��������У�
������ʵ���Ǵ�д�ģ�"Help"��һ����Ա��ƣ���������"Command" ����
�������һЩ�dz��ر��������ò�Ҫ�þ�㵱�ָ��ţ��������ǺŴ�
�棬��˿ɼ��ٴ�����Ŀ��ܣ���������дӦ�ó�ʽʱ���Ƚϲ����ܵ��ײ�
�ṹ�ı��Ӱ�졣
�����Ķ�Ӧ�ṹ������Ϊʲ�������������ֵĹ����resource
��������δ���壺�⼴һ�����ֻ�е�Ӧ�ó�ʽ��ѯ���Ͽ�Żḽ��������
Χ������Ҳ�Dz������ -- ����Ӧ��Ӧ����ѯ��
15.3.4 ������Resorce����Ӧ�ľ���(precedence) ����
����������һ���dz����Եķ�����ָ��Ӧ�ó�ʽ��resource����������̫
��ͳ�����µ�һ��Ӧ�ó�ʽ��ѯresources ���Ͽ�ʱ���������ֹ����֮��Ӧ��
��ν���أ�
��˵�����ͬʱ�г���һ������Ӧ����������(specific)һ����
��ʹ�ã�Resource Manager��һ��ľ��ȹ������������Ƿ�һ��������һ��
���塣
��ʹ�þ��Ϊ�ָ��Ž�ʹ���Ǻ�Ϊ���壬���磺*Command.Foreground ��
*Command*Foreground Ϊ���塣
����Ա��ƽ������ƾ��壬���磺*foreground ��*Foreground ���塣
��ָ��һ��Ԫ�ؽ�ʡ������壬���磺xmh*command*foreground��
xmh*foreground���塣
��Ԫ�ؿ�������ߵ��ǺŽϿ����ұߵľ��壬���磺xmh*foreground��
*command*foreground���塣
��Щ�����൱ֱ�ӣ����Ǵݿ�����һ�ַ�����˵���������һ�����
��Ӧ����һ������Ϊ���Ӽ����ߣ���ǰ�߽����߾��塣��
15.3.5 ��Toolkit ��ʽ��Ӧ�ó�ʽResource
ͨ��һ��Ӧ�ó�ʽʹ��Resource Manager�������ʽ�ײ���widget������
Ԥ��ֵ������ʱ��Ҫ�к�widget��ֱ����ص��趨Ԥ��ֵ����ֵ����������
Ϊ�˴ﵽ��㣬Toolkit �ṩ��һ������Application Resource����ʩ��
��ͷ�Toolkit Ԥ������ԭ����ͬ -- Ӧ�ó�ʽ����������ѡ������ԡ�
������Ҳ��ͬ��������ʵ����Щ���Ժ�һ�㳣��Ľײ�û��ʲ�ͬ��
xmanʹ�õ�һ�������ʩ�����������������Ӵ�(help window) ָ����ͬ
�ı��ĵ������Ƿ�����ѡ���Ӵ���ָ��һ����Ҫ���Ӵ�����ʽ����ʱֱ��
����һ��ָ��ҳ�ȡ����鿴ָ��ҳ���ڣ� Default��һ�ڣ������ȷ���г���
�ġ�Ӧ�ó�ʽ�ض���resources ������
15.3.6 Resource��non-toolkit Ӧ�ó�ʽ
�������еij�ʽ��ʹ��Toolkit ����Toolkit �������������ж�һ��Ӧ��
��ʽ��resource���?�ر���Ӧ�ó�ʽ��widget�ṹ�����������������Ľ�
�㣬�����ʵ��ز�ѯResource Manager������non-Toolkit Ӧ�ó�ʽҪ���ʹ
��Resource Manager��
����Ӧ�ó�ʽֻ����ȷ�ز�ѯÿһ��������Ȥ�����ԡ�����������˵��
Resource Manager��resource�����ƣ����Ӧ�ó�ʽ��ʹ���κ�����Ҫ������
��ƣ�ֻҪ��ʽ���ļ�����ʹ���������ںδ������Ǿ���ͬ�����Ӧ�ó�ʽһ
��
xcalc Ӧ�ó�ʽ��һ����ʹ��Toolkit �ij�ʽ������Ҳ����������ʽ��
��resource���
�м�����Ҫע�⣺
��������̬��Ԥ��ֵû�����
����ʽ�����������ƣ�Ҳ����˵����һ����ĸ��д�����������ԣ�����
xcalc ʹ��Background, Foreground, BorderWidth �ȵȡ�
������Сд������Ĺ�Ṥ�������磺���
xcalc.foreground:green
�ᱻxcalc ���ԡ�
����ʹ�����ʽ��������Բ��ǽײ��һ���ݣ�������ʹ���Ǻŵ��ָ��ţ�
���磺
xcalc*Foreground:orange
15.4 Resources ����̬----���ָ��ֵ
ֱ������������Ȼֻ��resource���ġ����ߡ����������ֵ(value)
�IJ��ݣ���ֻ����ɫ����ơ����ڣ���������һ�����Ұ�ߡ���ֵ�IJ��ݣ���
��˵��ֵֻ��һ�����ݵ�Ӧ�ó�ʽ�ı����ִ�����Resource Manager
��ȫ��أ�֮�ᣬӦ�ó�ʽ�Դ�ֵ������Ҫ�����¡���Ȼ����ʵ�ʵIJ����ϣ�
Ӧ�ó�ʽ������ȷ����ijЩ�£���Toolkit ��ȷҲ�����˴������һ���ݵĹ�
����������ɻ��һ�µؽ��档
���Ե�������һ��Resourceֵ������������ʱ��ʵ��������ʹ���������
̬�����ѿ������ǵĴݣ������κεط������resource�����ʹ�����ǣ�
Colours ��ɫ�ʣ��������ѹ㷺��ʹ�ù�����----����������͡�
Fonts �����ͣ�����һ��ķ�����������������resource�����Ҳ
��ʹ��ͨ����Ԫ��ȫ�����磺
*Font: *-courier-medium-r-*-140-*
xterm*Font: 8*13
xterm*boldFont: 8*13
demo*font: *-courier-medium-r-*-240-*
demo*boldFont: *-courier-bold-r-*-240-*
�趨һ�������Ե�Ԥ�����ͣ���ʹ��һ�����xterm ָ��һ����ȷ��һ����
�ͣ���һ�Ա�demoӦ�ó�ʽʹ�õĽϴ�����͡�������xterm -name demo��
Numeric quantities���ڲ�ͬ�����Σ����磺
xclock*update:30
xclock*update:60
BorderWidth:10
xlogo*Width:120
xterm*saveLines:200
Boolean values��ָ��"yes" ��"no"�������ʹ��"yes" ��"on"��"true"
��"no"��"off" ��"false" �����磺
xterm*scrollBar:false
xman*bothShown:true
Cursor names��ָ����/usr/include/X11/bitmaps�а�����Ҫ���α��
������ƣ����磺
xterm*pointer Shape:cntr_ptr
ע�⣺���ָ�����α겻�� "�ȵ�" (hot spot)������ܵõ�����Ѷ
Ϣ��
Geometry spec ��ȫ���ݡ�
xcalc*Geometry: 180*240-0-0
xcolock*Geometry: -0+0
�趨һ����������Ԥ��ߴ缰����ʼλ�������½ǣ�ʱ�ӵ���ʼλ�������Ͻǡ�
����ת��(keyboard translations) �������ض����ִ���һ�������
���⣨��ӡ������������ť�����൱�ĸ��ӣ��ڣ����»�ȫ��ר��������
Pixmaps ��Pixmaps ����λԪӳ������(texture) һ���ͼ����λԪӳ
����α�һ���ָ�����ǡ������ڵ�ɫөĻ�Ϲ���ʱ�dz����㣬һ��Ϊ��ͬ��
���widget�趨����������ܿ���Ӧ�ó�ʽ�ںδ�ʹ�õ����ǡ����磺���µ�
resource���
*Pixmap: mensetmanu;
List*backgroundPixmap: scales
Box*backgroundPixmap: cntr_ptr
Command*backgroundPixmap: sipb
�������Ӧ�ó�ʽ������������----��õ����ҵ��Ӵ���ÿһ���ռ���ij
��ͼ������----�����ǵ�ȷ�����ã���ʱ���������ܻ����ã�backgroundPixmap
�����Pixmap�����ԡ�
15.5 ����
���⸴�ӵ�һ���У��㿴����ʲ���ǡ�resource�����������ʹ������ָ
��Ԥ��ֵ�������ֵ��Ӧ�ó�ʽ�����ǹ����Toolkit ������������widget��
�ײ�����˵���������widget�ṹ��Ӧ�ó�ʽ������������趨�ϴ��Χ
��Ԥ��ֵ�����������ǽ������ĸ�����������ָ�����������֪������
�������ƣ�����̸��Resource Manager���������Ͽ��ж�Ӧresource����
�����Ա��ʽ��ѯԤ��ֵ�����ᣬ���Ǵ���˵�����ָ�����ǵ�ֵ��
����רע�resources �ṹ�����Ĺ��������Ǹ����������ϵͳ��ʵ��
ʹ�õ�ʱ���ˡ�����һ�£����Ǹ�������μ��ںδ�����Ԥ����Ҳ����˵
����ι�������ǰ���ġ�resource���Ͽ⡱��������֮�ᣬ���ǽ������ʹ��
resource��������ļ��̡�
=====
--
[m[1;32m�� ��Դ:���������� cs3.xmu.edu.cn��[FROM: 210.34.6.201][m
Technical Details
Message-ID:
<3MN4fb$Wna@cs3.xmu.edu.cn>Path:
arc1-ca.pugleaf.net!unknown!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB X-Google-Thread: f71f9,3fa4e7cacc8d0b5e,start X-Google-Attributes: gidf71f9,public From: wlf.bbs@cs3.xmu.edu.cn (�����ǡ�����������) Subject: �� �ףɣΣģϣף� ϵͳʹ��ָ��--(15) Date: 1998/01/02 Message-ID: <3MN4fb$Wna@cs3.xmu.edu.cn> X-Deja-AN: 312070842 X-Filename: xwindow/M.883751893.A Organization: XMU CS BBS Newsgroups: cn.bbs.comp.xwindow