From: Karsten Ballüder Date: Mon, 7 Jun 1999 09:58:07 +0000 (+0000) Subject: Moved to ../samples/rtfedit. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/25dbfc255b545c8674bf759def784595e8f137a5 Moved to ../samples/rtfedit. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2687 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/user/wxLayout/.cvsignore b/user/wxLayout/.cvsignore deleted file mode 100644 index 4daa84b813..0000000000 --- a/user/wxLayout/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Linux -linux-gnu diff --git a/user/wxLayout/Micon.xpm b/user/wxLayout/Micon.xpm deleted file mode 100644 index 153d3a4a7b..0000000000 --- a/user/wxLayout/Micon.xpm +++ /dev/null @@ -1,309 +0,0 @@ -/* XPM */ -static char *Micon_xpm[] = { -/* width height num_colors chars_per_pixel */ -" 64 48 254 2", -/* colors */ -".. c #040207", -".# c #6482b4", -".a c #2a4471", -".b c #9cc2d4", -".c c #4c627f", -".d c #94918e", -".e c #0c243e", -".f c #4c4a4a", -".g c #3c63a8", -".h c #7ca2ac", -".i c #24447e", -".j c #2c2c2c", -".k c #5482cc", -".l c #d4d0d0", -".m c #99aab7", -".n c #5c74b1", -".o c #2c5287", -".p c #1a2a4d", -".q c #acdefc", -".r c #646362", -".s c #7491d0", -".t c #bcc4bf", -".u c #5273aa", -".v c #b4b1aa", -".w c #3d5583", -".x c #828482", -".y c #8c9490", -".z c #6f7369", -".A c #1c365c", -".B c #041220", -".C c #2c325c", -".D c #94b6e4", -".E c #3e4242", -".F c #648edc", -".G c #d4f2fc", -".H c #cbd3d1", -".I c #3c54a1", -".J c #243244", -".K c #4c69aa", -".L c #7c8ba2", -".M c #4c5d84", -".N c #34497f", -".O c #1c2228", -".P c #6484c5", -".Q c #6a7788", -".R c #9ba09b", -".S c #2c3634", -".T c #acb6b4", -".U c #141517", -".V c #a0c4e8", -".W c #515753", -".X c #5c76cc", -".Y c #1b2f51", -".Z c #4472c4", -".0 c #7c8a88", -".1 c #5a6262", -".2 c #a4aba6", -".3 c #bcc8d5", -".4 c #7494df", -".5 c #84b2d4", -".6 c #6784d9", -".7 c #acd3e4", -".8 c #304b72", -".9 c #2c4c81", -"#. c #3c5b93", -"## c #5468bc", -"#a c #b5bbb0", -"#b c #1c3765", -"#c c #444e44", -"#d c #ecece8", -"#e c #7ca3dc", -"#f c #d4deda", -"#g c #345495", -"#h c #1c2641", -"#i c #94a6cc", -"#j c #243252", -"#k c #a7acb5", -"#l c #5c7ab3", -"#m c #0a152d", -"#n c #c4def0", -"#o c #686e84", -"#p c #a4a19e", -"#q c #3e3c3a", -"#r c #84aaee", -"#s c #040a09", -"#t c #3c6294", -"#u c #7c929c", -"#v c #3c5c9d", -"#w c #4e6ead", -"#x c #344458", -"#y c #446bae", -"#z c #696b6a", -"#A c #547cbc", -"#B c #789ae3", -"#C c #112a44", -"#D c #4f504b", -"#E c #2c3140", -"#F c #8c8688", -"#G c #5e5c5c", -"#H c #8c8c80", -"#I c #cccccc", -"#J c #4c6398", -"#K c #c7cbc4", -"#L c #5174b8", -"#M c #3d558e", -"#N c #2c3c5f", -"#O c #acbad4", -"#P c #3f495a", -"#Q c #354e82", -"#R c #6a8ac7", -"#S c #767c84", -"#T c #30374b", -"#U c #b1c9e7", -"#V c #1b315d", -"#W c #537bcb", -"#X c #c4bec0", -"#Y c #243e6a", -"#Z c #969892", -"#0 c #7e858e", -"#1 c #94b3f1", -"#2 c #c2d4e8", -"#3 c #141e35", -"#4 c #acb2ac", -"#5 c #c4ced0", -"#6 c #2b4d8e", -"#7 c #445ca2", -"#8 c #2c3e6f", -"#9 c #14243e", -"a. c #f1fdfa", -"a# c #8c9abc", -"aa c #d7f9f9", -"ab c #5a697e", -"ac c #c7ebf7", -"ad c #bceefc", -"ae c #b4c2b4", -"af c #889cf0", -"ag c #d8d6c8", -"ah c #748598", -"ai c #b4d2fc", -"aj c #4c5eb0", -"ak c #3f4f64", -"al c #8492bc", -"am c #161d1e", -"an c #5d7dcf", -"ao c #5c86d6", -"ap c #9cacc8", -"aq c #6c92e6", -"ar c #e4ecec", -"as c #89b7ef", -"at c #a6d0f8", -"au c #e4e2e0", -"av c #8c98a4", -"aw c #ccdaec", -"ax c #94bee4", -"ay c #232b2b", -"az c #1c2b43", -"aA c #0c1c33", -"aB c #99bcf7", -"aC c #6c72bc", -"aD c #7c766c", -"aE c #a4a2b4", -"aF c #6c7eac", -"aG c #e4d6dc", -"aH c #e4fefc", -"aI c #84aeb4", -"aJ c #b4b6bf", -"aK c #345b9b", -"aL c #bce2ef", -"aM c #ccc6bc", -"aN c #82a3ef", -"aO c #7c7b77", -"aP c #040c1e", -"aQ c #6c7e94", -"aR c #9ca69c", -"aS c #acbebc", -"aT c #a2cafa", -"aU c #545e5f", -"aV c #5c6a74", -"aW c #cae6ee", -"aX c #5c6e7c", -"aY c #5474c6", -"aZ c #fcfaf4", -"a0 c #344672", -"a1 c #446ec4", -"a2 c #b4c4d4", -"a3 c #313231", -"a4 c #9cb2b4", -"a5 c #345a8c", -"a6 c #7496d4", -"a7 c #0c1a24", -"a8 c #444a47", -"a9 c #343e3c", -"b. c #dce6e4", -"b# c #a9b2bc", -"ba c #a6a6a3", -"bb c #446a9c", -"bc c #c4f2f8", -"bd c #445667", -"be c #727475", -"bf c #6a7896", -"bg c #9aa0a7", -"bh c #9ec4fa", -"bi c #545a61", -"bj c #6474e0", -"bk c #546674", -"bl c #b8bcbd", -"bm c #5d7cbf", -"bn c #515255", -"bo c #979a9f", -"bp c #849cd0", -"bq c #546a8f", -"br c #d7d8d5", -"bs c #688ada", -"bt c #4f6ebe", -"bu c #343e4c", -"bv c #dafefc", -"bw c #acd6fc", -"bx c #b4b6b0", -"by c #8c9a94", -"bz c #203a44", -"bA c #a4b6c8", -"bB c #4c6a98", -"bC c #040214", -"bD c #5c74be", -"bE c #4c5c98", -"bF c #24325c", -"bG c #8c8c8f", -"bH c #4464a7", -"bI c #2c457e", -"bJ c #5c83c7", -"bK c #34538a", -"bL c #b4dff1", -"bM c #7c92d4", -"bN c #c4c4c0", -"bO c #243759", -"bP c #0c151e", -"bQ c #9cb2d4", -"bR c #6c8fd3", -"bS c #546aab", -"bT c #848c9f", -"bU c #242420", -"bV c #6c83c0", -"bW c #343935", -"bX c #848b89", -"bY c #acaca6", -"bZ c #c4cad0", -"b0 c #445c90", -"b1 c #243865", -"b2 c #dce0dc", -"b3 c #747b76", -"b4 c #8cacee", -"b5 c #0c0c08", -"b6 c #446299", -"b7 c #8493a4", -/* pixels */ -"................................................................................................................................", -"..................................bC....bC....bC..bC....bC..bCbCbCbC..bCbC..bC..bC..bC..bCbC..bC..bC....bC....bC................", -"..#9#C#h#C.p.Y.Y.Y#j.Y.Y.Y#V#V#Vb1bFb1b1#8#Y.a.a#Q#Q.a.N#Q.abI.i.9bI#Q#MbK#M.wb0#M.9.N.N.N.9.abI.a#Y#Yb1b1#b#bb1b1b1#V#V#V#Vaz..", -"..#h#C.p.p#9.Y.Y#j.AbObO.A.AbO.Ab1#Y#Y#8.a.aa0.N.8.w.w#QbK.w.ibI.9#6#Q#.#Mb0b0#J#MbK#M.NbK.N.9.NbI.N#YbIb1#Y#8#8bOb1bO#j#V#Caz..", -"..#9.e#h#C.p.p.Y.YbO.A#b#N.a#8#Y#bb1#8#Y.Na0.9.8#Q.w.Mb0#Q#MbK.9bK#g#6.Kb6#J#J#wb0#M#MbKbK#Q#M.9bI.N.N.a.N.a.a.ab1b1#V.Y#V.Y.Y..", -"..#9#C.p#h.p.p.p.Y#VbO#b.a.ia0.9#Q.N#YbI.a.N.N.N.w#Q.wb6b6b0b6#.#g#v#M.K#w#L.n.n#vbH#.bH.Ib6aK#MbK.9#Q#Q#Q#Q.a#Yb1.AbF#VbO.Y#j..", -"..#h#h.p.p.p.Y.p#bbF#bb1#Y.a.8.N#Q#M#M#Q.N.9#QbK#M#Mb0b0.ubB.K.K#..K#v#w.nbmbV.nbHbS#w#7#w#vb0#.#M#Mb0#M#Q.9#Y#Yb1#Yb1b1.Y.Y.Y..", -"..#h#9.p.p.p#V#V#b#b#Y#Y.a.ibI.N.w#Mb0b6#7#M#Q#QbK#.b6b6bq#l.n#LbHbH#y#L#R.s.4#AaY#w#w#L.K.KbH.g.KbH#v#M.9bI.i.8.a#Yb1.A.A.A#j..", -"..#h#C.p.p.Y#V#V#bb1.abIbI#6.o.o#g.oaK#tbH.K.KbH#M.Iaj.K#w.n#R.P#Rbt#W#W.4bpb4aoanbsaobm#La1#L#A#L.ga5bK#g#g#Q.8#Y#bb1b1bOb1bO..", -"...p.p.Y#V.Y#V.Ab1#YbI.9#Q#Q#M#M#7#7#M#v.M#J.K.K.nbS#MbH.nbm.#b4.s#Baq#Wb4aB#1aqaq#R.P.##l#RbmbD.K#7#J#J#.#Q.9.i.N.a#Y#Yb1.Aaz..", -"..az#C#V#j#V.A#N#8.N.N.ibObz#T.J#E.J#T#Tbu.Y.8#..K.nbVbD#wbm.4a6aTb4aoaNaTaiasaNa6.n.m.3bZ#2bN.3aR#2#2.3#J#Q#MbK.8.a#8#b.AbO#j..", -"..#h.p.p.Y.Yb1bO.ibI#g#Mbd#hambU.jbW.Sa3aybP.Y.9bHbH.ubm#BbM.P#rbhbc.qasbL.G.VbhaBbpbZaJbobxbl#I#a#abXbP#V.9#6.NbI#8#8#bbF#V#j..", -"..az#C.Y.Y.Y#bb1.abI#Q.oaj#Pa3a3aya3a3bW.Eayb0.K.g#y.K#LanbRbhaTaxbLbvbLbvbvaLadaTai.mbobYba#Xbl.H#I#P#m#.#M#QbIbI#Y#Yb1#b#V#j..", -"..az.p.p#VbObO#Y.a.N#g#g.I#xbW.j.ja3.E.Ebnbib0bmananbm#wanbs.4asacbLbvaHa.aHbvbc.7aIbY#p#pblbl#Kbe#F#k#9#..I#g#6.i#8#8b1b1.A#j..", -"..#h#C.p.YbO#bb1a0bIbKbK#7#xaya3.jaya3#q.Wbn.J.wbD#Lbm.X#Bb4bhat.b#na.a.a.aZaHaHaW#k#a.vagbNaObl#I.vb3#3#w.K#7#v#M#QbIa0#Y#N#N..", -"..#haz.p#V.YbO#Y#Y.N.9#g#7#P.EbUa8#q#D.f.f.fbi#hbB#LaY.n.P#R#e.5.7aLa.a.aZaZa.a.aS#5#p.d#p.t.l.HbYaObo.Y#w.Kb6#.#M.Na0.a#8#NbO..", -"..#h#C.YbO#V#N#Y.8#Q#g#t##ak.j.W.f.Wbn#Gbe#zbnaU.M#Ra6#eaNb4bh.7bLaWa.aZaZaZa.br.H.2ba.H.T#fau.H.H#p.x#3#w.K#tb0#Q#Q.a#8#Nb1bO..", -"..az#j#j.Ab1#N.a.8#Q#.bb##ak.Ebnbn.1.Ua8.zaO#z.xbubqbsbR.saqaN#1bw.7aaaHa.b.a.a4bZ#k#dbgbP.H#IbG#4bY#o#9#w.K#7b0#Q.8.a#8#NbObO..", -"..az#j.Y.YbO#8.a.8#Q#7#t##bd.r#D#D.rbPaV#G#z.x.y#z.p.u#W.6#B#r#eaTaTaLaWaaaI#5#aau#XbraU#8.HbN.T.RbY#0#9#w.Kb6#M#Q#Qa0#Y#Y#N#N..", -"..#h#j.YbOb1bO#Ya0.NbKa5aj.c.f#G#z.1#3.Mbe#zaO.x#pbT#.bmbsbs.F#1#easat.Gbc.hb.b2aragbgbPaC.3#k.v#4babe#9.KbH#7b0#Qak.a.i#N#Y#T..", -"..az.Y#j.Y.Ab1#Y.8.N#gbK.IaX.r.raDaV.Bb0bfbeb3bab3#HazbBaYbsaqbRaf#1.DaB#na2#K#4b3.ybC.Yaf#k#Z.y.d#p#S#3#v#7#M#g.N.N.a#N#Y#NbO..", -"..#h.p#C#jbFbO#8.a.NbK#.#7bk.z.zb3#H#9aKbm#J.y#Hbablb#.e.PaqbmbsaNaN#1aB#2bZ.x.2aub3.AbSbjapbobobo.rbn#9#v#gbK.9bI.a.a#Yb1bObO..", -"..#haz.YbF#VbO#Y.abI#QaK.I.Q.z.WaO#za7b0an.ub#.R.y.R#XbXbEbtbJbR#Bbsb4.D.3.v#p#za3#s.ubJbj#u.WbWb3.Rbe#9#v#v#g.9bI#Yb1b1#b.A#j..", -"..#h#C.p#C.Y#bbO#YbI.9.o.Iab#Zb3.x.da7bK#WbmalbTae.t#F#Gaz.nbsaqbJ.6#R#U#aaMbx#KbPbz#laoanb#ba.2.RbG#G#9#v#v#g.9bI.ab1#bbF#Vaz..", -"..#haz.p.p#V#Vb1#Y.a#6bK#7bk.1#z#Z.y#m#.a1a1bq.LbX#HblbN.3#N.PaobJafbQ.3.tblbx.TazbB.X.kaYb7bG.d.x#ZaV#3bH#v#Q.NbI#8b1b1.A.Y.Y..", -"..az#h#C.p#VbO#b#YbIbK#g#7aQ.d.y.RbX#mbK#y#ybt.#bZ#IaM.l.2bdbmanaobMap.t.2bY.2.ObO.s.X#W.6bX#F.yaOaD#G#9b6#7.I#Q.a.ab1#bbF.Y.Y..", -"..#9#h.p.p#V#Vb1.a.NbK#..IaQ.xbob3aO#m.9#L.ZaY#w#iaJagaGbr#5.8aF.4a#blbN#Z#Z.WaP#l#l.6#WaY#0aO.y.xb3#PaA#7b6bK#QbI#8b1bO.A#V.Y..", -"..#h.p#C#V.YbO#Y.abI.9aK.Ibf#D.1bYbY#mbK#ybt#ybHbSbT#aba.tbx#S.M#B.y#kbxbYbYaP.YbR#A.6bmbt.Lb3#z.W#Dbn#3bK#.#M#Q.N#Yb1b1#V.Yaz..", -"..#h#C.p#V.p#b.A.a#Y#Q#..Ib7#kbe#4#pa7bK#ybH.g.gbHbfbZbN#4bNbgakah#Zbg#F.x.1#9bK.P#A.X.#btbTaO.W.r.ra8.e#Q.o#Q#Q.a.ab1bO.A.Yaz..", -"..#h.p#h#C#VbOb1#YbI.9.o.I.L#H#Z.2.vaA#QbHaK.g.g#y#7#nbr#a.H.vaE.zaU#4blbebCbIaK#Lbm#LbJbtaXaO.z#z#G.EaA#g#Q.9bI.a.a#Nb1#jbO.Y..", -"..#h#C#h#V.p#V.A.a#8.9.9.Iah#4bY#4bGbP#QaKaKaKaK#7#wbEbg.z.zay.E#a#K.2#ZbCbO#v#gbH.Xbb.ubDbk#z.r#c.f.E#9#Q#6bI.i#8b1#YbO.AbO.J..", -"..#h.p#9.p.p#b.A#8#Y.9.9.I.0.R.2bN#XbP.NaK.IaK#v.IbS.KaQaR.Wbl#K.RbY.R.y#9#M#gaKbH.Kbb#yaCbk.r#Ga8#D#TaAbK#6.i.a#Y#bbObO.Y#jaz..", -"..#9#9.p.p.Y#V.Ab1#YbI.9#7a#bn.Hb2#FaP.a.I#g#g#g#v#7bHb0.L.HbY.y.0#ZaObC.8b0#g#6aKbH#wbb#LaX#D#q.Ea3.UaAbK#QbI#Y#Y#bbO.AbO.Y.Y..", -"..#9#h#h#C.p.Y#V#Y#Y#6.obEbk.H.2bUbe#m.a#g#g#Q#M#M#vaK#6bq#k.d.x.y#Z..az#M#v.o#6.o#v#L#tbSbda8bU.Ub5.O#3#6#6bI.ib1#bbF.Y#C.Yaz..", -"..#9#9.p.p.p#Vb1#Y.N#6.o#Q#O.R.xaM.HaPa0bK#Q#Q#M#M#MbK#gb0akb3aO.xbX#9#x#v#g.N#6.9.wbH#yb0bn#D.f#q.j.U#3.N#6#8.i#b#b.Y.p.Y.paz..", -"..#9#h#9.p.p#V#bb1#8bI#g.NbAb.br.t#H#m#Y#Q#g#Q.9.9.N#6.o#gb0avbG#Z...Y.w#g#6bIbIbIbK#v.K#Ma7#s#s....#haA#Q.NbI#Yb1#V#V#V.p.paz..", -"..#9#9#9.p.p#VbO#Y#8#6.i#M.Q#z.H#f#K.B#Y#6.9.N.9bIbI.9.9#M#M#JbybP.B.Nb0.NbIbI#Y.ibI#vbH.wbubW.E.Sa3a7#m.o#Q#Y#Yb1#V#V#C.p.p.e..", -"..#3#9#9#9.Y#V#VbF#Y#8#6ak#O#db2br.HaP#N.N#QbIbI.a#Y.i.8#M#Qa0.L.B.p#Q#Q.i.i.i#Y.ibI#Q#..c.E.ja3a3bWambP.N.9#Y#Y#b#b#V.p.p.p#9..", -"..#3.e#9.p.p.Y.Yb1b1#Y#.#Ubgbl.T#S..aw#obI.a.a#8#Y#Y.a#YbI.Na0.8bO#8a0#Qa0#8b1#Y#Y#8#Q.ibO#Ta9a9bWa3ay#Eb1.a.ab1#V#V.Y.p.p.e#9..", -"..#3#9.p#h#C.p.Y#Vb1#b#V.a.Y.Y.Y#CazbO.eb1#8#Y#b#bb1b1#8bI#Y.8.abIb1#Y.Nb1#Y#Y#Y#b#Y.9.8.8.C.JbO#j.Yaz#C.p.Y#bb1#V.p.p.p#C.e#9..", -"..#9#9#9.p#9.p.Y.Y#V#b#bb1#8.i#8.a.a#Y#Y#Y#Yb1b1#b#bb1#N#Y#8b1#Y#Yb1#8#Yb1#b#b#b#bb1#Y.N.w.8.N.8#Q.8.i.a#b#Y#bbO#V.Y.p#C.p.p#9..", -"..#3#9.e#9.p.p#9#C.Y#V#b#b#b#Y#Y#Y#Y#Y#Yb1b1bO#V.Y#j#Vb1b1bObObObO.Ab1#N.A.AbF#V#V#V#b#8.aa0.a.ibI.8#Y#Yb1#V#V#V#V.p.p#9.p.e#9..", -"..#3#3#9.e.e.p.p.p.p#V.Y#b#b#Vb1#b#Yb1.A#V.Y.Y.Y.Y.Y.A#j.YbO#VbO.Y#jbO#b#j#j#V.Y#V#V#bb1#Y.a#Yb1.a#8b1b1#b.A#V#C.p.p.p.p.e.e#9..", -"..#3aAaA#3#9.e.e#9#C#C.Y.p.Y#V#VbF#VbO.Y#j.p.p.Y#C#j.Y#j.Y#j.Y#j.Y.YbO.Y#j.Y.p.p.p.p.Y#VbOb1#NbObOb1b1.A#V.p.p.p#C.p#9#9#9.e#9..", -"..#3#9.e#3aA#9.e#9.p.p.e.p.p.p#V#j.Y.Y.Y#9.p.p#9.Yaz.Yaz.paz.Y.paz.Y.Y#j#C.p#C.p#C#C.p#V#VbO#VbF#V#j#V#j.p.p.p#C.p#9#C#C#9.e#9..", -"..#3aA#9aA#9aA.e#9.e#9#9.p.p.p.p#Caz.Y#C.p.p#9.p#C#Caz.p#Caz.Y#C.p#9#j.p#h.p#C#C#C.e.p#9.Y#j.Y.Y.p.p.p#C.p.p#9#9#9#9#9.e#9.e#3..", -"..#3.e#3.e#3.e#9#9aA#9.e.e.e.p#C.p#h#Caz#9.p.p.p#h.Y#9.p.p#C.paz.p#h.Yaz#9.p#C.e.e.e.p.p#9.p.paz#C.paz.Y#9.p.e#9.e#9#9#9#9aA#9..", -"......bC..bC..bCbCbCbCbCbCbC..bC....bC..bCbCbCbCbC..bC....bC......bC..bCbCbCbCbCbCbCbCbCbCbC....bC......bCbC..bC..bC..bC........" -}; diff --git a/user/wxLayout/Mpch.h b/user/wxLayout/Mpch.h deleted file mode 100644 index 863f2eb9b5..0000000000 --- a/user/wxLayout/Mpch.h +++ /dev/null @@ -1,8 +0,0 @@ -/* - This is an empty Mpch.h file to allow me to move the - wxl* files between Mahogany and the wxLayout sample - without modifying them. -*/ - -// static int _mpch_dummy = 0; - diff --git a/user/wxLayout/README b/user/wxLayout/README deleted file mode 100644 index 5539268bc7..0000000000 --- a/user/wxLayout/README +++ /dev/null @@ -1,50 +0,0 @@ - -README for wxLayout classes ---------------------------- - -All the source in this directory is copyrighted under the -GPL (GNU GENERAL PUBLIC LICENSE), version 2, -by Karsten Ballueder . - - -This is still work in progress, so if you want to make any significant -changes, please get in touch with me before. - -There are three building blocks for rich text editing: - -wxllist : - -The wxLayoutList layout engine. It is a linked list of wxLayoutObjects -which can arrange and display them on any wxDC. I am trying to keep -this class as simple as possible, to be just the core layout -engine. All "convenience" functions should be defined in classes built -on top of this. -The wxLayoutList is derived from kbList, a double-linked list with an -interface modelled after the STL list. As wxLayoutList depends on the -way kbList treats iterators (i.e. the iterator value after an insert() -or erase() operation), I don't feel like rewriting it for wxList. - -wxlwindow : - -Contains a class wxLayoutWindow, derived from wxScrolledWindow which -can directly be used as a rich-text display or editing window. The -function responsible for keyboard handling is virtual and can be -overloaded for different keybindings. wxLayoutWindow can sent fake -menu-events to the application to react to the user clicking on -objects. - -wxlparser: - -Contains several high level functions operating on -wxLayoutList. Currently implemented is inserting of text (including -linebreaks) and export of objects, text or html. -Planned for the future is an html parser for importing html. - - -wxLayout.cpp is a simple test program. It will export Text and HTML to -stdout and demonstrate some of the features and bugs of wxLayoutList. - -There are still things to do and I'm working on them. :-) - -Karsten Ballueder 29 June 1998 - diff --git a/user/wxLayout/TODO b/user/wxLayout/TODO deleted file mode 100644 index a38796245b..0000000000 --- a/user/wxLayout/TODO +++ /dev/null @@ -1,44 +0,0 @@ - -BUGS -===================================================================== - -- dmalloc shows duplicate deletion after merging two lines and - deleting the second half - -- word wrap for objects with lots of non-space needs to search in positive - direction if begin of first object is reached - -TODO -===================================================================== - - -- typedef wxCoords CoordType ?? - -- merge RecalulateXXX and Layout() into one -- remove UpdateCursorScreenCoords() which is no longer needed - - - UNDO!! - - replacement of llist in window - - selection highlighting is a bit broken -Improve speed! (See layout problem below!) - - - wxlwindow needs to shrink scrollbar range when window contents get removed - - When selecting with the mouse, scroll window if pointer is outside. - - - -- The import of a private data object does not work yet, we need to get - the objects back from the string. -- Changing default settings in Clear() or changing/inserting/deleting - a wxLayoutObject needs to update the m_StyleInfo in all lines, only - then can we start using that one. - -- update rectangle (needs support in wxllist and wxWindows) - --> needs a bit of fixing still - some code bits are commented out in wxlwindow.cpp - offset handling seems a bit dodgy, white shadow to top/left of cursor - - - DragNDrop - - - Update docs, do full rtf/html editing. - - Verify html export. diff --git a/user/wxLayout/kbList.cpp b/user/wxLayout/kbList.cpp deleted file mode 100644 index 23ead752a5..0000000000 --- a/user/wxLayout/kbList.cpp +++ /dev/null @@ -1,336 +0,0 @@ -/*-*- c++ -*-******************************************************** - * kbList.cc : a double linked list * - * * - * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ * - * * - * $Log$ - * Revision 1.3 1998/11/19 20:34:50 KB - * fixes - * - * Revision 1.8 1998/09/23 08:57:27 KB - * changed deletion behaviour - * - * Revision 1.7 1998/08/16 21:21:29 VZ - * - * 1) fixed config file bug: it was never created (attempt to create ~/.M/config - * always failed, must mkdir("~/.M") first) - * 2) "redesign" of "Folder properties" dialog and bug corrected, small change to - * MInputBox (it was too wide) - * 3) bug in ProvFC when it didn't reckognize the books as being in the correct - * format (=> messages "can't reopen book") corrected - * 4) I tried to enhance MDialog_About(), but it didn't really work... oh well, - * I've never said I was an artist - * - * Revision 1.6 1998/07/08 11:56:56 KB - * M compiles and runs on Solaris 2.5/gcc 2.8/c-client gso - * - * Revision 1.5 1998/06/27 20:07:18 KB - * several bug fixes for kbList - * started adding my layout stuff - * - * Revision 1.1.1.1 1998/06/13 21:51:12 karsten - * initial code - * - * Revision 1.4 1998/05/24 14:48:00 KB - * lots of progress on Python, but cannot call functions yet - * kbList fixes again? - * - * Revision 1.3 1998/05/18 17:48:34 KB - * more list<>->kbList changes, fixes for wxXt, improved makefiles - * - * Revision 1.2 1998/05/14 16:39:31 VZ - * - * fixed SIGSEGV in ~kbList if the list is empty - * - * Revision 1.1 1998/05/13 19:02:11 KB - * added kbList, adapted MimeTypes for it, more python, new icons - * - *******************************************************************/ - -#ifdef __GNUG__ -# pragma implementation "kbList.h" -#endif - -#include "kbList.h" - - -kbListNode::kbListNode( void *ielement, - kbListNode *iprev, - kbListNode *inext) -{ - next = inext; - prev = iprev; - if(prev) - prev->next = this; - if(next) - next->prev = this; - element = ielement; -} - -kbListNode::~kbListNode() -{ - if(prev) - prev->next = next; - if(next) - next->prev = prev; -} - - -kbList::iterator::iterator(kbListNode *n) -{ - node = n; -} - -void * -kbList::iterator::operator*() -{ - return node->element; -} - -kbList::iterator & -kbList::iterator::operator++() -{ - node = node ? node->next : NULL; - return *this; -} - -kbList::iterator & -kbList::iterator::operator--() -{ - node = node ? node->prev : NULL; - return *this; -} -kbList::iterator & -kbList::iterator::operator++(int /* foo */) -{ - return operator++(); -} - -kbList::iterator & -kbList::iterator::operator--(int /* bar */) -{ - return operator--(); -} - - -bool -kbList::iterator::operator !=(kbList::iterator const & i) const -{ - return node != i.node; -} - -bool -kbList::iterator::operator ==(kbList::iterator const & i) const -{ - return node == i.node; -} - -kbList::kbList(bool ownsEntriesFlag) -{ - first = NULL; - last = NULL; - ownsEntries = ownsEntriesFlag; -} - -void -kbList::push_back(void *element) -{ - if(! first) // special case of empty list - { - first = new kbListNode(element); - last = first; - return; - } - else - last = new kbListNode(element, last); -} - -void -kbList::push_front(void *element) -{ - if(! first) // special case of empty list - { - push_back(element); - return; - } - else - first = new kbListNode(element, NULL, first); -} - -void * -kbList::pop_back(void) -{ - iterator i; - void *data; - bool ownsFlagBak = ownsEntries; - i = tail(); - data = *i; - ownsEntries = false; - erase(i); - ownsEntries = ownsFlagBak; - return data; -} - -void * -kbList::pop_front(void) -{ - iterator i; - void *data; - bool ownsFlagBak = ownsEntries; - - i = begin(); - data = *i; - ownsEntries = false; - erase(i); - ownsEntries = ownsFlagBak; - return data; - -} - -void -kbList::insert(kbList::iterator & i, void *element) -{ - if(! i.Node()) - return; - else if(i.Node() == first) - { - push_front(element); - i = first; - return; - } - i = kbList::iterator(new kbListNode(element, i.Node()->prev, i.Node())); -} - -void -kbList::doErase(kbList::iterator & i) -{ - kbListNode - *node = i.Node(), - *prev, *next; - - if(! node) // illegal iterator - return; - - prev = node->prev; - next = node->next; - - // correct first/last: - if(node == first) - first = node->next; - if(node == last) // don't put else here! - last = node->prev; - - // build new links: - if(prev) - prev->next = next; - if(next) - next->prev = prev; - - // delete this node and contents: - // now done separately - //if(ownsEntries) - //delete *i; - delete i.Node(); - - // change the iterator to next element: - i = kbList::iterator(next); -} - -kbList::~kbList() -{ - kbListNode *next; - - while ( first != NULL ) - { - next = first->next; - if(ownsEntries) - delete first->element; - delete first; - first = next; - } -} - -kbList::iterator -kbList::begin(void) const -{ - return kbList::iterator(first); -} - -kbList::iterator -kbList::tail(void) const -{ - return kbList::iterator(last); -} - -kbList::iterator -kbList::end(void) const -{ - return kbList::iterator(NULL); // the one after the last -} - -unsigned -kbList::size(void) const // inefficient -{ - unsigned count = 0; - kbList::iterator i; - for(i = begin(); i != end(); i++, count++) - ; - return count; -} - - - - - - - -#ifdef KBLIST_TEST - -#include - -KBLIST_DEFINE(kbListInt,int); - -int main(void) -{ - int - n, *ptr; - kbListInt - l; - kbListInt::iterator - i; - - for(n = 0; n < 10; n++) - { - ptr = new int; - *ptr = n*n; - l.push_back(ptr); - } - - i = l.begin(); // first element - i++; // 2nd - i++; // 3rd - i++; // 4th, insert here: - ptr = new int; - *ptr = 4444; - l.insert(i,ptr); - - // this cannot work, because l.end() returns NULL: - i = l.end(); // behind last - i--; // still behind last - l.erase(i); // doesn't do anything - - // this works: - i = l.tail(); // last element - i--; - --i; - l.erase(i); // erase 3rd last element (49) - - for(i = l.begin(); i != l.end(); i++) - cout << *i << '\t' << *((int *)*i) << endl; - - - return 0; -} -#endif diff --git a/user/wxLayout/kbList.h b/user/wxLayout/kbList.h deleted file mode 100644 index 8c52aba56b..0000000000 --- a/user/wxLayout/kbList.h +++ /dev/null @@ -1,315 +0,0 @@ -/*-*- c++ -*-******************************************************** - * kbList.h : a double linked list * - * * - * (C) 1998 by Karsten Ballüder (Ballueder@usa.net) * - * * - * $Id$ - * - *******************************************************************/ - -#ifndef KBLIST_H -# define KBLIST_H - -#ifdef __GNUG__ -# pragma interface "kbList.h" -#endif - -#ifndef NULL -# define NULL 0 -#endif - -/**@name Double linked list implementation. */ -//@{ - -/** kbListNode is a class used by kbList. It represents a single - element in the list. It is not intended for general use outside - kbList functions. -*/ -struct kbListNode -{ - /// pointer to next node or NULL - struct kbListNode *next; - /// pointer to previous node or NULL - struct kbListNode *prev; - /// pointer to the actual data - void *element; - /** Constructor - it automatically links the node into the list, if - the iprev, inext parameters are given. - @param ielement pointer to the data for this node (i.e. the data itself) - @param iprev if not NULL, use this as previous element in list - @param inext if not NULL, use this as next element in list - */ - kbListNode( void *ielement, - kbListNode *iprev = NULL, - kbListNode *inext = NULL); - /// Destructor. - ~kbListNode(); -}; - -/** The main list class, handling void pointers as data. - */ - -class kbList -{ -public: - /// An iterator class for kbList, just like for the STL classes. - class iterator - { - protected: - /// the node to which this iterator points - kbListNode *node; - friend class kbList; - public: - /** Constructor. - @param n if not NULL, the node to which to point - */ - iterator(kbListNode *n = NULL); - /** Dereference operator. - @return the data pointer of the node belonging to this - iterator - */ - void * operator*(); - - /** This operator allows us to write if(i). It is not a - dereference operator and the result is always useless apart - from its logical value! - */ - operator void*() const { return node == NULL ? (void*)0 : (void*)(-1); } - - /** Increment operator - prefix, goes to next node in list. - @return itself - */ - iterator & operator++(); - - /** Decrement operator - prefix, goes to previous node in list. - @return itself - */ - iterator & operator--(); - - /** Increment operator - prefix, goes to next node in list. - @return itself - */ - iterator & operator++(int); //postfix - - /** Decrement operator - prefix, goes to previous node in list. - @return itself - */ - iterator & operator--(int); //postfix - - /** Comparison operator. - @return true if not equal. - */ - bool operator !=(iterator const &) const; - - /* Comparison operator. - @return true if equal - */ - bool operator ==(iterator const &) const; - - /** Returns a pointer to the node associated with this iterator. - This function is not for general use and should be - protected. However, if protected, it cannot be called from - derived classes' iterators. (Is this a bug in gcc/egcs?) - @return the node pointer - */ - inline kbListNode * Node(void) const - { return node; } - }; - - /** Constructor. - @param ownsEntriesFlag if true, the list owns the entries and - will issue a delete on each of them when deleting them. If - false, the entries themselves will not get deleted. Do not use - this with array types! - */ - kbList(bool ownsEntriesFlag = true); - - /** Destructor. - If entries are owned, they will all get deleted from here. - */ - ~kbList(); - - /** Tell list whether it owns objects. If owned, they can be - deleted by list. See the constructor for more details. - @param ownsflag if true, list will own entries - */ - void ownsObjects(bool ownsflag = true) - { ownsEntries = ownsflag; } - - /** Query whether list owns entries. - @return true if list owns entries - */ - bool ownsObjects(void) - { return ownsEntries; } - - /** Add an entry at the end of the list. - @param element pointer to data - */ - void push_back(void *element); - - /** Add an entry at the head of the list. - @param element pointer to data - */ - void push_front(void *element); - - /** Get element from end of the list and delete it. - NOTE: In this case the element's data will not get deleted by - the list. It is the responsibility of the caller to free it. - @return the element data - */ - void *pop_back(void); - - /** Get element from head of the list and delete it. - NOTE: In this case the element's data will not get deleted by - the list. It is the responsibility of the caller to free it. - @return the element data - */ - void *pop_front(void); - - /** Insert an element into the list. - @param i an iterator pointing to the element, before which the new one should be inserted - @param element the element data - */ - void insert(iterator & i, void *element); - - /** Remove an element from the list _without_ deleting the object. - @param i iterator pointing to the element to be deleted - @return the value of the element just removed - */ - void *remove(iterator& i) { void *p = *i; doErase(i); return p; } - - /** Erase an element, move iterator to following element. - @param i iterator pointing to the element to be deleted - */ - void erase(iterator & i) { deleteContent(i); doErase(i); } - - /* Get head of list. - @return iterator pointing to head of list - */ - iterator begin(void) const; - - /* Get end of list. - @return iterator pointing after the end of the list. This is an - invalid iterator which cannot be dereferenced or decremented. It is - only of use in comparisons. NOTE: this is different from STL! - @see tail - */ - iterator end(void) const; - - /* Get last element in list. - @return iterator pointing to the last element in the list. - @see end - */ - iterator tail(void) const; - - /* Get the number of elements in the list. - @return number of elements in the list - */ - unsigned size(void) const; - - /* Query whether list is empty. - @return true if list is empty - */ - inline bool empty(void) const - { return first == NULL ; } - -protected: - /// if true, list owns entries - bool ownsEntries; - /// pointer to first element in list - kbListNode *first; - /// pointer to last element in list - kbListNode *last; -protected: - /** Erase an element, move iterator to following element. - @param i iterator pointing to the element to be deleted - */ - void doErase(iterator & i); - - /** Deletes the actual content if ownsflag is set. - param iterator i - */ - inline void deleteContent(iterator i) - { if(ownsEntries) delete *i; } - - -private: - /// forbid copy construction - kbList(kbList const &foo); - /// forbid assignments - kbList& operator=(const kbList& foo); -}; - -/// just for backward compatibility, will be removed soon -typedef kbList::iterator kbListIterator; -/// cast an iterator to a pointer, compatibility only to be removed -#define kbListICast(type, iterator) ((type *)*iterator) -/// cast an iterator to a const pointer, compatibility only to be removed -#define kbListIcCast(type, iterator) ((type const *)*iterator) - -/** Macro to define a kbList with a given name, having elements of - pointer to the given type. I.e. KBLIST_DEFINE(Int,int) would - create a kbListInt type holding int pointers. -*/ -#define KBLIST_DEFINE(name,type) \ -class name : public kbList \ -{ \ -public: \ - class iterator : public kbList::iterator \ - { \ - protected: \ - inline iterator(kbList::iterator const & i) \ - { node = i.Node(); } \ - friend class name; \ - public: \ - inline iterator(kbListNode *n = NULL) \ - : kbList::iterator(n) {} \ - inline type * operator*() \ - /* the cast is needed for MS VC++ 5.0 */ \ - { return (type *)((kbList::iterator *)this)->operator*() ; } \ - }; \ - inline name(bool ownsEntriesFlag = TRUE) \ - : kbList(ownsEntriesFlag) {} \ - \ - inline type *pop_back(void) \ - { return (type *) kbList::pop_back(); } \ - \ - inline type *pop_front(void) \ - { return (type *) kbList::pop_front(); } \ - \ - type *remove(iterator& i) \ - { return (type *)kbList::remove(i); } \ - inline void erase(iterator & i) \ - { deleteContent(i); doErase(i); } \ - \ - inline iterator begin(void) const \ - { return kbList::begin(); } \ - \ - inline iterator end(void) const \ - { return kbList::end(); } \ - \ - inline iterator tail(void) const \ - { return kbList::tail(); } \ - ~name() \ - { \ - kbListNode *next; \ - while ( first != NULL ) \ - { \ - next = first->next; \ - if(ownsEntries) \ - delete (type *)first->element; \ - delete first; \ - first = next; \ - } \ - } \ -protected: \ - inline void deleteContent(iterator i) \ - { if(ownsEntries) delete *i; } \ -} - -#ifdef MCONFIG_H -/// define the most commonly used list type once: -KBLIST_DEFINE(kbStringList, String); -#endif -//@} -#endif // KBLIST_H diff --git a/user/wxLayout/wxLayout.cpp b/user/wxLayout/wxLayout.cpp deleted file mode 100644 index b4cd05060c..0000000000 --- a/user/wxLayout/wxLayout.cpp +++ /dev/null @@ -1,490 +0,0 @@ -/* - * Program: wxLayout - * - * Author: Karsten Ballüder - * - * Copyright: (C) 1998, Karsten Ballüder - * - */ - -#ifdef __GNUG__ -#pragma implementation "wxLayout.h" -#endif - -#include "wx/wxprec.h" -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#include "wxLayout.h" -#include "wx/textfile.h" - - -#include "Micon.xpm" - - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - - enum ids{ ID_ADD_SAMPLE = 1, ID_CLEAR, ID_PRINT, - ID_PRINT_SETUP, ID_PAGE_SETUP, ID_PREVIEW, ID_PRINT_PS, - ID_PRINT_SETUP_PS, ID_PAGE_SETUP_PS,ID_PREVIEW_PS, - ID_WRAP, ID_NOWRAP, ID_PASTE, ID_COPY, ID_CUT, ID_FIND, - ID_WXLAYOUT_DEBUG, ID_QUIT, ID_CLICK, ID_HTML, ID_TEXT, - ID_TEST, ID_LINEBREAKS_TEST, ID_LONG_TEST, ID_URL_TEST }; - - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - - BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU(ID_PRINT, MyFrame::OnPrint) - EVT_MENU(ID_PREVIEW, MyFrame::OnPrintPreview) - EVT_MENU(ID_PRINT_SETUP, MyFrame::OnPrintSetup) - EVT_MENU(ID_PAGE_SETUP, MyFrame::OnPageSetup) - EVT_MENU(ID_PRINT_PS, MyFrame::OnPrintPS) - EVT_MENU(ID_PREVIEW_PS, MyFrame::OnPrintPreviewPS) - EVT_MENU(ID_PRINT_SETUP_PS, MyFrame::OnPrintSetupPS) - EVT_MENU(ID_PAGE_SETUP_PS, MyFrame::OnPageSetupPS) - EVT_MENU (-1, MyFrame::OnCommand) - EVT_COMMAND (-1,-1, MyFrame::OnCommand) - EVT_CHAR ( wxLayoutWindow::OnChar ) - END_EVENT_TABLE() - - -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, "wxLayout", - wxPoint(880,100), wxSize(256,256) ) -{ - CreateStatusBar( 2 ); - - SetStatusText( "wxLayout by Karsten Ballüder." ); - - wxMenuBar *menu_bar = new wxMenuBar(); - - wxMenu *file_menu = new wxMenu; - file_menu->Append(ID_PRINT, "&Print...", "Print"); - file_menu->Append(ID_PRINT_SETUP, "Print &Setup...","Setup printer properties"); - file_menu->Append(ID_PAGE_SETUP, "Page Set&up...", "Page setup"); - file_menu->Append(ID_PREVIEW, "Print Pre&view", "Preview"); -#ifdef __WXMSW__ - file_menu->AppendSeparator(); - file_menu->Append(ID_PRINT_PS, "Print PostScript...", "Print (PostScript)"); - file_menu->Append(ID_PRINT_SETUP_PS, "Print Setup PostScript...", "Setup printer properties (PostScript)"); - file_menu->Append(ID_PAGE_SETUP_PS, "Page Setup PostScript...", "Page setup (PostScript)"); - file_menu->Append(ID_PREVIEW_PS, "Print Preview PostScript", "Preview (PostScript)"); -#endif - file_menu->AppendSeparator(); - file_menu->Append( ID_TEXT, "Export &Text"); - file_menu->Append( ID_HTML, "Export &HTML"); - file_menu->Append( ID_QUIT, "E&xit"); - menu_bar->Append(file_menu, "&File" ); - - wxMenu *edit_menu = new wxMenu; - edit_menu->Append( ID_CLEAR, "C&lear"); - edit_menu->Append( ID_ADD_SAMPLE, "&Example"); - edit_menu->Append( ID_LONG_TEST, "Add &many lines"); - edit_menu->AppendSeparator(); - edit_menu->Append( ID_LINEBREAKS_TEST, "Add &several lines"); - edit_menu->Append( ID_URL_TEST, "Insert an &URL"); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_WRAP, "&Wrap mode", "Activate wrapping at pixel 200."); - edit_menu->Append(ID_NOWRAP, "&No-wrap mode", "Deactivate wrapping."); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_COPY, "&Copy", "Copy text to clipboard."); - edit_menu->Append(ID_CUT, "Cu&t", "Cut text to clipboard."); - edit_menu->Append(ID_PASTE,"&Paste", "Paste text from clipboard."); - edit_menu->Append(ID_FIND, "&Find", "Find text."); - menu_bar->Append(edit_menu, "&Edit" ); - -#ifndef __WXMSW__ - menu_bar->Show( TRUE ); -#endif // MSW - - SetMenuBar( menu_bar ); - - m_lwin = new wxLayoutWindow(this); - m_lwin->SetStatusBar(GetStatusBar(), 0, 1); - m_lwin->SetMouseTracking(true); - m_lwin->SetEditable(true); - m_lwin->SetWrapMargin(40); - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false); - m_lwin->SetFocus(); - - // create and set the background bitmap (this will result in a lattice) - static const int sizeBmp = 10; - wxBitmap *bitmap = new wxBitmap(sizeBmp, sizeBmp); - wxMemoryDC dcMem; - dcMem.SelectObject( *bitmap ); - dcMem.SetBackground( *wxWHITE_BRUSH ); - dcMem.Clear(); - - dcMem.SetPen( *wxGREEN_PEN ); - dcMem.DrawLine(sizeBmp/2, 0, sizeBmp/2, sizeBmp); - dcMem.DrawLine(0, sizeBmp/2, sizeBmp, sizeBmp/2); - - dcMem.SelectObject( wxNullBitmap ); - - m_lwin->SetBackgroundBitmap(bitmap); -}; - -void -MyFrame::AddSampleText(wxLayoutList *llist) -{ - llist->Clear(wxSWISS,16,wxNORMAL,wxNORMAL, false); - llist->SetFont(-1,-1,-1,-1,-1,"blue"); - llist->Insert("blue"); - llist->SetFont(-1,-1,-1,-1,-1,"black"); - llist->Insert("The quick brown fox jumps over the lazy dog."); - llist->LineBreak(); - - llist->SetFont(wxROMAN,16,wxNORMAL,wxNORMAL, false); - llist->Insert("--"); - llist->LineBreak(); - - llist->SetFont(wxROMAN); - llist->Insert("The quick brown fox jumps over the lazy dog."); - llist->LineBreak(); - llist->Insert("Hello "); - llist->Insert(new wxLayoutObjectIcon(new wxICON(Micon))); - llist->SetFontWeight(wxBOLD); - llist->Insert("World! "); - llist->SetFontWeight(wxNORMAL); - llist->Insert("The quick brown fox jumps..."); - llist->LineBreak(); - llist->Insert("over the lazy dog."); - llist->SetFont(-1,-1,-1,-1,true); - llist->Insert("underlined"); - llist->SetFont(-1,-1,-1,-1,false); - llist->SetFont(wxROMAN); - llist->Insert("This is "); - llist->SetFont(-1,-1,-1,wxBOLD); llist->Insert("BOLD "); llist->SetFont(-1,-1,-1,wxNORMAL); - llist->Insert("and "); - llist->SetFont(-1,-1,wxITALIC); - llist->Insert("italics "); - llist->SetFont(-1,-1,wxNORMAL); - llist->LineBreak(); - llist->Insert("and "); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" text."); - llist->LineBreak(); - llist->Insert("and "); - llist->SetFont(-1,-1,-1,-1,-1,"blue"); - llist->Insert("blue"); - llist->SetFont(-1,-1,-1,-1,-1,"black"); - llist->Insert(" and "); - llist->SetFont(-1,-1,-1,-1,-1,"green","black"); - llist->Insert("green on black"); - llist->SetFont(-1,-1,-1,-1,-1,"black","white"); - llist->Insert(" text."); - llist->LineBreak(); - - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("Slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" and normal text and "); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert("slanted"); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(" again."); - llist->LineBreak(); - - // add some more text for testing: - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->SetFont(wxTELETYPE,16); - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->Insert("And here the source for the test program:"); - llist->LineBreak(); - llist->Insert("And here the source for the test program:"); - - char buffer[1024]; - FILE *in = fopen("wxLayout.cpp","r"); - if(in) - { - for(;;) - { - fgets(buffer,1024,in); - if(feof(in)) - break; - wxLayoutImportText(llist, buffer); - } - } - - llist->MoveCursorTo(wxPoint(0,0)); - m_lwin->SetDirty(); - m_lwin->Refresh(); -} - -void -MyFrame::Clear(void) -{ - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false); -} - - -void MyFrame::OnCommand( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_QUIT: - Close( TRUE ); - break; - case ID_PRINT: - { - wxPrinter printer; - wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout")); - if (! printer.Print(this, &printout, TRUE)) - wxMessageBox( - _("There was a problem with printing the message:\n" - "perhaps your current printer is not set up correctly?"), - _("Printing"), wxOK); - } - break; - case ID_NOWRAP: - case ID_WRAP: - m_lwin->SetWrapMargin(event.GetId() == ID_NOWRAP ? 0 : 40); - break; - case ID_ADD_SAMPLE: - AddSampleText(m_lwin->GetLayoutList()); - break; - case ID_CLEAR: - Clear(); - break; - case ID_CLICK: - cerr << "Received click event." << endl; - break; - case ID_PASTE: - m_lwin->Paste(); - m_lwin->Refresh(FALSE); - break; - case ID_COPY: - m_lwin->Copy(); - m_lwin->Refresh(FALSE); - break; - case ID_CUT: - m_lwin->Cut(); - m_lwin->Refresh(FALSE); - break; - case ID_FIND: - m_lwin->Find("void"); - m_lwin->Refresh(FALSE); - break; - case ID_HTML: - { - wxLayoutExportObject *export; - wxLayoutExportStatus status(m_lwin->GetLayoutList()); - - while((export = wxLayoutExport( &status, - WXLO_EXPORT_AS_HTML)) != NULL) - { - if(export->type == WXLO_EXPORT_HTML) - cout << *(export->content.text); - else - cout << "