diff --git a/mozilla/xpinstall/wizard/unix/src2/Makefile.in b/mozilla/xpinstall/wizard/unix/src2/Makefile.in index 08f2b360c54..b42b2ca750c 100644 --- a/mozilla/xpinstall/wizard/unix/src2/Makefile.in +++ b/mozilla/xpinstall/wizard/unix/src2/Makefile.in @@ -40,8 +40,15 @@ CPPSRCS = \ nsSetupTypeDlg.cpp \ nsComponentsDlg.cpp \ nsInstallDlg.cpp \ + nsXIContext.cpp \ nsXInstaller.cpp \ nsINIParser.cpp \ $(NULL) +LIBS = \ + $(TK_LIBS) \ + $(NULL) + include $(topsrcdir)/config/rules.mk + +CXXFLAGS += $(MOZ_TOOLKIT_REGISTRY_CFLAGS) diff --git a/mozilla/xpinstall/wizard/unix/src2/XIDefines.h b/mozilla/xpinstall/wizard/unix/src2/XIDefines.h new file mode 100644 index 00000000000..1af4f63f3a0 --- /dev/null +++ b/mozilla/xpinstall/wizard/unix/src2/XIDefines.h @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code, + * released March 31, 1998. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Samir Gehani + */ + +#ifndef _XIDEFINES_H_ +#define _XIDEFINES_H_ + +#include "XIErrors.h" + +/*--------------------------------------------------------------------* + * Limits + *--------------------------------------------------------------------*/ +#define MAX_COMPONENTS 64 +#define MAX_SETUP_TYPES 32 + + +/*--------------------------------------------------------------------* + * Widget Dims + *--------------------------------------------------------------------*/ +#define XI_WIN_HEIGHT 320 +#define XI_WIN_WIDTH 550 + + +/*--------------------------------------------------------------------* + * Macros + *--------------------------------------------------------------------*/ +#define XI_IF_DELETE(_object) \ +do { \ + if (_object) \ + delete _object; \ +} while(0); + +#define XI_IF_FREE(_ptr) \ +do { \ + if (_ptr) \ + free(_ptr); \ +} while(0); + +#define XI_ERR_BAIL(_function) \ +do { \ + err = _function; \ + if (err != OK) \ + { \ + ErrorHandler(err); \ + goto BAIL; \ + } \ +} while (0); + +#define XI_ERR_BAIL_EXCEPT(_function, _errexpected) \ +do { \ + err = _function; \ + if (err != OK && err != _errexpected) \ + { \ + ErrorHandler(err); \ + goto BAIL; \ + } \ +} while(0); + +#define XI_VERIFY(_ptr) \ +do { \ + if (!_ptr) \ + return ErrorHandler(E_INVALID_PTR); \ +} while (0); + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef NULL +#define NULL 0 +#endif + +#endif /* _XIDEFINES_H_ */ diff --git a/mozilla/xpinstall/wizard/unix/src2/XIErrors.h b/mozilla/xpinstall/wizard/unix/src2/XIErrors.h index 802cff05365..896c2c67b73 100644 --- a/mozilla/xpinstall/wizard/unix/src2/XIErrors.h +++ b/mozilla/xpinstall/wizard/unix/src2/XIErrors.h @@ -25,6 +25,8 @@ #ifndef _XI_ERRORS_H_ #define _XI_ERRORS_H_ +#include + /*------------------------------------------------------------------* * X Installer Errors *------------------------------------------------------------------*/ @@ -33,19 +35,34 @@ OK = 0, E_MEM = -601, /* out of memory */ E_PARAM = -602, /* invalid param */ - E_NO_MEMBER = -603 /* invalid member variable */ + E_NO_MEMBER = -603, /* invalid member variable */ + E_INVALID_PTR = -604 /* invalid pointer */ }; -#ifndef TRUE -#define TRUE 1 -#endif +#define FATAL_ERR_THRESHOLD -500 /* errs below this cause app quit */ +#define GENERAL_ERR_THRESHOLD -1 /* errs below this cause dlg to come up*/ -#ifndef FALSE -#define FALSE 0 -#endif +/*------------------------------------------------------------------* + * Default Error Handler + *------------------------------------------------------------------*/ +static int ErrorHandler(int aErr) +{ + // XXX 1. fix this to get a string associated with the error code + // XXX from a resourced string bundle + // XXX + // XXX 2. fix this to throw up a dialog rather than writing to stdout -#ifndef NULL -#define NULL 0 -#endif + if (aErr < FATAL_ERR_THRESHOLD) + { + printf("Fatal error[%d]: Doom and darkness has struck!\n", aErr); + exit(aErr); + } + else if (aErr < GENERAL_ERR_THRESHOLD) + printf("Error[%d]: Regular error so moving right along.\n", aErr); + else + printf("Warning[%d]: We spit crap to stdout cos we can!\n", aErr); + + return aErr; +} #endif /* _XI_ERRORS_H_ */ diff --git a/mozilla/xpinstall/wizard/unix/src2/logo-star.xpm b/mozilla/xpinstall/wizard/unix/src2/logo-star.xpm new file mode 100644 index 00000000000..d1b8127af39 --- /dev/null +++ b/mozilla/xpinstall/wizard/unix/src2/logo-star.xpm @@ -0,0 +1,323 @@ +/* XPM */ +static char * logo_star_xpm[] = { +"98 100 220 2", +" c None", +". c #000000", +"+ c #8A5E04", +"@ c #0A0604", +"# c #DE9604", +"$ c #2A1A04", +"% c #422E04", +"& c #EEA204", +"* c #6E4A04", +"= c #926204", +"- c #AE7604", +"; c #CE8E04", +"> c #F2A204", +", c #E69A04", +"' c #362204", +") c #3A2604", +"! c #825A04", +"~ c #BE8204", +"{ c #C28204", +"] c #221604", +"^ c #664604", +"/ c #4A3204", +"( c #120A04", +"_ c #EA9E04", +": c #5A3A04", +"< c #1A1204", +"[ c #966604", +"} c #E29A04", +"| c #A26E04", +"1 c #4E3604", +"2 c #DA9204", +"3 c #060204", +"4 c #4E3204", +"5 c #2A1E04", +"6 c #D28E04", +"7 c #8E5E04", +"8 c #7A5204", +"9 c #2E2204", +"0 c #020204", +"a c #AA7604", +"b c #B67A04", +"c c #0E0A04", +"d c #A67204", +"e c #322204", +"f c #3E2A04", +"g c #5A3E04", +"h c #5E3E04", +"i c #9A6604", +"j c #C68604", +"k c #5E4204", +"l c #E69E04", +"m c #160E04", +"n c #764E04", +"o c #563A04", +"p c #2E1E04", +"q c #9A6A04", +"r c #CA8A04", +"s c #865A04", +"t c #D69204", +"u c #462E04", +"v c #0A0204", +"w c #624204", +"x c #DA9604", +"y c #AA7204", +"z c #CE8A04", +"A c #765204", +"B c #523604", +"C c #EAA204", +"D c #120204", +"E c #9E6A04", +"F c #7E1204", +"G c #420A04", +"H c #BA7E04", +"I c #BE1E04", +"J c #060604", +"K c #1E1204", +"L c #160204", +"M c #F22604", +"N c #C61E04", +"O c #261A04", +"P c #660E04", +"Q c #FE2604", +"R c #F62604", +"S c #1A0204", +"T c #7E5604", +"U c #AE1A04", +"V c #560E04", +"W c #0E0204", +"X c #921604", +"Y c #4E0E04", +"Z c #E62204", +"` c #9E1A04", +" . c #FE2A04", +".. c #FA2604", +"+. c #260604", +"@. c #E22204", +"#. c #3E0A04", +"$. c #A61A04", +"%. c #362604", +"&. c #821604", +"*. c #724E04", +"=. c #221A04", +"-. c #D22204", +";. c #320604", +">. c #220604", +",. c #7A1204", +"'. c #761204", +"). c #B21A04", +"!. c #B61E04", +"~. c #460A04", +"{. c #661204", +"]. c #8A1604", +"^. c #664204", +"/. c #120E04", +"(. c #CA1E04", +"_. c #161204", +":. c #EE2604", +"<. c #4E0A04", +"[. c #8E6204", +"}. c #9A1A04", +"|. c #AA1A04", +"1. c #422A04", +"2. c #3A0A04", +"3. c #2A0604", +"4. c #7E1604", +"5. c #1E1604", +"6. c #523A04", +"7. c #6E1204", +"8. c #B27A04", +"9. c #CA8604", +"0. c #620E04", +"a. c #A21A04", +"b. c #C28604", +"c. c #DE2204", +"d. c #5E0E04", +"e. c #360A04", +"f. c #A66E04", +"g. c #2E0604", +"h. c #B67E04", +"i. c #6E4E04", +"j. c #721204", +"k. c #6A4604", +"l. c #D62204", +"m. c #861604", +"n. c #9A1604", +"o. c #E62604", +"p. c #CE2204", +"q. c #520E04", +"r. c #9E6E04", +"s. c #7A5604", +"t. c #4A0A04", +"u. c #BA1E04", +"v. c #5A0E04", +"w. c #8E1604", +"x. c #B21E04", +"y. c #825604", +"z. c #DA2204", +"A. c #3A2A04", +"B. c #0E0E0C", +"C. c #FEFEFC", +"D. c #222224", +"E. c #961604", +"F. c #1A0604", +"G. c #C21E04", +"H. c #6A1204", +"I. c #EA2604", +"J. c #1E0604", +"K. c #D68E04", +"L. c #0A0A04", +"M. c #6A4A04", +"N. c #0A0A0C", +"O. c #1E1E1C", +"P. c #320A04", +"Q. c #565654", +"R. c #6E6E6C", +"S. c #4A4A4C", +"T. c #262624", +"U. c #868684", +"V. c #3A3A3C", +"W. c #5A5A5C", +"X. c #363634", +"Y. c #6A6A6C", +"Z. c #828284", +"`. c #7A7A7C", +" + c #2A2A2C", +".+ c #463204", +"++ c #FE3E04", +"@+ c #F66604", +"#+ c #FA5A04", +"$+ c #FA4604", +"%+ c #FA4E04", +"&+ c #F28604", +"*+ c #F67E04", +"=+ c #F67604", +"-+ c #FE2E04", +";+ c #FE3204", +">+ c #F28204", +",+ c #FE3A04", +"'+ c #F67A04", +")+ c #F68204", +"!+ c #FA5E04", +"~+ c #FA5604", +"{+ c #F66A04", +"]+ c #FA5204", +"^+ c #F67204", +"/+ c #FA4A04", +"(+ c #F66E04", +"_+ c #F29204", +":+ c #F66204", +"<+ c #F29E04", +"[+ c #FE3604", +"}+ c #F29604", +"|+ c #F28E04", +"1+ c #F29A04", +"2+ c #FE4204", +"3+ c #F28A04", +"4+ c #DE9A04", +"5+ c #B27604", +"6+ c #865E04", +"7+ c #926604", +" # ", +" & ", +" ' & ) ", +" ~ > { ", +" & & & ", +" ( > > & ", +" [ & & & : ", +" & > ~ > 2 ", +" & & @ & > ", +" * > } 0 & > c ", +" > & g 0 6 & + ", +" > & 0 0 k & l ", +" o & & 0 0 0 > & ", +" # & ! 0 0 0 & & ] ", +" & & 0 0 0 0 b & y ", +" $ & > 0 0 0 0 f & & ", +" ~ & E 0 0 G 0 0 & & ", +" > > K 0 L N 0 0 _ & B ", +" ( & & 0 0 U Q 0 0 [ & r ", +" [ > j 0 0 Q Q 0 0 m & & ", +" > & f 0 0 Q Q P 0 0 > & ", +" > & 0 0 &.Q .R 0 0 # & *. ", +" * & } 0 0 Q Q Q Q 0 0 A & # ", +" > & ^ 0 0 Q . . .3 0 3 & > ", +" & & 0 0 {.Q Q Q Q ].0 0 & > /. ", +" u & & 0 0 :. . . . .Q 0 0 r > [ ", +" x & = 0 0 Q Q Q Q .Q 0 0 1.& & ", +" & & 0 0 2. . . . .Q Q 3.0 0 & > ", +" 5.& > 0 0 (.Q Q Q .Q .I 0 0 > & %. ", +" { & H 0 0 . . . .Q Q .Q 0 0 y & 8. ", +" & > < 0 L Q Q Q .Q .Q Q 0 0 O & & ", +" & & 0 0 a. . . .Q Q .Q Q <.0 0 & & ", +" q > t 0 0 .Q Q .Q .Q Q Q c.0 0 _ > h ", +" & & f 0 0 . . .Q Q .Q Q Q Q 0 0 + > 6 ", +" > > 0 0 ,.Q Q .Q .Q Q Q .Q 0 0 ( > > ", +" i.& & 0 0 Q . .Q Q .Q Q Q Q Q j.0 0 > & J ", +" _ > ^.0 0 Q Q ...Y 0 0 0 D ].>.0 0 0 2 & T ", +" & & 3 0 V . .Q 3 0 0 0 0 0 0 0 0 0 0 g & , ", +"/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / 8 > > 0 0 :.Q .G 0 ].:.:.Q R P 0 0 3 0 0 & & / / / / / / / / / / / / / / / / / / / 4 / / / / / / / / / / / / / / / / / / ", +" 6 > & > > > & > > > & > > > & > & & & & & & & & & & & & & & & & & & & & & & 7 0 0 Q .Q 0 0 0 0 0 0 G Q Q Q d.0 0 > & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & @ ", +" * > & > > > & > > > & > > > & & & & > & & & > & & & > & & & > > & & > > > c 0 3.Q .Q 0 0 0 0 n.d.0 0 3 ].M 0 0 { & & & & & & & & & & & & & & & & & & & > & & & & & & & & & & & & & & & & z ", +" < & & & w 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 p. .Q ].0 0 0 0 0 F Q 0 0 0 3.0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 _ & & y. ", +" # > > ~ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Q .v.0 0 ~.0 0 C.0 Q 0 :.Q ..W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 O & & & e ", +" q & & _ 0 0 0 0 Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q |.0 0 0 E.d.C.0 0 l. .t.Q c.0 0.Q Q Q 0 $.Q Q Q Q Z 0 0 0 0 0 0 0 3 Q Q Q Q Q Q Q Q Q P 0 0 0 ! > & & J ", +" e & > > p 0 0 0 (.Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q .Q Q Q Q Q H.0 0 0 ;. .n.0 L ].:.0 I.Q Q ).2.0 0 j.Q ).Q Q Q Q Q .v.0 0 0 0 0 0 0 0 Q Q Q Q Q Q Q D 0 0 0 x > & j ", +" _ & > [ 0 0 0 7.Q Q Q .Q Q Q .Q Q Q .Q Q Q .Q Q Q I W 0 0 0 <.Q Q Q Q Z 2.0 0 Z Q o.&.Q W 0 0 0 m.Q Q Q Q Q Q Q R 0 0 0 0 $.P 0 0 0 Q Q Q Q ..3 0 0 0 & & > ! ", +" H > & } 0 0 0 F.Q .Q .Q .Q .Q .Q .Q . . .-.0 0 0 3 ).Q Q Q .Q Q Q Q Q Q Q g.L Q :.3 ~.<.<.<.D ..Q Q Q . . .0 0 0 0 0 <.Q Q N +.Q Q N 0 0 0 p > & > p ", +" g & & > m 0 0 0 .Q Q . .Q Q . .Q Q . .Q P 0 0 #.Q Q Q Q Q Q Q Q Q Q Q Q Q v 0 Q Q Q Q . . . . .Q d.Q Q Q .Q 0 0 0 0 0 0 S Q Q .Q <.0 0 0 + > > _ ", +" L.& > & k.0 0 0 |. .Q . . .Q . . .Q . .0 0 F Q Q Q Q Q Q .Q Q Q Q Q c.0 0 R .R Q Q Q Q Q Q Q Q 0 .. . . . .0 '.0 0 0 0 0 0 .Q W 0 0 0 z & > ~ ", +" } & & r 0 0 0 ~. .Q . . .Q . . .Q Q 0 0 0 Q Q Q Q Q Q Q Q Q Q Q 7.0 0 0 Q Q E.Q . . . . .Q Q 3 n.Q .Q .'.c.L 0 0 ;.0 0 0 0 0 0 3 & & & * ", +" [ & > & @ 0 0 v Q .Q .Q .Q Q Q Q 0 0 0 ,.Q Q Q Q .Q Q Q ..3 0 0 0 0 ].#.7.Q Q Q Q Q Q Q Q 0 d. . . .Q .Q L 0 0 0 M V 0 0 0 f & & & 5. ", +" ' & & > % 0 0 0 l. . . . . .Q Q Q 0 F ;.Q Q Q Q Q Q Q Q m.0 0 0 0 0 0 0 0 X . . . . .Q Q n.0 0. .Q .Q .Q 0 0 0 0 0 0 0 0 E > > l ", +" 3 & & > d 0 0 0 H.Q .Q Q Q Q -.0 c.U Q Q Q Q .Q @.0 0 0 0 0 0 0 0 0 0 .Q Q Q Q Q Q ..0 0 q. . .Q .Q .0 0 0 0 0 0 0 2 & & { ", +" H & & l 0 0 0 L . .Q Q .F 0 !.Q Q Q Q Q w.0 0 0 O.D.0 0 0 (.0 0 g.Q . . . .Q Q 0 0 0 D Q .Q .Q V 0 0 0 0 0 @ & > > * ", +" g & & > m 0 0 0 Z Q Q Q Q 0 ~.n.3.0 0 0 0 C.0 C.0 0 0 0 @.7.0 2.Q Q Q Q Q Q ..P ,.R 3 ;. .Q .Q Q 0 0 0 0 0 / & & & m ", +" L.> & & M.0 0 0 E. .Q .S 0 0 0 T.U.0 C.0 0 0 0 0 u. .p.,.@.Q Q . . . .Q ~. . .(.0 Q .Q .Q +.0 0 0 0 E & & } ", +" t > > 9.0 0 0 +.Q Q @.0 Z.0 +0 0 0 0 W X Q .o.Q Q Q Q Q Q Q Q Q (.0 Q .Q W Q .Q .Q u.0 0 0 0 # & & 8. ", +" T & > & 3 0 0 0 R .0 0 0 0 0 v @. .Q Q .~.0 0 V ).Q Q . .R 3.0 }. . .$.Q Q .Q .Z 0 0 0 /.& & & o ", +" 5.& > > % 0 0 0 (.(.W G 0 0 4.Q Q ).F.0 0 0 0 0 0 0 0 J.0 0 0 >.Q .Q Q Q .Q .}.0 0 0 u & & & c ", +" l & & y 0 0 0 0.Q Q o.0 0 0 0 0 0 0 #.E.G.2.0 0 0 0 0 0 ,.Q . .Q Q Q .Q G 0 0 0 y & & C ", +" 8.> & _ 0 0 0 .Q Q Q w.g.v.). .Q Q Q Q Q ..L 0 0 0 0 c.Q .Q Q Q .Q .0 0 0 } > & - ", +" 1 & > 0 0 V Q . .Q Q Q Q Q .Q . .Q Q .Q u.0 0 0 0 X .Q Q Q .Q Q +.0 0 & & .+ ", +" 5 > & 0 0 o.Q Q Q .Q .Q .Q Q Q Q Q Q Q Q Q E.0 ;.).3 Q Q Q .Q .Q |.0 0 > & O ", +" ~ > - 0 0 Q . .Q Q Q Q Q Q Q . .Q Q .Q .Q Q 0 0 ..Q Z U . .Q Q .Q 0 0 8.& - ", +" & & ] 0 D $+> -+ .> > _+Q Q > . .Q Q Q . . .$+d.0 Z :.D >. .Q .Q Q .0 0 $ & & ", +" > > 0 0 }.Q .> > }+& 2+++Q > [+> .> > & ;+-+ .Z 0 ;.0 0 Q .Q Q .Q Q ~.0 0 & & ", +" A & # 0 0 Q Q -+Q > 1+& Q Q Q > & }+Q > > & . . .Q 0 0 0 R .]. .Q Q . .l.0 0 & & 4 ", +" & & w 0 0 .Q -+Q > }+& <+ .Q > C }+..> > & .-+ .Q 0 0 n. .D R Q .Q Q .Q 0 0 7 & z ", +" & > 0 0 v. .Q .Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q . .Q t.0 0 0 ;. .Q Q . . .Q 0 0 m & & ", +" p > & 0 0 Z .Q Q Q . .Q Q .Q Q Q .Q .Q ..._+ . ...0 0 0 Q Q H.Q Q .Q Q P 0 0 > & ", +" 8.> y 0 0 .Q .Q Q Q Q Q .Q Q Q Q Q Q Q :.d.Q Q Q Q ].0 0 R ..v d. . . .Q .@.0 0 _ & A ", +" & & =.0 W . .Q Q . .Q Q .Q Q Q .Q .w.0 0 W Q .Q S 0 ,.V 0 0 Q Q .Q Q Q Q 0 0 *.& } ", +" 3 & & 0 0 ` Q Q Q Q Q Q Q .Q Q Q Q Q Q ;.0 0 0 0 0 Z Q 0 0 0 0 0 x. . .p.Q .Q Q W 0 0 & & ", +" 8 > C 0 0 .Q .Q . .Q Q .Q Q Q .R 3 0 0 0 8 0 0 0 E.0 0 0 0 3. .R 3 Q Q Q Q Q w.0 0 & > /. ", +" l & * 0 0 .Q .Q Q Q Q .Q Q Q Q I 0 0 0 O & & r 0 0 0 0 0 0 0 >.4.0 U Q .Q Q .R 0 0 j & s ", +" & > 0 0 q.Q .Q . .Q Q .Q Q Q v.0 0 0 y.& > & & > 3 0 0 0 0 0 0 0 0 .Q Q Q Q Q Q 0 0 B & & ", +" e & > 0 0 Z . . .Q Q Q .Q Q Q v 0 0 0 z & & 6 ] & & & % 0 0 0 0 0 0 ..Q .Q Q .Q .>.0 0 > > ", +" H & 8.0 0 Q .Q Q .Q Q .Q :.0 0 0 3 & & & 8 , > & y 0 0 0 0 X H.n.Q Q Q Q ;.Q ).0 0 & & 9 ", +" > > $ 0 S .Q . .Q Q .Q n.0 0 0 u & & & 5. b & & l 0 0 0 0 0 Q Q Q .Q u.p.Q 0 0 f.& y ", +" & > 0 0 $. .Q Q Q Q Q .e.0 0 0 5+> > , o & > & < 0 0 0 M Q Q Q Q Q 0 .0 0 p & & ", +" A > 4+0 0 Q Q .Q .Q .0 0 0 0 _ & & y B.> & & * 0 0 0 n. .Q Q Q 0 2.<.0 0 & & ", +" _ & w 0 0 .Q Q . .(.0 0 0 O > & > / x & & j 0 0 0 g.Q Q Q >.0 (.0 0 & & B ", +" & > 0 0 v.Q Q Q .d.0 0 0 8 > & & @ + > & _ 0 0 0 0 ..Q 0.0 t.0 0 [ & r ", +" 5 & & 0 0 Z Q . .W 0 0 0 K.& & 4+ O & & & ' 0 0 0 N 0.0 0 0 0 c & & ", +" 8.& - 0 0 Q Q Z 0 0 0 0 & & > ! l & & | 0 0 0 S j.0 0 0 0 & & 3 ", +" > & ] 0 D .a.0 0 0 1.& & & $ - > & l 0 0 0 >.Q j.0 0 , & *. ", +" & & 0 0 n.2.0 0 0 f.> & _ 4 & > & K 0 0 0 :.0 0 *.& _ ", +" 8 & l 0 0 0 0 0 0 , & > 8. /.> & & n 0 0 0 0 0 0 & > ", +" _ > h 0 0 0 0 5.> > & B x & & j 0 0 0 0 0 & > @ ", +" & > 0 0 0 0 * > & & L. s & & _ @ 0 0 0 ; & = ", +" e > & 0 0 0 z & > 4+ e & > & p 0 0 .+& & ", +" H & d 0 0 & & & [. > & & [ 0 0 > & ", +" > & K ) & > & 9 H > > } 0 & & 5 ", +" > & E & > C 3 B & > & K.> 8. ", +" i.& & > & H @ & & & & > ", +" l & & & g x > & & ", +" > & > @ 7 > & / ", +" %.& 4+ 9 & K. ", +" ~ 7+ 3 & ", +" ' "}; diff --git a/mozilla/xpinstall/wizard/unix/src2/nsComponent.h b/mozilla/xpinstall/wizard/unix/src2/nsComponent.h index 194cc7ee9fd..7c299ac7493 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsComponent.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsComponent.h @@ -25,7 +25,7 @@ #ifndef _NS_COMPONENT_H_ #define _NS_COMPONENT_H_ -#include "XILimits.h" +#include "XIDefines.h" #include "XIErrors.h" #include diff --git a/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.cpp b/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.cpp index 05e207b1db2..809a59fe54f 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.cpp @@ -51,6 +51,17 @@ nsComponentsDlg::Next() return OK; } +int +nsComponentsDlg::Parse(nsINIParser *aParser) +{ + int err = OK; + + return err; + +BAIL: + return err; +} + int nsComponentsDlg::SetMsg0(char *aMsg) { diff --git a/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.h index ed1d0e8c101..32cc5cb15c2 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsComponentsDlg.h @@ -42,6 +42,8 @@ public: int Back(); int Next(); + int Parse(nsINIParser* aParser); + /*--------------------------------------------------------------------* * INI Properties *--------------------------------------------------------------------*/ diff --git a/mozilla/xpinstall/wizard/unix/src2/nsINIParser.h b/mozilla/xpinstall/wizard/unix/src2/nsINIParser.h index 8447f3e1284..7dab8271113 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsINIParser.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsINIParser.h @@ -90,7 +90,6 @@ public: */ int GetError(); - /*--------------------------------------------------------------------* * Errors *--------------------------------------------------------------------*/ diff --git a/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.cpp b/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.cpp index ceada90aa6f..3f4ba91b841 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.cpp @@ -47,6 +47,17 @@ nsInstallDlg::Next() return OK; } +int +nsInstallDlg::Parse(nsINIParser *aParser) +{ + int err = OK; + + return err; + +BAIL: + return err; +} + int nsInstallDlg::SetMsg0(char *aMsg) { diff --git a/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.h index 4c15e0cc71a..bced1b243f4 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsInstallDlg.h @@ -40,6 +40,8 @@ public: int Back(); int Next(); + int Parse(nsINIParser* aParser); + /*------------------------------------------------------------------* * INI Properties *------------------------------------------------------------------*/ diff --git a/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.cpp b/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.cpp index 998286964ba..7f3ef9aad49 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.cpp @@ -53,6 +53,17 @@ nsLicenseDlg::Next() return OK; } +int +nsLicenseDlg::Parse(nsINIParser *aParser) +{ + int err = OK; + + return err; + +BAIL: + return err; +} + int nsLicenseDlg::SetLicenseFile(char *aLicenseFile) { diff --git a/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.h index 9927f63013c..955351a2084 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsLicenseDlg.h @@ -39,6 +39,8 @@ public: *-------------------------------------------------------------------*/ int Back(); int Next(); + + int Parse(nsINIParser *aParser); /*-------------------------------------------------------------------* * INI Properties diff --git a/mozilla/xpinstall/wizard/unix/src2/nsSetupType.h b/mozilla/xpinstall/wizard/unix/src2/nsSetupType.h index bfe578b35aa..c157931cc5c 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsSetupType.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsSetupType.h @@ -25,7 +25,7 @@ #ifndef _NS_SETUPTYPE_H_ #define _NS_SETUPTYPE_H_ -#include "XILimits.h" +#include "XIDefines.h" #include "XIErrors.h" #include "nsComponent.h" diff --git a/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.cpp b/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.cpp index db7626ab676..d1349f210d4 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.cpp @@ -27,6 +27,17 @@ nsSetupTypeDlg::Next() return OK; } +int +nsSetupTypeDlg::Parse(nsINIParser *aParser) +{ + int err = OK; + + return err; + +BAIL: + return err; +} + int nsSetupTypeDlg::SetMsg0(char *aMsg) { diff --git a/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.h index 980f58f9693..32c116fbb88 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsSetupTypeDlg.h @@ -40,6 +40,8 @@ public: int Back(); int Next(); + int Parse(nsINIParser *aParser); + /*---------------------------------------------------------------------* * INI Properties *---------------------------------------------------------------------*/ diff --git a/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.cpp b/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.cpp index 83c133e5cfc..1e5e7f5eee8 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.cpp @@ -56,6 +56,17 @@ nsWelcomeDlg::Next() return OK; } +int +nsWelcomeDlg::Parse(nsINIParser *aParser) +{ + int err = OK; + + return err; + +BAIL: + return err; +} + int nsWelcomeDlg::SetReadmeFile(char *aReadmeFile) { diff --git a/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.h index 3369f6ce6db..8631c5af8a1 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsWelcomeDlg.h @@ -39,6 +39,8 @@ public: *--------------------------------------------------------------------*/ int Back(); int Next(); + + int Parse(nsINIParser *aParser); /*--------------------------------------------------------------------* * INI Properties diff --git a/mozilla/xpinstall/wizard/unix/src2/XILimits.h b/mozilla/xpinstall/wizard/unix/src2/nsXIContext.cpp similarity index 63% rename from mozilla/xpinstall/wizard/unix/src2/XILimits.h rename to mozilla/xpinstall/wizard/unix/src2/nsXIContext.cpp index 992f4a5a970..74db8a69dba 100644 --- a/mozilla/xpinstall/wizard/unix/src2/XILimits.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsXIContext.cpp @@ -22,11 +22,36 @@ * Samir Gehani */ -#ifndef _XILIMITS_H_ -#define _XILIMITS_H_ +#include "nsXIContext.h" -#define MAX_COMPONENTS 64 -#define MAX_SETUP_TYPES 32 +nsXIContext::nsXIContext() +{ + me = NULL; + ldlg = NULL; + wdlg = NULL; + sdlg = NULL; + cdlg = NULL; + idlg = NULL; -#endif /* _XILIMITS_H_ */ + window = NULL; + back = NULL; + next = NULL; + logo = NULL; +} + +nsXIContext::~nsXIContext() +{ + // NOTE: don't try to delete "me" cause I control thee + + XI_IF_DELETE(ldlg); + XI_IF_DELETE(wdlg); + XI_IF_DELETE(sdlg); + XI_IF_DELETE(cdlg); + XI_IF_DELETE(idlg); + + XI_IF_FREE(window); + XI_IF_FREE(back); + XI_IF_FREE(next); + XI_IF_FREE(logo); +} diff --git a/mozilla/xpinstall/wizard/unix/src2/nsXIContext.h b/mozilla/xpinstall/wizard/unix/src2/nsXIContext.h new file mode 100644 index 00000000000..ade9f7205b6 --- /dev/null +++ b/mozilla/xpinstall/wizard/unix/src2/nsXIContext.h @@ -0,0 +1,67 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* + * The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code, + * released March 31, 1998. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * Samir Gehani + */ + +#ifndef _NS_XICONTEXT_H_ +#define _NS_XICONTEXT_H_ + +#include + +#include "nsLicenseDlg.h" +#include "nsWelcomeDlg.h" +#include "nsSetupTypeDlg.h" +#include "nsComponentsDlg.h" +#include "nsInstallDlg.h" + +class nsXInstaller; + +class nsXIContext +{ +public: + nsXIContext(); + ~nsXIContext(); + + nsXInstaller *me; + +/*-------------------------------------------------------------------* + * Dialog Contexts + *-------------------------------------------------------------------*/ + nsLicenseDlg *ldlg; + nsWelcomeDlg *wdlg; + nsSetupTypeDlg *sdlg; + nsComponentsDlg *cdlg; + nsInstallDlg *idlg; + +/*-------------------------------------------------------------------* + * Global Widgets + *-------------------------------------------------------------------*/ + GtkWidget *window; /* unique canvas for dialogs */ + GtkWidget *back; /* back button */ + GtkWidget *next; /* next button */ + GtkWidget *logo; /* branding icon: an xpm image */ + GtkWidget *mainbox; /* vbox holding all except logo */ + GtkWidget *canvas; /* vbox for mutable dlgs (no nav btns) */ + +}; + +#endif /* _NS_XICONTEXT_H_ */ diff --git a/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.cpp b/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.cpp index 002b53c8ccb..f8d59e03be4 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.cpp +++ b/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.cpp @@ -24,9 +24,9 @@ #include "nsXInstaller.h" -#include "nsINIParser.h" +#include "logo-star.xpm" -#include "XIErrors.h" +nsXIContext *gCtx = NULL; nsXInstaller::nsXInstaller() { @@ -40,11 +40,11 @@ int nsXInstaller::ParseConfig() { int err = OK; - nsINIParser *parser = new nsINIParser( CONFIG_INI ); - char *bufalloc = NULL; - char buf[512]; - int bufsize = 0; + nsINIParser *parser = NULL; + XI_ERR_BAIL(InitContext()); + + parser = new nsINIParser( CONFIG_INI ); if (!parser) return E_MEM; @@ -52,43 +52,170 @@ nsXInstaller::ParseConfig() if (err != nsINIParser::OK) return err; - bufsize = 512; - // err = parser->GetString("section2", "key2", buf, &bufsize); - err = parser->GetStringAlloc("section2", "key2", &bufalloc, &bufsize); - if ( (err == nsINIParser::OK) && (bufalloc) && (bufsize > 0) ) - { - DUMP("section2 key2 = "); - DUMP(bufalloc); - } + XI_ERR_BAIL(gCtx->ldlg->Parse(parser)); + XI_ERR_BAIL(gCtx->wdlg->Parse(parser)); + XI_ERR_BAIL(gCtx->sdlg->Parse(parser)); + XI_ERR_BAIL(gCtx->cdlg->Parse(parser)); + XI_ERR_BAIL(gCtx->idlg->Parse(parser)); - return err; -} + return OK; -int -nsXInstaller::Run() -{ - int err = OK; - - if ( (err = StartWizard()) != OK) - goto au_revoir; - - if ( (err = Download()) != OK) - goto au_revoir; - - if ( (err = Extract()) != OK) - goto au_revoir; - - if ( (err = Install()) != OK) - goto au_revoir; - -au_revoir: +BAIL: return err; } int -nsXInstaller::StartWizard() +nsXInstaller::InitContext() { + int err = OK; + + gCtx = new nsXIContext(); + if (!gCtx) + return E_MEM; + + gCtx->me = this; + + gCtx->ldlg = new nsLicenseDlg(); + gCtx->wdlg = new nsWelcomeDlg(); + gCtx->sdlg = new nsSetupTypeDlg(); + gCtx->cdlg = new nsComponentsDlg(); + gCtx->idlg = new nsInstallDlg(); + if (!gCtx->ldlg || !gCtx->wdlg || !gCtx->sdlg || + !gCtx->cdlg || !gCtx->idlg ) + { + err = E_MEM; + goto BAIL; + } + return OK; + +BAIL: + XI_IF_DELETE(gCtx->ldlg); + XI_IF_DELETE(gCtx->wdlg); + XI_IF_DELETE(gCtx->sdlg); + XI_IF_DELETE(gCtx->cdlg); + XI_IF_DELETE(gCtx->idlg); + XI_IF_DELETE(gCtx); + + return err; +} + +int +nsXInstaller::RunWizard(int argc, char **argv) +{ + int err = OK; + + XI_VERIFY(gCtx); + + // create the dialog window + gtk_init(&argc, &argv); + gdk_rgb_init(); + + gCtx->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); + XI_VERIFY(gCtx->window); + + gtk_widget_set_usize(gCtx->window, XI_WIN_WIDTH, XI_WIN_HEIGHT); + gtk_container_set_border_width(GTK_CONTAINER(gCtx->window), 5); + gtk_widget_show(gCtx->window); + + // create and display the logo + DrawLogo(); + + // create and register the nav buttons + XI_ERR_BAIL(DrawNavButtons()); + + // populate with license dlg + + // pop over to main event loop + gtk_main(); + + return OK; + +BAIL: + return err; +} + +int +nsXInstaller::DrawLogo() +{ + int err = OK; + + GdkPixmap *pixmap; + GdkBitmap *mask; + GtkStyle *style; + GtkWidget *mainhbox; + GtkWidget *logovbox; + GtkWidget *canvasvbox; + + style = gtk_widget_get_style(gCtx->window); + pixmap = gdk_pixmap_create_from_xpm_d(gCtx->window->window, &mask, + &style->bg[GTK_STATE_NORMAL], + (gchar **)logo_star_xpm); + + gCtx->logo = gtk_pixmap_new(pixmap, mask); + XI_VERIFY(gCtx->logo); + gtk_widget_show(gCtx->logo); + + mainhbox = gtk_hbox_new(FALSE, 10); + logovbox = gtk_vbox_new(FALSE, 10); + canvasvbox = gtk_vbox_new(FALSE, 10); + + gtk_box_pack_start(GTK_BOX(logovbox), gCtx->logo, FALSE, FALSE, 0); + gtk_widget_show(logovbox); + gtk_widget_show(canvasvbox); + + gtk_box_pack_start(GTK_BOX(mainhbox), logovbox, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(mainhbox), canvasvbox, FALSE, FALSE, 0); + gtk_widget_show(mainhbox); + + gtk_container_add(GTK_CONTAINER(gCtx->window), mainhbox); + + gCtx->mainbox = canvasvbox; /* canvasvbox = canvas - nav btns' box */ + return err; +} + +int +nsXInstaller::DrawNavButtons() +{ + int err = OK; + + GtkWidget *navbtnhbox; + GtkWidget *canvasvbox; + GtkWidget *navbtntable; + + XI_VERIFY(gCtx->mainbox); + + gCtx->next = gtk_button_new_with_label("Accept"); // XXX from license dlg + gCtx->back = gtk_button_new_with_label("Decline"); // XXX parse keys + XI_VERIFY(gCtx->next); + XI_VERIFY(gCtx->back); + gtk_widget_show(gCtx->next); + gtk_widget_show(gCtx->back); + + navbtnhbox = gtk_hbutton_box_new(); + canvasvbox = gtk_vbox_new(FALSE, 10); + gtk_box_pack_start(GTK_BOX(gCtx->mainbox), canvasvbox, TRUE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(gCtx->mainbox), navbtnhbox, FALSE, FALSE, 0); + + // put a table in the nav btn box + navbtntable = gtk_table_new(1, 6, TRUE); + gtk_box_pack_start(GTK_BOX(navbtnhbox), navbtntable, TRUE, TRUE, 0); + + gtk_table_attach(GTK_TABLE(navbtntable), gCtx->back, 5, 6, 0, 1, + GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 5, 5); + gtk_table_attach(GTK_TABLE(navbtntable), gCtx->next, 6, 7, 0, 1, + GTK_FILL | GTK_EXPAND, GTK_FILL | GTK_EXPAND, 5, 5); + + gtk_widget_show(navbtntable); + gtk_widget_show(navbtnhbox); + gtk_widget_show(canvasvbox); + + gtk_widget_show(gCtx->mainbox); + + XI_VERIFY(canvasvbox); + gCtx->canvas = canvasvbox; + + return err; } int @@ -118,9 +245,12 @@ main(int argc, char **argv) if (installer) { if ( (err = installer->ParseConfig()) == OK) - err = installer->Run(); + err = installer->RunWizard(argc, argv); } + else + err = E_MEM; + XI_IF_DELETE(installer); exit(err); } diff --git a/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.h b/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.h index 7f0e06f1758..e4e5e3bf4f2 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsXInstaller.h @@ -25,9 +25,17 @@ #ifndef _NS_XINSTALLER_H_ #define _NS_XINSTALLER_H_ +#include #include +#include "XIDefines.h" #include "XIErrors.h" +#include "nsINIParser.h" +#include "nsLicenseDlg.h" +#include "nsXIContext.h" + +extern nsXIContext *gCtx; + class nsXInstaller { public: @@ -35,13 +43,15 @@ public: ~nsXInstaller(); int ParseConfig(); - int Run(); - -private: - int StartWizard(); + int RunWizard(int argc, char **argv); int Download(); int Extract(); - int Install(); + int Install(); + +private: + int InitContext(); + int DrawLogo(); + int DrawNavButtons(); }; int main(int argc, char **argv); diff --git a/mozilla/xpinstall/wizard/unix/src2/nsXInstallerDlg.h b/mozilla/xpinstall/wizard/unix/src2/nsXInstallerDlg.h index 780587a65d2..9f22be441d1 100644 --- a/mozilla/xpinstall/wizard/unix/src2/nsXInstallerDlg.h +++ b/mozilla/xpinstall/wizard/unix/src2/nsXInstallerDlg.h @@ -28,11 +28,13 @@ #include #include "XIErrors.h" +#include "nsINIParser.h" + /** * nsXInstallerDlg * * The interface for all installer dialogs. Helps maintain - * uniform navigation mechanism and UI widgets. + * uniform navigation mechanism, startup init, and UI widgets. */ class nsXInstallerDlg { @@ -46,6 +48,8 @@ public: virtual int Back() = 0; virtual int Next() = 0; + virtual int Parse(nsINIParser *aParser) = 0; + /*-------------------------------------------------------------------* * INI Properties *-------------------------------------------------------------------*/ @@ -54,8 +58,6 @@ public: int SetTitle(char *aTitle); char *GetTitle(); - // TO DO - enum { SKIP_DLG = 0,