⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 toupperda.c

📁 在palm os上的DA程序编程
💻 C
📖 第 1 页 / 共 2 页
字号:
//		FldSetSelection( param->fieldptr, param->start, param->end );		FldSetSelection( param->fieldptr, 0, 0 );		FldDelete( param->fieldptr, param->start, param->end );		FldInsert( param->fieldptr, buf, StrLen( buf ) );		FldSetInsertionPoint( param->fieldptr, param->updatedEnd );	}	return;}static Word getSelectedText(char *buf, Param *param){	FieldPtr field;	CharPtr ptr;	Word start, end;	Word len;		field = GetFocusFieldPtr();		if (field != NULL				&& (ptr = FldGetTextPtr(field)) != NULL && *ptr != '\0') {		FldGetSelection(field, &start, &end);		param->end = end;		len = end - start;		if( len == 0 ) {			FrmAlert( NoselectionAlert );		}		else if( len < MAX_TEXT) {			StrNCopy( buf, ptr + start, len );			*(buf + len) = '\0';		} else {			len = 0;			FrmAlert( ToolongstrAlert );		}		param->fieldptr = field;		param->start = start;		param->updatedEnd = end;    } else {		FrmAlert( NoselectionAlert );		len = 0;		param->fieldptr = NULL;		param->start = 0;		param->updatedEnd = 0;	}	return len;}static FieldPtr GetFocusFieldPtr( void ){	FormPtr form;	Word focus;		if (FrmGetActiveFormID() == 0		|| (form = FrmGetActiveForm()) == NULL		|| (focus = FrmGetFocus(form)) == noFocus) {	return NULL;	}	switch (FrmGetObjectType(form, focus)) {	case frmFieldObj:		return FrmGetObjectPtr(form, focus);	case frmTableObj:		return TblGetCurrentField(FrmGetObjectPtr(form, focus));	default:		return NULL;	}}static void setAndDrawFields( Param *param ){//	Char str1[MAX_DISPLAY], str2[MAX_DISPLAY], str3[MAX_DISPLAY];	FieldPtr fieldptr;	FormPtr form;		form = FrmGetActiveForm();	FrmSetControlValue( form, FrmGetObjectIndex(form, mainButtonJPPushButton ), 			param->mode & MODE_JP );	FrmSetControlValue( form, FrmGetObjectIndex(form, mainButtonUSPushButton ), 			param->mode & MODE_US );	FrmSetControlValue( form, FrmGetObjectIndex(form, mainButtonEUPushButton ), 			param->mode & MODE_EU );		fieldptr = FrmGetObjectPtr(form, FrmGetObjectIndex(form, mainFIeldUpperField));	strToUpper( (uchar *)param->buf2, (uchar *)param->buf1, param->mode );	strNCopyPunct( param->str1, param->buf2, MAX_DISPLAY - 1 );	FldSetTextPtr(fieldptr, param->str1);	FldRecalculateField(fieldptr, true);		fieldptr = FrmGetObjectPtr(form, FrmGetObjectIndex(form, mainFieldLowerField));	strToLower( (uchar *)param->buf2, (uchar *)param->buf1, param->mode );	strNCopyPunct( param->str2, param->buf2, MAX_DISPLAY - 1 );	FldSetTextPtr(fieldptr, param->str2);	FldRecalculateField(fieldptr, true);		fieldptr = FrmGetObjectPtr(form, FrmGetObjectIndex(form, mainFiledCapsField));	strToCaps( (uchar *)param->buf2, (uchar *)param->buf1, param->mode );	strNCopyPunct( param->str3, param->buf2, MAX_DISPLAY - 1 );	FldSetTextPtr(fieldptr, param->str3);	FldRecalculateField(fieldptr, true);		FrmDrawForm(FrmGetActiveForm());		return;}static char *strNCopyPunct( char *dst, char *src, int limit ){	unsigned char *p;	StrNCopy( dst, src, limit );	p = dst;	while( *p != '\0' ) {		if( *p < ' ' ) {			*p = ' ';		}		p ++;	}	return;}static unsigned char *strToLower( unsigned char *dest, unsigned char *src, Char mode ){	unsigned char c, *p;		p = dest;	while( (c = *(src ++)) != '\0' ) {		if( mode == MODE_JP && c >= 0x80 ) {			*(p ++) = c;			*(p ++) = *(src ++);		} else {			*(p ++) = toLowerEU( c, mode );		}	}	*p = '\0';	return dest;}static unsigned char *strToUpper( unsigned char *dest, unsigned char *src, Char mode ){	unsigned char c, *p;		p = dest;	while( (c = *(src ++)) != '\0' ) {		if( mode == MODE_JP && c >= 0x80 ) {			*(p ++) = c;			*(p ++) = *(src ++);		} else {			*(p ++) = toUpperEU( c, mode );		}	}	*p = '\0';	return dest;}static unsigned char *strToCaps( unsigned char *dest, unsigned char *src, Char mode ){	unsigned char c, *s, *d;		s = src;	d = dest;	while( (c = *s) != '\0' ) {		if( mode == MODE_JP && c >= 0x80 ) {			s ++;			*(d ++) = c;			*(d ++) = *(s ++);		} else {			if( src == s || isDelimiter(*(s - 1), mode) ) {				c = toUpperEU( c, mode );			} else {				c = toLowerEU( c, mode );			}			s ++;			*(d ++) = c;		}	}	*d = '\0';	return dest;}static uchar toUpperEU( unsigned char c, Char mode ){	if( c >= 'a' && c <= 'z' ) {		c -= ('a' - 'A');	} else if ( c >= 224 && c <= 254 && mode == MODE_EU ) {		c -= (224 - 192);	} else if ( c == 255 && mode == MODE_EU ) {		c = 159;	}	return c;}static uchar toLowerEU( unsigned char c, Char mode ){	if( c >= 'A' && c <= 'Z' ) {		c -= ('A' - 'a');	} else if( c >= 192 && c <= 222 && mode == MODE_EU ) {		c -= (192 - 224);	} else if( c == 159 && mode == MODE_EU ) {		c = 255;				}	return c;}static Boolean isDelimiter( unsigned char c, Char mode ){	if( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') 			|| (c >= '0' && c <= '9') || c == '_' || c == '\'') {		return false;	} else if( mode == MODE_EU && 			(( c >= 192 && c <= 255) || c == 159 ) ) {		return false;	} else {		return true;	}}static void LoadFromPrefs( Param *param ){	SWord prefsVersion;	ToUpperPreferenceType prefs;	Word prefsSize;	int availPrefs;	SystemPreferencesType sysPrefs;	//char str[10];		PrefGetPreferences( &sysPrefs );		prefsSize = sizeof (ToUpperPreferenceType);	if( sysPrefs.version >= 2 ) {		prefsVersion = PrefGetAppPreferences( ToUpperAppID, 0, &prefs, &prefsSize, true );		availPrefs = ( prefsVersion == ToUpperPrefVersionNum );	} else {		availPrefs = PrefGetAppPreferencesV10( ToUpperAppID, 0, &prefs, prefsSize );	}	if( ! availPrefs ) {		param->mode = MODE_US;		param->lastX = mainFormLeft;		param->lastY = mainFormTop;	} else {		param->mode	= prefs.mode;		param->lastX = prefs.lastX;		param->lastY = prefs.lastY;		//WinDrawChars( StrIToA(str, prefs.japanese), 1, 0, 16 );		//WinDrawChars( StrIToA(str, prefs.lastX), StrLen(str), 0, 22 );		//WinDrawChars( StrIToA(str, prefs.lastY), StrLen(str), 0, 32 );	}	return;}static void SaveToPrefs( Param *param ){	ToUpperPreferenceType prefs;	SystemPreferencesType sysPrefs;	//char str[10];	PrefGetPreferences( &sysPrefs );		prefs.mode	= param->mode;	prefs.lastX = param->lastX;	prefs.lastY = param->lastY;	//WinDrawChars( StrIToA(str, prefs.lastX), StrLen(str), 0, 22 );	//WinDrawChars( StrIToA(str, prefs.lastY), StrLen(str), 0, 32 );	if( sysPrefs.version >= 2 ) {		PrefSetAppPreferences( ToUpperAppID, 0, ToUpperPrefVersionNum, &prefs, 				sizeof (ToUpperPreferenceType), true);		//WinDrawChars( StrIToA(str, prefs.japanese), 1,0,0 );	} else {		PrefSetAppPreferencesV10( ToUpperAppID, ToUpperPrefVersionNum, &prefs, 				sizeof (ToUpperPreferenceType));	}	return;}/*  $Revision: 1.7 $ * *  $Log: ToUpperDA.c,v $ *  Revision 1.7  2002/06/15 16:29:30  kterada *  - fix GNU GPL * *  Revision 1.6  2001/12/25 16:29:52  kterada *  GPLed * *  Revision 1.5  2001/12/25 16:17:54  kterada *  *** empty log message *** * *  Revision 1.4  2001/03/17 16:00:21  kterada *  supress un-punct char * *  Revision 1.3  2001/02/08 15:59:35  kterada *  support single-quote handling * *  Revision 1.2  2001/02/08 15:28:43  kterada *  port to GCC env. * *  Revision 1.1  2001/01/19 15:49:46  kterada *  add all items for repository * *  Revision 1.4  2001/01/17 09:41:32  kterada *  Remove garbage strings display * *  Revision 1.3  2001/01/17 08:47:30  kterada *  Support OS3.5 * *  Revision 1.2  2000/07/03 17:53:43  kterada *  Fixed bug for modal form * *  Revision 1.1  2000/07/03 17:36:14  kterada *  Initial revision * * */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -