🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.xwindow
Article #49

�� �ףɣΣģϣף� ϵͳʹ��ָ��--(15)

#49
From: �����ǡ�����������
Date: Fri, 02 Jan 1998 00:00
731 lines
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��������ļ��̡�

=====

--
�� ��Դ:���������� cs3.xmu.edu.cn��[FROM: 210.34.6.201]
Technical Details
Message-ID: <3MN4fb$Wna@cs3.xmu.edu.cn>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail

Show 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