├── .gitattributes
├── Ribbon.ico
├── ribbon.bml
├── ribbon.res
├── res
├── Copy.bmp
├── Cut.bmp
├── ExitL.bmp
├── Paste.bmp
├── AddTableL.bmp
├── AddTableS.bmp
├── Button_Image.bmp
├── DeleteTableL.bmp
├── DeleteTableS.bmp
├── PrintRelationshipsL.bmp
└── PrintRelationshipsS.bmp
├── resI
├── Cut.bmp
├── Copy.bmp
├── Exit16.bmp
├── Exit32.bmp
├── ExitL.bmp
├── New16.bmp
├── New32.bmp
├── Open16.bmp
├── Open32.bmp
├── OpenHH.bmp
├── Paste.bmp
├── PrintL.bmp
├── Save16.bmp
├── Save32.bmp
├── SaveL.bmp
├── delete.bmp
├── Colors32.bmp
├── GraphHH.bmp
├── SaveAsL.bmp
├── Select32.bmp
├── dropA32.bmp
├── dropB32.bmp
├── dropC32.bmp
├── AddTableL.bmp
├── AddTableS.bmp
├── Indent_S096.bmp
├── OpenFileL.bmp
├── Paste_S096.bmp
├── Print_L096.bmp
├── SaveAs_L096.bmp
├── SaveAs_S096.bmp
├── Save_L096.bmp
├── Save_S096.bmp
├── Unselect32.bmp
├── Button_Image.bmp
├── DeleteTableL.bmp
├── Outdent_S096.bmp
├── PrintPreviewL.bmp
├── RichText_L096.bmp
├── RichText_S096.bmp
├── AlignCenter_S096.bmp
├── AlignLeft_S096.bmp
├── AlignRight_S096.bmp
├── LineSpacing_S096.bmp
├── PageSetup_L096.bmp
├── Paragraph_S096.bmp
├── PlainText_L096.bmp
├── PlainText_S096.bmp
├── PrintQuick_L096.bmp
├── AlignJustify_S096.bmp
├── PrintPreview_L096.bmp
├── OpenDocumentText_L096.bmp
├── OpenDocumentText_S096.bmp
├── PrintRelationshipsL.bmp
├── OfficeXmlDocument_L096.bmp
└── OfficeXmlDocument_S096.bmp
├── ribbonI.bml
├── ribbonI.res
├── UIRibbonDemo.twinproj
├── UIRibbonDemoSGallery.twinproj
├── UIRibbonDemoSGallery
├── ribbon.bml
├── ribbon.res
├── res
│ ├── red_96.bmp
│ ├── blue_120.bmp
│ ├── blue_144.bmp
│ ├── blue_192.bmp
│ ├── blue_96.bmp
│ ├── green_96.bmp
│ ├── large_96.bmp
│ ├── red_120.bmp
│ ├── red_144.bmp
│ ├── red_192.bmp
│ ├── small_96.bmp
│ ├── diamond_120.bmp
│ ├── diamond_144.bmp
│ ├── diamond_192.bmp
│ ├── diamond_96.bmp
│ ├── ellipse_120.bmp
│ ├── ellipse_144.bmp
│ ├── ellipse_192.bmp
│ ├── ellipse_96.bmp
│ ├── green_120.bmp
│ ├── green_144.bmp
│ ├── green_192.bmp
│ ├── large_120.bmp
│ ├── large_144.bmp
│ ├── large_192.bmp
│ ├── medium_120.bmp
│ ├── medium_144.bmp
│ ├── medium_192.bmp
│ ├── medium_96.bmp
│ ├── noBorder_96.bmp
│ ├── small_120.bmp
│ ├── small_144.bmp
│ ├── small_192.bmp
│ ├── dashBorder_96.bmp
│ ├── noBorder_120.bmp
│ ├── noBorder_144.bmp
│ ├── noBorder_192.bmp
│ ├── rectangle_120.bmp
│ ├── rectangle_144.bmp
│ ├── rectangle_192.bmp
│ ├── rectangle_96.bmp
│ ├── dashBorder_120.bmp
│ ├── dashBorder_144.bmp
│ ├── dashBorder_192.bmp
│ ├── sizeAndColor_120.bmp
│ ├── sizeAndColor_144.bmp
│ ├── sizeAndColor_192.bmp
│ ├── sizeAndColor_96.bmp
│ ├── solidBorder_120.bmp
│ ├── solidBorder_144.bmp
│ ├── solidBorder_192.bmp
│ ├── solidBorder_96.bmp
│ ├── roundedRectangle_120.bmp
│ ├── roundedRectangle_144.bmp
│ ├── roundedRectangle_192.bmp
│ └── roundedRectangle_96.bmp
├── ImportRibbon.vbp
├── ribbon.h
├── ribbon.rc
└── ribbon.xml
├── UIRibbonDemoIntermediateB.twinproj
├── UIRibbonDemoIntermediateD2D
├── Build_win32
│ ├── MSPTLS.DLL
│ └── RICHED20.DLL
├── Build_win64
│ ├── MSPTLS.DLL
│ └── RICHED20.DLL
└── UIRibbonDemoIntermediateD2D.twinproj
├── ImportRibbon.vbp
├── ImportRibbonI.vbp
├── LICENSE
├── SourceExport-GalleryIntro
├── Settings
├── RibbonClasses.twin
└── Sources
│ └── RibbonClasses.twin
├── SourceExport-Basic
├── clsRibbonEvents.twin
├── Form1.twin
└── Form1.tbform
├── ribbon.rc
├── ribbon.xml
├── SourceExport-Intermediate
└── RibbonClasses.twin
├── ribbonI.h
└── ribbonI.rc
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.twin linguist-language=vb6
2 |
--------------------------------------------------------------------------------
/Ribbon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/Ribbon.ico
--------------------------------------------------------------------------------
/ribbon.bml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/ribbon.bml
--------------------------------------------------------------------------------
/ribbon.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/ribbon.res
--------------------------------------------------------------------------------
/res/Copy.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/Copy.bmp
--------------------------------------------------------------------------------
/res/Cut.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/Cut.bmp
--------------------------------------------------------------------------------
/resI/Cut.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Cut.bmp
--------------------------------------------------------------------------------
/ribbonI.bml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/ribbonI.bml
--------------------------------------------------------------------------------
/ribbonI.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/ribbonI.res
--------------------------------------------------------------------------------
/res/ExitL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/ExitL.bmp
--------------------------------------------------------------------------------
/res/Paste.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/Paste.bmp
--------------------------------------------------------------------------------
/resI/Copy.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Copy.bmp
--------------------------------------------------------------------------------
/resI/Exit16.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Exit16.bmp
--------------------------------------------------------------------------------
/resI/Exit32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Exit32.bmp
--------------------------------------------------------------------------------
/resI/ExitL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/ExitL.bmp
--------------------------------------------------------------------------------
/resI/New16.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/New16.bmp
--------------------------------------------------------------------------------
/resI/New32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/New32.bmp
--------------------------------------------------------------------------------
/resI/Open16.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Open16.bmp
--------------------------------------------------------------------------------
/resI/Open32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Open32.bmp
--------------------------------------------------------------------------------
/resI/OpenHH.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OpenHH.bmp
--------------------------------------------------------------------------------
/resI/Paste.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Paste.bmp
--------------------------------------------------------------------------------
/resI/PrintL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PrintL.bmp
--------------------------------------------------------------------------------
/resI/Save16.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Save16.bmp
--------------------------------------------------------------------------------
/resI/Save32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Save32.bmp
--------------------------------------------------------------------------------
/resI/SaveL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/SaveL.bmp
--------------------------------------------------------------------------------
/resI/delete.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/delete.bmp
--------------------------------------------------------------------------------
/res/AddTableL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/AddTableL.bmp
--------------------------------------------------------------------------------
/res/AddTableS.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/AddTableS.bmp
--------------------------------------------------------------------------------
/resI/Colors32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Colors32.bmp
--------------------------------------------------------------------------------
/resI/GraphHH.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/GraphHH.bmp
--------------------------------------------------------------------------------
/resI/SaveAsL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/SaveAsL.bmp
--------------------------------------------------------------------------------
/resI/Select32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Select32.bmp
--------------------------------------------------------------------------------
/resI/dropA32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/dropA32.bmp
--------------------------------------------------------------------------------
/resI/dropB32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/dropB32.bmp
--------------------------------------------------------------------------------
/resI/dropC32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/dropC32.bmp
--------------------------------------------------------------------------------
/res/Button_Image.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/Button_Image.bmp
--------------------------------------------------------------------------------
/res/DeleteTableL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/DeleteTableL.bmp
--------------------------------------------------------------------------------
/res/DeleteTableS.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/DeleteTableS.bmp
--------------------------------------------------------------------------------
/resI/AddTableL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AddTableL.bmp
--------------------------------------------------------------------------------
/resI/AddTableS.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AddTableS.bmp
--------------------------------------------------------------------------------
/resI/Indent_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Indent_S096.bmp
--------------------------------------------------------------------------------
/resI/OpenFileL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OpenFileL.bmp
--------------------------------------------------------------------------------
/resI/Paste_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Paste_S096.bmp
--------------------------------------------------------------------------------
/resI/Print_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Print_L096.bmp
--------------------------------------------------------------------------------
/resI/SaveAs_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/SaveAs_L096.bmp
--------------------------------------------------------------------------------
/resI/SaveAs_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/SaveAs_S096.bmp
--------------------------------------------------------------------------------
/resI/Save_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Save_L096.bmp
--------------------------------------------------------------------------------
/resI/Save_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Save_S096.bmp
--------------------------------------------------------------------------------
/resI/Unselect32.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Unselect32.bmp
--------------------------------------------------------------------------------
/UIRibbonDemo.twinproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemo.twinproj
--------------------------------------------------------------------------------
/resI/Button_Image.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Button_Image.bmp
--------------------------------------------------------------------------------
/resI/DeleteTableL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/DeleteTableL.bmp
--------------------------------------------------------------------------------
/resI/Outdent_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Outdent_S096.bmp
--------------------------------------------------------------------------------
/resI/PrintPreviewL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PrintPreviewL.bmp
--------------------------------------------------------------------------------
/resI/RichText_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/RichText_L096.bmp
--------------------------------------------------------------------------------
/resI/RichText_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/RichText_S096.bmp
--------------------------------------------------------------------------------
/resI/AlignCenter_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AlignCenter_S096.bmp
--------------------------------------------------------------------------------
/resI/AlignLeft_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AlignLeft_S096.bmp
--------------------------------------------------------------------------------
/resI/AlignRight_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AlignRight_S096.bmp
--------------------------------------------------------------------------------
/resI/LineSpacing_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/LineSpacing_S096.bmp
--------------------------------------------------------------------------------
/resI/PageSetup_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PageSetup_L096.bmp
--------------------------------------------------------------------------------
/resI/Paragraph_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/Paragraph_S096.bmp
--------------------------------------------------------------------------------
/resI/PlainText_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PlainText_L096.bmp
--------------------------------------------------------------------------------
/resI/PlainText_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PlainText_S096.bmp
--------------------------------------------------------------------------------
/resI/PrintQuick_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PrintQuick_L096.bmp
--------------------------------------------------------------------------------
/res/PrintRelationshipsL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/PrintRelationshipsL.bmp
--------------------------------------------------------------------------------
/res/PrintRelationshipsS.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/res/PrintRelationshipsS.bmp
--------------------------------------------------------------------------------
/resI/AlignJustify_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/AlignJustify_S096.bmp
--------------------------------------------------------------------------------
/resI/PrintPreview_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PrintPreview_L096.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery.twinproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery.twinproj
--------------------------------------------------------------------------------
/resI/OpenDocumentText_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OpenDocumentText_L096.bmp
--------------------------------------------------------------------------------
/resI/OpenDocumentText_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OpenDocumentText_S096.bmp
--------------------------------------------------------------------------------
/resI/PrintRelationshipsL.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/PrintRelationshipsL.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ribbon.bml:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/ribbon.bml
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ribbon.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/ribbon.res
--------------------------------------------------------------------------------
/resI/OfficeXmlDocument_L096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OfficeXmlDocument_L096.bmp
--------------------------------------------------------------------------------
/resI/OfficeXmlDocument_S096.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/resI/OfficeXmlDocument_S096.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateB.twinproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateB.twinproj
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/red_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/red_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/blue_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/blue_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/blue_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/blue_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/blue_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/blue_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/blue_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/blue_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/green_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/green_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/large_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/large_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/red_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/red_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/red_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/red_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/red_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/red_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/small_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/small_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/diamond_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/diamond_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/diamond_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/diamond_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/diamond_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/diamond_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/diamond_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/diamond_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/ellipse_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/ellipse_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/ellipse_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/ellipse_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/ellipse_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/ellipse_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/ellipse_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/ellipse_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/green_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/green_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/green_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/green_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/green_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/green_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/large_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/large_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/large_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/large_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/large_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/large_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/medium_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/medium_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/medium_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/medium_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/medium_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/medium_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/medium_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/medium_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/noBorder_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/noBorder_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/small_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/small_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/small_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/small_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/small_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/small_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/dashBorder_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/dashBorder_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/noBorder_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/noBorder_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/noBorder_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/noBorder_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/noBorder_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/noBorder_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/rectangle_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/rectangle_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/rectangle_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/rectangle_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/rectangle_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/rectangle_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/rectangle_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/rectangle_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/dashBorder_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/dashBorder_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/dashBorder_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/dashBorder_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/dashBorder_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/dashBorder_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/sizeAndColor_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/sizeAndColor_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/sizeAndColor_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/sizeAndColor_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/sizeAndColor_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/sizeAndColor_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/sizeAndColor_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/sizeAndColor_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/solidBorder_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/solidBorder_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/solidBorder_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/solidBorder_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/solidBorder_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/solidBorder_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/solidBorder_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/solidBorder_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateD2D/Build_win32/MSPTLS.DLL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateD2D/Build_win32/MSPTLS.DLL
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateD2D/Build_win64/MSPTLS.DLL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateD2D/Build_win64/MSPTLS.DLL
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/roundedRectangle_120.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/roundedRectangle_120.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/roundedRectangle_144.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/roundedRectangle_144.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/roundedRectangle_192.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/roundedRectangle_192.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/res/roundedRectangle_96.bmp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoSGallery/res/roundedRectangle_96.bmp
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateD2D/Build_win32/RICHED20.DLL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateD2D/Build_win32/RICHED20.DLL
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateD2D/Build_win64/RICHED20.DLL:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateD2D/Build_win64/RICHED20.DLL
--------------------------------------------------------------------------------
/UIRibbonDemoIntermediateD2D/UIRibbonDemoIntermediateD2D.twinproj:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fafalone/UIRibbonDemos/HEAD/UIRibbonDemoIntermediateD2D/UIRibbonDemoIntermediateD2D.twinproj
--------------------------------------------------------------------------------
/ImportRibbon.vbp:
--------------------------------------------------------------------------------
1 | Type=Exe
2 | Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
3 | ResFile32="ribbon.res"
4 | Startup="Sub Main"
5 | Command32=""
6 | Name="Project1"
7 | HelpContextID="0"
8 | CompatibleMode="0"
9 | MajorVer=1
10 | MinorVer=0
11 | RevisionVer=0
12 | AutoIncrementVer=0
13 | ServerSupportFiles=0
14 | VersionCompanyName="Microsoft"
15 | CompilationType=0
16 | OptimizationType=0
17 | FavorPentiumPro(tm)=0
18 | CodeViewDebugInfo=0
19 | NoAliasing=0
20 | BoundsCheck=0
21 | OverflowCheck=0
22 | FlPointCheck=0
23 | FDIVCheck=0
24 | UnroundedFP=0
25 | StartMode=0
26 | Unattended=0
27 | Retained=0
28 | ThreadPerObject=0
29 | MaxNumberOfThreads=1
30 |
--------------------------------------------------------------------------------
/ImportRibbonI.vbp:
--------------------------------------------------------------------------------
1 | Type=Exe
2 | Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
3 | ResFile32="ribbonI.res"
4 | Startup="Sub Main"
5 | Command32=""
6 | Name="Project1"
7 | HelpContextID="0"
8 | CompatibleMode="0"
9 | MajorVer=1
10 | MinorVer=0
11 | RevisionVer=0
12 | AutoIncrementVer=0
13 | ServerSupportFiles=0
14 | VersionCompanyName="Microsoft"
15 | CompilationType=0
16 | OptimizationType=0
17 | FavorPentiumPro(tm)=0
18 | CodeViewDebugInfo=0
19 | NoAliasing=0
20 | BoundsCheck=0
21 | OverflowCheck=0
22 | FlPointCheck=0
23 | FDIVCheck=0
24 | UnroundedFP=0
25 | StartMode=0
26 | Unattended=0
27 | Retained=0
28 | ThreadPerObject=0
29 | MaxNumberOfThreads=1
30 |
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ImportRibbon.vbp:
--------------------------------------------------------------------------------
1 | Type=Exe
2 | Reference=*\G{00020430-0000-0000-C000-000000000046}#2.0#0#..\..\Windows\SysWOW64\stdole2.tlb#OLE Automation
3 | ResFile32="ribbon.res"
4 | Startup="Sub Main"
5 | Command32=""
6 | Name="Project1"
7 | HelpContextID="0"
8 | CompatibleMode="0"
9 | MajorVer=1
10 | MinorVer=0
11 | RevisionVer=0
12 | AutoIncrementVer=0
13 | ServerSupportFiles=0
14 | VersionCompanyName="Microsoft"
15 | CompilationType=0
16 | OptimizationType=0
17 | FavorPentiumPro(tm)=0
18 | CodeViewDebugInfo=0
19 | NoAliasing=0
20 | BoundsCheck=0
21 | OverflowCheck=0
22 | FlPointCheck=0
23 | FDIVCheck=0
24 | UnroundedFP=0
25 | StartMode=0
26 | Unattended=0
27 | Retained=0
28 | ThreadPerObject=0
29 | MaxNumberOfThreads=1
30 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Jon
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/SourceExport-GalleryIntro/Settings:
--------------------------------------------------------------------------------
1 | {
2 | "configuration.inherits": "Defaults",
3 | "debugger.runtimeCommandLineArguments": "",
4 | "project.appHelpFile": "",
5 | "project.appTitle": "UIRibbonGalleryS",
6 | "project.autoPrettify": true,
7 | "project.buildPath": "${SourcePath}\\Build_${Architecture}\\${ProjectName}.${FileExtension}",
8 | "project.buildType": "Standard EXE",
9 | "project.description": "Windows UI Ribbon Framework Demo - Simple Gallery",
10 | "project.exportPathIsV2": true,
11 | "project.forceDpiAwarenessAtStartup": "NONE",
12 | "project.id": "{6EF9BF08-3623-4EF6-B32F-8D24562E3101}",
13 | "project.licence": "CC0 1.0 Universal",
14 | "project.name": "UIRibbonGalleryS",
15 | "project.optionExplicit": true,
16 | "project.references": [
17 | {
18 | "id": "{F50B82D0-DCAB-43FE-9631-11959D4A4728}",
19 | "isCompilerPackage": true,
20 | "lcid": 0,
21 | "licence": "MIT",
22 | "name": "[COMPILER PACKAGE] WinNativeForms Package",
23 | "path32": "",
24 | "path64": "",
25 | "publisher": "TWINBASIC-COMPILER",
26 | "versionBuild": 0,
27 | "versionMajor": 0,
28 | "versionMinor": 0,
29 | "versionRevision": 31
30 | },
31 | {
32 | "id": "{00020430-0000-0000-C000-000000000046}",
33 | "lcid": 0,
34 | "name": "OLE Automation",
35 | "path32": "\\\\?\\C:\\tbproj\\Windows\\SysWOW64\\stdole2.tlb",
36 | "path64": "\\\\?\\C:\\tbproj\\Windows\\SysWOW64\\stdole2.tlb",
37 | "versionMajor": 2,
38 | "versionMinor": 0
39 | },
40 | {
41 | "id": "{1FCDB98D-617D-4995-9736-2ED0E4746A10}",
42 | "licence": "CC0 1.0 Universal",
43 | "name": "[IMPORTED] twinBASIC Shell Library v4.16.193",
44 | "path32": "/Packages/tbShellLib",
45 | "path64": "/Packages/tbShellLib",
46 | "publishedDate": "05-AUG-2023",
47 | "publishedTime": "14:21:35",
48 | "publisher": "fafalone",
49 | "symbolId": "tbShellLib",
50 | "versionBuild": "193",
51 | "versionMajor": "4",
52 | "versionMinor": "16",
53 | "versionRevision": "0"
54 | }
55 | ],
56 | "project.settingsVersion": 1,
57 | "project.startupObject": "frmMain",
58 | "project.versionCompanyName": "JAJ Productions",
59 | "project.versionFileDescription": "UI Ribbon Demo - Simply Gallery",
60 | "project.versionLegalCopyright": "(c) 2023",
61 | "project.versionMajor": 1,
62 | "project.versionMinor": 3,
63 | "project.versionProductName": "UIRibbonGalleryS",
64 | "project.versionRevision": 5,
65 | "project.warnings": {
66 | "errors": [
67 | "TB0001",
68 | "TB0002",
69 | "TB0003",
70 | "TB0016",
71 | "TB0015"
72 | ],
73 | "ignored": []
74 | },
75 | "runtime.useUnicodeStandardLibrary": true
76 | }
--------------------------------------------------------------------------------
/SourceExport-Basic/clsRibbonEvents.twin:
--------------------------------------------------------------------------------
1 | Class clsRibbonEvents
2 |
3 | Implements IUIApplication
4 | Implements IUICommandHandler
5 |
6 | [ Description ("Raised when a command is executed. key is a pointer to a PROPERTYKEY you can copy if needed.") ]
7 | Public Event OnRibbonCmdExecute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, ByVal key As LongPtr, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet, returnValue As Long)
8 | [ Description ("Raised when a property is updated. key is a pointer to a PROPERTYKEY. If you set newValue, set bValid to True.") ]
9 | Public Event OnRibbonUpdateProperty(ByVal commandId As Long, ByVal key As LongPtr, currentValue As Variant, newValue As Variant, bSetNewValue As Boolean, returnValue As Long)
10 |
11 | Private Sub IUIApplication_OnViewChanged(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long) Implements IUIApplication.OnViewChanged
12 | Err.ReturnHResult = E_NOTIMPL
13 | End Sub
14 |
15 | Private Sub IUIApplication_OnDestroyUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, ByVal commandHandler As IUICommandHandler) Implements IUIApplication.OnDestroyUICommand
16 | End Sub
17 |
18 | Private Sub IUIApplication_OnCreateUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, commandHandler As IUICommandHandler) Implements IUIApplication.OnCreateUICommand
19 | Set commandHandler = Me
20 | End Sub
21 |
22 |
23 | Private Sub IUICommandHandler_Execute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, key As PROPERTYKEY, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet) Implements IUICommandHandler.Execute
24 | Dim hr As Long
25 | Dim pv As Variant
26 | If VarPtr(currentValue) <> 0 Then
27 | VariantCopy pv, currentValue
28 | End If
29 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), pv, commandExecutionProperties, hr)
30 | Err.ReturnHResult = hr
31 | End Sub
32 |
33 | Private Sub IUICommandHandler_UpdateProperty(ByVal commandId As Long, key As PROPERTYKEY, currentValue As Variant, newValue As Variant) Implements IUICommandHandler.UpdateProperty
34 | Dim hr As Long
35 | Dim pv As Variant
36 | Dim pnv As Variant
37 | Dim bValid As Boolean
38 | If VarPtr(currentValue) <> 0 Then
39 | VariantCopy pv, currentValue
40 | End If
41 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, pnv, bValid, hr)
42 | If bValid Then
43 | VariantCopy newValue, pnv
44 | End If
45 | Err.ReturnHResult = hr
46 | End Sub
47 |
48 |
49 |
50 | End Class
--------------------------------------------------------------------------------
/SourceExport-Basic/Form1.twin:
--------------------------------------------------------------------------------
1 | [Description("Windows UI Ribbon Framework Demo")]
2 | [FormDesignerId("6D393482-82F0-45C3-B441-A8093D57E3AB")]
3 | [PredeclaredId]
4 | Class Form1
5 | Private pFramework As UIRibbonFramework
6 | Private WithEvents pUIApp As clsRibbonEvents
7 | Private hLastExe As LongPtr
8 |
9 | Private Sub Form_Load() Handles Form.Load
10 | Set pFramework = New UIRibbonFramework
11 | Set pUIApp = New clsRibbonEvents
12 | pFramework.Initialize Me.hWnd, pUIApp
13 | If IsIDE() Then
14 | 'Attempt to load resources from last .exe
15 | If (App.LastBuildPath = "") Or (PathFileExists(App.LastBuildPath) = 0) Then
16 | MsgBox("To run from the IDE you must build first, or replace this routine with one loading a DLL containing your resources.", vbCritical + vbOKOnly, App.Title)
17 | Unload Me
18 | Else
19 | hLastExe = LoadLibraryEx(App.LastBuildPath, 0, LOAD_LIBRARY_AS_DATAFILE Or LOAD_LIBRARY_AS_IMAGE_RESOURCE)
20 | pFramework.LoadUI hLastExe, StrPtr("APPLICATION_RIBBON")
21 | End If
22 | Else
23 | pFramework.LoadUI GetModuleHandleW(), StrPtr("APPLICATION_RIBBON")
24 | End If
25 | End Sub
26 |
27 | Private Sub Form_Terminate() Handles Form.Terminate
28 | If pFramework IsNot Nothing Then pFramework.Destroy
29 | Set pFramework = Nothing
30 | Set pUIApp = Nothing
31 | If hLastExe Then FreeLibrary hLastExe
32 | End Sub
33 |
34 | Private Sub pUIApp_OnRibbonCmdExecute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, ByVal key As LongPtr, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet, returnValue As Long) Handles pUIApp.OnRibbonCmdExecute
35 | List1.AddItem "You clicked: CommandId=" & commandId & ", Verb=" & verb
36 | End Sub
37 |
38 | Private Sub Form_Resize() Handles Form.Resize
39 | InvalidateRect Me.hWnd, ByVal vbNullPtr, 0
40 | RedrawWindow Me.hWnd, ByVal vbNullPtr, 0, RDW_UPDATENOW
41 | Me.Refresh
42 | End Sub
43 |
44 |
45 | Private Function IsIDE() As Boolean
46 | ' On Error GoTo Out
47 | ' Debug.Print 1 / 0
48 | 'Out:
49 | ' IsIDE = Err
50 | 'IsIDE = gide
51 | Dim buff As String
52 | Dim Success As Long
53 |
54 | buff = Space$(MAX_PATH)
55 | Success = GetModuleFileName(App.hInstance, buff, Len(buff))
56 |
57 | If Success > 0 Then
58 | 'Change the VB exe name here as appropriate
59 | 'for your version. The case change ensures this
60 | 'works regardless as to how the exe is cased on
61 | 'the machine.
62 | IsIDE = InStr(LCase$(buff), "twinbasic") > 0
63 | End If
64 |
65 | End Function
66 |
67 |
68 | End Class
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ribbon.h:
--------------------------------------------------------------------------------
1 | // *****************************************************************************
2 | // * This is an automatically generated header file for UI Element definition *
3 | // * resource symbols and values. Please do not modify manually. *
4 | // *****************************************************************************
5 |
6 | #pragma once
7 |
8 | #define cmdTabHome 2
9 | #define cmdTabHome_LabelTitle_RESID 200
10 | #define cmdShapesGroup 3
11 | #define cmdShapesGroup_LabelTitle_RESID 210
12 | #define cmdBorderGroup 4
13 | #define cmdBorderGroup_LabelTitle_RESID 220
14 | #define cmdLayoutGroup 5
15 | #define cmdLayoutGroup_LabelTitle_RESID 230
16 | #define IDR_CMD_SHAPES 6
17 | #define IDR_CMD_SHAPES_LabelTitle_RESID 240
18 | #define IDR_CMD_SIZEANDCOLOR 7
19 | #define IDR_CMD_SIZEANDCOLOR_LabelTitle_RESID 250
20 | #define IDR_CMD_SIZEANDCOLOR_LargeImages_96__RESID 251
21 | #define IDR_CMD_SIZEANDCOLOR_LargeImages_120__RESID 252
22 | #define IDR_CMD_SIZEANDCOLOR_LargeImages_144__RESID 253
23 | #define IDR_CMD_SIZEANDCOLOR_LargeImages_192__RESID 254
24 | #define IDR_CMD_BORDERSTYLES 8
25 | #define IDR_CMD_BORDERSTYLES_LabelTitle_RESID 260
26 | #define IDR_CMD_BORDERSTYLES_LargeImages_96__RESID 261
27 | #define IDR_CMD_BORDERSTYLES_LargeImages_120__RESID 262
28 | #define IDR_CMD_BORDERSTYLES_LargeImages_144__RESID 263
29 | #define IDR_CMD_BORDERSTYLES_LargeImages_192__RESID 264
30 | #define IDR_CMD_BORDERSIZES 9
31 | #define IDR_CMD_BORDERSIZES_LabelTitle_RESID 270
32 | #define IDR_CMD_LAYOUTS 10
33 | #define IDR_CMD_LAYOUTS_LabelTitle_RESID 280
34 | #define IDR_CMD_SMALL 100
35 | #define IDR_CMD_SMALL_LabelTitle_RESID 290
36 | #define IDR_CMD_SMALL_LargeImages_96__RESID 291
37 | #define IDR_CMD_SMALL_LargeImages_120__RESID 292
38 | #define IDR_CMD_SMALL_LargeImages_144__RESID 293
39 | #define IDR_CMD_SMALL_LargeImages_192__RESID 294
40 | #define IDR_CMD_MEDIUM 101
41 | #define IDR_CMD_MEDIUM_LabelTitle_RESID 300
42 | #define IDR_CMD_MEDIUM_LargeImages_96__RESID 301
43 | #define IDR_CMD_MEDIUM_LargeImages_120__RESID 302
44 | #define IDR_CMD_MEDIUM_LargeImages_144__RESID 303
45 | #define IDR_CMD_MEDIUM_LargeImages_192__RESID 304
46 | #define IDR_CMD_LARGE 102
47 | #define IDR_CMD_LARGE_LabelTitle_RESID 310
48 | #define IDR_CMD_LARGE_LargeImages_96__RESID 311
49 | #define IDR_CMD_LARGE_LargeImages_120__RESID 312
50 | #define IDR_CMD_LARGE_LargeImages_144__RESID 313
51 | #define IDR_CMD_LARGE_LargeImages_192__RESID 314
52 | #define IDR_CMD_RED 103
53 | #define IDR_CMD_RED_LabelTitle_RESID 320
54 | #define IDR_CMD_RED_LargeImages_96__RESID 321
55 | #define IDR_CMD_RED_LargeImages_120__RESID 322
56 | #define IDR_CMD_RED_LargeImages_144__RESID 323
57 | #define IDR_CMD_RED_LargeImages_192__RESID 324
58 | #define IDR_CMD_GREEN 104
59 | #define IDR_CMD_GREEN_LabelTitle_RESID 330
60 | #define IDR_CMD_GREEN_LargeImages_96__RESID 331
61 | #define IDR_CMD_GREEN_LargeImages_120__RESID 332
62 | #define IDR_CMD_GREEN_LargeImages_144__RESID 333
63 | #define IDR_CMD_GREEN_LargeImages_192__RESID 334
64 | #define IDR_CMD_BLUE 105
65 | #define IDR_CMD_BLUE_LabelTitle_RESID 340
66 | #define IDR_CMD_BLUE_LargeImages_96__RESID 341
67 | #define IDR_CMD_BLUE_LargeImages_120__RESID 342
68 | #define IDR_CMD_BLUE_LargeImages_144__RESID 343
69 | #define IDR_CMD_BLUE_LargeImages_192__RESID 344
70 | #define IDC_RIBBONHELP 57664
71 | #define InternalCmd2_LabelTitle_RESID 60001
72 |
--------------------------------------------------------------------------------
/ribbon.rc:
--------------------------------------------------------------------------------
1 | // ******************************************************************************
2 | // * This is an automatically generated file containing the ribbon resource for *
3 | // * your application. *
4 | // ******************************************************************************
5 |
6 | #include ".\ribbon.h"
7 |
8 | STRINGTABLE
9 | BEGIN
10 | IDC_CMD_TAB1_LabelTitle_RESID L"Tab 1" /* LabelTitle IDC_CMD_TAB1_LabelTitle_RESID: These comments are optional and are inserted into the header file. */
11 | END
12 |
13 | cmdGroup1_SmallImages_RESID BITMAP "res\\Button_Image.bmp" /* SmallImages cmdGroup1_SmallImages_RESID: (null) */
14 | STRINGTABLE
15 | BEGIN
16 | cmdButton1_LabelTitle_RESID L"Button 1" /* LabelTitle cmdButton1_LabelTitle_RESID: (null) */
17 | END
18 |
19 | cmdButton1_SmallImages_RESID BITMAP "res\\AddTableS.bmp" /* SmallImages cmdButton1_SmallImages_RESID: (null) */
20 | cmdButton1_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages cmdButton1_LargeImages_RESID: (null) */
21 | STRINGTABLE
22 | BEGIN
23 | cmdButton2_LabelTitle_RESID L"Button 2" /* LabelTitle cmdButton2_LabelTitle_RESID: (null) */
24 | END
25 |
26 | cmdButton2_SmallImages_RESID BITMAP "res\\DeleteTableS.bmp" /* SmallImages cmdButton2_SmallImages_RESID: (null) */
27 | cmdButton2_LargeImages_RESID BITMAP "res\\DeleteTableL.bmp" /* LargeImages cmdButton2_LargeImages_RESID: (null) */
28 | STRINGTABLE
29 | BEGIN
30 | cmdButton3_LabelTitle_RESID L"Button 3" /* LabelTitle cmdButton3_LabelTitle_RESID: (null) */
31 | END
32 |
33 | cmdButton3_SmallImages_RESID BITMAP "res\\PrintRelationshipsS.bmp" /* SmallImages cmdButton3_SmallImages_RESID: (null) */
34 | cmdButton3_LargeImages_RESID BITMAP "res\\PrintRelationshipsL.bmp" /* LargeImages cmdButton3_LargeImages_RESID: (null) */
35 | STRINGTABLE
36 | BEGIN
37 | cmdButton4_LabelTitle_RESID L"Button 4" /* LabelTitle cmdButton4_LabelTitle_RESID: (null) */
38 | END
39 |
40 | cmdButton4_SmallImages_RESID BITMAP "res\\AddTableS.bmp" /* SmallImages cmdButton4_SmallImages_RESID: (null) */
41 | cmdButton4_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages cmdButton4_LargeImages_RESID: (null) */
42 | STRINGTABLE
43 | BEGIN
44 | cmdButton5_LabelTitle_RESID L"Button 5" /* LabelTitle cmdButton5_LabelTitle_RESID: (null) */
45 | END
46 |
47 | cmdButton5_SmallImages_RESID BITMAP "res\\Cut.bmp" /* SmallImages cmdButton5_SmallImages_RESID: (null) */
48 | STRINGTABLE
49 | BEGIN
50 | cmdToggleButton1_LabelTitle_RESID L"ToggleButton 1" /* LabelTitle cmdToggleButton1_LabelTitle_RESID: (null) */
51 | END
52 |
53 | cmdToggleButton1_SmallImages_RESID BITMAP "res\\AddTableS.bmp" /* SmallImages cmdToggleButton1_SmallImages_RESID: (null) */
54 | cmdToggleButton1_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages cmdToggleButton1_LargeImages_RESID: (null) */
55 | STRINGTABLE
56 | BEGIN
57 | cmdToggleButton2_LabelTitle_RESID L"ToggleButton 2" /* LabelTitle cmdToggleButton2_LabelTitle_RESID: (null) */
58 | END
59 |
60 | cmdToggleButton2_SmallImages_RESID BITMAP "res\\Copy.bmp" /* SmallImages cmdToggleButton2_SmallImages_RESID: (null) */
61 | STRINGTABLE
62 | BEGIN
63 | cmdMRUList_LabelTitle_RESID L"MRU List" /* LabelTitle cmdMRUList_LabelTitle_RESID: (null) */
64 | END
65 |
66 | STRINGTABLE
67 | BEGIN
68 | IDC_CMD_EXIT_LabelTitle_RESID L"Exit Button" /* LabelTitle IDC_CMD_EXIT_LabelTitle_RESID: (null) */
69 | END
70 |
71 | IDC_CMD_EXIT_LargeImages_RESID BITMAP "res\\ExitL.bmp" /* LargeImages IDC_CMD_EXIT_LargeImages_RESID: (null) */
72 | APPLICATION_RIBBON UIFILE "ribbon.bml"
73 |
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ribbon.rc:
--------------------------------------------------------------------------------
1 | // ******************************************************************************
2 | // * This is an automatically generated file containing the ribbon resource for *
3 | // * your application. *
4 | // ******************************************************************************
5 |
6 | #include ".\ribbon.h"
7 |
8 | STRINGTABLE
9 | BEGIN
10 | cmdTabHome_LabelTitle_RESID L"Home" /* LabelTitle cmdTabHome_LabelTitle_RESID: (null) */
11 | END
12 |
13 | STRINGTABLE
14 | BEGIN
15 | cmdShapesGroup_LabelTitle_RESID L"Shape" /* LabelTitle cmdShapesGroup_LabelTitle_RESID: (null) */
16 | END
17 |
18 | STRINGTABLE
19 | BEGIN
20 | cmdBorderGroup_LabelTitle_RESID L"Border" /* LabelTitle cmdBorderGroup_LabelTitle_RESID: (null) */
21 | END
22 |
23 | STRINGTABLE
24 | BEGIN
25 | cmdLayoutGroup_LabelTitle_RESID L"Border" /* LabelTitle cmdLayoutGroup_LabelTitle_RESID: (null) */
26 | END
27 |
28 | STRINGTABLE
29 | BEGIN
30 | IDR_CMD_SHAPES_LabelTitle_RESID L"Shapes" /* LabelTitle IDR_CMD_SHAPES_LabelTitle_RESID: (null) */
31 | END
32 |
33 | STRINGTABLE
34 | BEGIN
35 | IDR_CMD_SIZEANDCOLOR_LabelTitle_RESID L"Size and Color" /* LabelTitle IDR_CMD_SIZEANDCOLOR_LabelTitle_RESID: (null) */
36 | END
37 |
38 | IDR_CMD_SIZEANDCOLOR_LargeImages_96__RESID BITMAP "res\\sizeAndColor_96.bmp" /* LargeImages IDR_CMD_SIZEANDCOLOR_LargeImages_96__RESID: (null) */
39 | IDR_CMD_SIZEANDCOLOR_LargeImages_120__RESID BITMAP "res\\sizeAndColor_120.bmp" /* LargeImages IDR_CMD_SIZEANDCOLOR_LargeImages_120__RESID: (null) */
40 | IDR_CMD_SIZEANDCOLOR_LargeImages_144__RESID BITMAP "res\\sizeAndColor_144.bmp" /* LargeImages IDR_CMD_SIZEANDCOLOR_LargeImages_144__RESID: (null) */
41 | IDR_CMD_SIZEANDCOLOR_LargeImages_192__RESID BITMAP "res\\sizeAndColor_192.bmp" /* LargeImages IDR_CMD_SIZEANDCOLOR_LargeImages_192__RESID: (null) */
42 | STRINGTABLE
43 | BEGIN
44 | IDR_CMD_BORDERSTYLES_LabelTitle_RESID L"Style" /* LabelTitle IDR_CMD_BORDERSTYLES_LabelTitle_RESID: (null) */
45 | END
46 |
47 | IDR_CMD_BORDERSTYLES_LargeImages_96__RESID BITMAP "res\\solidBorder_96.bmp" /* LargeImages IDR_CMD_BORDERSTYLES_LargeImages_96__RESID: (null) */
48 | IDR_CMD_BORDERSTYLES_LargeImages_120__RESID BITMAP "res\\solidBorder_120.bmp" /* LargeImages IDR_CMD_BORDERSTYLES_LargeImages_120__RESID: (null) */
49 | IDR_CMD_BORDERSTYLES_LargeImages_144__RESID BITMAP "res\\solidBorder_144.bmp" /* LargeImages IDR_CMD_BORDERSTYLES_LargeImages_144__RESID: (null) */
50 | IDR_CMD_BORDERSTYLES_LargeImages_192__RESID BITMAP "res\\solidBorder_192.bmp" /* LargeImages IDR_CMD_BORDERSTYLES_LargeImages_192__RESID: (null) */
51 | STRINGTABLE
52 | BEGIN
53 | IDR_CMD_BORDERSIZES_LabelTitle_RESID L"Size" /* LabelTitle IDR_CMD_BORDERSIZES_LabelTitle_RESID: (null) */
54 | END
55 |
56 | STRINGTABLE
57 | BEGIN
58 | IDR_CMD_LAYOUTS_LabelTitle_RESID L"Grid Size" /* LabelTitle IDR_CMD_LAYOUTS_LabelTitle_RESID: (null) */
59 | END
60 |
61 | STRINGTABLE
62 | BEGIN
63 | IDR_CMD_SMALL_LabelTitle_RESID L"Small" /* LabelTitle IDR_CMD_SMALL_LabelTitle_RESID: (null) */
64 | END
65 |
66 | IDR_CMD_SMALL_LargeImages_96__RESID BITMAP "res\\small_96.bmp" /* LargeImages IDR_CMD_SMALL_LargeImages_96__RESID: (null) */
67 | IDR_CMD_SMALL_LargeImages_120__RESID BITMAP "res\\small_120.bmp" /* LargeImages IDR_CMD_SMALL_LargeImages_120__RESID: (null) */
68 | IDR_CMD_SMALL_LargeImages_144__RESID BITMAP "res\\small_144.bmp" /* LargeImages IDR_CMD_SMALL_LargeImages_144__RESID: (null) */
69 | IDR_CMD_SMALL_LargeImages_192__RESID BITMAP "res\\small_192.bmp" /* LargeImages IDR_CMD_SMALL_LargeImages_192__RESID: (null) */
70 | STRINGTABLE
71 | BEGIN
72 | IDR_CMD_MEDIUM_LabelTitle_RESID L"Medium" /* LabelTitle IDR_CMD_MEDIUM_LabelTitle_RESID: (null) */
73 | END
74 |
75 | IDR_CMD_MEDIUM_LargeImages_96__RESID BITMAP "res\\medium_96.bmp" /* LargeImages IDR_CMD_MEDIUM_LargeImages_96__RESID: (null) */
76 | IDR_CMD_MEDIUM_LargeImages_120__RESID BITMAP "res\\medium_120.bmp" /* LargeImages IDR_CMD_MEDIUM_LargeImages_120__RESID: (null) */
77 | IDR_CMD_MEDIUM_LargeImages_144__RESID BITMAP "res\\medium_144.bmp" /* LargeImages IDR_CMD_MEDIUM_LargeImages_144__RESID: (null) */
78 | IDR_CMD_MEDIUM_LargeImages_192__RESID BITMAP "res\\medium_192.bmp" /* LargeImages IDR_CMD_MEDIUM_LargeImages_192__RESID: (null) */
79 | STRINGTABLE
80 | BEGIN
81 | IDR_CMD_LARGE_LabelTitle_RESID L"Large" /* LabelTitle IDR_CMD_LARGE_LabelTitle_RESID: (null) */
82 | END
83 |
84 | IDR_CMD_LARGE_LargeImages_96__RESID BITMAP "res\\large_96.bmp" /* LargeImages IDR_CMD_LARGE_LargeImages_96__RESID: (null) */
85 | IDR_CMD_LARGE_LargeImages_120__RESID BITMAP "res\\large_120.bmp" /* LargeImages IDR_CMD_LARGE_LargeImages_120__RESID: (null) */
86 | IDR_CMD_LARGE_LargeImages_144__RESID BITMAP "res\\large_144.bmp" /* LargeImages IDR_CMD_LARGE_LargeImages_144__RESID: (null) */
87 | IDR_CMD_LARGE_LargeImages_192__RESID BITMAP "res\\large_192.bmp" /* LargeImages IDR_CMD_LARGE_LargeImages_192__RESID: (null) */
88 | STRINGTABLE
89 | BEGIN
90 | IDR_CMD_RED_LabelTitle_RESID L"Red" /* LabelTitle IDR_CMD_RED_LabelTitle_RESID: (null) */
91 | END
92 |
93 | IDR_CMD_RED_LargeImages_96__RESID BITMAP "res\\red_96.bmp" /* LargeImages IDR_CMD_RED_LargeImages_96__RESID: (null) */
94 | IDR_CMD_RED_LargeImages_120__RESID BITMAP "res\\red_120.bmp" /* LargeImages IDR_CMD_RED_LargeImages_120__RESID: (null) */
95 | IDR_CMD_RED_LargeImages_144__RESID BITMAP "res\\red_144.bmp" /* LargeImages IDR_CMD_RED_LargeImages_144__RESID: (null) */
96 | IDR_CMD_RED_LargeImages_192__RESID BITMAP "res\\red_192.bmp" /* LargeImages IDR_CMD_RED_LargeImages_192__RESID: (null) */
97 | STRINGTABLE
98 | BEGIN
99 | IDR_CMD_GREEN_LabelTitle_RESID L"Green" /* LabelTitle IDR_CMD_GREEN_LabelTitle_RESID: (null) */
100 | END
101 |
102 | IDR_CMD_GREEN_LargeImages_96__RESID BITMAP "res\\green_96.bmp" /* LargeImages IDR_CMD_GREEN_LargeImages_96__RESID: (null) */
103 | IDR_CMD_GREEN_LargeImages_120__RESID BITMAP "res\\green_120.bmp" /* LargeImages IDR_CMD_GREEN_LargeImages_120__RESID: (null) */
104 | IDR_CMD_GREEN_LargeImages_144__RESID BITMAP "res\\green_144.bmp" /* LargeImages IDR_CMD_GREEN_LargeImages_144__RESID: (null) */
105 | IDR_CMD_GREEN_LargeImages_192__RESID BITMAP "res\\green_192.bmp" /* LargeImages IDR_CMD_GREEN_LargeImages_192__RESID: (null) */
106 | STRINGTABLE
107 | BEGIN
108 | IDR_CMD_BLUE_LabelTitle_RESID L"Blue" /* LabelTitle IDR_CMD_BLUE_LabelTitle_RESID: (null) */
109 | END
110 |
111 | IDR_CMD_BLUE_LargeImages_96__RESID BITMAP "res\\blue_96.bmp" /* LargeImages IDR_CMD_BLUE_LargeImages_96__RESID: (null) */
112 | IDR_CMD_BLUE_LargeImages_120__RESID BITMAP "res\\blue_120.bmp" /* LargeImages IDR_CMD_BLUE_LargeImages_120__RESID: (null) */
113 | IDR_CMD_BLUE_LargeImages_144__RESID BITMAP "res\\blue_144.bmp" /* LargeImages IDR_CMD_BLUE_LargeImages_144__RESID: (null) */
114 | IDR_CMD_BLUE_LargeImages_192__RESID BITMAP "res\\blue_192.bmp" /* LargeImages IDR_CMD_BLUE_LargeImages_192__RESID: (null) */
115 | STRINGTABLE
116 | BEGIN
117 | InternalCmd2_LabelTitle_RESID L"Label:InternalCmd2" /* LabelTitle InternalCmd2_LabelTitle_RESID: (null) */
118 | END
119 |
120 | APPLICATION_RIBBON UIFILE "ribbon.bml"
121 |
--------------------------------------------------------------------------------
/ribbon.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 |
14 |
15 |
16 |
20 |
21 | Tab 1
22 |
23 |
24 |
27 |
28 |
30 |
31 | res/Button_Image.bmp
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 | Button 1
40 |
41 |
43 |
44 | res/AddTableL.bmp
45 |
46 |
47 | res/AddTableS.bmp
48 |
49 |
50 |
51 |
52 | Button 2
53 |
54 |
55 | res/DeleteTableL.bmp
56 |
57 |
58 | res/DeleteTableS.bmp
59 |
60 |
61 |
62 |
63 | Button 3
64 |
65 |
66 | res/PrintRelationshipsL.bmp
67 |
68 |
69 | res/PrintRelationshipsS.bmp
70 |
71 |
72 |
73 |
74 | Button 4
75 |
76 |
77 | res/AddTableL.bmp
78 |
79 |
80 | res/AddTableS.bmp
81 |
82 |
83 |
84 |
85 | Button 5
86 |
87 |
88 | res/Cut.bmp
89 |
90 |
91 |
92 |
93 |
94 | ToggleButton 1
95 |
96 |
97 | res/AddTableL.bmp
98 |
99 |
100 | res/AddTableS.bmp
101 |
102 |
103 |
104 |
105 | ToggleButton 2
106 |
107 |
108 | res/Copy.bmp
109 |
110 |
111 |
112 |
113 |
114 |
115 | MRU List
116 |
117 |
118 |
119 |
120 | Exit Button
121 |
122 |
123 | res/ExitL.bmp
124 |
125 |
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
--------------------------------------------------------------------------------
/UIRibbonDemoSGallery/ribbon.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
13 |
14 | Home
15 |
16 |
17 |
18 |
19 | Shape
20 |
21 |
22 |
23 |
24 | Border
25 |
26 |
27 |
28 |
29 | Border
30 |
31 |
32 |
33 |
34 | Shapes
35 |
36 |
37 |
38 |
39 | Size and Color
40 |
41 |
42 | res/sizeAndColor_96.bmp
43 | res/sizeAndColor_120.bmp
44 | res/sizeAndColor_144.bmp
45 | res/sizeAndColor_192.bmp
46 |
47 |
48 |
49 |
50 | Style
51 |
52 |
53 | res/solidBorder_96.bmp
54 | res/solidBorder_120.bmp
55 | res/solidBorder_144.bmp
56 | res/solidBorder_192.bmp
57 |
58 |
59 |
60 |
61 | Size
62 |
63 |
64 |
65 |
66 | Grid Size
67 |
68 |
69 |
70 |
71 | Small
72 |
73 |
74 | res/small_96.bmp
75 | res/small_120.bmp
76 | res/small_144.bmp
77 | res/small_192.bmp
78 |
79 |
80 |
81 |
82 | Medium
83 |
84 |
85 | res/medium_96.bmp
86 | res/medium_120.bmp
87 | res/medium_144.bmp
88 | res/medium_192.bmp
89 |
90 |
91 |
92 |
93 | Large
94 |
95 |
96 | res/large_96.bmp
97 | res/large_120.bmp
98 | res/large_144.bmp
99 | res/large_192.bmp
100 |
101 |
102 |
103 |
104 | Red
105 |
106 |
107 | res/red_96.bmp
108 | res/red_120.bmp
109 | res/red_144.bmp
110 | res/red_192.bmp
111 |
112 |
113 |
114 |
115 | Green
116 |
117 |
118 | res/green_96.bmp
119 | res/green_120.bmp
120 | res/green_144.bmp
121 | res/green_192.bmp
122 |
123 |
124 |
125 |
126 | Blue
127 |
128 |
129 | res/blue_96.bmp
130 | res/blue_120.bmp
131 | res/blue_144.bmp
132 | res/blue_192.bmp
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
--------------------------------------------------------------------------------
/SourceExport-Intermediate/RibbonClasses.twin:
--------------------------------------------------------------------------------
1 | Class clsRibbonEvents
2 |
3 | /*
4 | clsRibbonEvents.twin
5 | A generic Windows Ribbon Framework UI event host that relays events to the hosting window.
6 |
7 | Author: Jon Johnson (fafalone)
8 | Project repository: https://github.com/fafalone/UIRibbonDemos
9 | Last updated: 24 July 2023 :: First major release.
10 | */
11 |
12 | Implements IUIApplication
13 | Implements IUICommandHandler
14 | Implements IUIEventLogger
15 |
16 | [ Description ("Raised when the Application.Views set changes. If you handle this event, you must set bHandled to True and hr to the HRESULT.") ]
17 | Public Event OnRibbonViewChange(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long, pbHandled As Boolean, phr As Long)
18 | [ Description ("Raised when a command is executed. key is a pointer to a PROPERTYKEY you can copy if needed.") ]
19 | Public Event OnRibbonCmdExecute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, ByVal commandExecutionProperties As IUISimplePropertySet, returnValue As Long)
20 | [ Description ("Raised when a property is updated. key is a pointer to a PROPERTYKEY. If you set newValue, set bValid to True. bCurValWasNull indicates if currentValue was NULL, since it can't be passed in that case.") ]
21 | Public Event OnRibbonUpdateProperty(ByVal commandId As Long, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, newValue As Variant, bSetNewValue As Boolean, returnValue As Long)
22 | [ Description ("Relays messages from the Eventing Manager. Modes is only set if the EventType is a mode change; in this case, all other values will be 0.") ]
23 | Public Event OnRibbonUIEventMessage(ByVal EventType As UI_EVENTTYPE, ByVal commandId As Long, ByVal modes As Long, ByVal commandName As String, ByVal parentCommandId As Long, ByVal parentCommandName As String, ByVal selectionIndex As Long, ByVal Location As UI_EVENTLOCATION, ByRef returnValue As Long)
24 |
25 | Private Sub IUIApplication_OnViewChanged(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long) Implements IUIApplication.OnViewChanged
26 | Dim bHandled As Boolean
27 | Dim hr As Long
28 | RaiseEvent OnRibbonViewChange(viewId, typeID, view, verb, uReasonCode, bHandled, hr)
29 | If bHandled Then
30 | Err.ReturnHResult = hr
31 | Else
32 | Err.ReturnHResult = E_NOTIMPL
33 | End If
34 | End Sub
35 |
36 | Private Sub IUIApplication_OnDestroyUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, ByVal commandHandler As IUICommandHandler) Implements IUIApplication.OnDestroyUICommand
37 | End Sub
38 |
39 | Private Sub IUIApplication_OnCreateUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, commandHandler As IUICommandHandler) Implements IUIApplication.OnCreateUICommand
40 | Set commandHandler = Me
41 | End Sub
42 |
43 |
44 | Private Sub IUICommandHandler_Execute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, key As PROPERTYKEY, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet) Implements IUICommandHandler.Execute
45 | Dim hr As Long
46 | Dim pv As Variant 'A true NULL Variant has VarPtr to it == 0
47 | Dim bNull As Boolean
48 | If VarPtr(currentValue) <> 0 Then /* It's not the same as a declared but unused Variant, which has a valid pointer and type VT_EMPTY. */
49 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), currentValue, bNull, commandExecutionProperties, hr)
50 | 'VariantCopy pv, currentValue
51 | Else
52 | 'Can't pass a true NULL; crashes
53 | bNull = True
54 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), pv, bNull, commandExecutionProperties, hr)
55 | End If
56 | Err.ReturnHResult = hr
57 | End Sub
58 |
59 | Private Sub IUICommandHandler_UpdateProperty(ByVal commandId As Long, key As PROPERTYKEY, currentValue As Variant, newValue As Variant) Implements IUICommandHandler.UpdateProperty
60 | Dim hr As Long
61 | Dim pv As Variant
62 | Dim pnv As Variant
63 | Dim bNull As Boolean
64 | Dim bValid As Boolean
65 | If VarPtr(currentValue) <> 0 Then
66 | 'VariantCopy pv, currentValue
67 | If VarPtr(newValue <> 0) Then
68 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, newValue, bValid, hr)
69 | Else
70 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, pnv, bValid, hr)
71 | If bValid Then
72 | VariantCopy newValue, pnv
73 | End If
74 | End If
75 |
76 | Else
77 | bNull = True
78 | If VarPtr(newValue <> 0) Then
79 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, newValue, bValid, hr)
80 | Else
81 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, pnv, bValid, hr)
82 | If bValid Then
83 | VariantCopy newValue, pnv
84 | End If
85 | End If
86 | End If
87 |
88 | Err.ReturnHResult = hr
89 | End Sub
90 |
91 | 'TODO: Enable after initial test
92 | Private Sub IUIEventLogger_OnUIEvent(pEventParams As UI_EVENTPARAMS) Implements IUIEventLogger.OnUIEvent
93 | If VarPtr(pEventParams) = 0 Then Exit Sub
94 |
95 | Dim hr As Long
96 | If pEventParams.EventType = UI_EVENTTYPE_ApplicationModeSwitched Then
97 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, 0, pEventParams.Params.CommandID, "", 0, "", 0, 0, hr)
98 | Else
99 | Dim sName As String, sParName As String
100 | ' If pEventParams.Params.CommandName Then sName = LPWSTRtoStr(pEventParams.Params.CommandName, False)
101 | ' If pEventParams.Params.ParentCommandName Then sParName = LPWSTRtoStr(pEventParams.Params.ParentCommandName, False)
102 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, pEventParams.Params.CommandID, 0, sName, pEventParams.Params.ParentCommandID, sParName, pEventParams.Params.SelectionIndex, pEventParams.Params.Location, hr)
103 | End If
104 |
105 | Err.ReturnHResult = hr
106 |
107 | End Sub
108 |
109 | End Class
110 |
111 |
112 |
113 | [ COMCreatable (False) ]
114 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
115 | Class clsRibbonMRUFile
116 | 'Populates the MRU list
117 |
118 | Implements IUISimplePropertySet
119 |
120 | Private mFullPath As String
121 | Private mDisplayName As String
122 | Private mLabelOvr As String, mDesc As String
123 | Private bAutoDesc As Boolean
124 | Private mPinned As Boolean
125 |
126 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
127 | Sub New(sFileFullPath As String, Optional sLabelOverride As String = "", Optional bAutomaticDescriptionOfType As Boolean = True, Optional sLabelDescription As String = "", Optional bPinned As Boolean = False)
128 | mFullPath = sFileFullPath
129 | mPinned = bPinned
130 | If sLabelOverride <> "" Then
131 | mDisplayName = sLabelOverride
132 | mDesc = sLabelDescription
133 | Debug.Print "Class constructor set manual disp=" & mDisplayName ",desc=" & mDesc
134 | Exit Sub
135 | End If
136 | Dim psi As IShellItem, psi2 As IShellItem2
137 | SHCreateItemFromParsingName StrPtr(mFullPath), Nothing, IID_IShellItem, psi
138 | If psi IsNot Nothing Then
139 | Set psi2 = psi
140 | Dim propvar As Variant, pv As Variant
141 | psi2.GetProperty PKEY_ItemNameDisplay, propvar
142 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
143 | mDisplayName = pv
144 | VariantClear pv
145 | PropVariantClear propvar
146 |
147 | If bAutomaticDescriptionOfType Then
148 | psi2.GetProperty PKEY_ItemTypeText, propvar
149 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
150 | mDesc = pv
151 | VariantClear pv
152 | PropVariantClear propvar
153 | Else
154 | mDesc = sLabelDescription
155 | End If
156 | Set psi2 = Nothing
157 | Set psi = Nothing
158 | End If
159 | Debug.Print "Class constructor set auto disp=" & mDisplayName ",desc=" & mDesc
160 | End Sub
161 |
162 | Private Sub IUISimplePropertySet_GetValue(key As PROPERTYKEY, value As Variant) Implements IUISimplePropertySet.GetValue
163 | 'Debug.Print "MRUInstance received GetValue, keyptr=" & VarPtr(key)
164 | If (VarPtr(key) = 0) Then
165 | Err.ReturnHResult = E_POINTER
166 | Exit Sub
167 | End If
168 |
169 | Dim hr As Long = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
170 |
171 | If IsEqualPKEY(key, UI_PKEY_Label) Then
172 | InitPropVariantFromString mDisplayName, value
173 | hr = S_OK
174 | End If
175 |
176 | If IsEqualPKEY(key, UI_PKEY_LabelDescription) Then
177 | If bAutoDesc OrElse (mDesc <> "") Then
178 | InitPropVariantFromString mDesc, value
179 | hr = S_OK
180 | End If
181 | End If
182 |
183 | If IsEqualPKEY(key, UI_PKEY_Pinned) Then
184 | value = CVar(mPinned)
185 | hr = S_OK
186 | End If
187 |
188 | Err.ReturnHResult = hr
189 | End Sub
190 |
191 | Public Property Get File() As String
192 | Return mFullPath
193 | End Property
194 |
195 | [ Description ("Whether the item is pinned to the MRU list.") ]
196 | Public Property Get Pinned() As Boolean: Pinned = mPinned: End Property
197 | Public Property Let Pinned(fPinned As Boolean): mPinned = fPinned: End Property
198 |
199 |
200 | End Class
--------------------------------------------------------------------------------
/ribbonI.h:
--------------------------------------------------------------------------------
1 | // *****************************************************************************
2 | // * This is an automatically generated header file for UI Element definition *
3 | // * resource symbols and values. Please do not modify manually. *
4 | // *****************************************************************************
5 |
6 | #pragma once
7 |
8 | #define cmdApplicationMenu 600
9 | #define IDC_TABMAIN 1001
10 | #define IDC_TABMAIN_LabelTitle_RESID 1001
11 | #define cmdGroupMain 1002
12 | #define cmdGroupMain_LabelTitle_RESID 1002
13 | #define IDC_TABTABLE 1003
14 | #define IDC_TABTABLE_LabelTitle_RESID 1003
15 | #define IDC_TABDESIGN 1004
16 | #define IDC_TABDESIGN_LabelTitle_RESID 1004
17 | #define IDC_TABLAYOUT 1005
18 | #define IDC_TABLAYOUT_LabelTitle_RESID 1005
19 | #define cmdGroupDesign 1006
20 | #define cmdGroupDesign_LabelTitle_RESID 1006
21 | #define cmdGroupLayout 1007
22 | #define cmdGroupLayout_LabelTitle_RESID 1007
23 | #define IDC_SELECT 1050
24 | #define IDC_SELECT_LabelTitle_RESID 1050
25 | #define IDC_SELECT_LabelDescription_RESID 1051
26 | #define IDC_SELECT_TooltipTitle_RESID 1052
27 | #define IDC_SELECT_TooltipDescription_RESID 1053
28 | #define IDC_SELECT_LargeImages_RESID 150
29 | #define IDC_UNSELECT 1060
30 | #define IDC_UNSELECT_LabelTitle_RESID 1060
31 | #define IDC_UNSELECT_LabelDescription_RESID 1061
32 | #define IDC_UNSELECT_TooltipTitle_RESID 1062
33 | #define IDC_UNSELECT_TooltipDescription_RESID 1063
34 | #define IDC_UNSELECT_LargeImages_RESID 160
35 | #define IDC_DESIGN1 1010
36 | #define IDC_DESIGN1_LabelTitle_RESID 1010
37 | #define IDC_DESIGN1_LargeImages_RESID 110
38 | #define IDC_DESIGN2 1011
39 | #define IDC_DESIGN2_LabelTitle_RESID 1011
40 | #define IDC_DESIGN2_LargeImages_RESID 111
41 | #define IDC_DESIGN3 1012
42 | #define IDC_DESIGN3_LabelTitle_RESID 10112
43 | #define IDC_DESIGN3_LargeImages_RESID 112
44 | #define IDC_LAYOUT1 1013
45 | #define IDC_LAYOUT1_LabelTitle_RESID 1013
46 | #define IDC_LAYOUT1_LargeImages_RESID 113
47 | #define IDC_LAYOUT2 1014
48 | #define IDC_LAYOUT2_LabelTitle_RESID 1014
49 | #define IDC_LAYOUT2_LargeImages_RESID 114
50 | #define IDC_TABCOLOR 1999
51 | #define IDC_TABCOLOR_LabelTitle_RESID 1999
52 | #define cmdButtonsGroup 2000
53 | #define cmdButtonsGroup_LabelTitle_RESID 2000
54 | #define cmdDropDownColorPickerGroup 2001
55 | #define cmdDropDownColorPickerGroup_LabelTitle_RESID 2001
56 | #define IDC_COLORTHEME 2002
57 | #define IDC_COLORTHEME_LabelTitle_RESID 2002
58 | #define IDC_COLORTHEME_LargeImages_RESID 202
59 | #define IDC_COLORSTD 2003
60 | #define IDC_COLORSTD_LabelTitle_RESID 2003
61 | #define IDC_COLORSTD_LargeImages_RESID 203
62 | #define IDC_CLRHILITE 204
63 | #define IDC_CLRHILITE_LabelTitle_RESID 2004
64 | #define IDC_CLRHILITE_LargeImages_RESID 204
65 | #define IDC_LISTCOLORS 2006
66 | #define IDC_LISTCOLORS_LabelTitle_RESID 2006
67 | #define IDC_LISTCOLORS_LargeImages_RESID 206
68 | #define IDC_NEW 7001
69 | #define IDC_NEW_LabelTitle_RESID 7001
70 | #define IDC_NEW_LabelDescription_RESID 7002
71 | #define IDC_NEW_TooltipTitle_RESID 7003
72 | #define IDC_NEW_TooltipDescription_RESID 7004
73 | #define IDC_NEW_SmallImages_RESID 701
74 | #define IDC_NEW_LargeImages_RESID 702
75 | #define IDC_OPEN 8000
76 | #define IDC_OPEN_LabelTitle_RESID 8000
77 | #define IDC_OPEN_LabelDescription_RESID 8001
78 | #define IDC_OPEN_TooltipTitle_RESID 8002
79 | #define IDC_OPEN_TooltipDescription_RESID 8003
80 | #define IDC_OPEN_SmallImages_RESID 801
81 | #define IDC_OPEN_LargeImages_RESID 800
82 | #define IDC_SAVE 9000
83 | #define IDC_SAVE_LabelTitle_RESID 9100
84 | #define IDC_SAVE_LabelDescription_RESID 9001
85 | #define IDC_SAVE_TooltipTitle_RESID 9002
86 | #define IDC_SAVE_TooltipDescription_RESID 9003
87 | #define IDC_SAVE_SmallImages_RESID 901
88 | #define IDC_SAVE_LargeImages_RESID 900
89 | #define IDC_SAVEAS 9101
90 | #define IDC_SAVEAS_LabelTitle_RESID 9102
91 | #define IDC_SAVEAS_TooltipDescription_RESID 9103
92 | #define IDC_SAVEAS_SmallImages_RESID 9104
93 | #define IDC_SAVEAS_LargeImages_RESID 9105
94 | #define IDC_SAVEASMORE 9106
95 | #define CmdHeaderSave 9107
96 | #define CmdHeaderSave_LabelTitle_RESID 9108
97 | #define IDC_RTF 9109
98 | #define IDC_RTF_LabelTitle_RESID 9110
99 | #define IDC_RTF_LabelDescription_RESID 9111
100 | #define IDC_RTF_SmallImages_RESID 9112
101 | #define IDC_RTF_LargeImages_RESID 9113
102 | #define IDC_OPENXML 9114
103 | #define IDC_OPENXML_LabelTitle_RESID 9115
104 | #define IDC_OPENXML_LabelDescription_RESID 9116
105 | #define IDC_OPENXML_SmallImages_RESID 9117
106 | #define IDC_OPENXML_LargeImages_RESID 9118
107 | #define IDC_ODF 9119
108 | #define IDC_ODF_LabelTitle_RESID 9120
109 | #define IDC_ODF_LabelDescription_RESID 9121
110 | #define IDC_ODF_SmallImages_RESID 9122
111 | #define IDC_ODF_LargeImages_RESID 9123
112 | #define IDC_TXT 9214
113 | #define IDC_TXT_LabelTitle_RESID 9125
114 | #define IDC_TXT_LabelDescription_RESID 9126
115 | #define IDC_TXT_SmallImages_RESID 9127
116 | #define IDC_TXT_LargeImages_RESID 9128
117 | #define IDC_FMTOTHER 9129
118 | #define IDC_FMTOTHER_LabelTitle_RESID 9130
119 | #define IDC_FMTOTHER_LabelDescription_RESID 9131
120 | #define IDC_FMTOTHER_SmallImages_RESID 9132
121 | #define IDC_FMTOTHER_LargeImages_RESID 9133
122 | #define IDC_EXIT 20000
123 | #define IDC_EXIT_LabelTitle_RESID 20000
124 | #define IDC_EXIT_LabelDescription_RESID 20001
125 | #define IDC_EXIT_TooltipTitle_RESID 20002
126 | #define IDC_EXIT_TooltipDescription_RESID 10003
127 | #define IDC_EXIT_SmallImages_RESID 22221
128 | #define IDC_EXIT_LargeImages_RESID 22220
129 | #define cmdGroupFileActions 355
130 | #define cmdGroupFileActions_LabelTitle_RESID 355
131 | #define cmdQAT 306
132 | #define cmdCustomizeQAT 307
133 | #define cmdRecentItems 1775
134 | #define cmdRecentItems_LabelTitle_RESID 1776
135 | #define cmdGroupRichFont 1777
136 | #define cmdGroupRichFont_LabelTitle_RESID 1778
137 | #define IDC_RICHFONT 1779
138 | #define IDC_RICHFONT_Keytip_RESID 1780
139 | #define IDC_TOGGLE1 1778
140 | #define IDC_TOGGLE1_LabelTitle_RESID 3260
141 | #define IDC_TOGGLE1_SmallImages_RESID 3262
142 | #define IDC_TOGGLE1_LargeImages_RESID 3261
143 | #define cmdGroup4 2
144 | #define cmdFileMenu 3
145 | #define cmdMRUList 4
146 | #define cmdMRUList_LabelTitle_RESID 3285
147 | #define cmdGroup6 5
148 | #define IDC_EDITDROPDOWN 6
149 | #define IDC_EDITDROPDOWN_LabelTitle_RESID 3386
150 | #define IDC_EDITDROPDOWN_LargeImages_RESID 3387
151 | #define IDC_RIBBONHELP 27664
152 | #define IDC_OPENFILEMORE 20500
153 | #define IDC_OPENFILE 27601
154 | #define IDC_OPENFILE_LabelTitle_RESID 2522
155 | #define IDC_OPENFILE_LabelDescription_RESID 2523
156 | #define IDC_OPENFILE_LargeImages_RESID 4517
157 | #define IDC_OPENURL 22774
158 | #define IDC_OPENURL_LabelTitle_RESID 2524
159 | #define IDC_OPENURL_LabelDescription_RESID 2525
160 | #define IDC_OPENURL_LargeImages_RESID 4518
161 | #define IDC_PRINTMORE 20501
162 | #define CmdHeaderPrint 20511
163 | #define CmdHeaderPrint_LabelTitle_RESID 2537
164 | #define IDC_PRINT 27607
165 | #define IDC_PRINT_LabelTitle_RESID 2533
166 | #define IDC_PRINT_LabelDescription_RESID 2528
167 | #define IDC_PRINT_LargeImages_RESID 4521
168 | #define IDC_PRINTSETUP 17606
169 | #define IDC_PRINTSETUP_LabelTitle_RESID 2529
170 | #define IDC_PRINTSETUP_LabelDescription_RESID 2530
171 | #define IDC_PRINTSETUP_LargeImages_RESID 2531
172 | #define IDC_QUICKPRINT 2532
173 | #define IDC_QUICKPRINT_LabelTitle_RESID 3133
174 | #define IDC_QUICKPRINT_LabelDescription_RESID 2534
175 | #define IDC_QUICKPRINT_LargeImages_RESID 2535
176 | #define IDC_PRINTPREVIEW 2536
177 | #define IDC_PRINTPREVIEW_LabelTitle_RESID 3137
178 | #define IDC_PRINTPREVIEW_LabelDescription_RESID 2538
179 | #define IDC_PRINTPREVIEW_LargeImages_RESID 2539
180 | #define cmdTab1 7 /* These comments are optional and are inserted into the header file. */
181 | #define cmdTab1_LabelTitle_RESID 7200
182 | #define cmdGroup1 8 /* Group #1 */
183 | #define cmdGroup1_SmallImages_RESID 7250
184 | #define IDC_CMD_CONTEXT1 30071 /* Button that activates context 1 */
185 | #define IDC_CMD_CONTEXT1_LabelTitle_RESID 7201
186 | #define IDC_CMD_CONTEXT1_LargeImages_RESID 7251
187 | #define IDC_CMD_CONTEXT2 30072 /* Button that activates context 2 */
188 | #define IDC_CMD_CONTEXT2_LabelTitle_RESID 7202
189 | #define IDC_CMD_CONTEXT2_LargeImages_RESID 7252
190 | #define IDC_CMD_CONTEXT3 30073 /* Button that activates context 3 */
191 | #define IDC_CMD_CONTEXT3_LabelTitle_RESID 7203
192 | #define IDC_CMD_CONTEXT3_LargeImages_RESID 7253
193 | #define IDC_CMD_CONTEXT4 30074 /* Button that activates context 4 */
194 | #define IDC_CMD_CONTEXT4_LabelTitle_RESID 7204
195 | #define IDC_CMD_CONTEXT4_LargeImages_RESID 7254
196 | #define IDC_CUT 64 /* Cut button */
197 | #define IDC_CUT_LabelTitle_RESID 7205
198 | #define IDC_CUT_TooltipTitle_RESID 23111
199 | #define IDC_CUT_TooltipDescription_RESID 23112
200 | #define IDC_CUT_SmallImages_RESID 7255
201 | #define IDC_COPY 23116 /* Copy button */
202 | #define IDC_COPY_LabelTitle_RESID 7206
203 | #define IDC_COPY_TooltipTitle_RESID 23114
204 | #define IDC_COPY_TooltipDescription_RESID 23115
205 | #define IDC_COPY_SmallImages_RESID 7256
206 | #define IDC_PASTE 23117 /* Paste button */
207 | #define IDC_PASTE_LabelTitle_RESID 7207
208 | #define IDC_PASTE_TooltipTitle_RESID 23118
209 | #define IDC_PASTE_TooltipDescription_RESID 23119
210 | #define IDC_PASTE_SmallImages_RESID 23120
211 | #define IDC_CTXTOGGLE 9 /* Toggle Button */
212 | #define IDC_CTXTOGGLE_LabelTitle_RESID 7208
213 | #define IDC_CTXTOGGLE_SmallImages_RESID 7258
214 | #define IDC_BUTTON1 24161 /* Button #1 */
215 | #define IDC_BUTTON1_LabelTitle_RESID 7209
216 | #define IDC_BUTTON1_LargeImages_RESID 7259
217 | #define IDC_BUTTON2 21161 /* Button #2 */
218 | #define IDC_BUTTON2_LabelTitle_RESID 7210
219 | #define IDC_BUTTON2_LargeImages_RESID 7260
220 | #define IDC_BUTTON3 21163 /* Button #3 */
221 | #define IDC_BUTTON3_LabelTitle_RESID 7211
222 | #define IDC_BUTTON3_LargeImages_RESID 7261
223 | #define IDC_BUTTONS 21165 /* DropDownButton that contains the three buttons */
224 | #define IDC_BUTTONS_LabelTitle_RESID 7212
225 | #define IDC_BUTTONS_LargeImages_RESID 7262
226 | #define IDC_CMD_CONTEXTMAP1 10 /* the Context Map for Context 1 */
227 | #define IDC_CMD_CONTEXTMAP2 11 /* the Context Map for Context 2 */
228 | #define IDC_CMD_CONTEXTMAP3 12 /* the Context Map for Context 3 */
229 | #define IDC_CMD_CONTEXTMAP4 13 /* the Context Map for Context 4 */
230 | #define IDC_CHECK1 76
231 | #define IDC_CHECK1_LabelTitle_RESID 25
232 | #define IDC_CHECK1_LabelDescription_RESID 26
233 | #define IDC_CHECK1_TooltipTitle_RESID 27
234 | #define IDC_CHECK1_TooltipDescription_RESID 28
235 | #define cmdCheck2 77
236 | #define cmdCheck2_LabelTitle_RESID 31
237 | #define cmdCheck2_LabelDescription_RESID 32
238 | #define cmdCheck2_TooltipTitle_RESID 33
239 | #define cmdCheck2_TooltipDescription_RESID 34
240 | #define cmdCheckHdr 78
241 | #define cmdCheckHdr_TooltipTitle_RESID 39
242 | #define cmdCheckHdr_TooltipDescription_RESID 38
243 | #define IDC_PARAGRAPH 79
244 | #define IDC_PARAGRAPH_LabelTitle_RESID 41
245 | #define IDC_PARAGRAPH_SmallImages_RESID 40
246 | #define IDC_INDENT 80
247 | #define IDC_INDENT_LabelTitle_RESID 42
248 | #define IDC_INDENT_TooltipTitle_RESID 43
249 | #define IDC_INDENT_TooltipDescription_RESID 44
250 | #define IDC_INDENT_SmallImages_RESID 45
251 | #define IDC_OUTDENT 81
252 | #define IDC_OUTDENT_LabelTitle_RESID 46
253 | #define IDC_OUTDENT_TooltipTitle_RESID 47
254 | #define IDC_OUTDENT_TooltipDescription_RESID 48
255 | #define IDC_OUTDENT_SmallImages_RESID 49
256 | #define IDC_LINESPACING 82
257 | #define IDC_LINESPACING_LabelTitle_RESID 50
258 | #define IDC_LINESPACING_TooltipTitle_RESID 51
259 | #define IDC_LINESPACING_TooltipDescription_RESID 52
260 | #define IDC_LINESPACING_SmallImages_RESID 4720
261 | #define IDC_LINESPACE1 83
262 | #define IDC_LINESPACE1_LabelTitle_RESID 60
263 | #define IDC_LINESPACE115 84
264 | #define IDC_LINESPACE115_LabelTitle_RESID 61
265 | #define IDC_LINESPACE15 85
266 | #define IDC_LINESPACE15_LabelTitle_RESID 53
267 | #define IDC_LINESPACE2 86
268 | #define IDC_LINESPACE2_LabelTitle_RESID 54
269 | #define IDC_ALIGNLEFT 87
270 | #define IDC_ALIGNLEFT_LabelTitle_RESID 56
271 | #define IDC_ALIGNLEFT_TooltipTitle_RESID 57
272 | #define IDC_ALIGNLEFT_TooltipDescription_RESID 58
273 | #define IDC_ALIGNLEFT_SmallImages_RESID 59
274 | #define IDC_ALIGNRIGHT 88
275 | #define IDC_ALIGNRIGHT_LabelTitle_RESID 89
276 | #define IDC_ALIGNRIGHT_TooltipTitle_RESID 90
277 | #define IDC_ALIGNRIGHT_TooltipDescription_RESID 91
278 | #define IDC_ALIGNRIGHT_SmallImages_RESID 92
279 | #define IDC_ALIGNCENTER 4733
280 | #define IDC_ALIGNCENTER_LabelTitle_RESID 4730
281 | #define IDC_ALIGNCENTER_TooltipTitle_RESID 4731
282 | #define IDC_ALIGNCENTER_TooltipDescription_RESID 4732
283 | #define IDC_ALIGNCENTER_SmallImages_RESID 4734
284 | #define IDC_JUSTIFY 4738
285 | #define IDC_JUSTIFY_LabelTitle_RESID 4735
286 | #define IDC_JUSTIFY_TooltipTitle_RESID 4736
287 | #define IDC_JUSTIFY_TooltipDescription_RESID 4737
288 | #define IDC_JUSTIFY_SmallImages_RESID 4739
289 | #define IDC_MORE 21151
290 | #define IDC_MORE_LabelTitle_RESID 21149
291 |
--------------------------------------------------------------------------------
/SourceExport-GalleryIntro/RibbonClasses.twin:
--------------------------------------------------------------------------------
1 | /*
2 | RibbonClasses.twin - Generic supporting module and classes for
3 | the Windows UI Ribbon Framework
4 |
5 | Author: Jon Johnson (fafalone)
6 | Project repository: https://github.com/fafalone/UIRibbonDemos
7 | Last updated: 05 August 2023 :: Update to support Galleries
8 | */
9 |
10 | Module RibbonHelpers
11 |
12 | Public Function GetRibbonHeight(pFramework As IUIFramework) As Long
13 | Dim pRibbon As IUIRibbon
14 | If pFramework IsNot Nothing Then
15 | pFramework.GetView 0, IID_IUIRibbon, pRibbon
16 | pRibbon.GetHeight GetRibbonHeight
17 | Set pRibbon = Nothing
18 | End If
19 | End Function
20 |
21 | [ Description ("Performs an unsigned add on a LongPtr (Long or LongLong)") ]
22 | Public Function PointerAdd(ByVal Start As LongPtr, ByVal Incr As LongPtr) As LongPtr
23 | #If Win64 Then
24 | Return ((Start Xor &H8000000000000000) + Incr) Xor &H8000000000000000
25 | #Else
26 | Return ((Start Xor &H80000000) + Incr) Xor &H80000000
27 | #End If
28 | End Function
29 |
30 |
31 | [ Description ("Converts a VARENUM value from VarType() to it's string form.") ]
32 | Public Function VTtoStr([ TypeHint (VARENUM) ] ByVal lVal As Integer) As String
33 | Dim sRet As String
34 | If (lVal And VT_VECTOR) = VT_VECTOR Then
35 | sRet = sRet & "VT_VECTOR Or "
36 | lVal = lVal And Not VT_VECTOR
37 | End If
38 | If (lVal And VT_ARRAY) = VT_ARRAY Then
39 | sRet = sRet & "VT_ARRAY Or "
40 | lVal = lVal And Not VT_ARRAY
41 | End If
42 |
43 | If (lVal And VT_BYREF) = VT_BYREF Then
44 | sRet = sRet & "VT_BYREF Or "
45 | lVal = lVal And Not VT_BYREF
46 | End If
47 |
48 | If (lVal = VT_EMPTY) Then sRet = sRet & "VT_EMPTY"
49 | If (lVal = VT_NULL) Then sRet = sRet & "VT_NULL"
50 | If (lVal = VT_I2) Then sRet = sRet & "VT_I2"
51 | If (lVal = VT_I4) Then sRet = sRet & "VT_I4"
52 | If (lVal = VT_R4) Then sRet = sRet & "VT_R4"
53 | If (lVal = VT_R8) Then sRet = sRet & "VT_R8"
54 | If (lVal = VT_CY) Then sRet = sRet & "VT_CY"
55 | If (lVal = VT_DATE) Then sRet = sRet & "VT_DATE"
56 | If (lVal = VT_BSTR) Then sRet = sRet & "VT_BSTR"
57 | If (lVal = VT_DISPATCH) Then sRet = sRet & "VT_DISPATCH"
58 | If (lVal = VT_ERROR) Then sRet = sRet & "VT_ERROR"
59 | If (lVal = VT_BOOL) Then sRet = sRet & "VT_BOOL"
60 | If (lVal = VT_VARIANT) Then sRet = sRet & "VT_VARIANT"
61 | If (lVal = VT_UNKNOWN) Then sRet = sRet & "VT_UNKNOWN"
62 | If (lVal = VT_DECIMAL) Then sRet = sRet & "VT_DECIMAL"
63 | If (lVal = VT_I1) Then sRet = sRet & "VT_I1"
64 | If (lVal = VT_UI1) Then sRet = sRet & "VT_UI1"
65 | If (lVal = VT_UI2) Then sRet = sRet & "VT_UI2"
66 | If (lVal = VT_UI4) Then sRet = sRet & "VT_UI4"
67 | If (lVal = VT_I8) Then sRet = sRet & "VT_I8"
68 | If (lVal = VT_UI8) Then sRet = sRet & "VT_UI8"
69 | If (lVal = VT_INT) Then sRet = sRet & "VT_INT"
70 | If (lVal = VT_UINT) Then sRet = sRet & "VT_UINT"
71 | If (lVal = VT_VOID) Then sRet = sRet & "VT_VOID"
72 | If (lVal = VT_HRESULT) Then sRet = sRet & "VT_HRESULT"
73 | If (lVal = VT_PTR) Then sRet = sRet & "VT_PTR"
74 | If (lVal = VT_SAFEARRAY) Then sRet = sRet & "VT_SAFEARRAY"
75 | If (lVal = VT_CARRAY) Then sRet = sRet & "VT_CARRAY"
76 | If (lVal = VT_USERDEFINED) Then sRet = sRet & "VT_USERDEFINED"
77 | If (lVal = VT_LPSTR) Then sRet = sRet & "VT_LPSTR"
78 | If (lVal = VT_LPWSTR) Then sRet = sRet & "VT_LPWSTR"
79 | If (lVal = VT_RECORD) Then sRet = sRet & "VT_RECORD"
80 | If (lVal = VT_INT_PTR) Then sRet = sRet & "VT_INT_PTR"
81 | If (lVal = VT_UINT_PTR) Then sRet = sRet & "VT_UINT_PTR"
82 | If (lVal = VT_FILETIME) Then sRet = sRet & "VT_FILETIME"
83 | If (lVal = VT_BLOB) Then sRet = sRet & "VT_BLOB"
84 | If (lVal = VT_STREAM) Then sRet = sRet & "VT_STREAM"
85 | If (lVal = VT_STORAGE) Then sRet = sRet & "VT_STORAGE"
86 | If (lVal = VT_STREAMED_OBJECT) Then sRet = sRet & "VT_STREAMED_OBJECT"
87 | If (lVal = VT_STORED_OBJECT) Then sRet = sRet & "VT_STORED_OBJECT"
88 | If (lVal = VT_BLOB_OBJECT) Then sRet = sRet & "VT_BLOB_OBJECT"
89 | If (lVal = VT_CF) Then sRet = sRet & "VT_CF"
90 | If (lVal = VT_CLSID) Then sRet = sRet & "VT_CLSID"
91 | If (lVal = VT_STREAMED_PROPSET) Then sRet = sRet & "VT_STREAMED_PROPSET"
92 | If (lVal = VT_STORED_PROPSET) Then sRet = sRet & "VT_STORED_PROPSET"
93 | If (lVal = VT_BLOB_PROPSET) Then sRet = sRet & "VT_BLOB_PROPSET"
94 | If (lVal = VT_VERBOSE_ENUM) Then sRet = sRet & "VT_VERBOSE_ENUM"
95 | If (lVal = VT_BSTR_BLOB) Then sRet = sRet & "VT_BSTR_BLOB"
96 | If sRet = "" Then
97 | sRet = "(unknown)"
98 | End If
99 | VTtoStr = sRet
100 | End Function
101 |
102 | End Module
103 |
104 |
105 |
106 |
107 | Class clsRibbonEvents
108 |
109 | /*
110 | clsRibbonEvents
111 | A generic Windows Ribbon Framework UI event host that relays events to the hosting window.
112 | */
113 |
114 | Implements IUIApplication
115 | Implements IUICommandHandler
116 | Implements IUIEventLogger
117 |
118 | [ Description ("Raised when the Application.Views set changes. If you handle this event, you must set bHandled to True and hr to the HRESULT.") ]
119 | Public Event OnRibbonViewChange(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long, pbHandled As Boolean, phr As Long)
120 | [ Description ("Raised when a command is executed. key is a pointer to a PROPERTYKEY you can copy if needed.") ]
121 | Public Event OnRibbonCmdExecute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, ByVal commandExecutionProperties As IUISimplePropertySet, returnValue As Long)
122 | [ Description ("Raised when a property is updated. key is a pointer to a PROPERTYKEY. If you set newValue, set bValid to True. bCurValWasNull indicates if currentValue was NULL, since it can't be passed in that case.") ]
123 | Public Event OnRibbonUpdateProperty(ByVal commandId As Long, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, newValue As Variant, bSetNewValue As Boolean, returnValue As Long)
124 | [ Description ("Relays messages from the Eventing Manager. Modes is only set if the EventType is a mode change; in this case, all other values will be 0.") ]
125 | Public Event OnRibbonUIEventMessage(ByVal EventType As UI_EVENTTYPE, ByVal commandId As Long, ByVal modes As Long, ByVal commandName As String, ByVal parentCommandId As Long, ByVal parentCommandName As String, ByVal selectionIndex As Long, ByVal Location As UI_EVENTLOCATION, ByRef returnValue As Long)
126 |
127 | Private Sub IUIApplication_OnViewChanged(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long) Implements IUIApplication.OnViewChanged
128 | Dim bHandled As Boolean
129 | Dim hr As Long
130 | RaiseEvent OnRibbonViewChange(viewId, typeID, view, verb, uReasonCode, bHandled, hr)
131 | If bHandled Then
132 | Err.ReturnHResult = hr
133 | Else
134 | Err.ReturnHResult = E_NOTIMPL
135 | End If
136 | End Sub
137 |
138 | Private Sub IUIApplication_OnDestroyUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, ByVal commandHandler As IUICommandHandler) Implements IUIApplication.OnDestroyUICommand
139 | End Sub
140 |
141 | Private Sub IUIApplication_OnCreateUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, commandHandler As IUICommandHandler) Implements IUIApplication.OnCreateUICommand
142 | Set commandHandler = Me
143 | End Sub
144 |
145 |
146 | Private Sub IUICommandHandler_Execute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, key As PROPERTYKEY, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet) Implements IUICommandHandler.Execute
147 | Dim hr As Long
148 | Dim pv As Variant 'A true NULL Variant has VarPtr to it == 0
149 | Dim bNull As Boolean
150 | If VarPtr(currentValue) <> 0 Then /* It's not the same as a declared but unused Variant, which has a valid pointer and type VT_EMPTY. */
151 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), currentValue, bNull, commandExecutionProperties, hr)
152 | 'VariantCopy pv, currentValue
153 | Else
154 | 'Can't pass a true NULL; crashes
155 | bNull = True
156 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), pv, bNull, commandExecutionProperties, hr)
157 | End If
158 | Err.ReturnHResult = hr
159 | End Sub
160 |
161 | Private Sub IUICommandHandler_UpdateProperty(ByVal commandId As Long, key As PROPERTYKEY, currentValue As Variant, newValue As Variant) Implements IUICommandHandler.UpdateProperty
162 | Dim hr As Long
163 | Dim pv As Variant
164 | Dim pnv As Variant
165 | Dim bNull As Boolean
166 | Dim bValid As Boolean
167 | If VarPtr(currentValue) <> 0 Then
168 | 'VariantCopy pv, currentValue
169 | If VarPtr(newValue <> 0) Then
170 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, newValue, bValid, hr)
171 | Else
172 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, pnv, bValid, hr)
173 | If bValid Then
174 | VariantCopy newValue, pnv
175 | End If
176 | End If
177 |
178 | Else
179 | bNull = True
180 | If VarPtr(newValue <> 0) Then
181 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, newValue, bValid, hr)
182 | Else
183 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, pnv, bValid, hr)
184 | If bValid Then
185 | VariantCopy newValue, pnv
186 | End If
187 | End If
188 | End If
189 |
190 | Err.ReturnHResult = hr
191 | End Sub
192 |
193 | 'TODO: Enable after initial test
194 | Private Sub IUIEventLogger_OnUIEvent(pEventParams As UI_EVENTPARAMS) Implements IUIEventLogger.OnUIEvent
195 | If VarPtr(pEventParams) = 0 Then Exit Sub
196 |
197 | Dim hr As Long
198 | If pEventParams.EventType = UI_EVENTTYPE_ApplicationModeSwitched Then
199 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, 0, pEventParams.Params.CommandID, "", 0, "", 0, 0, hr)
200 | Else
201 | Dim sName As String, sParName As String
202 | ' If pEventParams.Params.CommandName Then sName = LPWSTRtoStr(pEventParams.Params.CommandName, False)
203 | ' If pEventParams.Params.ParentCommandName Then sParName = LPWSTRtoStr(pEventParams.Params.ParentCommandName, False)
204 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, pEventParams.Params.CommandID, 0, sName, pEventParams.Params.ParentCommandID, sParName, pEventParams.Params.SelectionIndex, pEventParams.Params.Location, hr)
205 | End If
206 |
207 | Err.ReturnHResult = hr
208 |
209 | End Sub
210 |
211 | End Class
212 |
213 | [ COMCreatable (False) ]
214 | [ Description ("A generic class to represent a Ribbon Gallery Item") ]
215 | Class clsRibbonGalleryItem
216 | Implements IUISimplePropertySet
217 |
218 | Private pImg As IUIImage
219 | Private pImgFact As UIRibbonImageFromBitmapFactory
220 | Private mLabel As String
221 | Private mCategory As Long
222 | Private mCommand As Long
223 | Private mCmdType As UI_COMMANDTYPE
224 |
225 | Private Sub IUISimplePropertySet_GetValue(key As PROPERTYKEY, value As Variant) Implements IUISimplePropertySet.GetValue
226 | If VarPtr(key) = 0 Then
227 | Err.ReturnHResult = E_POINTER
228 | Exit Sub
229 | End If
230 |
231 | If IsEqualPKEY(key, UI_PKEY_ItemImage) Then
232 | If pImg IsNot Nothing Then
233 | Set value = pImg
234 | Else
235 | Err.ReturnHResult = S_FALSE
236 | End If
237 | ElseIf IsEqualPKEY(key, UI_PKEY_Label) Then
238 | InitPropVariantFromString mLabel, value
239 | ElseIf IsEqualPKEY(key, UI_PKEY_CategoryId) Then
240 | InitPropVariantFromUInt32 mCategory, value
241 | ElseIf IsEqualPKEY(key, UI_PKEY_CommandId) Then
242 | If mCommand <> -1 Then
243 | InitPropVariantFromUInt32 mCommand, value
244 | Else
245 | Err.ReturnHResult = S_FALSE
246 | End If
247 | ElseIf IsEqualPKEY(key, UI_PKEY_CommandType) Then
248 | InitPropVariantFromUInt32 mCmdType, value
249 | Else
250 | Err.ReturnHResult = E_FAIL
251 | End If
252 | End Sub
253 |
254 | Public Function SetImageByObject(pI As IUIImage) As Long
255 | Set pImg = pI
256 | End Function
257 |
258 | Public Function SetImageByResID(ByVal nID As Long, Optional ByVal hModule As LongPtr = 0) As Long
259 | Dim hBmp As LongPtr
260 | If hModule = 0 Then hModule = App.hInstance
261 | hBmp = LoadImageW(hModule, nID, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION)
262 | If hBmp = 0 Then
263 | Debug.Print "Failed to load image " & nID & ", err=" & Err.LastDllError
264 | Return Err.LastDllError
265 | End If
266 | SetImageByResID = SetImageByBitmap(hBmp)
267 | ' DeleteObject hBmp
268 | End Function
269 | [ Description ("Sets the item image by HBITMAP. NOTE: It is the callers responsibility to free the bitmap.") ]
270 | Public Function SetImageByBitmap(ByVal hbm As LongPtr) As Long
271 | pImgFact.CreateImage hbm, UI_OWNERSHIP_TRANSFER, pImg
272 | Debug.Print "SetImageByBitmap(" & hbm & ")=0x" & Hex$(Err.LastHResult)
273 | Return Err.LastHResult
274 | End Function
275 |
276 | Public Property Let CategoryID(ByVal nID As Long): mCategory = nID: End Property
277 | Public Property Get CategoryID() As Long: CategoryID = mCategory: End Property
278 |
279 | Public Property Let CommandID(ByVal nID As Long): mCommand = nID: End Property
280 | Public Property Get CommandID() As Long: CommandID = mCommand: End Property
281 |
282 | Public Property Let CommandType(ByVal nType As UI_COMMANDTYPE): mCmdType = nType: End Property
283 | Public Property Get CommandType() As UI_COMMANDTYPE: CommandType = mCmdType: End Property
284 |
285 | Public Property Let Label(ByVal sLabel As String): mLabel = sLabel: End Property
286 | Public Property Get Label() As String: Label = mLabel: End Property
287 |
288 |
289 |
290 | Private Sub Class_Initialize()
291 | Set pImgFact = New UIRibbonImageFromBitmapFactory
292 | mCategory = -1
293 | mCommand = -1
294 | End Sub
295 |
296 | Private Sub Class_Terminate()
297 | Set pImg = Nothing
298 | Set pImgFact = Nothing
299 | End Sub
300 |
301 |
302 |
303 | End Class
304 |
305 | [ COMCreatable (False) ]
306 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
307 | Class clsRibbonMRUFile
308 | 'Populates the MRU list
309 |
310 | Implements IUISimplePropertySet
311 |
312 | Private mFullPath As String
313 | Private mDisplayName As String
314 | Private mLabelOvr As String, mDesc As String
315 | Private bAutoDesc As Boolean
316 | Private mPinned As Boolean
317 |
318 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
319 | Sub New(sFileFullPath As String, Optional sLabelOverride As String = "", Optional bAutomaticDescriptionOfType As Boolean = True, Optional sLabelDescription As String = "", Optional bPinned As Boolean = False)
320 | mFullPath = sFileFullPath
321 | mPinned = bPinned
322 | If sLabelOverride <> "" Then
323 | mDisplayName = sLabelOverride
324 | mDesc = sLabelDescription
325 | Debug.Print "Class constructor set manual disp=" & mDisplayName ",desc=" & mDesc
326 | Exit Sub
327 | End If
328 | Dim psi As IShellItem, psi2 As IShellItem2
329 | SHCreateItemFromParsingName StrPtr(mFullPath), Nothing, IID_IShellItem, psi
330 | If psi IsNot Nothing Then
331 | Set psi2 = psi
332 | Dim propvar As Variant, pv As Variant
333 | psi2.GetProperty PKEY_ItemNameDisplay, propvar
334 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
335 | mDisplayName = pv
336 | VariantClear pv
337 | PropVariantClear propvar
338 |
339 | If bAutomaticDescriptionOfType Then
340 | psi2.GetProperty PKEY_ItemTypeText, propvar
341 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
342 | mDesc = pv
343 | VariantClear pv
344 | PropVariantClear propvar
345 | Else
346 | mDesc = sLabelDescription
347 | End If
348 | Set psi2 = Nothing
349 | Set psi = Nothing
350 | End If
351 | Debug.Print "Class constructor set auto disp=" & mDisplayName ",desc=" & mDesc
352 | End Sub
353 |
354 | Private Sub IUISimplePropertySet_GetValue(key As PROPERTYKEY, value As Variant) Implements IUISimplePropertySet.GetValue
355 | 'Debug.Print "MRUInstance received GetValue, keyptr=" & VarPtr(key)
356 | If (VarPtr(key) = 0) Then
357 | Err.ReturnHResult = E_POINTER
358 | Exit Sub
359 | End If
360 |
361 | Dim hr As Long = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
362 |
363 | If IsEqualPKEY(key, UI_PKEY_Label) Then
364 | InitPropVariantFromString mDisplayName, value
365 | hr = S_OK
366 | End If
367 |
368 | If IsEqualPKEY(key, UI_PKEY_LabelDescription) Then
369 | If bAutoDesc OrElse (mDesc <> "") Then
370 | InitPropVariantFromString mDesc, value
371 | hr = S_OK
372 | End If
373 | End If
374 |
375 | If IsEqualPKEY(key, UI_PKEY_Pinned) Then
376 | value = CVar(mPinned)
377 | hr = S_OK
378 | End If
379 |
380 | Err.ReturnHResult = hr
381 | End Sub
382 |
383 | Public Property Get File() As String
384 | Return mFullPath
385 | End Property
386 |
387 | [ Description ("Whether the item is pinned to the MRU list.") ]
388 | Public Property Get Pinned() As Boolean: Pinned = mPinned: End Property
389 | Public Property Let Pinned(fPinned As Boolean): mPinned = fPinned: End Property
390 |
391 |
392 | End Class
--------------------------------------------------------------------------------
/SourceExport-GalleryIntro/Sources/RibbonClasses.twin:
--------------------------------------------------------------------------------
1 | /*
2 | RibbonClasses.twin - Generic supporting module and classes for
3 | the Windows UI Ribbon Framework
4 |
5 | Author: Jon Johnson (fafalone)
6 | Project repository: https://github.com/fafalone/UIRibbonDemos
7 | Last updated: 05 August 2023 :: Update to support Galleries
8 | */
9 |
10 | Module RibbonHelpers
11 |
12 | Public Function GetRibbonHeight(pFramework As IUIFramework) As Long
13 | Dim pRibbon As IUIRibbon
14 | If pFramework IsNot Nothing Then
15 | pFramework.GetView 0, IID_IUIRibbon, pRibbon
16 | pRibbon.GetHeight GetRibbonHeight
17 | Set pRibbon = Nothing
18 | End If
19 | End Function
20 |
21 | [ Description ("Performs an unsigned add on a LongPtr (Long or LongLong)") ]
22 | Public Function PointerAdd(ByVal Start As LongPtr, ByVal Incr As LongPtr) As LongPtr
23 | #If Win64 Then
24 | Return ((Start Xor &H8000000000000000) + Incr) Xor &H8000000000000000
25 | #Else
26 | Return ((Start Xor &H80000000) + Incr) Xor &H80000000
27 | #End If
28 | End Function
29 |
30 |
31 | [ Description ("Converts a VARENUM value from VarType() to it's string form.") ]
32 | Public Function VTtoStr([ TypeHint (VARENUM) ] ByVal lVal As Integer) As String
33 | Dim sRet As String
34 | If (lVal And VT_VECTOR) = VT_VECTOR Then
35 | sRet = sRet & "VT_VECTOR Or "
36 | lVal = lVal And Not VT_VECTOR
37 | End If
38 | If (lVal And VT_ARRAY) = VT_ARRAY Then
39 | sRet = sRet & "VT_ARRAY Or "
40 | lVal = lVal And Not VT_ARRAY
41 | End If
42 |
43 | If (lVal And VT_BYREF) = VT_BYREF Then
44 | sRet = sRet & "VT_BYREF Or "
45 | lVal = lVal And Not VT_BYREF
46 | End If
47 |
48 | If (lVal = VT_EMPTY) Then sRet = sRet & "VT_EMPTY"
49 | If (lVal = VT_NULL) Then sRet = sRet & "VT_NULL"
50 | If (lVal = VT_I2) Then sRet = sRet & "VT_I2"
51 | If (lVal = VT_I4) Then sRet = sRet & "VT_I4"
52 | If (lVal = VT_R4) Then sRet = sRet & "VT_R4"
53 | If (lVal = VT_R8) Then sRet = sRet & "VT_R8"
54 | If (lVal = VT_CY) Then sRet = sRet & "VT_CY"
55 | If (lVal = VT_DATE) Then sRet = sRet & "VT_DATE"
56 | If (lVal = VT_BSTR) Then sRet = sRet & "VT_BSTR"
57 | If (lVal = VT_DISPATCH) Then sRet = sRet & "VT_DISPATCH"
58 | If (lVal = VT_ERROR) Then sRet = sRet & "VT_ERROR"
59 | If (lVal = VT_BOOL) Then sRet = sRet & "VT_BOOL"
60 | If (lVal = VT_VARIANT) Then sRet = sRet & "VT_VARIANT"
61 | If (lVal = VT_UNKNOWN) Then sRet = sRet & "VT_UNKNOWN"
62 | If (lVal = VT_DECIMAL) Then sRet = sRet & "VT_DECIMAL"
63 | If (lVal = VT_I1) Then sRet = sRet & "VT_I1"
64 | If (lVal = VT_UI1) Then sRet = sRet & "VT_UI1"
65 | If (lVal = VT_UI2) Then sRet = sRet & "VT_UI2"
66 | If (lVal = VT_UI4) Then sRet = sRet & "VT_UI4"
67 | If (lVal = VT_I8) Then sRet = sRet & "VT_I8"
68 | If (lVal = VT_UI8) Then sRet = sRet & "VT_UI8"
69 | If (lVal = VT_INT) Then sRet = sRet & "VT_INT"
70 | If (lVal = VT_UINT) Then sRet = sRet & "VT_UINT"
71 | If (lVal = VT_VOID) Then sRet = sRet & "VT_VOID"
72 | If (lVal = VT_HRESULT) Then sRet = sRet & "VT_HRESULT"
73 | If (lVal = VT_PTR) Then sRet = sRet & "VT_PTR"
74 | If (lVal = VT_SAFEARRAY) Then sRet = sRet & "VT_SAFEARRAY"
75 | If (lVal = VT_CARRAY) Then sRet = sRet & "VT_CARRAY"
76 | If (lVal = VT_USERDEFINED) Then sRet = sRet & "VT_USERDEFINED"
77 | If (lVal = VT_LPSTR) Then sRet = sRet & "VT_LPSTR"
78 | If (lVal = VT_LPWSTR) Then sRet = sRet & "VT_LPWSTR"
79 | If (lVal = VT_RECORD) Then sRet = sRet & "VT_RECORD"
80 | If (lVal = VT_INT_PTR) Then sRet = sRet & "VT_INT_PTR"
81 | If (lVal = VT_UINT_PTR) Then sRet = sRet & "VT_UINT_PTR"
82 | If (lVal = VT_FILETIME) Then sRet = sRet & "VT_FILETIME"
83 | If (lVal = VT_BLOB) Then sRet = sRet & "VT_BLOB"
84 | If (lVal = VT_STREAM) Then sRet = sRet & "VT_STREAM"
85 | If (lVal = VT_STORAGE) Then sRet = sRet & "VT_STORAGE"
86 | If (lVal = VT_STREAMED_OBJECT) Then sRet = sRet & "VT_STREAMED_OBJECT"
87 | If (lVal = VT_STORED_OBJECT) Then sRet = sRet & "VT_STORED_OBJECT"
88 | If (lVal = VT_BLOB_OBJECT) Then sRet = sRet & "VT_BLOB_OBJECT"
89 | If (lVal = VT_CF) Then sRet = sRet & "VT_CF"
90 | If (lVal = VT_CLSID) Then sRet = sRet & "VT_CLSID"
91 | If (lVal = VT_STREAMED_PROPSET) Then sRet = sRet & "VT_STREAMED_PROPSET"
92 | If (lVal = VT_STORED_PROPSET) Then sRet = sRet & "VT_STORED_PROPSET"
93 | If (lVal = VT_BLOB_PROPSET) Then sRet = sRet & "VT_BLOB_PROPSET"
94 | If (lVal = VT_VERBOSE_ENUM) Then sRet = sRet & "VT_VERBOSE_ENUM"
95 | If (lVal = VT_BSTR_BLOB) Then sRet = sRet & "VT_BSTR_BLOB"
96 | If sRet = "" Then
97 | sRet = "(unknown)"
98 | End If
99 | VTtoStr = sRet
100 | End Function
101 |
102 | End Module
103 |
104 |
105 |
106 |
107 | Class clsRibbonEvents
108 |
109 | /*
110 | clsRibbonEvents
111 | A generic Windows Ribbon Framework UI event host that relays events to the hosting window.
112 | */
113 |
114 | Implements IUIApplication
115 | Implements IUICommandHandler
116 | Implements IUIEventLogger
117 |
118 | [ Description ("Raised when the Application.Views set changes. If you handle this event, you must set bHandled to True and hr to the HRESULT.") ]
119 | Public Event OnRibbonViewChange(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long, pbHandled As Boolean, phr As Long)
120 | [ Description ("Raised when a command is executed. key is a pointer to a PROPERTYKEY you can copy if needed.") ]
121 | Public Event OnRibbonCmdExecute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, ByVal commandExecutionProperties As IUISimplePropertySet, returnValue As Long)
122 | [ Description ("Raised when a property is updated. key is a pointer to a PROPERTYKEY. If you set newValue, set bValid to True. bCurValWasNull indicates if currentValue was NULL, since it can't be passed in that case.") ]
123 | Public Event OnRibbonUpdateProperty(ByVal commandId As Long, ByVal key As LongPtr, currentValue As Variant, ByVal bCurValWasNull As Boolean, newValue As Variant, bSetNewValue As Boolean, returnValue As Long)
124 | [ Description ("Relays messages from the Eventing Manager. Modes is only set if the EventType is a mode change; in this case, all other values will be 0.") ]
125 | Public Event OnRibbonUIEventMessage(ByVal EventType As UI_EVENTTYPE, ByVal commandId As Long, ByVal modes As Long, ByVal commandName As String, ByVal parentCommandId As Long, ByVal parentCommandName As String, ByVal selectionIndex As Long, ByVal Location As UI_EVENTLOCATION, ByRef returnValue As Long)
126 |
127 | Private Sub IUIApplication_OnViewChanged(ByVal viewId As Long, ByVal typeID As UI_VIEWTYPE, ByVal view As IUnknown, ByVal verb As UI_VIEWVERB, ByVal uReasonCode As Long) Implements IUIApplication.OnViewChanged
128 | Dim bHandled As Boolean
129 | Dim hr As Long
130 | RaiseEvent OnRibbonViewChange(viewId, typeID, view, verb, uReasonCode, bHandled, hr)
131 | If bHandled Then
132 | Err.ReturnHResult = hr
133 | Else
134 | Err.ReturnHResult = E_NOTIMPL
135 | End If
136 | End Sub
137 |
138 | Private Sub IUIApplication_OnDestroyUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, ByVal commandHandler As IUICommandHandler) Implements IUIApplication.OnDestroyUICommand
139 | End Sub
140 |
141 | Private Sub IUIApplication_OnCreateUICommand(ByVal commandId As Long, ByVal typeID As UI_COMMANDTYPE, commandHandler As IUICommandHandler) Implements IUIApplication.OnCreateUICommand
142 | Set commandHandler = Me
143 | End Sub
144 |
145 |
146 | Private Sub IUICommandHandler_Execute(ByVal commandId As Long, ByVal verb As UI_EXECUTIONVERB, key As PROPERTYKEY, currentValue As Variant, ByVal commandExecutionProperties As IUISimplePropertySet) Implements IUICommandHandler.Execute
147 | Dim hr As Long
148 | Dim pv As Variant 'A true NULL Variant has VarPtr to it == 0
149 | Dim bNull As Boolean
150 | If VarPtr(currentValue) <> 0 Then /* It's not the same as a declared but unused Variant, which has a valid pointer and type VT_EMPTY. */
151 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), currentValue, bNull, commandExecutionProperties, hr)
152 | 'VariantCopy pv, currentValue
153 | Else
154 | 'Can't pass a true NULL; crashes
155 | bNull = True
156 | RaiseEvent OnRibbonCmdExecute(commandId, verb, VarPtr(key), pv, bNull, commandExecutionProperties, hr)
157 | End If
158 | Err.ReturnHResult = hr
159 | End Sub
160 |
161 | Private Sub IUICommandHandler_UpdateProperty(ByVal commandId As Long, key As PROPERTYKEY, currentValue As Variant, newValue As Variant) Implements IUICommandHandler.UpdateProperty
162 | Dim hr As Long
163 | Dim pv As Variant
164 | Dim pnv As Variant
165 | Dim bNull As Boolean
166 | Dim bValid As Boolean
167 | If VarPtr(currentValue) <> 0 Then
168 | 'VariantCopy pv, currentValue
169 | If VarPtr(newValue <> 0) Then
170 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, newValue, bValid, hr)
171 | Else
172 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), currentValue, bNull, pnv, bValid, hr)
173 | If bValid Then
174 | VariantCopy newValue, pnv
175 | End If
176 | End If
177 |
178 | Else
179 | bNull = True
180 | If VarPtr(newValue <> 0) Then
181 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, newValue, bValid, hr)
182 | Else
183 | RaiseEvent OnRibbonUpdateProperty(commandId, VarPtr(key), pv, bNull, pnv, bValid, hr)
184 | If bValid Then
185 | VariantCopy newValue, pnv
186 | End If
187 | End If
188 | End If
189 |
190 | Err.ReturnHResult = hr
191 | End Sub
192 |
193 | 'TODO: Enable after initial test
194 | Private Sub IUIEventLogger_OnUIEvent(pEventParams As UI_EVENTPARAMS) Implements IUIEventLogger.OnUIEvent
195 | If VarPtr(pEventParams) = 0 Then Exit Sub
196 |
197 | Dim hr As Long
198 | If pEventParams.EventType = UI_EVENTTYPE_ApplicationModeSwitched Then
199 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, 0, pEventParams.Params.CommandID, "", 0, "", 0, 0, hr)
200 | Else
201 | Dim sName As String, sParName As String
202 | ' If pEventParams.Params.CommandName Then sName = LPWSTRtoStr(pEventParams.Params.CommandName, False)
203 | ' If pEventParams.Params.ParentCommandName Then sParName = LPWSTRtoStr(pEventParams.Params.ParentCommandName, False)
204 | RaiseEvent OnRibbonUIEventMessage(pEventParams.EventType, pEventParams.Params.CommandID, 0, sName, pEventParams.Params.ParentCommandID, sParName, pEventParams.Params.SelectionIndex, pEventParams.Params.Location, hr)
205 | End If
206 |
207 | Err.ReturnHResult = hr
208 |
209 | End Sub
210 |
211 | End Class
212 |
213 | [ COMCreatable (False) ]
214 | [ Description ("A generic class to represent a Ribbon Gallery Item") ]
215 | Class clsRibbonGalleryItem
216 | Implements IUISimplePropertySet
217 |
218 | Private pImg As IUIImage
219 | Private pImgFact As UIRibbonImageFromBitmapFactory
220 | Private mLabel As String
221 | Private mCategory As Long
222 | Private mCommand As Long
223 | Private mCmdType As UI_COMMANDTYPE
224 |
225 | Private Sub IUISimplePropertySet_GetValue(key As PROPERTYKEY, value As Variant) Implements IUISimplePropertySet.GetValue
226 | If VarPtr(key) = 0 Then
227 | Err.ReturnHResult = E_POINTER
228 | Exit Sub
229 | End If
230 |
231 | If IsEqualPKEY(key, UI_PKEY_ItemImage) Then
232 | If pImg IsNot Nothing Then
233 | Set value = pImg
234 | Else
235 | Err.ReturnHResult = S_FALSE
236 | End If
237 | ElseIf IsEqualPKEY(key, UI_PKEY_Label) Then
238 | InitPropVariantFromString mLabel, value
239 | ElseIf IsEqualPKEY(key, UI_PKEY_CategoryId) Then
240 | InitPropVariantFromUInt32 mCategory, value
241 | ElseIf IsEqualPKEY(key, UI_PKEY_CommandId) Then
242 | If mCommand <> -1 Then
243 | InitPropVariantFromUInt32 mCommand, value
244 | Else
245 | Err.ReturnHResult = S_FALSE
246 | End If
247 | ElseIf IsEqualPKEY(key, UI_PKEY_CommandType) Then
248 | InitPropVariantFromUInt32 mCmdType, value
249 | Else
250 | Err.ReturnHResult = E_FAIL
251 | End If
252 | End Sub
253 |
254 | Public Function SetImageByObject(pI As IUIImage) As Long
255 | Set pImg = pI
256 | End Function
257 |
258 | Public Function SetImageByResID(ByVal nID As Long, Optional ByVal hModule As LongPtr = 0) As Long
259 | Dim hBmp As LongPtr
260 | If hModule = 0 Then hModule = App.hInstance
261 | hBmp = LoadImageW(hModule, nID, IMAGE_BITMAP, 0, 0, LR_CREATEDIBSECTION)
262 | If hBmp = 0 Then
263 | Debug.Print "Failed to load image " & nID & ", err=" & Err.LastDllError
264 | Return Err.LastDllError
265 | End If
266 | SetImageByResID = SetImageByBitmap(hBmp)
267 | ' DeleteObject hBmp
268 | End Function
269 | [ Description ("Sets the item image by HBITMAP. NOTE: It is the callers responsibility to free the bitmap.") ]
270 | Public Function SetImageByBitmap(ByVal hbm As LongPtr) As Long
271 | pImgFact.CreateImage hbm, UI_OWNERSHIP_TRANSFER, pImg
272 | Debug.Print "SetImageByBitmap(" & hbm & ")=0x" & Hex$(Err.LastHResult)
273 | Return Err.LastHResult
274 | End Function
275 |
276 | Public Property Let CategoryID(ByVal nID As Long): mCategory = nID: End Property
277 | Public Property Get CategoryID() As Long: CategoryID = mCategory: End Property
278 |
279 | Public Property Let CommandID(ByVal nID As Long): mCommand = nID: End Property
280 | Public Property Get CommandID() As Long: CommandID = mCommand: End Property
281 |
282 | Public Property Let CommandType(ByVal nType As UI_COMMANDTYPE): mCmdType = nType: End Property
283 | Public Property Get CommandType() As UI_COMMANDTYPE: CommandType = mCmdType: End Property
284 |
285 | Public Property Let Label(ByVal sLabel As String): mLabel = sLabel: End Property
286 | Public Property Get Label() As String: Label = mLabel: End Property
287 |
288 |
289 |
290 | Private Sub Class_Initialize()
291 | Set pImgFact = New UIRibbonImageFromBitmapFactory
292 | mCategory = -1
293 | mCommand = -1
294 | End Sub
295 |
296 | Private Sub Class_Terminate()
297 | Set pImg = Nothing
298 | Set pImgFact = Nothing
299 | End Sub
300 |
301 |
302 |
303 | End Class
304 |
305 | [ COMCreatable (False) ]
306 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
307 | Class clsRibbonMRUFile
308 | 'Populates the MRU list
309 |
310 | Implements IUISimplePropertySet
311 |
312 | Private mFullPath As String
313 | Private mDisplayName As String
314 | Private mLabelOvr As String, mDesc As String
315 | Private bAutoDesc As Boolean
316 | Private mPinned As Boolean
317 |
318 | [ Description ("A generic class to represent files in Ribbon Recent Items. If you specify a label override, automatic description will be ignored, you need not specify a file path, and you must manually specify a label description if you want one.") ]
319 | Sub New(sFileFullPath As String, Optional sLabelOverride As String = "", Optional bAutomaticDescriptionOfType As Boolean = True, Optional sLabelDescription As String = "", Optional bPinned As Boolean = False)
320 | mFullPath = sFileFullPath
321 | mPinned = bPinned
322 | If sLabelOverride <> "" Then
323 | mDisplayName = sLabelOverride
324 | mDesc = sLabelDescription
325 | Debug.Print "Class constructor set manual disp=" & mDisplayName ",desc=" & mDesc
326 | Exit Sub
327 | End If
328 | Dim psi As IShellItem, psi2 As IShellItem2
329 | SHCreateItemFromParsingName StrPtr(mFullPath), Nothing, IID_IShellItem, psi
330 | If psi IsNot Nothing Then
331 | Set psi2 = psi
332 | Dim propvar As Variant, pv As Variant
333 | psi2.GetProperty PKEY_ItemNameDisplay, propvar
334 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
335 | mDisplayName = pv
336 | VariantClear pv
337 | PropVariantClear propvar
338 |
339 | If bAutomaticDescriptionOfType Then
340 | psi2.GetProperty PKEY_ItemTypeText, propvar
341 | PropVariantChangeType pv, propvar, PVCHF_DEFAULT, VT_BSTR
342 | mDesc = pv
343 | VariantClear pv
344 | PropVariantClear propvar
345 | Else
346 | mDesc = sLabelDescription
347 | End If
348 | Set psi2 = Nothing
349 | Set psi = Nothing
350 | End If
351 | Debug.Print "Class constructor set auto disp=" & mDisplayName ",desc=" & mDesc
352 | End Sub
353 |
354 | Private Sub IUISimplePropertySet_GetValue(key As PROPERTYKEY, value As Variant) Implements IUISimplePropertySet.GetValue
355 | 'Debug.Print "MRUInstance received GetValue, keyptr=" & VarPtr(key)
356 | If (VarPtr(key) = 0) Then
357 | Err.ReturnHResult = E_POINTER
358 | Exit Sub
359 | End If
360 |
361 | Dim hr As Long = HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
362 |
363 | If IsEqualPKEY(key, UI_PKEY_Label) Then
364 | InitPropVariantFromString mDisplayName, value
365 | hr = S_OK
366 | End If
367 |
368 | If IsEqualPKEY(key, UI_PKEY_LabelDescription) Then
369 | If bAutoDesc OrElse (mDesc <> "") Then
370 | InitPropVariantFromString mDesc, value
371 | hr = S_OK
372 | End If
373 | End If
374 |
375 | If IsEqualPKEY(key, UI_PKEY_Pinned) Then
376 | value = CVar(mPinned)
377 | hr = S_OK
378 | End If
379 |
380 | Err.ReturnHResult = hr
381 | End Sub
382 |
383 | Public Property Get File() As String
384 | Return mFullPath
385 | End Property
386 |
387 | [ Description ("Whether the item is pinned to the MRU list.") ]
388 | Public Property Get Pinned() As Boolean: Pinned = mPinned: End Property
389 | Public Property Let Pinned(fPinned As Boolean): mPinned = fPinned: End Property
390 |
391 |
392 | End Class
--------------------------------------------------------------------------------
/SourceExport-Basic/Form1.tbform:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "AlwaysShowKeyboardCues": false,
4 | "Appearance": "vbAppear3d",
5 | "AutoRedraw": false,
6 | "BackColor": -2147483633,
7 | "BorderStyle": "vbFixedSingle",
8 | "Caption": "UI Ribbon Framework Demo",
9 | "ClipControls": true,
10 | "ControlBox": true,
11 | "DrawMode": "vbCopyPen",
12 | "DrawStyle": "vbSolid",
13 | "DrawWidth": 1,
14 | "Enabled": true,
15 | "FillColor": 0,
16 | "FillStyle": "vbFSTransparent",
17 | "FontBold": false,
18 | "FontItalic": false,
19 | "FontName": "Segoe UI",
20 | "FontSize": 8,
21 | "FontStrikethru": false,
22 | "FontTransparent": true,
23 | "FontUnderline": false,
24 | "ForeColor": -2147483630,
25 | "FormDesignerId": "{6D393482-82F0-45C3-B441-A8093D57E3AB}",
26 | "HasDC": true,
27 | "Height": 373,
28 | "HelpContextID": 0,
29 | "Icon": "AAABAAQAEBAAAAEAIABoBAAARgAAABgYAAABACAAiAkAAK4EAAAgIAAAAQAgAKgQAAA2DgAAMDAAAAEAIACoJQAA3h4AACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAAAAAAQAAAAGAAAACAAAAAnAAAALwAAADYAAAA7AAAAQAAAAEIAAABBAAAAPQAAADcAAAAxAAAAKQAAACIAAAAYmGUKlZ9qCvqfagr/n2oK/59qCv+fawz/om8T/6R0HP+oeif/q4E0/6+IQP+zkE//uJhe/72hb/+9onL7lGMJmdCmNPv//////////////////////////////////////////////////////////////////////////59qCvvQpjT////+//j4+P/4+Pj/9/f3/8LBwP/29vb/9fX1//T09P/z8/P/wL++/+/v7//u7u7/7Ozr//7+/v+fagr/0KY0///////5+fn/+Pj4//j4+P/CwsD/9/f3//b29v/29vb/9PT0/8HAv//x8fH/7+/v/+7u7f//////n2oK/9CmNP//////vby7/728u/+9vLv/vby7/728u/+9vLv/vby7/728u/+9vLv/vby7/728u/+9vLv//////59qCv/QpjT///////v7+//6+vr/+fn5/8PCwf/5+fn/+fn5//n5+f/4+Pj/wsLA//X19f/z8/P/8vLy//////+fagr/1K5F///////7+/v/+/v7//v7+//Ew8L/+/v7//r6+v/6+vr/+fn5/8PCwf/4+Pj/9vb2//X19f//////o3EW/92+bP//////vby7/728u/+9vLv/vby7/728u/+9vLv/vby7/728u/+9vLv/vby7/728u/+9vLv//////7CFNv/ewHD///////39/f/8/Pz//Pz8/8TEwv/8/Pz//Pz8//v7+//7+/v/w8PC//n5+f/5+fn/+Pj4//////+ziT3/4MR3//39/P/8/Pz//Pz8//z8/P/Hx8b//Pz8//z8/P/8/Pz/+/v7/8fGxf/6+vr/+vr6//n5+f/5+fn/tYxC/+TLiP/u1Kz/5r6A/+bAhP/kuHb/361f/96pWf/eqVn/3adW/92nVv/dp1T/3aZS/92lUf/dpFD/58OL/7ePR//n0pf/9OTG//DWpf/u0Zv/6cWB/+a8bf/luGb/5bhm/+W4ZP/kuGP/47Zh/+O2Yf/jtmD/47Ve/+zRnf+5k07/69in//jt2f/y3bb/7tOe/+rIhv/nvnL/5btr/+W7av/lumn/5bln/+W4Zv/luGb/5bhk/+S4Y//u1qf/vJdU/+3ds/v68ub/+O7c//Xoz//z4sP/8d66//Hctf/x3LX/8dy1//DbtP/w27T/8Nq0//Dasv/v2rL/79qx/76aWfvv4buO7d60+uvZqv/o1J3/5s6Q/+PJhv/ix3//4sd//+LGfv/ixn7/4cZ9/+HGff/gxXz/4MV7/+DFe/rgxXmOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAkAABILAAASCwAAAAAAAAAAAAAAAAAIAAAADgAAABUAAAAbAAAAIQAAACcAAAAuAAAAMwAAADgAAAA8AAAAQAAAAEIAAABEAAAAQwAAAEEAAAA9AAAAOQAAADQAAAAuAAAAKQAAACMAAAAcAAAAFgAAAA+bZwqSn2oK+p9qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK+phlCpXQpjT7//////b07//4+Pj/9/f3//f39//39/f/wsLA//v7+//19fX/9fX1//T09P/z8/P/8fHx//Dw8P+/vr3/+Pj4/+3t7f/s7Ov/6+vq/+rq6f/o6Oj//////59qCvvQpjT///////j4+P/4+Pj/9/f3//f39//39/f/wsHA//v7+//29vb/9PT0//T08//z8/P/8vLy//Dw8P+/vr3/+Pj4/+3t7P/s7Ov/6urq/+np6f/o6Of//////59qCv/QpjT//////8PDwv/DwsH/w8LB/8LCwP/CwsD/rayq/+fm5v/CwcD/wsHA/8HAv//BwL//wcC//8DAvv+sq6r/5eXl/7++vf++vrz/vr28/729u/+9vLv//////59qCv/QpjT//////+jo6P/m5ub/5ubm/+bm5v/m5uX/u7u5//X19f/l5eX/5eXl/+Xl5f/k5OP/5OTj/+Pj4/+6ubj/8/Pz/+Dg4P/g4N//39/f/97e3v/e3t3//////59qCv/QpjT///////X19f/19fX/9fX1//X19f/19fX/wcHA//v7+//19fX/9PT0//T09P/09PT/9PT0//T09P/BwL//+vr6//Pz8//z8/L/8vLy//Ly8v/y8vH//////59qCv/QpjT//////728u/+7u7r/u7u6/7u7uf+7u7n/qqqo/+Tj4/+7urn/u7q5/7u6uf+7urn/u7q5/7u6uP+qqaf/4+Pj/7q5uP+5uLf/ubi3/7m4tv+5uLf//////59qCv/QpjT///////r6+v/6+vr/+fn5//n5+f/5+fn/w8LB//z8/P/39/f/9/f3//f39//29vb/9vb2//b29v/BwcD/+/v7//Pz8//y8vL/8PDw/+/v7//u7u7//////59qCv/QpjT///////v7+//6+vr/+vr6//n5+f/5+fn/w8LB//z8/P/4+Pj/9/f3//f39//39/f/9vb2//b29v/CwcD/+/v7//T09P/z8/P/8vLy//Hx8f/v7+///////59qCv/QpjT///////v7+//7+/v/+vr6//r6+v/5+fn/w8LB//39/f/4+Pj/+Pj4//f39//39/f/9/f3//b29v/CwcD/+/v7//X19f/09PT/8/Pz//Ly8v/x8fH//////59qCv/QpjT//////8XEw//Ew8L/xMPC/8PDwv/Dw8L/rayr/+fn5v/DwsH/w8LB/8PCwf/CwsD/wsLA/8LCwP+trKr/5+bm/8LBwP/BwcD/wcC//8HAv//AwL7//////59qCv/QpjT//////+np6f/n5+f/5+fn/+fn5//n5+b/vLu6//X19f/m5ub/5ubm/+bm5v/n5+b/5+fm/+bm5v+7u7r/9fX1/+Xl5f/k5OT/5OTj/+Pj4v/j4+P//////59qCv/QpjT///////b29v/29vb/9fX1//X19f/19fX/wcHA//v7+//19fX/9fX1//X19f/19fX/9fX1//X19f/BwcD/+/v7//X19f/19fX/9fX1//X19f/09PT//////6NxFv/QpjT//////769vP+9vLr/vby7/728u/+9vLv/q6qo/+Xk5P+9vLv/vLy6/7y8uv+8vLr/vLy6/7y8uv+rqqj/5OTj/7y7uv+8u7r/u7u6/7u7uv+8u7r//////6+DMv/SqDj///////39/f/9/f3//Pz8//z8/P/8/Pz/xMTC//7+/v/8/Pz//Pz8//z8/P/7+/v/+/v7//r6+v/Dw8L//f39//n5+f/5+fn/+fn5//j4+P/4+Pj//////7KHOf/cu2T///////7+/v/9/f3//f39//z8/P/8/Pz/xMTC//7+/v/8/Pz//Pz8//z8/P/8/Pz/+/v7//v7+//Dw8L//f39//r6+v/5+fn/+fn5//n5+f/4+Pj//////7OJPf/iyIP///////39/f/9/f3//f39//z8/P/8/Pz/xMTC//7+/v/8/Pz//Pz8//z8/P/8/Pz//Pz8//v7+//Ew8L//f39//r6+v/6+vr/+vr6//r6+v/5+fn//////7WMQv/ky4n/7tOr/+fBh//nwor/6MKJ/+W8f//hsmr/4Kxe/9+qWv/eqVn/3qlZ/96pV//eqVf/3adW/92nVP/dp1T/3aZS/92lUf/dpVH/3aRQ/92kUP/cpE7/5r6C/7aORv/lz5D/9OLC/+/Uof/w1aT/7tCa/+vIh//nwHf/5rpq/+W4Zv/luGb/5bhk/+W4ZP/kuGP/5Lhj/+O2Yf/jtmD/47Zg/+O1Xv/jtV7/47Rd/+OzXP/js1z/682T/7mRS//o05r/9+rS//Ldt//x2q//7tKd/+vKiv/ownv/5rxu/+W7av/lumn/5bpp/+W5Z//luGb/5bhm/+W4ZP/luGT/5Lhj/+S4Y//jtmH/47Zh/+O2YP/jtV7/7NGd/7qUT//q16P/+fDf//Tjwv/x27P/7tOe/+zLjv/pxH7/5r5x/+a7bf/lu2v/5btr/+W7av/lu2r/5bpp/+W6af/luWf/5bhm/+W4Zv/luGT/5bhk/+S4Y//kuGP/7tan/7yXVP/r2ar7+/To//nx4f/47dn/9ejP//Tlx//y4L//8d64//Hctv/x3LX/8dy1//Hctf/x3LX/8Nu0//DbtP/w2rT/8Nq0//Dasv/w2rL/79qy/+/asv/v2rH/79qx/76ZV/vt3K+O69qr+urYpf/p1Z7/59KX/+XOjv/jy4j/48mC/+LHf//ix3//4sZ+/+LGfv/ixn7/4cZ9/+HGff/gxXz/4MV8/+DFe//gxXv/4MV5/+DFef/gw3j/4MN4+t/Dd44AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAIAAAAEAAAAABACAAAAAAAAAQAAASCwAAEgsAAAAAAAAAAAAAAAAACQAAAA4AAAATAAAAGAAAAB0AAAAjAAAAJwAAACwAAAAyAAAANgAAADoAAAA9AAAAQgAAAEQAAABHAAAASAAAAEkAAABJAAAASAAAAEUAAABCAAAAPwAAADsAAAA3AAAAMgAAAC4AAAApAAAAJAAAAB8AAAAZAAAAFAAAAA+bZwqSn2oK+p9qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr6mGUKldCmNPvQpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP/Qpkz/0KZM/9CmTP+fagr70KY0//j49//4+Pj/+Pj4//f39//39/f/9/f3//f39//29vb/9vb2//X19f/19fX/9PT0//Pz8//y8vL/8vLy//Hx8f/x8fD/7+/v/+7u7v/u7u3/7e3t/+zs7P/r6+v/6+vq/+rq6f/p6en/6Ojo/+fn5//m5ub/5+fm/59qCv/QpjT//////8jHxv/DwsH/w8LB/8LCwP/CwsD/rayq/+fn5v/CwcD/wsHA/8HBwP/BwcD/wcG//8HAv/+trKr/5ubl/8C/vv/Av77/v769/7++vf+/vrz/vr68/6uqqf/l5eT/vb27/728u/+9vLv/vLy6/7y7uv//////n2oK/9CmNP//////6Ojo/+bm5v/m5ub/5ubm/+bm5f+7u7n/9fX1/+bm5f/l5eX/5eXl/+Tk5P/k5OT/5OTj/7q6uP/09PP/4uLi/+Li4f/i4uH/4eHh/+Dg3//g4N//ubi3//Ly8v/e3t3/3t7d/93d3P/c3Nz/3Nzc//////+fagr/0KY0///////09PT/9fX1//X19f/19fX/9fX1/8HBwP/7+/v/9fX1//X19f/09PT/9PT0//T09P/09PT/wcC///r6+v/z8/P/8/Pz//Pz8//z8/P/8/Pz//Ly8v/AwL7/+vr6//Ly8f/x8fH/8fHx//Hx8f/x8fH//////59qCv/QpjT//////8C/vv+7u7r/u7u6/7u7uf+7u7n/qqqo/+Tj4/+7urn/u7q5/7u6uf+7urn/u7q5/7u6uP+qqaf/5OPj/7q5uP+6ubj/urm4/7m5uP+5ubf/ubi3/6mop//j4+L/uLi2/7i4tv+4t7b/uLe2/7i3tv//////n2oK/9CmNP//////+vr6//n5+f/5+fn/+fn5//j4+P/DwsH//Pz8//j4+P/39/f/9/f3//f39//29vb/9vb2/8HBwP/7+/v/9fX0//Pz8//y8vL/8vLy//Hx8f/x8fD/v7++//j4+P/u7u3/7e3t/+zs7P/r6+v/6+vq//////+fagr/0KY0///////6+vr/+vr6//n5+f/5+fn/+fn5/8PCwf/8/Pz/+Pj4//j4+P/39/f/9/f3//f39//29vb/wsHA//v7+//19fX/9PT0//T09P/z8/L/8vLy//Hx8f/Av77/+fn5/+7u7v/u7u3/7e3t/+zs7P/r6+v//////59qCv/QpjT///////r6+v/6+vr/+vr6//n5+f/5+fn/w8LB//z8/P/4+Pj/+Pj4//j4+P/39/f/9/f3//f39//CwsD/+/v7//X19f/19fX/9fX0//T09P/y8vL/8vLy/8C/vv/5+fn/8PDw/+7u7v/u7u3/7e3t/+zs7P//////n2oK/9CmNP//////xMTC/8PDwv/Dw8L/w8PC/8PCwf+trKv/5+fm/8PCwf/DwsH/w8LB/8PCwf/CwsD/wsLA/62sqv/n5+b/wsHA/8HBwP/BwcD/wcG//8HAv//AwL7/rKyq/+bl5f/Av77/v7++/7++vf+/vrz/vr68//////+fagr/0KY0///////p6en/6Ojo/+jo5//o6Of/6Ojn/7y7uv/19fX/5+fn/+bm5v/m5ub/5ubm/+bm5v/m5uX/u7u5//X19f/m5uX/5eXl/+Tk5P/k5OT/5OTj/+Tk4/+6ubj/8/Pz/+Li4f/i4uH/4eHh/9/f3//g4N///////59qCv/QpjT///////b29v/19fX/9fX1//X19f/19fX/wcHA//v7+//19fX/9fX1//X19f/19fX/9fX1//X19f/BwcD/+/v7//X19f/19fX/9PT0//T09P/09PT/9PT0/8HAv//6+vr/8/Pz//Pz8//z8/P/8/Pz//Pz8v//////n2oK/9CmNP//////vby7/7y7uv+8u7r/vLu6/7y7uv+rqqj/5OTj/7u7uv+7u7r/u7u6/7u7uv+7u7n/u7u5/6qqqP/k5OP/u7u6/7u7uv+7u7r/u7u5/7u6uf+7urn/qqmo/+Tj4/+6ubj/urm4/7m5uP+5ubf/ubm4//////+fagr/0KY0///////8/Pz/+/v7//v7+//7+/v/+/v7/8PDwv/9/f3/+vr6//r6+v/7+/v/+/v7//v7+//6+vr/w8PC//39/f/5+fn/+fn5//n5+f/5+fn/+Pj4//f39//CwsD/+/v7//b29v/19fX/9PT0//Pz8//z8/L//////6FsDv/QpjT///////z8/P/8/Pz/+/v7//v7+//7+/v/xMPC//7+/v/8/Pz//Pz8//v7+//7+/v/+/v7//v7+//Dw8L//f39//r6+v/5+fn/+fn5//n5+f/5+fn/+Pj4/8LCwP/8/Pz/9vb2//b29v/19fX/9PT0//Pz8///////rH8r/9CmNP///////Pz8//z8/P/8/Pz//Pz8//z8/P/ExML//v7+//z8/P/8/Pz//Pz8//v7+//7+/v/+/v7/8TDwv/9/f3/+vr6//r6+v/5+fn/+fn5//n5+f/5+fn/w8LB//z8/P/39/f/9/f2//b29v/19fX/9PT0//////+whTb/0KY0///////FxcT/xMTC/8TEwv/ExML/xMTC/66tq//n5+f/xMTC/8TEwv/ExML/xMTC/8TDwv/Ew8L/rq2r/+fn5//Dw8L/w8PC/8PDwv/DwsH/w8LB/8PCwf+trKv/5+fm/8LCwP/CwsD/wsHA/8LBwP/BwcD//////7GGOP/SqDj//////+rq6f/p6ej/6Ojo/+jo6P/o6Oj/vLy6//b29v/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+fn5/+8u7r/9fX1/+fn5//n5+b/5+fm/+fn5v/m5ub/5ubm/7u7uv/19fX/5ubl/+Xl5f/l5eX/5OTk/+Xl5f//////sog7/9m3Wv//////9/f2//b29v/29vb/9vb2//b29v/CwcD/+/v7//b29v/29vb/9vb2//b29v/29vb/9vb2/8LBwP/7+/v/9fX1//X19f/19fX/9fX1//X19f/19fX/wcHA//v7+//19fX/9fX1//X19f/19fX/9fX1//////+0ij//38N2//////++vbz/vby7/728u/+9vLv/vby7/6uqqP/l5OT/vby7/728u/+9vLv/vby7/728u/+9vLv/q6qo/+Xk5P+8vLr/vLy6/7y8uv+8vLr/vLy6/7y8uv+rqqj/5OTj/7y7uv+8u7r/u7u6/7u7uf+7u7r//////7WMQv/hxnz//v79//7+/v/9/f3//f39//39/f/9/f3/xcTD//7+/v/9/f3//f39//39/f/9/f3//Pz8//z8/P/ExML//v7+//z8/P/7+/v/+/v7//v7+//6+vr/+vr6/8PDwv/9/f3/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/to5G/+LHf//9/f3//f39//39/f/9/f3//f39//39/f/FxMP//v7+//39/f/9/f3//f39//39/f/9/f3//Pz8/8TEwv/+/v7//Pz8//v7+//7+/v/+/v7//v7+//6+vr/w8PC//39/f/5+fn/+fn5//n5+f/5+fn/+Pj4//n5+f+3kEn/48mF/+zOof/nwYb/6MCH/+jBh//owon/6MKI/+W8fP/jtXD/4K9m/+CtYf/grWH/36xf/9+sX//frF7/36xe/9+rXP/fq1z/36pa/9+qWv/fqlr/3qlZ/96pWf/eqVf/3qlX/92nVv/dp1b/3adW/92nVP/dplL/5Ll5/7mTTv/kzIr/8dy1/+3Rmv/t0Zv/7dGd/+7Rnf/tzZL/6siG/+jCef/mvXD/5btr/+W7av/lu2r/5bpp/+W6af/lumn/5bln/+W5Z//luGb/5bhm/+W4ZP/luGT/5Lhj/+S4Y//kuGP/47Zh/+O2Yf/jtmH/47Zg/+O1Xv/qx4j/u5VQ/+XNjv/04sT/8Nep//HYqv/x2Kv/79Wj/+3NlP/qyIj/6cN9/+e/dP/mu23/5rtt/+W7a//lu2v/5btr/+W7av/lu2r/5bpp/+W6af/lumn/5bln/+W5Z//luGb/5bhm/+W4Zv/luGT/5bhk/+S4Y//kuGP/47Zh/+vLkv+8l1T/5tCT//bp0P/y3rf/8t+5//Lbsf/v1aT/7c+W/+vJiv/pxH7/6L91/+a9cf/mvW7/5r1u/+a9bv/mu23/5rtt/+W7a//lu2v/5btr/+W7av/lu2r/5bpp/+W6af/lumn/5bln/+W5Z//luGb/5bhm/+W4Zv/luGT/7dCa/7yYVf/n0pf/+O7b//XkxP/04r//8tyz/+/Wpf/u0Jn/68uN/+nEgf/owHj/5r5y/+a9cP/mvXD/5r1w/+a9bv/mvW7/5r1u/+a7bf/mu23/5rtt/+W7a//lu2v/5btr/+W7av/lu2r/5bpp/+W6af/lumn/5bln/+W5Z//u06L/vppZ/+jTm//68+T/9ujL//Xjwf/z3bb/79an/+7Rm//ry47/6cWC/+jCev/nvnP/575z/+a+cf/mvnH/5r5x/+a9cP/mvXD/5r1w/+a9cP/mvW7/5r1u/+a9bv/mu23/5rtt/+a7bf/lu2v/5btr/+W7av/lu2r/5bpp/+/Yq/+/m1z/59Ka+/v16v/68+b/+fDg//jt2v/26tP/9ujN//Tkx//z4sH/8t+8//HduP/x3bj/8d23//Hdt//x3bf/8d23//Hct//x3Lf/8dy3//Hctv/x3Lb/8dy2//Hctv/x3LX/8dy1//Hctf/x3LX/8dy1//Hctf/w27T/8Nu0/8CeX/vjyYWO6NOc+ujTm//o0pj/59GV/+XPkv/kzo//5MuL/+TLiP/jyYX/4smE/+LJhP/iyYT/4siC/+LIgv/iyIL/4siB/+LIgf/iyIH/4siB/+LHf//ix3//4sd//+LHf//ixn7/4sZ+/+LGfv/hxn3/4cZ9/+HGff/gxXz64MV8jgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAADAAAABgAAAAAQAgAAAAAAAAJAAAEgsAABILAAAAAAAAAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAFAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAASAAAAEwAAABQAAAAVAAAAFQAAABcAAAAXAAAAFwAAABcAAAAXAAAAFwAAABcAAAAWAAAAFQAAABUAAAAUAAAAEwAAABIAAAARAAAAEAAAAA8AAAANAAAADQAAAAsAAAAKAAAACgAAAAgAAAAHAAAABQAAAAUAAAADAAAAAwAAAAUAAAAJAAAADgAAABIAAAAWAAAAGgAAAB8AAAAkAAAAJwAAACwAAAAvAAAAMwAAADcAAAA7AAAAPwAAAEIAAABGAAAASQAAAEsAAABOAAAAUAAAAFIAAABUAAAAVQAAAFcAAABXAAAAVQAAAFQAAABSAAAATwAAAE4AAABKAAAASAAAAEQAAABBAAAAPQAAADoAAAA2AAAAMQAAAC0AAAApAAAAJQAAACAAAAAbAAAAFwAAABMAAAAOAAAACwAAAAUAAAAJjF4JVJ5pCumfagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/n2oK/59qCv+fagr/nmkK5odaCVcAAAAOAAAACwAAAAIAAAAC0KY05u3PnP/UrlD/1K1Q/9OsT//TrE//06tP/9KqTv/Sqk7/0qlO/9KpTf/SqE3/0adN/9GnTP/Rpkz/0KZM/9ClS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEv/0KRL/9CkS//QpEr/0KVP/59qCucAAAADAAAAA////wD///8A0KY0///////7+/v/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/7+/v//////59qCv8AAAABAAAAAP///wD///8A0KY0///////CwcD/w8LB/8PCwf/CwsD/wsLA/8LBwP/CwcD/wsHA/8HBwP+trKr/2tnZ/8HAv//BwL//wcC//8DAvv/AwL7/wL++/7+/vv+/v73/rKup/9nY1/+/vr3/vr68/769vP++vbz/vb28/729vP+9vLv/vby7/6uqqP/X19b/vLy6/7y8uv+8vLr/vLu6/7y7uv+7u7n/u7u5/7u6uf/GxcT//////59qCv////8AAAAAAP///wD///8A0KY0///////k5OP/5ubm/+bm5v/m5ub/5ubl/+bm5f/l5eX/5eXl/+Xl5f+7urn/7+/v/+Tk4//j4+P/4+Pj/+Pj4//i4uL/4uLi/+Li4f/h4eH/ubm3/+zs7P/g4OD/4ODf/9/f3//e3t7/3t7e/97e3f/e3t3/3d3d/7i3tv/q6ur/3Nzc/9zc2//c3Nv/3Nzb/9vb2v/b29r/2trZ/9ra2f/k5OP//////59qCv////8A////AP///wD///8A0KY0///////j4+P/5ubl/+bm5f/m5uX/5ubl/+Xl5f/l5eX/5OTk/+Tk5P+7urn/7+/u/+Tk4//j4+P/4uLi/+Li4v/i4uL/4uLh/+Li4f/h4eD/ubi3/+zs7P/g4N//4ODf/97e3v/e3t7/3t7d/97e3f/d3d3/3d3d/7e3tv/q6ur/3Nzb/9zc2//b29v/29va/9vb2v/a2tn/2trZ/9ra2f/j4+P//////59qCv////8A////AP///wD///8A0KY0///////j4+P/5ubm/+bm5f/m5uX/5ubl/+bm5f/l5eX/5eXl/+Tk5P+7urn/7+/v/+Tk4//k5OP/4+Pj/+Li4v/i4uL/4uLi/+Li4f/i4uH/ubm3/+zs7P/g4N//4ODf/+Dg3//e3t7/3t7e/97e3f/e3t3/3d3d/7i3tv/q6ur/3Nzc/9zc2//c3Nv/29vb/9vb2v/b29r/2trZ/9ra2f/j4+P//////59qCv////8A////AP///wD///8A0KY0///////v7+7/8fHx//Hx8f/w8PD/8PDw//Dw8P/w8PD/8PDv//Dw7/+/vr3/9fX1/+/v7//v7+//7+/v/+/v7v/u7u7/7u7u/+7u7v/u7u7/v769//X19P/t7e3/7e3s/+zs7P/s7Oz/7Ozs/+zs7P/r6+v/6+vr/729vP/z8/P/6+vr/+vr6//q6ur/6urq/+rq6f/q6un/6urp/+np6f/u7u3//////59qCv////8A////AP///wD///8A0KY0///////CwcD/w8LB/8PCwf/DwsH/w8LB/8PCwf/DwsH/w8LB/8LCwP+trKr/2trZ/8LBwP/CwcD/wcHA/8HBwP/BwL//wcC//8HAv//BwL//rKyq/9nZ2P/Av77/v7++/7+/vf+/vr3/v769/76+vP++vrz/vr28/6uqqf/X19f/vb28/728u/+9vLv/vby7/728u/+8vLr/vLy6/7y8uv/GxcT//////59qCv////8A////AP///wD///8A0KY0///////09PT/+fn5//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/CwsD/+vr6//b29v/29vb/9vb2//X19f/19fX/9PT0//Pz8//z8/P/wcC///f39//y8vL/8fHw//Dw8P/w8O//7+/v/+/v7//t7e3/7e3t/769vP/09PT/6+vr/+vr6//q6ur/6urq/+np6f/p6en/6Ojo/+jo5//09PT//////59qCv////8A////AP///wD///8A0KY0///////09PT/+fn5//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/DwsH/+vr6//f39//29vb/9vb2//b29v/19fX/9fX1//T09P/z8/P/wcC///j4+P/y8vL/8vLy//Hx8P/w8PD/8PDv/+/v7//v7+//7e3t/76+vP/09PT/7Ozs/+vr6//r6+v/6urq/+rq6v/p6en/6enp/+jo6P/09PT//////59qCv////8A////AP///wD///8A0KY0///////09PT/+vr6//n5+f/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/DwsH/+/v7//f39//39/f/9vb2//b29v/29vb/9fX1//X19f/09PT/wcC///j4+P/z8/P/8vLy//Ly8v/x8fD/8PDw//Dw7//v7+//7+/v/76+vP/09PT/7Ozs/+zs7P/r6+v/6+vr/+rq6v/q6ur/6enp/+np6f/09PT//////59qCv////8A////AP///wD///8A0KY0///////4+Pj//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//v7+//Ew8L//f39//v7+//6+vr/+vr6//r6+v/6+vr/+vr6//n5+f/5+fn/w8LB//v7+//4+Pj/+Pj4//f39//39/f/9/f2//b29v/29vX/9fX1/8HBwP/4+Pj/9PT0//T09P/09PT/8/Pz//Pz8//y8vL/8vLy//Ly8v/4+Pj//////59qCv////8A////AP///wD///8A0KY0///////GxcT/w8PC/8PDwv/Dw8L/w8LB/8PCwf/DwsH/w8LB/8PCwf+trKv/29ra/8PCwf/DwsH/wsLA/8LCwP/CwcD/wsHA/8LBwP/BwcD/rayq/9rZ2f/BwL//wcC//8HAv//AwL7/wMC+/8C/vv+/v77/v7+9/6yrqf/Z2Nf/vr68/76+vP++vbz/vr28/729vP+9vbz/vby7/728u//GxcT//////59qCv////8A////AP///wD///8A0KY0///////k5OP/6Ojn/+jo5//o6Of/6Ojn/+fn5//n5+f/5+fn/+fn5/+8u7r/8PDw/+bm5v/m5ub/5ubm/+bm5f/m5uX/5eXl/+Xl5f/l5eX/u7q5/+/v7//k5OP/4+Pj/+Pj4//j4+P/4uLi/+Li4v/i4uH/4eHh/7m5t//s7Oz/4ODg/9/f3//f39//3t7e/97e3v/e3t3/3t7d/93d3f/k5OP//////59qCv////8A////AP///wD///8A0KY0///////j4+P/5+fn/+fn5v/n5+b/5+fm/+fn5v/m5ub/5ubm/+bm5v+7u7r/8PDw/+bm5f/m5uX/5ubl/+bm5f/l5eX/5eXl/+Tk5P/k5OT/u7q5/+/v7v/k5OP/4+Pj/+Li4v/i4uL/4uLi/+Li4f/i4uH/4eHg/7m4t//s7Oz/4ODf/+Dg3//e3t7/3t7e/97e3f/e3t3/3d3d/93d3f/j4+P//////59qCv////8A////AP///wD///8A0KY0///////j4+P/5+fn/+fn5//n5+b/5+fm/+fn5v/n5+b/5ubm/+bm5v+7u7r/8PDw/+bm5v/m5uX/5ubl/+bm5f/m5uX/5eXl/+Xl5f/k5OT/u7q5/+/v7//k5OP/5OTj/+Pj4//i4uL/4uLi/+Li4v/i4uH/4uLh/7m5t//s7Oz/4ODf/+Dg3//g4N//3t7e/97e3v/e3t3/3t7d/93d3f/j4+P//////59qCv////8A////AP///wD///8A0KY0///////u7u3/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/Av77/9/f3//Hx8f/x8fH/8PDw//Dw8P/w8PD/8PDw//Dw7//w8O//v769//X19f/v7+//7+/v/+/v7//v7+7/7u7u/+7u7v/u7u7/7u7u/7++vf/19fT/7e3t/+3t7P/s7Oz/7Ozs/+zs7P/s7Oz/6+vr/+vr6//u7u3//////59qCv////8A////AP///wD///8A0KY0///////GxcT/xMPC/8TDwv/Ew8L/xMPC/8PDwv/Dw8L/w8PC/8PDwv+trKv/29ra/8PCwf/DwsH/w8LB/8PCwf/DwsH/w8LB/8PCwf/CwsD/rayq/9ra2f/CwcD/wsHA/8HBwP/BwcD/wcC//8HAv//BwL//wcC//6ysqv/Z2dj/wL++/7+/vv+/v73/v769/7++vf++vrz/vr68/769vP/GxcT//////59qCv////8A////AP///wD///8A0KY0///////09PT/+/v7//v7+//7+/v/+/v7//v7+//6+vr/+vr6//r6+v/Dw8L/+/v7//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//j4+P/4+Pj/wsLA//r6+v/29vb/9vb2//b29v/19fX/9fX1//T09P/z8/P/8/Pz/8HAv//39/f/8fHx//Hx8P/w8PD/8PDv/+/v7//v7+//7e3t/+3t7f/09PT//////59qCv////8A////AP///wD///8A0KY0///////09PT//Pz8//v7+//7+/v/+/v7//v7+//7+/v/+vr6//r6+v/Dw8L//Pz8//n5+f/5+fn/+fn5//n5+f/4+Pj/+Pj4//j4+P/4+Pj/w8LB//r6+v/39/f/9vb2//b29v/29vb/9fX1//X19f/09PT/8/Pz/8HAv//4+Pj/8vLy//Hx8f/x8fD/8PDw//Dw7//v7+//7+/v/+3t7f/09PT//////59qCv////8A////AP///wD///8A0KY0///////09PT//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+/v7//r6+v/Dw8L//Pz8//r6+v/5+fn/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/w8LB//v7+//39/f/9/f3//b29v/29vb/9vb2//X19f/19fX/9PT0/8HAv//4+Pj/8/Pz//Ly8v/x8fH/8fHw//Dw8P/w8O//7+/v/+/v7//09PT//////59qCv////8A////AP///wD///8A0KY0///////4+Pj//f39//39/f/9/f3//f39//39/f/9/f3//f39//39/f/ExML//f39//z8/P/8/Pz/+/v7//v7+//8/Pz//Pz8//z8/P/8/Pz/xMPC//39/f/7+/v/+vr6//r6+v/6+vr/+vr6//r6+v/5+fn/+fn5/8PCwf/7+/v/+Pj4//j4+P/39/f/9/f3//f39v/29vb/9vb1//X19f/4+Pj//////59qCv////8A////AP///wD///8A0KY0///////CwcD/xMTC/8TEwv/ExML/xMTC/8TDwv/Ew8L/xMPC/8TDwv+urav/3Nva/8TDwv/Ew8L/xMPC/8PDwv/Dw8L/w8PC/8PDwv/Dw8L/ra2r/9vb2v/Dw8L/w8PC/8PCwf/DwsH/w8LB/8PCwf/DwsH/wsHA/62sqv/a2dn/wcC//8HAv//BwL//wMC+/8C/vv/Av77/v7++/7+/vf/GxcT//////59qCv////8A////AP///wD///8A0KY0///////k5OP/6enp/+np6f/p6en/6enp/+np6f/o6Oj/6Ojo/+jo6P+8vLr/8fHx/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P/o6Of/vLy6//Hx8f/o6Of/6Ojn/+jo5//n5+f/5+fn/+bm5v/m5ub/5ubm/7u7uf/v7+//5eXl/+Pj4//j4+P/4+Pj/+Li4v/i4uH/4uLh/+Hh4f/k5OP//////59qCv////8A////AP///wD///8A0KY0///////k5OT/6eno/+jo6P/o6Oj/6Ojo/+jo6P/o6Oj/5+fn/+fn5/+8u7r/8fHx/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/vLu6//Hx8P/n5+b/5+fm/+fn5v/n5+b/5ubm/+bm5v/m5uX/5ubl/7u7uf/v7+//5OTk/+Tk5P/k5OP/5OTj/+Li4v/i4uH/4eHh/+Hh4P/j4+P//////59qCv////8A////AP///wD///8A2LVX///////l5eX/6eno/+np6P/o6Oj/6Ojo/+jo6P/o6Oj/6Ojo/+jo6P+8vLr/8fHx/+fn5//n5+f/5+fn/+fn5//n5+f/5+fn/+fn5//n5+f/vLu6//Hx8f/n5+b/5+fm/+fn5v/n5+b/5+fm/+bm5v/m5ub/5ubl/7u7uf/w8O//5eXl/+Tk5P/k5OT/5OTj/+Tk4//k5OP/4uLh/+Hh4f/j4+P//////59qCv////8A////AP///wD///8A3b5s///////w8O//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/AwL7/9/f3//Ly8v/y8vL/8vLy//Ly8v/y8vL/8fHx//Hx8f/x8fH/wL++//f39//x8fH/8fHx//Hx8f/x8fH/8fHx//Hx8f/x8fH/8fHx/7+/vv/29vb/8PDw//Dw7//v7+//7+/v/+/v7//v7+//7+/v/+/v7v/v7+7//////59qCv////8A////AP///wD///8A3cBv///////DwsH/xcTD/8XEw//FxMP/xcTD/8TEwv/ExML/xMTC/8TEwv+urav/3Nza/8TEwv/ExML/xMTC/8TEwv/ExML/xMTC/8TEwv/ExML/rq2r/9zb2v/Ew8L/xMPC/8PDwv/Dw8L/w8PC/8PDwv/Dw8L/w8LB/62sq//b2tr/w8LB/8PCwf/CwsD/wsHA/8LBwP/BwcD/wcHA/8HBwP/CwsH//////59qCv////8A////AP///wD///8A3sBw///////39/f//f39//39/f/9/f3//f39//39/f/8/Pz//Pz8//z8/P/ExML//f39//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/xMTC//39/f/7+/v/+/v7//v7+//6+vr/+vr6//r6+v/6+vr/+vr6/8PCwf/7+/v/+Pj4//j4+P/4+Pj/9/f3//b29v/29vb/9fX1//X19f/29vb//////6VyGP////8A////AP///wD///8A38Fy///////39/f//v7+//39/f/9/f3//f39//39/f/9/f3//Pz8//z8/P/ExML//f39//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/xMTC//39/f/7+/v/+/v7//v7+//7+/v/+vr6//r6+v/6+vr/+vr6/8PDwv/7+/v/+fn5//j4+P/4+Pj/+Pj4//f39//29vb/9vb2//X19f/29vb//////66BL/////8A////AP///wD///8A38J1///////4+Pj//v7+//7+/v/9/f3//f39//39/f/9/f3//f39//z8/P/ExML//f39//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/xMTC//39/f/8/Pz/+/v7//v7+//7+/v/+/v7//r6+v/6+vr/+vr6/8PDwv/8/Pz/+fn5//n5+f/4+Pj/+Pj4//j4+P/39/f/9vb2//b29v/29vb//////7OJPf////8A////AP///wD///8A38N2///////4+Pj//v7+//7+/v/+/v7//f39//39/f/9/f3//f39//39/f/ExML//f39//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/xMTC//39/f/8/Pz//Pz8//v7+//7+/v/+/v7//v7+//6+vr/+vr6/8PDwv/8/Pz/+fn5//n5+f/5+fn/+Pj4//j4+P/4+Pj/9/f3//b29v/29vb//////7SKP/////8A////AP///wD///8A4MN4///////4+Pj//v7+//7+/v/+/v7//v7+//39/f/9/f3//f39//39/f/FxMP//v7+//z8/P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz/xMTC//39/f/8/Pz//Pz8//z8/P/7+/v/+/v7//v7+//7+/v/+vr6/8PDwv/8/Pz/+vr6//n5+f/5+fn/+fn5//j4+P/4+Pj/+Pj4//f39//29vb//////7WMQv////8A////AP///wD///8A4MV7/+vLm//nwor/58OK/+fDiv/owor/6MOL/+jDi//owoj/5rx//+S4df/hs2v/4K9k/+CrXv/fqlr/36pa/9+qWv/eqVn/3qlZ/96pWf/eqVf/3qlX/96pV//dp1b/3adW/92nVv/dp1T/3adU/92mUv/dplL/3aZS/92lUf/dpVH/3aRQ/92kUP/dpFD/3KRO/9ykTv/bokz/26JM/9uiTP/bokv/4LBm/7aORv////8A////AP///wD///8A4MZ8//DZrf/u0Zv/7tGb/+7Rm//u0pv/7tGb/+7Rm//szZL/68iH/+nDfv/nwHb/5rtu/+W6aP/luGb/5bhk/+W4ZP/luGT/5Lhj/+S4Y//kuGP/47Zh/+O2Yf/jtmH/47Zg/+O2YP/jtmD/47Ve/+O1Xv/jtV7/47Rd/+O0Xf/js1z/47Nc/+OzXP/js1r/47Na/+OzWP/js1j/47NY/+KxV//isVf/5r91/7ePR/////8A////AP///wD///8A4cZ9//Leuf/w1qb/8Nal//DWpv/w16b/8Nen/+7Snv/szZT/68mK/+nEgP/nwXj/575w/+a6av/luWf/5bln/+W4Zv/luGb/5bhm/+W4ZP/luGT/5bhk/+S4Y//kuGP/5Lhj/+O2Yf/jtmH/47Zh/+O2YP/jtmD/47Zg/+O1Xv/jtV7/47Ve/+O0Xf/jtF3/47Nc/+OzXP/js1z/47Na/+OzWv/js1j/6MN+/7mRS/////8A////AP///wD///8A4cd+//TkxP/x2rD/8dux//Hbsf/x3LH/8diq/+/Tn//szpX/7MqM/+nGg//ownr/575z/+a8bf/lumn/5bpp/+W6af/luWf/5bln/+W5Z//luGb/5bhm/+W4Zv/luGT/5bhk/+W4ZP/kuGP/5Lhj/+S4Y//jtmH/47Zh/+O2Yf/jtmD/47Zg/+O2YP/jtV7/47Ve/+O1Xv/jtF3/47Rd/+OzXP/js1z/6ceG/7mSTP////8A////AP///wD///8A4seA//bozv/z37r/89+7//Pguv/y3bX/8dmr/+/Uof/t0Jf/7MuO/+nHhf/ownz/58B1/+a9bv/lu2v/5btq/+W7av/lu2r/5bpp/+W6af/lumn/5bpp/+W5Z//luWf/5bhm/+W4Zv/luGb/5bhm/+W4ZP/luGT/5Lhj/+S4Y//kuGP/47Zh/+O2Yf/jtmH/47Zg/+O2YP/jtmD/47Ve/+O1Xv/jtV7/6sqO/7qUT/////8A////AP///wD///8A4siC//ft1//148T/9ePE//Tiv//y3rb/8dmt/+/Vo//t0Jn/7MyP/+rIh//pxH7/58B2/+a9cP/mu23/5btr/+W7a//lu2v/5btr/+W7av/lu2r/5btq/+W6af/lumn/5bpp/+W6af/luWf/5bln/+W4Zv/luGb/5bhm/+W4Zv/luGT/5bhk/+S4Y//kuGP/5Lhj/+O2Yf/jtmH/47Zh/+O2Yf/jtmD/7M6Y/7uVUP////8A////AP///wD///8A48mC//nw3//258z/9ubJ//XiwP/y3rj/8tmu/+/Wpf/u0Zr/7MyQ/+vJiP/qxYH/6MF4/+e+cv/mvW7/5r1u/+a7bf/mu23/5rtt/+a7bf/lu2v/5btr/+W7a//lu2r/5btq/+W7av/lumn/5bpp/+W6af/lumn/5bln/+W5Z//luGb/5bhm/+W4Zv/luGb/5bhk/+W4ZP/kuGP/5Lhj/+S4Y//kuGP/7dOg/7yXVP////8A////AP///wD///8A48qF//rz5v/36tL/9ubJ//Xjwv/y37n/8tqv/+/Wpv/u0Zz/7M2T/+vJi//qxoL/6MJ6/+e/dP/mvXD/5r1w/+a9bv/mvW7/5r1u/+a9bv/mvW7/5rtt/+a7bf/mu23/5btr/+W7a//lu2v/5btq/+W7av/lu2r/5bpp/+W6af/lumn/5bpp/+W5Z//luWf/5bln/+W4Zv/luGb/5bhm/+W4ZP/luGT/7tao/7yYVf////8A////AP///wD///8A48qG5vv26//79Oj/+vLk//nw4P/479z/9+zY//bp0v/1583/9eXJ//Pjxf/y4cD/8t+8//Leuf/x3Lf/8dy3//Hctv/x3Lb/8dy2//Hctv/x3Lb/8dy1//Hctf/x3LX/8dy1//Hctf/x3LX/8dy1//DbtP/w27T/8Nu0//DbtP/w2rT/8Nq0//Dasv/w2rL/8Nqy//Dasv/v2rL/79qy/+/asv/v2rH/79qx/76aWeb///8A////APbt1gD3790A48qGSePKhubjyob/48mF/+PJhf/jyYX/48mD/+PJg//iyYP/4smD/+LIg//iyIL/4siC/+LIgf/iyIH/4siB/+LHf//ix3//4sd//+LHf//ixn7/4sZ+/+LGfv/ixn7/4sZ+/+HGff/hxn3/4cZ9/+HGff/gxXz/4MV8/+DFfP/gxXv/4MV7/+DFe//gxXv/4MV5/+DFef/gxXn/4MN4/+DDeP/gw3j/38N35t/Dd0nbu2MA////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AP///wD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAABAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAMAAAAAAAwAA////////AAD///////8AAA==",
30 | "Index": -1,
31 | "InternalIsFirstResizeEventAfterLoad": false,
32 | "KeyPreview": false,
33 | "Left": 0,
34 | "LinkMode": "vbLinkNone",
35 | "LinkTopic": null,
36 | "MDIChild": false,
37 | "MaxButton": true,
38 | "MaxHeight": 0,
39 | "MaxWidth": 0,
40 | "MinButton": true,
41 | "MinHeight": 0,
42 | "MinWidth": 0,
43 | "MouseIcon": "",
44 | "MousePointer": "vbDefault",
45 | "Moveable": true,
46 | "Name": "Form1",
47 | "NegotiateMenus": false,
48 | "OLEDropMode": "vbOLEDropNone",
49 | "Opacity": 100,
50 | "Palette": "",
51 | "PaletteMode": "vbPaletteModeHalftone",
52 | "Picture": "",
53 | "PictureDpiScaling": true,
54 | "RightToLeft": false,
55 | "ScaleHeight": 5595,
56 | "ScaleLeft": 0,
57 | "ScaleMode": "vbTwips",
58 | "ScaleTop": 0,
59 | "ScaleWidth": 8760,
60 | "ShowInTaskbar": true,
61 | "StartupPosition": "vbStartUpScreen",
62 | "TabFocusAutoSelect": false,
63 | "Tag": null,
64 | "Top": 0,
65 | "TopMost": false,
66 | "TransparencyKey": -1,
67 | "Visible": true,
68 | "WhatsThisButton": false,
69 | "WhatsThisHelp": false,
70 | "Width": 584,
71 | "WindowState": "vbNormal",
72 | "__IDEOptions": {
73 | "alignToGrid": false,
74 | "gridHeight": 10,
75 | "gridWidth": 10,
76 | "lockedControls": [],
77 | "showGrid": true,
78 | "showOutlines": false
79 | },
80 | "__lastUpdateMarker": 2651390793,
81 | "_children": [
82 | {
83 | "Alignment": "vbLeftJustify",
84 | "Anchors": {
85 | "Bottom": false,
86 | "Left": true,
87 | "Right": false,
88 | "Top": true,
89 | "_className": "Anchors",
90 | "_clsid": "{8524D4B5-72A9-40A9-A189-29E7905C40CA}"
91 | },
92 | "Appearance": "vbAppear3d",
93 | "AutoSize": false,
94 | "BackColor": -2147483633,
95 | "BackStyle": "vbBFOpaque",
96 | "BorderStyle": "vbNoBorder",
97 | "Caption": "Hello Ribbon!",
98 | "DataField": null,
99 | "DataFormat": null,
100 | "DataMember": null,
101 | "DataSource": null,
102 | "Dock": "vbDockNone",
103 | "DragIcon": "",
104 | "DragMode": "vbManual",
105 | "Enabled": true,
106 | "FontBold": false,
107 | "FontItalic": false,
108 | "FontName": "Segoe UI",
109 | "FontSize": 15.75,
110 | "FontStrikethru": false,
111 | "FontUnderline": false,
112 | "ForeColor": -2147483630,
113 | "Height": 47,
114 | "Index": -1,
115 | "Left": 220,
116 | "LinkItem": null,
117 | "LinkMode": "vbLinkNone",
118 | "LinkTimeout": 50,
119 | "LinkTopic": null,
120 | "MouseIcon": "",
121 | "MousePointer": "vbDefault",
122 | "Name": "Label1",
123 | "OLEDropMode": "vbOLEDropNone",
124 | "RightToLeft": false,
125 | "TabIndex": 2,
126 | "Tag": null,
127 | "ToolTipText": null,
128 | "Top": 190,
129 | "UseMnemonic": true,
130 | "Visible": true,
131 | "WhatsThisHelpID": 0,
132 | "Width": 137,
133 | "WordWrap": false,
134 | "_className": "Label",
135 | "_clsid": "{33AD4ED8-6699-11CF-B70C-00AA0060D393}",
136 | "_paintedByParent": true
137 | },
138 | {
139 | "Anchors": {
140 | "Bottom": true,
141 | "Left": true,
142 | "Right": true,
143 | "Top": true,
144 | "_className": "Anchors",
145 | "_clsid": "{8524D4B5-72A9-40A9-A189-29E7905C40CA}"
146 | },
147 | "Appearance": "vbAppear3d",
148 | "BackColor": -2147483643,
149 | "BorderStyle": "vbFixedSingleBorder",
150 | "CausesValidation": true,
151 | "Columns": 0,
152 | "DataField": null,
153 | "DataFormat": null,
154 | "DataMember": null,
155 | "DataSource": null,
156 | "Dock": "vbDockNone",
157 | "DragIcon": "",
158 | "DragMode": "vbManual",
159 | "Enabled": true,
160 | "FontBold": false,
161 | "FontItalic": false,
162 | "FontName": "Segoe UI",
163 | "FontSize": 8,
164 | "FontStrikethru": false,
165 | "FontUnderline": false,
166 | "ForeColor": -2147483640,
167 | "Height": 126,
168 | "HelpContextID": 0,
169 | "Index": -1,
170 | "IntegralHeight": true,
171 | "ItemData": [],
172 | "Left": 146,
173 | "List": [],
174 | "MaxCheckboxSize": 15,
175 | "MouseIcon": "",
176 | "MousePointer": "vbDefault",
177 | "MultiSelect": "vbMultiSelectNone",
178 | "Name": "List1",
179 | "OLEDragMode": "vbOLEDragManual",
180 | "OLEDropMode": "vbOLEDropNone",
181 | "RightToLeft": false,
182 | "Sorted": false,
183 | "Style": "vbListBoxStandard",
184 | "TabIndex": 3,
185 | "TabStop": true,
186 | "Tag": null,
187 | "ToolTipText": null,
188 | "Top": 230,
189 | "Visible": true,
190 | "VisualStyles": true,
191 | "WhatsThisHelpID": 0,
192 | "WheelScrollEvent": true,
193 | "Width": 303,
194 | "_className": "ListBox",
195 | "_clsid": "{33AD4F10-6699-11CF-B70C-00AA0060D393}"
196 | }
197 | ],
198 | "_className": "Form",
199 | "_clsid": "{33AD4F38-6699-11CF-B70C-00AA0060D393}"
200 | }
201 | ]
--------------------------------------------------------------------------------
/ribbonI.rc:
--------------------------------------------------------------------------------
1 | // ******************************************************************************
2 | // * This is an automatically generated file containing the ribbon resource for *
3 | // * your application. *
4 | // ******************************************************************************
5 |
6 | #include ".\ribbon.h"
7 |
8 | STRINGTABLE
9 | BEGIN
10 | IDC_TABMAIN_LabelTitle_RESID L"Main" /* LabelTitle IDC_TABMAIN_LabelTitle_RESID: (null) */
11 | END
12 |
13 | STRINGTABLE
14 | BEGIN
15 | cmdGroupMain_LabelTitle_RESID L"Context Tabs" /* LabelTitle cmdGroupMain_LabelTitle_RESID: (null) */
16 | END
17 |
18 | STRINGTABLE
19 | BEGIN
20 | IDC_TABTABLE_LabelTitle_RESID L"Table Tools" /* LabelTitle IDC_TABTABLE_LabelTitle_RESID: (null) */
21 | END
22 |
23 | STRINGTABLE
24 | BEGIN
25 | IDC_TABDESIGN_LabelTitle_RESID L"Design" /* LabelTitle IDC_TABDESIGN_LabelTitle_RESID: (null) */
26 | END
27 |
28 | STRINGTABLE
29 | BEGIN
30 | IDC_TABLAYOUT_LabelTitle_RESID L"Layout" /* LabelTitle IDC_TABLAYOUT_LabelTitle_RESID: (null) */
31 | END
32 |
33 | STRINGTABLE
34 | BEGIN
35 | cmdGroupDesign_LabelTitle_RESID L"Design Group" /* LabelTitle cmdGroupDesign_LabelTitle_RESID: (null) */
36 | END
37 |
38 | STRINGTABLE
39 | BEGIN
40 | cmdGroupLayout_LabelTitle_RESID L"Layout Group" /* LabelTitle cmdGroupLayout_LabelTitle_RESID: (null) */
41 | END
42 |
43 | STRINGTABLE
44 | BEGIN
45 | IDC_SELECT_LabelTitle_RESID L"Select" /* LabelTitle IDC_SELECT_LabelTitle_RESID: (null) */
46 | END
47 |
48 | STRINGTABLE
49 | BEGIN
50 | IDC_SELECT_LabelDescription_RESID L"Simulates selecting a table" /* LabelDescription IDC_SELECT_LabelDescription_RESID: (null) */
51 | END
52 |
53 | STRINGTABLE
54 | BEGIN
55 | IDC_SELECT_TooltipTitle_RESID L"Select" /* TooltipTitle IDC_SELECT_TooltipTitle_RESID: (null) */
56 | END
57 |
58 | STRINGTABLE
59 | BEGIN
60 | IDC_SELECT_TooltipDescription_RESID L"Simulates selecting a table" /* TooltipDescription IDC_SELECT_TooltipDescription_RESID: (null) */
61 | END
62 |
63 | IDC_SELECT_LargeImages_RESID BITMAP "Res\\Select32.bmp" /* LargeImages IDC_SELECT_LargeImages_RESID: (null) */
64 | STRINGTABLE
65 | BEGIN
66 | IDC_UNSELECT_LabelTitle_RESID L"Unselect" /* LabelTitle IDC_UNSELECT_LabelTitle_RESID: (null) */
67 | END
68 |
69 | STRINGTABLE
70 | BEGIN
71 | IDC_UNSELECT_LabelDescription_RESID L"Simulates unselecting a table" /* LabelDescription IDC_UNSELECT_LabelDescription_RESID: (null) */
72 | END
73 |
74 | STRINGTABLE
75 | BEGIN
76 | IDC_UNSELECT_TooltipTitle_RESID L"Unselect" /* TooltipTitle IDC_UNSELECT_TooltipTitle_RESID: (null) */
77 | END
78 |
79 | STRINGTABLE
80 | BEGIN
81 | IDC_UNSELECT_TooltipDescription_RESID L"Simulates unselecting a table" /* TooltipDescription IDC_UNSELECT_TooltipDescription_RESID: (null) */
82 | END
83 |
84 | IDC_UNSELECT_LargeImages_RESID BITMAP "Res\\Unselect32.bmp" /* LargeImages IDC_UNSELECT_LargeImages_RESID: (null) */
85 | STRINGTABLE
86 | BEGIN
87 | IDC_DESIGN1_LabelTitle_RESID L"Design 1" /* LabelTitle IDC_DESIGN1_LabelTitle_RESID: (null) */
88 | END
89 |
90 | IDC_DESIGN1_LargeImages_RESID BITMAP "Res\\DropA32.bmp" /* LargeImages IDC_DESIGN1_LargeImages_RESID: (null) */
91 | STRINGTABLE
92 | BEGIN
93 | IDC_DESIGN2_LabelTitle_RESID L"Design 2" /* LabelTitle IDC_DESIGN2_LabelTitle_RESID: (null) */
94 | END
95 |
96 | IDC_DESIGN2_LargeImages_RESID BITMAP "Res\\DropB32.bmp" /* LargeImages IDC_DESIGN2_LargeImages_RESID: (null) */
97 | STRINGTABLE
98 | BEGIN
99 | IDC_DESIGN3_LabelTitle_RESID L"Design 3" /* LabelTitle IDC_DESIGN3_LabelTitle_RESID: (null) */
100 | END
101 |
102 | IDC_DESIGN3_LargeImages_RESID BITMAP "Res\\DropC32.bmp" /* LargeImages IDC_DESIGN3_LargeImages_RESID: (null) */
103 | STRINGTABLE
104 | BEGIN
105 | IDC_LAYOUT1_LabelTitle_RESID L"Layout 1" /* LabelTitle IDC_LAYOUT1_LabelTitle_RESID: (null) */
106 | END
107 |
108 | IDC_LAYOUT1_LargeImages_RESID BITMAP "Res\\DropA32.bmp" /* LargeImages IDC_LAYOUT1_LargeImages_RESID: (null) */
109 | STRINGTABLE
110 | BEGIN
111 | IDC_LAYOUT2_LabelTitle_RESID L"Layout 2" /* LabelTitle IDC_LAYOUT2_LabelTitle_RESID: (null) */
112 | END
113 |
114 | IDC_LAYOUT2_LargeImages_RESID BITMAP "Res\\DropB32.bmp" /* LargeImages IDC_LAYOUT2_LargeImages_RESID: (null) */
115 | STRINGTABLE
116 | BEGIN
117 | IDC_TABCOLOR_LabelTitle_RESID L"Colors" /* LabelTitle IDC_TABCOLOR_LabelTitle_RESID: (null) */
118 | END
119 |
120 | STRINGTABLE
121 | BEGIN
122 | cmdButtonsGroup_LabelTitle_RESID L"Buttons" /* LabelTitle cmdButtonsGroup_LabelTitle_RESID: (null) */
123 | END
124 |
125 | STRINGTABLE
126 | BEGIN
127 | cmdDropDownColorPickerGroup_LabelTitle_RESID L"Color pickers" /* LabelTitle cmdDropDownColorPickerGroup_LabelTitle_RESID: (null) */
128 | END
129 |
130 | STRINGTABLE
131 | BEGIN
132 | IDC_COLORTHEME_LabelTitle_RESID L"Theme Colors" /* LabelTitle IDC_COLORTHEME_LabelTitle_RESID: (null) */
133 | END
134 |
135 | IDC_COLORTHEME_LargeImages_RESID BITMAP "Res\\Colors32.bmp" /* LargeImages IDC_COLORTHEME_LargeImages_RESID: (null) */
136 | STRINGTABLE
137 | BEGIN
138 | IDC_COLORSTD_LabelTitle_RESID L"Standard Colors" /* LabelTitle IDC_COLORSTD_LabelTitle_RESID: (null) */
139 | END
140 |
141 | IDC_COLORSTD_LargeImages_RESID BITMAP "Res\\Colors32.bmp" /* LargeImages IDC_COLORSTD_LargeImages_RESID: (null) */
142 | STRINGTABLE
143 | BEGIN
144 | IDC_CLRHILITE_LabelTitle_RESID L"Highlight Colors" /* LabelTitle IDC_CLRHILITE_LabelTitle_RESID: (null) */
145 | END
146 |
147 | IDC_CLRHILITE_LargeImages_RESID BITMAP "Res\\Colors32.bmp" /* LargeImages IDC_CLRHILITE_LargeImages_RESID: (null) */
148 | STRINGTABLE
149 | BEGIN
150 | IDC_LISTCOLORS_LabelTitle_RESID L"List Colors" /* LabelTitle IDC_LISTCOLORS_LabelTitle_RESID: (null) */
151 | END
152 |
153 | IDC_LISTCOLORS_LargeImages_RESID BITMAP "Res\\Open32.bmp" /* LargeImages IDC_LISTCOLORS_LargeImages_RESID: (null) */
154 | STRINGTABLE
155 | BEGIN
156 | IDC_NEW_LabelTitle_RESID L"New" /* LabelTitle IDC_NEW_LabelTitle_RESID: (null) */
157 | END
158 |
159 | STRINGTABLE
160 | BEGIN
161 | IDC_NEW_LabelDescription_RESID L"Create new fizzbuzz" /* LabelDescription IDC_NEW_LabelDescription_RESID: (null) */
162 | END
163 |
164 | STRINGTABLE
165 | BEGIN
166 | IDC_NEW_TooltipTitle_RESID L"New (Ctrl+N)" /* TooltipTitle IDC_NEW_TooltipTitle_RESID: (null) */
167 | END
168 |
169 | STRINGTABLE
170 | BEGIN
171 | IDC_NEW_TooltipDescription_RESID L"Create new fizzbuzz TT" /* TooltipDescription IDC_NEW_TooltipDescription_RESID: (null) */
172 | END
173 |
174 | IDC_NEW_SmallImages_RESID BITMAP "Res\\New16.bmp" /* SmallImages IDC_NEW_SmallImages_RESID: (null) */
175 | IDC_NEW_LargeImages_RESID BITMAP "Res\\New32.bmp" /* LargeImages IDC_NEW_LargeImages_RESID: (null) */
176 | STRINGTABLE
177 | BEGIN
178 | IDC_OPEN_LabelTitle_RESID L"Open" /* LabelTitle IDC_OPEN_LabelTitle_RESID: (null) */
179 | END
180 |
181 | STRINGTABLE
182 | BEGIN
183 | IDC_OPEN_LabelDescription_RESID L"Open a fizzbuzz" /* LabelDescription IDC_OPEN_LabelDescription_RESID: (null) */
184 | END
185 |
186 | STRINGTABLE
187 | BEGIN
188 | IDC_OPEN_TooltipTitle_RESID L"Open (Ctrl+O)" /* TooltipTitle IDC_OPEN_TooltipTitle_RESID: (null) */
189 | END
190 |
191 | STRINGTABLE
192 | BEGIN
193 | IDC_OPEN_TooltipDescription_RESID L"Opens an existing fizzbuzz" /* TooltipDescription IDC_OPEN_TooltipDescription_RESID: (null) */
194 | END
195 |
196 | IDC_OPEN_SmallImages_RESID BITMAP "Res\\Open16.bmp" /* SmallImages IDC_OPEN_SmallImages_RESID: (null) */
197 | IDC_OPEN_LargeImages_RESID BITMAP "Res\\Open32.bmp" /* LargeImages IDC_OPEN_LargeImages_RESID: (null) */
198 | STRINGTABLE
199 | BEGIN
200 | IDC_SAVE_LabelTitle_RESID L"Save" /* LabelTitle IDC_SAVE_LabelTitle_RESID: (null) */
201 | END
202 |
203 | STRINGTABLE
204 | BEGIN
205 | IDC_SAVE_LabelDescription_RESID L"Save the fizzbuzz" /* LabelDescription IDC_SAVE_LabelDescription_RESID: (null) */
206 | END
207 |
208 | STRINGTABLE
209 | BEGIN
210 | IDC_SAVE_TooltipTitle_RESID L"Save (Ctrl+S)" /* TooltipTitle IDC_SAVE_TooltipTitle_RESID: (null) */
211 | END
212 |
213 | STRINGTABLE
214 | BEGIN
215 | IDC_SAVE_TooltipDescription_RESID L"Saves the fizzbuzz" /* TooltipDescription IDC_SAVE_TooltipDescription_RESID: (null) */
216 | END
217 |
218 | IDC_SAVE_SmallImages_RESID BITMAP "Res\\Save16.bmp" /* SmallImages IDC_SAVE_SmallImages_RESID: (null) */
219 | IDC_SAVE_LargeImages_RESID BITMAP "Res\\Save32.bmp" /* LargeImages IDC_SAVE_LargeImages_RESID: (null) */
220 | STRINGTABLE
221 | BEGIN
222 | IDC_SAVEAS_LabelTitle_RESID L"Save &as" /* LabelTitle IDC_SAVEAS_LabelTitle_RESID: (null) */
223 | END
224 |
225 | STRINGTABLE
226 | BEGIN
227 | IDC_SAVEAS_TooltipDescription_RESID L"Save the document with a new name or format" /* TooltipDescription IDC_SAVEAS_TooltipDescription_RESID: (null) */
228 | END
229 |
230 | IDC_SAVEAS_SmallImages_RESID BITMAP "Res\\SaveAs_S096.bmp" /* SmallImages IDC_SAVEAS_SmallImages_RESID: (null) */
231 | IDC_SAVEAS_LargeImages_RESID BITMAP "Res\\SaveAs_L096.bmp" /* LargeImages IDC_SAVEAS_LargeImages_RESID: (null) */
232 | STRINGTABLE
233 | BEGIN
234 | CmdHeaderSave_LabelTitle_RESID L"Save a copy of the document" /* LabelTitle CmdHeaderSave_LabelTitle_RESID: (null) */
235 | END
236 |
237 | STRINGTABLE
238 | BEGIN
239 | IDC_RTF_LabelTitle_RESID L"&Rich Text document" /* LabelTitle IDC_RTF_LabelTitle_RESID: (null) */
240 | END
241 |
242 | STRINGTABLE
243 | BEGIN
244 | IDC_RTF_LabelDescription_RESID L"Save the document in the Rich Text format." /* LabelDescription IDC_RTF_LabelDescription_RESID: (null) */
245 | END
246 |
247 | IDC_RTF_SmallImages_RESID BITMAP "Res\\RichText_S096.bmp" /* SmallImages IDC_RTF_SmallImages_RESID: (null) */
248 | IDC_RTF_LargeImages_RESID BITMAP "Res\\RichText_L096.bmp" /* LargeImages IDC_RTF_LargeImages_RESID: (null) */
249 | STRINGTABLE
250 | BEGIN
251 | IDC_OPENXML_LabelTitle_RESID L"Office Open &XML document" /* LabelTitle IDC_OPENXML_LabelTitle_RESID: (null) */
252 | END
253 |
254 | STRINGTABLE
255 | BEGIN
256 | IDC_OPENXML_LabelDescription_RESID L"Save the document in the Office Open XML format." /* LabelDescription IDC_OPENXML_LabelDescription_RESID: (null) */
257 | END
258 |
259 | IDC_OPENXML_SmallImages_RESID BITMAP "Res\\OfficeXmlDocument_S096.bmp" /* SmallImages IDC_OPENXML_SmallImages_RESID: (null) */
260 | IDC_OPENXML_LargeImages_RESID BITMAP "Res\\OfficeXmlDocument_L096.bmp" /* LargeImages IDC_OPENXML_LargeImages_RESID: (null) */
261 | STRINGTABLE
262 | BEGIN
263 | IDC_ODF_LabelTitle_RESID L"Open&Document text" /* LabelTitle IDC_ODF_LabelTitle_RESID: (null) */
264 | END
265 |
266 | STRINGTABLE
267 | BEGIN
268 | IDC_ODF_LabelDescription_RESID L"Save the document in the OpenDocument format." /* LabelDescription IDC_ODF_LabelDescription_RESID: (null) */
269 | END
270 |
271 | IDC_ODF_SmallImages_RESID BITMAP "Res\\OpenDocumentText_S096.bmp" /* SmallImages IDC_ODF_SmallImages_RESID: (null) */
272 | IDC_ODF_LargeImages_RESID BITMAP "Res\\OpenDocumentText_L096.bmp" /* LargeImages IDC_ODF_LargeImages_RESID: (null) */
273 | STRINGTABLE
274 | BEGIN
275 | IDC_TXT_LabelTitle_RESID L"&Plain text document" /* LabelTitle IDC_TXT_LabelTitle_RESID: (null) */
276 | END
277 |
278 | STRINGTABLE
279 | BEGIN
280 | IDC_TXT_LabelDescription_RESID L"Save the document as plain text without line breaks or formatting." /* LabelDescription IDC_TXT_LabelDescription_RESID: (null) */
281 | END
282 |
283 | IDC_TXT_SmallImages_RESID BITMAP "Res\\PlainText_S096.bmp" /* SmallImages IDC_TXT_SmallImages_RESID: (null) */
284 | IDC_TXT_LargeImages_RESID BITMAP "Res\\PlainText_L096.bmp" /* LargeImages IDC_TXT_LargeImages_RESID: (null) */
285 | STRINGTABLE
286 | BEGIN
287 | IDC_FMTOTHER_LabelTitle_RESID L"&Other formats" /* LabelTitle IDC_FMTOTHER_LabelTitle_RESID: (null) */
288 | END
289 |
290 | STRINGTABLE
291 | BEGIN
292 | IDC_FMTOTHER_LabelDescription_RESID L"Open the Save as dialog box to select from all possible file types." /* LabelDescription IDC_FMTOTHER_LabelDescription_RESID: (null) */
293 | END
294 |
295 | IDC_FMTOTHER_SmallImages_RESID BITMAP "Res\\SaveAs_S096.bmp" /* SmallImages IDC_FMTOTHER_SmallImages_RESID: (null) */
296 | IDC_FMTOTHER_LargeImages_RESID BITMAP "Res\\SaveAs_L096.bmp" /* LargeImages IDC_FMTOTHER_LargeImages_RESID: (null) */
297 | STRINGTABLE
298 | BEGIN
299 | IDC_EXIT_LabelTitle_RESID L"Exit" /* LabelTitle IDC_EXIT_LabelTitle_RESID: (null) */
300 | END
301 |
302 | STRINGTABLE
303 | BEGIN
304 | IDC_EXIT_LabelDescription_RESID L"Exit Application" /* LabelDescription IDC_EXIT_LabelDescription_RESID: (null) */
305 | END
306 |
307 | STRINGTABLE
308 | BEGIN
309 | IDC_EXIT_TooltipTitle_RESID L"Exits the program." /* TooltipTitle IDC_EXIT_TooltipTitle_RESID: (null) */
310 | END
311 |
312 | STRINGTABLE
313 | BEGIN
314 | IDC_EXIT_TooltipDescription_RESID L"Closes the program window." /* TooltipDescription IDC_EXIT_TooltipDescription_RESID: (null) */
315 | END
316 |
317 | IDC_EXIT_SmallImages_RESID BITMAP "Res\\Exit16.bmp" /* SmallImages IDC_EXIT_SmallImages_RESID: (null) */
318 | IDC_EXIT_LargeImages_RESID BITMAP "Res\\Exit32.bmp" /* LargeImages IDC_EXIT_LargeImages_RESID: (null) */
319 | STRINGTABLE
320 | BEGIN
321 | cmdGroupFileActions_LabelTitle_RESID L"File Actions" /* LabelTitle cmdGroupFileActions_LabelTitle_RESID: (null) */
322 | END
323 |
324 | STRINGTABLE
325 | BEGIN
326 | cmdRecentItems_LabelTitle_RESID L"Recent Items" /* LabelTitle cmdRecentItems_LabelTitle_RESID: (null) */
327 | END
328 |
329 | STRINGTABLE
330 | BEGIN
331 | cmdGroupRichFont_LabelTitle_RESID L"Rich Font" /* LabelTitle cmdGroupRichFont_LabelTitle_RESID: (null) */
332 | END
333 |
334 | STRINGTABLE
335 | BEGIN
336 | IDC_RICHFONT_Keytip_RESID L"F" /* Keytip IDC_RICHFONT_Keytip_RESID: (null) */
337 | END
338 |
339 | STRINGTABLE
340 | BEGIN
341 | IDC_TOGGLE1_LabelTitle_RESID L"Toggle" /* LabelTitle IDC_TOGGLE1_LabelTitle_RESID: (null) */
342 | END
343 |
344 | IDC_TOGGLE1_SmallImages_RESID BITMAP "res\\AddTableS.bmp" /* SmallImages IDC_TOGGLE1_SmallImages_RESID: (null) */
345 | IDC_TOGGLE1_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_TOGGLE1_LargeImages_RESID: (null) */
346 | STRINGTABLE
347 | BEGIN
348 | cmdMRUList_LabelTitle_RESID L"MRU List" /* LabelTitle cmdMRUList_LabelTitle_RESID: (null) */
349 | END
350 |
351 | STRINGTABLE
352 | BEGIN
353 | IDC_EDITDROPDOWN_LabelTitle_RESID L"Edit" /* LabelTitle IDC_EDITDROPDOWN_LabelTitle_RESID: (null) */
354 | END
355 |
356 | IDC_EDITDROPDOWN_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_EDITDROPDOWN_LargeImages_RESID: (null) */
357 | STRINGTABLE
358 | BEGIN
359 | IDC_OPENFILE_LabelTitle_RESID L"Open File" /* LabelTitle IDC_OPENFILE_LabelTitle_RESID: (null) */
360 | END
361 |
362 | STRINGTABLE
363 | BEGIN
364 | IDC_OPENFILE_LabelDescription_RESID L"Open a file from the local system or network share." /* LabelDescription IDC_OPENFILE_LabelDescription_RESID: (null) */
365 | END
366 |
367 | IDC_OPENFILE_LargeImages_RESID BITMAP "res\\OpenFileL.bmp" /* LargeImages IDC_OPENFILE_LargeImages_RESID: (null) */
368 | STRINGTABLE
369 | BEGIN
370 | IDC_OPENURL_LabelTitle_RESID L"Open URL" /* LabelTitle IDC_OPENURL_LabelTitle_RESID: (null) */
371 | END
372 |
373 | STRINGTABLE
374 | BEGIN
375 | IDC_OPENURL_LabelDescription_RESID L"Open a file from an Internet URL." /* LabelDescription IDC_OPENURL_LabelDescription_RESID: (null) */
376 | END
377 |
378 | IDC_OPENURL_LargeImages_RESID BITMAP "res\\OpenFileL.bmp" /* LargeImages IDC_OPENURL_LargeImages_RESID: (null) */
379 | STRINGTABLE
380 | BEGIN
381 | CmdHeaderPrint_LabelTitle_RESID L"Preview and print the document" /* LabelTitle CmdHeaderPrint_LabelTitle_RESID: (null) */
382 | END
383 |
384 | STRINGTABLE
385 | BEGIN
386 | IDC_PRINT_LabelTitle_RESID L"Print" /* LabelTitle IDC_PRINT_LabelTitle_RESID: (null) */
387 | END
388 |
389 | STRINGTABLE
390 | BEGIN
391 | IDC_PRINT_LabelDescription_RESID L"Send the document to the currently selected default printer." /* LabelDescription IDC_PRINT_LabelDescription_RESID: (null) */
392 | END
393 |
394 | IDC_PRINT_LargeImages_RESID BITMAP "res\\PrintL.bmp" /* LargeImages IDC_PRINT_LargeImages_RESID: (null) */
395 | STRINGTABLE
396 | BEGIN
397 | IDC_PRINTSETUP_LabelTitle_RESID L"Print Setup" /* LabelTitle IDC_PRINTSETUP_LabelTitle_RESID: (null) */
398 | END
399 |
400 | STRINGTABLE
401 | BEGIN
402 | IDC_PRINTSETUP_LabelDescription_RESID L"Change the page layout or other printer settings." /* LabelDescription IDC_PRINTSETUP_LabelDescription_RESID: (null) */
403 | END
404 |
405 | IDC_PRINTSETUP_LargeImages_RESID BITMAP "res\\PageSetup_L096.bmp" /* LargeImages IDC_PRINTSETUP_LargeImages_RESID: (null) */
406 | STRINGTABLE
407 | BEGIN
408 | IDC_QUICKPRINT_LabelTitle_RESID L"&Quick print" /* LabelTitle IDC_QUICKPRINT_LabelTitle_RESID: (null) */
409 | END
410 |
411 | STRINGTABLE
412 | BEGIN
413 | IDC_QUICKPRINT_LabelDescription_RESID L"Send the document directly to the default printer without making changes." /* LabelDescription IDC_QUICKPRINT_LabelDescription_RESID: (null) */
414 | END
415 |
416 | IDC_QUICKPRINT_LargeImages_RESID BITMAP "Res\\PrintQuick_L096.bmp" /* LargeImages IDC_QUICKPRINT_LargeImages_RESID: (null) */
417 | STRINGTABLE
418 | BEGIN
419 | IDC_PRINTPREVIEW_LabelTitle_RESID L"Print pre&view" /* LabelTitle IDC_PRINTPREVIEW_LabelTitle_RESID: (null) */
420 | END
421 |
422 | STRINGTABLE
423 | BEGIN
424 | IDC_PRINTPREVIEW_LabelDescription_RESID L"Preview and make changes to pages before printing." /* LabelDescription IDC_PRINTPREVIEW_LabelDescription_RESID: (null) */
425 | END
426 |
427 | IDC_PRINTPREVIEW_LargeImages_RESID BITMAP "Res\\PrintPreview_L096.bmp" /* LargeImages IDC_PRINTPREVIEW_LargeImages_RESID: (null) */
428 | STRINGTABLE
429 | BEGIN
430 | cmdTab1_LabelTitle_RESID L"Tab 1" /* LabelTitle cmdTab1_LabelTitle_RESID: These comments are optional and are inserted into the header file. */
431 | END
432 |
433 | cmdGroup1_SmallImages_RESID BITMAP "res\\Button_Image.bmp" /* SmallImages cmdGroup1_SmallImages_RESID: Group #1 */
434 | STRINGTABLE
435 | BEGIN
436 | IDC_CMD_CONTEXT1_LabelTitle_RESID L"Activate\nContext 1" /* LabelTitle IDC_CMD_CONTEXT1_LabelTitle_RESID: Button that activates context 1 */
437 | END
438 |
439 | IDC_CMD_CONTEXT1_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_CMD_CONTEXT1_LargeImages_RESID: Button that activates context 1 */
440 | STRINGTABLE
441 | BEGIN
442 | IDC_CMD_CONTEXT2_LabelTitle_RESID L"Activate\nContext 2" /* LabelTitle IDC_CMD_CONTEXT2_LabelTitle_RESID: Button that activates context 2 */
443 | END
444 |
445 | IDC_CMD_CONTEXT2_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_CMD_CONTEXT2_LargeImages_RESID: Button that activates context 2 */
446 | STRINGTABLE
447 | BEGIN
448 | IDC_CMD_CONTEXT3_LabelTitle_RESID L"Activate\nContext 3" /* LabelTitle IDC_CMD_CONTEXT3_LabelTitle_RESID: Button that activates context 3 */
449 | END
450 |
451 | IDC_CMD_CONTEXT3_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_CMD_CONTEXT3_LargeImages_RESID: Button that activates context 3 */
452 | STRINGTABLE
453 | BEGIN
454 | IDC_CMD_CONTEXT4_LabelTitle_RESID L"Activate\nContext 4" /* LabelTitle IDC_CMD_CONTEXT4_LabelTitle_RESID: Button that activates context 4 */
455 | END
456 |
457 | IDC_CMD_CONTEXT4_LargeImages_RESID BITMAP "res\\AddTableL.bmp" /* LargeImages IDC_CMD_CONTEXT4_LargeImages_RESID: Button that activates context 4 */
458 | STRINGTABLE
459 | BEGIN
460 | IDC_CUT_LabelTitle_RESID L"Cut" /* LabelTitle IDC_CUT_LabelTitle_RESID: Cut button */
461 | END
462 |
463 | STRINGTABLE
464 | BEGIN
465 | IDC_CUT_TooltipTitle_RESID L"Cut" /* TooltipTitle IDC_CUT_TooltipTitle_RESID: Cut button */
466 | END
467 |
468 | STRINGTABLE
469 | BEGIN
470 | IDC_CUT_TooltipDescription_RESID L"Moves the selected contents to the clipbaord" /* TooltipDescription IDC_CUT_TooltipDescription_RESID: Cut button */
471 | END
472 |
473 | IDC_CUT_SmallImages_RESID BITMAP "res\\Cut.bmp" /* SmallImages IDC_CUT_SmallImages_RESID: Cut button */
474 | STRINGTABLE
475 | BEGIN
476 | IDC_COPY_LabelTitle_RESID L"Copy" /* LabelTitle IDC_COPY_LabelTitle_RESID: Copy button */
477 | END
478 |
479 | STRINGTABLE
480 | BEGIN
481 | IDC_COPY_TooltipTitle_RESID L"Copy" /* TooltipTitle IDC_COPY_TooltipTitle_RESID: Copy button */
482 | END
483 |
484 | STRINGTABLE
485 | BEGIN
486 | IDC_COPY_TooltipDescription_RESID L"Copies the selected contents to the clipboards." /* TooltipDescription IDC_COPY_TooltipDescription_RESID: Copy button */
487 | END
488 |
489 | IDC_COPY_SmallImages_RESID BITMAP "res\\Copy.bmp" /* SmallImages IDC_COPY_SmallImages_RESID: Copy button */
490 | STRINGTABLE
491 | BEGIN
492 | IDC_PASTE_LabelTitle_RESID L"Paste" /* LabelTitle IDC_PASTE_LabelTitle_RESID: Paste button */
493 | END
494 |
495 | STRINGTABLE
496 | BEGIN
497 | IDC_PASTE_TooltipTitle_RESID L"Paste" /* TooltipTitle IDC_PASTE_TooltipTitle_RESID: Paste button */
498 | END
499 |
500 | STRINGTABLE
501 | BEGIN
502 | IDC_PASTE_TooltipDescription_RESID L"Pastes the contents of the clipboard at the currently selected position." /* TooltipDescription IDC_PASTE_TooltipDescription_RESID: Paste button */
503 | END
504 |
505 | IDC_PASTE_SmallImages_RESID BITMAP "Res\\Paste_S096.bmp" /* SmallImages IDC_PASTE_SmallImages_RESID: Paste button */
506 | STRINGTABLE
507 | BEGIN
508 | IDC_CTXTOGGLE_LabelTitle_RESID L"ToggleButton" /* LabelTitle IDC_CTXTOGGLE_LabelTitle_RESID: Toggle Button */
509 | END
510 |
511 | IDC_CTXTOGGLE_SmallImages_RESID BITMAP "res\\DeleteTableL.bmp" /* SmallImages IDC_CTXTOGGLE_SmallImages_RESID: Toggle Button */
512 | STRINGTABLE
513 | BEGIN
514 | IDC_BUTTON1_LabelTitle_RESID L"Button 1" /* LabelTitle IDC_BUTTON1_LabelTitle_RESID: Button #1 */
515 | END
516 |
517 | IDC_BUTTON1_LargeImages_RESID BITMAP "res\\OpenHH.bmp" /* LargeImages IDC_BUTTON1_LargeImages_RESID: Button #1 */
518 | STRINGTABLE
519 | BEGIN
520 | IDC_BUTTON2_LabelTitle_RESID L"Button 2" /* LabelTitle IDC_BUTTON2_LabelTitle_RESID: Button #2 */
521 | END
522 |
523 | IDC_BUTTON2_LargeImages_RESID BITMAP "res\\delete.bmp" /* LargeImages IDC_BUTTON2_LargeImages_RESID: Button #2 */
524 | STRINGTABLE
525 | BEGIN
526 | IDC_BUTTON3_LabelTitle_RESID L"Button 3" /* LabelTitle IDC_BUTTON3_LabelTitle_RESID: Button #3 */
527 | END
528 |
529 | IDC_BUTTON3_LargeImages_RESID BITMAP "res\\PrintRelationshipsL.bmp" /* LargeImages IDC_BUTTON3_LargeImages_RESID: Button #3 */
530 | STRINGTABLE
531 | BEGIN
532 | IDC_BUTTONS_LabelTitle_RESID L"Buttons" /* LabelTitle IDC_BUTTONS_LabelTitle_RESID: DropDownButton that contains the three buttons */
533 | END
534 |
535 | IDC_BUTTONS_LargeImages_RESID BITMAP "res\\GraphHH.bmp" /* LargeImages IDC_BUTTONS_LargeImages_RESID: DropDownButton that contains the three buttons */
536 | STRINGTABLE
537 | BEGIN
538 | IDC_CHECK1_LabelTitle_RESID L"Some setting" /* LabelTitle IDC_CHECK1_LabelTitle_RESID: (null) */
539 | END
540 |
541 | STRINGTABLE
542 | BEGIN
543 | IDC_CHECK1_LabelDescription_RESID L"Apply setting 1" /* LabelDescription IDC_CHECK1_LabelDescription_RESID: (null) */
544 | END
545 |
546 | STRINGTABLE
547 | BEGIN
548 | IDC_CHECK1_TooltipTitle_RESID L"Setting 1" /* TooltipTitle IDC_CHECK1_TooltipTitle_RESID: (null) */
549 | END
550 |
551 | STRINGTABLE
552 | BEGIN
553 | IDC_CHECK1_TooltipDescription_RESID L"Applies setting 1" /* TooltipDescription IDC_CHECK1_TooltipDescription_RESID: (null) */
554 | END
555 |
556 | STRINGTABLE
557 | BEGIN
558 | cmdCheck2_LabelTitle_RESID L"Another setting" /* LabelTitle cmdCheck2_LabelTitle_RESID: (null) */
559 | END
560 |
561 | STRINGTABLE
562 | BEGIN
563 | cmdCheck2_LabelDescription_RESID L"A different setting" /* LabelDescription cmdCheck2_LabelDescription_RESID: (null) */
564 | END
565 |
566 | STRINGTABLE
567 | BEGIN
568 | cmdCheck2_TooltipTitle_RESID L"Setting 2" /* TooltipTitle cmdCheck2_TooltipTitle_RESID: (null) */
569 | END
570 |
571 | STRINGTABLE
572 | BEGIN
573 | cmdCheck2_TooltipDescription_RESID L"Applies setting 3" /* TooltipDescription cmdCheck2_TooltipDescription_RESID: (null) */
574 | END
575 |
576 | STRINGTABLE
577 | BEGIN
578 | cmdCheckHdr_TooltipTitle_RESID L"Misc settings" /* TooltipTitle cmdCheckHdr_TooltipTitle_RESID: (null) */
579 | END
580 |
581 | STRINGTABLE
582 | BEGIN
583 | cmdCheckHdr_TooltipDescription_RESID L"Applies misc settings" /* TooltipDescription cmdCheckHdr_TooltipDescription_RESID: (null) */
584 | END
585 |
586 | STRINGTABLE
587 | BEGIN
588 | IDC_PARAGRAPH_LabelTitle_RESID L"Paragraph" /* LabelTitle IDC_PARAGRAPH_LabelTitle_RESID: (null) */
589 | END
590 |
591 | IDC_PARAGRAPH_SmallImages_RESID BITMAP "Res\\Paragraph_S096.bmp" /* SmallImages IDC_PARAGRAPH_SmallImages_RESID: (null) */
592 | STRINGTABLE
593 | BEGIN
594 | IDC_INDENT_LabelTitle_RESID L"Increase indent" /* LabelTitle IDC_INDENT_LabelTitle_RESID: (null) */
595 | END
596 |
597 | STRINGTABLE
598 | BEGIN
599 | IDC_INDENT_TooltipTitle_RESID L"Increase indent" /* TooltipTitle IDC_INDENT_TooltipTitle_RESID: (null) */
600 | END
601 |
602 | STRINGTABLE
603 | BEGIN
604 | IDC_INDENT_TooltipDescription_RESID L"Increase the indent level of the paragraph" /* TooltipDescription IDC_INDENT_TooltipDescription_RESID: (null) */
605 | END
606 |
607 | IDC_INDENT_SmallImages_RESID BITMAP "Res\\Indent_S096.bmp" /* SmallImages IDC_INDENT_SmallImages_RESID: (null) */
608 | STRINGTABLE
609 | BEGIN
610 | IDC_OUTDENT_LabelTitle_RESID L"Descrease indent" /* LabelTitle IDC_OUTDENT_LabelTitle_RESID: (null) */
611 | END
612 |
613 | STRINGTABLE
614 | BEGIN
615 | IDC_OUTDENT_TooltipTitle_RESID L"Decrease indent" /* TooltipTitle IDC_OUTDENT_TooltipTitle_RESID: (null) */
616 | END
617 |
618 | STRINGTABLE
619 | BEGIN
620 | IDC_OUTDENT_TooltipDescription_RESID L"Decrease the indent level of the paragraph." /* TooltipDescription IDC_OUTDENT_TooltipDescription_RESID: (null) */
621 | END
622 |
623 | IDC_OUTDENT_SmallImages_RESID BITMAP "Res\\Outdent_S096.bmp" /* SmallImages IDC_OUTDENT_SmallImages_RESID: (null) */
624 | STRINGTABLE
625 | BEGIN
626 | IDC_LINESPACING_LabelTitle_RESID L"Line spacing" /* LabelTitle IDC_LINESPACING_LabelTitle_RESID: (null) */
627 | END
628 |
629 | STRINGTABLE
630 | BEGIN
631 | IDC_LINESPACING_TooltipTitle_RESID L"Line spacing" /* TooltipTitle IDC_LINESPACING_TooltipTitle_RESID: (null) */
632 | END
633 |
634 | STRINGTABLE
635 | BEGIN
636 | IDC_LINESPACING_TooltipDescription_RESID L"Adjust the line spacing of sentences." /* TooltipDescription IDC_LINESPACING_TooltipDescription_RESID: (null) */
637 | END
638 |
639 | IDC_LINESPACING_SmallImages_RESID BITMAP "Res\\LineSpacing_S096.bmp" /* SmallImages IDC_LINESPACING_SmallImages_RESID: (null) */
640 | STRINGTABLE
641 | BEGIN
642 | IDC_LINESPACE1_LabelTitle_RESID L"1.0" /* LabelTitle IDC_LINESPACE1_LabelTitle_RESID: (null) */
643 | END
644 |
645 | STRINGTABLE
646 | BEGIN
647 | IDC_LINESPACE115_LabelTitle_RESID L"1.15" /* LabelTitle IDC_LINESPACE115_LabelTitle_RESID: (null) */
648 | END
649 |
650 | STRINGTABLE
651 | BEGIN
652 | IDC_LINESPACE15_LabelTitle_RESID L"1.5" /* LabelTitle IDC_LINESPACE15_LabelTitle_RESID: (null) */
653 | END
654 |
655 | STRINGTABLE
656 | BEGIN
657 | IDC_LINESPACE2_LabelTitle_RESID L"2" /* LabelTitle IDC_LINESPACE2_LabelTitle_RESID: (null) */
658 | END
659 |
660 | STRINGTABLE
661 | BEGIN
662 | IDC_ALIGNLEFT_LabelTitle_RESID L"Align Left" /* LabelTitle IDC_ALIGNLEFT_LabelTitle_RESID: (null) */
663 | END
664 |
665 | STRINGTABLE
666 | BEGIN
667 | IDC_ALIGNLEFT_TooltipTitle_RESID L"Align text left" /* TooltipTitle IDC_ALIGNLEFT_TooltipTitle_RESID: (null) */
668 | END
669 |
670 | STRINGTABLE
671 | BEGIN
672 | IDC_ALIGNLEFT_TooltipDescription_RESID L"Aligns text to the left" /* TooltipDescription IDC_ALIGNLEFT_TooltipDescription_RESID: (null) */
673 | END
674 |
675 | IDC_ALIGNLEFT_SmallImages_RESID BITMAP "Res\\AlignLeft_S096.bmp" /* SmallImages IDC_ALIGNLEFT_SmallImages_RESID: (null) */
676 | STRINGTABLE
677 | BEGIN
678 | IDC_ALIGNRIGHT_LabelTitle_RESID L"Align Right" /* LabelTitle IDC_ALIGNRIGHT_LabelTitle_RESID: (null) */
679 | END
680 |
681 | STRINGTABLE
682 | BEGIN
683 | IDC_ALIGNRIGHT_TooltipTitle_RESID L"Align right" /* TooltipTitle IDC_ALIGNRIGHT_TooltipTitle_RESID: (null) */
684 | END
685 |
686 | STRINGTABLE
687 | BEGIN
688 | IDC_ALIGNRIGHT_TooltipDescription_RESID L"Aligns text to the right" /* TooltipDescription IDC_ALIGNRIGHT_TooltipDescription_RESID: (null) */
689 | END
690 |
691 | IDC_ALIGNRIGHT_SmallImages_RESID BITMAP "Res\\AlignRight_S096.bmp" /* SmallImages IDC_ALIGNRIGHT_SmallImages_RESID: (null) */
692 | STRINGTABLE
693 | BEGIN
694 | IDC_ALIGNCENTER_LabelTitle_RESID L"Align center" /* LabelTitle IDC_ALIGNCENTER_LabelTitle_RESID: (null) */
695 | END
696 |
697 | STRINGTABLE
698 | BEGIN
699 | IDC_ALIGNCENTER_TooltipTitle_RESID L"Align center" /* TooltipTitle IDC_ALIGNCENTER_TooltipTitle_RESID: (null) */
700 | END
701 |
702 | STRINGTABLE
703 | BEGIN
704 | IDC_ALIGNCENTER_TooltipDescription_RESID L"Aligns text towards the center" /* TooltipDescription IDC_ALIGNCENTER_TooltipDescription_RESID: (null) */
705 | END
706 |
707 | IDC_ALIGNCENTER_SmallImages_RESID BITMAP "Res\\AlignCenter_S096.bmp" /* SmallImages IDC_ALIGNCENTER_SmallImages_RESID: (null) */
708 | STRINGTABLE
709 | BEGIN
710 | IDC_JUSTIFY_LabelTitle_RESID L"Align Justify" /* LabelTitle IDC_JUSTIFY_LabelTitle_RESID: (null) */
711 | END
712 |
713 | STRINGTABLE
714 | BEGIN
715 | IDC_JUSTIFY_TooltipTitle_RESID L"Align justify" /* TooltipTitle IDC_JUSTIFY_TooltipTitle_RESID: (null) */
716 | END
717 |
718 | STRINGTABLE
719 | BEGIN
720 | IDC_JUSTIFY_TooltipDescription_RESID L"Align text to both left and right margins, adding extra space between words as necessary. This creates a clean look along the left and right side of the page." /* TooltipDescription IDC_JUSTIFY_TooltipDescription_RESID: (null) */
721 | END
722 |
723 | IDC_JUSTIFY_SmallImages_RESID BITMAP "Res\\AlignJustify_S096.bmp" /* SmallImages IDC_JUSTIFY_SmallImages_RESID: (null) */
724 | STRINGTABLE
725 | BEGIN
726 | IDC_MORE_LabelTitle_RESID L"More" /* LabelTitle IDC_MORE_LabelTitle_RESID: (null) */
727 | END
728 |
729 | APPLICATION_RIBBON UIFILE "ribbon.bml"
730 |
--------------------------------------------------------------------------------