Skip to main content

First Program With TIScript and Sciter Sdk

TIScript and Golang
TIScript and Golang
I am showing a very simple example of TIScript. By the way it, not an official intro. I will give more details on TIScript in future posts. This post is just to show you a simple demo of TIScript. It's like Hello TIScript

GUI File

In this example, I am introducing something new in HTML file instead of the Golang file so, focus here.
So let's start with basic HTML that has just two elements an < H1>  tag say press button and other is the button with id btn1

main.html
<html>
    <head>       
        <style>          
        </style>
    </head>
    <body>
       <h1>Press Button</h1>      
     <!-- You can use this sugar syntax
          To define id use '#[id]' instead of 'id=[id]'
          To define class use '.[class]' instead of using 'class=[class]'       
          Sciter Referance: 
          So, in below line we have defined button
          having id btn1 
       -->
       <button #btn1 >That's My Name</button>
        ...
    </body>
</html>

Introducing TIScript . Our GUI partner. Now on we have to work with TIScript which is going to glue between our HTML and gocode for processing

<html>
    <head>       
        <style>          
        </style>
    </head>
    <body>
       <h1>Press Button</h1>      
     <!-- You can use this sugar syntax
          To define id use '#[id]' instead of 'id=[id]'
          To define class use '.[class]' instead of using 'class=[class]'       
          So, in below line we have defined button
          having id btn1
      -->
       <button #btn1 >That's My Name</button>       
       <script type="text/tiscript">
          // listen for click action 
           // on html element having id btn1
           // in current view
           // and on event we are showing a 
           // message box saying "Hello"
           self#btn1.on("click", function(){
               view.msgbox("Hello") 
           // this msgbox have same look as javascript , cool !
           })
       </script>
    </body>
</html>

Here, you might be thinking about where the self is comming from !! right.  Self is a variable kind of injected by TIScript itself. It points to the view (HTML) we are currently seeing.  So you can also think self as a currently loaded HTML file ( at runtime ). 

I am emphasizing on self because self will not the same as this case. Because if your project is large and you have shared TISscript then you might going to import TIScript file where script an HTML will be not belong to the same file and that's why your script will fail.

GoLang File

If you have read Hello Sciter Post then there is no change in this code so no need to explain. But if you have not read it till now you should read there as i have explained it there.

main.go

package main

import (
"github.com/fatih/color"
"github.com/sciter-sdk/go-sciter"
"github.com/sciter-sdk/go-sciter/window"
)

func main() {
rect := sciter.NewRect(100, 100, 300, 300)
window, _:= window.New(sciter.SW_MAIN|sciter.SW_CONTROLS|
sciter.SW_ENABLE_DEBUG, rect)
window.LoadFile("./hello.html")
window.SetTitle("Simple Input")

// Setting up stage for Harmony
window.Show()
window.Run()
}



msgbox due to TIScript Click Event
msgbox due to TIScript Click Event

Comments

Popular posts from this blog

Apache : setup basic auth with apache in windows

Authentication is any process by which you verify that someone is who they claim they are. Authorization is any process by which someone is allowed to be where they want to go or to have information that they want to have. I will show here how to set up basic auth on the apache with windows. Pre-requests  Windows VPS Apache server ( That's it ) ( In windows it might be difficult to setup the Apache alone. So instead use something ling xampp , wamp or laragon .) RestClient (  I personally use the postman , but you can use your preferable client)  Windows VPS provider Steps  Enable the necessary modules in the Apache Create the password file Set the auth directives in the virtual host file. Verify basic auth. Enable the  necessary   modules  in the Apache Open the httpd.conf file in the apache's conf folder. httpd.conf file Enable the necessary modules to make the basic auth working. Necessary modules  mod_auth_basic

Firebase - update a spacific fields of single element of object of array in firestore

Firebase - update a spacific fields of single element of object of array in firestore  Its actully advisable to use map instead of array when ever it is possible. But, there are cetain cases where you don't have option to do so.  For example, you are directly saving the response from some outer source without any modification and they send you an array. In this case you will have array to work with. Firestore does not support array here is why  "bad things can happen if you have multiple clients all trying to update or delete array elements at specific indexes. In the past, Cloud Firestore addressed these issues by limiting what you can do with arrays " For more details information you can refer to Kato Richardson post Best Practices: Arrays in Firebase .  Firestore document having array [ used from stackoverflow question ] Suppose you have array of object something like shown in array. Now you want to update endTime field of the object on the index [1]

Sciter : GUI Application with Golang using HTML/CSS

GUI library for golang sciter This is the words from Sciter's Web site, Sciter brings a stack of web technologies to desktop UI development. Web designers and developers can reuse their experience and expertise in creating modern looking desktop applications. Various GUI frameworks offer different UI declaration and styling languages, such as QML and  XAML (Microsoft WPF) . On the contrary, Sciter allows using time proven, robust, and flexible HTML and CSS for GUI definition and GPU accelerated rendering.   Before using sciter I already tried other alternatives but none of them was satisfactory as an example first i tried andlabs / ui  library   i already have written a post on it. You can read it on post gui programming with golang .  But this library is still under construction and has no support for production apps. Secondly, I go for electron but the problem was my simple calc like the app was of size 150mb. Which is 15mb of go and other was the e