summaryrefslogtreecommitdiff
Diffstat
-rw-r--r--examples/iOS/GambitREPL.xcodeproj.tgz44
-rw-r--r--examples/iOS/ViewController.h5
-rw-r--r--examples/iOS/ViewController.m82
-rw-r--r--examples/iOS/grd.scm5
-rw-r--r--examples/iOS/intf#.scm2
-rw-r--r--examples/iOS/intf.scm6
-rw-r--r--include/stamp.h4
7 files changed, 117 insertions, 31 deletions
diff --git a/examples/iOS/GambitREPL.xcodeproj.tgz b/examples/iOS/GambitREPL.xcodeproj.tgz
index 9bb8840..b346bde 100644
--- a/examples/iOS/GambitREPL.xcodeproj.tgz
+++ b/examples/iOS/GambitREPL.xcodeproj.tgz
@@ -1,25 +1,19 @@
-EOGambitREPL.xcodeproj.tar
-?vk_Ei5jbi EUtM|l7,F(A ە}O
-4j׷Y<
-?wA UFr}r4jSWWvC ?\ 2^]\1 oiѱ\՛\|o{C<{Dl;nf蟬{<wD.m9va| \iyNl72T @e{z9mzbjj`6Phmy
-aҡX23ut fїZd]h
-GA~iV- f"ۦi[]=0 %*&NZͶ0[jSl|_j*
-#37<KUX`KQ0[
-#4XS #le&8VX,^K@X2*l>U\$QaP*,vȨ/r=G5l2±]E1[)eKU,6,gnQM //ޮ&Ryn,YTyFxra<j$oڪuw&_͵joq4ZmV|ovj8lN^+~smZ;M6kۭ_h񻹶fGoJ-.O%ku':A'8y͗e)r/_yzcԫ L%
-:5[̲g<vթwx0yTn|6RIW`,QV F窲 "ub $]Y5\-Z fyr>~GSZ\*`erujUern-2ZI'Z%q\qaY.kX@}`読eY_~,Dɹw,z.hEdoD1xbDl\ Թq:ɠWCCD5"]'*xuT9zF禮-]Ajg16ʅY+uf2բ0ʕArV^j1s^%D62 xu /1rCF_J"zE,yBm'$}ۻL{LS72ؠ9y",gUeS
-}hJ1I竛>_ՉUh0yy"}
-qyy_J
-hcm٤N!g=Ul <S~KJ`=(RM+i&w*( J<9ERR`V`\L!BUy6*T*0 dc
-I^eQL
-MyP3%ֿ'ڋAJeqwqRԞ? dߊڇh@
-J"eɻxs^I.S W(- &fJ̪Y
-Ь`YZFh,vFhְ,NFh,F#4XQe,[u,ѬNB։+(I(+\kI(+\mDR%q2`R fI2U$Y+ fHqI9ϒ@W-r%qҺ`NhIք2%`ViYU}jI0S- ssqFUs-օp’ԠL/>;B;eyO>ȠTs\bAk*)S@%h"4v 4m~F ?].Bv@cs%tEhhLxݟ"S$/G?.I##':A
-քr*rN}&+:i_]F]8_k G="165vW17,RkC2
-5dL^DGRv5X-Q#aIM??L[MV҆wKy->=l"tʹ_9[ڨ)s;|G<ajVXPeHww(x寰 u:QG ,,D9-szU ?X3C`e{"əisqkH|rid+j ٪˺<3Rnd R AyPV–2/㗽.C]Kӡ+PܥoE(S:U{K@&%_Vjo
-<c)2-OZ?eH~J0ur٥|I,濢"ZaPe4h hA+jK&~U.QU1|B0bB9Eb-pBB8AP\Ds)?rO8YSniϔ4 rfSN4] 7K9AY)'hf)M4rg'R^l<{ȦDr(GD3Q `Qn(M CEw(GLBL(7xG2!Ls(/\2a<*nEfBQȥ.ԛq?J@%?O2OL3)Swʔ?72OL)Skʴd>4e[2W-GLٖoٜ.9|Ne^6Y2.Gs>?<N0, ?Y$Ciجq͉V6&o[.Gl 2<ӘgC7DMc!*9s_vn޶b.<!cJGa"XE7V=^!}ޗ}G_"&z"<&MnpZq*%
-ƟCtOi; RY!z
-79(J&ɝ&lǓF6|8K&)'M9G
-{KS׭jBg%DvLv:v(vvvvvΥvDvE6EŶs\E`Mmt+)_mQJBhOStNʹޚ^ԈЎ>gŽ '}<t'C 8""6vjx*tT'x
-mxO|)蠑)tAc<4`S@<4Sp`< 6`#< :XOᩨQ2i'<t0'GVx*x҅DL
-#7 tDyj?ŧ566v3׷ֵw y4 'wÑ7 o<2)tA>Z?7cѻ&0F}dO]?E|8գï֨?d:&!$sw֨g7MoncT{TӉ5&8rW^TлQ1~4G$c֎w߷/n4N& ˳]8oސM:n˧oݾwh75?7痩5{#rbjq蜯[h:&;?uÏ;kڨ7d0czsts/s՝:Ctއ;r/3bv͈l2%M$m:5ج{Ɯ Z7Lw 6|ݷ}oWm+t_̞`7 [brot?Ҹa]itZqM}LnHCksAwzT!E WvY!rW缤':9u~;w62pA_wOie^٧ yodMdْd=cvmOY26w&_<>vLlfikjЬwE {=
-#ﯾϷo?u
+HOGambitREPL.xcodeproj.tar
+8zaC[`Jf-Z8H(%&1KO+ӭ)VvUClHk5QMP˨'jefn~aL$RYjeEGrk-Z6DFyIUTr@cu?<U/
+O7kU6QXfA"<O%0Sfva~uoB 413,s4Ogy P,=hA,<h8 tSqIZ8 tSqIt : tSqI8Y tSqI l:˩$NT\N.T\K'r*.H YVeQe  e)R`,<DDRfNa)-
+ XMp)[ lVXh]KC
+˴2e@|WaV )f
+˄#U$s,mbY^ٮC3<LP(-BA6[ŇeYxy ]׻(rRmwq`,+?WmE8݄UQTZ)`\YdkZU&k+ײq0YzlΕ5j9}#W֬ed훹Z &k+kղor0YVX"ၲ |ZC`⁲ |zeyda\ÇeY侾xƬWn0/Th|,^)2%(=cU^_a +Kբ
+*Y6iX\&Qi|Aj!L,?>NW+FZDh?]HKPW$-b;r )mc5<6=NB voƓݺ:h z2)mca}]o竛>&_ՉU˰)"Ɇg
+qyyJ
+hcoW٤a!YJ"6Z%m— Aˡ?-Mu=>@lg|<V"لʣxgJyɗǔBs&ʥ)P,VQc+GXڭ<)$@<Y`0S\y3ʣy@s,ݭ?'ڃA&cvq,=?5I }b&@"|"F
+ Ѳ8Z8 J|ii,+kXVxۈdSK
+d_K
+dkK"Zq&-* *-kվ/-* f
+OEKWOx:$4.',O>8['`'fݲ';OGYCPʠ,sn.SIk
+dSB/&†P/MK ?^] ?^~6~"6~Z66$} l,6%2?EOI >BqI6 >B#rif}F4('@Ii:%ˢCs" ?
+D}*;>=Q >kġ\Gaa8?]rn9+:5)xt|݊J@gwd`"zzHY櫓(P'89䬃gjO.9gM@y89''smRƚPe禜L -g'z09e4]bžI/5kjOH iIpeԺ B):׬j}ށTG\| C,.7xA#gMۿEZf{y9m%l$ Bii?iW5(q'O|lTe%:0x
+@J G-sVY8% 4ȥDX_zPuàDI(?PJO)Q~H;%ZoNɖĂS%qڔli 5~buny%^ E ).ҥZ(9}Pt}1:,,сˇq˅/6G n, cqr¼yd7RЉoH=܌AbNxn3% ی2|<\"]+`vWW;kٹh=En@&}X497UnKT VD!'Ɲ)tI"
+תRBנR/C)]>)M+:)͊XR+};]!PwV|<(HahPr1t9xC0An B!X y/xȕCpa~ sr |ǃ@GBx(*1CѠ^H 2a@  u@ gb,< 0k
+h_ĝؽ[?7/u;ƿo8`} zv{],+oit??aG;8BӣO Ϗ~oǓ?E??bn{#ߛîP2~P 7Q}N]yQAﺘ^w"y=t3^le<;G;iLo5!zqoސu߻)
+jﺮ? P3! MisAwT!EvڃRo|x| o:.{ξzx޽+x[Ӏļ])u  Z eQbCut <w:&=YZ-ZZ<4k~c񦟆Ga1o_o?~|#_
diff --git a/examples/iOS/ViewController.h b/examples/iOS/ViewController.h
index b2b1c34..0e504e5 100644
--- a/examples/iOS/ViewController.h
+++ b/examples/iOS/ViewController.h
@@ -7,6 +7,7 @@
#import <UIKit/UIKit.h>
#import <CoreLocation/CoreLocation.h>
+#import <MessageUI/MessageUI.h>
// ViewController methods callable from Scheme.
@@ -26,6 +27,8 @@ void set_webView_content(int view, NSString *str, NSString *base_url_path, BOOL
void set_webView_content_from_file(int view, NSString *path, NSString *base_url_path, BOOL enable_scaling, NSString *mime_type);
NSString *eval_js_in_webView(int view, NSString *script);
void open_URL(NSString *url);
+BOOL send_SMS(NSString *recipient, NSString *messsage);
+BOOL pick_image();
void set_idle_timer(BOOL enable);
void set_toolbar_alpha(double alpha);
void segm_ctrl_set_title(int segment, NSString *title);
@@ -44,7 +47,7 @@ void setup_location_updates(double desired_accuracy, double distance_filter);
#define NB_TEXTVIEWS 2
#define NB_IMAGEVIEWS 2
-@interface ViewController : UIViewController <UITextViewDelegate,UIWebViewDelegate,UIAlertViewDelegate,CLLocationManagerDelegate> {
+@interface ViewController : UIViewController <UITextViewDelegate,UIWebViewDelegate,UIAlertViewDelegate,CLLocationManagerDelegate,MFMessageComposeViewControllerDelegate,UINavigationControllerDelegate,UIImagePickerControllerDelegate> {
UISegmentedControl *segmCtrl;
UIWebView *webViews[NB_WEBVIEWS];
diff --git a/examples/iOS/ViewController.m b/examples/iOS/ViewController.m
index 0adc064..dcd8d30 100644
--- a/examples/iOS/ViewController.m
+++ b/examples/iOS/ViewController.m
@@ -621,6 +621,88 @@ void open_URL(NSString *url) {
}
+BOOL send_SMS(NSString *recipient, NSString *message) {
+
+ ViewController *vc = theViewController;
+ if (vc != nil)
+ {
+ if ([MFMessageComposeViewController canSendText])
+ {
+ MFMessageComposeViewController *controller = [[[MFMessageComposeViewController alloc] init] autorelease];
+
+ controller.body = message;
+ controller.recipients = [NSArray arrayWithObjects:recipient,nil];
+ controller.messageComposeDelegate = vc;
+ [vc presentModalViewController:controller animated:YES];
+
+ return YES;
+ }
+ }
+
+ return NO;
+}
+
+
+- (void)messageComposeViewController:(MFMessageComposeViewController *)controller didFinishWithResult:(MessageComposeResult)result
+{
+ NSString *event;
+
+ [self dismissModalViewControllerAnimated:YES];
+
+ switch (result) {
+
+ default:
+ case MessageComposeResultFailed:
+ event = @"SMS-failed";
+ break;
+
+ case MessageComposeResultCancelled:
+ event = @"SMS-cancelled";
+ break;
+
+ case MessageComposeResultSent:
+ event = @"SMS-sent";
+ break;
+ }
+
+ [self send_event:event];
+}
+
+
+BOOL pick_image() {
+
+ ViewController *vc = theViewController;
+ if (vc != nil)
+ {
+ if ([UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceRear] ||
+ [UIImagePickerController isCameraDeviceAvailable: UIImagePickerControllerCameraDeviceFront])
+ {
+ UIImagePickerController *controller = [[[UIImagePickerController alloc] init] autorelease];
+
+ controller.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType: UIImagePickerControllerSourceTypeCamera];
+
+ controller.sourceType = UIImagePickerControllerSourceTypeCamera;
+
+ controller.delegate = vc;
+
+ [vc presentModalViewController:controller animated:YES];
+
+ return YES;
+ }
+ }
+
+ return NO;
+}
+
+
+- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
+{
+ [picker dismissModalViewControllerAnimated:YES];
+
+ [self send_event:@"pick-image:"];
+}
+
+
void set_idle_timer(BOOL enable) {
[UIApplication sharedApplication].idleTimerDisabled = !enable;
diff --git a/examples/iOS/grd.scm b/examples/iOS/grd.scm
index ac998b6..5eb95ce 100644
--- a/examples/iOS/grd.scm
+++ b/examples/iOS/grd.scm
@@ -199,7 +199,6 @@ EOF
(let* ((port (open-tcp-client
(list server-address: '#u8(73 125 226 48) ;; google.com
port-number: 443)))
- (_ (thread-sleep! 2))
(ip (socket-info-address
(tcp-client-self-socket-info port))))
(close-port port)
@@ -217,7 +216,7 @@ EOF
(and port
(try-catch
(begin
- (input-port-timeout-set! port 2.0)
+ (input-port-timeout-set! port 1.0)
(let ((header (read port)))
(input-port-timeout-set! port +inf.0)
(if (equal? header 'Gambit)
@@ -288,7 +287,7 @@ EOF
(let ((conn (REPL-server-connect addr)))
(if conn
(found conn))
- (sleep 0.5)))
+ (sleep 1.0)))
(define (scan-local-REPL-servers)
(discover-local-REPL-servers
diff --git a/examples/iOS/intf#.scm b/examples/iOS/intf#.scm
index a33419d..260966a 100644
--- a/examples/iOS/intf#.scm
+++ b/examples/iOS/intf#.scm
@@ -73,6 +73,8 @@ set-webView-content-from-file
eval-js-in-webView
open-URL
+send-SMS
+pick-image
set-idle-timer
set-toolbar-alpha
segm-ctrl-set-title
diff --git a/examples/iOS/intf.scm b/examples/iOS/intf.scm
index d881841..4fbf885 100644
--- a/examples/iOS/intf.scm
+++ b/examples/iOS/intf.scm
@@ -422,6 +422,12 @@ c-declare-end
(define open-URL
(c-lambda (NSString*) void "open_URL"))
+(define send-SMS
+ (c-lambda (NSString* NSString*) bool "send_SMS"))
+
+(define pick-image
+ (c-lambda () bool "pick_image"))
+
(define set-idle-timer
(c-lambda (bool) void "set_idle_timer"))
diff --git a/include/stamp.h b/include/stamp.h
index 5d40a1a..f50fcde 100644
--- a/include/stamp.h
+++ b/include/stamp.h
@@ -2,5 +2,5 @@
* Time stamp of last source code repository commit.
*/
-#define ___STAMP_YMD 20120222
-#define ___STAMP_HMS 164157
+#define ___STAMP_YMD 20120225
+#define ___STAMP_HMS 135406