⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chapter07textcontextwidget.pro

📁 idl 可视化分析与应用(随书程序)
💻 PRO
字号:
; Chapter07TextContextWidget.pro
PRO CTE_ColumnEvent, event
  titleLabel = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'xyLabel')
  WIDGET_CONTROL, titleLabel, SET_VALUE = 'Column:  '
END
PRO CTE_RowEvent, event
  titleLabel = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'xyLabel')
  WIDGET_CONTROL, titleLabel, SET_VALUE = 'Row:  '
END
PRO CTE_DoneEvent, event
  WIDGET_CONTROL, event.TOP, /DESTROY
END
PRO CTE_TextEvents, event
  IF (TAG_NAMES(event,/STRUCTURE_NAME) EQ 'WIDGET_CONTEXT') THEN BEGIN
    contextBase = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'contextMenu')
    WIDGET_DISPLAYCONTEXTMENU, event.ID, event.X, event.Y, contextBase
  ENDIF ELSE BEGIN
    WIDGET_CONTROL, event.ID, GET_VALUE = textString
    ON_IOERROR, badnum
    IF ((FIX(textString) GE 0) AND (FIX(textString) LE 360)) THEN BEGIN
      textValue = FIX(textString)
    ENDIF ELSE BEGIN
      badnum:
      dialog=DIALOG_MESSAGE('Please enter a number between 0 and 360')
      WIDGET_CONTROL, event.ID, SET_VALUE=''
      RETURN
    ENDELSE
    titleLabel = WIDGET_INFO(event.TOP, FIND_BY_UNAME = 'xyLabel')
    WIDGET_CONTROL, titleLabel, GET_VALUE = MyLabel
    MyMessage = MyLabel + textString
    Result = DIALOG_MESSAGE( MyMessage, /INFORMATION)
  ENDELSE
END
PRO Chapter07TextContextWidget
  topLevelBase = WIDGET_BASE(/COLUMN)
  bigBase = WIDGET_BASE(topLevelBase, /COLUMN, /FRAME)
  bigLabel = WIDGET_LABEL(bigBase,VALUE='Enter a number between 1-360',$
    /DYNAMIC_RESIZE)
  textBase = WIDGET_BASE(bigBase, /ROW)
  titleLabel = WIDGET_LABEL(textBase, VALUE = 'My Title: ', $
    /DYNAMIC_RESIZE, UNAME = 'xyLabel')
  locationText = WIDGET_TEXT(textBase, VALUE = '180', $
    /EDITABLE, UNAME = 'xyText', /CONTEXT_EVENTS, $
    UVALUE = location, EVENT_PRO = 'CTE_TextEvents',XSIZE = 80)
  contextBase = WIDGET_BASE(topLevelBase, /CONTEXT_MENU, UNAME = 'contextMenu')
  columnButton = WIDGET_BUTTON(contextBase, $
    VALUE = 'Column', EVENT_PRO = 'CTE_ColumnEvent')
  rowButton = WIDGET_BUTTON(contextBase, $
    VALUE = 'Row', EVENT_PRO = 'CTE_RowEvent')
  doneButton = WIDGET_BUTTON(contextBase, VALUE = 'Done', $
    /SEPARATOR, EVENT_PRO = 'CTE_DoneEvent')
  WIDGET_CONTROL, topLevelBase, /REALIZE
  XMANAGER, 'Chapter07TextContextWidget', topLevelBase
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -