SlideShare a Scribd company logo
1 of 10
Download to read offline
Ring Documentation, Release 1.9
void moveToThread(QThread *targetThread)
QString objectName(void)
QObject *parent(void)
QVariant property(const char *name)
void removeEventFilter(QObject *obj)
void setObjectName(QString)
void setParent(QObject *parent)
bool setProperty(const char *name, QVariant)
bool signalsBlocked(void)
int startTimer(int interval)
QThread *thread(void)
void deleteLater(void)
<class>
name: QWidget
para: void
parent: QObject
</class>
bool acceptDrops(void)
QString accessibleDescription(void)
QString accessibleName(void)
void activateWindow(void)
void addAction(QAction *action)
void adjustSize(void)
bool autoFillBackground(void)
int backgroundRole(void)
QSize baseSize(void)
QWidget *childAt(int x, int y)
QRect childrenRect(void)
QRegion childrenRegion(void)
void clearFocus(void)
void clearMask(void)
QMargins contentsMargins(void)
QRect contentsRect(void)
int contextMenuPolicy(void)
QCursor cursor(void)
int effectiveWinId(void)
void ensurePolished(void)
int focusPolicy(void)
QWidget *focusProxy(void)
QWidget *focusWidget(void)
QFont font(void)
QFontInfo fontInfo(void)
QFontMetrics fontMetrics(void)
int foregroundRole(void)
QRect frameGeometry(void)
QSize frameSize(void)
QRect geometry(void)
void getContentsMargins(int *left, int *top, int *right, int *bottom)
void grabGesture(int gesture, int flags)
void grabKeyboard(void)
void grabMouse(void)
int grabShortcut(QKeySequence , int context)
QGraphicsEffect *graphicsEffect(void)
QGraphicsProxyWidget *graphicsProxyWidget(void)
bool hasFocus(void)
bool hasMouseTracking(void)
82.19. Configuration file for the Qt Framework 919
Ring Documentation, Release 1.9
int height(void)
int heightForWidth(int w)
int inputMethodHints(void)
QVariant inputMethodQuery(int query)
void insertAction(QAction *before, QAction *action)
bool isActiveWindow(void)
bool isAncestorOf(QWidget *child)
bool isEnabled(void)
bool isEnabledTo(QWidget *ancestor)
bool isFullScreen(void)
bool isHidden(void)
bool isMaximized(void)
bool isMinimized(void)
bool isModal(void)
bool isVisible(void)
bool isVisibleTo(QWidget *ancestor)
bool isWindow(void)
bool isWindowModified(void)
QLayout *layout(void)
int layoutDirection(void)
QLocale locale(void)
QPoint mapFrom(QWidget *parent, QPoint)
QPoint mapFromGlobal(QPoint)
QPoint mapFromParent(QPoint)
QPoint mapTo(QWidget *parent, QPoint)
QPoint mapToGlobal(QPoint pos)
QPoint mapToParent(QPoint pos)
QRegion mask(void)
int maximumHeight(void)
QSize maximumSize(void)
int maximumWidth(void)
int minimumHeight(void)
QSize minimumSize(void)
int minimumWidth(void)
void move(int x, int y)
QWidget *nativeParentWidget(void)
QWidget *nextInFocusChain(void)
QRect normalGeometry(void)
void overrideWindowFlags(int flags)
QPalette palette(void)
QWidget *parentWidget(void)
QPoint pos(void)
QWidget *previousInFocusChain(void)
QRect rect(void)
void releaseKeyboard(void)
void releaseMouse(void)
void releaseShortcut(int id)
void removeAction(QAction *action)
void render(QPaintDevice *target, QPoint,QRegion, int)
void repaint(int x, int y, int w, int h)
void resize(int w, int h)
bool restoreGeometry(QByteArray)
QByteArray saveGeometry(void)
void scroll(int dx, int dy)
void setAcceptDrops(bool on)
void setAccessibleDescription(QString)
void setAccessibleName(QString)
void setAttribute(int attribute, bool on)
82.19. Configuration file for the Qt Framework 920
Ring Documentation, Release 1.9
void setAutoFillBackground(bool enabled)
void setBackgroundRole(int role)
void setBaseSize(int basew, int baseh)
void setContentsMargins(int left, int top, int right, int bottom)
void setContextMenuPolicy(int policy)
void setCursor(QCursor)
void setFixedHeight(int h)
void setFixedSize(int w, int h)
void setFixedWidth(int w)
void setFocus(int reason)
void setFocusPolicy(int policy)
void setFocusProxy(QWidget *w)
void setFont(QFont)
void setForegroundRole(int role)
void setGeometry(int x, int y, int w, int h)
void setGraphicsEffect(QGraphicsEffect *effect)
void setInputMethodHints(int hints)
void setLayout(QLayout *layout)
void setLayoutDirection(int direction)
void setLocale(QLocale)
void setMask(QBitmap)
void setMaximumHeight(int maxh)
void setMaximumSize(int maxw, int maxh)
void setMaximumWidth(int maxw)
void setMinimumHeight(int minh)
void setMinimumSize(int minw, int minh)
void setMinimumWidth(int minw)
void setMouseTracking(bool enable)
void setPalette(QPalette)
void setParent(QWidget *parent)
void setShortcutAutoRepeat(int id, bool enable)
void setShortcutEnabled(int id, bool enable)
void setSizeIncrement(int w, int h)
void setSizePolicy(int horizontal, int vertical)
void setStatusTip(QString)
void setStyle(QStyle *style)
void setToolTip(QString)
void setUpdatesEnabled(bool enable)
void setWhatsThis(QString)
void setWindowFilePath(QString)
void setWindowFlags(int type)
void setWindowIcon(QIcon)
void setWindowIconText(QString)
void setWindowModality(int windowModality)
void setWindowOpacity(double level)
void setWindowRole(QString)
void setWindowState(int windowState)
QSize size(void)
QSize sizeIncrement(void)
QSizePolicy sizePolicy(void)
void stackUnder(QWidget *w)
QString statusTip(void)
QStyle *style(void)
QString styleSheet(void)
bool testAttribute(int attribute)
QString toolTip(void)
bool underMouse(void)
void ungrabGesture(int gesture)
82.19. Configuration file for the Qt Framework 921
Ring Documentation, Release 1.9
void unsetCursor(void)
void unsetLayoutDirection(void)
void unsetLocale(void)
void update(int x, int y, int w, int h)
void updateGeometry(void)
bool updatesEnabled(void)
QRegion visibleRegion(void)
QString whatsThis(void)
int width(void)
int winId(void)
QWidget *window(void)
QString windowFilePath(void)
int windowFlags(void)
QIcon windowIcon(void)
QString windowIconText(void)
int windowModality(void)
double windowOpacity(void)
QString windowRole(void)
int windowState(void)
QString windowTitle(void)
int windowType(void)
int x(void)
int y(void)
bool close(void)
void hide(void)
void lower(void)
void raise(void)
void setDisabled(bool disable)
void setEnabled(bool)
void setHidden(bool hidden)
void setStyleSheet(QString)
void setWindowModified(bool)
void setWindowTitle(QString)
void show(void)
void showFullScreen(void)
void showMaximized(void)
void showMinimized(void)
void showNormal(void)
QWidget *find(int id)
QWidget *keyboardGrabber(void)
QWidget *mouseGrabber(void)
void setTabOrder(QWidget *first, QWidget *second)
<class>
name: QLabel
para: QWidget *
parent: QWidget
</class>
int alignment(void)
QWidget *buddy(void)
bool hasScaledContents(void)
bool hasSelectedText(void)
int indent(void)
int margin(void)
QMovie *movie(void)
bool openExternalLinks(void)
QPicture *picture(void)
82.19. Configuration file for the Qt Framework 922
Ring Documentation, Release 1.9
QPixmap *pixmap(void)
QString selectedText(void)
int selectionStart(void)
void setAlignment(int)
void setBuddy(QWidget *buddy)
void setIndent(int)
void setMargin(int)
void setOpenExternalLinks(bool open)
void setScaledContents(bool)
void setSelection(int start, int length)
void setTextFormat(int)
void setTextInteractionFlags(int flags)
void setWordWrap(bool on)
QString text(void)
int textFormat(void)
int textInteractionFlags(void)
bool wordWrap(void)
void clear(void)
void setMovie(QMovie *movie)
void setNum(double num)
void setPicture(QPicture)
void setPixmap(QPixmap)
void setText(QString)
<class>
name: QPushButton
para: QWidget *
parent: QWidget
codename: GPushButton
passvmpointer
</class>
void setText(const char *)
void setClickEvent(const char *)
void setIcon(QIcon)
void setIconSize(QSize)
<class>
name: QLineEdit
para: QWidget *
parent: QWidget
codename: GLineEdit
passvmpointer
</class>
int alignment(void)
void backspace(void)
QCompleter *completer(void)
QMenu *createStandardContextMenu(void)
void cursorBackward(bool mark, int steps)
void cursorForward(bool mark, int steps)
int cursorMoveStyle(void)
int cursorPosition(void)
int cursorPositionAt(QPoint)
void cursorWordBackward(bool mark)
void cursorWordForward(bool mark)
void del(void)
void deselect(void)
82.19. Configuration file for the Qt Framework 923
Ring Documentation, Release 1.9
QString displayText(void)
bool dragEnabled(void)
int echoMode(void)
void end(bool mark)
void getTextMargins(int *left, int *top, int *right, int *bottom)
bool hasAcceptableInput(void)
bool hasFrame(void)
bool hasSelectedText(void)
void home(bool mark)
QString inputMask(void)
void insert(QString)
bool isModified(void)
bool isReadOnly(void)
bool isRedoAvailable(void)
bool isUndoAvailable(void)
int maxLength(void)
QString placeholderText(void)
QString selectedText(void)
int selectionStart(void)
void setAlignment(int flag)
void setCompleter(QCompleter *c)
void setCursorMoveStyle(int style)
void setCursorPosition(int)
void setDragEnabled(bool b)
void setEchoMode(int)
void setFrame(bool)
void setInputMask(QString)
void setMaxLength(int)
void setModified(bool)
void setPlaceholderText(QString)
void setReadOnly(bool)
void setSelection(int start, int length)
void setTextMargins(int left, int top, int right, int bottom)
void setValidator(QValidator *v)
QString text(void)
QMargins textMargins(void)
QValidator *validator(void)
void clear(void)
void copy(void)
void cut(void)
void paste(void)
void redo(void)
void selectAll(void)
void setText(QString)
void undo(void)
void setTextChangedEvent(const char *)
void setcursorPositionChangedEvent(const char *)
void seteditingFinishedEvent(const char *)
void setreturnPressedEvent(const char *)
void setselectionChangedEvent(const char *)
void settextEditedEvent(const char *)
Note: Most of the content of the previous configuration file is removed from this documentation, for a complete
version see the Ring source code distribution.
82.19. Configuration file for the Qt Framework 924
Ring Documentation, Release 1.9
82.20 Static Methods
Starting from Ring 1.8 the code generator support the staticmethods option.
So the code generator can know that the class doesn’t need an object to call the methods.
Example:
<class>
name: QStandardPaths
para: void
nonew
staticmethods
</class>
QString displayName(QStandardPaths::StandardLocation type)
QString findExecutable(QString executableName, QStringList paths))
82.21 Loading Files
Starting from Ring 1.9 the code generator support the <loadfile> command.
<loadfile> filename.cf
This is useful to separate the extension configuraition file to many files
Example:
The file : qt_module_network.cf in the RingQt Extension
<comment>
Module (network)
</comment>
<loadfile> qabstractsocket.cf
<loadfile> qnetworkproxy.cf
<loadfile> qtcpsocket.cf
<loadfile> qtcpserver.cf
<loadfile> qhostaddress.cf
<loadfile> qhostinfo.cf
<loadfile> qnetworkrequest.cf
<loadfile> qnetworkaccessmanager.cf
<loadfile> qnetworkreply.cf
82.22 Managed Classes
Starting from Ring 1.9 the code generator support the <managed> option when defining classes.
Using this option, the generator will use RING_API_RETMANAGEDCPOINTER() to return the C pointer.
So the Garabage Collector will manage these C pointers.
Example
82.20. Static Methods 925
Ring Documentation, Release 1.9
<class>
name: QFont
para: QString, int, int, bool
managed
</class>
82.23 Configuration Files Examples
You can learn from the next examples
• RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/allegro.cf
• RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/classes/qt.cf
• RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/libsdl.cf
After modifing the configuration file, You will need to generate the code, You can learn from the next examples
• RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/gencode.bat
• RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/gencode.bat
• RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/gencode.bat
After generating the code, You will need to build the library, You can learn from the next examples
• RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/buildvc.bat
• RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/buildmingw32.bat
• RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/buildvc.bat
82.23. Configuration Files Examples 926
CHAPTER
EIGHTYTHREE
CREATE YOUR FIRST EXTENSION
In this chapter we will create RingBeep
RingBeep is a simple extension for the beep() function in Windows API
Just a simple example about creating extensions
83.1 Location
You will find this extension in the ring/extensions/ringbeep folder
83.2 Steps to create the extension
At first we write the configuration file in : ringbeep.cf
notepad ringbeep.cf
The file ringbeep.cf contains
<code>
#include "windows.h"
</code>
int Beep(int dwFreq,int dwDuration)
Then we run : gencode.bat to generate ringbeep.c
gencode.bat
The gencode.bat contains the next command to call Ring Extensions Generator
ring ..codegenparsec.ring ringbeep.cf ringbeep.c
Then we build the extension using :
buildvc.bat
The file buildvc.bat contains the next commands to build the extension using Visual C/C++
cls
call ../../src/locatevc.bat
cl /c /DEBUG ringbeep.c -I"....include"
link /DEBUG ringbeep.obj ....libring.lib kernel32.lib /DLL /OUT:ringbeep.dll ^
927
Ring Documentation, Release 1.9
/SUBSYSTEM:CONSOLE,"5.01"
del ringbeep.obj
83.3 Testing the extension
Then we test the function using
ring test.ring
The file test.ring contains
loadlib("ringbeep.dll")
for f = 750 to 1000 step 50
beep(f,300)
next
83.3. Testing the extension 928

More Related Content

What's hot

What's hot (20)

The Ring programming language version 1.2 book - Part 45 of 84
The Ring programming language version 1.2 book - Part 45 of 84The Ring programming language version 1.2 book - Part 45 of 84
The Ring programming language version 1.2 book - Part 45 of 84
 
The Ring programming language version 1.10 book - Part 76 of 212
The Ring programming language version 1.10 book - Part 76 of 212The Ring programming language version 1.10 book - Part 76 of 212
The Ring programming language version 1.10 book - Part 76 of 212
 
The Ring programming language version 1.5.4 book - Part 68 of 185
The Ring programming language version 1.5.4 book - Part 68 of 185The Ring programming language version 1.5.4 book - Part 68 of 185
The Ring programming language version 1.5.4 book - Part 68 of 185
 
The Ring programming language version 1.4 book - Part 16 of 30
The Ring programming language version 1.4 book - Part 16 of 30The Ring programming language version 1.4 book - Part 16 of 30
The Ring programming language version 1.4 book - Part 16 of 30
 
The Ring programming language version 1.4 book - Part 17 of 30
The Ring programming language version 1.4 book - Part 17 of 30The Ring programming language version 1.4 book - Part 17 of 30
The Ring programming language version 1.4 book - Part 17 of 30
 
The Ring programming language version 1.3 book - Part 46 of 88
The Ring programming language version 1.3 book - Part 46 of 88The Ring programming language version 1.3 book - Part 46 of 88
The Ring programming language version 1.3 book - Part 46 of 88
 
The Ring programming language version 1.5 book - Part 11 of 31
The Ring programming language version 1.5 book - Part 11 of 31The Ring programming language version 1.5 book - Part 11 of 31
The Ring programming language version 1.5 book - Part 11 of 31
 
The Ring programming language version 1.5.4 book - Part 64 of 185
The Ring programming language version 1.5.4 book - Part 64 of 185The Ring programming language version 1.5.4 book - Part 64 of 185
The Ring programming language version 1.5.4 book - Part 64 of 185
 
The Ring programming language version 1.9 book - Part 75 of 210
The Ring programming language version 1.9 book - Part 75 of 210The Ring programming language version 1.9 book - Part 75 of 210
The Ring programming language version 1.9 book - Part 75 of 210
 
The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30The Ring programming language version 1.4 book - Part 28 of 30
The Ring programming language version 1.4 book - Part 28 of 30
 
The Ring programming language version 1.10 book - Part 79 of 212
The Ring programming language version 1.10 book - Part 79 of 212The Ring programming language version 1.10 book - Part 79 of 212
The Ring programming language version 1.10 book - Part 79 of 212
 
The Ring programming language version 1.5.1 book - Part 60 of 180
The Ring programming language version 1.5.1 book - Part 60 of 180The Ring programming language version 1.5.1 book - Part 60 of 180
The Ring programming language version 1.5.1 book - Part 60 of 180
 
The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212The Ring programming language version 1.10 book - Part 106 of 212
The Ring programming language version 1.10 book - Part 106 of 212
 
The Ring programming language version 1.7 book - Part 73 of 196
The Ring programming language version 1.7 book - Part 73 of 196The Ring programming language version 1.7 book - Part 73 of 196
The Ring programming language version 1.7 book - Part 73 of 196
 
The Ring programming language version 1.8 book - Part 75 of 202
The Ring programming language version 1.8 book - Part 75 of 202The Ring programming language version 1.8 book - Part 75 of 202
The Ring programming language version 1.8 book - Part 75 of 202
 
The Ring programming language version 1.6 book - Part 66 of 189
The Ring programming language version 1.6 book - Part 66 of 189The Ring programming language version 1.6 book - Part 66 of 189
The Ring programming language version 1.6 book - Part 66 of 189
 
The Ring programming language version 1.7 book - Part 68 of 196
The Ring programming language version 1.7 book - Part 68 of 196The Ring programming language version 1.7 book - Part 68 of 196
The Ring programming language version 1.7 book - Part 68 of 196
 
The Ring programming language version 1.5.4 book - Part 67 of 185
The Ring programming language version 1.5.4 book - Part 67 of 185The Ring programming language version 1.5.4 book - Part 67 of 185
The Ring programming language version 1.5.4 book - Part 67 of 185
 
The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196The Ring programming language version 1.7 book - Part 72 of 196
The Ring programming language version 1.7 book - Part 72 of 196
 
The Ring programming language version 1.8 book - Part 70 of 202
The Ring programming language version 1.8 book - Part 70 of 202The Ring programming language version 1.8 book - Part 70 of 202
The Ring programming language version 1.8 book - Part 70 of 202
 

Similar to The Ring programming language version 1.9 book - Part 96 of 210

package chapter15;import javafx.application.Application;import j.pdf
package chapter15;import javafx.application.Application;import j.pdfpackage chapter15;import javafx.application.Application;import j.pdf
package chapter15;import javafx.application.Application;import j.pdf
KARTIKINDIA
 
Create a java project that - Draw a circle with three random init.pdf
Create a java project that - Draw a circle with three random init.pdfCreate a java project that - Draw a circle with three random init.pdf
Create a java project that - Draw a circle with three random init.pdf
arihantmobileselepun
 
[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9
Shih-Hsiang Lin
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
Giordano Scalzo
 

Similar to The Ring programming language version 1.9 book - Part 96 of 210 (20)

The Ring programming language version 1.2 book - Part 60 of 84
The Ring programming language version 1.2 book - Part 60 of 84The Ring programming language version 1.2 book - Part 60 of 84
The Ring programming language version 1.2 book - Part 60 of 84
 
The Ring programming language version 1.10 book - Part 125 of 212
The Ring programming language version 1.10 book - Part 125 of 212The Ring programming language version 1.10 book - Part 125 of 212
The Ring programming language version 1.10 book - Part 125 of 212
 
The Ring programming language version 1.9 book - Part 103 of 210
The Ring programming language version 1.9 book - Part 103 of 210The Ring programming language version 1.9 book - Part 103 of 210
The Ring programming language version 1.9 book - Part 103 of 210
 
The Ring programming language version 1.5.4 book - Part 83 of 185
The Ring programming language version 1.5.4 book - Part 83 of 185The Ring programming language version 1.5.4 book - Part 83 of 185
The Ring programming language version 1.5.4 book - Part 83 of 185
 
package chapter15;import javafx.application.Application;import j.pdf
package chapter15;import javafx.application.Application;import j.pdfpackage chapter15;import javafx.application.Application;import j.pdf
package chapter15;import javafx.application.Application;import j.pdf
 
The Ring programming language version 1.7 book - Part 105 of 196
The Ring programming language version 1.7 book - Part 105 of 196The Ring programming language version 1.7 book - Part 105 of 196
The Ring programming language version 1.7 book - Part 105 of 196
 
The Ring programming language version 1.6 book - Part 178 of 189
The Ring programming language version 1.6 book - Part 178 of 189The Ring programming language version 1.6 book - Part 178 of 189
The Ring programming language version 1.6 book - Part 178 of 189
 
The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210The Ring programming language version 1.9 book - Part 108 of 210
The Ring programming language version 1.9 book - Part 108 of 210
 
Create a java project that - Draw a circle with three random init.pdf
Create a java project that - Draw a circle with three random init.pdfCreate a java project that - Draw a circle with three random init.pdf
Create a java project that - Draw a circle with three random init.pdf
 
The Ring programming language version 1.9 book - Part 114 of 210
The Ring programming language version 1.9 book - Part 114 of 210The Ring programming language version 1.9 book - Part 114 of 210
The Ring programming language version 1.9 book - Part 114 of 210
 
[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9[C++ gui programming with qt4] chap9
[C++ gui programming with qt4] chap9
 
How to Clone Flappy Bird in Swift
How to Clone Flappy Bird in SwiftHow to Clone Flappy Bird in Swift
How to Clone Flappy Bird in Swift
 
The Ring programming language version 1.7 book - Part 98 of 196
The Ring programming language version 1.7 book - Part 98 of 196The Ring programming language version 1.7 book - Part 98 of 196
The Ring programming language version 1.7 book - Part 98 of 196
 
The Ring programming language version 1.8 book - Part 105 of 202
The Ring programming language version 1.8 book - Part 105 of 202The Ring programming language version 1.8 book - Part 105 of 202
The Ring programming language version 1.8 book - Part 105 of 202
 
The Ring programming language version 1.2 book - Part 76 of 84
The Ring programming language version 1.2 book - Part 76 of 84The Ring programming language version 1.2 book - Part 76 of 84
The Ring programming language version 1.2 book - Part 76 of 84
 
The Ring programming language version 1.5.3 book - Part 80 of 184
The Ring programming language version 1.5.3 book - Part 80 of 184The Ring programming language version 1.5.3 book - Part 80 of 184
The Ring programming language version 1.5.3 book - Part 80 of 184
 
Creating an Uber Clone - Part XXIII.pdf
Creating an Uber Clone - Part XXIII.pdfCreating an Uber Clone - Part XXIII.pdf
Creating an Uber Clone - Part XXIII.pdf
 
Treinamento Qt básico - aula II
Treinamento Qt básico - aula IITreinamento Qt básico - aula II
Treinamento Qt básico - aula II
 
The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31The Ring programming language version 1.4.1 book - Part 28 of 31
The Ring programming language version 1.4.1 book - Part 28 of 31
 
The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202The Ring programming language version 1.8 book - Part 74 of 202
The Ring programming language version 1.8 book - Part 74 of 202
 

More from Mahmoud Samir Fayed

More from Mahmoud Samir Fayed (20)

The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212The Ring programming language version 1.10 book - Part 212 of 212
The Ring programming language version 1.10 book - Part 212 of 212
 
The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212The Ring programming language version 1.10 book - Part 211 of 212
The Ring programming language version 1.10 book - Part 211 of 212
 
The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212The Ring programming language version 1.10 book - Part 210 of 212
The Ring programming language version 1.10 book - Part 210 of 212
 
The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212The Ring programming language version 1.10 book - Part 208 of 212
The Ring programming language version 1.10 book - Part 208 of 212
 
The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212The Ring programming language version 1.10 book - Part 207 of 212
The Ring programming language version 1.10 book - Part 207 of 212
 
The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212The Ring programming language version 1.10 book - Part 205 of 212
The Ring programming language version 1.10 book - Part 205 of 212
 
The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212The Ring programming language version 1.10 book - Part 206 of 212
The Ring programming language version 1.10 book - Part 206 of 212
 
The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212The Ring programming language version 1.10 book - Part 204 of 212
The Ring programming language version 1.10 book - Part 204 of 212
 
The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212The Ring programming language version 1.10 book - Part 203 of 212
The Ring programming language version 1.10 book - Part 203 of 212
 
The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212The Ring programming language version 1.10 book - Part 202 of 212
The Ring programming language version 1.10 book - Part 202 of 212
 
The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212The Ring programming language version 1.10 book - Part 201 of 212
The Ring programming language version 1.10 book - Part 201 of 212
 
The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212The Ring programming language version 1.10 book - Part 200 of 212
The Ring programming language version 1.10 book - Part 200 of 212
 
The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212The Ring programming language version 1.10 book - Part 199 of 212
The Ring programming language version 1.10 book - Part 199 of 212
 
The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212The Ring programming language version 1.10 book - Part 198 of 212
The Ring programming language version 1.10 book - Part 198 of 212
 
The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212The Ring programming language version 1.10 book - Part 197 of 212
The Ring programming language version 1.10 book - Part 197 of 212
 
The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212The Ring programming language version 1.10 book - Part 196 of 212
The Ring programming language version 1.10 book - Part 196 of 212
 
The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212The Ring programming language version 1.10 book - Part 195 of 212
The Ring programming language version 1.10 book - Part 195 of 212
 
The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212The Ring programming language version 1.10 book - Part 194 of 212
The Ring programming language version 1.10 book - Part 194 of 212
 
The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212The Ring programming language version 1.10 book - Part 193 of 212
The Ring programming language version 1.10 book - Part 193 of 212
 
The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212The Ring programming language version 1.10 book - Part 192 of 212
The Ring programming language version 1.10 book - Part 192 of 212
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Recently uploaded (20)

Evolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI EraEvolving Data Governance for the Real-time Streaming and AI Era
Evolving Data Governance for the Real-time Streaming and AI Era
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid EnvironmentsWSO2Con2024 - Software Delivery in Hybrid Environments
WSO2Con2024 - Software Delivery in Hybrid Environments
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in UgandaWSO2CON 2024 - Building a Digital Government in Uganda
WSO2CON 2024 - Building a Digital Government in Uganda
 
WSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaSWSO2CON 2024 Slides - Open Source to SaaS
WSO2CON 2024 Slides - Open Source to SaaS
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAMWSO2Con2024 - Organization Management: The Revolution in B2B CIAM
WSO2Con2024 - Organization Management: The Revolution in B2B CIAM
 
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next IntegrationWSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
WSO2CON2024 - Why Should You Consider Ballerina for Your Next Integration
 
BusinessGPT - Security and Governance for Generative AI
BusinessGPT  - Security and Governance for Generative AIBusinessGPT  - Security and Governance for Generative AI
BusinessGPT - Security and Governance for Generative AI
 
WSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AIWSO2CON 2024 Slides - Unlocking Value with AI
WSO2CON 2024 Slides - Unlocking Value with AI
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 

The Ring programming language version 1.9 book - Part 96 of 210

  • 1. Ring Documentation, Release 1.9 void moveToThread(QThread *targetThread) QString objectName(void) QObject *parent(void) QVariant property(const char *name) void removeEventFilter(QObject *obj) void setObjectName(QString) void setParent(QObject *parent) bool setProperty(const char *name, QVariant) bool signalsBlocked(void) int startTimer(int interval) QThread *thread(void) void deleteLater(void) <class> name: QWidget para: void parent: QObject </class> bool acceptDrops(void) QString accessibleDescription(void) QString accessibleName(void) void activateWindow(void) void addAction(QAction *action) void adjustSize(void) bool autoFillBackground(void) int backgroundRole(void) QSize baseSize(void) QWidget *childAt(int x, int y) QRect childrenRect(void) QRegion childrenRegion(void) void clearFocus(void) void clearMask(void) QMargins contentsMargins(void) QRect contentsRect(void) int contextMenuPolicy(void) QCursor cursor(void) int effectiveWinId(void) void ensurePolished(void) int focusPolicy(void) QWidget *focusProxy(void) QWidget *focusWidget(void) QFont font(void) QFontInfo fontInfo(void) QFontMetrics fontMetrics(void) int foregroundRole(void) QRect frameGeometry(void) QSize frameSize(void) QRect geometry(void) void getContentsMargins(int *left, int *top, int *right, int *bottom) void grabGesture(int gesture, int flags) void grabKeyboard(void) void grabMouse(void) int grabShortcut(QKeySequence , int context) QGraphicsEffect *graphicsEffect(void) QGraphicsProxyWidget *graphicsProxyWidget(void) bool hasFocus(void) bool hasMouseTracking(void) 82.19. Configuration file for the Qt Framework 919
  • 2. Ring Documentation, Release 1.9 int height(void) int heightForWidth(int w) int inputMethodHints(void) QVariant inputMethodQuery(int query) void insertAction(QAction *before, QAction *action) bool isActiveWindow(void) bool isAncestorOf(QWidget *child) bool isEnabled(void) bool isEnabledTo(QWidget *ancestor) bool isFullScreen(void) bool isHidden(void) bool isMaximized(void) bool isMinimized(void) bool isModal(void) bool isVisible(void) bool isVisibleTo(QWidget *ancestor) bool isWindow(void) bool isWindowModified(void) QLayout *layout(void) int layoutDirection(void) QLocale locale(void) QPoint mapFrom(QWidget *parent, QPoint) QPoint mapFromGlobal(QPoint) QPoint mapFromParent(QPoint) QPoint mapTo(QWidget *parent, QPoint) QPoint mapToGlobal(QPoint pos) QPoint mapToParent(QPoint pos) QRegion mask(void) int maximumHeight(void) QSize maximumSize(void) int maximumWidth(void) int minimumHeight(void) QSize minimumSize(void) int minimumWidth(void) void move(int x, int y) QWidget *nativeParentWidget(void) QWidget *nextInFocusChain(void) QRect normalGeometry(void) void overrideWindowFlags(int flags) QPalette palette(void) QWidget *parentWidget(void) QPoint pos(void) QWidget *previousInFocusChain(void) QRect rect(void) void releaseKeyboard(void) void releaseMouse(void) void releaseShortcut(int id) void removeAction(QAction *action) void render(QPaintDevice *target, QPoint,QRegion, int) void repaint(int x, int y, int w, int h) void resize(int w, int h) bool restoreGeometry(QByteArray) QByteArray saveGeometry(void) void scroll(int dx, int dy) void setAcceptDrops(bool on) void setAccessibleDescription(QString) void setAccessibleName(QString) void setAttribute(int attribute, bool on) 82.19. Configuration file for the Qt Framework 920
  • 3. Ring Documentation, Release 1.9 void setAutoFillBackground(bool enabled) void setBackgroundRole(int role) void setBaseSize(int basew, int baseh) void setContentsMargins(int left, int top, int right, int bottom) void setContextMenuPolicy(int policy) void setCursor(QCursor) void setFixedHeight(int h) void setFixedSize(int w, int h) void setFixedWidth(int w) void setFocus(int reason) void setFocusPolicy(int policy) void setFocusProxy(QWidget *w) void setFont(QFont) void setForegroundRole(int role) void setGeometry(int x, int y, int w, int h) void setGraphicsEffect(QGraphicsEffect *effect) void setInputMethodHints(int hints) void setLayout(QLayout *layout) void setLayoutDirection(int direction) void setLocale(QLocale) void setMask(QBitmap) void setMaximumHeight(int maxh) void setMaximumSize(int maxw, int maxh) void setMaximumWidth(int maxw) void setMinimumHeight(int minh) void setMinimumSize(int minw, int minh) void setMinimumWidth(int minw) void setMouseTracking(bool enable) void setPalette(QPalette) void setParent(QWidget *parent) void setShortcutAutoRepeat(int id, bool enable) void setShortcutEnabled(int id, bool enable) void setSizeIncrement(int w, int h) void setSizePolicy(int horizontal, int vertical) void setStatusTip(QString) void setStyle(QStyle *style) void setToolTip(QString) void setUpdatesEnabled(bool enable) void setWhatsThis(QString) void setWindowFilePath(QString) void setWindowFlags(int type) void setWindowIcon(QIcon) void setWindowIconText(QString) void setWindowModality(int windowModality) void setWindowOpacity(double level) void setWindowRole(QString) void setWindowState(int windowState) QSize size(void) QSize sizeIncrement(void) QSizePolicy sizePolicy(void) void stackUnder(QWidget *w) QString statusTip(void) QStyle *style(void) QString styleSheet(void) bool testAttribute(int attribute) QString toolTip(void) bool underMouse(void) void ungrabGesture(int gesture) 82.19. Configuration file for the Qt Framework 921
  • 4. Ring Documentation, Release 1.9 void unsetCursor(void) void unsetLayoutDirection(void) void unsetLocale(void) void update(int x, int y, int w, int h) void updateGeometry(void) bool updatesEnabled(void) QRegion visibleRegion(void) QString whatsThis(void) int width(void) int winId(void) QWidget *window(void) QString windowFilePath(void) int windowFlags(void) QIcon windowIcon(void) QString windowIconText(void) int windowModality(void) double windowOpacity(void) QString windowRole(void) int windowState(void) QString windowTitle(void) int windowType(void) int x(void) int y(void) bool close(void) void hide(void) void lower(void) void raise(void) void setDisabled(bool disable) void setEnabled(bool) void setHidden(bool hidden) void setStyleSheet(QString) void setWindowModified(bool) void setWindowTitle(QString) void show(void) void showFullScreen(void) void showMaximized(void) void showMinimized(void) void showNormal(void) QWidget *find(int id) QWidget *keyboardGrabber(void) QWidget *mouseGrabber(void) void setTabOrder(QWidget *first, QWidget *second) <class> name: QLabel para: QWidget * parent: QWidget </class> int alignment(void) QWidget *buddy(void) bool hasScaledContents(void) bool hasSelectedText(void) int indent(void) int margin(void) QMovie *movie(void) bool openExternalLinks(void) QPicture *picture(void) 82.19. Configuration file for the Qt Framework 922
  • 5. Ring Documentation, Release 1.9 QPixmap *pixmap(void) QString selectedText(void) int selectionStart(void) void setAlignment(int) void setBuddy(QWidget *buddy) void setIndent(int) void setMargin(int) void setOpenExternalLinks(bool open) void setScaledContents(bool) void setSelection(int start, int length) void setTextFormat(int) void setTextInteractionFlags(int flags) void setWordWrap(bool on) QString text(void) int textFormat(void) int textInteractionFlags(void) bool wordWrap(void) void clear(void) void setMovie(QMovie *movie) void setNum(double num) void setPicture(QPicture) void setPixmap(QPixmap) void setText(QString) <class> name: QPushButton para: QWidget * parent: QWidget codename: GPushButton passvmpointer </class> void setText(const char *) void setClickEvent(const char *) void setIcon(QIcon) void setIconSize(QSize) <class> name: QLineEdit para: QWidget * parent: QWidget codename: GLineEdit passvmpointer </class> int alignment(void) void backspace(void) QCompleter *completer(void) QMenu *createStandardContextMenu(void) void cursorBackward(bool mark, int steps) void cursorForward(bool mark, int steps) int cursorMoveStyle(void) int cursorPosition(void) int cursorPositionAt(QPoint) void cursorWordBackward(bool mark) void cursorWordForward(bool mark) void del(void) void deselect(void) 82.19. Configuration file for the Qt Framework 923
  • 6. Ring Documentation, Release 1.9 QString displayText(void) bool dragEnabled(void) int echoMode(void) void end(bool mark) void getTextMargins(int *left, int *top, int *right, int *bottom) bool hasAcceptableInput(void) bool hasFrame(void) bool hasSelectedText(void) void home(bool mark) QString inputMask(void) void insert(QString) bool isModified(void) bool isReadOnly(void) bool isRedoAvailable(void) bool isUndoAvailable(void) int maxLength(void) QString placeholderText(void) QString selectedText(void) int selectionStart(void) void setAlignment(int flag) void setCompleter(QCompleter *c) void setCursorMoveStyle(int style) void setCursorPosition(int) void setDragEnabled(bool b) void setEchoMode(int) void setFrame(bool) void setInputMask(QString) void setMaxLength(int) void setModified(bool) void setPlaceholderText(QString) void setReadOnly(bool) void setSelection(int start, int length) void setTextMargins(int left, int top, int right, int bottom) void setValidator(QValidator *v) QString text(void) QMargins textMargins(void) QValidator *validator(void) void clear(void) void copy(void) void cut(void) void paste(void) void redo(void) void selectAll(void) void setText(QString) void undo(void) void setTextChangedEvent(const char *) void setcursorPositionChangedEvent(const char *) void seteditingFinishedEvent(const char *) void setreturnPressedEvent(const char *) void setselectionChangedEvent(const char *) void settextEditedEvent(const char *) Note: Most of the content of the previous configuration file is removed from this documentation, for a complete version see the Ring source code distribution. 82.19. Configuration file for the Qt Framework 924
  • 7. Ring Documentation, Release 1.9 82.20 Static Methods Starting from Ring 1.8 the code generator support the staticmethods option. So the code generator can know that the class doesn’t need an object to call the methods. Example: <class> name: QStandardPaths para: void nonew staticmethods </class> QString displayName(QStandardPaths::StandardLocation type) QString findExecutable(QString executableName, QStringList paths)) 82.21 Loading Files Starting from Ring 1.9 the code generator support the <loadfile> command. <loadfile> filename.cf This is useful to separate the extension configuraition file to many files Example: The file : qt_module_network.cf in the RingQt Extension <comment> Module (network) </comment> <loadfile> qabstractsocket.cf <loadfile> qnetworkproxy.cf <loadfile> qtcpsocket.cf <loadfile> qtcpserver.cf <loadfile> qhostaddress.cf <loadfile> qhostinfo.cf <loadfile> qnetworkrequest.cf <loadfile> qnetworkaccessmanager.cf <loadfile> qnetworkreply.cf 82.22 Managed Classes Starting from Ring 1.9 the code generator support the <managed> option when defining classes. Using this option, the generator will use RING_API_RETMANAGEDCPOINTER() to return the C pointer. So the Garabage Collector will manage these C pointers. Example 82.20. Static Methods 925
  • 8. Ring Documentation, Release 1.9 <class> name: QFont para: QString, int, int, bool managed </class> 82.23 Configuration Files Examples You can learn from the next examples • RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/allegro.cf • RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/classes/qt.cf • RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/libsdl.cf After modifing the configuration file, You will need to generate the code, You can learn from the next examples • RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/gencode.bat • RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/gencode.bat • RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/gencode.bat After generating the code, You will need to build the library, You can learn from the next examples • RingAllegro : https://github.com/ring-lang/ring/blob/master/extensions/ringallegro/buildvc.bat • RingQt : https://github.com/ring-lang/ring/blob/master/extensions/ringqt/buildmingw32.bat • RingLibSDL : https://github.com/ring-lang/ring/blob/master/extensions/ringsdl/buildvc.bat 82.23. Configuration Files Examples 926
  • 9. CHAPTER EIGHTYTHREE CREATE YOUR FIRST EXTENSION In this chapter we will create RingBeep RingBeep is a simple extension for the beep() function in Windows API Just a simple example about creating extensions 83.1 Location You will find this extension in the ring/extensions/ringbeep folder 83.2 Steps to create the extension At first we write the configuration file in : ringbeep.cf notepad ringbeep.cf The file ringbeep.cf contains <code> #include "windows.h" </code> int Beep(int dwFreq,int dwDuration) Then we run : gencode.bat to generate ringbeep.c gencode.bat The gencode.bat contains the next command to call Ring Extensions Generator ring ..codegenparsec.ring ringbeep.cf ringbeep.c Then we build the extension using : buildvc.bat The file buildvc.bat contains the next commands to build the extension using Visual C/C++ cls call ../../src/locatevc.bat cl /c /DEBUG ringbeep.c -I"....include" link /DEBUG ringbeep.obj ....libring.lib kernel32.lib /DLL /OUT:ringbeep.dll ^ 927
  • 10. Ring Documentation, Release 1.9 /SUBSYSTEM:CONSOLE,"5.01" del ringbeep.obj 83.3 Testing the extension Then we test the function using ring test.ring The file test.ring contains loadlib("ringbeep.dll") for f = 750 to 1000 step 50 beep(f,300) next 83.3. Testing the extension 928