|
DataMuseum.dkPresents historical artifacts from the history of: Regnecentalen RC-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Regnecentalen RC-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 12685 (0x318d) Types: TextFile Notes: UNIX file Names: »mre_c.uil«
└─⟦a85bd4a7c⟧ Bits:30004636/disk2.imd INTERACTIVE Motif Environment Development System └─⟦a85bd4a7c⟧ UNIX Filesystem └─⟦this⟧ »xt/new/usr/lib/X11/examples/mre/mre_c.uil«
!OSF/Motif: @(#)mre_c.uil 1.1 - 89/08/30 - 12:00:26 !++ ! Motif Demo Resource Editor -- color selection uil file ! included by mre.uil ! ! Created June 89 Mitch Trachtenberg ! ! The color form widget takes advantage of Motif's ! resolution independence mechanism; values provided ! for the form and its children are specified in ! Xm100TH_FONT_UNITS, causing the form to appear at ! the proper size for the font with which MRE is run. !-- value color_h_offset: 200; value color_v_offset: 150; value scales_left_offset: 700; procedure destroy_colorform(); object color_form : XmFormDialog { arguments { XmNdialogTitle = 'Color Selection'; XmNdialogStyle = XmDIALOG_MODELESS; XmNunitType = Xm100TH_FONT_UNITS; XmNx = stagger_x; XmNy = stagger_y; XmNwidth = 5000; XmNheight = 7000; XmNautoUnmanage = false; XmNresizable = true; XmNrubberPositioning = true; XmNresizePolicy = XmRESIZE_ANY; XmNdefaultPosition = false; XmNtranslations = translation_table( '<Btn3Down>:popup_popup_menu()'); }; controls { XmLabel label_icon; XmPushButton color_patch; XmLabel color_resource_label; XmLabel color_patch_label; XmForm slider_box; XmLabel color_db_label; XmScrolledWindow color_db_window; ! push_button color_add; XmText color_text; XmSeparator color_sep; XmPushButton color_ok; XmPushButton color_cancel; XmPushButton color_help; XmPushButton color_setbg; }; callbacks { XmNdestroyCallback = procedure destroy_colorform(); }; }; object label_icon: XmLabel { arguments { XmNleftAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = color_h_offset*2; XmNleftOffset = color_h_offset; XmNlabelPixmap = palette; XmNlabelType = XmPIXMAP; XmNalignment = XmALIGNMENT_BEGINNING; }; }; ! the bottom of the color patch button is attached to a position ! 30% into the form; the top is attached to a fixed offset from ! the top of the form. object color_patch: XmPushButton { arguments { XmNtranslations = translation_table( '<Btn3Down>:popup_popup_menu()'); XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmLabel label_icon; XmNrightAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = color_h_offset*2; XmNbottomAttachment = XmATTACH_POSITION; XmNbottomPosition = 30; XmNbottomOffset = color_h_offset; XmNlabelString = compound_string('Press MB3 for popup menu.'); }; }; ! this label will indicate the resource being modified; ! its label string is set by the program object color_resource_label: XmLabel { arguments{ XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmLabel label_icon; XmNrightAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = color_h_offset/2; }; }; ! this label will indicate the current color of the color_patch; ! its label string is set by the program object color_patch_label: XmLabel { arguments{ XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmLabel label_icon; XmNrightAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = XmPushButton color_patch; XmNlabelString = " "; }; }; ! the top of the slider group is attached to the bottom of the color patch; ! this is equivalent to attaching it to the form's 30% position object slider_box : XmForm { arguments { XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNtopAttachment = XmATTACH_WIDGET; XmNtopWidget = XmLabel color_patch_label; XmNtopOffset = color_v_offset; XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomWidget = XmLabel color_db_label; XmNbottomOffset = color_v_offset; }; controls { XmScale scale1; XmScale scale2; XmScale scale3; XmForm labelbox; }; }; object color_db_label : XmLabel { arguments { XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomWidget = XmScrolledWindow color_db_window; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNalignment = XmALIGNMENT_BEGINNING; XmNlabelString = compound_string('Predefined colors:'); }; }; object color_db_window: XmScrolledWindow { arguments { XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomWidget = XmText color_text; XmNtopAttachment = XmATTACH_NONE; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNbottomOffset = color_h_offset; }; controls { XmList color_db; }; }; object color_text : XmText { arguments { XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomWidget = XmSeparator color_sep; XmNleftOffset = color_h_offset; XmNrightOffset = color_h_offset; XmNbottomOffset = color_v_offset/2; ! right_widget = push_button color_add; }; }; ! a separator widget is used to provide visual separation between ! the body of the color form and the control buttons beneath object color_sep: XmSeparator { arguments { XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = color_v_offset/2; XmNbottomWidget = XmPushButton color_ok; }; }; object color_ok: XmPushButton{ arguments { XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = color_v_offset; XmNx = color_h_offset; XmNlabelString = compound_string('OK'); ! note that, due to our use of Xm100TH_FONT_UNITS, ! showAsDefault must be set larger than would otherwise be necessary XmNshowAsDefault = 20; }; callbacks { XmNactivateCallback = procedure ok_button_pressed('C'); }; }; object color_cancel: XmPushButton{ arguments { XmNbottomAttachment = XmATTACH_OPPOSITE_WIDGET; XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmPushButton color_ok; XmNbottomWidget = XmPushButton color_ok; XmNleftOffset = color_h_offset; ! center with the OK button, which is larger XmNbottomOffset = 75; XmNlabelString = compound_string('Cancel'); }; callbacks { XmNactivateCallback = procedure cancel_button_pressed('C'); }; }; object color_help: XmPushButton{ arguments { XmNbottomAttachment = XmATTACH_OPPOSITE_WIDGET; XmNleftAttachment = XmATTACH_WIDGET; XmNleftWidget = XmPushButton color_cancel; XmNbottomWidget = XmPushButton color_cancel; XmNleftOffset = color_h_offset; XmNlabelString = compound_string('Help'); }; callbacks { XmNactivateCallback = procedure help_proc('Color'); }; }; object color_setbg: XmPushButton{ arguments { XmNbottomAttachment = XmATTACH_OPPOSITE_WIDGET; XmNleftAttachment = XmATTACH_WIDGET; XmNbottomWidget = XmPushButton color_help; XmNleftWidget = XmPushButton color_help; XmNleftOffset = color_h_offset; XmNlabelString = compound_string('Set Root Background'); }; callbacks { XmNactivateCallback = procedure setbg_button_pressed(); }; }; object color_db: XmList { arguments { XmNitems = string_table("red"); XmNitemCount = 1; XmNvisibleItemCount = 5; }; callbacks { XmNcreateCallback = procedure load_rgb_text(); }; }; ! arguments common to all 3 color scales (horizontal) list scale_args : arguments { XmNshowValue = true; XmNtopAttachment = XmATTACH_POSITION; XmNbottomAttachment = XmATTACH_POSITION; XmNleftAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_FORM; XmNorientation = XmHORIZONTAL; XmNprocessingDirection = XmMAX_ON_RIGHT; XmNleftOffset = scales_left_offset; XmNrightOffset = color_h_offset; }; ! arguments common to all 3 color scales (vertical) list vscale_args : arguments { XmNtopAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNleftOffset = color_h_offset; XmNleftAttachment = XmATTACH_POSITION; XmNrightAttachment = XmATTACH_POSITION; XmNorientation = XmVERTICAL; XmNprocessingDirection = XmMAX_ON_RIGHT; }; object scale1 : XmScale { arguments { XmNbackground = color('red'); XmNtopPosition = 0; XmNbottomPosition = 30; arguments scale_args; ! arguments below are for vertical scale orientation ! left_position = 0; ! right_position = 33; ! arguments vscale_args; }; callbacks { XmNvalueChangedCallback = procedure scale_value_changed('r'); XmNdragCallback = procedure scale_value_changed('r'); }; }; object scale2 : XmScale { arguments { XmNbackground = color('green'); XmNtopPosition = 35; XmNbottomPosition = 65; arguments scale_args; ! arguments below are for vertical scale orientation ! left_position = 36; ! right_position = 70; ! arguments vscale_args; }; callbacks { XmNvalueChangedCallback = procedure scale_value_changed('g'); XmNdragCallback = procedure scale_value_changed('g'); }; }; object scale3 : XmScale { arguments { XmNbackground = color('blue'); XmNtopPosition = 70; XmNbottomPosition = 100; arguments scale_args; ! arguments below are for vertical scale orientation ! left_position = 73; ! right_position = 100; ! arguments vscale_args; }; callbacks { XmNvalueChangedCallback = procedure scale_value_changed('b'); XmNdragCallback = procedure scale_value_changed('b'); }; }; ! the labelbox resizes with its parent form, so that its children, ! which are anchored to positions in the labelbox, track their scales ! after resize. object labelbox: XmForm { arguments { XmNtopAttachment = XmATTACH_FORM; XmNbottomAttachment = XmATTACH_FORM; XmNrightAttachment = XmATTACH_WIDGET; XmNrightOffset = 15; XmNtopWidget = XmScale scale1; XmNrightWidget = XmScale scale1; }; controls { XmLabel label1; XmLabel label2; XmLabel label3; }; }; object label1: XmLabel { arguments { XmNtopAttachment = XmATTACH_NONE; XmNlabelString = compound_string('Red'); XmNforeground = white; }; }; object label2: XmLabel { arguments { XmNtopAttachment = XmATTACH_POSITION; XmNtopPosition = 35; XmNlabelString = compound_string('Green'); XmNforeground = white; }; }; object label3: XmLabel { arguments { XmNtopAttachment = XmATTACH_POSITION; XmNtopPosition = 70; XmNlabelString = compound_string('Blue'); XmNforeground = white; }; }; ! this popup menu is not specified in the color form's controls list, ! but is tied to the form via a translation table in the form's arguments list object popup_menu_widget: XmPopupMenu{ arguments { XmNwidth = 100; XmNheight = 100; }; controls { XmPushButton{ arguments { XmNlabelString = compound_string('Set Root Window Background'); }; callbacks { XmNactivateCallback = procedure setbg_button_pressed(); }; }; XmPushButton{ arguments { XmNlabelString = compound_string('Set Foreground'); }; callbacks { XmNactivateCallback = procedure setcolor_button_pressed('F'); }; }; XmPushButton{ arguments { XmNlabelString = compound_string('Set Bottom Shadow'); }; callbacks { XmNactivateCallback = procedure setcolor_button_pressed('S'); }; }; XmPushButton{ arguments { XmNlabelString = compound_string('Set Top Shadow'); }; callbacks { XmNactivateCallback = procedure setcolor_button_pressed('T'); }; }; }; }; ! this is an example of how to create an option menu in uil ! it is not used in mre !object om1_pull : pulldown_menu { ! arguments { ! width = 100; ! height = 100; ! }; ! controls { ! push_button {}; ! push_button {}; ! }; !}; !object om1: option_menu ! { ! arguments { ! label_string = compound_string('W:'); ! }; ! controls { ! pulldown_menu om1_pull; ! }; !}; ! the following identifiers allow the color dialog to initially appear ! with scale values and color patch reflecting the current color of the ! resource being modified !identifier init_red ; !identifier init_green ; !identifier init_blue ; !identifier init_background ; !object color_add : push_button { ! arguments { ! right_attachment = XmATTACH_FORM; ! bottom_attachment = XmATTACH_WIDGET; ! bottom_widget = separator color_sep; ! bottom_offset = color_v_offset/2; ! right_offset = color_h_offset; ! label_string = compound_string('Add'); ! }; !};