Page 1 of 1

GX Typhoon WidgetPlugin SDK Creation Guide

Posted: Wed Mar 29, 2017 12:10 pm
by Daniel Divino
1) Open up and click New Project
2) Choose the language of your choice and create a new Class library project and call it MyWidget
3) Add a reference to CoreInterfaces.dll located in your lcdstudio folder.
4) Add a reference to System.Drawing.dll located in the .net tab of the add reference dialog.
5) Paste the following code into class1.cs (C# is used but this code is that basic it shoudn't be hard to convert to VB.Net)

Code: Select all

using System; 
using System.Drawing; 
using System.Drawing.Drawing2D; 
using System.Drawing.Text; 
using LcdStudio.Base; 
using LcdStudio.CoreInterfaces; 

namespace MyWidget 
   public class MyWidgetRenderer : AbstractWidget 
      public override void Render() 
         Graphics g = Graphics.FromImage(_Canvas); 
         //Clear the drawing space 

         //Define some Drawing tools 
         Pen p = new Pen(CoreSettings.ColorOn); 
         Brush B = new SolidBrush(CoreSettings.ColorOn); 

         //Draw our neat little square 
         Rectangle R = new Rectangle(0,0,this.rect.Width-1,this.rect.Height-1); 
         g.DrawLine(p, R.X, R.Y, R.Right,R.Bottom); 
         g.DrawLine(p, R.X, R.Bottom, R.Right,R.Top); 

         //If there is an data item set draw it 
         if (LcdDataItem != null) 
            //turn off aa and other text smoothing effects 
            g.SmoothingMode = SmoothingMode.None; 
            g.TextRenderingHint  = TextRenderingHint.SingleBitPerPixelGridFit; 
            //Draw the text 
            g.DrawString(LcdDataItem.Value.ToString(),new Font("Arial",12),B,0,0 ); 
         // Neatly dispose our gfx object 

      public override bool AcceptsData(LcdDataItem i) 
         //our widget accepts any data you drop on it. 
         return true; 

   public class Plugin : AbstractPlugin 
      public override void Initialize(System.Xml.XmlNode configNode) 
         IToolboxView tbv = (IToolboxView)ServiceManager.GetService(typeof(IToolboxView)); 
         if (tbv!=null) 
            // The perferd way to do this is ofcourse embed an icon into the dll but for 
            // Simplicity reasons we'll just draw one our selves. 
            Bitmap MyIcon = new Bitmap(32,32); 
            Graphics G = Graphics.FromImage(MyIcon); 
            G.DrawString("HI",new Font("Arial",15),Brushes.GreenYellow,0,0); 
            // Add The icon to the Toolboxpanel 
            int iMyIcon = tbv.AddIcon(MyIcon) ; 
            //Add The Widget To the toolbox 
6) Create a file in your LcdStudio folder called MyWidget.Plugin with the following lines

Code: Select all

<?xml version="1.0" encoding="utf-8" ?> 
   <Plugin ID="My Widget" Type="MyWidget.Plugin, MyWidget" Visible="Yes" > 
      <Depends ID="ToolboxView" /> 
7) Run LcdStudio and add your Plugin in the config panel & Restart the application

You'll find a how-to guide to creating DataPlugin SDK's here.