.. index:: 
	single: Ring Notepad; Introduction

==================
Using Ring Notepad
==================

In this chapter we will learn about using Ring Notepad to write and execute Ring programs quickly

Ring Notepad is just a simple application developed using the Ring language.

.. index:: 
	pair: Ring Notepad; Ring Notepad - Main Window

Ring Notepad - Main Window
==========================

When we run the Ring Notepad we get the next dockable windows

* Project Files Window : where we can select and open any ring file (*.ring) quickly.
* Source Code Window : Where we write the source code. 
* Form Designer Window : The Form Designer to create GUI application forms.
* Web Browser Window : Where we read the documentation or quickly open any website.
* Output Window : Output when we run programs that print to the standard output
* Function Window : List of functions in the current source file
* Classes Window : List of classes in the current source file

.. image:: urn_shot1.png
	:alt: Using Ring Notepad


.. index:: 
	pair: Ring Notepad; Ring Notepad - Creating and running your first console application 

Creating and running your first Console Application 
===================================================

At first we will type the source code

.. code-block:: ring

	See "Hello, World!"

As in the next image 

.. image:: urn_shot2.png
	:alt: Using Ring Notepad

Then we will click on the "Save" button from the toolbar (or press CTRL+S)

.. image:: urn_shot3.png
	:alt: Using Ring Notepad

Determine the source code file name and location. 

For example type : hello 

This will create a new source code file called : hello.ring

.. image:: urn_shot4.png
	:alt: Using Ring Notepad

To run the program click on "Debug (Run then wait!)" button from the toolbar

.. image:: urn_shot5.png
	:alt: Using Ring Notepad

The next screen shot present the application during the runtime

Press Enter to continue and return to the Ring Notepad.

.. image:: urn_shot6.png
	:alt: Using Ring Notepad

.. index:: 
	pair: Ring Notepad; Ring Notepad - Creating and running your first GUI application 

Creating and running your first GUI/Mobile Application 
======================================================

To learn how to create GUI applications using Ring check the "Desktop and Mobile development using RingQt" chapter.

Source Code:

.. code-block:: ring

	Load "guilib.ring"

	New qApp {
		new qWidget() {
			resize(400,400)
			setWindowTitle("Hello, World!")
			show()
		}
		exec()
	}

In Ring notepad we have a special button to run GUI applications without displaying the console window.

.. image:: urn_shot7.png
	:alt: Using Ring Notepad

The next screen shot present the application during the runtime

.. image:: urn_shot8.png
	:alt: Using Ring Notepad

	
.. index:: 
	pair: Ring Notepad; Ring Notepad - Creating and running your first Web application 

Creating and running your first Web Application 
===============================================

To learn how support Ring in your web server and how to create web applications using Ring check 
the "Web Development (CGI Library)" chapter.

.. note:: You need to support the Ring language in your web server to be able to run the next example.

Source Code:

.. code-block:: ring

	#!b:\ring\bin\ring.exe -cgi

	load "weblib.ring"

	Import System.Web

	new page {

		text("Hello, World!")

	}


We can run the application in any web browser or in the browser that are embedded in Ring Notepad.

.. image:: urn_shot9.png
	:alt: Using Ring Notepad


.. index:: 
	pair: Ring Notepad; Ring Notepad - Creating and running your first game 

Creating and running your first Desktop/Mobile Game
===================================================

To learn about creating 2D Games using Ring check the "Demo Project - Game Engine for 2D Games" chapter.

Source Code:

.. code-block:: ring

	Load "gameengine.ring"				 

	func main					 

		oGame = New Game			 
		{
			title = "My First Game"
			sprite
			{
				type = GE_TYPE_PLAYER		 
				x=400 y=400 width=100 height=100
				file = "images/player.png"	
				transparent = true			
				Animate=false 
				Move=true 	 
				Scaled=true
			}
		}					 


We can run the application as any GUI application.

.. image:: urn_shot10.png
	:alt: Using Ring Notepad
