From d673ff86eff2aa3ad16dd182d2e8532985358765 Mon Sep 17 00:00:00 2001 From: Paul M Date: Sat, 14 Mar 2020 21:24:42 -0500 Subject: [PATCH] First Beta First working beta copy --- kpad/.directory | 2 + kpad/.gitignore | 17 ++++ kpad/.icon.png | Bin 0 -> 11169 bytes kpad/.project | 20 +++++ kpad/.src/FMain.class | 193 +++++++++++++++++++++++++++++++++++++++++ kpad/.src/FMain.form | 102 ++++++++++++++++++++++ kpad/.src/Find.class | 11 +++ kpad/.src/Find.form | 18 ++++ kpad/.src/Global.class | 28 ++++++ 9 files changed, 391 insertions(+) create mode 100644 kpad/.directory create mode 100644 kpad/.gitignore create mode 100644 kpad/.icon.png create mode 100644 kpad/.project create mode 100644 kpad/.src/FMain.class create mode 100644 kpad/.src/FMain.form create mode 100644 kpad/.src/Find.class create mode 100644 kpad/.src/Find.form create mode 100644 kpad/.src/Global.class diff --git a/kpad/.directory b/kpad/.directory new file mode 100644 index 0000000..06dab1c --- /dev/null +++ b/kpad/.directory @@ -0,0 +1,2 @@ +[Desktop Entry] +Icon=./.icon.png diff --git a/kpad/.gitignore b/kpad/.gitignore new file mode 100644 index 0000000..06e26c5 --- /dev/null +++ b/kpad/.gitignore @@ -0,0 +1,17 @@ +#---- Gambas files to ignore (v5) +*.gambas +.lock +*~ +core +core.* +vgcore +vgcore.* +.kdbg* +.*.prof +.lang/*.pot +.gambas/* +.settings +.startup +.list +.info +#---- diff --git a/kpad/.icon.png b/kpad/.icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4fc1310d6558eaf8aab8fdfef544e8d641802567 GIT binary patch literal 11169 zcmb`tcQjnl_cngVjNW@Uq#)5oCwfVgC?R@8jTQvaOBg0ZCnQ?*n&^V)(OaTKM2Ox6 zQAV9%@Vh?W-{*bT_y2dTYmK$;z2}^L_CC*k_Oox)BONtz5*88w0LV4eRrLV?0{#mD zhzP(R^Oqm(!Jj236_rPx`fADm!1UhM%1U+^fN4>Xku~|>zOS^aLqh#lkAzH}Q@E)S z36ZpVW`*$~R~12+|0d_RUh6JkU|rB3>s&_D8uUzG3B$PhI4K!q-12~V^qFKh_f&vSA&cPG|R(E0yP(qBMBNy?5=L=2>=v5*ME@rd=#tz zzzJxmDjE1??qq#;yQP-B&`ymlFDHx{4gUD#d3_qXQ~%u+4ne7$pbx}|omHtE67y29+>x5Ex{hgsC}st=5e zYSbA%l-s<;o&)%wOGRq)2Vxgwf+18erT-U~u+Y?fq5YB&{p6~ae7_f3=5IGf|E!K4 zaB^FSV*WnugWUP0`)Ua7Tr-9Z@?swW?j*n!u<4ml<&QbZd#U}sQ>)@rM=K9=cy4zv zvz~V)hj@*Achfw6mB!CL8olSq!1rMfH=}@=%(-f*O}Isb%y~7i=~72NYbJdzqOXG+ zvdqcE#R?Od-qY1$WLcT~7P7?CYI$aQ`P5Q3a_kmg4&Uu~kL=0%{kMsU`f|Vg`rF%s zbv23AQ{Xw4y77HQSAsU*Hk_GO+p&K_a7PI`@?o40%uN8`CYO8C31RUQV4VBv*Wpwn zgS?M+wJ>QO?y%6aPaaAZ3(qn9_ij|c`3gN*5>gpp@tH{{AVm2vHDO6h`*NH=bYxz% zWMUpum2h=Y@`ML|pDLP^6yTb$b?xnV;Ox~j&fRYRlO;`7H>;2$k#1iMlIG%+h0nQNgx4t%oJU_sLCG|PP(dY@m zZ%^Oc@|u2b1$Yjw7iqtL<^8Vp$0c?(Cl;y|9E=rx*}ZIV)sA_!e9!EoR{YZ^M9JxI zmN5sZcb@us$;!Nt`x}~_JZHSX6k(m;)_lAW@&FAi!vyE>ek8o_QzxS9-^wWux^z6y zCV!!Qi2c(O)3iRx(47{dkoTUMyF7OGDm6?g`k-UVq}VFpfl_=NT#@?WBkG{a?1vUX zzj>!~;FiB}Ocxi?3myjxn7aO@UD0QzB$Lj}79W-&JzncJpbabpMyx@abyr6N?egot za_kl?a~_YZq$)h@ht#b*&~DJDyynk-IPj?^c4fu3_Ykdk^UZ4jO1QG}H7XuTXEZ?f za5-Q7ZC>pu8}P%d$PWxqX724Rc9M$1`u!mliY*H^c)rAlCjve9- z&_yen8{eYJ{#wly-WKK<+pzUNTb3J~2rNSOJgc*OWn47>J|gEMtsgW_VW;MN%L(mI zN6A?%Y)q;+Udrky*)IT*!+IaJXD-NVY?pcR;6g3}EQAM|G7NZ}_CEcIjFM7pqH%jJ z%Qd;1sr?M^C?`2;%#*usM92Zkt&I2BnN(02VbG}vgAz#ZW>mo9CBp_cWXMe8yT(DoK-*2AkuUD;2 z4uwpjfs3|@`gesa@C}!c?}xHJmalC8?x~{zng)4yqN{-+gEmW{L}m^w5^w?YHG;eYAQR zo{>azn@`zh=t{^22vZ>;;P$7k$zikQLTJJ(3yzhuakpRp$OxGo6}pm7P|JwC@t+a% zOx4M(k{%4Jj7j4(&YlpD|d`VI2~+Vr|H5kI%`< zGs7|m#t-kvjVQU6Joy?@5?yL@;mh`qgnEb>iYdBUR$d zXTP2ANEBl|RV#Oyb8%kWhD?x0VVv#7NPy6|hIo*xi3ZQiw$_|#P&wk=PZF9%^LSIB zKyd?edZ)5Kt@Mcrl8Wi*9?^xxdO!u*uR{|f3c!a#U_GB-F3s$Gf}i>>q`p|!lJQ{1t7(O*`4Z-6GjG6@h=TpMT_Ge_TKNU ze_8l$r612<^HEB9B+g`&0Y=+Yn8d4}8oq9syJKl{zS(dKh!n2mCz2wcl;FHgrN}w1 ztjKtYkTzN^;Aww-mgOuEx58qy9;a;Z+LDx3B4gCwMNu=B81E@rq1Y8s5!NtM5%HGr z4l|IaAEmYWNtG@+L=VzF&O{N2iMhH^sPv)g(f9BmT}=8UU8>FMP`%nBpoGo*r z2nzoBE#IThcv5v=CNo;ah_bf$ocxRebT1N%h^yMWdB-`Q4YDVa1z1x$_-9a=7xBc5 z4h#nYKQiD=;Wxe&lPK{sK6HRMn$G|z#k9!TSV8SeSwG3IjwJ(E+J*bvb$;artcxiN7Jp?T? z8sodFP8I8Yli4!8M7;g;6f+EVlmVnWW4oFY2Zk@vqi`&)5F54T;3RNu43aK#9Bo(M zyEiTtB9HxEgVNx$`mC|hxGvP*-&YZ_EULPB$Ww3uzOmh@|KxhoP$ci$ZzQ}Mo8PfM z?7cz)3lsFH#DcZ{fb^>1%1YzkxSM5)%7Ah&#GsSvL2_HB#*Ykzb_S>5<$Lb8V?yU) zGt2HfQL=5n8);dZ|CMY5IDXfL`1;+EsGbmE zQ|_F8&mU0JUG6Gz_{`*}NBKxlWQeEgxqjGkGu6$!8xsdzvl}_pu#{V)x>Or>o3=o* zN%7Afjl2Cp{_$v%b`VVNgD=^9cC&hGDz$#N?VQRV`Z64@9lXr)vI6v~)5ka~7Zq)pt`^AJc0l%ay9Cf^EFQV7Jc!?)rzxqq^oQm09??db>zfqv>CJCgBUh z3a^3=wtwXZ$Om5xCN1BXw#=mbiR-D~Fav!wZUspFsT7|4jrSuhBIAdXQDtwA1uNqDzVt|=9RfWsHmpk}`P$hP z;wZI(XdDuNw5T2GL16P#2%+Kbbmmr#7ZoZsDtNO&7) zCWoF8tJ}I9(DrDr(C{PIYNDiV6U~*0W_{J1xUEZ zN~6SkWUY-m0V$;Z>4wJ z!~!N3%>F<3!Qhs%EjW9nWlD+=AGHj~5tG-0yeP!ay`vd;8})9*{_8IJ$825G(U8u) z+l4(96%3b`dzI$@lwlquS2%dWO!0BZNpF+EWL!NUmKo;&m^ck11A+s-EVinv_n1bT zaAN`$ngVNLsCzP-#uyZt+5e>aGv+LdTea#e;+37zyuI;FL>+=l4mtAeSlzuHm(97} z9rp<;6*DHXfWzLd+@jUz)DkId`hZ@6e@$qR5ExMM8MCJCG5-{c|0r=1sDx7 z;J=?_*XzVuCV-nS$>Eea%Mf|f^Ybw?siNp_c``SS9bLO<#9-fQxGNK;TLA~&>e?I8v`Jlz*q z@>tIGj&OWr&iz#3c<26rmhgr1qXx|?q5;g`Z+#%L;F$t$NYI)Bg)>x5J{L2GvOP~f z36TwR6FMeT@I%*LLsrcse)?69_-j~)^#828f!hdcr@~pZ2=};qi=}ExRBkYQh)^UM1tj`{dXnxlAV_rm$WW62(q(Vskcm)<%DAHm zAGi+?FRv>K0!jud&@w1^LWQ$3@iGM4X-K)G$wi9fyh}z5gndL9 z5EbM*@6=7I(RKb!kW$o<`eW-ohHBFpAd; z5ao9z0-TW~DtP~Ab~@OtQtjS72QzYYgN)LJ(N#Pu)o?C|A{BiE?Ai(vJerB(~srG(4xzJ*`e)+$H{&$jT#zhv+LRIctG+b20 z1!_seg~~UQX_N<+E$jg)2LuypkeMIVEv`lxeU64K@ovh3yLWV5t{Rih~_qxex53Fkl8%Bz}~|zCG?B)l2LbOMFeVw zoYi$wd04C?ZY^8ggWH{{NB#9{hnK(jp}XQtr`}<(4w`)N;4~7lWx6axZz$Y$G@(Y6 zs2^W3AOb+B;Vt?I0ur*UWtDOClgi(Pm(1AKX`GC>ZtHV-(A~mJbW(jv^lN#FvfD3x z@-LNw7`Jiv{XTH~ZJ>_vh+u4^3b|~B66bEFO&$F!DUN-g*&i9M%Zy`;Y-=3=G0eVK$msUP#5FLpr|bODAB1^&6tw` zH6E?81bvK#&k4T$Ep>bga^<5Hy3s(${FB3d8Q&Sq`~&s|RtlDr2_k^&{X)BFXbj6O6!goh8BbB8b!-zM|9Ai6rWBRp4%4Nh8K8RnjM z4Xk!1r2!s!B*-cBS++`b6=ZQ_`>K$wkbO#QIx(gM4>ltWU>tdZZ6M_OI<>um)}gfA zp{&{NCuK#!7J2Z3X}B2fE>I8~3RzV*^}(JA&V{L3EhM1JF1X}pc21njpnt;Q2Vs${xI;?$u za~bVJxxkJuMWWxMj1=uyX7dqzEmgv~Xs5!^L7#hwQ&S47I(dWnS08<}MzN|FUa_!`+peBW$Z1~L~7+^TM$h4(I zk30;8fdd}kn7^EJU2YjNCitF7kt~=WiUO@-l7+Ay{61eM?&~F|)A^4jYEoL*XCYxf zh#$*NZ!R&)$OY9%cARjkro}&afgtD?TTCM$%fNYt8bK`}dKRmPb+n5!D(#Ucqj-c? zAK1uekPggX5F)vB@VmrNIrfnUrHWkr6=9}VzDh|;b_%N9!st3ytBKloeD0m)$oLaN zjfet7XEMrK80$+wO@Q_*O%|o=eRz0R`{UVlpwjOBB4Mo3KUat5?3mI(=xIbKgJFB;Tv@pDLfJCW{Y#7glTDt!b({DKIitt!+Y}!u@V-iRaETb2&M& z6_p+MdVjR-(o*Rga^2RqLY3m}InShyXu%`Vvyvqroc`e=Im6Nx5s~4PYd<`W{}IGd zQzU-A@i9A$ICzeHzm@SuT3*-aDjE4qPq!hZLepd);kI}AgbN6V2|fYWU{rO+6(0su zx*L7FPP@OOA|kHXRSEB}8nMOk?a#d7i4IqM7q_}=Umzzk!n-*iq}_9?W6{Ne{$RG`r@$V7)6RO?fw1A(^yVk%nuG`0+n-+kfOM>H5KJilRBV zc8{_s_`-`No$>pbB(4AOF_kMTWhlr!YcnnG7*R17s4okJ{H&u@*)9N_MCb(@7I`O& z@`tLbdlk@~V>Nqp(ro5ds$>6rtr}pwL!L}V7#v$g8G-5Dwvfjroa2(yu&0hw1VjGB z$Y>QjtI*d@DMB0M)Wr_Y!FFe!v!ybaxxg|EdWT{Dd6T+GCUWY+B$;LYCh9 z*cWhJidXNqWbPk2*R73LYtsOpV1mHY3s-o4V^{>@g0h{ccW-~%eJZ)-*Jy@vVD_7! zM3=KJ&fJ6(cJjJaj-kUUno;L`;;k)P^n0!x6k}WIQ<73r-CC7Miws-<)lx-D;Cka@ zF6tt@Io>-dVpqpLl;D(X1j1p=UuAM_n6&#<$Azs09G@yra6+mT^9`)ra)+*XWddoy z4c)8o$INHEAs;pBM2t`s;t8E|S)8cA2C<@-v5<(oAeTE2l)A_JF2H$?5z1oSt8x0F zAks;`QNiI18Nr-XBS$nw{eqhmPTo$u z(Z(kuQ(_9;Mx7*$qkOs+6wzpl68h}$1+q=)wM81|@ahnH?-uRfh&#>J(a*kZY*NTu z-vE#0Kk}Qh+Yy-OAxJeDxz@j*tSo&}3e!8pn9Sm%e#<^Z{)Z{>Cu*rTsyi54!K zk9W)!qgn*$UkO?AsEfe-D?^evhxb1-Dk>|BL{&iPVYBQHFhRb^9i`V&v;((BeqAC( zHs5GOSSN91y$s_RJ>l#!K1bc?#g@YJX}O6W*B73)nq(F@J#oCpP|o*U|K&IrxQ`;~ zy0czqJy|`%24kZE!x5eoa4CA4HYwD%WNbWIW)LI_Yv5-3mj)eu0?Gy zu8hP)hMAbMxAFGo!B>tEU1izP_gnvlPaWDGbrl+}(>VBrHI4V-TWd^u! zVOh8gLoQLAovG(4UR@rLYPra2QKGSg&!hs%Khp?QzKho^ud~P8fg&V%i5hz{>yRb( zEPiFC-8!NVg!GHC{_fiKBk)HrI!!MKy!*3_+kmS>;}&-Av;W)ELz={!XhaO$1ChV};WqJ_81xW#h-X?@0bp+WtHD_$p{Y49qN=RGIpfJng3Z zk^x4_92H@(IX}Tqrw1s}sfg*@j&rph?S|c1#i)#4;mC1G&Cy}j{?(~{7ne-YbEQl; z=%d$40=r8tUv|HM$|k4~gJ(7Wh{_!TvgeUg>|>U*f4^9Bn~&wU zBTPOoxA&jrV9={q`*0NHFM1v^uLl-e{K9|#r7~J31K}NVPqK@zVc9t+Q zr+vUd`Xfbgrhb3v0sHBb-9bU*Co!kAs+)e(#MN`8Lhq{DUHC`FUTT$3{3dQvm@07d#;ws2vKBjunbNu(`8)-llJ)WBWq30~!=FT?Zu z#g=MSBQxw<7X)vncGdo7)o_H2O%Zg15gy@CV9iPgm;=9PTt?J^IYj3|>+VYJ9LGJq zmzAEP#Pzl#-zm=gf9N=0u;jQt4Su)I>c&Qfb{LJ{|9%0XK>g{j;bj{KQzYsMIbpoC z?c`h1$2;fg{7C5}qA2T3n?S0imYeX=7PoazO4~IO^*c+Z1Yu&`bL)=d9UMKS zX=$P!9YdAwx-V{cp9MmLY80+f!GJ$uvuX@qvw>A-ekUzW^4jbiHFUeo0Xl%mnyN&! z;Y#pk;k4Q!n2HiPmIw0^e2wK=+m@GKjQ2)33yi*WAfnQB}J&=Zgr2hdg}71Q#-hw^p9663XS|oFl5VP zy*Va2DrFWNRlbCw4$NSx?!GW`U61eXSyL>7Y$(3dV1p5#pkS!gf0yTm5s-cU z_&@kb6g8S`yR2GNI`P zZHL|ea4ky)5I(o_HdEhyqq2x6-h?BD6PL!g1(3zFCF%>TX^RMtkH{FR>{;MOqGP;A z!_)$=o-)%x)1dmL(-&GpUyf6f)w&_M@RCUVns?EIR;BPfSNBHyueFcnoBY5Knv?;_ z0Hv|BpW9r)z!g2nj))zlxk0vr6kgoE;5xxEeM+<2PVDW>)%2M(XJyTftB4?%T!3Gf zDqvMwuz$n>B?C4FWSGR!7smt{5_4h3#23dKfUV{e7MCwRwArqUSrZv%Kb_rM|AkAD z&>r2K*b3Bp|GJqcXV^b)(=~a6JxV&`OO*F$ADC)p>Jv$#vXmmbt-f%Ve92?Dn03A9 z*Rr#$ll=R_Qv7;jVn6LvXrV&wqz>JRTNb}IY%R4JQqEjd|2;S_4e@{SBI}<0N8;(a zi4=3^%5ZO8r*rbrz6Wy;W()(5h5M+AZ!AEhx_s3j5u*HBr85NcPmcFH1E3$WQ5j7z zxhoK~9zU#>?qKGV0EqQNYcuw0ahWN$OY_lD;MuOU%iS@XDwUDix5YRWvjneeE6{Si zWjH6x_Ic{C@v`Cl2Fgba$o9Iso)q4OS zF}wa2;Ei?cI1AZk(t_b+4@kd*sx8!J>a7IA_bfs9Fh@#TiM(Gw(1Jo!xbCfBq-do` zXpZt>&f=uL9|T#xMD0~fjuF#>Jlciw#y^T*++1&z!d|4=Bo-2llW9miCEAyD+{iGG z>(`edmvp5S=vSSo|KX!uzRvw>P9lcEHk>t4!B>kS-HrCLm3DD7n|;~M;BtdT4*q(2emj3YPe!~hK;RQHG1Vk5RwTn@9w^t8)iSZWmAz!rAd(u0Us8&D`#G&O?&`C3>&_KEj7Rwpl zFgQ3)X`Y9K6vV$VIBfTN#9#%&N}Kn)hTZv1H7O#RqZKmk55uy0OaRJ*>2|}J$aIDCnyUxKcUUy@=;C zHKN?)4#?s6^hZk%pzs$G)rP){dW&wGoDc*dKdNBI#KhNC%ynW_KYgfVG!t|bSgEIB zM-*Hqn`tcl)6UPqb?!Tsym3niV#A<^5{nx53J7?ym4J#FHG*5DeOI$p6i{`{S|y&fqb2YFMe+Wi!XL7 zU#3xm$ii(3BR1N-stNR%J#?=!VCuld{op*6=DL=$uKT;j8!N0;D~hj}N$eFyH`>e< zjBX|zVFJOcLwu(xUYz%s; z@tNHH4>3ZhZKZ_z&Ts_iMPJ9{rW%pHhkYt%TR~#ZGp3$9CnzR`+2>0--Fh=&mhSRJ z$~IIEesYoft3Ucdq3)~PL5*nS5Aw%k$^XpT$h>=(K#?nF*0MLjt=_$4txH%s{qi9w zAWGXXvz1kbw~#aLmH%@8%k$i0l$q2aNo$#Rp+}UqwB=C}9^noP$iTe6Bb{GP5wP-M z#!^Dx(J0>#qDoR1SzGB(|9N)7+pG7n?*N>6JZNM2h1b`e?{%XKURtv+q%fUEwCyz$ zJ?GBfY)s?LLYBqUfg$Sp%Pf#L?xQNW^JiD(9|DeH28(vO6$C-Q$vs+@R%P&HKnOJ{ z`vayK*@qK5+t^~B;KYxE^D#7D%61y99I8|7s$i|c7EVmy5pA8>sXNj>|H%2Wg`6bx6z;bnjv*#<^ zy2X+Pcwq{xen3Sh0g(^!I*joYt9bmzFGwb~?R*re0(e}`s*%wPo8E+z7EuK0okUl!T&I$NGy|jYr#sCLJA^jGD z9kLr_m4gxsm4h{g4d~7Q_IA&PI501Glvx)jJ$+Rr@Qd0p6y*9~{^OSgg#mzGb%sM# zv=>&1H%C?n%1#s2*J_vA2XfqBBU-om*_x^DZRj~)UFw2%D5wCaGWJaH$G4>X%+}XT^Z&Bw zF9}K{F>7Cpk4q$^Q4Str?6hD!f|>?sLdWUvZNJ8K>-u8NWVfE#|Iv-M1-oNes_r5EOM;_L4oqiD-Ek3H`Ys3CsmnJ< zzzz=0BhiT)87Z#IozZVn+o&wz6liUWf)J*USz&^KAyjjfEo*6hfxX=_J1iWP0gW>+ z!38+BFqnNIo-{eYm+N7@=1ibwN3VjNeL_B=@$v2HhFc4_1?5dl%`_vZi|6MHe@xRr zeC*3b_8NZJ%NSfrCjdpIj6sm?`nAZ>08jjRZkDdKW5Me2hL>Br;bhkvR_|HoCd}{* zADHz2VTFANseK5jK^&)muHC?3zqL6jskAZX3`)-iL4Se-XQvnivQ<#B{QaE4EdF3; zJ0�)iG3xkn2_JRIyE9^hbqrCtBsh5P@zJ7z2wTNDOUjC#=! z)1LshJVp@NSU+Mwev|-r;0}>G6@Br6V8?C1%}{!B*A)-v91{ z{i2Blt-*&7=Xd>ht_Zf}=%D|7V5sRSQXxb`2T+=&R8_jOb&m94`5KQxy5y8r+H literal 0 HcmV?d00001 diff --git a/kpad/.project b/kpad/.project new file mode 100644 index 0000000..5d949d3 --- /dev/null +++ b/kpad/.project @@ -0,0 +1,20 @@ +# Gambas Project File 3.0 +Title=Kpad +Startup=FMain +Version=0.0.4 +Component=gb.image +Component=gb.gui.qt +Component=gb.form +Component=gb.eval +Component=gb.eval.highlight +Component=gb.form.dialog +Component=gb.util +Component=gb.form.editor +Component=gb.settings +Component=gb.term +Component=gb.pcre +Component=gb.signal +TabSize=2 +Language=en_US +KeepDebugInfo=0 +Packager=1 diff --git a/kpad/.src/FMain.class b/kpad/.src/FMain.class new file mode 100644 index 0000000..89f3cdc --- /dev/null +++ b/kpad/.src/FMain.class @@ -0,0 +1,193 @@ +' Gambas class file + +' Notes +' Plugins are going to be tricky proably to port over +' On the up shot I won't have to check the OS first +' There are many features I want to add from the Texteditor class that aren't well documented so I'll have to look at the gambas source itself + +Public regx As New RegExp +Private txtc As Boolean ' Contents of text editor used in combination with tchng to see if a change worthy of saving is made + + +Public Sub Menu5_Click() + + CloseDoc() + Me.Close + + +End + +Public Sub Menu2_Click() + + regx.Compile("^(#!)/(.*)/(.*)") ' gambas doesn't seem to want #! and / escaped as would be the norm for pcre + ' Works for things like #!/bin/bash or #!/usr/bin/perl + 'perl -ne 'print "$1 $2 $3" if /^(#!)\/(.*)\/(.*)/' install_lastpass.sh + '#! bin bash + + Dialog.OpenFile() ' Dialog behaves a little like $_ when looking for its value + If Dialog.Path Then + TextEditor1.Load(Dialog.Path) ' Love this componet, has all the features, but not well documented + Else + + Endif + ' Some code to examine if this runable script by checking for the shebang line #!/usr/bin/perl for example + ' I think we can use PCRE here, check first line for #! using capture groups + + regx.Exec(TextEditor1.Text) + If regx.Count > 1 Then + Menu24.Caption = "With " & regx[3].Text + Menu24.Enabled = True + Else + Endif + FMain.Title = "Kpad " & Dialog.Path + txtc = TextEditor1.Text + +End + +Public Sub Menu3_Click() + + If Dialog.Path Then + TextEditor1.Save(Dialog.Path) + Else + Dialog.SaveFile() + TextEditor1.Save(Dialog.Path) + Endif + txtc = False + + +End + +'Public Sub FMain_Open() != Form_Open() + + ' much like the original perl plugin load / initialize goes here + ' we will stick with the .kpd extension for them + ' This whille be added later once we figure out how eval works and if its doable in the same way + +Private Function CloseDoc() As Boolean + + If txtc Then + Select Case Message.Question(("\n\nFile has been modified. Do you want to save it ?"), ("Yes"), ("No"), ("Cancel")) + Case 1 + Dialog.SaveFile() + TextEditor1.Save(Dialog.Path) + Case 3 + Return True + End Select + Endif + + txtc = False + + +End + +Private Sub SetModify(modded As Boolean) + + If txtc = modded Then Return + txtc = modded + + +End + + +' The following might be good to hook for detecting changes in the editor so we can make sure to save + +Public Sub TextEditor1_Change() + + SetModify(True) + +End + +Public Sub Menu4_Click() + + If Menu4.Checked Then + TextEditor1.Wrap = True + Else + TextEditor1.Wrap = False + Endif + +End + +Public Sub Menu10_Click() + + TextEditor1.HighlightString(Null, True, True) + Global.fndin = Null + Find.Show + Global.waitfor() ' wait for find form to be done + TextEditor1.HighlightString(Global.fndin, True, True) ' Seems like a good idea to highlight + Global.cbflag = 0 + +End + +Public Sub Menu12_Click() + +If Menu12.Checked Then + TextEditor1.ShowLineNumber = True +Else + TextEditor1.ShowLineNumber = False +Endif + +End + +Public Sub Menu13_Click() + +If Menu13.Checked Then + TextEditor1.ShowPosition = True +Else + TextEditor1.ShowPosition = False +Endif + +End + +Public Sub Menu14_Click() + + TextEditor1.Cut() + +End + +Public Sub Menu15_Click() + + TextEditor1.Copy() + +End + +Public Sub Menu16_Click() + + TextEditor1.Paste() + +End + +Public Sub Menu9_Click() + + Message.Info("Kpad v6 beta ported to gambas \n Parts may fall off", "Ok") + +End + +Public Sub Menu22_Click() + + TextEditor1.SelectAll() + +End + +Public Sub Menu24_Click() + + ' This does work but gambas app launched from a console, looks like gb.term.form might be option in the future + Exec [regx[3].Text, Dialog.Path] ' We might want to pop that into a visible window for shell stuff, does work + 'Shell(regx[3].Text & " " & Dialog.Path) +End + +Public Sub Menu25_Click() + + TextEditor1.Clear() + FMain.Title = "Kpad New File" + +End + +Public Sub Form_Close() + + If CloseDoc() Then Stop Event + +End + +Public Sub Form_Open() +txtc = False +End diff --git a/kpad/.src/FMain.form b/kpad/.src/FMain.form new file mode 100644 index 0000000..7af5aaf --- /dev/null +++ b/kpad/.src/FMain.form @@ -0,0 +1,102 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,65,63) + Expand = True + Text = ("Kpad") + Arrangement = Arrange.Fill + AutoResize = True + { Menu1 Menu + Text = ("File") + { Menu25 Menu + Text = ("New") + } + { Menu2 Menu + Text = ("Open") + } + { Menu3 Menu + Text = ("Save / Save As") + Shortcut = "Ctrl+S" + } + { Menu5 Menu + Text = ("Exit") + Shortcut = "Ctrl+X" + } + } + { Menu6 Menu + Text = ("Edit") + { Menu10 Menu + Text = ("Find") + } + { Menu11 Menu + Text = ("Replace") + Enabled = False + } + { Menu19 Menu + Text = ("--------") + } + { Menu14 Menu + Text = ("Cut") + } + { Menu15 Menu + Text = ("Copy") + } + { Menu16 Menu + Text = ("Paste") + } + { Menu22 Menu + Text = ("Select All") + } + { Menu20 Menu + Text = ("--------") + } + { Menu17 Menu + Text = ("Redo") + } + { Menu18 Menu + Text = ("Undo") + } + } + { Menu7 Menu + Text = ("View") + { Menu4 Menu + Text = ("Word Wrap") + Toggle = True + } + { Menu13 Menu + Text = ("Cursor Position") + Toggle = True + } + { Menu12 Menu + Text = ("Line Numbers") + Toggle = True + } + } + { Menu23 Menu + Text = ("Run") + { Menu24 Menu + Text = ("Run with") + Enabled = False + } + } + { Menu21 Menu + Text = ("Plugins") + Enabled = False + } + { Menu8 Menu + Text = ("Help") + { Menu9 Menu + Text = ("About") + } + } + { Panel1 Panel + MoveScaled(0,0.1429,64,59) + Expand = True + Arrangement = Arrange.Fill + AutoResize = True + { TextEditor1 TextEditor + MoveScaled(0,0,64,59) + Expand = True + } + } +} diff --git a/kpad/.src/Find.class b/kpad/.src/Find.class new file mode 100644 index 0000000..29c1f02 --- /dev/null +++ b/kpad/.src/Find.class @@ -0,0 +1,11 @@ +' Gambas class file + + +Public Sub Button1_Click() + + Global.fndin = TextBox1.Text + Global.cbflag = 1 + TextBox1.Clear + Find.Hide + +End diff --git a/kpad/.src/Find.form b/kpad/.src/Find.form new file mode 100644 index 0000000..022d8ea --- /dev/null +++ b/kpad/.src/Find.form @@ -0,0 +1,18 @@ +# Gambas Form File 3.0 + +{ Form Form + MoveScaled(0,0,64,16) + Text = ("Find") + Resizable = False + { Label1 Label + MoveScaled(1,5,10,4) + Text = ("Find What:") + } + { Button1 Button + MoveScaled(47,10,16,5) + Text = ("Find") + } + { TextBox1 TextBox + MoveScaled(11,5,26,4) + } +} diff --git a/kpad/.src/Global.class b/kpad/.src/Global.class new file mode 100644 index 0000000..6fcde28 --- /dev/null +++ b/kpad/.src/Global.class @@ -0,0 +1,28 @@ +' Gambas class file + +' This is annoying about gambas, but I'll have to deal with it +' A work around for lack of a real project wide global + +Export +Create Static + +' This will contain some public code used to "FIX" some sillyness in Gambas + +' Variables first some might get removed + +Public cbflag As Integer +Public txtch As Integer +Public dlgtitle As String +Public fndin As String +Public rpstr As String + + +' Allows for waiting on custom dialogs, shouldn't have had to do it like this + +Public Sub waitfor() + +Repeat + Wait 0.2 ' Low delay as we don't want to chew up all the cycles +Until Global.cbflag = 1 + +End