Difference between revisions of "Ringhio Notifications ProgressBar Example"
Jump to navigation
Jump to search
(Created page with "=Introduction= This is a basic example in C of how to use the latest Ringhio Notifications to display a notification bubble displaying an incrementing progress bar. It c...") |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
This is a basic example in C of how to use the latest [[Ringhio Notifications]] to display a notification bubble displaying an incrementing progress bar. | This is a basic example in C of how to use the latest [[Ringhio Notifications]] to display a notification bubble displaying an incrementing progress bar. | ||
+ | |||
It can be reused in many applications where the progress of a file operation can be monitored in the background by the user and does not need to be displayed in focus or inside a window. | It can be reused in many applications where the progress of a file operation can be monitored in the background by the user and does not need to be displayed in focus or inside a window. | ||
− | The source code example requires the latest [[Ringhio Notifications]] and [[ | + | |
+ | The source code example below the progress bar gradually increments whilst the bubble remains open on screen. It requires the latest [[Ringhio Notifications]] and [[ProgressBar Gadget Class]] to be installed. | ||
+ | |||
+ | =Screen Shot= | ||
+ | |||
+ | [[File:ProgressBar_Ringhio_Test.png|center]] | ||
+ | |||
+ | =Source Code= | ||
<pre style="color: black; background:lightgray; font-family:courier; width:100%"> | <pre style="color: black; background:lightgray; font-family:courier; width:100%"> | ||
Line 14: | Line 22: | ||
// Requirements: Ringhio Notifications v53.65 or later, ProgressBar.gadget v53.10 or later | // Requirements: Ringhio Notifications v53.65 or later, ProgressBar.gadget v53.10 or later | ||
// | // | ||
− | // | + | // Authors: G.Boesel and M.Tretene (19/03/2017) |
// | // | ||
// To compile: | // To compile: |
Latest revision as of 20:49, 19 March 2017
Introduction
This is a basic example in C of how to use the latest Ringhio Notifications to display a notification bubble displaying an incrementing progress bar.
It can be reused in many applications where the progress of a file operation can be monitored in the background by the user and does not need to be displayed in focus or inside a window.
The source code example below the progress bar gradually increments whilst the bubble remains open on screen. It requires the latest Ringhio Notifications and ProgressBar Gadget Class to be installed.
Screen Shot
Source Code
// // Description: Basic example source code on how to use new feature of displaying a // incrementing progress bar inside a Ringhio Notification bubble // // Requirements: Ringhio Notifications v53.65 or later, ProgressBar.gadget v53.10 or later // // Authors: G.Boesel and M.Tretene (19/03/2017) // // To compile: // // gcc ProgressBar_Ringhio_Test.c -o ProgressBar_Ringhio_Test -lauto -lamiga // #include <dos/dos.h> #include <stdio.h> #include <proto/dos.h> #include <proto/exec.h> #include <proto/arexx.h> #include <proto/bsdsocket.h> #include <classes/arexx.h> #include <proto/arexx.h> #include <proto/application.h> #ifndef APPNOTIFY_DisplayTime #define APPNOTIFY_DisplayTime ( TAG_USER + 13 ) #endif #ifndef APPNOTIFY_Percentage #define APPNOTIFY_Percentage ( TAG_USER + 14 ) #endif struct ApplicationIFace *IApplication = NULL; struct PrefsObjectsIFace *IPrefsObjects = NULL; uint32 appID = 0 ; void fonctionMessageRinghio(int PERCENT_VALUE) { IApplication->Notify(appID, APPNOTIFY_Percentage, PERCENT_VALUE, TAG_END); } ULONG registerApplication() { appID = IApplication->RegisterApplication("Test_Ringhio", REGAPP_URLIdentifier, "a-eon.com", REGAPP_Description, "Test Ringhio", REGAPP_UniqueApplication, TRUE, REGAPP_AllowsBlanker, TRUE, REGAPP_HasPrefsWindow, FALSE, REGAPP_HasIconifyFeature, FALSE, REGAPP_NoIcon, FALSE, REGAPP_LoadPrefs, FALSE, TAG_DONE) ; return appID; } void unregisterApplication() { IApplication->UnregisterApplication(appID, NULL); } int main(int argc,char **argv) { ApplicationBase = IExec->OpenLibrary("application.library", 52) ; if (ApplicationBase) { IApplication = (struct ApplicationIFace *) IExec->GetInterface(ApplicationBase, "application", 2, NULL); IPrefsObjects = (struct PrefsObjectsIFace *) IExec->GetInterface(ApplicationBase, "prefsobjects", 2, NULL); registerApplication() ; } else { printf("Unable to open ApplicationBase \n"); return 0 ; } if (appID > 0) { // first msg to ringhio to open the progressbar IApplication->Notify(appID, APPNOTIFY_Title, "Test Ringhio", APPNOTIFY_Text, "downloadName", APPNOTIFY_ImageVertAlign, 1, APPNOTIFY_DisplayTime, TRUE, APPNOTIFY_Percentage, 0, TAG_END); IDOS->Delay(50); int i = 0 ; for (i = 0 ; i < 2 ; i++) { int cpt = 0 ; for (cpt = 0 ; cpt < 100 ; cpt++) { // msg to Ringhio to uopdate the progressbar fonctionMessageRinghio(cpt); IDOS->Delay(5) ; } } // last msg to close the msg IApplication->Notify(appID, APPNOTIFY_Update, TRUE, TAG_END); unregisterApplication() ; } if (ApplicationBase) { IExec->DropInterface((struct Interface *)IPrefsObjects); IExec->DropInterface((struct Interface *)IApplication); IExec->CloseLibrary(ApplicationBase); } }