home *** CD-ROM | disk | FTP | other *** search
- //////////////////////////////////////////////////////////
- // Some definitions for lacalization
- //////////////////////////////////////////////////////////
-
- #define LOC(a) GetDITO_englishString(m_ ## a)
- #define OPENCAT OpenDITO_englishCatalog(NULL,NULL)
- #define CLOSECAT CloseDITO_englishCatalog()
-
- #define IPIC0 "\033I[6:38]"
- #define IPIC1 "\033I[6:34]"
- #define IPIC2 "\033I[6:39]"
-
- //////////////////////////////////////////////////////////
- // Language specific InputData
- //////////////////////////////////////////////////////////
-
- struct DITO_InputData {
- Object
- *obj, // First pointer has to be the pointer
- // to the whole created object
- *remark, // String
- *rremark, // String
- *plural, // String
- *verb0, // String
- *verb1; // String
- };
-
- //////////////////////////////////////////////////////////
- // Language specific OutputData
- //////////////////////////////////////////////////////////
-
- struct DITO_OutputData {
- Object
- *obj, // First Pointer points to created object
-
- *kind, // Text
- *info, // Floattext
- *grammar, // Group
- *weight, // Text
- *text1, // Text
- *text2; // Text
- };
-
- //////////////////////////////////////////////////////////
- // Get Extension Info
- //////////////////////////////////////////////////////////
-
- char *Types[5];
-
- SAVEDS ASM struct DITO_ExtInfo *DITO_GetExtInfo(void)
- {
- static struct DITO_ExtInfo info;
-
- Types[0] = LOC(part0);
- Types[1] = LOC(part1);
- Types[2] = LOC(part2);
- Types[3] = LOC(part2);
-
- info.Language = LOC(language);
- info.Author = AUTHOR;
- info.Version = VERSIONSTR;
- info.Date = __DATE__;
- info.Description = LOC(description);
-
- info.NumTypes = 4;
- info.Types = Types;
-
- return(&info);
- }
-
- //////////////////////////////////////////////////////////
- // Create Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM struct DITO_InputData *DITO_CreateInput(REG(a0) Object *app)
- {
- struct DITO_InputData *data;
- static char *strtab[5];
-
- strtab[0] = LOC(part0);
- strtab[1] = LOC(part1);
- strtab[2] = LOC(part2);
- strtab[3] = LOC(part3);
- strtab[4] = 0;
-
- if(data = AllocVec(sizeof(struct DITO_InputData),0)){
-
- data->obj = RegisterObject,
-
- MUIA_CycleChain, 1,
- MUIA_ShortHelp, "AMIGA + t",
- MUIA_Register_Titles, strtab,
- MUIA_Frame, MUIV_Frame_Group,
-
- // Übriges
- // *******
- Child, VGroup,
- Child, LLabel(LOC(remark)),
- Child, data->remark = StringObject,
- MUIA_CycleChain, 1,
- MUIA_Frame, MUIV_Frame_String,
- MUIA_String_Format, MUIV_String_Format_Center,
- MUIA_String_AdvanceOnCR, TRUE,
- End,
- End,
-
- // Substantiv
- // **********
- Child, VGroup,
- Child, LLabel(LOC(plural)),
- Child, data->plural = StringObject,
- MUIA_CycleChain, 1,
- MUIA_Frame, MUIV_Frame_String,
- MUIA_String_Format, MUIV_String_Format_Center,
- MUIA_String_AdvanceOnCR, TRUE,
- End,
- End,
-
- // Verb
- // ****
- Child, ColGroup(2),
- Child, LLabel(LOC(verb0)),
- Child, LLabel(LOC(verb1)),
- Child, data->verb0 = StringObject,
- MUIA_CycleChain, 1,
- MUIA_Frame, MUIV_Frame_String,
- MUIA_String_Format, MUIV_String_Format_Center,
- MUIA_String_AdvanceOnCR, TRUE,
- End,
- Child, data->verb1 = StringObject,
- MUIA_CycleChain, 1,
- MUIA_Frame, MUIV_Frame_String,
- MUIA_String_Format, MUIV_String_Format_Center,
- MUIA_String_AdvanceOnCR, TRUE,
- End,
- End,
-
- // Ausdruck
- // ********
- Child, VGroup,
- Child, LLabel(LOC(remark)),
- Child, data->rremark = StringObject,
- MUIA_CycleChain, 1,
- MUIA_Frame, MUIV_Frame_String,
- MUIA_String_Format, MUIV_String_Format_Center,
- MUIA_String_AdvanceOnCR, TRUE,
- End,
- End,
- End;
-
- return(data);
- }
-
- return(0);
- }
-
- //////////////////////////////////////////////////////////
- // Dispose Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_DisposeInput(REG(a0) struct DITO_InputData *data)
- {
- if(data) FreeVec(data);
- }
-
- //////////////////////////////////////////////////////////
- // Clear Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_ClearInput(REG(a0) struct DITO_InputData *data)
- {
- set(data->remark, MUIA_String_Contents, "");
- set(data->rremark,MUIA_String_Contents, "");
- set(data->plural, MUIA_String_Contents, "");
- set(data->verb0, MUIA_String_Contents, "");
- set(data->verb1, MUIA_String_Contents, "");
- }
-
- //////////////////////////////////////////////////////////
- // Write Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_WriteInput(REG(a0) struct DITO_InputData *data, REG(a1) struct DITO_Entry *entry)
- {
- set (data->obj, MUIA_Group_ActivePage, DITO_GetVal (entry, DITO_Val_Type));
-
- DITO_ClearInput (data);
-
- switch(DITO_GetVal (entry, DITO_Val_Type)){
-
- // Default
- case 0:
- set(data->remark, MUIA_String_Contents, DITO_GetStr(entry,0));
- break;
-
- // Noun
- case 1:
- set(data->plural, MUIA_String_Contents, DITO_GetStr(entry,0));
- break;
-
- // Verb
- case 2:
- set(data->verb0, MUIA_String_Contents, DITO_GetStr(entry,0));
- set(data->verb1, MUIA_String_Contents, DITO_GetStr(entry,1));
- break;
-
- // Expression
- case 3:
- set(data->rremark, MUIA_String_Contents, DITO_GetStr(entry,0));
- break;
-
- }
- }
-
- //////////////////////////////////////////////////////////
- // Read Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM BOOL DITO_ReadInput(REG(a0) struct DITO_InputData *data, REG(a1) struct DITO_EntryInfo *vi, REG(a2) struct DITO_Entry *entry)
- {
- BOOL changed = FALSE;
-
- get (data->obj, MUIA_Group_ActivePage, &vi->type);
-
- switch(vi->type){
-
- // Default
- case 0:
- vi->snum=1;
- get (data->remark, MUIA_String_Contents, &vi->gr[0]);
- if(entry) changed = strcmp(DITO_GetStr(entry,0), vi->gr[0]);
- break;
-
- // Noun
- case 1:
- vi->snum=1;
- get (data->plural, MUIA_String_Contents, &vi->gr[0]);
- if(entry) changed = strcmp(DITO_GetStr(entry,0), vi->gr[0]);
- break;
-
- // Verb
- case 2:
- vi->snum=2;
- get (data->verb0, MUIA_String_Contents, &vi->gr[0]);
- get (data->verb1, MUIA_String_Contents, &vi->gr[1]);
- if(entry){
- changed =
- strcmp(DITO_GetStr(entry,1), vi->gr[1])
- || strcmp(DITO_GetStr(entry,0), vi->gr[0]);
- }
- break;
-
- // Expression
- case 3:
- vi->snum=1;
- get (data->rremark, MUIA_String_Contents, &vi->gr[0]);
- if(entry) changed = strcmp(DITO_GetStr(entry,0), vi->gr[0]);
- break;
-
- }
- return(changed);
- }
-
- //////////////////////////////////////////////////////////
- // Activate first gadget, Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM Object *DITO_ActivateFirstInput(REG(a0) struct DITO_InputData *data)
- {
- LONG p;
-
- get (data->obj, MUIA_Group_ActivePage, &p);
- switch(p){
- case 0: return(data->remark);
- case 1: return(data->plural);
- case 2: return(data->verb0);
- case 3: return(data->rremark);
- }
- }
-
- //////////////////////////////////////////////////////////
- // Refresh fonts, Input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_FontsInput(REG(a0) struct DITO_InputData *data, REG(d0) APTR word, REG(d1) APTR trans, REG(d2) APTR phon)
- {
- set(data->remark, MUIA_Font, word);
- set(data->rremark, MUIA_Font, word);
- set(data->plural, MUIA_Font, word);
- set(data->verb0, MUIA_Font, word);
- set(data->verb1, MUIA_Font, word);
- }
-
- //////////////////////////////////////////////////////////
- // Update input
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_UpdateInput(REG(a0) struct DITO_InputData *data)
- {
- }
-
- //////////////////////////////////////////////////////////
- // Create output object
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM struct DITO_OutputData *DITO_CreateOutput(REG(a0) Object *app)
- {
- struct DITO_OutputData *data;
-
- if(data = AllocVec(sizeof(struct DITO_OutputData),0)){
-
- data->obj = VGroup,
- Child, VGroup,
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_VertDisappear, 1,
- Child, HGroup,
- MUIA_Background, MUII_TextBack,
- MUIA_Frame, MUIV_Frame_Text,
- Child, data->kind = TextObject,
- MUIA_Text_PreParse, "\033c\033b",
- MUIA_Weight, 5000,
- // MUIA_Text_SetMin, TRUE,
- End,
- Child, data->weight = TextObject,
- MUIA_Text_Contents, IPIC0,
- MUIA_Text_SetMin, TRUE,
- End,
- End,
- Child, data->info = ListviewObject,
- MUIA_Frame, MUIV_Frame_Text,
- MUIA_Background, MUII_TextBack,
- MUIA_Listview_Input, FALSE,
- // MUIA_Listview_ScrollerPos, MUIV_Listview_ScrollerPos_None,
- MUIA_Listview_List, FloattextObject,
- MUIA_Background, MUII_TextBack,
- // MUIA_Font, trans,
- MUIA_List_Format, "p=\033c",
- End,
- End,
- End,
- Child, data->grammar = VGroup,
- MUIA_FrameTitle, LOC(grammar),
- MUIA_Frame, MUIV_Frame_Group,
- MUIA_Group_PageMode, TRUE,
-
- // Rest
- Child, TextObject,
- MUIA_Text_Contents, LOC(nocom),
- End,
-
- // Noun
- Child, data->text1 = TextObject,
- MUIA_ShortHelp, LOC(bubnoun),
- MUIA_Frame, MUIV_Frame_Text,
- MUIA_Background, MUII_TextBack,
- MUIA_Text_Contents, "\033c\n",
- End,
-
- // Verb
- Child, data->text2 = TextObject,
- MUIA_ShortHelp, LOC(bubverb),
- MUIA_Frame, MUIV_Frame_Text,
- MUIA_Background, MUII_TextBack,
- MUIA_Text_Contents, "\033c\n\n",
- End,
-
- // Expression
- Child, TextObject,
- MUIA_Text_Contents, LOC(nocom),
- End,
- End,
-
- End;
-
- return(data);
- }
-
- return(0);
- }
-
- //////////////////////////////////////////////////////////
- // Dispose object
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_DisposeOutput(REG(a0) struct DITO_OutputData *data)
- {
- if(data) FreeVec(data);
- }
-
-
- //////////////////////////////////////////////////////////
- // Fill output
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_WriteOutput(REG(a0) struct DITO_OutputData *data, REG(a1) struct DITO_Entry *entry)
- {
- static char str[1000];
- static char form[500];
- static char *imptab[3];
-
- imptab[0] = IPIC0;
- imptab[1] = IPIC1;
- imptab[2] = IPIC2;
-
- set(data->weight, MUIA_Text_Contents, imptab[DITO_GetVal (entry, DITO_Val_Weight)]);
-
- set(data->grammar, MUIA_Group_ActivePage, DITO_GetVal (entry, DITO_Val_Type));
-
- sprintf (str,"\n\033b%s\033n\n\n%s\n\n\033i%s",
- DITO_GetStr(entry, DITO_Str_Word),
- DITO_GetStr(entry, DITO_Str_Translation),
- DITO_GetStr(entry, DITO_Str_Note)
- );
-
- switch(DITO_GetVal (entry, DITO_Val_Type)){
-
- // Default
- case 0:
- set(data->kind, MUIA_Text_Contents, LOC(part0));
- break;
-
- // Noun
- case 1:
- set(data->kind, MUIA_Text_Contents, LOC(part1));
- if(DITO_GetStr(entry, 0)[0]){
- sprintf(form,"\033c%s\n\0338%s",DITO_GetStr(entry,DITO_Str_Word),DITO_GetStr(entry, 0));
- }else{
- sprintf(form,"\033c%s\n%ss",DITO_GetStr(entry,DITO_Str_Word),DITO_GetStr(entry, DITO_Str_Word));
- }
- set(data->text1, MUIA_Text_Contents, form);
- break;
-
- // Verb
- case 2:
- set(data->kind, MUIA_Text_Contents, LOC(part2));
- strcpy(form,"\033c");
- strcat(form,DITO_GetStr(entry,DITO_Str_Word));
- if(DITO_GetStr(entry, 0)[0]){
- strcat(form,"\n\0338");
- strcat(form,DITO_GetStr(entry,0));
- }else{
- strcat(form,"\n\0330");
- strcat(form,DITO_GetStr(entry,DITO_Str_Word));
- strcat(form,"ed");
- }
- if(DITO_GetStr(entry, 1)[0]){
- strcat(form,"\n\0338");
- strcat(form,DITO_GetStr(entry,1));
- }else{
- strcat(form,"\n\0330");
- strcat(form,DITO_GetStr(entry,DITO_Str_Word));
- strcat(form,"ed");
- }
- set(data->text2, MUIA_Text_Contents, form);
- break;
-
- // Expression
- case 3:
- set(data->kind, MUIA_Text_Contents, LOC(part3));
- break;
-
- }
-
- set(data->info, MUIA_Floattext_Text, str);
- }
-
- /// DITO_FontsOutput
- SAVEDS ASM void DITO_FontsOutput (REG(a0) struct DITO_OutputData *data, REG(d0) APTR word, REG(d1) APTR trans, REG(d2) APTR phon){
- set(data->text1, MUIA_Font, word);
- set(data->text2, MUIA_Font, word);
- }
- ///
- //////////////////////////////////////////////////////////
- // Update output
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM void DITO_UpdateOutput(REG(a0) struct DITO_OutputData *data, REG(a1) struct DITO_Entry *entry)
- {
- }
-
- //////////////////////////////////////////////////////////
- // Parse Input String
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM Object *DITO_ParseInput (REG(a0) struct DITO_InputData *data, REG(a1) char *in, REG(a2) char *out){
- return(DITO_ActivateFirstInput(data));
- }
-
- //////////////////////////////////////////////////////////
- // Create a grammar String
- //////////////////////////////////////////////////////////
-
- SAVEDS ASM char *DITO_GrammarString (REG(a0) APTR entry, REG(a1) char *str){
- return(str);
- }
-
-
-