📄 toupperda.c
字号:
// 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 + -