Simple windowed application: Difference between revisions

m
→‎{{header|Wren}}: Changed to Wren S/H
m (→‎{{header|Wren}}: Changed to Wren S/H)
 
(38 intermediate revisions by 18 users not shown)
Line 11:
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
<syntaxhighlight lang="aarch64 assembly">
<lang AArch64 Assembly>
/* ARM assembly AARCH64 Raspberry PI 3B */
/* program simpleWin64.s link with X11 library */
Line 457:
/* for this file see task include a file in language AArch64 assembly */
.include "../includeARM64.inc"
</syntaxhighlight>
</lang>
 
=={{header|Ada}}==
Line 466:
Apart from GtkAda, there exist numerous other GUI bindings and libraries:
CLAW, AdaGLUT, GWindow, JEWL, win32ada, QtAda etc.
<langsyntaxhighlight lang="ada">with Gdk.Event; use Gdk.Event;
with Gtk.Button; use Gtk.Button;
with Gtk.Label; use Gtk.Label;
Line 532:
 
Gtk.Main.Main;
end Simple_Windowed_Application;</langsyntaxhighlight>
 
=={{header|APL}}==
{{works with|Dyalog APL}}
 
<langsyntaxhighlight APLlang="apl">∇ WindowedApplication
 
⍝ define a form with a label and a button
Line 553:
}
 
∇</langsyntaxhighlight>
 
{{works with|GNU APL}}
 
[my-application.apl]
<syntaxhighlight lang="apl">#!/usr/local/bin/apl --script --OFF
 
⍝ Some GTK API consts for readability
⍝ event poll type for X ← ⎕gtk
Blocking ← 1
Nonblocking ← 2
 
∇Z←get_NAME_and_POSITION;GUI_path;CSS_path;Handle
GUI_path ← '/home/me/GNUAPL/workspaces/my-application.glade'
CSS_path ← '/home/me/GNUAPL/workspaces/my-application.css'
Handle ← CSS_path ⎕GTK GUI_path
 
⍝H_ID ← Handle, 'entry1' ⍝ Position field
⍝'<enter name>' ⎕gtk[H_ID] "set_text" ⍝ pre-fill entry
 
⊣⎕gtk Blocking ⍝ Wait for click event
 
Z ← ⊂1↓⎕gtk[Handle, 'entry1'] "get_text"
Z ← Z,⊂1↓⎕gtk[Handle, 'entry2'] "get_text"
⊣Handle ⎕gtk 0
 
⍝ Launch GUI application
get_NAME_and_POSITION
</syntaxhighlight>
 
[my-application.css]
<syntaxhighlight lang="css">/* general button */
.BUTTON { color: #F00; background: #4F4; }
 
/* the OK button */
#OK-button { color: #A22; background: #FFF; }
</syntaxhighlight>
 
[my-application.glade]
<syntaxhighlight lang="xml"><?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.22.1 -->
<interface>
<requires lib="gtk+" version="3.20"/>
<object class="GtkWindow" id="window1">
<property name="can_focus">False</property>
<child>
<placeholder/>
</child>
<child>
<object class="GtkGrid" id="grid1">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="row_homogeneous">True</property>
<child>
<object class="GtkLabel" id="label1">
<property name="name">lblEmployee</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Employee</property>
<property name="wrap">True</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">1</property>
</packing>
</child>
<child>
<object class="GtkLabel" id="label2">
<property name="name">lblPosition</property>
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Position</property>
</object>
<packing>
<property name="left_attach">1</property>
<property name="top_attach">2</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="entry1">
<property name="name">entryEmployee</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">1</property>
<property name="width">6</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="entry2">
<property name="name">entryPosition</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="valign">center</property>
</object>
<packing>
<property name="left_attach">3</property>
<property name="top_attach">2</property>
<property name="width">6</property>
</packing>
</child>
<child>
<object class="GtkButton" id="btnOK">
<property name="label" translatable="yes">button</property>
<property name="name">OK-button</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<signal name="clicked" handler="clicked" swapped="no"/>
<style>
<class name="BUTTON"/>
</style>
</object>
<packing>
<property name="left_attach">4</property>
<property name="top_attach">4</property>
<property name="width">2</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
</syntaxhighlight>
 
=={{header|AppleScript}}==
<syntaxhighlight lang="applescript">
set counter to 0
 
set dialogReply to display dialog ¬
"There have been no clicks yet" buttons {"Click Me", "Quit"} ¬
with title "Simple Window Application"
set theAnswer to button returned of the result
if theAnswer is "Quit" then quit
 
repeat
set counter to counter + 1
set dialogReply to display dialog counter buttons {"Click Me", "Quit"} ¬
with title "Simple Window Application"
set theAnswer to button returned of the result
if theAnswer is "Quit" then exit repeat
end repeat
</syntaxhighlight>
 
===Description===
AppleScript is the MacOS system automation language which creates scripts in various forms, including double-clickable applications, scripted folder actions, inner and inter application control and services, and more.
[https://www.melellington.com/simplewindow/Applescript-SWA.jpg Applescript Output]
 
=={{header|AutoHotkey}}==
<langsyntaxhighlight Autohotkeylang="autohotkey">; Create simple windowed application
Gui, Add, Text, vTextCtl, There have been no clicks yet ; add a Text-Control
Gui, Add, Button, gButtonClick xm, click me ; add a Button-Control
Line 569 ⟶ 719:
GuiClose: ; the subroutine executed when the Window is closed
ExitApp ; exit this process
Return</langsyntaxhighlight>
 
=={{header|AutoIt}}==
<syntaxhighlight lang="autoit">
<lang AutoIt>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
Line 597 ⟶ 747:
EndSwitch
WEnd
</syntaxhighlight>
</lang>
 
=={{header|B4J}}==
<langsyntaxhighlight lang="freebasic">
#Region Project Attributes
#MainFormWidth: 593
Line 633 ⟶ 783:
Return falseVal
End If
End Sub</langsyntaxhighlight>
 
Layout1.fxml (as B4J uses JavaFX's Scene Builder)
<langsyntaxhighlight lang="cfm">
<?xml version="1.0" encoding="UTF-8"?>
 
Line 664 ⟶ 814:
</children>
</AnchorPane>
</syntaxhighlight>
</lang>
 
=={{header|BaConBASIC}}==
==={{header|BaCon}}===
Requires BaCon version 4.0.1 or higher, using GTK3.
<langsyntaxhighlight lang="bacon">OPTION GUI TRUE
PRAGMA GUI gtk3
 
Line 685 ⟶ 836:
CALL GUISET(gui, "label", "label", "Button clicks: " & STR$(clicked))
ENDSELECT
WEND</langsyntaxhighlight>
 
==={{header|BBC BASIC}}===
{{works with|BBC BASIC for Windows}}
<langsyntaxhighlight lang="bbcbasic"> INSTALL @lib$+"WINLIB2"
INSTALL @lib$+"WINLIB5"
Line 706 ⟶ 857:
clicks% += 1
SYS "SetDlgItemText", !window%, 100, "Number of clicks = " + STR$(clicks%)
ENDPROC</langsyntaxhighlight>
 
=={{header|Beads}}==
<langsyntaxhighlight Beadslang="beads">beads 1 program simple title:'Simple windowed application' // written by CodingFiend
 
var g : record // global tracked mutable state
Line 751 ⟶ 902:
// update our click count
inc g.nclicks
g.label = to_str(g.nclicks)</langsyntaxhighlight>
 
=={{header|C}}==
{{libheader|GTK}}
<langsyntaxhighlight lang="c">#include <stdio.h>
#include <gtk/gtk.h>
 
Line 794 ⟶ 945:
gtk_main();
return 0;
}</langsyntaxhighlight>
 
=={{header|C sharp|C#}}==
 
<langsyntaxhighlight lang="csharp">using System.Windows.Forms;
 
class RosettaForm : Form
Line 827 ⟶ 978:
}
}
</syntaxhighlight>
</lang>
 
=={{header|C++}}==
Line 833 ⟶ 984:
{{libheader|Qt}} 4.4 with source files as shown , built from a Makefile generated by the Qt tool qmake
===clickcounter.h===
<langsyntaxhighlight lang="cpp">#ifndef CLICKCOUNTER_H
#define CLICKCOUNTER_H
 
Line 853 ⟶ 1,004:
void countClicks( ) ;
} ;
#endif</langsyntaxhighlight>
===clickcounter.cpp===
<langsyntaxhighlight lang="cpp">#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
Line 874 ⟶ 1,025:
number++ ;
countLabel->setText( QString( "The button has been clicked %1 times!").arg( number ) ) ;
}</langsyntaxhighlight>
===main.cpp===
<langsyntaxhighlight Cpplang="cpp">#include <QApplication>
#include "clickcounter.h"
 
Line 884 ⟶ 1,035:
counter.show( ) ;
return app.exec( ) ;
}</langsyntaxhighlight>
 
=={{header|Clojure}}==
<langsyntaxhighlight lang="clojure">(ns counter-window
(:import (javax.swing JFrame JLabel JButton)))
 
Line 911 ⟶ 1,062:
(.setDefaultCloseOperation JFrame/EXIT_ON_CLOSE)
(.setVisible true))))
</syntaxhighlight>
</lang>
 
=={{header|Common Lisp}}==
Line 919 ⟶ 1,070:
{{works with|McCLIM}}
 
<langsyntaxhighlight lang="lisp">(defpackage #:rcswa
(:use #:clim #:clim-lisp))
(in-package #:rcswa)</langsyntaxhighlight>
 
This version uses CLIM's command system:
 
<langsyntaxhighlight lang="lisp">(define-application-frame simple-windowed-application ()
((clicks :initform 0
:accessor clicks-of))
Line 943 ⟶ 1,094:
(define-simple-windowed-application-command (com-click-me :menu t)
()
(incf (clicks-of *application-frame*)))</langsyntaxhighlight>
 
This version uses an explicit pushbutton gadget, and may be used if more direct control over the UI layout and behavior is needed:
 
<langsyntaxhighlight lang="lisp">(define-application-frame simple-windowed-application ()
((clicks :initform 0
:accessor clicks-of))
Line 973 ⟶ 1,124:
(vertically (:equalize-width nil :align-x :center)
the-label
(spacing (:thickness 10) the-button)))))</langsyntaxhighlight>
 
In either case, the window is opened with:
 
<langsyntaxhighlight lang="lisp">(run-frame-top-level (make-application-frame 'simple-windowed-application))</langsyntaxhighlight>
 
=={{header|D}}==
Line 983 ⟶ 1,134:
{{works with|D|1}}
{{libheader|DFL}}
<langsyntaxhighlight lang="d">module winapp ;
import dfl.all ;
import std.string ;
Line 1,013 ⟶ 1,164:
void main() {
Application.run(new MainForm);
}</langsyntaxhighlight>
 
===Hybrid===
Line 1,035 ⟶ 1,186:
}
SimpleWindow.d:
<langsyntaxhighlight lang="d">module SimpleWindow;
import tango.text.convert.Integer;
import tango.core.Thread; // For Thread.yield
Line 1,070 ⟶ 1,221:
Thread.yield();
}
}</langsyntaxhighlight>
 
=={{header|Delphi}}==
Line 1,080 ⟶ 1,231:
'''NOTE:''' The project name here must match the name of the file.
 
<langsyntaxhighlight lang="delphi">-- begin file --
 
Program SingleWinApp ;
Line 1,166 ⟶ 1,317:
Application.Run ;
 
end. // Program</langsyntaxhighlight>
 
=={{header|E}}==
{{libheader|Swing}}
{{works with|E-on-Java}}
<langsyntaxhighlight lang="e">when (currentVat.morphInto("awt")) -> {
var clicks := 0
def w := <swing:makeJFrame>("Rosetta Code 'Simple Windowed Application'")
Line 1,186 ⟶ 1,337:
w.pack()
w.show()
}</langsyntaxhighlight>
 
=={{header|EchoLisp}}==
UI elements are HTML DOM Nodes. '''ui-add''' adds an element to the UI. '''ui-on-event''' adds a (Lisp) event handler to an element.
<langsyntaxhighlight lang="scheme">
(define (ui-add-button text) ;; helper
(define b (ui-create-element "button" '((type "button"))))
Line 1,213 ⟶ 1,364:
 
(panel)
</syntaxhighlight>
</lang>
 
=={{header|Elena}}==
ELENA 56.0x:
<langsyntaxhighlight lang="elena">import forms;
import extensions;
 
Line 1,229 ⟶ 1,380:
constructor new()
<= super new()
{
lblClicks := Label.new();
Line 1,257 ⟶ 1,408:
lblClicks.Caption := "Clicks: " + clicksCount.toString();
}
}</langsyntaxhighlight>
 
=={{header|Euphoria}}==
===EuWinGUI===
{{libheader|EuWinGUI}}
<langsyntaxhighlight lang="euphoria">include EuWinGUI.ew
 
Window("EuWinGUI - Simple windowed application",100,100,360,100)
Line 1,280 ⟶ 1,431:
end while
 
CloseApp(0)</langsyntaxhighlight>
 
=={{header|F_Sharp|F#}}==
{{trans|C#}}
<langsyntaxhighlight lang="fsharp">open System.Windows.Forms
 
let mutable clickCount = 0
Line 1,299 ⟶ 1,450:
form.Controls.Add(button)
 
Application.Run(form)</langsyntaxhighlight>
 
=={{header|Factor}}==
<langsyntaxhighlight lang="factor">USING: accessors arrays kernel math math.parser namespaces
sequences ui ui.gadgets ui.gadgets.borders ui.gadgets.buttons
ui.gadgets.grids ui.gadgets.labels ui.gadgets.worlds ;
Line 1,328 ⟶ 1,479:
: main ( -- ) 1 n set build-ui ;
 
MAIN: main</langsyntaxhighlight>
 
=={{header|Fantom}}==
 
<langsyntaxhighlight lang="fantom">
using fwt
using gfx
Line 1,362 ⟶ 1,513:
}
}
</syntaxhighlight>
</lang>
 
=={{header|Forth}}==
Line 1,368 ⟶ 1,519:
{{works with|bigFORTH}}
{{libheader|MINOS}}
<langsyntaxhighlight lang="forth">also minos
text-label ptr click-label
Variable click# click# off
Line 1,378 ⟶ 1,529:
click-label assign ]S X" Click me" button new
&2 vabox new panel s" Clicks" assign show endwith ;
click-win</langsyntaxhighlight>
 
===The same with Theseus===
{{works with|bigFORTH}}
{{libheader|Theseus}}
<langsyntaxhighlight lang="forth">#! xbigforth
\ automatic generated code
\ do not edit
Line 1,418 ⟶ 1,569:
$1 0 ?DO stop LOOP bye ;
script? [IF] main [THEN]
previous previous previous</langsyntaxhighlight>
 
 
Line 1,426 ⟶ 1,577:
Creates a GUI with 'wish' from tk library. Uses pipes on standard input and output (created throw linux system calls).
 
<langsyntaxhighlight lang="forth">0 value tk-in
0 value tk-out
variable #clicks
Line 1,460 ⟶ 1,611:
s" rm tk-in tk-out" system ;
 
initiating counting cleaning</langsyntaxhighlight>
 
===with iMops===
{{works with|iMops|2.23}}
Macintosh only - Uses native MacOS GUI calls to Cocoa.
<syntaxhighlight lang="forth">
:class TextView' super{ TextView }
:m put: ( addr len -- )
0 #ofChars: self SetSelect: self
insert: self ;m
;class
 
Window+ w
View wview
Button b
100 30 100 20 setFrame: b
TextView' t
200 30 200 15 setFrame: t
 
\ the running count is always on the stack
\ so a variable for that is not needed
:noname
1+ \ increment the count
" Number of clicks: " put: t
dup deciNumstr insert: t ; setAction: b \ update the text representation of count
 
: go
b addview: wview
t addview: wview
300 30 430 230 put: frameRect
frameRect " Test" docWindow
wview new: w show: w
" click me" setTitle: b
" There have been no clicks yet" put: t
0 ; \ the number of clicks start at zero
 
go</syntaxhighlight>
 
=={{header|FreeBASIC}}==
<syntaxhighlight lang="freebasic">
<lang FreeBasic>
#Include "windows.bi"
 
Line 1,498 ⟶ 1,685:
 
End
</syntaxhighlight>
</lang>
 
=={{header|FutureBasic}}==
<syntaxhighlight lang="futurebasic">_window = 1
 
begin enum 1
_label
_clickMeBtn
end enum
 
void local fn BuildWindow
window _window, @"Simple Windowed Application", (0,0,366,59)
 
textlabel _label, @"There have been no clicks yet", (18,23,250,16)
 
button _clickMeBtn,,, @"Click Me", (267,13,86,32)
end fn
 
void local fn ButtonClicked
static long clickCount = 0
 
clickCount++
textlabel _label, fn StringWithFormat( @"The button has been clicked %ld times", clickCount )
end fn
 
void local fn DoDialog( ev as long, tag as long )
select ( ev )
case _btnClick
select ( tag )
case _clickMeBtn : fn ButtonClicked
end select
end select
end fn
 
fn BuildWindow
 
on dialog fn DoDialog
 
HandleEvents</syntaxhighlight>
 
=={{header|Gambas}}==
<langsyntaxhighlight lang="gambas">iCount As Integer 'Counter of clicks!
hLabel As Label 'We need a Label
 
Line 1,537 ⟶ 1,762:
hLabel.text = "The button has been clicked " & iCount & " times" 'Display the amount of clicks"
 
End</langsyntaxhighlight>
 
=={{header|Gastona}}==
<langsyntaxhighlight lang="gastona">#javaj#
 
<frames> main, Simple click counter
Line 1,559 ⟶ 1,784:
-->, lClicks data!,, //@<NN> clicks so far
 
</syntaxhighlight>
</lang>
 
=={{header|Go}}==
{{libheader|go-gtk}}
<langsyntaxhighlight lang="go">package main
 
import (
Line 1,595 ⟶ 1,820:
window.ShowAll()
gtk.Main()
}</langsyntaxhighlight>
 
=={{header|Groovy}}==
<langsyntaxhighlight lang="groovy">import groovy.swing.SwingBuilder
 
count = 0
Line 1,608 ⟶ 1,833:
}
}
}</langsyntaxhighlight>
 
'''with binding:'''
<langsyntaxhighlight lang="groovy">import groovy.swing.SwingBuilder
import groovy.beans.Bindable
 
Line 1,626 ⟶ 1,851:
}
}
}</langsyntaxhighlight>
 
=={{header|Guish}}==
<syntaxhighlight>
c=0
p=|p|;v
l=|l|;<"There have been no clicks yet"o
b=|b|;=>c{
c = add(1, @c)
@l<@c
}<"click me"
@p<<<@b<<<@l
@l w
@p,o+
</syntaxhighlight>
 
=={{header|Haskell}}==
{{libheader|Gtk}} from [http://hackage.haskell.org/packages/hackage.html HackageDB]
<langsyntaxhighlight lang="haskell">import Graphics.UI.Gtk
import Data.IORef
 
Line 1,659 ⟶ 1,898:
widgetShowAll window
 
mainGUI</langsyntaxhighlight>
 
=={{header|HicEst}}==
<langsyntaxhighlight lang="hicest"> CHARACTER label="There have been no clicks yet"
 
DO count = 1, 1E100 ! "forever"
Line 1,669 ⟶ 1,908:
ENDDO
 
END</langsyntaxhighlight>
 
==Icon and {{header|Unicon}}==
 
This version is Unicon-specific:
<langsyntaxhighlight lang="unicon">import gui
$include "guih.icn"
 
Line 1,704 ⟶ 1,943:
initially
self.Dialog.initially()
end</langsyntaxhighlight>
 
=={{header|IDL}}==
<langsyntaxhighlight lang="idl">pro counter, ev
widget_control, ev.top, get_uvalue=tst
tst[1] = tst[1]+1
Line 1,720 ⟶ 1,959:
xmanager, "Simple", Id
end</langsyntaxhighlight>
 
=={{header|J}}==
'''J 9.x''' (note: the J 8.x version works fine under J 9.x)<syntaxhighlight lang="j">simple_run=: {{
simple_clicks=: 0 NB. initialize accumulator
wd {{)n
pc simple closeok escclose;
cc click button;cn "Click me";
cc message static;cn "There have been no clicks yet.";
pshow;
}}}}
simple_run''
simple_click_button=: {{wd 'set message text Button-use count: ',": simple_clicks=: 1+simple_clicks}}</syntaxhighlight>
'''J 8.x'''
<langsyntaxhighlight lang="j">SIMPLEAPP=: noun define
pc simpleApp;
cc inc button;cn "Click me";
Line 1,743 ⟶ 1,993:
simpleApp_cancel=: simpleApp_close
 
simpleApp_run''</langsyntaxhighlight>
 
'''J 6.x'''
<langsyntaxhighlight lang="j">SIMPLEAPP=: noun define
pc simpleApp;
xywh 131 11 44 12;cc inc button;cn "Click me";
Line 1,767 ⟶ 2,017:
simpleApp_cancel=: simpleApp_close
 
simpleApp_run''</langsyntaxhighlight>
 
=={{header|Java}}==
{{libheader|AWT}}
{{libheader|Swing}}
<langsyntaxhighlight lang="java">import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
Line 1,809 ⟶ 2,059:
);
}
}</langsyntaxhighlight>
 
=={{header|JavaFX Script}}==
{{libheader|JavaFX 1.2}}
<langsyntaxhighlight lang="javafx">import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
Line 1,837 ⟶ 2,087:
}
}
}</langsyntaxhighlight>
 
=={{header|JavaScript}}==
<syntaxhighlight lang="javascript">
<lang JavaScript>
<html>
<head>
Line 1,870 ⟶ 2,120:
 
</html>
</syntaxhighlight>
</lang>
 
[http://melellington.com/simplewindow/javascript-simple-window.html Javascript Output]
 
----
 
=={{header|Julia}}==
Uses the Gtk library.
<langsyntaxhighlight lang="julia">using Gtk.ShortNames
 
function clickwindow()
Line 1,895 ⟶ 2,149:
 
clickwindow()
</syntaxhighlight>
</lang>
 
=={{header|Kotlin}}==
{{trans|Java}}
<langsyntaxhighlight lang="scala">// version 1.0.6
 
import java.awt.BorderLayout
Line 1,936 ⟶ 2,190:
fun main(args: Array<String>) {
Clicks() // call the constructor where all the magic happens
}</langsyntaxhighlight>
 
{{libheader|TornadoFX}}
<langsyntaxhighlight lang="scala">
import tornadofx.*
 
Line 1,953 ⟶ 2,207:
 
fun main(args: Array<String>) = launch<ClicksApp>(args)
</syntaxhighlight>
</lang>
 
=={{header|Lambdatalk}}==
Line 1,959 ⟶ 2,213:
 
The code is tested in this page: http://epsilonwiki.free.fr/lambdaway/?view=popup
<syntaxhighlight lang="scheme">
<lang Scheme>
1) the label: {div {@ id="label"} There have been no clicks yet }
2) the button: {input {@ type="button" value="click me" onclick="CLICKAPP.inc()" }}
Line 1,973 ⟶ 2,227:
return {inc:inc}
})();
</syntaxhighlight>
</lang>
 
=={{header|Liberty BASIC}}==
<langsyntaxhighlight lang="lb">nomainwin
button #demo.btn, "Click Me", [btnClick], UL, 20, 50
statictext #demo.num, "There have been no clicks yet.", 20, 100, 240, 30
Line 1,991 ⟶ 2,245:
nClicks = nClicks + 1
#demo.num "The button has been clicked ";nClicks;" times."
wait</langsyntaxhighlight>
 
=={{header|Lingo}}==
The standard approach in Lingo for creating GUIs and assigning scripts for handling user interaction is to use the graphical IDE/GUI-Builder "Director". But windows and sprites (visual elements) can also be created and scripted programmatically only:
<langsyntaxhighlight lang="lingo">on startMovie
 
-- window settings
Line 2,041 ⟶ 2,295:
_movie.stage.visible = 1
 
end</langsyntaxhighlight>
 
 
Line 2,052 ⟶ 2,306:
is in the object's message path so the button works well.
 
<langsyntaxhighlight LiveCodelang="livecode">global count
on openCard
put empty into count
Line 2,060 ⟶ 2,314:
add 1 to count
put count into field "clicks"
end mouseUp</langsyntaxhighlight>
 
[httpshttp://www.melellington.com/simplewindow/livecodeexamplelivecode-simple-window.pngjpg LiveCode ExampleOutput]
 
 
 
----
 
=={{header|Logo}}==
Line 2,068 ⟶ 2,326:
{{works with|MSWlogo}}
 
<langsyntaxhighlight lang="logo">to clickwindow
windowCreate "root "clickWin [Click that button!!!] 0 0 100 100 []
Make "i 0
Line 2,076 ⟶ 2,334:
ifelse :i=1 [staticUpdate "clickSt (list "clicked :i "time)] ~
[staticUpdate "clickSt (list "clicked :i "times)]]
end</langsyntaxhighlight>
 
The window is opened with:
<syntaxhighlight lang ="logo">clickwindow</langsyntaxhighlight>
 
=={{header|Lua}}==
<langsyntaxhighlight lang="lua">require"iuplua"
l = iup.label{title="There have been no clicks yet."}
b = iup.button{title="Click me!"}
Line 2,095 ⟶ 2,353:
if (not iup.MainLoopLevel or iup.MainLoopLevel()==0) then
iup.MainLoop()
end</langsyntaxhighlight>
 
=={{header|M2000 Interpreter}}==
Line 2,105 ⟶ 2,363:
 
 
<syntaxhighlight lang="m2000 interpreter">
<lang M2000 Interpreter>
Module CheckIt {
Declare Form1 Form
Line 2,124 ⟶ 2,382:
}
Checkit
</syntaxhighlight>
</lang>
 
=={{header|Mathematica}}/{{header|Wolfram Language}}==
<langsyntaxhighlight Mathematicalang="mathematica">DynamicModule[{n = 0},
CreateDialog[{Dynamic@
TextCell@If[n == 0, "There have been no clicks yet", n],
Button["click me", n++]}]]</langsyntaxhighlight>
 
=={{header|MAXScript}}==
<langsyntaxhighlight lang="maxscript">rollout buttonClick "Button Click"
(
label l "There have been no clicks yet"
Line 2,145 ⟶ 2,403:
)
)
createDialog buttonClick</langsyntaxhighlight>
 
=={{header|Modula-3}}==
Line 2,151 ⟶ 2,409:
 
This code uses <tt>Trestle</tt>, a windowing toolkit developed for Modula-3.
<langsyntaxhighlight lang="modula3">MODULE Click EXPORTS Main;
 
IMPORT Fmt, TextVBT, ButtonVBT, VBT, Axis, HVSplit, TrestleComm, Trestle;
Line 2,170 ⟶ 2,428:
Trestle.Install(main);
Trestle.AwaitDelete(main);
END Click.</langsyntaxhighlight>
 
To compile the above code, you need to create a file called <tt>m3makefile</tt> which contains:
Line 2,181 ⟶ 2,439:
 
=={{header|Nanoquery}}==
<langsyntaxhighlight lang="nanoquery">import Nanoquery.Util.Windows
 
// define the necessary objects
Line 2,215 ⟶ 2,473:
 
// show the window
$w.show()</langsyntaxhighlight>
 
=={{header|Nim}}==
{{libheader|GTK2}}
<langsyntaxhighlight lang="nim">import gtk2
 
nim_init()
Line 2,241 ⟶ 2,499:
discard button.signal_connect("clicked", SignalFunc clickedMe, label)
win.showAll()
main()</langsyntaxhighlight>
 
=={{header|Objective-C}}==
{{works with|GNUstep}}
<langsyntaxhighlight lang="objc">#include <Foundation/Foundation.h>
#include <AppKit/AppKit.h>
 
Line 2,257 ⟶ 2,515:
- (BOOL)applicationShouldTerminateAfterLastWindowClosed: (NSNotification *)notification;
- (void)advanceCounter: (id)sender;
@end</langsyntaxhighlight>
 
<langsyntaxhighlight lang="objc">@implementation ClickMe : NSWindow
-(instancetype) init
{
Line 2,329 ⟶ 2,587:
}
return 0;
}</langsyntaxhighlight>
 
=={{header|OCaml}}==
* with '''Labltk''', the '''Tk''' OCaml binding:
<langsyntaxhighlight lang="ocaml">#directory "+labltk"
#load "labltk.cma"
 
Line 2,348 ⟶ 2,606:
Tk.pack [Tk.coe label; Tk.coe b];
Tk.mainLoop ();
;;</langsyntaxhighlight>
 
* with '''LablGTK2''', the '''GTK2''' OCaml binding:
<langsyntaxhighlight lang="ocaml">open GMain
 
let window = GWindow.window ~border_width:2 ()
Line 2,363 ⟶ 2,621:
button#connect#clicked ~callback:window#destroy;
window#show ();
Main.main ()</langsyntaxhighlight>
 
=={{header|ooRexx}}==
<langsyntaxhighlight lang="oorexx">/* REXX ***************************************************************************************
* 18.06.2014 Walter Pachl shortened from Rony Flatscher's bsf4oorexx (see sourceforge) samples
* Look there for ShowCount.rxj
Line 2,450 ⟶ 2,708:
Otherwise how_often=userData~i 'times'
End
userData~label~setText("Button was pressed" how_often) -- display text</langsyntaxhighlight>
 
=={{header|Oz}}==
<langsyntaxhighlight lang="oz">functor
import
Application
Line 2,471 ⟶ 2,729:
{Window show}
end
</syntaxhighlight>
</lang>
 
=={{header|Pascal}}==
Line 2,479 ⟶ 2,737:
{{libheader|Gtk2}}
Ported from the C example.
<langsyntaxhighlight lang="pascal">Program SimpleWindowApplication;
 
uses
Line 2,525 ⟶ 2,783:
Gtk_widget_show_all(Gtk_WIDGET(win));
Gtk_main();
end.</langsyntaxhighlight>
 
=={{header|Perl}}==
==={{libheader|Perl/Tk}}===
<langsyntaxhighlight lang="perl">use Tk;
 
$main = MainWindow->new;
Line 2,538 ⟶ 2,796:
-command => sub { $l->configure(-text => 'Number of clicks: '.(++$count).'.'); },
)->pack;
MainLoop();</langsyntaxhighlight>
 
==={{libheader|GTK}} {{works with|Perl/Gtk}}===
<langsyntaxhighlight lang="perl">use Gtk '-init';
 
# Window.
Line 2,567 ⟶ 2,825:
 
# Main loop.
Gtk->main;</langsyntaxhighlight>
 
=={{header|Phix}}==
{{libheader|Phix/basics}}
{{libheader|Phix/pGUI}}
{{libheader|Phix/online}}
<!--<lang Phix>(phixonline)-->
You can run this online [http://phix.x10.mx/p2js/simplewindow.htm here].
<!--<syntaxhighlight lang="phix">(phixonline)-->
<span style="color: #000080;font-style:italic;">-- demo\rosetta\Simple_window.exw</span>
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">include</span> <span style="color: #000000;">pGUI</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
Line 2,596 ⟶ 2,857:
<span style="color: #7060A8;">IupClose</span><span style="color: #0000FF;">()</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<!--</langsyntaxhighlight>-->
The above is cross platform, (win/lnx), 32/64 bit. On request, Iand haveruns restoredin thea followingbrowser. arwen version (win32-only).<br>
An older win32-only version can be found [[Simple_windowed_application/Arwen|here]].
The included demo\edita contains a window painter that lets you reposition/resize this very easily (alas the equivalent for the above is progressing rather leisurely).
<!--<lang Phix>-->
<span style="color: #008080;">include</span> <span style="color: #000000;">arwen</span><span style="color: #0000FF;">.</span><span style="color: #000000;">ew</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">main</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">create</span><span style="color: #0000FF;">(</span><span style="color: #000000;">Window</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Simple windowed application"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #000000;">300</span><span style="color: #0000FF;">,</span><span style="color: #000000;">200</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">label</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">create</span><span style="color: #0000FF;">(</span><span style="color: #000000;">Label</span><span style="color: #0000FF;">,</span> <span style="color: #008000;">"There have been no clicks yet"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">main</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">,</span><span style="color: #000000;">10</span><span style="color: #0000FF;">,</span><span style="color: #000000;">250</span><span style="color: #0000FF;">,</span><span style="color: #000000;">30</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">btn</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">create</span><span style="color: #0000FF;">(</span><span style="color: #000000;">Button</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"Click me"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">main</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #000000;">50</span><span style="color: #0000FF;">,</span><span style="color: #000000;">100</span><span style="color: #0000FF;">,</span><span style="color: #000000;">30</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">count</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
<span style="color: #008080;">function</span> <span style="color: #000000;">mainHandler</span><span style="color: #0000FF;">(</span><span style="color: #004080;">integer</span> <span style="color: #000000;">id</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">integer</span> <span style="color: #000000;">msg</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">atom</span> <span style="color: #000080;font-style:italic;">/*wParam*/</span><span style="color: #0000FF;">,</span> <span style="color: #004080;">object</span> <span style="color: #000080;font-style:italic;">/*lParam*/</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">id</span><span style="color: #0000FF;">=</span><span style="color: #000000;">btn</span> <span style="color: #008080;">and</span> <span style="color: #000000;">msg</span><span style="color: #0000FF;">=</span><span style="color: #000000;">WM_COMMAND</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">count</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">setText</span><span style="color: #0000FF;">(</span><span style="color: #000000;">label</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"clicked %d times"</span><span style="color: #0000FF;">,</span><span style="color: #000000;">count</span><span style="color: #0000FF;">))</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">return</span> <span style="color: #000000;">0</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
<span style="color: #000000;">setHandler</span><span style="color: #0000FF;">(</span><span style="color: #000000;">btn</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">routine_id</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"mainHandler"</span><span style="color: #0000FF;">))</span>
<span style="color: #000000;">WinMain</span><span style="color: #0000FF;">(</span><span style="color: #000000;">main</span><span style="color: #0000FF;">,</span><span style="color: #000000;">SW_NORMAL</span><span style="color: #0000FF;">)</span>
<!--</lang>-->
 
=={{header|PicoLisp}}==
The standard PicoLisp GUI is HTTP based. Connect your browser to
http://localhost:8080 after starting the following script.
<langsyntaxhighlight PicoLisplang="picolisp">#!/usr/bin/picolisp /usr/lib/picolisp/lib.l
 
(load "@ext.l" "@lib/http.l" "@lib/xhtml.l" "@lib/form.l")
Line 2,640 ⟶ 2,882:
 
(server 8080 "!start")
(wait)</langsyntaxhighlight>
 
=={{header|Pike}}==
{{libheader|Gtk2}}
<langsyntaxhighlight Pikelang="pike">GTK2.Widget mainwindow,clickcnt,clicker;
int clicks;
 
Line 2,665 ⟶ 2,907:
return -1;
}
</syntaxhighlight>
</lang>
 
=={{header|PowerShell}}==
===Windows Forms===
{{works with|PowerShell|3}}
<syntaxhighlight lang="powershell">
<lang PowerShell>
$Label1 = [System.Windows.Forms.Label]@{
Text = 'There have been no clicks yet'
Line 2,691 ⟶ 2,933:
$Result = $Form1.ShowDialog()
</syntaxhighlight>
</lang>
{{works with|PowerShell|2}}
<syntaxhighlight lang="powershell">
<lang PowerShell>
Add-Type -AssemblyName System.Windows.Forms
Line 2,717 ⟶ 2,959:
$Result = $Form1.ShowDialog()
</syntaxhighlight>
</lang>
===WPF===
<syntaxhighlight lang="powershell">
<lang PowerShell>
[xml]$Xaml = @"
<Window
Line 2,758 ⟶ 3,000:
$Result = $Window1.ShowDialog()
</syntaxhighlight>
</lang>
 
=={{header|Processing}}==
<syntaxhighlight lang="java">
//Aamrun, 11th July 2022
 
int labelLeft = 100, labelTop = 100, labelWidth = 440, labelHeight = 100;
 
int labelTextLeft = 150, labelTextTop = 150;
 
int buttonLeft = 170, buttonTop = 230, buttonWidth = 300, buttonHeight = 100;
 
boolean hasBeenClicked = false;
 
int clicks = 0;
 
 
void setup(){
size(640,480);
fill(255);
rect(labelLeft,labelTop,labelWidth,labelHeight);
fill(0);
textSize(30);
text("There have been no clicks yet",labelTextLeft,labelTextTop);
fill(#c0c0c0);
rect(buttonLeft,buttonTop,buttonWidth,buttonHeight);
fill(0);
text("Click Me !", buttonLeft + 50,buttonTop + 50);
}
 
void mousePressed(){
if(mouseX > buttonLeft && mouseX < buttonLeft + buttonWidth
&& mouseY > buttonTop && mouseY < buttonTop + buttonHeight){
hasBeenClicked = true;
clicks++;
}
}
 
void draw(){
if(hasBeenClicked == true){
fill(255);
rect(labelLeft,labelTop,labelWidth,labelHeight);
fill(0);
textSize(30);
text("Clicks : " + str(clicks),labelTextLeft,labelTextTop);
}
}
 
 
</syntaxhighlight>
 
=={{header|Prolog}}==
Works with SWI-Prolog and XPCE.
<langsyntaxhighlight Prologlang="prolog">:- dynamic click/1.
 
dialog('Simple windowed application',
Line 2,804 ⟶ 3,095:
send(D, open).
 
</syntaxhighlight>
</lang>
 
=={{header|PureBasic}}==
<langsyntaxhighlight PureBasiclang="purebasic">Define window_0
Define window_0_Text_0, window_0_Button_1
Define clicks, txt$, flags
Line 2,833 ⟶ 3,124:
EndSelect
ForEver
EndIf</langsyntaxhighlight>
 
=={{header|Python}}==
Line 2,839 ⟶ 3,130:
==={{libheader|Tkinter}}===
{{works with|Python|3.7}}
<langsyntaxhighlight lang="python">from functools import partial
import tkinter as tk
 
Line 2,865 ⟶ 3,156:
if __name__ == '__main__':
main()
</syntaxhighlight>
</lang>
 
The same in OO manner:
<langsyntaxhighlight lang="python">import tkinter as tk
 
class ClickCounter(tk.Frame):
Line 2,889 ⟶ 3,180:
if __name__ == "__main__":
ClickCounter().mainloop()
</syntaxhighlight>
</lang>
 
==={{libheader|PyQt}}===
<langsyntaxhighlight lang="python">from functools import partial
from itertools import count
 
Line 2,928 ⟶ 3,219:
if __name__ == '__main__':
main()
</syntaxhighlight>
</lang>
 
==={{libheader|wxPython}}===
<langsyntaxhighlight lang="python">import wx
 
 
Line 2,966 ⟶ 3,257:
frame.Show()
app.MainLoop()
</syntaxhighlight>
</lang>
 
=={{header|R}}==
Line 2,974 ⟶ 3,265:
 
gWidgetsRGtk2 or gWidgetsrJava can be used as an alternative to gWidgetstcltk.
<langsyntaxhighlight lang="r">library(gWidgets)
library(gWidgetstcltk)
win <- gwindow()
Line 2,983 ⟶ 3,274:
svalue(lab) <- ifelse(is.na(val) ,"1", as.character(val + 1))
}
)</langsyntaxhighlight>
 
=={{header|Racket}}==
 
<langsyntaxhighlight lang="racket">
#lang racket/gui
 
Line 2,999 ⟶ 3,290:
(new button% [parent frame] [label "Click me"] [callback cb])
(send frame show #t)
</syntaxhighlight>
</lang>
 
=={{header|Raku}}==
(formerly Perl 6)
{{libheader|GTK}}
<syntaxhighlight lang="raku" perl6line>use GTK::Simple;
use GTK::Simple::App;
 
Line 3,025 ⟶ 3,316:
}
 
$app.run;</langsyntaxhighlight>
 
=={{header|RapidQ}}==
RapidQ has form designer that produces RapidQ Basic source code. You can get the same result by writing the code yourself with a text editor. Then compile it either from within IDE or by using the command line compiler.
 
<langsyntaxhighlight lang="rapidq">DECLARE SUB buttonClick
 
CREATE form AS QForm
Line 3,055 ⟶ 3,346:
END SUB
 
form.ShowModal</langsyntaxhighlight>
 
=={{header|REBOL}}==
<langsyntaxhighlight REBOLlang="rebol">REBOL [
Title: "Simple Windowed Application"
URL: http://rosettacode.org/wiki/Simple_Windowed_Application
Line 3,084 ⟶ 3,375:
set-face label reform ["clicks:" clicks]
]
]</langsyntaxhighlight>
 
=={{header|Red}}==
<syntaxhighlight lang="red">Red []
 
clicks: 0
 
view [
t: text "There have been no clicks yet" return
button "click me" [
clicks: clicks + 1
t/data: rejoin ["clicks: " clicks]
]
]</syntaxhighlight>
 
=={{header|Ring}}==
<langsyntaxhighlight lang="ring">
Load "guilib.ring"
 
Line 3,109 ⟶ 3,413:
num += 1
lineedit1.settext( "you clicked me " + num + " times")
</syntaxhighlight>
</lang>
Output:
 
Line 3,116 ⟶ 3,420:
=={{header|Ruby}}==
{{libheader|Ruby/Tk}}
<langsyntaxhighlight lang="ruby">require 'tk'
str = TkVariable.new("no clicks yet")
count = 0
Line 3,126 ⟶ 3,430:
pack
end
Tk.mainloop</langsyntaxhighlight>
 
{{libheader|Shoes}}
<langsyntaxhighlight lang="ruby">Shoes.app do
stack do
@count = 0
Line 3,138 ⟶ 3,442:
end
end
end</langsyntaxhighlight>
 
=={{header|Run BASIC}}==
<langsyntaxhighlight lang="runbasic">msg$ = "There have been no clicks yet"
[loop] cls ' clear screen
print msg$
Line 3,150 ⟶ 3,454:
clicks = clicks + 1
msg$ = "Button has been clicked ";clicks;" times"
goto [loop]</langsyntaxhighlight>
 
=={{header|Rust}}==
{{libheader|iced}}
<langsyntaxhighlight Rustlang="rust">use iced::{ // 0.2.0
button, Button, Column, Element, Length,
Text, Sandbox, Settings, Space,
Line 3,207 ⟶ 3,511:
settings.window.size = (600, 400);
Simple::run(settings).unwrap();
}</langsyntaxhighlight>
 
=={{header|Scala}}==
{{libheader|Scala}}
<langsyntaxhighlight Scalalang="scala">import scala.swing.{ BorderPanel, Button, Label, MainFrame, SimpleSwingApplication }
import scala.swing.event.ButtonClicked
 
Line 3,232 ⟶ 3,536:
}
}
}</langsyntaxhighlight>
 
 
=={{header|Scratch}}==
<syntaxhighlight lang="scratch">
<lang Scratch>
when flag clicked # when program is run
set counter to "0" # initialize counter object to zero
Line 3,245 ⟶ 3,549:
hide message # hide the initial message
change counter by 1 # increment the counter object
</syntaxhighlight>
</lang>
 
=='''Comments and Description==:'''<br>
The Scratch IDE has a GUI drag and drop interface.
The program above is has both graphic and text objects.
Line 3,257 ⟶ 3,561:
 
=={{header|Sidef}}==
===Gtk2===
<lang ruby>require('Gtk2') -> init
<syntaxhighlight lang="ruby">require('Gtk2') -> init
 
# Window.
Line 3,283 ⟶ 3,588:
 
# Main loop.
%s<Gtk2>.main</langsyntaxhighlight>
 
===Gtk3===
<syntaxhighlight lang="ruby">use('Gtk3 -init')
 
# Window.
var window = %O'Gtk3::Window'.new
window.signal_connect('destroy' => { %O'Gtk3'.main_quit })
 
# VBox.
var vbox = %O'Gtk3::VBox'.new(0, 0)
window.add(vbox)
 
# Label.
var label = %O'Gtk3::Label'.new('There have been no clicks yet.')
vbox.add(label)
 
# Button.
var count = 0
var button = %O'Gtk3::Button'.new(' Click Me ');
vbox.add(button)
button.signal_connect('clicked' => {
label.set_text(++count)
})
 
# Show.
window.show_all
 
# Main loop.
%O'Gtk3'.main</syntaxhighlight>
 
=={{header|Smalltalk}}==
{{works with|Smalltalk/X}}
<langsyntaxhighlight lang="smalltalk">|top clickCount lh button|
 
clickCount := 0.
Line 3,302 ⟶ 3,636:
].
 
top open</langsyntaxhighlight>
 
=={{header|Standard ML}}==
Works with PolyML
<langsyntaxhighlight Standardlang="standard MLml">open XWindows ;
open Motif ;
Line 3,333 ⟶ 3,667:
end;
</syntaxhighlight>
</lang>
call
countWindow () ;
Line 3,340 ⟶ 3,674:
=={{header|Tcl}}==
{{libheader|Tk}}
<langsyntaxhighlight lang="tcl">package require Tk
pack [label .l -text "There have been no clicks yet"]
set count 0
Line 3,346 ⟶ 3,680:
proc upd {} {
.l configure -text "Number of clicks: [incr ::count]"
}</langsyntaxhighlight>
 
=={{header|TI-89 BASIC}}==
Line 3,352 ⟶ 3,686:
The Ti-89 does not have general onscreen buttons; this program uses the OK/Cancel choice of a dialog box to implement the UI.
 
<langsyntaxhighlight lang="ti89b">Prgm
Local clicks
0 → clicks
Line 3,363 ⟶ 3,697:
clicks + 1 → clicks
EndWhile
EndPrgm</langsyntaxhighlight>
 
=={{header|Unicon}}==
 
<langsyntaxhighlight lang="unicon">
import gui
$include "guih.icn"
Line 3,399 ⟶ 3,733:
d.show_modal()
end
</syntaxhighlight>
</lang>
 
=={{header|Vala}}==
<syntaxhighlight lang="vala">// GTK 4
public class Example : Gtk.Application {
public Example() {
Object(application_id: "my.application",
flags: ApplicationFlags.FLAGS_NONE);
activate.connect(() => {
var window = new Gtk.ApplicationWindow(this);
var box = new Gtk.Box(Gtk.Orientation.VERTICAL, 20);
var label = new Gtk.Label("There have been no clicks yet");
var button = new Gtk.Button.with_label("click me");
var clicks = 0;
button.clicked.connect(() => {
clicks++;
label.label = "Button clicked " + clicks.to_string() + " times";
});
box.append(label);
box.append(button);
window.set_child(box);
window.present();
});
}
public static int main(string[] argv) {
return new Example().run(argv);
}
}</syntaxhighlight>
 
=={{header|Vedit macro language}}==
<langsyntaxhighlight lang="vedit">Reg_Set(10, "There have been no clicks yet")
#1 = 0
repeat (ALL) {
Line 3,414 ⟶ 3,775:
Reg_Set(10, "Clicked", INSERT)
Reg_Set(10, " times", APPEND)
}</langsyntaxhighlight>
 
=={{header|Visual Basic}}==
In VB, windows are usually created in the IDE. The generated code is hidden from the user unless viewed outside of VB. For the sake of this task, I have included that code, but normally it is hidden from the programmer.
 
<langsyntaxhighlight lang="vb">VERSION 5.00
Begin VB.Form Form2
Caption = "There have been no clicks yet"
Line 3,451 ⟶ 3,812:
Me.Caption = clicked & " clicks."
End Sub
</syntaxhighlight>
</lang>
 
=={{header|V (Vlang)}}==
<syntaxhighlight lang="Zig">
import ui
import gx
 
[heap]
struct App {
mut:
window &ui.Window = unsafe {nil}
counter string = "No clicks yet" // will contain number count
}
 
fn main() {
mut app := &App{}
app.window = ui.window(
width: 200
height: 40
title: "Counter"
mode: .resizable
layout: ui.row(
spacing: 5
margin_: 10
widths: ui.stretch
heights: ui.stretch
children: [
ui.label(
id: "num"
text: &app.counter //refer to struct App
),
ui.button(
text: "Click me"
bg_color: gx.light_gray
radius: 5
border_color: gx.gray
on_click: app.btn_click //refer to function below
),
]
)
)
ui.run(app.window)
}
 
fn (mut app App) btn_click(btn &ui.Button) {
mut lbl := app.window.get_or_panic[ui.Label]("num") //"num" is id of label
app.counter = (app.counter.int() + 1).str() //change to string for label display
lbl.set_text(app.counter)
}
</syntaxhighlight>
 
=={{header|Web 68}}==
<langsyntaxhighlight lang="web68">@1Introduction.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public Licence as published by
Line 3,554 ⟶ 3,964:
The predefined form was created by the <b>fdesign</b> program for the Xforms library,
and the resulting form definition file was converted to Web 68 by the program
<b>fdtow68</b>.</langsyntaxhighlight>
 
=={{header|Wren}}==
{{libheader|DOME}}
<langsyntaxhighlight ecmascriptlang="wren">import "graphics" for Canvas, Color
import "input" for Mouse
import "dome" for Window
Line 3,601 ⟶ 4,011:
}
 
var Game = SimpleWindowedApplication.new(600, 600)</langsyntaxhighlight>
 
=={{header|XPL0}}==
<langsyntaxhighlight XPL0lang="xpl0">include c:\cxpl\stdlib; \standard library provides mouse routines, etc.
def Ww=40, Wh=12, Wx=(80-Ww)/2, Wy=(25-Wh)/2; \window width, etc.
def Bw=11, Bh=4, Bx=Wx+(Ww-Bw)/2, By=Wy+3*(Wh-Bh)/4; \button size & position
Line 3,633 ⟶ 4,043:
until ChkKey; \keystroke terminates program
SetVid(3); \turn off mouse and turn on flashing cursor
]</langsyntaxhighlight>
 
=={{header|Yorick}}==
Yorick does not include a GUI toolkit. However, it does provide a plotting system that can emulate some basic GUI features, such as buttons and labels. The above sample uses a built-in library "button.i", which is itself written in Yorick.
 
<langsyntaxhighlight lang="yorick">#include "button.i"
 
window, 0;
Line 3,659 ⟶ 4,069:
winkill, 0;
}
} while(!finished);</langsyntaxhighlight>
 
{{omit from|ACL2}}
{{omit from|AWK}}
{{omit from|Batch File|Does not have access to GUI functions.}}
{{omit from|EasyLang}}
{{omit from|GUISS}}
{{omit from|Logtalk}}
9,476

edits