; -------------------------------------------------------------------------------- ; @Title: Example for complex dialog with an INFOTEXT element ; @Description: ; Shows an interactive dialog to change the parameters of the INFOTEXT element ; @Keywords: practice, dialog, infotext, array, user command ; @Author: SME ; @Copyright: (C) 1989-2014 Lauterbach GmbH, licensed for use with TRACE32(R) only ; -------------------------------------------------------------------------------- ; $Id: dialog_infotext.cmm 18687 2021-12-15 13:32:29Z rweiss $ LOCAL &resetIcon &closeIcon &addIcon &delIcon LOCAL &parColor &parStyle &parFont &parHScroll &parBorder LOCAL &infoTxt &addTxt &iniTxt &addTxtCnt &infoParams &infoValue LOCAL &oldIdx &newIdx &setState LOCAL &tmp Var.NEW char[5][10] \varColor Var.Assign \varColor[0]="GRay" Var.Assign \varColor[1]="WHite" Var.Assign \varColor[2]="LightGray" Var.Assign \varColor[3]="DarkGray" Var.Assign \varColor[4]="STicker" Var.NEW char[4][10] \varStyle Var.Assign \varStyle[0]="NoBorder" Var.Assign \varStyle[1]="SImple" Var.Assign \varStyle[2]="SUnken" Var.Assign \varStyle[3]="RAised" Var.NEW char[5][10] \varFont Var.Assign \varFont[0]="Variable1" Var.Assign \varFont[1]="Fixed1" Var.Assign \varFont[2]="Fixed2" Var.Assign \varFont[3]="Fixed3" Var.Assign \varFont[4]="Fixed4" Var.NEW char[2][10] \varHScroll Var.Assign \varHScroll[0]="" Var.Assign \varHScroll[1]="HScroll" &addIcon="[=CVlT5$yZwd3$1Ja$zy780KWfP1GJ802$$RpWU020J9Vk0$Vf2gPlw2kUF0pZKxm6GTx50Jzf04]" &delIcon="[=GVl@$vSxHUX5Lh184ziysbUV$1z5x$f@7Rl7V$0Km$EdfKVw2jkDt070OC0s$$VIX5V0140VFR24ZM]" &resetIcon="[=GVl@MvSxMUzURV3D8oP2wjliDR3tV32tVRRFUDt97NX3Vt08D0x30x0ZW6t3lUN$mxcmU3$7tE010200080102040SpWC3hi0X2h5Zil0D7tUW$5TFtyWM0R1050F00]" &closeIcon="[=Anazz@8gh2$EoIPwquQssSkoSQsv$o$$XYDnlDcUteig9$w$$S0t60N10NKKqnm0]" &addTxt="" &addTxt="&addTxt"+"Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna"+CONV.CHAR(10.) &addTxt="&addTxt"+"aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no"+CONV.CHAR(10.) &addTxt="&addTxt"+"sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam"+CONV.CHAR(10.) &addTxt="&addTxt"+"nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et"+CONV.CHAR(10.) &addTxt="&addTxt"+"justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet." &addTxtCnt=0. &iniTxt=""+CONV.CHAR(10.)+CONV.CHAR(10.)+" Press 'Add text' to add some more text."+CONV.CHAR(10.)+" Use the above elements to change the"+CONV.CHAR(10.)+" parameters of this INFOTEXT element." &parColor="0" &parStyle="0" &parFont="0" &parHScroll="0" &parBorder="0" &setState="1" &tmp="" &infoParams="" &infoValue=0. &infoTxt="&iniTxt" &oldIdx=0x0 &newIdx=0x0 ; -------------------------------------------------------------------------------- ; Commandos ; ON CMD CHGCOLOR GOSUB ( LOCAL &color ENTRY &color &parColor="&color" GOSUB ShowDialog RETURN ) ON CMD CHGSTYLE GOSUB ( LOCAL &style ENTRY &style &parStyle="&style" GOSUB ShowDialog RETURN ) ON CMD CHGFONT GOSUB ( LOCAL &font ENTRY &font &parFont="&font" GOSUB ShowDialog RETURN ) ON CMD CHGHSCRL GOSUB ( LOCAL &hscroll ENTRY &hscroll &parHScroll="&hscroll" GOSUB ShowDialog RETURN ) ON CMD CHGBORDER GOSUB ( LOCAL &border ENTRY &border &parBorder="&border" GOSUB ShowDialog RETURN ) ON CMD RESPARAM GOSUB ( LOCAL &border ENTRY &border &parColor="0" &parStyle="0" &parFont="0" &parHScroll="0" &parBorder="0" &setState="1" &infoTxt="&iniTxt" &addTxtCnt=0. GOSUB ShowDialog RETURN ) ON CMD SETSTATE GOSUB ( LOCAL &state ENTRY &state &setState="&state" GOSUB ShowDialog RETURN ) ON CMD ADDTXT GOSUB ( IF (&addTxtCnt<3.) ( If (&addTxtCnt==0.) ( &infoTxt="&addTxt" ) ELSE ( &infoTxt="&infoTxt"+CONV.CHAR(10.)+"&addTxt" ) &addTxtCnt=&addTxtCnt+1. GOSUB ShowDialog ) RETURN ) ON CMD DELTXT GOSUB ( &infoTxt="&iniTxt" &addTxtCnt=0. GOSUB ShowDialog RETURN ) ; ; -------------------------------------------------------------------------------- GOSUB ShowDialog STOP ; -------------------------------------------------------------------------------- ; Subroutine to show new dialog and delete dialog ; ShowDialog: &infoParams=""+Var.STRing(\varColor[&parColor]) &infoParams="&infoParams "+Var.STRing(\varStyle[&parStyle]) &infoParams="&infoParams "+Var.STRing(\varFont[&parFont]) &infoParams="&infoParams "+Var.STRing(\varHScroll[&parHScroll]) &infoParams="&infoParams "+"&parBorder"+"." &infoValue=(&parColor*0x01)|(&parStyle*0x10)|(&parFont*0x100)|(&parBorder*0x1000)|(&parHScroll*0x10000) &oldIdx=&newIdx &newIdx=&newIdx+0x1 &tmp="DLG&newIdx" WINPOS 5. 5.,,,,,&tmp DIALOG (&+ HEADER "INFOTEXT Examples" POS 1. 0. 72.5 1.5 LTEXT "Interactive INFOTEXT parameter settings" POS 1. 1.5 72.5 1. TEXTBUTTON ""+CONV.CHAR(2.)+CONV.CHAR(77.)+"INFOTEXT [GR|WH|LG|DG|TT]  [NB|SI|SU|RA]  [V1|F1|F2|F3|F4]  [HS]  [.]" "" POS 0. 2.5 73.5 1. LINE "" POS 1. 3.25 12.5 6.75 BOX "Background" POS 2.5 4.25 9.5 1. Color.0: CHOOSEBOX "GRay" "CHGCOLOR 0" Color.1: CHOOSEBOX "WHite" "CHGCOLOR 1" Color.2: CHOOSEBOX "LightGray" "CHGCOLOR 2" Color.3: CHOOSEBOX "DarkGray" "CHGCOLOR 3" Color.4: CHOOSEBOX "STicker" "CHGCOLOR 4" POS 14. 3.25 12.5 6.75 BOX "Border style" POS 15.5 4.25 9.5 1. Style.0: CHOOSEBOX "NoBorder" "CHGSTYLE 0" Style.1: CHOOSEBOX "SImple" "CHGSTYLE 1" Style.2: CHOOSEBOX "SUnken" "CHGSTYLE 2" Style.3: CHOOSEBOX "RAised" "CHGSTYLE 3" POS 27. 3.25 12.5 6.75 BOX "Font" POS 28.5 4.25 9.5 1. Font.0: CHOOSEBOX "Variable1" "CHGFONT 0" Font.1: CHOOSEBOX "Fixed1" "CHGFONT 1" Font.2: CHOOSEBOX "Fixed2" "CHGFONT 2" Font.3: CHOOSEBOX "Fixed3" "CHGFONT 3" Font.4: CHOOSEBOX "Fixed4" "CHGFONT 4" POS 40. 3.25 13.5 6.75 BOX "Horiz. Scrollbar" POS 41.5 4.25 9.5 1. Hscroll.0: CHOOSEBOX "Off" "CHGHSCRL 0" Hscroll.1: CHOOSEBOX "On" "CHGHSCRL 1" POS 54. 3.25 18.5 6.75 BOX "Inner border" POS 55.5 4.25 6.5 1. Border.0: CHOOSEBOX "0 pixel" "CHGBORDER 0" Border.1: CHOOSEBOX "1 pixel" "CHGBORDER 1" Border.2: CHOOSEBOX "2 pixel" "CHGBORDER 2" Border.3: CHOOSEBOX "3 pixel" "CHGBORDER 3" POS 63.5 4.25 6.5 1. Border.4: CHOOSEBOX "4 pixel" "CHGBORDER 4" Border.5: CHOOSEBOX "5 pixel" "CHGBORDER 5" Border.6: CHOOSEBOX "6 pixel" "CHGBORDER 6" Border.7: CHOOSEBOX "7 pixel" "CHGBORDER 7" POS 1. 10. 49. 7. BOX "INFOTEXT ""Lorem ipsum ..."" &infoParams" POS 2. 11. 47. 5.0 ; -------------------------------------------------------------------------------- ITEXT: INFOTEXT "&infoTxt" &infoParams ; -------------------------------------------------------------------------------- POS 51. 10. 21.5 3. BOX "WIN_DIALOG_INFOTEXT" POS 52. 11. 19.5 1. TEXT "command=(char*) &infoValue" POS 51. 12.75 21.5 2.75 BOX "State" POS 52.5 13.75 7.5 1. btnEna.1: CHOOSEBOX "Enabled" "SETSTATE 1" POS 61. 13.75 7.5 1. btnEna.0: CHOOSEBOX "Disabled" "SETSTATE 0" POS 51. 15.25 4. 1.25 btnAddTxt: BUTTON "&addIcon" "ADDTXT" POS 55.5 15.25 4. 1.25 btnDelTxt: BUTTON "&delIcon" "DELTXT" POS 62. 15.25 4. 1.25 BUTTON "&resetIcon" "RESPARAM" POS 68.5 15.25 4. 1.25 BUTTON "&closeIcon" "DIALOG.END" CLOSE "DIALOG.END" ) DIALOG.SET Color.&parColor DIALOG.SET Style.&parStyle DIALOG.SET Font.&parFont DIALOG.SET Hscroll.&parHScroll DIALOG.SET Border.&parBorder DIALOG.SET btnEna.&setState IF (OS.VERSION(0)>=0x10) ( DIALOG.Disable btnEna.0 DIALOG.Disable btnEna.1 ) IF (&addTxtCnt>2.) ( DIALOG.DISable btnAddTxt ) IF (&addTxtCnt==0.) ( DIALOG.Disable btnDelTxt ) IF (&setState==0.) ( DIALOG.Disable ITEXT ) &tmp="DLG&oldIdx" if (WIN.EXIST(&tmp)) ( DIALOG.SELect &tmp DIALOG.END ) RETURN ; ; -------------------------------------------------------------------------------- STOP ENDDO