Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=fwsetup-ng.git;a=commitdiff;h=4d0c198926c0fb01a1e537acf14970631513f08a

commit 4d0c198926c0fb01a1e537acf14970631513f08a
Author: James Buren <[email protected]>
Date:   Wed Aug 8 15:46:47 2012 -0500

add ending module

diff --git a/ending.cc b/ending.cc
new file mode 100644
index 0000000..a7e49dc
--- /dev/null
+++ b/ending.cc
@@ -0,0 +1,50 @@
+#include "master.h"
+
+#define ENDING_TEXT \
+"Frugalware has been successfully installed!\n" \
+"\n" \
+"Please click Next to exit the installer.\n"
+
+static enum order ending_run(void)
+{
+       enum order rv = ORDER_NONE;
+       YRichText *text = 
YUI::widgetFactory()->createRichText(master->contents,ENDING_TEXT,true);
+
+       while(rv == ORDER_NONE)
+       {
+               YEvent *event = master->dialog->waitForEvent();
+
+               if(event->eventType() == YEvent::WidgetEvent)
+               {
+                       YWidgetEvent *wevent = (YWidgetEvent*) event;
+
+                       if(wevent->widget() == master->previous && 
wevent->reason() == YEvent::Activated)
+                               rv = ORDER_PREVIOUS;
+                       else if(wevent->widget() == master->next && 
wevent->reason() == YEvent::Activated)
+                               rv = ORDER_NEXT;
+               }
+
+               master->dialog->deleteEvent(event);
+       }
+
+       return rv;
+}
+
+extern struct slave *ending_initialize(void)
+{
+       struct slave *p;
+
+       p = new struct slave;
+
+       memset(p,0,sizeof(struct slave));
+
+       p->next = 0;
+
+       p->previous = 0;
+
+       p->name = new std::string(__FILE__);
+
+       p->run = ending_run;
+
+       return p;
+}
diff --git a/master.cc b/master.cc
index c9df796..b6adac7 100644
--- a/master.cc
+++ b/master.cc
@@ -40,6 +40,10 @@ extern int main(int argc,char **argv)

slaves = beginning_initialize();

+       insque(slaves,0);
+
+       insque(ending_initialize(),slaves);
+
for( slave = slaves ; slave ; )
{
enum order order;
diff --git a/master.h b/master.h
index 94e41bd..33b590b 100644
--- a/master.h
+++ b/master.h
@@ -66,3 +66,4 @@ extern struct master *master;
extern struct slave *slaves;

extern struct slave *beginning_initialize(void);
+extern struct slave *ending_initialize(void);
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to