The Ring programming language version 1.5 book - Part 31 of 31
1. Ring Documentation, Release 1.5
How to get the file size using ftell() and fseek() func-
tions?, 1705
How to insert an item to the first position in the list?,
1710
How to perform some manipulations on selected
cells in QTableWidget?, 1721
How to print keys or values only in List/Dictionary?,
1706
How to print lists that contains objects?, 1710
How to print new lines and other characters?, 1711
How to use many source code files in the project?,
1707
How to use NULL and ISNULL() function?, 1709
How to use SQLite using ODBC?, 1715
Introduction, 1690
Is Ring some sort of improvement over PHP?, 1693
List index start from 1, 1699
Philosophy behind data types in Ring, 1696
Search of global names while defining the class at-
tributes, 1703
The documentation says functional programming is
supported, but then this happens?, 1695
What about predefined parameters or optional pa-
rameters in functions?, 1705
What about the Boolean values in Ring?, 1697
What are the advantages to using Ring over C# or
Java?, 1695
What are the advantages to using Ring over Lisp or
Smalltalk?, 1692
What are the advantages to using Ring over native C
or C++?, 1693
What are the advantages to using Ring over Python
and Ruby?, 1694
What are the advantages to using Ring over Tcl and
Lua?, 1694
What happens when we create a new object?, 1701
What is the difference between Ring and Python?
And is Ring Open Source?, 1693
Where can I write a program and execute it?, 1704
Why do we need Yet Another Programming Lan-
guage (YAPL)?, 1691
Why I get a strange result when printing nl with
lists?, 1706
Why I get Calling Function without definition Er-
ror?, 1717
Why Ring is largely focussed on UI creation?, 1693
Why Ring is not case-sensitive, 1699
Why Ring is weakly typed?, 1692
Why Ring uses ’See’, ’Give’, ’But’ and ’Ok’ Key-
words?, 1696
Why setClickEvent() doesn’t see the object methods
directly?, 1717
Why the ability to define your own languages Instead
of just handing over the syntax so you can parse
it using whatever code you like?, 1695
Why the Assignment operator uses Deep copy?,
1700
Why the window title bar is going outside the
screen?, 1711
Why this example use the GetChar() twice?, 1708
Why we don’t use () after the qApp class name?,
1711
Why you can specify the number of loops you want
to break out of?, 1696
Fseek()
Files, 203
Fsetpos()
Files, 204
FSize()
Stdlib Functions, 298
Ftell()
Files, 203
Function Prototype
Extension, 729
function prototype
Code Generator, 738
Function Structure
Extension, 727
Functional Programming
Anonymous and Nested Functions, 264
Equality of functions, 265
First-Class Functions, 263
Higher-order Functions, 263
Introduction, 261
Pure Functions, 262
Functions - First Style
Call Functions, 155
Declare parameters, 156
Define Functions, 155
Introduction, 154
Main Function, 156
Recursion, 158
Return Value, 157
Send Parameters, 156
Variables Scope, 157
Functions - Second Style
Call Functions, 159
Declare parameters, 160
Define Functions, 159
Introduction, 158
Main Function, 160
Recursion, 162
Return Value, 161
Send Parameters, 160
Variables Scope, 161
Functions - Third Style
Call Functions, 163
Declare parameters, 164
Index 1745
2. Ring Documentation, Release 1.5
Define Functions, 163
Introduction, 162
Main Function, 164
Recursion, 166
Return Value, 165
Send Parameters, 164
Variables Scope, 165
functions()
Reflection and Meta-programming, 268
Fwrite()
Files, 206
Game Class
Game Engine for 2D Games, 430
Game Engine Classes
Game Engine for 2D Games, 429
Game Engine for 2D Games
Animate Class, 432
Animate Events, 443
Animation, 437
Animation and Functions, 438
Creating the Game Window, 432
Drawing Text, 433
Flappy Bird 3000 Game, 459
Game Class, 430
Game Engine Classes, 429
GameObject Class, 430
Games Layer, 429
Graphics Library Bindings, 428
Interface to graphics library, 428
Introduction, 427
Map, 445
Map Class, 432
Map Events, 446
Moving Text, 434
Object and Drawing, 448
Playing Sound, 436
Project Layers, 428
Sound Class, 432
Sprite Automatic Movement, 439
Sprite Class, 431
Sprite Keypress Event, 440
Sprite Mouse Event, 441
Sprite State Event, 442
Stars Fighter Game, 451
Super Man 2016 Game, 466
Text Class, 431
What is new in Ring 1.1?, 98
GameObject Class
Game Engine for 2D Games, 430
Games Layer
Game Engine for 2D Games, 429
gcd()
Stdlib Functions, 292
Generate Object File
Command Line Options, 697
Generate/Execute Ring Object Files (*.ringo)
What is new in Ring 1.1?, 93
Generating Pages using Objects
Web Development (CGI Library), 371
Get Active Source File Name
System Functions, 213
Get Command Line Arguments
System Functions, 212
Get List Item
Lists, 169
Get List Size
Lists, 169
Get Number of Characters from position
Strings, 179
Get Parameters Values
Extension, 728
Get Request
RingLibCurl, 401
Get Stock Data From Yahoo
RingLibCurl, 403
Get String Length
Strings, 176
Get Substring from position to end
Strings, 179
getattribute()
Reflection and Meta-programming, 280
GetChar()
Getting Input, 153
getnumber()
Stdlib Functions, 285
getstring()
Stdlib Functions, 285
Getter and Setter Methods
Frequently Asked Questions, 1702
Getting Input
GetChar(), 153
Getting Started - First Style, 111
Getting Started - Second Style, 113
Getting Started - Third Style, 115
Give Command, 153
Input(), 154
Introduction, 152
Getting Started - First Style
Getting Input, 111
Hello World, 110
Introduction, 109
Multi-Line literals, 110
No Explicit End For Statements, 111
Not Case-Sensitive, 110
Run the program, 110
Writing Comments, 111
Getting Started - Second Style
Index 1746
3. Ring Documentation, Release 1.5
Getting Input, 113
Hello World, 112
Introduction, 111
Multi-Line literals, 112
No Explicit End For Statements, 113
Not Case-Sensitive, 112
Run the program, 112
Writing Comments, 113
Getting Started - Third Style
Getting Input, 115
Hello World, 114
Introduction, 113
Multi-Line literals, 114
No Explicit End For Statements, 115
Not Case-Sensitive, 114
Run the program, 114
Writing Comments, 115
Give Command
Getting Input, 153
globals()
Reflection and Meta-programming, 267
Goal of including the Main function in Ring
Frequently Asked Questions, 1698
Gradient
Web Development (CGI Library), 370
Graphics and Game Programming
Drawing, Animation and Input, 408
Introduction, 407
Playing Sound, 415
Scaling and Rotating Images, 416
Threads, 418
Transparent Image, 417
TrueType Fonts, 414
Graphics Library Bindings
Game Engine for 2D Games, 428
Hash Functions
Web Development (CGI Library), 365
HashTable Class
Stdlib Classes, 307
Hello World
Getting Started - First Style, 110
Getting Started - Second Style, 112
Getting Started - Third Style, 114
Hello World Program using the Web Library
Web Development (CGI Library), 348
Hex()
Data Type, 192
Hex2str()
Data Type, 193
Higher-order Functions
Functional Programming, 263
History
Introduction, 13
Natural Language Programming, 330
How can I disable maximize button and resize window?
Frequently Asked Questions, 1714
How Ring find a functions and methods?
Scope Rules for Functions and Methods, 664
How Ring find the Variable?
Scope Rules, 650
How to add Combobox and other elements to the cells of
a QTableWidget?
Frequently Asked Questions, 1721
How to Close a window then displaying another one?
Frequently Asked Questions, 1713
How to contribute?
Applications, 109
Compiler and Virtual Machine (VM), 109
Documentation, 108
Editors Support, 109
Extensions in C/C++, 109
Ideas and suggestions, 109
Introduction, 107
Libraries in Ring, 109
Samples, 108
Special thanks to contributors, 108
Testing, 108
How to create a Modal Window?
Frequently Asked Questions, 1713
How to create an array of buttons in GUI applications?
Frequently Asked Questions, 1712
How to extend RingQt and add more classes?
Frequently Asked Questions, 1718
How to get the current source file path?
Frequently Asked Questions, 1705
How to get the file size using ftell() and fseek() functions?
Frequently Asked Questions, 1705
How to insert an item to the first position in the list?
Frequently Asked Questions, 1710
How to perform some manipulations on selected cells in
QTableWidget?
Frequently Asked Questions, 1721
How to print keys or values only in List/Dictionary?
Frequently Asked Questions, 1706
How to print lists that contains objects?
Frequently Asked Questions, 1710
How to print new lines and other characters?
Frequently Asked Questions, 1711
How to use many source code files in the project?
Frequently Asked Questions, 1707
How to use NULL and ISNULL() function?
Frequently Asked Questions, 1709
How to use SQLite using ODBC?
Frequently Asked Questions, 1715
HTML Lists
Web Development (CGI Library), 368
HTML Special Characters
Index 1747
4. Ring Documentation, Release 1.5
Web Development (CGI Library), 364
HTML Tables
Web Development (CGI Library), 369
HtmlPage Class
Web Development (CGI Library), 376, 400
HTTP Get Example
Web Development (CGI Library), 349
HTTP POST Example
Web Development (CGI Library), 354
Ideas and suggestions
How to contribute?, 109
If Statement
Control Structures - Second Style, 145
Control Structures - Third Style, 148
Inheritance
Object Oriented Programming, 255
Inheritance from GUI Classes
Desktop and Mobile Development, 590
Input()
Getting Input, 154
Insert()
Lists, 172
Install Qt for Android
Building RingQt Applications for Mobile, 633
Interactive Debugger
The Trace Library and the Interactive Debugger, 719
Interface to graphics library
Game Engine for 2D Games, 428
Internet Class
Stdlib Classes, 323
Introduction
Features, 13
History, 13
Introduction, 11
Motivation, 12
Is Ring some sort of improvement over PHP?
Frequently Asked Questions, 1693
IsAlNum()
Data Type, 188
IsAlpha()
Data Type, 188
IsAndroid() Function
System Functions, 211
isattribute()
Reflection and Meta-programming, 276
iscfunction()
Reflection and Meta-programming, 270
isclass()
Reflection and Meta-programming, 272
IsCntrl()
Data Type, 188
IsDigit()
Data Type, 189
IsFreeBSD() Function
System Functions, 211
isfunction()
Reflection and Meta-programming, 270
isglobal()
Reflection and Meta-programming, 269
IsGraph()
Data Type, 189
isleapyear()
Stdlib Functions, 294
IsLinux() Function
System Functions, 211
IsList()
Data Type, 187
islocal()
Reflection and Meta-programming, 269
IsLower()
Data Type, 189
IsMacOSX() Function
System Functions, 210
ismainsourcefile()
Stdlib Functions, 297
ismethod()
Reflection and Meta-programming, 277
IsMSDOS() Function
System Functions, 210
IsNULL()
Data Type, 187
IsNumber()
Data Type, 186
isobject()
Reflection and Meta-programming, 275
ispackage()
Reflection and Meta-programming, 271
ispackagesclass()
Reflection and Meta-programming, 274
isprime()
Stdlib Functions, 290
IsPrint()
Data Type, 189
isprivateattribute()
Reflection and Meta-programming, 276
isprivatemethod()
Reflection and Meta-programming, 277
IsPunct()
Data Type, 190
IsSpace()
Data Type, 190
isspecial()
Stdlib Functions, 288
IsString()
Data Type, 186
IsUnix() Function
System Functions, 210
Index 1748
5. Ring Documentation, Release 1.5
IsUpper()
Data Type, 190
isvowel()
Stdlib Functions, 289
IsWindows() Function
System Functions, 210
IsWindows64() Function
System Functions, 210
IsXdigit()
Data Type, 190
JustFileName()
Stdlib Functions, 286
JustFilePath()
Stdlib Functions, 285
Keyboard Events and Colors
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 488
Keyboard Shortcuts
Form Designer, 646
KeyPress and Mouse Move Events
Desktop and Mobile Development, 584
Language Design
Compact Syntax, 19
Define Declarative Languages, 22
Define Natural Statements, 20
Designed for a clear goal, 17
Encourage Organization, 19
Introduction, 16
Simple, 17
Smart Garbage Collector, 25
Transparent Implementation, 23
Trying to be natural, 18
Visual Implementation, 24
Why Ring?, 17
Language Functions
Reference, 1724
Language Grammar
Reference, 1727
Language Keywords
Reference, 1723
Language Shell
Demo Programs, 219
lcm()
Stdlib Functions, 292
Left()
Strings, 177
Libraries in Ring
How to contribute?, 109
Library Usage
Objects Library for RingQt Application, 636
linecount()
Stdlib Functions, 289
Lines()
Strings, 178
List Class
Stdlib Classes, 304
List index start from 1
Frequently Asked Questions, 1699
List of changes and new features
What is new in Ring 1.1?, 92
What is new in Ring 1.2?, 86
What is new in Ring 1.3?, 73
What is new in Ring 1.4.1?, 60
What is new in Ring 1.4?, 64
What is new in Ring 1.5?, 26
list of functions
Mathematical Functions, 194
list2file()
Stdlib Functions, 290
ListAllFiles() Function
Stdlib Functions, 299
Lists
Access List Items by String Index, 174
Add Items, 168
Copy Lists, 172
Create Lists, 168
Delete Item From List, 169
First-Class Lists, 173
Get List Item, 169
Get List Size, 169
Insert(), 172
Introduction, 167
Nested Lists, 172
Passing Lists to Functions, 173
Passing Parameters Using List, 174
Reverse(), 171
Search, 170
Set List Item, 169
Sort(), 170
Swap Items, 175
Using Lists during definition, 173
Load Syntax Files
Syntax Flexibility, 669
Loading the Trace library
The Trace Library and the Interactive Debugger, 718
locals()
Reflection and Meta-programming, 267
Logical Operators
Operators, 135
Loop Command
Control Structures - First Style, 142
Looping
Control Structures, 149
Control Structures - First Style, 139
Control Structures - Second Style, 146
Low Level Functions
Index 1749
6. Ring Documentation, Release 1.5
callgc(), 698
Example - The Trace Library, 714
Example - Using the Trace Functions, 710
Introduction, 697
nullpointer(), 700
object2pointer(), 700
pointer2object(), 700
ptrcmp(), 701
ringvm_callfunc(), 710
RingVM_CallList(), 706
RingVM_CFunctionsList(), 702
RingVM_ClassesList(), 702
ringvm_evalinscope(), 709
RingVM_FilesList(), 707
RingVM_FunctionsList(), 702
ringvm_hideerrorMsg(), 709
RingVM_MemoryList(), 704
RingVM_PackagesList(), 703
ringvm_passerror(), 709
ringvm_scopescount(), 709
ringvm_settrace(), 708
ringvm_tracedata(), 708
ringvm_traceevent(), 708
ringvm_tracefunc(), 709
space(), 699
varptr(), 699
Main Function
Functions - First Style, 156
Functions - Second Style, 160
Functions - Third Style, 164
Main Menu
Demo Programs, 219
Make a Cube using RingOpenGL and RingFreeGLUT
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 525
makedir()
Stdlib Functions, 298
Map
Game Engine for 2D Games, 445
Map Class
Game Engine for 2D Games, 432
Map Events
Game Engine for 2D Games, 446
map()
Stdlib Functions, 287
Math Class
Stdlib Classes, 309
Mathematical Functions
Decimals(), 197
Example, 194
Introduction, 193
list of functions, 194
Random(), 196
Unsigned(), 197
matrixmulti()
Stdlib Functions, 294
matrixtrans()
Stdlib Functions, 295
MD5()
Security and Internet Functions, 244
Menu Events
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 501
Menubar and StyleSheet Example
Desktop and Mobile Development, 564
Menubar Designer
Form Designer, 646
mergemethods()
Reflection and Meta-programming, 282
Methods to use Events with Events Filter
Desktop and Mobile Development, 627
methods()
Reflection and Meta-programming, 275
Misc Operators
Operators, 136
Module Organization
Extension, 726
More Beatiful Code
Declarative Programming, 328
More Samples and Tests
Form Designer, 648
More Syntax Flexibility
What is new in Ring 1.5?, 57
Motivation
Introduction, 12
Mouse Events
RingLibSDL, 425
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 497
Movable Label Example
Desktop and Mobile Development, 580
Moving Objects using the Mouse
Desktop and Mobile Development, 586
Moving Text
Game Engine for 2D Games, 434
Multi-Line literals
Getting Started - First Style, 110
Getting Started - Second Style, 112
Getting Started - Third Style, 114
MySQL Class
Stdlib Classes, 320
MySQL Functions
Create Database, 233
Create Table and Insert Data, 234
Introduction, 231
MySQL_AutoCommit(), 239
MySQL_Close(), 233
Index 1750
7. Ring Documentation, Release 1.5
MySQL_Columns(), 236
MySQL_Commit(), 239
MySQL_Connect(), 233
MySQL_Error(), 233
MySQL_Escape_String(), 238
MySQL_Info(), 232
MySQL_Init(), 233
MySQL_Inser_ID(), 235
MySQL_Next_Result(), 236
MySQL_Query(), 233
MySQL_Result(), 236
MySQL_Result2(), 237
MySQL_Rollback(), 239
Print Query Result, 236
Restore Image From The Database, 238
Save Image Inside the Database, 238
Transaction Example, 239
MySQL_AutoCommit()
MySQL Functions, 239
MySQL_Close()
MySQL Functions, 233
MySQL_Columns()
MySQL Functions, 236
MySQL_Columns() Implementation
Extension, 732
MySQL_Commit()
MySQL Functions, 239
MySQL_Connect()
MySQL Functions, 233
MySQL_Error()
MySQL Functions, 233
MySQL_Escape_String()
MySQL Functions, 238
MySQL_Info()
MySQL Functions, 232
MySQL_Init()
MySQL Functions, 233
MySQL_Inser_ID()
MySQL Functions, 235
MySQL_Next_Result()
MySQL Functions, 236
MySQL_Query()
MySQL Functions, 233
MySQL_Result()
MySQL Functions, 236
MySQL_Result2()
MySQL Functions, 237
MySQL_Rollback()
MySQL Functions, 239
Natural Language Programming
BraceError() Method, 337
BraceExprEval Method, 336
BraceStart and BraceEnd Methods, 335
Change the ’=’ operator to ’is’, 333
Change the Ring Keyword ’And’, 331
Change the Ring Operator ’+’, 332
Clean Natural Code, 338
Example, 330
History, 330
Introduction, 329
Real Natual Code, 336
Using Eval() with our Natural Code, 334
Natural Library - Demo Program
Using the Natural Library, 340
Nested Lists
Lists, 172
New Classes names - Index Start from 1
Desktop and Mobile Development, 629
New Functions
What is new in Ring 1.2?, 86
What is new in Ring 1.3?, 82
New Functions and Changes
What is new in Ring 1.1?, 95
New Sample : Sixteen Puzzle
What is new in Ring 1.4.1?, 62
New Style to Ring Notepad
What is new in Ring 1.4.1?, 61
What is new in Ring 1.4?, 67
newlist()
Stdlib Functions, 288
No Explicit End For Statements
Getting Started - First Style, 111
Getting Started - Second Style, 113
Getting Started - Third Style, 115
No Run
Command Line Options, 696
Not Case-Sensitive
Getting Started - First Style, 110
Getting Started - Second Style, 112
Getting Started - Third Style, 114
Notepad Application
Desktop and Mobile Development, 603
nullpointer()
Low Level Functions, 700
Number()
Data Type, 191
Numbers and Bytes
Files, 208
Object and Drawing
Game Engine for 2D Games, 448
Object Library Source Code
Objects Library for RingQt Application, 640
Object Oriented Programming
Access Objects Using Braces, 251
Classes and Objects, 249
Composition, 252
Index 1751
8. Ring Documentation, Release 1.5
Dynamic Attributes, 256
Find() and List of Objects, 257
Inheritance, 255
Introduction, 248
Operator Overloading, 254
Packages, 256
Printing Objects, 257
Private Attributes and Methods, 253
Setter and Getter, 253
Sort() and List of Objects, 258
Using Self.Attribute, 260
object2pointer()
Low Level Functions, 700
objectid()
Reflection and Meta-programming, 274
Objects inside lists
Declarative Programming, 324
Objects Library for RingQt
What is new in Ring 1.2?, 88
Objects Library for RingQt Application
Example, 636
Introduction, 635
Library Usage, 636
Object Library Source Code, 640
Open_WindowAndLink() Function, 639, 640
Open_WindowInPackages() Function, 640
ODBC Class
Stdlib Classes, 319
ODBC Functions
Execute Query and Print Result, 227
Introduction, 222
odbc_autocommit(), 229
odbc_close(), 224
odbc_colcount(), 226
odbc_columns(), 228
odbc_commit(), 229
odbc_connect(), 225
odbc_datasources(), 224
odbc_disconnect(), 226
odbc_drivers(), 223
odbc_execute(), 226
odbc_fetch(), 227
odbc_getdata(), 227
odbc_init(), 223
odbc_rollback(), 229
odbc_tables(), 227
Open and Close Connection, 226
Print List of ODBC Data Sources, 225
Print List of ODBC Drivers, 224
Save and Restore Images, 230
Transactions and Using Commit and Rollback, 229
odbc_autocommit()
ODBC Functions, 229
odbc_close()
ODBC Functions, 224
odbc_colcount()
ODBC Functions, 226
odbc_columns()
ODBC Functions, 228
odbc_commit()
ODBC Functions, 229
odbc_connect()
ODBC Functions, 225
odbc_datasources()
ODBC Functions, 224
odbc_disconnect()
ODBC Functions, 226
odbc_drivers()
ODBC Functions, 223
odbc_execute()
ODBC Functions, 226
odbc_fetch()
ODBC Functions, 227
odbc_getdata()
ODBC Functions, 227
odbc_init()
ODBC Functions, 223
odbc_rollback()
ODBC Functions, 229
odbc_tables()
ODBC Functions, 227
Open and Close Connection
ODBC Functions, 226
Open_WindowAndLink() Function
Objects Library for RingQt Application, 639, 640
Open_WindowInPackages() Function
Objects Library for RingQt Application, 640
Operator Overloading
Object Oriented Programming, 254
Operators
Arithmetic Operators, 135
Assignment Operators, 136
Bitwise Operators, 135
Introduction, 134
Logical Operators, 135
Misc Operators, 136
Operators Precedence, 136
Relational Operators, 135
Using the Natural Library, 344
Operators Precedence
Operators, 136
Other Widgets Events
Desktop and Mobile Development, 568
packagename()
Reflection and Meta-programming, 283
Packages
Object Oriented Programming, 256
Index 1752
9. Ring Documentation, Release 1.5
packages()
Reflection and Meta-programming, 271
packagesclasses()
Reflection and Meta-programming, 273
Page Class
Web Development (CGI Library), 396
palindrome()
Stdlib Functions, 294
Pass Error
The Trace Library and the Interactive Debugger, 719
Passing Lists to Functions
Lists, 173
Passing Parameters Using List
Lists, 174
Performance
Command Line Options, 696
permutation()
Stdlib Functions, 295
Perror()
Files, 204
Philosophy behind data types in Ring
Frequently Asked Questions, 1696
Play Sound
RingLibSDL, 426
Playing Sound
Desktop and Mobile Development, 578
Game Engine for 2D Games, 436
Graphics and Game Programming, 415
pointer2object()
Low Level Functions, 700
Post Request
RingLibCurl, 401
Prefix for Functions Names
Code Generator, 740
PrevFileName() Function
System Functions, 213
Print files in Zip file
RingZip, 405
Print List of ODBC Data Sources
ODBC Functions, 225
Print List of ODBC Drivers
ODBC Functions, 224
Print Query Result
MySQL Functions, 236
print()
Stdlib Functions, 284
Print2Str() Function
Stdlib Functions, 284
Printing Final Intermediate Code
Command Line Options, 691
Printing Instruction Operation Code
Command Line Options, 696
Printing Intermediate Code
Command Line Options, 689
Printing Objects
Object Oriented Programming, 257
Printing Rules
Command Line Options, 685
Printing Tokens
Command Line Options, 683
Printing using QPrinter
Desktop and Mobile Development, 576
Private Attributes and Methods
Object Oriented Programming, 253
prodlist()
Stdlib Functions, 293
Program Structure
Introduction, 166
Source Code File Sections, 167
Using Many Source Code Files, 167
Project Folder
Building Games For Android, 478
Project Layers
Game Engine for 2D Games, 428
Protecting the Source Code
Distributing Ring Application, 681
ptrcmp()
Low Level Functions, 701
Pure Functions
Functional Programming, 262
puts()
Stdlib Functions, 284
QAbstractButton Class
RingQt Classes Reference, 1591
QAbstractItemView Class
RingQt Classes Reference, 1577
QAbstractScrollArea Class
RingQt Classes Reference, 1577
QAbstractSlider Class
RingQt Classes Reference, 1584
QAbstractSocket Class
RingQt Classes Reference, 1613
QAbstractSpinBox Class
RingQt Classes Reference, 1587
QAction Class
RingQt Classes Reference, 1595
QAllEvents Class
RingQt Classes Reference, 1626
QApp Class
RingQt Classes Reference, 1544
QAxBase Class
RingQt Classes Reference, 1678
QAxObject Class
RingQt Classes Reference, 1677
QBitmap Class
RingQt Classes Reference, 1552
QBluetoothAddress Class
Index 1753
10. Ring Documentation, Release 1.5
RingQt Classes Reference, 1683
QBluetoothDeviceDiscoveryAgent Class
RingQt Classes Reference, 1683
QBluetoothDeviceInfo Class
RingQt Classes Reference, 1684
QBluetoothHostInfo Class
RingQt Classes Reference, 1684
QBluetoothLocalDevice Class
RingQt Classes Reference, 1685
QBluetoothServer Class
RingQt Classes Reference, 1686
QBluetoothServiceDiscoveryAgent Class
RingQt Classes Reference, 1686
QBluetoothServiceInfo Class
RingQt Classes Reference, 1687
QBluetoothSocket Class
RingQt Classes Reference, 1688
QBluetoothTransferManager Class
RingQt Classes Reference, 1689
QBluetoothTransferReply Class
RingQt Classes Reference, 1689
QBluetoothTransferRequest Class
RingQt Classes Reference, 1689
QBluetoothUuid Class
RingQt Classes Reference, 1690
QBoxLayout Class
RingQt Classes Reference, 1668
QBrush Class
RingQt Classes Reference, 1609
QBuffer Class
RingQt Classes Reference, 1683
QButtonGroup Class
RingQt Classes Reference, 1593
QByteArray Class
RingQt Classes Reference, 1610
QCamera Class
RingQt Classes Reference, 1662
QCameraImageCapture Class
RingQt Classes Reference, 1663
QCameraViewfinder Class
RingQt Classes Reference, 1662
QCheckBox Class
RingQt Classes Reference, 1591
QColor Class
RingQt Classes Reference, 1604
QColorDialog Class
RingQt Classes Reference, 1622
QComboBox Class
RingQt Classes Reference, 1567
QCompleter Class
RingQt Classes Reference, 1672
QCompleter2 Class
RingQt Classes Reference, 1673
QCompleter3 Class
RingQt Classes Reference, 1673
QCursor Class
RingQt Classes Reference, 1676
QDate Class
RingQt Classes Reference, 1635
QDateEdit Class
RingQt Classes Reference, 1586
QDateTimeEdit Class
RingQt Classes Reference, 1586
QDesktopServices Class
RingQt Classes Reference, 1544
QDesktopWidget Class
RingQt Classes Reference, 1628
QDial Class
RingQt Classes Reference, 1588
QDialog Class
RingQt Classes Reference, 1620
QDir Class
RingQt Classes Reference, 1562
QDirModel Class
RingQt Classes Reference, 1618
QDockWidget Class
RingQt Classes Reference, 1573
QEvent Class
RingQt Classes Reference, 1597
QFileDialog Class
RingQt Classes Reference, 1599
QFileInfo Class
RingQt Classes Reference, 1617
QFileSystemModel Class
RingQt Classes Reference, 1562
QFont Class
RingQt Classes Reference, 1607
QFontDialog Class
RingQt Classes Reference, 1619
QFontMetrics Class
RingQt Classes Reference, 1666
QFrame Class
RingQt Classes Reference, 1576
QFrame2 Class
RingQt Classes Reference, 1576
QFrame3 Class
RingQt Classes Reference, 1577
QGradient Class
RingQt Classes Reference, 1669
QGraphicsVideoItem Class
RingQt Classes Reference, 1662
QGridLayout Class
RingQt Classes Reference, 1659
QHBoxLayout Class
RingQt Classes Reference, 1555
QHeaderView Class
RingQt Classes Reference, 1664
QHostAddress Class
Index 1754
11. Ring Documentation, Release 1.5
RingQt Classes Reference, 1616
QHostInfo Class
RingQt Classes Reference, 1617
QIcon Class
RingQt Classes Reference, 1553
QImage Class
RingQt Classes Reference, 1645
QInputDialog Class
RingQt Classes Reference, 1624
QIODevice Class
RingQt Classes Reference, 1612
QJsonArray Class
RingQt Classes Reference, 1654
QJsonDocument Class
RingQt Classes Reference, 1655
QJsonObject Class
RingQt Classes Reference, 1655
QJsonParseError Class
RingQt Classes Reference, 1656
QJsonValue Class
RingQt Classes Reference, 1656
QKeySequence Class
RingQt Classes Reference, 1624
QLabel Class
RingQt Classes Reference, 1551
QLayout Class
RingQt Classes Reference, 1668
QLCDNumber Class
RingQt Classes Reference, 1624
QLinearGradient Class
RingQt Classes Reference, 1669
QLineEdit Class
RingQt Classes Reference, 1553
QLineEdit Events and QMessageBox
Desktop and Mobile Development, 566
QListView Class
RingQt Classes Reference, 1677
QListWidget Class
RingQt Classes Reference, 1558
QListWidgetItem Class
RingQt Classes Reference, 1633
QMainWindow Class
RingQt Classes Reference, 1571
QMdiArea Class
RingQt Classes Reference, 1675
QMdiSubWindow Class
RingQt Classes Reference, 1676
QMediaObject Class
RingQt Classes Reference, 1664
QMediaPlayer Class
RingQt Classes Reference, 1593
QMediaPlaylist Class
RingQt Classes Reference, 1594
QMenu Class
RingQt Classes Reference, 1569
QMenuBar Class
RingQt Classes Reference, 1569
QMessageBox Class
RingQt Classes Reference, 1597
QMessagebox Example
Desktop and Mobile Development, 581
QMutex Class
RingQt Classes Reference, 1682
QMutexLocker Class
RingQt Classes Reference, 1683
QNetworkAccessManager Class
RingQt Classes Reference, 1642
QNetworkProxy Class
RingQt Classes Reference, 1614
QNetworkReply Class
RingQt Classes Reference, 1643
QNetworkRequest Class
RingQt Classes Reference, 1642
QObject Class
RingQt Classes Reference, 1544
QPainter Class
RingQt Classes Reference, 1600
QPainter2 Class
RingQt Classes Reference, 1602
QPainterPath Class
RingQt Classes Reference, 1644
QPen Class
RingQt Classes Reference, 1603
QPicture Class
RingQt Classes Reference, 1603
QPixmap Class
RingQt Classes Reference, 1552
QPixmap2 Class
RingQt Classes Reference, 1553
QPlainTextEdit Class
RingQt Classes Reference, 1656
QPoint Class
RingQt Classes Reference, 1670
QPointF Class
RingQt Classes Reference, 1670
QPrinter Class
RingQt Classes Reference, 1606
QProcess Class
RingQt Classes Reference, 1673
QProgressBar Class
RingQt Classes Reference, 1583
QPushButton Class
RingQt Classes Reference, 1552
QRadioButton Class
RingQt Classes Reference, 1592
QRect Class
RingQt Classes Reference, 1628
QRegularExpression Class
Index 1755
12. Ring Documentation, Release 1.5
RingQt Classes Reference, 1652
QRegularExpressionMatch Class
RingQt Classes Reference, 1653
QRegularExpressionMatchIterator Class
RingQt Classes Reference, 1653
QScrollArea Class
RingQt Classes Reference, 1671
QSerialPort Class
RingQt Classes Reference, 1679
QSerialPortInfo Class
RingQt Classes Reference, 1680
QSize Class
RingQt Classes Reference, 1553
QSlider Class
RingQt Classes Reference, 1585
QSpinBox Class
RingQt Classes Reference, 1583
QSplashScreen Class
RingQt Classes Reference, 1667
QSplitter Class
RingQt Classes Reference, 1671
QSqlDatabase Class
RingQt Classes Reference, 1636
QSqlDriver Class
RingQt Classes Reference, 1637
QSqlDriverCreatorBase Class
RingQt Classes Reference, 1640
QSqlError Class
RingQt Classes Reference, 1638
QSqlField Class
RingQt Classes Reference, 1640
QSqlIndex Class
RingQt Classes Reference, 1639
QSqlQuery Class
RingQt Classes Reference, 1637
QSqlRecord Class
RingQt Classes Reference, 1639
QStatusBar Class
RingQt Classes Reference, 1572
QString2 Class
RingQt Classes Reference, 1673
QStringList Class
RingQt Classes Reference, 1622
QStringRef Class
RingQt Classes Reference, 1681
QSystemTrayIcon Class
RingQt Classes Reference, 1634
Qt Class Convertor
What is new in Ring 1.4?, 71
Qt configuration file
Code Generator, 747
QTableView Class
RingQt Classes Reference, 1579
QTableWidget Class
RingQt Classes Reference, 1580
QTableWidgetItem Class
RingQt Classes Reference, 1575
QTabWidget Class
RingQt Classes Reference, 1573
QTcpServer Class
RingQt Classes Reference, 1615
QTcpSocket Class
RingQt Classes Reference, 1615
QTest Class
RingQt Classes Reference, 1544
QTextBlock Class
RingQt Classes Reference, 1632
QTextCharFormat Class
RingQt Classes Reference, 1660
QTextCodec Class
RingQt Classes Reference, 1636
QTextCursor Class
RingQt Classes Reference, 1620
QTextDocument Class
RingQt Classes Reference, 1630
QTextEdit Class
RingQt Classes Reference, 1556
QThread Class
RingQt Classes Reference, 1651
QThreadPool Class
RingQt Classes Reference, 1652
QTime Class
RingQt Classes Reference, 1633
QTimer Class
RingQt Classes Reference, 1598
QToolBar Class
RingQt Classes Reference, 1570
QToolButton Class
RingQt Classes Reference, 1678
QTreeView Class
RingQt Classes Reference, 1560
QTreeWidget Class
RingQt Classes Reference, 1563
QTreeWidgetItem Class
RingQt Classes Reference, 1565
Queue Class
Stdlib Classes, 306
Quotes about Ring
Applications developed in little hours, 1
QUrl Class
RingQt Classes Reference, 1590
QUuid Class
RingQt Classes Reference, 1678
QVariant Class
RingQt Classes Reference, 1640
QVBoxLayout Class
RingQt Classes Reference, 1555
QVideoWidget and QMediaPlayer
Index 1756
13. Ring Documentation, Release 1.5
Desktop and Mobile Development, 560
QVideoWidget Class
RingQt Classes Reference, 1594
QVideoWidgetControl Class
RingQt Classes Reference, 1662
QWebView Class
RingQt Classes Reference, 1589
QWidget Class
RingQt Classes Reference, 1545
QXmlStreamAttribute Class
RingQt Classes Reference, 1651
QXmlStreamAttributes Class
RingQt Classes Reference, 1650
QXmlStreamEntityDeclaration Class
RingQt Classes Reference, 1650
QXmlStreamEntityResolver Class
RingQt Classes Reference, 1650
QXmlStreamNamespaceDeclaration Class
RingQt Classes Reference, 1650
QXmlStreamNotationDeclaration Class
RingQt Classes Reference, 1649
QXmlStreamReader Class
RingQt Classes Reference, 1647
QXmlStreamWriter Class
RingQt Classes Reference, 1648
Raise()
Eval() and Debugging, 217
RandBytes()
Security and Internet Functions, 247
Random Image
Web Development (CGI Library), 367
Random()
Mathematical Functions, 196
Read File using Read()
Files, 200
readline()
Stdlib Functions, 296
Real Natual Code
Natural Language Programming, 336
Recursion
Functions - First Style, 158
Functions - Second Style, 162
Functions - Third Style, 166
Reference
Compiler Errors, 1725
Introduction, 1722
Language Functions, 1724
Language Grammar, 1727
Language Keywords, 1723
Runtime Errors, 1726
Virtual Machine Instructions, 1729
Reflection and Meta-programming
addattribute(), 278
addmethod(), 278
attributes(), 275
cfunctions(), 268
classes(), 272
classname(), 274
functions(), 268
getattribute(), 280
globals(), 267
Introduction, 266
isattribute(), 276
iscfunction(), 270
isclass(), 272
isfunction(), 270
isglobal(), 269
islocal(), 269
ismethod(), 277
isobject(), 275
ispackage(), 271
ispackagesclass(), 274
isprivateattribute(), 276
isprivatemethod(), 277
locals(), 267
mergemethods(), 282
methods(), 275
objectid(), 274
packagename(), 283
packages(), 271
packagesclasses(), 273
setattribute(), 281
Register New Functions
Code Generator, 741
Regular Expressions
Desktop and Mobile Development, 595
Relational Operators
Operators, 135
Remove()
Files, 201
Rename()
Files, 201
Resources
Contact the Autor, 1736
Introduction, 1735
Ring Group, 1736
Ring Language Website, 1736
Restore Image From The Database
MySQL Functions, 238
Return object by reference
Declarative Programming, 325
Return Self by Reference
What is new in Ring 1.3?, 82
Return Value
Extension, 728
Functions - First Style, 157
Functions - Second Style, 161
Index 1757
14. Ring Documentation, Release 1.5
Functions - Third Style, 165
Reverse()
Lists, 171
Rewind()
Files, 203
Right()
Strings, 177
RING API - list Functions
Extension, 730
RING API - String Functions
Extension, 732
Ring CGI Hello World Program
Web Development (CGI Library), 348
Ring Group
Resources, 1736
Ring Language Website
Resources, 1736
Ring mode for Emacs Editor
What is new in Ring 1.3?, 80
Ring Notepad
Introduction, 115
Ring Notepad - Creating and running your first con-
sole application, 116
Ring Notepad - Creating and running your first game,
121
Ring Notepad - Creating and running your first GUI
application, 119
Ring Notepad - Creating and running your first Web
application, 120
Ring Notepad - Main Window, 116
The Browser Menu, 125
The Edit Menu, 123
The File Menu, 123
The Help Menu, 126
The Main File in the Project, 122
The Program Menu, 125
The Tools Menu, 126
The View Menu, 124
Ring Notepad - Creating and running your first console
application
Ring Notepad, 116
Ring Notepad - Creating and running your first game
Ring Notepad, 121
Ring Notepad - Creating and running your first GUI ap-
plication
Ring Notepad, 119
Ring Notepad - Creating and running your first Web ap-
plication
Ring Notepad, 120
Ring Notepad - Main Window
Ring Notepad, 116
Ring State
Embedding Ring Language in C/C++ Programs, 735
Ring State Functions
Embedding Ring Language in C/C++ Programs, 735
Ring State Variables
Embedding Ring Language in C/C++ Programs, 736
Ring VM - Tracing Functions
What is new in Ring 1.5?, 51
ring_ext.c
Extension, 725
ring_ext.h
Extension, 725
RingAllegro Functions Reference
Introduction, 767
RingCodeHighlighter Class
RingQt Classes Reference, 1646
RingFreeGLUT Extension
What is new in Ring 1.5?, 37
RingFreeGLUT Functions Reference
Introduction, 802
RingLibCurl
Facebook Login, 401
Get Request, 401
Get Stock Data From Yahoo, 403
Introduction, 400
Post Request, 401
Save output to string, 402
What is new in Ring 1.2?, 89
RingLibCurl Functions Reference
Introduction, 757
RingLibSDL
Close Window Event, 424
Create Window, 421
Display Image, 421
Display PNG Images, 422
Display Transparent Images, 423
Draw Rectangle, 422
Introduction, 420
Mouse Events, 425
Play Sound, 426
Switch Between Two Images, 421
Use TTF Fonts, 423
What is new in Ring 1.1?, 98
RingLibSDL Functions Reference
Introduction, 786
RingLibZip Functions Reference
Introduction, 766
RingOpenGL (OpenGL 1.1) Functions Reference
Introduction, 811
RingOpenGL (OpenGL 1.2) Functions Reference
Introduction, 836
RingOpenGL (OpenGL 1.3) Functions Reference
Introduction, 862
RingOpenGL (OpenGL 1.4) Functions Reference
Introduction, 891
RingOpenGL (OpenGL 1.5) Functions Reference
Introduction, 921
Index 1758
17. Ring Documentation, Release 1.5
RingSQLite
What is new in Ring 1.1?, 99
ringvm_callfunc()
Low Level Functions, 710
RingVM_CallList()
Low Level Functions, 706
RingVM_CFunctionsList()
Low Level Functions, 702
RingVM_ClassesList()
Low Level Functions, 702
ringvm_evalinscope()
Low Level Functions, 709
RingVM_FilesList()
Low Level Functions, 707
RingVM_FunctionsList()
Low Level Functions, 702
ringvm_hideerrorMsg()
Low Level Functions, 709
RingVM_MemoryList()
Low Level Functions, 704
RingVM_PackagesList()
Low Level Functions, 703
ringvm_passerror()
Low Level Functions, 709
ringvm_scopescount()
Low Level Functions, 709
ringvm_settrace()
Low Level Functions, 708
ringvm_tracedata()
Low Level Functions, 708
ringvm_traceevent()
Low Level Functions, 708
ringvm_tracefunc()
Low Level Functions, 709
RingZip
Create Zip File, 405
Extract Zip File, 405
Introduction, 404
Print files in Zip file, 405
Using RingZip Classes, 405
Zip Class Reference, 407
ZipEntry Class Reference, 407
RingZip Library
What is new in Ring 1.3?, 83
Rotate Text
Desktop and Mobile Development, 592
Rules
The Type Hints Library, 679
Run the program
Getting Started - First Style, 110
Getting Started - Second Style, 112
Getting Started - Third Style, 114
Running Forms
Form Designer, 643
Runtime Errors
Reference, 1726
Samples
How to contribute?, 108
Samples in this book
Applications developed in little hours, 8
Samples Source (Authors)
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 481
Save and Restore Images
ODBC Functions, 230
Save Image Inside the Database
MySQL Functions, 238
Save output to string
RingLibCurl, 402
Scaling and Rotating Images
Graphics and Game Programming, 416
Scope Rules
Accessing the class attributes from braces inside
class methods, 655
Conflict between Class Attributes and Local Vari-
ables, 652
Conflict between Global Variables and Class At-
tributes, 651
Conflict between self inside braces and self in the
class region, 658
Creating a Class for each Window in GUI applica-
tions, 657
Defining Variables and Variables Access, 649
How Ring find the Variable?, 650
Introduction, 648
Summary of Scope Rules, 662
The Self Object, 650
Three Scopes, 649
Using Braces to access objects inside Class Methods,
653
Using braces to escape from the current object scope,
661
Using Object.Attribute, 650
Scope Rules for Functions and Methods
Calling a function sharing the name with a method in
the current class, 666
Example about Sharing Names between Functions
and Methods, 664
How Ring find a functions and methods?, 664
Introduction, 663
ScriptFunctions Class
Web Development (CGI Library), 398
Search
Lists, 170
Search of global names while defining the class attributes
Frequently Asked Questions, 1703
Security and Internet Functions
Index 1761
18. Ring Documentation, Release 1.5
Decrypt(), 247
Download(), 248
Encrypt(), 246
Example, 247
File Hash, 247
Introduction, 243
MD5(), 244
RandBytes(), 247
SendEmail(), 248
SHA1(), 245
SHA224(), 246
SHA256(), 245
SHA384(), 246
SHA512(), 245
Security Class
Stdlib Classes, 322
Send Parameters
Functions - First Style, 156
Functions - Second Style, 160
Functions - Third Style, 164
SendEmail()
Security and Internet Functions, 248
Serial Execution of Programs
Embedding Ring in Ring, 723
Set List Item
Lists, 169
setattribute()
Reflection and Meta-programming, 281
Setter and Getter
Object Oriented Programming, 253
SHA1()
Security and Internet Functions, 245
SHA224()
Security and Internet Functions, 246
SHA256()
Security and Internet Functions, 245
SHA384()
Security and Internet Functions, 246
SHA512()
Security and Internet Functions, 245
Shared Libraries
Extension, 733
Short-circuit evaluation
Control Structures - First Style, 142
Shutdown() Function
System Functions, 215
sign()
Stdlib Functions, 290
Simple
Language Design, 17
Simple Client and Server Example
Desktop and Mobile Development, 596
Sin() Implementation
Extension, 729
Single: Desktop and Mobile Development
Introduction, 528
sleep()
Stdlib Functions, 297
Smart Garbage Collector
Language Design, 25
Sort()
Lists, 170
Sort() and List of Objects
Object Oriented Programming, 258
Sound Class
Game Engine for 2D Games, 432
Source Code File Sections
Program Structure, 167
space()
Low Level Functions, 699
Special thanks to contributors
How to contribute?, 108
split()
Stdlib Functions, 287
splitmany()
Stdlib Functions, 287
Sprite Automatic Movement
Game Engine for 2D Games, 439
Sprite Class
Game Engine for 2D Games, 431
Sprite Keypress Event
Game Engine for 2D Games, 440
Sprite Mouse Event
Game Engine for 2D Games, 441
Sprite State Event
Game Engine for 2D Games, 442
SQLite
Introduction, 240
sqlite_close(), 241
sqlite_execute(), 241
sqlite_init(), 241
sqlite_open(), 241
SQLite Class
Stdlib Classes, 321
sqlite_close()
SQLite, 241
sqlite_execute()
SQLite, 241
sqlite_init()
SQLite, 241
sqlite_open()
SQLite, 241
Squares Puzzle Game
Applications developed in little hours, 4
Stack Class
Stdlib Classes, 306
Stars Fighter Game
Game Engine for 2D Games, 451
Index 1762
19. Ring Documentation, Release 1.5
startswith()
Stdlib Functions, 291
StdBase Class
Stdlib Classes, 301
Stdlib Classes
Conversion Class, 318
DataType Class, 317
DateTime Class, 312
Debug Class, 316
File Class, 314
HashTable Class, 307
Internet Class, 323
Introduction, 300
List Class, 304
Math Class, 309
MySQL Class, 320
ODBC Class, 319
Queue Class, 306
Security Class, 322
SQLite Class, 321
Stack Class, 306
StdBase Class, 301
String Class, 302
System Class, 315
Tree Class, 308
Stdlib Functions
apppath(), 285
binarydigits(), 294
capitalized(), 288
changestring(), 297
dayofweek(), 295
direxists(), 297
endswith(), 291
EpochTime(), 299
evenorodd(), 293
factorial(), 289
factors(), 293
fibonacci(), 290
file2list(), 291
filter(), 287
FSize(), 298
gcd(), 292
getnumber(), 285
getstring(), 285
Introduction, 283
isleapyear(), 294
ismainsourcefile(), 297
isprime(), 290
isspecial(), 288
isvowel(), 289
JustFileName(), 286
JustFilePath(), 285
lcm(), 292
linecount(), 289
list2file(), 290
ListAllFiles() Function, 299
makedir(), 298
map(), 287
matrixmulti(), 294
matrixtrans(), 295
newlist(), 288
palindrome(), 294
permutation(), 295
print(), 284
Print2Str() Function, 284
prodlist(), 293
puts(), 284
readline(), 296
sign(), 290
sleep(), 297
split(), 287
splitmany(), 287
startswith(), 291
substring(), 296
sumlist(), 292
SystemCmd() Function, 299
times(), 286
TrimAll(), 298
TrimLeft(), 298
TrimRight(), 299
value(), 286
StdLib functions and classes written in Ring
What is new in Ring 1.1?, 96
Step Option
Control Structures - First Style, 140
Str2Hex()
Data Type, 193
str2list() and list2str()
Strings, 180
strcmp()
Strings, 180
String Class
Stdlib Classes, 302
String Literals
Strings, 176
String()
Data Type, 191
Strings
Access String Letters, 176
Convert Letters Case, 176
Copy(), 178
Find SubString, 179
Get Number of Characters from position, 179
Get String Length, 176
Get Substring from position to end, 179
Introduction, 175
Left(), 177
Lines(), 178
Index 1763
20. Ring Documentation, Release 1.5
Right(), 177
str2list() and list2str(), 180
strcmp(), 180
String Literals, 176
Substr(), 178
Transform Substring To Another Substring, 179
Trim(), 178
StyleFunctions Class
Web Development (CGI Library), 398
Substr()
Strings, 178
substring()
Stdlib Functions, 296
sumlist()
Stdlib Functions, 292
Summary of Scope Rules
Scope Rules, 662
Super Man 2016 Game
Game Engine for 2D Games, 466
Swap Items
Lists, 175
Switch Between Two Images
RingLibSDL, 421
Switch Statement
Control Structures - First Style, 138
Control Structures - Second Style, 145
Control Structures - Third Style, 148
Syntax Flexibility
Change Language Keywords, 668
Change Language Operators, 669
Introduction, 667
Load Syntax Files, 669
Using ’case’ as ’on’ in switch statements, 675
Using ’def’ as ’func’ in functions/methods defini-
tion, 675
Using ’end’ keyword after Pack-
ages/Classes/Functions, 676
Using ’endpackage’/’endclass’/’endfunc’ keywords
after Packages/Classes/Functions, 676
Using ’put’ and ’get’ as ’see’ and ’give’, 675
Using () around the function parameters, 669
in the start of the variable name, 672
Using braces { } in Packages/Classes/Functions, 676
Using braces to start and end different control struc-
tures, 674
Using Semi-colon after and between statements, 671
Using the ’else’ keyword as ’other’ in switch state-
ment, 672
Using the ’elseif’ keyword as ’but’ in if statement,
672
Using the ’end’ keyword in different control struc-
tures, 673
What is new in Ring 1.1?, 93
SysGet() Function
System Functions, 210
System Class
Stdlib Classes, 315
System Functions
ChDir() Function, 214
CurrentDir() Function, 214
Example, 211
ExeFileName() Function, 214
ExeFolder() Function, 214
Get Active Source File Name, 213
Get Command Line Arguments, 212
Introduction, 208
IsAndroid() Function, 211
IsFreeBSD() Function, 211
IsLinux() Function, 211
IsMacOSX() Function, 210
IsMSDOS() Function, 210
IsUnix() Function, 210
IsWindows() Function, 210
IsWindows64() Function, 210
PrevFileName() Function, 213
Shutdown() Function, 215
SysGet() Function, 210
System() Function, 209
Version() Function, 214
Windowsnl() Function, 212
System() Function
System Functions, 209
SystemCmd() Function
Stdlib Functions, 299
Tempfile()
Files, 203
Templates
Web Development (CGI Library), 362
Tempname()
Files, 203
Testing
How to contribute?, 108
Text Class
Game Engine for 2D Games, 431
The Browser Menu
Ring Notepad, 125
The Camera
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 491
The Cards Game
Demo Programs, 618
Desktop and Mobile Development, 618
The Designer Windows
Form Designer, 642
The Difference between Qt and RingQt
Desktop and Mobile Development, 628
Index 1764
21. Ring Documentation, Release 1.5
The documentation says functional programming is sup-
ported, but then this happens?
Frequently Asked Questions, 1695
The Edit Menu
Ring Notepad, 123
The File Menu
Ring Notepad, 123
The First GUI Application
Desktop and Mobile Development, 529
The First Triangle
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 484
The First Window using RingFreeGLUT
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 482
The Help Menu
Ring Notepad, 126
The Main File in the Project
Ring Notepad, 122
The Natural Library
What is new in Ring 1.4?, 65
The Program Menu
Ring Notepad, 125
The Properties
Form Designer, 642
The Self Object
Scope Rules, 650
The Tools Menu
Ring Notepad, 126
The Trace Library and the Interactive Debugger
BreakPoint, 720
Disable BreakPoints, 720
Execute Program Line by Line, 719
Interactive Debugger, 719
Introduction, 717
Loading the Trace library, 718
Pass Error, 719
Trace All Events, 718
Trace control flow between functions, 718
Using the Interactive Debugger, 720
The Type Hints Library
Example, 678
Introduction to the Type Hints Library, 677
Rules, 679
User Types, 678
Using Types inside Code, 679
Why Type Hints?, 678
The View Menu
Ring Notepad, 124
Threads
Graphics and Game Programming, 418
Threads Support
Code Generator, 745
Three Scopes
Scope Rules, 649
TicTacToe Game
Applications developed in little hours, 4
Time()
Date and Time, 182
TimeList()
Date and Time, 183
times()
Stdlib Functions, 286
Trace All Events
The Trace Library and the Interactive Debugger, 718
Trace control flow between functions
The Trace Library and the Interactive Debugger, 718
Trace Library and Interactive Debugger
What is new in Ring 1.5?, 55
Transaction Example
MySQL Functions, 239
Transactions and Using Commit and Rollback
ODBC Functions, 229
Transform Substring To Another Substring
Strings, 179
Transparent Image
Graphics and Game Programming, 417
Transparent Implementation
Language Design, 23
Tree Class
Stdlib Classes, 308
Triangle Rotation
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 487
Trim()
Strings, 178
TrimAll()
Stdlib Functions, 298
TrimLeft()
Stdlib Functions, 298
TrimRight()
Stdlib Functions, 299
TrueType Fonts
Graphics and Game Programming, 414
Try/Carch/Done
Eval() and Debugging, 216
Trying to be natural
Language Design, 18
Type Hints Library
What is new in Ring 1.5?, 58
Type()
Data Type, 187
Ungetc()
Files, 205
Unsigned()
Mathematical Functions, 197
Update the Android SDK
Index 1765
22. Ring Documentation, Release 1.5
Building RingQt Applications for Mobile, 633
Upload Files
Web Development (CGI Library), 356
URL Encode
Web Development (CGI Library), 361
Use TTF Fonts
RingLibSDL, 423
User Types
The Type Hints Library, 678
Users registration and Login
Web Development (CGI Library), 383
Using ’<’ and ’:’ operators as ’from’ keyword
What is new in Ring 1.3?, 82
Using ’case’ as ’on’ in switch statements
Syntax Flexibility, 675
Using ’def’ as ’func’ in functions/methods definition
Syntax Flexibility, 675
Using ’end’ keyword after Packages/Classes/Functions
Syntax Flexibility, 676
Using ’endpackage’/’endclass’/’endfunc’ keywords after
Packages/Classes/Functions
Syntax Flexibility, 676
Using ’put’ and ’get’ as ’see’ and ’give’
Syntax Flexibility, 675
Using () around the function parameters
Syntax Flexibility, 669
in the start of the variable name
Syntax Flexibility, 672
Using Atom
Using Other Code Editors, 129
Using Bootstrap Library using Functions
Web Development (CGI Library), 377
Using Bootstrap Library using Objects
Web Development (CGI Library), 378
Using braces { } in Packages/Classes/Functions
Syntax Flexibility, 676
Using Braces to access objects inside Class Methods
Scope Rules, 653
Using braces to escape from the current object scope
Scope Rules, 661
Using braces to start and end different control structures
Syntax Flexibility, 674
Using C/C++ Compiler and Linker
Distributing Ring Application, 682
Using configuration file that wrap C++ library
Code Generator, 747
Using Emacs Editor
Using Other Code Editors, 131
Using Eval() with our Natural Code
Natural Language Programming, 334
Using Fonts
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 508
Using Geany
Using Other Code Editors, 128
Using Layout
Desktop and Mobile Development, 530
Using Layouts
Form Designer, 648
Using Lists during definition
Lists, 173
Using Many Source Code Files
Program Structure, 167
Using Notepad++
Using Other Code Editors, 127
Using NULL instead of NULLPointer()
What is new in Ring 1.2?, 90
Using Object.Attribute
Scope Rules, 650
Using Other Code Editors
Introduction, 126
Using Atom, 129
Using Emacs Editor, 131
Using Geany, 128
Using Notepad++, 127
Using Sublime Text 2, 130
Using Visual Studio IDE, 131
Using QCheckBox
Desktop and Mobile Development, 556
Using QComboBox Class
Desktop and Mobile Development, 538
Using QDateEdit
Desktop and Mobile Development, 551
Using QDesktopWidget Class
Desktop and Mobile Development, 591
Using QDial
Desktop and Mobile Development, 552
Using QDockWidget
Desktop and Mobile Development, 544
Using QFrame
Desktop and Mobile Development, 561
Using QInputDialog Class
Desktop and Mobile Development, 582
Using qLCDNumber
Desktop and Mobile Development, 579
Using QProgressBar
Desktop and Mobile Development, 548
Using QProgressBar and Timer
Desktop and Mobile Development, 571
Using QRadioButton and QButtonGroup
Desktop and Mobile Development, 557
Using QSlider
Desktop and Mobile Development, 549
Using QSpinBox
Desktop and Mobile Development, 549
Using QTableWidget
Desktop and Mobile Development, 547
Using QTabWidget
Index 1766
23. Ring Documentation, Release 1.5
Desktop and Mobile Development, 545
Using QTreeView and QFileSystemModel
Desktop and Mobile Development, 536
Using QTreeWidget and QTreeWidgetItem
Desktop and Mobile Development, 537
Using QWebView
Desktop and Mobile Development, 555
Using RingOpenGL and RingFreeGLUT for 3D Graphics
Drawing using RingOpenGL, 483
Frames Per Second, 516
Introduction, 480
Keyboard Events and Colors, 488
Make a Cube using RingOpenGL and RingFreeG-
LUT, 525
Menu Events, 501
Mouse Events, 497
Samples Source (Authors), 481
The Camera, 491
The First Triangle, 484
The First Window using RingFreeGLUT, 482
Triangle Rotation, 487
Using Fonts, 508
What is RingFreeGLUT?, 482
What is RingOpenGL?, 481
Window Resize Event, 485
Using RingZip Classes
RingZip, 405
Using Self.Attribute
Object Oriented Programming, 260
Using Self.Attribute in the Class Region to define new at-
tributes
What is new in Ring 1.1?, 100
Using Semi-colon after and between statements
Syntax Flexibility, 671
Using Sublime Text 2
Using Other Code Editors, 130
Using the ’else’ keyword as ’other’ in switch statement
Syntax Flexibility, 672
Using the ’elseif’ keyword as ’but’ in if statement
Syntax Flexibility, 672
Using the ’end’ keyword in different control structures
Syntax Flexibility, 673
Using the Interactive Debugger
The Trace Library and the Interactive Debugger, 720
Using the Natural Library
Defining Commands, 342
Defining commands using classes, 345
Introduction, 339
Natural Library - Demo Program, 340
Operators, 344
Using the QColorDialog Class
Desktop and Mobile Development, 578
Using the QFileDialog Class
Desktop and Mobile Development, 573
Using the QListWidget Class
Desktop and Mobile Development, 533
Using the QTextEdit Class
Desktop and Mobile Development, 532
Using the QTimer Class
Desktop and Mobile Development, 570
Using the tool
Code Generator, 738
Using This.Attribute in nested Braces inside the Class
Methods
What is new in Ring 1.1?, 100
Using Types inside Code
The Type Hints Library, 679
Using Visual Studio IDE
Using Other Code Editors, 131
value()
Stdlib Functions, 286
Variables
Deep Copy, 133
Dynamic Typing, 133
Introduction, 132
Weakly Typed, 134
Variables Scope
Functions - First Style, 157
Functions - Second Style, 161
Functions - Third Style, 165
varptr()
Low Level Functions, 699
Version() Function
System Functions, 214
Video-Music-Player Application
What is new in Ring 1.5?, 26
Virtual Machine Instructions
Reference, 1729
Visual Implementation
Language Design, 24
Weakly Typed
Variables, 134
Web Development (CGI Library)
Application Class, 395
Configure the Apache web server, 347
Cookies, 359
CRUD Example using MVC, 381
Database, ModelBase & ControllerBase classes, 389
Generating Pages using Objects, 371
Gradient, 370
Hash Functions, 365
Hello World Program using the Web Library, 348
HTML Lists, 368
HTML Special Characters, 364
HTML Tables, 369
HtmlPage Class, 376, 400
Index 1767
24. Ring Documentation, Release 1.5
HTTP Get Example, 349
HTTP POST Example, 354
Introduction, 346
Page Class, 396
Random Image, 367
Ring CGI Hello World Program, 348
ScriptFunctions Class, 398
StyleFunctions Class, 398
Templates, 362
Upload Files, 356
URL Encode, 361
Users registration and Login, 383
Using Bootstrap Library using Functions, 377
Using Bootstrap Library using Objects, 378
Web Library Features, 349
WebLib API, 394
WebPage Class, 399
Web Library Features
Web Development (CGI Library), 349
WebLib API
Web Development (CGI Library), 394
WebPage Class
Web Development (CGI Library), 399
Weight History Application
Desktop and Mobile Development, 599
Werdy Application
Applications developed in little hours, 6
What about predefined parameters or optional parameters
in functions?
Frequently Asked Questions, 1705
What about the Boolean values in Ring?
Frequently Asked Questions, 1697
What are the advantages to using Ring over C# or Java?
Frequently Asked Questions, 1695
What are the advantages to using Ring over Lisp or
Smalltalk?
Frequently Asked Questions, 1692
What are the advantages to using Ring over native C or
C++?
Frequently Asked Questions, 1693
What are the advantages to using Ring over Python and
Ruby?
Frequently Asked Questions, 1694
What are the advantages to using Ring over Tcl and Lua?
Frequently Asked Questions, 1694
What happens when we create a new object?
Frequently Asked Questions, 1701
What is new in Ring 1.1?
Better Code Generator for Extensions, 100
Better Documentation, 100
Better Natural Language Programming Support, 92
Game Engine for 2D Games, 98
Generate/Execute Ring Object Files (*.ringo), 93
Introduction, 91
List of changes and new features, 92
New Functions and Changes, 95
RingLibSDL, 98
RingSQLite, 99
StdLib functions and classes written in Ring, 96
Syntax Flexibility, 93
Using Self.Attribute in the Class Region to define
new attributes, 100
Using This.Attribute in nested Braces inside the
Class Methods, 100
What is new in Ring 1.2?
Better Call Command, 90
Better Functions, 87
Better Quality, 90
Better Ring Notepad, 87
Better RingQt, 87
Display Warnings Option, 90
Introduction, 85
List of changes and new features, 86
New Functions, 86
Objects Library for RingQt, 88
RingLibCurl, 89
Using NULL instead of NULLPointer(), 90
What is new in Ring 1.3?
Better Loop|Exit Command, 81
Better Ring Notepad, 77
Better RingQt, 73
Better StdLib, 81
Embedding Ring in Ring without sharing the State,
83
Form Designer, 84
Introduction, 72
List of changes and new features, 73
New Functions, 82
Return Self by Reference, 82
Ring mode for Emacs Editor, 80
RingZip Library, 83
Using ’<’ and ’:’ operators as ’from’ keyword, 82
What is new in Ring 1.4.1?
Better RingQt, 62
Better Scripts for Building from Source Code, 60
Better StdLib, 61
Introduction, 59
List of changes and new features, 60
New Sample : Sixteen Puzzle, 62
New Style to Ring Notepad, 61
What is new in Ring 1.4?
Better RingQt, 71
Better StdLib, 69
Better WebLib, 69
Change: Basic Extensions are separated from
RingVM, 64
Convert between Numbers and Bytes, 68
Introduction, 63
Index 1768
25. Ring Documentation, Release 1.5
List of changes and new features, 64
New Style to Ring Notepad, 67
Qt Class Convertor, 71
RingREPL, 67
The Natural Library, 65
What is new in Ring 1.5?
Better Code Generator for Extensions, 50
Better Documentation Generator for Extensions, 51
Better Objects Library, 37
Better Quality, 59
Better Ring Notepad, 28
Better RingQt, 35
Better StdLib, 31
Better WebLib, 32
Calculator Application, 27
Introduction, 25
List of changes and new features, 26
More Syntax Flexibility, 57
Ring VM - Tracing Functions, 51
RingFreeGLUT Extension, 37
RingOpenGL Extension, 46
Trace Library and Interactive Debugger, 55
Type Hints Library, 58
Video-Music-Player Application, 26
Windows StartUp Manager Application, 27
What is RingFreeGLUT?
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 482
What is RingOpenGL?
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 481
What is the difference between Ring and Python? And is
Ring Open Source?
Frequently Asked Questions, 1693
Where can I write a program and execute it?
Frequently Asked Questions, 1704
While Loop
Control Structures - First Style, 139
Control Structures - Third Style, 149
Why do we need Yet Another Programming Language
(YAPL)?
Frequently Asked Questions, 1691
Why I get a strange result when printing nl with lists?
Frequently Asked Questions, 1706
Why I get Calling Function without definition Error?
Frequently Asked Questions, 1717
Why Ring is largely focussed on UI creation?
Frequently Asked Questions, 1693
Why Ring is not case-sensitive
Frequently Asked Questions, 1699
Why Ring is weakly typed?
Frequently Asked Questions, 1692
Why Ring uses ’See’, ’Give’, ’But’ and ’Ok’ Keywords?
Frequently Asked Questions, 1696
Why Ring?
Language Design, 17
Why setClickEvent() doesn’t see the object methods di-
rectly?
Frequently Asked Questions, 1717
Why the ability to define your own languages Instead of
just handing over the syntax so you can parse it
using whatever code you like?
Frequently Asked Questions, 1695
Why the Assignment operator uses Deep copy?
Frequently Asked Questions, 1700
Why the window title bar is going outside the screen?
Frequently Asked Questions, 1711
Why this example use the GetChar() twice?
Frequently Asked Questions, 1708
Why Type Hints?
The Type Hints Library, 678
Why we don’t use () after the qApp class name?
Frequently Asked Questions, 1711
Why you can specify the number of loops you want to
break out of?
Frequently Asked Questions, 1696
Window Flags
Form Designer, 647
Window Resize Event
Using RingOpenGL and RingFreeGLUT for 3D
Graphics, 485
Windows StartUp Manager Application
What is new in Ring 1.5?, 27
Windowsnl() Function
System Functions, 212
Wrap structures
Code Generator, 740
Wrapping C++ Classes
Code Generator, 746
Write file using Write()
Files, 200
Writing Comments
Getting Started - First Style, 111
Getting Started - Second Style, 113
Getting Started - Third Style, 115
Zip Class Reference
RingZip, 407
ZipEntry Class Reference
RingZip, 407
Index 1769